我在iOS应用程序中使用GMap。
我已经根据我们的数据添加了一组标记。
但是当地图缩小时,标记会相互重叠,这似乎不太好。
我需要根据地图缩放级别显示标记的数量或数量。意味着如果2个标记彼此重叠,则显示单个标签,文本2作为标记,依此类推......
答案 0 :(得分:1)
Google地图不提供此类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
}
}
答案 1 :(得分:1)
您搜索的内容为marker clustering
请参阅Google Maps iOS SDK: Marker Clustering
中的此文档它使用ios utils: https://github.com/googlemaps/google-maps-ios-utils