Ограничения компонента Google Geocoder не фильтруются

Вот моя строка, которую я передаю службе геокодера.

http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=Lindon®ion=GB&componentRestrictions=locality

где region=GB — это код страны Соединенного Королевства, а вместо Лондона я проезжаю Линдон. Componentrestrictions=locality должен быть только для городов!

Но мои результаты возвращаются в каком-то месте в США!!

Разве это не то, как вы используете ограничения компонентов для геокодера Google?

Я не хочу видеть здесь каких-либо результатов, если «Линдон» будет передан, особенно для США.


person user1186050    schedule 03.03.2016    source источник


Ответы (2)


Добавьте ",GB" для параметра адреса.

http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=Lindon,UK®ion=GB&componentRestrictions=locality&language=en введите здесь описание изображения

Параметр региона просто «смещает», а не ограничивает область. https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingRegionCodes

По моему опыту, добавление кода страны и почтового индекса работает в большинстве случаев.

person wf9a5m75    schedule 03.03.2016

  1. нет параметра componentRestrictions (этот параметр относится к Javascript-API), параметр для веб-сервиса называется components
  2. компонент должен иметь имя (например, locality) и значение. В вашем случае, когда вы хотите найти город с названием Линдон, это должно быть locality:Lindon
  3. параметр region не ограничивает результаты, он будет отдавать предпочтение только результатам из данного региона. Используйте компонент country:gb, если хотите ограничить результаты гигабайтами.

Образец запроса для города Вашингтон (похоже, города нет Линдон в Великобритании)

http://maps.googleapis.com/maps/api/geocode/xml?components=locality:Washington|country:gb

person Dr.Molle    schedule 03.03.2016
comment
что такое% 7 в вашем запросе Линдона? или почему вы использовали | в одном запросе и %7 в другом? - person user1186050; 03.03.2016
comment
можете ли вы предоставить ссылку на то, где написано «компоненты», а не «ограничения компонентов». Я использую эту ссылку developers.google.com/maps/documentation/javascript/ - person user1186050; 03.03.2016
comment
%7 - это закодированная труба (разделитель при использовании нескольких компонентов). Я использовал трубу в своем ответе (линдон-ссылка была изменена SO). Когда вы запрашиваете услугу, вы всегда должны кодировать параметры. - person Dr.Molle; 03.03.2016
comment
API геокодирования (веб-служба): developers.google.com/maps/documentation/ геокодирование/ - person Dr.Molle; 03.03.2016