Google Geocode Components две страны
Как можно отфильтровать результаты API Google Geocode и использовать параметр компонентов для двух (или более) стран, не выдавая другого запроса.
Пример:
-
http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&components=country:DE,AT&address=wien
дает нулевой результат, так как в Германии нет Wien и AT после того, как запятая игнорируется.
-
http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&components=country:AT,DE&address=wien
это нормально, потому что в Австрии есть Wien.
-
http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&components=country:AT|country:DE&address=wien
дает нулевые результаты, поскольку два компонентных фильтра обходят друг друга.
Есть ли что-то в документации, которую я перепробовал, что делает возможным, или я не могу это сделать вообще?
Изменить
Я пробовал обходное решение с настройкой объединенных границ Германии и Австрии, но это просто взвешивает результаты, а не фильтрует их, поэтому я получил результат, который мне не нужен с http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&components=bounds:55.058,17.161|46.372,5.866&address=new%20york
. В этом случае я хочу статус ZERO_RESULTS.
Ответы
Ответ 1
В настоящее время это невозможно. Пожалуйста, проголосуйте issue # 4233, если хотите, чтобы это произошло.
На данный момент я могу предложить три возможных обходных пути, ни один из них не идеален:
- Сделать несколько запросов и слить результирующие наборы вручную. Это даст лучшую точность, но, пожалуй, самый медленный.
- Использовать трюк с ручным объединением в вопросе HerrSerker, затем вручную отфильтровать результаты, где
short_name
элемента address_components
с types
of country
отсутствует в списке стран.
- Отбросьте компонентный фильтр целиком и включите "Austria OR Germany" в строку поиска. Опять же, вы захотите вручную отфильтровать результаты.