地理编码器.getFromLocation();等待服务器响应超时。

23

我有一个已经上市超过6个月的Android应用程序,它使用geocoder.getFromLocation()latitudelongitude“翻译”成可读的地址:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);

一切都很顺利,直到7小时前(2016年1月15日04:00 UTC)。与Google支持团队合作后,根据他们的建议,在这里发布问题,以查看是否有人有任何想法解决此问题。

我已经与地图API工程团队交谈过了,似乎Android Geocoder使用了不同于我们支持的Geocoding API的后端,因此我们现在无法做太多事情。

另外...

  • 这个问题在所有Android设备上都出现吗?是的
  • 您能从存在问题的设备访问以下URL:https://maps.googleapis.com/maps/api/geocode/json?address=Barcelona吗?是的。我们可以通过这些Android设备中的浏览器访问它。
  • 这些设备使用哪个版本的Android? Android版本范围从4.4.4到5.1.1

1
我在尝试使用Geocoder时遇到了完全相同的问题,而且也是今天早上开始出现的。我在我的手机和互联网之间插入了代理,并能够看到来自谷歌服务器的502错误,其中包含以下消息:“服务器遇到了临时错误,无法完成您的请求。请在30秒后重试。这就是我们知道的。”当尝试获取https://www.google.com/loc/m/api时。也许你可以将这些信息发送给他们,因为你已经在联系支持? - Guedes
仍然无法工作... - Navjot
我们也遇到了同样的问题,大约是在你开始遇到它的同一时间。 - Azeem Shaikh
遇到了同样的问题。即使在旧版本 - 4.2.2 上也是如此。 - Heisenberg
MN,美国,我也是。我在格林尼治标准时间早上4点左右首次注意到这个问题。我所有使用Android地理编码器的应用程序都出现超时错误。 - NovaJoe
显示剩余6条评论
3个回答

5

抱歉更新有些晚。根据Google在2016-01-15 09:41 PST的回应...

...

经过查看您提供的信息,我们认为您可能受到已知问题的影响。以下是有关该问题的一些详细信息:

描述:在2016-01-14晚上11点左右,我们开始收到通过Android SDK的地理编码器发出的请求超时的报告。我们已经确定后端存在故障,这是导致观察到的错误的原因。我们的工程团队正在努力解决后端故障。

如何诊断:使用Android的getFromLocation()地理编码器方法 (http://developer.android.com/reference/android/location/Geocoder.html) 可能会返回超时异常。

解决方法:目前没有可用的解决方法,但如果我们了解到解决方法,我们会告诉您...

根据我的记录,该服务已于2016-01-15 12:00至18:00 PST之间恢复。

感谢Google支持在官方回应之前及时向我更新。


它仍然给我超时异常,但只有在我第一次从纬度和经度请求地址时。 - Vivek Mishra
我没有找到其他解决方法,只能直接使用HTTP API,例如http://maps.googleapis.com/maps/api/geocode/json?latlng=lat,lng&sensor=true - zkvarz

1
解决方案:尝试将设备的日期和时间设置为从网络自动获取。我认为这可以防止API由于错误的日期/时间而无法获取安全证书,从而导致API失败。如果有效,请告诉我。

0

在墨西哥,地理编码器现在正常工作,请检查您的应用程序中的服务


Android的Geocoder非常不可靠。在我看来,这个类应该被修复或从平台中删除。经过数小时的研究Geocoder问题后,我决定实现用于地理编码的Web API。它只有在超过API限制时才会失败。具体操作请参考以下链接: https://developers.google.com/maps/documentation/geocoding/intro?hl=en_US - user1608385

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接