在iOS中删除Google地图群集中的特定标记

时间:2017-04-11 12:57:36

标签: ios swift google-maps-sdk-ios

我在谷歌地图中使用GMUClusterItem来加载项目。

我可以使用下面的代码(它的样本)加载项目

  let item = POIItem(position: CLLocationCoordinate2DMake(38.6646184, -120.9465773, name: "")           
  clusterManager.add(item)

工作正常

但我的问题是删除某个特定项目。

我尝试了以下代码

  let item = POIItem(position: CLLocationCoordinate2DMake(38.6646184, -120.9465773), name: "")
  clusterManager.remove(item)

但它不起作用

那里有错吗?如果是这样,请帮我删除特定项目。

由于

2 个答案:

答案 0 :(得分:3)

您的代码clusterManager.remove(item)会从地图中删除标记,但您是否刷新了地图?您需要再次调用clusterManager.cluster()来更新地图渲染。

DispatchQueue.main.async {
    self.clusterManager.cluster()
}

(使用Swift 3)

答案 1 :(得分:0)

使用POIItem创建数组

var markers: [POIItem] = []

在添加到集群

之前将POIItem附加到数组
markers.append(item)

何时要从群集中删除标记

if let marker = markers.first as? GMUClusterItem { 
   clusterManager.remove(marker)
}