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