Ios 根据swift中地图的缩放级别,在谷歌地图中显示一个区域内标记的数量

Ios 根据swift中地图的缩放级别,在谷歌地图中显示一个区域内标记的数量,ios,swift,google-maps,Ios,Swift,Google Maps,我正在为我的iOS应用程序使用GMap 我已经根据我们的数据添加了一组标记 但当地图缩小时,标记会相互重叠,这似乎不太好 我需要的是根据地图缩放级别显示标记的数量。这意味着如果两个标记相互重叠,则显示一个标签,并将文本2作为标记,依此类推……谷歌地图不提供此类API或委托函数来完成您的工作,但您可以做的是,每次缩小地图时,您都可以获得当前的缩放级别,并使用单个自定义的[2个位置]替换以前的标记马克 //替换标记 您可以创建一个从GMSMarker类继承的自定义标记类“MyMarker.class

我正在为我的iOS应用程序使用GMap

我已经根据我们的数据添加了一组标记

但当地图缩小时,标记会相互重叠,这似乎不太好


我需要的是根据地图缩放级别显示标记的数量。这意味着如果两个标记相互重叠,则显示一个标签,并将文本2作为标记,依此类推……

谷歌地图不提供此类API或委托函数来完成您的工作,但您可以做的是,每次缩小地图时,您都可以获得当前的缩放级别,并使用单个自定义的[2个位置]替换以前的标记马克

//替换标记

您可以创建一个从GMSMarker类继承的自定义标记类“MyMarker.class”,现在如果您想提供从数组到标记的数据索引,那么可以在“MyMarker.class”中添加一个变量markerID。将数据的数组索引指定给markerID,并根据缩放级别更改特定的标记

找到可见区域

func snapToMarkerIfItIsOutsideViewport(m: GMSMarker) {

    let region: GMSVisibleRegion = mapView.projection.visibleRegion()
    let bounds: GMSCoordinateBounds = GMSCoordinateBounds(region: region)
    if !bounds.containsCoordinate(m.position) {
        // marker is outside the visible map, do something
    }
}

您搜索的是
标记聚类

请参阅以下文档:

它使用ios utils:

如果标记对象是列表或数组,您可以从标记对象中获取计数。我对聚类很老练,我会更新自己的