Як різні системи ГІС визначають інтер'єр полігону?


11

Мені цікаво зрозуміти, як реальні ГІС-системи та їхні дані кодують Полігони.

Зокрема, як вони вирішують неоднозначність інтер’єру Полігону на кулі?

Передумови: у 2D тривіально вибрати сторону межі, яка має кінцеву площу, оскільки 2D площина нескінченна. Однак сфера є кінцевою, тому неможливо дізнатися, яка сторона знаходиться всередині, не роблячи додаткових припущень.

Можливі підходи, про які я знаю:

  1. Правило праворуч : зовнішні межі завжди задаються в порядку годинникової стрілки, а отвори - в порядку, проти годинникової стрілки. (Є, звичайно, і ліве правило).
  2. Найменша площа : для будь-якого кільця завжди вибирайте сторону з найменшою площею. Я не впевнений, як би ви вказали Полігон великої дальності: можливо, порожнє зовнішнє кільце з наступними отворами?
  3. Рівнокутний : просто розглянемо рівнокутну проекцію на нескінченну 2D площину. Однак це передбачає, що особливості порубані в антемеридіані, інакше потрібно буде резервне використання одного з двох вищевказаних методів.

Мої особисті переваги - це перший підхід, але мені цікаво зрозуміти, чи є це звичайним у стандартних системах ГІС.

Відповіді:


3

Основні системи ГІС та їх методи вирішення притаманної неоднозначності:

  • ESRI : правило правої ноги.
  • ArcGIS : правило правої ноги.
  • SQL Server 2012 : правило лівої ноги. До початку SQL Server 2012 багатокутники, що перевищують півсфери, призвели до помилки.

GeoJSON не вказує замовлення.


1
Переглянута специфікація GeoJSON ( tools.ietf.org/html/rfc7946 ) вказує, що "Кільця багатокутника ОБОВ'ЯЗКОВО слідкувати правильному правилу орієнтації (зовнішні кільця проти годинникової стрілки, внутрішні кільця проти годинникової стрілки)."
perrygeo

1

Якщо я правильно розумію ваше запитання, ви хочете дізнатися, як GIS виконує бал у тесті на сферичний полігон. Ось алгоритм, який я знайшов на geospatialmethods.org :

  1. З’єднайте точку з відомою зовнішньою точкою великою дугою кола.
  2. Для кожної великої дуги кола, яка є стороною випробування сферичного багатокутника, якщо вона перетинає дугу, побудовану на кроці №1, і підраховує кількість перетинів.
  3. Якщо загальна кількість перетинів непарна, то дана точка знаходиться всередині сферичного багатокутника. якщо загальна кількість перетинів є навіть точкою поза сферичним багатокутником.

Я думаю, він все ще заснований на планарному алгоритмі побудови пробного променя від точки, про яку йде мова, до точки, яка, як відомо, знаходиться поза полігоном, з подальшим підрахунком кількості ребер перетинає промінь, який ви згадали.

Він також глибоко обговорюється в документі NASA JPL про алгоритми на полігонах на кулі . Це на сторінці 11. Є, звичайно, деякі оптимізації:

По-перше, уникайте проведення обчислювально дорогих сферичних тригонометричних обчислень, коли це можливо, перевіряючи пробний промінь на попередньо обчислене обмежувальне поле перед тим, як оглянути будь-який з країв полігону. Якщо тестовий промінь перетинає обмежувальне поле, Q перевіряється на кожну з вершин багатокутника. Немає сенсу перевіряти, чи стоїть Q на краю в цій точці, оскільки це буде виявлено, коли будуть проведені випробування перетину, а решта ребер можуть бути пропущені в цей час.

Думаю, ви знайдете папір найцікавішим :)


Здається, це відповідає на інше запитання. Закритий поліліній, що не перетинається, розбиває сферу на два з'єднані компоненти. ОП запитує, як визначається ГІС - або як йому сказано - який із цих компонентів слід вважати "всередині", а який "зовні"? Веб-сайт, який ви цитуєте, обговорює це питання під заголовком «Вгадайте зовнішню точку», підкреслюючи, що він просто здогадується, який компонент має бути всередині.
whuber

О ... драт. Неправильно зрозумів його питання. Я пов’язав це зі сферичною версією точки в тесті на багатокутник. Буду переглянути його, як тільки я знайду відповідь.
РК

Ну, я оцінив знайдені вами посилання, тож сподіваюся, вам вдасться включити їх у свою переглянуту відповідь :-).
whuber

Я теж на це сподіваюсь. А може, я просто поставлю запитання і сам відповім на нього ;-) Було б соромно витрачати їх.
РК

1
Дякуємо за детальну відповідь! На жаль, як зазначає @whuber, це не відповідає на моє конкретне запитання. :) Я окреслив можливі підходи до вирішення невід'ємної двозначності того, де знаходиться внутрішня частина полігону, але мені цікаво знати, які підходи реально застосовують ГІС-програмне забезпечення в реальному світі.
Джейсон Дейвіс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.