Я работаю над системой доставки для моей компании, где пользователь вводит (вместе с кучей другой информации) пункт назначения , в который необходимо что-то отправить. Система, из которой мы осуществляем миграцию, просто использовала эту информацию в качестве статического текста, чтобы люди вводили сокращенные адреса, такие как «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 в конце моего запроса геокода. Это дает всем адресам в моих границах преференциальный режим при поиске.