【发布时间】:2012-01-29 12:24:39
【问题描述】:
我正在使用 Android 地理编码通过Address.getLocality() 获取当前城市。它运行良好,直到最近它似乎经常为本地返回 null。
这是一个例子:
try {
Geocoder c = new Geocoder(this, Locale.getDefault());
double lat = 51.481;
double lon = 0.0;
List<Address> l = c.getFromLocation(lat, lon, 5);
for (Address a: l) {
Log.i("GeocoderTest", "Locality " + a.getLocality() + " (" + a + ")");
}
} catch (IOException e) {
Log.e("GeocoderTest", "", e);
}
这现在为第一个返回的地址记录以下消息:
Locality null (Address[addressLines=[0:"14-18 Park Vista",1:"London 伦敦格林威治区 SE10",2:"UK"],feature=,admin=null,sub-admin=null,locality=null,thoroughfare=Park Vista,postalCode=null,countryCode=GB,countryName=United Kingdom,hasLatitude=true,latitude=51.4819069,hasLongitude=true,longitude=-6.327E-4,phone=null,url=null,extras=null])
有些位置确实会返回当地的城市,而旁边的位置则不会。
所以它之前确实工作得很好,实际上我以前没有见过空位置。所以我想谷歌的地理编码服务一定发生了一些变化。知道发生了什么,这种情况是永久性的吗?如果是,从某个位置确定城市的最佳方法是什么?
【问题讨论】: