Google Geocoding stopped to work for Crimea, Ukraine
Asked Answered
S

3

11

I've discovered very strange issue. Geocoding API suddenly stopped to work for Crimea coordinates. Example: Simferopol city:

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

But it works for any other place in Ukraine and Russia. Example: Kiev, Ukraine

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

Recently the API worked properly. Please tell, is it the Google restriction due to political events in Ukraine? Should the service work again, and when? Our application critically depends on user's geocoded location, and this issue blocks the workflow.

Submerged answered 22/4, 2014 at 9:0 Comment(4)
If this is an issue with political events in Ukraine only Google will be able to answer your question. Ask them.Humperdinck
There is a post in Google Maps API group (groups.google.com/forum/#!topic/google-maps-api-web-services/…) about Maps API support team moved to Stack Overflow, so I asked the question here with mentioned tags.Submerged
I know about the post. However, only programming support is available here - that's a Stack Overflow rule. If you want to know about service availability then it's not a programming question and it's off topic.Humperdinck
Mike, could you please point me the right way to contact Maps API support? Thanks!Submerged
O
13

Yes, it's a restriction due to political events. I got this answer from Google Support:

Since Crimea currently is a disputed territory (http://en.wikipedia.org/wiki/List_of_territorial_disputes), Geocoder results will currently not return results for reverse geocoding.

Oread answered 15/5, 2014 at 12:26 Comment(1)
Thanks for help! I finnaly got similar answer in Google Maps Support Group. It's very sad, because there is only way to research another geocoding service.Submerged
C
1

Google (reverse) geocoding service stopped working for Crimea due to territorial dispute.

A not-trivial, but future-proof technical solution is to create an abstraction API over geocoding services rather than using a specific service directly in your app.

This way you reduce dependency on a specific service. For example, you can use Yandex geocoding service if the coordinates are within the bounding rectangle of Crimea:
http://geocode-maps.yandex.ru/1.x/?geocode=34.104996,44.957844&lang=en-US

Another benefit of an abstraction level is that you may very quickly switch to a different service if your "main" service goes down (for whatever reason).


Please note that support of certain regions or countries by a software product may be subject to US / EU sanctions. Support of any region with a territorial dispute is a potential problem.

Coppery answered 13/1, 2015 at 23:7 Comment(3)
@BrianHaak, though this stuff is very sad to me personally (I'm a born Ukrainian), I don't believe this site is a good place for political discussions...Coppery
Developers do ask questions, why Google resolves some disputed territories, and not others. The knowledge of the geopolitics helps in building marketing strategy for businesses saving money, time, and reputation avoiding to support the "unsupported" regions. There are reasons why Google doesn't let us to build the integrated services in those countries. Obviously, Google doesn't want to lose any revenues from those places - but has to do that though. Stackoverflow community must know those "why"'s. Their startup and business reputation is more important than abstract support of everything.Enneagon
for sure, the community must know the reasons. Please note that I've put the reason as the very first statement. If a company "supports" some disputed regions, this may become subject of US/EU sanctions, which may be painful for the company — but this lies in the political / legal, rather than technical domain.Coppery
P
1

Good news. As of January 2019 Google resolved an issue with ZERO_RESULTS in disputed areas.

You can see that now they return results, but country name doesn't appear in responses. This aligns with approach that they had in forward geocoder. Disputed areas don't have country names.

The following request now returns Simferopol

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

The same result in geocoder tool:

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

I hope this helps!

Plod answered 15/1, 2019 at 21:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.