Google Maps API: поиск - PullRequest
       22

Google Maps API: поиск

0 голосов
/ 28 октября 2011

Я работаю над системой доставки для моей компании, где пользователь вводит (вместе с кучей другой информации) пункт назначения , в который необходимо что-то отправить. Система, из которой мы осуществляем миграцию, просто использовала эту информацию в качестве статического текста, чтобы люди вводили сокращенные адреса, такие как «Alsip 60801».

Моя первоначальная мысль заключалась в том, что такого рода сокращенный текст будет прекрасно работать с API Карт Google, потому что я могу набирать сокращенные элементы в maps.google.com, и это обычно работает.

Итак, я написал некоторый код для запуска геокодирования на их стенографических входах. К моему удивлению, результаты, полученные при поиске по геокодированию, значительно отличались от результатов, полученных с maps.google.com.

Например, когда я ищу «Alsip 60801» на maps.google.com, я получаю Alsip, IL 60801. Это верно. Но когда я выполняю поиск с помощью API Карт Google, я получаю немного Alsip в Канаде.

Есть ли другая функция поиска, которую я должен использовать для API Карт Google? Или какой-то флаг, который мне не хватает?

Для справки, это короткая версия моего кода:

 var geocode = new google.maps.Geocoder();

 geocode.geocode( {'address': 'Alsip 60801' }, function(results, status) {
      console.log(results[0].geometry.location);
      //Outputs the LatLng of a Canada address
 });  

Редактировать 1 : Я забыл упомянуть, я попытался установить регион в запросе геокодирования. Я установил его нам и получил те же результаты.

Обновление - ответ: Я пометил ответ @ Jitimaro как правильный, потому что привязка кода страны к концу результатов, похоже, работает. Я не уверен, будет ли это работать со всеми видами ввода (трудно предсказать сокращенные форматы адресов), но на данный момент он работает нормально.

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

1 Ответ

0 голосов
/ 29 октября 2011

При поиске на веб-сайте вы должны получить предварительный просмотр, подобный следующему: http://maps.google.com/maps?q=Alsip+60801. При поиске обратного геокода вы должны проанализировать результат в соответствии с вашей страной http://maps.googleapis.com/maps/geo?q=Alsip+60801. Вы можете проверить другой URLс сетевым сниффером.Или вы можете добавить страну в свой URL http://maps.googleapis.com/maps/geo?q=Alsip+60801+USA.

...