Geocoder,在Android中获取国家/地区,getFromLocation为零结果

时间:2017-01-21 20:49:00

标签: android google-maps google-maps-api-3 geocoding

当用户出国旅行时,我需要让用户所在的国家/地区显示某些信息。 确定国家的许多方法都需要SIM卡,但这种方式没有。所以这就是我使用的(通过一些尝试,捕获)

Geocoder myLocation = new Geocoder(HomeActivity.this);
myList = myLocation.getFromLocation(gps.getLatitude(), gps.getLongitude(), 1);
String country = myList.get(0).getCountryName();
Log.d(TAG, country);

大部分时间这都有效。但是,有时列表返回零结果。例如,lng lat,31.7823555,35.2991956,返回零。

我也尝试过使用google api的http请求,就像这样

http://maps.googleapis.com/maps/api/geocode/json?latlng=31.7823555,35.2991956&sensor=true

但它也返回零。

这应该是一件非常容易确定的事情,手机所在的国家/地区。是否有更好的方法。如何解决零结果的问题?

由于

EDITED

我接受的答案是这是一个有争议的领域。但是,如果拉丁点附近没有“地标”,那么结果是否为零呢?如果该点位于乡村中间数公里,那么结果也是零吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,坐标31.7823555,35.2991956位于约旦河西岸。目前约旦河西岸是disputed area

不幸的是,谷歌地图反向地理编码在争议地区无效。这是一个已知问题,在公共问题跟踪器中报告为issue 9792。看起来谷歌正在解决这个问题,因为问题的状态是已接受,并且有相关的内部问题#31447205附加到公共问题。目前Google Maps API尚无解决方法。

我可以建议主题9792来表达您的兴趣并接收Google的进一步更新。