2012-09-21 46 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)); 
} 
相關問題