如何在'mapview'上设置合适的缩放级别?

时间:2012-01-16 06:30:39

标签: android location zoom android-mapview

        mMapController.animateTo(mAllSpots.get(0));
        mMapController.setCenter(mAllSpots.get(0));
        mMapController.setZoom(getZoomSize(mAllSpots));

有11个不同的点,我想在'mapview'上显示它们,同时,我想看到'mapview'上的所有11个点。那么适当的缩放级别是什么?感谢。

2 个答案:

答案 0 :(得分: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());

答案 1 :(得分: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;

现在得到minlat,minlng和maxlat,maxlng然后减去它,这个点被矩形点绑定为矩形并找到这个矩形的中心点

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

latspan = maxlat - minlat,lngspan = maxlng - minlng

你还需要转换为geopoint乘以1e6,如latspan * 1e6和lngspan * 1e6,现在传递给函数