Итак, я попытался реализовать ClusterKit proj , чтобы кластеризовать аннотации / (возможно, полилинии) (, учитывая, что Mapbox не имеет такой функциональности ) в моем приложении, но этоне похоже на работу.Никаких ошибок или чего-то еще, это просто ничего не делает, и я не уверен, что делаю неправильно.
Вот соответствующий код:
viewDidLoad() {
let algorithm = CKNonHierarchicalDistanceBasedAlgorithm()
algorithm.cellSize = 200
mapView1.clusterManager.algorithm = algorithm
fetchData() //This is a call to firebase I add the annotations to an array of them inside an annotations object.
setupCluster() //This gest called multiple times IDK why, not sure if its the issue but I have been unable to change this
}
func setupCluster() {
mapView1.clusterManager.marginFactor = 1
print(ObjAnnotationArray.annotations, " These are teh annotations")
mapView1.clusterManager.annotations = ObjAnnotationArray.annotations
}
Это методы delagete, где я добавил функциональность, как указано в документах ,
` @nonobjc func mapView(_ mapView: MGLMapView, regionDidChangeAnimated animated: Bool) {
print("Change ")
mapView.clusterManager.updateClustersIfNeeded()
}
` func mapView(_ mapView: MGLMapView, didSelect annotation: MGLAnnotation) {
print(annotation," ",(annotation as? CKCluster)?.count, " also: ",annotation as? CKCluster)
if let cluster = annotation as? CKCluster, cluster.count > 1 {
print("inside if the k=cluser functionaluty")
let edgePadding = UIEdgeInsets(top: 40, left: 20, bottom: 44, right: 20)
let camera = mapView.cameraThatFitsCluster(cluster, edgePadding: edgePadding)
mapView.setCamera(camera, animated: true)
}
}
Любая помощь / предложения о том, как решить эту проблему?
Я посмотрел здесь их пример но я не могу найти решение там сам.
Также, вот вики о том, как реализовать, за которой я следовал.