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

问题描述 投票:0回答:2
        mMapController.animateTo(mAllSpots.get(0));
        mMapController.setCenter(mAllSpots.get(0));
        mMapController.setZoom(getZoomSize(mAllSpots));

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

android location zoom android-mapview
2个回答
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,mining和maxalt,maxing然后减去它,这个点被矩形点绑定为矩形并找到这个矩形的中心点

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

latspan = maxlat - minlat,lngspan = maxlng - minlng

你也需要转换成一个地方点乘以1e6,如latspan * 1e6和lngspan * 1e6,现在传递给函数


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());
© www.soinside.com 2019 - 2024. All rights reserved.