Um den aktuellen Zoom-Level einer MapView zu ermitteln, kann folgende Funktion genutzt werden:
// Get the current zoom level of the map // mRect = self.map.visibleMapRect // viewSizeInPixel = self.map.frame.size func getZoomLevel(mRect: MKMapRect, viewSizeInPixel: CGSize) -> Int { let MAX_ZOOM = 20 // 20 is the maximum zoomlevel with MapKit var zoomLevel: Int = MAX_ZOOM let zoomScale: MKZoomScale = CGFloat(mRect.size.width) / viewSizeInPixel.width let zoomExponent: Double = log2(Double(zoomScale)) zoomLevel = Int(MAX_ZOOM - ceil(zoomExponent)) return zoomLevel }
Die Original-Funktion (in Objective-C geschrieben) gibt es bei Stack Overflow, lediglich der Funktionsname wurde angepasst.