Я пытаюсь использовать Google Maps API автозаполнения, но есть некоторые расхождения между ним и Geocoder API, например:Google Maps API автозаполнения X Geocoder
На автозаполнения API, я пытаюсь найти адрес «Rua Tiradentes, 1020, Ibirubá», когда я выбираю в списке, адресный компонент «street_number» не приходит, это проблема с этим и другими адресами.
Давайте попробуем с геокодером API:
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': 'Rua Tiradentes, 1020, Ibirubá' }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log(results);
} else {
alert("Geocoder failed due to: " + status);
}
});
Теперь street_number находится внутри address_components, есть ли обходной путь или Google автозаполнение не является надежным?
Вот места код:
var b = new google.maps.places.Autocomplete(myInput);
google.maps.event.addListener(b, 'place_changed', function() {
console.log(b.getPlace());
})
документация не очень понятно: * Следующие типы ** могут быть возвращены ** в результатах поиска места, в дополнение к типам, приведенным в таблице 1 выше. * См. https://developers.google.com/places/documentation/supported_types#table2. Если он может быть возвращен *, мы действительно не знаем, когда и почему он будет/не будут возвращены. – MrUpsidown
И в основном документация по геокодированию тоже довольно неопределенная: * В дополнение к вышеуказанным, компоненты адреса ** могут включать в себя следующие типы: * https://developers.google.com/maps/documentation/geocoding/ #Types – MrUpsidown
Я сообщил об ошибке на API карт, он должен вести себя как API-интерфейс геокодирования. Я написал резервную копию, если street_number имеет значение null, получить текст ввода и сделать запрос на геокодирование – Alexandre