Геокодирование Google перестало работать в Крыму, Украина

Я обнаружил очень странную проблему. API геокодирования внезапно прекратил работу для координат Крыма. Пример: город Симферополь:

http://maps.googleapis.com/maps/api/geocode/json?language=en&latlng=44.957844%2C34.104996&sensor=false

Но он работает для любого другого места в Украине и России. Пример: Киев, Украина

http://maps.googleapis.com/maps/api/geocode/json?language=en&latlng=50.463405%2C30.481567&sensor=false

Недавно API работал правильно. Скажите, это ограничение Google из-за политических событий в Украине? Должна ли служба работать снова и когда? Наше приложение критически зависит от геокодированного местоположения пользователя, и эта проблема блокирует рабочий процесс.

Спасибо большое!

Ответ 1

Да, это ограничение из-за политических событий. Я получил этот ответ от службы поддержки Google:

Так как в настоящее время Крым спорной территорией (http://en.wikipedia.org/wiki/List_of_territorial_disputes), результаты Геокодер в данный момент не возвращать результаты для обратного геокодирования.

Ответ 2

Служба Google (обратного) геокодирования Google перестала работать в Крыму из-за территориального спора.

Нетривиальным, но перспективным техническим решением является создание API абстракции над службами геокодирования, а не использование конкретной услуги непосредственно в вашем приложении.

Таким образом вы уменьшаете зависимость от конкретной службы. Например, вы можете использовать службу геокодирования Яндекса, если координаты находятся в ограничительном прямоугольнике Крыма:
http://geocode-maps.yandex.ru/1.x/?geocode=34.104996,44.957844&lang=en-US

Другим преимуществом уровня абстракции является то, что вы можете очень быстро переключиться на другую услугу, если ваша "основная" услуга опустится (по какой-либо причине).


Обратите внимание, что поддержка определенных регионов или стран программным продуктом может быть подвергнута санкциям США/ЕС. Поддержка любого региона с территориальным спором является потенциальной проблемой.

Ответ 3

Хорошие новости. По состоянию на январь 2019 года Google решил проблему с ZERO_RESULTS в спорных районах.

Вы можете видеть, что теперь они возвращают результаты, но название страны не появляется в ответах. Это согласуется с подходом, который они использовали в прямом геокодере. Спорные районы не имеют названия стран.

Следующий запрос сейчас возвращает Симферополь

https://maps.googleapis.com/maps/api/geocode/json?latlng=44.957844%2C34.104996&key=YOUR_API_KEY

Тот же результат в инструменте геокодера:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D44.957844%252C34.104996

Надеюсь, это поможет!