android – OSMDroid:缩放以显示整个PathOverlay

前端之家收集整理的这篇文章主要介绍了android – OSMDroid:缩放以显示整个PathOverlay前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@

我需要用很多(~400)点填充我的叠加层,将它们添加到PathOverlay然后设置缩放级别,以便用户可以在屏幕上看到整个路径.

一个解决方案是保持最大经度,最小经度,并在最后根据这4个数字计算(这是我还没想到的部分,因为我不知道int是怎么回事在与地图上的距离相关的setZoom()中计算适当的缩放级别.然后我会使用setCenter()方法.

有没有更简单的方法来使用OSMDroid?如果没有,我应该如何确定正确的缩放级别?

最佳答案
这个问题已经过时了,但没有确定的答案,所以我会发布我的:

我每天都使用这个片段.这将处理刚刚创建了地图视图的情况.事实上,您可能希望缩放到边界框作为地图的开始行为.如果在显示视图之前调用方法,它将注册一个侦听器,以便在视图准备就绪后立即执行缩放.

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);

    }

猜你在找的Android相关文章