API геокодирования Google — поиск только в одной стране

Я ищу геокоды с помощью Google Geocode-API:

http://maps.googleapis.com/maps/api/geocode/json?address=london%c2+UK&sensor=false

Проблема в том, что ввод не очень точен (особенно улица), и иногда Google смешивает вещи и игнорирует Великобританию, потому что улица имеет идеальное совпадение (как улица и город) где-то еще. например НАС.

Теперь я не могу решить эту проблему (ввод данных), но мне интересно, есть ли параметр, который заставляет Google искать в Великобритании и не возвращать результат вместо совершенно неправильного результата.


person marty bourque    schedule 19.02.2013    source источник


Ответы (1)


Вы можете добавить фильтры компонентов в URL-адрес для ограничения результатов. В этом случае вы можете использовать:

http://maps.googleapis.com/maps/api/geocode/json?address=london%c2+UK**&components=country:UK**&sensor=false

Для получения дополнительной информации о том, как использовать фильтрацию компонентов, см.:

https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

person jmm    schedule 19.02.2013
comment
спасибо за ваш ответ - это работает, но для моего случая: если страна неверна (ввод), в результате будет возвращена указанная страна. - person marty bourque; 21.02.2013
comment
Вы правы, как говорит API: запрос, содержащий компонентный фильтр, вернет только те результаты геокодирования, которые соответствуют фильтру. Если совпадений не найдено, геокодер вернет результат, соответствующий самому фильтру. ... Фильтрация компонентов вернет ответ ZERO_RESULTS, только если вы предоставите фильтры, исключающие друг друга. - person jmm; 21.02.2013
comment
Вы делаете эти звонки из javascript? Если это так, вы можете рассмотреть возможность использования объекта геокодера из API карт Google для javascript. Вы не сможете фильтровать результаты только для их смещения, но вы получите состояния ZERO_RESULTS. ссылка - person jmm; 21.02.2013
comment
Когда мы используем его, мы не можем показать сообщение об ошибке, например предупреждение (геокод не был успешным по следующей причине: + статус); - person ; 13.03.2014