Мне интересно понять, как реальные ГИС-системы и их данные кодируют полигоны.
В частности, как они решают неоднозначность интерьера многоугольника на сфере?
Фон: в 2D тривиально выбрать сторону границы, которая имеет конечную площадь, поскольку 2D-плоскость бесконечна. Однако сфера конечна, поэтому невозможно узнать, какая сторона находится внутри, не делая дополнительных предположений.
Возможные подходы, о которых я знаю:
- Правило правой руки : внешние границы всегда задаются по часовой стрелке, а отверстия - против часовой стрелки. (Конечно, есть и правило левой руки).
- Наименьшая площадь : для любого заданного кольца всегда выбирайте сторону с наименьшей площадью. Я не уверен, как бы вы указали полигон большого радиуса действия: возможно, пустое внешнее кольцо с отверстиями?
- Прямоугольная : просто рассмотрим равноугольную проекцию на бесконечную 2D-плоскость. Тем не менее, это предполагает, что функции анемеридиана прерваны, в противном случае потребуется возврат к одному из двух методов, описанных выше.
Мои личные предпочтения - это первый подход, но мне интересно понять, распространено ли это в стандартных ГИС-системах.
polygon
area
spherical-geometry
Джейсон Дэвис
источник
источник
Если я правильно понимаю ваш вопрос, вы хотите знать, как ГИС выполняет тест в сферическом многоугольнике. Вот алгоритм, который я нашел на geospatialmethods.org :
Я предполагаю, что он все еще основан на планарном алгоритме построения тестового луча от рассматриваемой точки до точки, которая, как известно, находится вне многоугольника, с последующим подсчетом того, сколько ребер пересекает луч, который вы упомянули.
Этот вопрос также подробно обсуждается в документе JPA НАСА об алгоритмах для многоугольников на сфере . Это на странице 11. Есть, конечно, некоторые оптимизации:
Я думаю, вы найдете бумагу наиболее интересной :)
источник