Я добавляю 500 маркеров на карту Google и использую для них кластеризацию. Я использовал пользовательские GMSMarkers, установив свойство iconView. Это хорошо делает кластер и кластер растворяется, чтобы создать отдельные маркеры. Но когда я пытаюсь увеличить масштаб изображения, GMSMarker исчезает. Я использую язык swift для iOS.
func addClusters(_ tolls: [TollInfo]) {
let iconGenerator = GMUDefaultClusterIconGenerator(buckets: [ 9,10,100, 200, 500 ], backgroundImages: [UIImage.init(named: "clustericon1")!,UIImage.init(named: "clustericon2")!,UIImage.init(named: "clustericon3")!,UIImage.init(named: "clustericon3")!,UIImage.init(named: "clustericon3")!])
let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm()
let renderer = GMUDefaultClusterRenderer(mapView: mapView, clusterIconGenerator: iconGenerator)
renderer.delegate = self
self.clusterManager = GMUClusterManager(map: mapView, algorithm: algorithm, renderer: renderer)
self.enumerateAllTollInfosOnMap(tolls)
self.clusterManager.cluster()
self.clusterManager.setDelegate(self, mapDelegate: self)
}
// Arrange all the pins of toll
func enumerateAllTollInfosOnMap(_ tolls: [TollInfo]) {
mapView.clear()
self.clusterManager.clearItems()
for toll in tolls {
let coordinate = CLLocationCoordinate2D(latitude: toll.latitude, longitude: toll.longitude)
let markerView = Utilities.createTollMarkerView(toll.name ?? "", toll.isActive)
let marker = GMSMarker()
marker.userData = toll.tollId
marker.iconView = markerView
marker.tracksViewChanges = true
let item = POIItem.init(position: coordinate, marker: marker, userData: toll)
self.clusterManager.add(item)
}
}
Я добавляю ссылку на GitHub, например, код