我在Android上使用Google Maps API时遇到问题。我有一个按钮,用于从地图界面中删除所选标记,以及我已设置的SQLite数据库中的相关信息。虽然我唯一的问题是地图上有多个标记,但此功能会停止并且不会删除它们:
下面显示了从地图中删除标记并替换它们的方法。正如我所说,使用单个标记可以很好地完成测试并且我的测试取得了成功,但是多次测试无效。
我有一个onclicklisterner用于显示信息的标记和标记的弹出框,供用户删除标记,他们必须单击标记,将全局变量设置为该对象,然后按下删除按钮调用removeMarker()方法。 getAllMarkers()方法遍历SQLite数据库并提取信息并添加到地图中。
结束问题:在地图上放置多个标记时删除标记不起作用。仅在地图上放置单个标记时才有效。
Marker lastOpened = null;
要从db中删除信息,if语句中的条件会返回一个布尔值(如果已完成):
if(this.mDbHelper.deleteLine(lastOpened.getTitle()))
删除方法
public void removeMarker(){
if(this.lastOpened != null){
if(this.mDbHelper.deleteLine(lastOpened.getTitle())){
lastOpened.remove();
getAllMarkers();
}
}
}
由于
答案 0 :(得分:1)
您可以使用googleMap.clear()
,也可以将您的标记存储在一个类似的集合中并将其删除:
private ArrayList<Marker> mMarkers;
...
private void removeMarkers() {
for (Marker marker: mMarkers) {
marker.remove();
}
mMarkers.clear();
}
此处的相关故障单讨论了如何删除标记:Remove a marker from a GoogleMap