2016-12-20 8 views
3

Я использую Geocode API для проекта, где у пользователей есть ввод текста для ввода адреса. Этот адрес найден с использованием API Карт Google, однако API-адрес Geocode не может найти адрес. Странная часть заключается в том, что она работает для некоторых адресов, но для некоторых других это не так.Geocode API не распознает адрес, хотя карты google

Например, адрес Куршевель, Сен-Бон-Тарантез, Франция можно найти на Google Maps, но не с Geocode URL: https://maps-api-ssl.google.com/maps/api/geocode/json?address=Courchevel%2C%20Saint-Bon-Tarentaise%2C%20France&sensor=false&client=gme-kickzag&signature=MY_SIGNATURE=, где MY_SIGNATURE дано правильно.

С другой стороны, адрес Базеля, Швейцария работает правильно: https://maps-api-ssl.google.com/maps/api/geocode/json?address=Basel%2C%20Switzerland&sensor=false&client=gme-kickzag&signature=MY_SIGNATURE=

Любой ответ очень высоко ценится!

ответ

0

Вы можете использовать Places Service и передать ему идентификатор места. Только catch - вы должны передать службе экземпляр карты или узла элемента html. Вот пример:

// "map" is a google map you have created 
var service = new google.maps.places.PlacesService(map); 

var request = { 
    placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4' 
}; 

service.getDetails(request, callback); 

function callback(place, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
    var lat = results.geometry.location.lat(), 
     long = results.geometry.location.lng(); 
    console.log('lat & long', lat, long); 
    } 
} 

В моем случае, так как я не использую карту, чтобы я передал ему HTML узел, как

var details = document.getElementById('details'); 
var service = new google.maps.places.PlacesService(details); 

Чтобы придерживаться условий, вы не можете скрыть элемент. Однако, похоже, сервис не увеличивает его.

+0

Спасибо за ваш ответ. Однако проблема, похоже, связана с самим геокодом. Насколько я понял из некоторых исследований, Geocode иногда испытывает трудности при переводе адресов на долготу и широту. – Shend

+0

@ Вы должны использовать службу автозаполнения для пользовательского ввода. Это очень легко. Вы можете заставить его визуализировать пользовательский интерфейс или просто вернуть результаты, чтобы вы могли обрабатывать часть пользовательского интерфейса.Тогда у вас есть placeId, что гарантирует вам lat/long. – inorganik

0

Объект поиска адресов является сложным. Некоторые вещи, которые трудно включают:

Существует много полезной информации об адресах и поиске в FAQ articles от SmartyStreets.

Что касается вашего вопроса, вы подняли интересный случай. (Не совсем понятно, каков ваш вопрос, но на тему API Google ...). В Google есть много продуктов, которые были созданы для решения конкретных проблем. В одном случае Google может помочь пользователям изучить область: они хотят найти регион, показать рестораны и события и т. Д. В другом случае Google будет искать точное местоположение геокода. Таким образом, пользователям Google API важно продумать свои проблемы и задачи и принять правильное решение о том, какие инструменты использовать. Возможно, вы найдете Google API Picker.

Справедливое раскрытие: Я работаю для SmartyStreets, компании, которая фокусируется на проверке адреса.

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

  • Нет связанных вопросов^_^