使用的osmdroid地图库中没有'MapOverlayManager'和'overlayManager.getOverlays()'方法。根据osmdroid的文档,可以使用'ItemizedIconOverlay'类来管理覆盖物,并使用'overlayItems'属性获取所有的覆盖物。

下面是优化后的代码:

ItemizedIconOverlay<OverlayItem> overlay = (ItemizedIconOverlay<OverlayItem>) mapView.getOverlayManager().get(0);
List<OverlayItem> overlays = overlay.getItems();

// 遍历所有的覆盖物
for (OverlayItem overlayItem : overlays) {
    // 判断是否为弹窗覆盖物
    if (overlayItem instanceof InfoWindow) {
        // 移除弹窗覆盖物
        overlay.remove(overlayItem);
    }
}

注意:上面的代码假设地图上的第一个覆盖物是'ItemizedIconOverlay'类型的。如果不是,请根据实际情况调整代码。


原文地址: https://www.cveoy.top/t/topic/o27f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录