java - 如何从 Osmdroid map 上删除标记

标签 java android dictionary osmdroid

我正在创建一个 Android 应用程序,我需要在 map 上设置标记。由于我的应用程序需要离线功能,我需要使用 Osmdroid 来解决这个问题。现在我的问题是 map 上的标记,我可以使用标记或 ItemizedOverlay 轻松添加它们,但我遇到的问题是我无法从 map 上删除标记。

我用于添加标记的代码是这样的:

    Marker marker = new Marker(mapView);
    marker.setPosition(new GeoPoint(41.3746312,19.7710733));
    marker.setIcon(getResources().getDrawable(R.drawable.marker));
    marker.setImage(getResources().getDrawable(R.drawable.marker));
    marker.setTitle("Marker");
    marker.setInfoWindow(null);
    marker.showInfoWindow();
    mapView.getOverlays().add(marker);
    mapView.invalidate();

但我在删除它们时遇到了问题,因为删除它的唯一方法是:

    mapView.getOverlays().clear();

我需要删除一个特定的标记,而不是同时删除所有标记。

最佳答案

要删除特定标记,您应该使用:

    mapView.getOverlays().remove(overlay);
    mapView.invalidate();

关于java - 如何从 Osmdroid map 上删除标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54574152/

相关文章:

java - 所有数据库查询的全局 hibernate 过滤器

android - 无法在设备 : Too many open files 上安装 ClubDangoV2Released.apk

python - 在 python 中已排序的 ("Error"字典的零索引位置插入列名称为 "Count", "error")

Python JSON/Dict 搜索和值更新

Java抽象类包含一个map变量,子类使用不同的实现初始化map

java - 确定单元测试的内容和不测试的内容

java - 如何在java中的接口(interface)中使泛型参数可选?

java - 使用链表上的递归进行快速排序

android - 通过 Intent 发送短信

java - 我该如何做 AsyncLayoutInflater onCreate