Ermitteln des aktuellen Zoom-Levels einer MapView

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert