2012-01-16 82 views
0
 mMapController.animateTo(mAllSpots.get(0)); 
     mMapController.setCenter(mAllSpots.get(0)); 
     mMapController.setZoom(getZoomSize(mAllSpots)); 

有11個不同點,我想在'mapview'上顯示它們,同時我想看'mapview'上的所有11個點。那麼什麼是合適的縮放級別?謝謝。如何在'mapview'上設置合適的縮放級別?

回答

0
mMapController.animateTo(mAllSpots.get(0)); 

此1是用於指向裝置平移的特定地圖/限定位置爲給定的參數,

mMapController.setCenter(mAllSpots.get(0)); 

此圖1是用於根據給定的參數作爲位置值爲中心地圖

mMapController.setZoom(getZoomSize(mAllSpots)); 

這個1是套你需要使用此方法

mMapController.zoomToSpan(latSpan, longSpan); 
縮放級別

這裏的latSpan和longSpan是由maxlat-minlat和maxlng-minlng定義的,首先你需要找到minlat,minlng和maxlat,maxlng,而不是將它解釋爲任何你必須通過的值,將作爲縮放,動畫,中心一起

編輯

你需要找到的MapView這會給你的maplatspan喜歡假設你的積分獲得,

p1 = 20.212323,68.803209; 
p2 = 20.222342,68.889898; 
p3 = 22.212232,68.802093; 

現在明白了分LAT,minlng和maxlat,maxlng然後。減去它,這點是必然的rect點作爲矩形,並找到作爲當前矩形的中心點

minlat = 20.212232,minlng = 68.802093,maxlat = 22.212232,maxlng = 68.889898

latspan = maxlat - minlat,lngspan = maxlng - minlng

還需要轉換成的GeoPoint與像latspan * 1E6和lngspan * 1E6 1E6到乘以現在傳遞給函數

+0

非常感謝!但是,當我用這樣的代碼@覆蓋 \t保護無效在onStart(){ \t \t mMapController.zoomToSpan它不工作(mMapView.getLatitudeSpan(), \t \t \t \t mMapView.getLongitudeSpan()); \t \t super.onStart(); \t}你能給我一些建議嗎? – stream 2012-01-16 08:37:49

+0

檢查更新回答 – Pratik 2012-01-16 08:49:29

+0

尼斯。我已經解決了這個問題。謝謝。 – stream 2012-01-16 09:42:30

1

你應該使用ItemizedOverlay實現來顯示你的觀點。如果你這樣做,你也可以使用這些方便的方法爲你做所有的工作:

// Sets zoom to a level that will show all of your points. 
mapView.getController().zoomToSpan(itemizedOverlay.getLatSpanE6(), 
    itemizedOverlay.getLonSpanE6()); 

// Animates to center (mean, mean) of points. 
mapView.getController().animateTo(itemizedOverlay.getCenter());