如何计算Android Geocoder结果的缩放级别

| 我正在使用Android的Geocoder来允许在基于地图的应用程序中搜索位置。地理编码效果很好,并且该应用程序已成功将MapView更新到地理编码结果中。问题是我不知道移动到新位置时要使用什么缩放级别。
location_query
参数可以是街道,也可以是国家-我如何知道放大多远才能显示最终位置?也就是说,我用replace1代替什么?
public void goToPlace(String location_query) {

    List<Address> addresses;
    Geocoder gc = new Geocoder(_ctx);

    addresses = gc.getFromLocationName(location_query, 1);
    if (addresses != null) {
        Address a = addresses.get(0);
        int lat = (int) (a.getLatitude() * 1E6);
        int lon = (int) (a.getLongitude() * 1E6);
        mapController.animateTo(new GeoPoint(lat, lon));
        mapController.setZoom(???);
    }
}
    
已邀请:
我的想法是使用方法ѭ3选择合适的缩放级别。正如文档所说:   返回由给定索引编号的地址的行(从0开始);如果不存在这样的行,则返回null。 因此,对于一个国家/地区,它只返回1行地址,对于城市2行,对于街道3行。对于每种情况,您可以使用不同的缩放级别。     
Android地理编码API仅提供纬度和经度。另一方面,Web Geocoding API提供了缩放地图所需的纬度,经度和视口。结论是,在Google决定扩展其Android API之前,您需要使用Web API来获取丢失的视口缩放数据。 幸运的是,借助GeocoderPlus库,使用Web API并不难,它为您完成了所有Web API请求和JSON解析,并且仅返回Java对象作为结果。它具有类似于本机Geocoder的界面,并且可以JAR格式提供,可以包含在您的Android应用中。 查看下面的博客文章以了解用法: http://bricolsoftconsulting.com/perfect-geocoding-zoom-part-2/     
您可以执行setZoom(18)或类似的操作,因为只有一点需要显示。 如果您有多个点,则需要的是zoomToSpan。您需要做的是找到最小和最大纬度对,然后将两者之间的差值传递给上述函数,以获得最佳缩放级别。     

要回复问题请先登录注册