Получите только конкретный результат, используя google geocode api

Я использую google geocode api для извлечения lat long, используя почтовый индекс of singapore

Я попытался выполнить выборку данных:

(1) http://maps.googleapis.com/maps/api/geocode/json?address=505468&sensor=false

(2) http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false

(3) http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false&region=sg

Но он возвращает местоположение из Индии

https://developers.google.com/maps/documentation/geocoding/?hl=fr#RegionCodes

Любой другой способ получить только конкретный для страны (Сингапур) результат.

Я попытался выполнить его верный результат

http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20133224&sensor=false

Ответы

Ответ 1

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

URL должен быть http://maps.googleapis.com/maps/api/geocode/json?address=Singapore%20505468&sensor=false&components=country:SG

Но это не проблема, результат геокодера неверен, потому что в результате страна имеет значение SG, но местоположение неверно (помещено в Индию).

Я боюсь с данным адресом (кажется, что почтовый индекс не существует), единственное, что вы можете сделать, это сообщить о неправильном результате в google.

Ответ 2

Правильный способ сделать это - предоставить componentRestrictions

Например:

var request = {
    address: address,
    componentRestrictions: {
        country: 'UK'
    }
}
geocoder.geocode(request, function(results, status){
    //...
});

Ответ 4

Вы должны иметь возможность использовать этот подход http://maps.googleapis.com/maps/api/geocode/json?components=country:US|postal_code:5037

удалите адрес и компонент передайте почтовый код и убедитесь, что адрес имеет значение, позволяющее передать другое значение, выбранное пользователем, с почтовым кодом для проверки вашего api или иначе без передачи почтового кода, он будет протекать в другой адрес