Точка в полигоне

Нарисуйте полигон на карте, затем введите координаты для проверки, какие точки попадают внутрь.

🔷Кликните по карте, чтобы начать рисовать полигон.

Об инструменте

Инструмент «Точка в полигоне» проверяет, попадает ли набор географических точек внутрь нарисованного полигона. Используется в пространственных запросах — например, для определения, какие адреса находятся в зоне доставки, какие датчики расположены в пределах исследуемой территории или какие инциденты произошли в границах юрисдикции.

Входные данные

Сначала полигон, нарисованный кликами по карте (минимум 3 вершины; замыкается автоматически при повторном клике на первую вершину). Затем одна или несколько тестовых точек, вводимых как координаты в боковой панели.

Результат

Каждая тестовая точка классифицируется как Внутри или Снаружи полигона. Результаты отображаются в виде цветных маркеров на карте (зелёный = внутри, красный = снаружи) и в таблице со списком координат и классификации. Таблицу можно скопировать в буфер обмена.

Ключевые понятия

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