如何缩放到特定标记 - osmdroid API(版本5.2@aar)

时间:2016-07-20 14:11:07

标签: android openstreetmap osmdroid

标记示例:

            Marker m = new Marker(mapOSM);
            //m.setTitle("LOL");
            m.setSnippet("bla bla bla);
            m.setPosition(new GeoPoint(cenario.getLatitude(), cenario.getLongitude()));

            Drawable icon = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_action_place, null);
            icon.setColorFilter(getResources().getColor(R.color.md_green_400), PorterDuff.Mode.MULTIPLY);

            m.setIcon(icon);

            mapOSM.getOverlays().add(m);

我知道如何动画到一个位置:

mapOSM.getController().animateTo(m.getPosition());

但是如何缩放到特定的标记?

2 个答案:

答案 0 :(得分:1)

丑陋的解决方案:

做到这一点

mapOSM.getController().setZoom(10);

然后去做

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            mapOSM.getController().animateTo(new GeoPoint(x, y));
        }
    }, 300);

答案 1 :(得分:0)

试试这个:

BoundingBoxE6 bBox = new BoundingBoxE6(iNorth, iEast, iSouth, iWest);

osmView.getController().zoomToSpan(bBox.getLatitudeSpanE6(), bBox.getLongitudeSpanE6());
osmView.getController().setCenter(bBox.getCenter());

获取您想要去的地方的边界框,然后缩放到适合您的Bbox的级别,并将视图的中心设置为框的中心。