【问题标题】:Display multiple InfoWindows using osmdroid使用 osmdroid 显示多个 InfoWindows
【发布时间】:2019-08-25 20:45:24
【问题描述】:

我想显示多个标记信息窗口来标记不同的路线。但是,只会显示最后创建的。

我的(相关)标记创建代码是:-

    if (routes.size() < 3) {
        Polyline roadOverlay = new Polyline();
        roadOverlay.setColor(polyClr.get(routes.size()));
        roadOverlay.setWidth(5f);
        roadOverlay.setPoints(waypoints);

        //  Add Route Marker

        Marker m = new Marker(map);
        double d = roadOverlay.getDistance()*5/8000;
        GeoPoint midpt = waypoints.get((int)(waypoints.size()/2));
        m.setTitle(rteDesc.get(routes.size())+" - "+String.format("%.2f miles",d));
        m.setSnippet("Tap to Save");
        m.setIcon(getResources().getDrawable(R.drawable.transparent));
        m.setPosition(midpt);
        m.showInfoWindow();
        rtemkrs.add(m);

        routes.add(roadOverlay);
    }

显示代码为:-

    for (int j = rtemkrs.size()-1; j>=0; j--) {
        map.getOverlays().add(rtemkrs.get(j));
    }
    map.invalidate();

我正在使用 osmdroid v 6.1.0 和 osmbonuspack v 6.6.0

如何显示多个标记信息窗口?

【问题讨论】:

    标签: infowindow osmdroid osmbonuspack


    【解决方案1】:

    默认情况下,所有标记都使用一个共享视图作为其信息窗口。因此只能显示一个视图。

    但是可以改变行为:

    • 您需要为每个标记创建一个MarkerInfoWindow 实例,例如这是默认标记的创建方式:new MarkerInfoWindow(R.layout.bonuspack_bubble, mMapView);
    • 您必须通过为每个标记调用 marker.setInfoWindow(...) (see method's javadoc) 将视图传递给标记

    【讨论】:

    • 完美!正是我正在寻找的。非常感谢(感谢您的快速回复)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多