Я работаю над приложением iOS swift, которое отображает изображения в виде аннотаций на карте.Когда несколько аннотаций перекрываются, они должны кластеризоваться и вместо этого показываться как одно из изображений.
Кластеризация, предоставляемая яблоком, иногда не работает.При уменьшении и многократном увеличении существует вероятность того, что изображения сильно перекрываются.
Вот как это должно выглядеть: ![This is how it should look](https://i.stack.imgur.com/QfqJz.png)
Вот как это выглядит при возникновении ошибки: ![This is how it looks when the bug occurs](https://i.stack.imgur.com/cYZAO.jpg)
Я загрузил пример видео на Youtube(https://youtu.be/kaI0bTS8_HY)
Некоторые подробности о реализации:
Я использую специализированный MKAnnotationView:
class PhotoAnnotationView: MKAnnotationView {
let annotationWidth = 100
var imageView = UIImageView()
override init(annotation: MKAnnotation?, reuseIdentifier: String?) {
super.init(annotation: annotation, reuseIdentifier: reuseIdentifier)
clusteringIdentifier = "LocatedPhoto"
collisionMode = .circle
addSubview(imageView)
imageView.frame = annotationFrame
frame = annotationFrame
}
var annotationFrame: CGRect {
return CGRect(x: 0, y: 0, width: annotationWidth, height: annotationWidth)
}
override var annotation: MKAnnotation? {
willSet {
if let annotation = newValue as? PhotoAnnotation {
let url = annotation.locatedPhoto.thumbnailURL
let displayLocation = annotation.displayLocation
setImage(url: url)
}
}
}
func setImage(url: URL) {
//...
}
}
MapViewController регистрирует этот тип аннотации для отображения аннотаций:
mapView.register(PhotoAnnotationView.self, forAnnotationViewWithReuseIdentifier: MKMapViewDefaultAnnotationViewReuseIdentifier)
Пропущен, потому что я думаю, что это не источник проблемы: - MKClusterView (ошибка также присутствует в обычном ClusterView) - Добавление аннотаций кпредставление карты
Что может быть источником этой проблемы?