2017-02-01 22 views
1

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

Приведенный список географических координат, выраженных в виде пар лат/длин, определяет, какие координаты находятся в определенном географическом местоположении (например, в Калифорнии, Бруклине, Нью-Йорке, Митрополите Area, или Europe.)

Насколько я могу судить, ни Mapbox, ни какой-либо из API-интерфейсов Google не предлагают эту функциональность.

+2

Google обратное Геокодирование делает это – Coder

+1

Возможный дубликат [этого ответа на stackoverflow] (http://stackoverflow.com/questions/6548504/how-can-i-get-city-name-from-a-latitude-and- долгота точки). –

+0

@Coder Я не могу найти ссылку на эту конкретную функциональность в [Reverse Geocoding API Documentation] (https://developers.google.com/maps/documentation/geocoding/intro). Единственный способ, с помощью которого я могу использовать этот API, чтобы определить, содержит ли один регион список местоположений, заключается в том, чтобы независимо отменить геокодирование каждого местоположения, а затем искать сходства в отдельных «адресных_компонентах». Однако для этого потребуется API-запрос для каждого местоположения, что было бы нецелесообразно в моей ситуации. –

ответ

0

Этот вопрос спрашивает об обратном геокодировании. Мой вопрос заключается в определении того, какие элементы в наборе местоположений содержатся в пределах региона.

Это то, что делает обратное геокодирование. Если у вас есть только список координат, вам нужно будет отменить геокодирование каждого из них и проверить ответ, чтобы узнать, находится ли эта точка в интересующей вас функции.

Если у вас есть многоугольные данные для этой функции , тогда вы можете написать скрипт, выполнив проверку «точка-в-поли», не используя внешнюю службу. Quattroshapes - бесплатный источник данных такого рода. Используйте ogr2ogr, чтобы преобразовать его в выбранный вами формат (например, geojson), а затем используйте что-то вроде Turf, чтобы выполнить проверку «точка-в-поли».