【问题标题】:Geocoder, get country in Android, getFromLocation zero results地理编码器,在 Android 中获取国家,getFromLocation 零结果
【发布时间】:2017-06-06 15:55:52
【问题描述】:

当用户出国旅行时,我需要获取用户所在的国家/地区以显示某些信息。 许多确定国家/地区的方法都需要 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 返回零。

我也尝试使用 http 请求到 google api,像这样

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

但它也返回零。

这应该很容易确定,手机在哪个国家。有没有更好的方法。如何解决零结果的问题?

谢谢

已编辑

我接受这是一个有争议的地区的答案。但是,如果纬度点附近没有“地标”,是否也会有零结果?如果点在农村中部多公里,结果也会为零吗?

【问题讨论】:

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


    【解决方案1】:

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

    很遗憾,Google 地图反向地理编码在有争议的地区不起作用。这是一个已知问题,在公共问题跟踪器中报告为issue 9792。看起来 Google 正在解决此问题,因为该问题的状态为已接受,并且公共问题附有相关的内部问题 #31447205。 Google Maps API 目前没有解决方法。

    我可以建议为问题 9792 加注星标以表达您的兴趣并从 Google 接收进一步的更新。

    【讨论】:

    • 非常感谢,你能回答我上面编辑的问题吗?谢谢
    • 不,不应该。如果一个点位于国家多边形内,则反向地理编码应解析国家名称。唯一的例外是没有国家名称的有争议的地区,有时还有一级行政区。
    • 如果您在非争议地区有结果类型为“国家”的反向地理编码的 zero_results 示例,您应该在public issue tracker 中将它们报告为错误。
    猜你喜欢
    • 1970-01-01
    • 2010-10-03
    • 2015-09-13
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    相关资源
    最近更新 更多