2012-09-21 48 views
0

我的地图视图包含许多精确点。当用户进行该活动时,地图应该放大到这样的水平,正确的3品脱可见。地图不应该放大或多或少,它应该是三个。我知道缩放地图的水平可以通过代码在0到21之间变化。但是有没有什么办法可以设置缩放水平,使得在两种情况下都可以看到确切的3个针脚,如果针脚远或接近正确3应该是可见的?API中是否有任何功能来设置?如何设置地图视图的缩放级别,使三个针脚可见?

回答

2

点数是您希望在地图上可见的所有地点。

private void Zoom() { 
    int minLatitude = Integer.MAX_VALUE; 
    int maxLatitude = Integer.MIN_VALUE; 
    int minLongitude = Integer.MAX_VALUE; 
    int maxLongitude = Integer.MIN_VALUE; 

    for (GeoPoint p : points) { 
     int lati = p.getLatitudeE6(); 
     int lon = p.getLongitudeE6(); 

     maxLatitude = Math.max(lati, maxLatitude); 
     minLatitude = Math.min(lati, minLatitude); 
     maxLongitude = Math.max(lon, maxLongitude); 
     minLongitude = Math.min(lon, minLongitude); 
    } 
    mapController.zoomToSpan(Math.abs(maxLatitude - minLatitude), 
      Math.abs(maxLongitude - minLongitude)); 
    mapController.animateTo(new GeoPoint((maxLatitude + minLatitude)/2, 
      (maxLongitude + minLongitude)/2)); 
} 
相关问题