我需要用很多(~400)点填充我的叠加层,将它们添加到PathOverlay然后设置缩放级别,以便用户可以在屏幕上看到整个路径.
一个解决方案是保持最大经度,最小经度,并在最后根据这4个数字计算(这是我还没想到的部分,因为我不知道int是怎么回事在与地图上的距离相关的setZoom()中计算适当的缩放级别.然后我会使用setCenter()方法.
有没有更简单的方法来使用OSMDroid?如果没有,我应该如何确定正确的缩放级别?
最佳答案
这个问题已经过时了,但没有确定的答案,所以我会发布我的:
原文链接:https://www.f2er.com/android/430971.html我每天都使用这个片段.这将处理刚刚创建了地图视图的情况.事实上,您可能希望缩放到边界框作为地图的开始行为.如果在显示视图之前调用此方法,它将注册一个侦听器,以便在视图准备就绪后立即执行缩放.
map是我的MapView
public void zoomToBounds(final BoundingBox Box) {
if (map.getHeight() > 0) {
map.zoomToBoundingBox(Box,true);
} else {
ViewTreeObserver vto = map.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
map.zoomToBoundingBox(Box,true);
ViewTreeObserver vto2 = map.getViewTreeObserver();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
vto2.removeGlobalOnLayoutListener(this);
} else {
vto2.removeOnGlobalLayoutListener(this);
}
}
});
}
}
以下是如何从GeoPoints列表中获取boundingBox
public BoundingBox computeArea(ArrayListBox(nord,est,sud,ovest);
}