mMapView.setXSpan((int) ((right - left) * 1.1E6));
mMapView.setYSpan((int) ((top - bottom) * 1.1E6));
right是你两个地点中较大经度,left是你两个地点中较小的经度,top是你两个地点中较大的纬度,bottom是你两个地点中较小的纬度。具体显示可自己调整。

解决方案 »

  1.   

    百度新版的地图没有 setXSpan 函数了。我期待根据两个经纬度和屏幕像素大小,来决定当前的缩放度。
      

  2.   

    我通过查表法来做,貌似达到一点效果,当经纬度跨度不同时,缩放级别也会调整,并且调整也符合预期,当然还没有将全部的缩放级别都测试到了。
    int zoomLevel[] = {2000000,1000000,500000,200000,100000,
    50000,25000,20000,10000,5000,2000,1000,500,100,50,20,0};  final double midlat = (maxlat+minlat)/2;
    final double midlon = (maxlon+minlon)/2;
    LatLng latlon = new LatLng(midlat, midlon);
    int jl = (int)DistanceUtil.getDistance(new LatLng(maxlat, maxlon), new LatLng(minlat, minlon));
    int i;
    for(i=0;i<17;i++){
    if(zoomLevel[i]<jl){
    break;
    }
    }
    float zoom = i+4;
    MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(latlon, zoom);