2010-02-12 31 views
1

根据Geocoder documentation,该类将方法提供到可能存在或不存在于设备上的后端服务。如果设备上不存在地址解析器,理论上地理编码请求将不会返回任何结果。然而,由于没有后端地理编码器服务而没有结果,因为位置没有意义,如何区分没有结果?如何判断Android设备何时具有Geocoder后端服务?

我的应用程序已经需要Google Maps API,因此这可能是一个争论点;作为第二个问题,谷歌地图API 总是包括一个Geocoder?

回答

2

根据Google Maps docs,“Google地图API提供了用于地址编码的客户端地址解析器”。所以我会说,因为你需要谷歌地图API,你需要一个地理编码器。

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(); 
    } 
相关问题