【问题标题】:Map marker won't leave screen once multiple are set on there, only if its single地图标记一旦设置多个就不会离开屏幕,只有当它的单个
【发布时间】:2016-05-19 18:02:11
【问题描述】:

我在 Android 上使用 Google 地图 API 时遇到问题。我有一个按钮,可以从地图界面中删除选定的标记,并从我设置的 SQLite db 中删除有关它的信息。虽然我唯一的问题是一旦地图上有多个标记,此功能就会停止并且不会删除它们:

下面显示了从地图中删除标记并替换它们的方法。正如我所说,这对单个标记非常有效,并且我的测试已经成功,但是对于多个它不起作用。

我有一个用于显示信息的标记的 onclicklisterner 和一个用于标记的弹出框,以便用户删除标记,他们必须单击将全局变量设置为该对象的标记,然后一旦按下删除按钮调用 removeMarker() 方法。 getAllMarkers() 方法循环通过 SQLite 数据库并提取信息并添加到地图中。

结束问题:在地图上放置多个标记时移除标记不起作用。仅当在地图上放置一个标记时才有效。

Marker lastOpened = null;

要从数据库中删除信息,if 语句中的条件如果已完成则返回一个布尔值:

if(this.mDbHelper.deleteLine(lastOpened.getTitle()))

删除方法

 public void removeMarker(){
        if(this.lastOpened != null){
            if(this.mDbHelper.deleteLine(lastOpened.getTitle())){
                lastOpened.remove();
                getAllMarkers();
            }
        }
    }

谢谢

【问题讨论】:

    标签: android google-maps


    【解决方案1】:

    您可以使用googleMap.clear() 或者您可以将您的标记存储在一个种类的集合中并在循环中删除它们:

    private ArrayList<Marker> mMarkers;
    ...
    private void removeMarkers() {
    for (Marker marker: mMarkers) {
    marker.remove();
    }
    mMarkers.clear();
    }
    

    这是一个相关的票证,讨论如何删除标记:Remove a marker from a GoogleMap

    【讨论】:

      猜你喜欢
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      相关资源
      最近更新 更多