Skip to content

An implementation of logarithmic zoom level getter & setter missed in MKMapView.

License

Notifications You must be signed in to change notification settings

stleamist/MKZoomLevel

Repository files navigation

version Swift: 5.0+ iOS: 9.0+ macOS: 10.11+ tvOS: 9.2+
Build on Xcode (latest) Build on Xcode (12 beta)
SwiftPM: compatible license contact: @stleamist

MKZoomLevel

MKZoomLevel is an implementation of zoom level getter & setter for MKMapView that works exactly the same as the private _zoomLevel property without resetting the camera angle.

Features

  • It returns exactly the same value as the internal _zoomLevel value as well as when the orientation or the angle is changed, which is in the MKMapView’s private API.
  • It preserves the value of heading and pitch of the camera property for a new zoom level as they are, rather than resetting the camera angle.
  • It returns the latest zoom level even when the animation of region change is not finished, in contrast with the camera property.

Usage

import MapKit
import MKZoomLevel

let mapView = MKMapView()

// Get the zoom level
mapView.zoomLevel

// Set the zoom level
mapView.zoomLevel = 16.0

// Set the zoom level with an animation
mapView.setZoomLevel(16.0, animated: true)

Installation

Swift Package Manager

Add this repository as a dependency in your Package.swift:

// swift-tools-version:5.0

import PackageDescription

let package = Package(
    ...,
    dependencies: [
        .package(url: "https://github.com/stleamist/MKZoomLevel.git", .upToNextMajor(from: "1.2.0"))
    ],
    ...
)

Xcode

Select File > Swift Packages > Add Package Dependency, then enter the following URL:

https://github.com/stleamist/MKZoomLevel.git

For more details, see Adding Package Dependencies to Your App.

License

MKZoomLevel is released under the MIT license. See LICENSE for details.

About

An implementation of logarithmic zoom level getter & setter missed in MKMapView.

Topics

Resources

License

Stars

Watchers

Forks

Languages