我有一些简单的代码可以从纬度/经度坐标返回一个地址。 它曾经在昨天工作得很好,没有任何改变,但今天它返回城市而不是街道地址。
我知道我可以深入挖掘Address类并显式调用getThoroughfare()
,但这只会返回null。
Geocoder geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(lat, lon, 1);
return addresses.get(0).getAddressLine(0);
}
没有模拟器,Nexus 5.
更新:这很神奇,今天地理编码器再次正常工作!请注意,经度/纬度坐标在整个时间内保持完全相同。也许我会依赖getThroughfare()来获取街道地址,但是考虑到它可能不会给我一个值。
答案 0 :(得分:2)
这是由于Geocoder服务中的可靠性问题。 在我的单元测试中,经度/纬度坐标保持完全相同,并且有时只返回城市而不是完整地址。
不要依赖Geocoder服务来始终返回完整的地址!