从GMSMapView中移除所有GMSMarker?

19

我在GMSMapView上放置了100个GMSMarkers。如何删除所有的GMSMarkers?

在iOS的Google SDK版本1.6中,用于保存GMSMarkers列表的标记数组(在GMSMapView(Overlays)文件中)已被弃用。通过使用这种方法,我可以从GMSMapView中移除所有的GMSMarker。

是否有其他方法可以在iOS中从GMSMapView中删除所有GMSMarker?

7个回答

43

使用[mapView clear]来实现所需功能。:-)

更新:

Swift:

mapView.clear()

10
他们已经不建议使用那些方法,但是你可以使用[mapView clear]从地图中删除所有覆盖物。这包括所有标记、折线和地面叠加层。
希望对你有所帮助!

2
如果您只想删除标记,而不想删除折线和地面叠加层,有没有方法可以获取已添加标记的列表? - Michael

5
将所有标记添加到NSMutableArray中,就像将它们添加到地图中一样。然后,当您需要删除它们时,遍历该数组并将每个标记的.map属性设置为nil。

2

Swift 5.x

如果某人想要清除特定的marker,可以使用以下代码:

marker.map = nil

如果您想要从地图上删除所有内容,例如polylinemarker等,请使用以下代码:

self.mapView.clear()

这将从地图上清除所有内容。


1

Swift 4.x

self.mapView.clear()

0

您可以通过将GMSMarker的地图属性设置为nil来从地图中删除标记。

marker.map = nil

或者,您可以调用GMSMapView的清除方法来删除地图上当前所有叠加层(包括标记)。

mapView.clear()

这里是官方文档:移除标记


0
尝试......
[self.MapView clear];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接