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" в строку поиска. Опять же, вы захотите вручную отфильтровать результаты.