Android 地理编码器 returns 空城市名称
Android Geocoder returns null city name
我是 Android 开发的新手,以下是我使用 Geocoder 获取当前位置的城市名称的代码,它 returns null:
private void updateCurrentLocation(位置位置){
双纬度 = 0.0,经度 = 0.0;
if (location != null) {
lat = location.getLatitude();
lng = location.getLongitude();
Log.i("tag", "Latitute is" + lat + ", Longtitute is" + lng);
} else {
City_Name = "Unavailable";
}
List<Address> list = null;
Geocoder geocoder = new Geocoder(this.getActivity());
try {
list = geocoder.getFromLocation(lat, lng, 1);
} catch (IOException e) {
e.printStackTrace();
}
//may provide multiple locations.
if (list != null && list.size() > 0) {
Address address = list.get(0);
City_Name = address.getLocality();
}
Log.i("Try", "CityName:" + City_Name);
//send empty message
handler.sendEmptyMessage(1);
}
我开通了GPS服务,已经在Manifest中添加了ACCESS_FINE_LOCATION和INTERNET权限。另外,我在 Whosebug 中搜索了关于 Geocoder returns null 的类似问题,但没有找到有用的解决方案。其中之一是来自 Geocoder 网站的分析 JSON,但它也不起作用。
有人可以帮忙吗?谢谢!
顺便说一句,有没有更好的解决方案来接收城市名称?谢谢!
如果 "getFromLocation" 方法给您一个空集,那是因为正在查找的服务器没有您传递给它的坐标的地址信息。这也被注意到 in the docs。因此,我认为您应该放手使用其他服务,例如 Google 地图地理编码服务或来自 OpenStreetMap 项目的其他服务,例如 Nominatim。
我是 Android 开发的新手,以下是我使用 Geocoder 获取当前位置的城市名称的代码,它 returns null:
private void updateCurrentLocation(位置位置){ 双纬度 = 0.0,经度 = 0.0;
if (location != null) {
lat = location.getLatitude();
lng = location.getLongitude();
Log.i("tag", "Latitute is" + lat + ", Longtitute is" + lng);
} else {
City_Name = "Unavailable";
}
List<Address> list = null;
Geocoder geocoder = new Geocoder(this.getActivity());
try {
list = geocoder.getFromLocation(lat, lng, 1);
} catch (IOException e) {
e.printStackTrace();
}
//may provide multiple locations.
if (list != null && list.size() > 0) {
Address address = list.get(0);
City_Name = address.getLocality();
}
Log.i("Try", "CityName:" + City_Name);
//send empty message
handler.sendEmptyMessage(1);
}
我开通了GPS服务,已经在Manifest中添加了ACCESS_FINE_LOCATION和INTERNET权限。另外,我在 Whosebug 中搜索了关于 Geocoder returns null 的类似问题,但没有找到有用的解决方案。其中之一是来自 Geocoder 网站的分析 JSON,但它也不起作用。
有人可以帮忙吗?谢谢! 顺便说一句,有没有更好的解决方案来接收城市名称?谢谢!
如果 "getFromLocation" 方法给您一个空集,那是因为正在查找的服务器没有您传递给它的坐标的地址信息。这也被注意到 in the docs。因此,我认为您应该放手使用其他服务,例如 Google 地图地理编码服务或来自 OpenStreetMap 项目的其他服务,例如 Nominatim。