根据Geocoder documentation,该类将方法提供给后端服务,该服务可能存在于设备上,也可能不存在。如果设备上不存在地理编码器,理论上地理编码请求将不返回任何结果。但是,如果由于没有后端地址解析器服务而没有结果,那么如何区分没有结果,因为位置没有意义?
我的应用已经需要Google Maps API,所以这可能是一个没有实际意义的点;作为次要问题,Google Maps API 始终是否包含地理编码器?
答案 0 :(得分:4)
严格来说,可能会安装另一个后端,只需尝试使用地理编码器
final Geocoder geocoder = new Geocoder(this);
final String locName = "1600 Amphitheatre Parkway, Mountain View, CA";
try {
final List<Address> list = geocoder.getFromLocationName(locName, 1);
if ( ! (list == null || list.isEmpty()) ) {
final Address address = list.get(0);
System.out.println("Geocoder backend present, (lat,lon) = (" + address.getLatitude() + ", " + address.getLongitude() + ")");
}
else {
System.out.println("Geocoder backend not present");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:2)
根据Google Maps docs,“Google Maps API提供了地理编码地址的客户端地理编码器”。所以我想说,因为你需要谷歌地图API,你需要一个地理编码器。