2014-01-26 4 views
0

У меня есть база данных из 500 адресов с геокодированными координатами. Теперь все настроено так, что все 500 адресов отмечены на карте с использованием маркеров по умолчанию, теперь мне нужно будет ввести адрес или почтовый индекс и узнать, какой из 500 адресов в моем базы данных являются ближайшими к указанному адресу или почтовому индексу. Есть ли встроенная функция для этого в API Карт Google? Мне любопытно, как я это выполнил, я искал способ и не придумывал никаких результатов.Ближайший маркер к указанному почтовому индексу или адресу Google Maps

+0

Как [это] (http://www.geocodezip.com/v3_MW_example_map3_closestMarker_geocode.html)? – geocodezip

+0

Аналогично, но я бы также хотел, чтобы были включены мили. Я обнаружил, что матрица расстояний, предлагаемая google, допускает только определенное количество запросов – Yamaha32088

ответ

1

Google предоставляет функцию computeDistanceBetween для расчета линейного расстояния между двумя точками google.maps.LatLng.

Измените сценарий тег, чтобы включить дополнительную библиотеку геометрии:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry"></script> 

Затем вызовите computeDistanceBetween как например:

var distanceInMeters = google.maps.geometry.spherical.computeDistanceBetween(origin, dest); 

Dev документы @https://developers.google.com/maps/documentation/javascript/geometry#Distance

Если вы хотите подсчитайте фактическое расстояние/время поездки, вам нужно использовать API-интерфейс Матрицы расстояний. (Как упоминает @ Yamaha32088, API матрицы расстояний имеет очень строгие пределы квот, которые вы можете быстро превысить в зависимости от вашей лицензии.)

Для получения дополнительной информации о API-интерфейсе расстояния см. https://developers.google.com/maps/documentation/distancematrix/.

Смежные вопросы