Можно ли определить, находится ли точка GeoJSON внутри многоугольника GeoJSON с помощью JavasScript?

можно ли определить,находится ли точка GeoJSON в заданном lat, lon в заданном многоугольнике GeoJSON, используя только JavaScript (либо через d3, topojson, либо любым другим способом)?

например, я могу нарисовать карту с указанием стран, в Великобритании на основе учебника здесь.

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

Я хотел бы отобразить общее количество точек для каждая страна.

могу ли я определить, какая страна содержит каждую точку в браузере, или мне нужно предварительно обработать данные моей точки на сервере с помощью PostGIS или аналогичного?

2 ответов


Кажется d3 вы покрыли:https://github.com/d3/d3-geo#geoContains

d3.geoContains(объект, точка)

возвращает true, если и только если указанный объект GeoJSON содержит указанную точку, или false, если объект не содержит точку. Точка должна быть указана как двухэлементный массив [долгота, широта]в градусах. Для точечной и многоточечной геометрии используется точный тест; для сферы true всегда возвращено; для других геометрий применяется порог Эпсилона.


расширения @thedude ответ вы также можете использовать geojson-поиск если вам нужно сделать эту проверку более одного раза на данном формате.