2012-01-16 80 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());