Это неправильный способ вычисления прямоугольника, который соответствует границам всех аннотаций.
Используйте это, он отображает аннотации в их координаты, а затем в MKMapRect
экземпляры.Функция reduce/union
вычисляет размер прямоугольника
let coordinates = mapView.annotations.lazy.filter{!($0 is DriverAnnotation)}.map{ $0.coordinate }
let rects = coordinates.map { MKMapRect(origin: MKMapPoint($0), size: MKMapSize()) }
let mapRect = rects.reduce(MKMapRect.null) { $0.union($1) }
mapView.setVisibleMapRect(mapRect, animated: true)
Или, намного проще (благодаря Sulthan)
let annotations = mapView.annotations.filter{!($0 is DriverAnnotation)}
mapView.showAnnotations(annotations, animated: true)