你怎么知道Android设备何时有Geocoder后端服务?

时间:2010-02-12 20:48:58

标签: android google-maps geocoding

根据Geocoder documentation,该类将方法提供给后端服务,该服务可能存在于设备上,也可能不存在。如果设备上不存在地理编码器,理论上地理编码请求将不返回任何结果。但是,如果由于没有后端地址解析器服务而没有结果,那么如何区分没有结果,因为位置没有意义?

我的应用已经需要Google Maps API,所以这可能是一个没有实际意义的点;作为次要问题,Google Maps API 始终是否包含地理编码器?

2 个答案:

答案 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,你需要一个地理编码器。