Точка в полигоне
Нарисуйте полигон на карте, затем введите координаты для проверки, какие точки попадают внутрь.
Об инструменте
Инструмент «Точка в полигоне» проверяет, попадает ли набор географических точек внутрь нарисованного полигона. Используется в пространственных запросах — например, для определения, какие адреса находятся в зоне доставки, какие датчики расположены в пределах исследуемой территории или какие инциденты произошли в границах юрисдикции.
Входные данные
Сначала полигон, нарисованный кликами по карте (минимум 3 вершины; замыкается автоматически при повторном клике на первую вершину). Затем одна или несколько тестовых точек, вводимых как координаты в боковой панели.
Результат
Каждая тестовая точка классифицируется как Внутри или Снаружи полигона. Результаты отображаются в виде цветных маркеров на карте (зелёный = внутри, красный = снаружи) и в таблице со списком координат и классификации. Таблицу можно скопировать в буфер обмена.
Ключевые понятия
- Алгоритм трассировки лучей
- Из тестовой точки проводится горизонтальный луч до бесконечности. Количество пересечений луча с границей полигона определяет результат: нечётное число — точка внутри полигона; чётное (включая ноль) — снаружи. Алгоритм имеет сложность O(n), где n — количество рёбер полигона.
- Число оборотов
- Альтернативный метод классификации (используется внутри Turf.js
booleanPointInPolygon), корректно обрабатывающий самопересекающиеся полигоны. Ненулевое число оборотов означает, что точка находится внутри. - Геометрический охват
- Алгоритм работает с проецированными двумерными координатами. Точен для полигонов протяжённостью до ~500 км. Для очень крупных полигонов, охватывающих несколько зон UTM, возможны незначительные позиционные погрешности у краёв.