我已经添加了有关片段活动的地图,并使用addMarker函数添加了几个标记,但是我能够删除所有标记,并收到有关标记列表的通知,
现在我想删除所有标记并添加新标记。
一种将所有标记保留在列表中并一一删除的方法(marker.remove())
有没有更好的办法清除所有标记。
我已经添加了有关片段活动的地图,并使用addMarker函数添加了几个标记,但是我能够删除所有标记,并收到有关标记列表的通知,
现在我想删除所有标记并添加新标记。
一种将所有标记保留在列表中并一一删除的方法(marker.remove())
有没有更好的办法清除所有标记。
Answers:
如果您想清除“地图上的所有标记,叠加层和折线”,请在上使用clear()
GoogleMap
。
Marker
从地图对象分开,你需要让那些去。clear()
会从视觉上将它们移除。
clear()
功能不会重置Marker
ID。基本上,您不会m0
再为新Marker
添加的内容了。
如果您不希望清除折线,则仅需要删除标记,请按照以下步骤操作。
首先创建一个新的标记数组,如下所示
List<Marker> AllMarkers = new ArrayList<Marker>();
然后,当您在Google地图上添加标记时,还将它们添加到标记数组(在此示例中为AllMarkers)
for(int i=0;i<places.length();i++){
LatLng location = new LatLng(Lat,Long);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(location);
markerOptions.title("Your title");
Marker mLocationMarker = Map.addMarker(markerOptions); // add the marker to Map
AllMarkers.add(mLocationMarker); // add the marker to array
}
然后最后调用下面的方法一次删除所有标记
private void removeAllMarkers() {
for (Marker mLocationMarker: AllMarkers) {
mLocationMarker.remove();
}
AllMarkers.clear();
}
从任何地方致电以删除所有标记
removeAllMarkers();
当我在寻找一种只删除地图标记而不清除折线的方法时,我找到了这种解决方案。希望这也会对您有帮助。