Swift Mapkit 最大最小缩放

Des*_*ond 1 uiscrollview mapkit ios swift

我似乎无法找到我的问题的最佳答案。

我有这个“OK”但不知道的代码

func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {

        print(mapView.camera.altitude)
        if mapView.camera.altitude < 800.00 && !modifyingMap
        {
            modifyingMap = true
            mapView.camera.altitude = 800.00
            modifyingMap = false
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想在我的应用程序中将用户的最大和最小缩放限制到我的地图。

非常感谢任何指向 SO 答案的链接!

谢谢!

Kos*_*awa 6

您可以使用mapView:regionDidChangeAnimated:委托方法来侦听区域更改事件,如果该区域比您的最大/最小区域更宽/更窄,请将其设置回最大/最小区域,setRegion:animated:以向您的用户指示他们无法缩小/那么远。

例如

func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
    let coordinate = CLLocationCoordinate2DMake(mapView.region.center.latitude, mapView.region.center.longitude)
    var span = mapView.region.span
    if span.latitudeDelta < 0.002 { // MIN LEVEL
        span = MKCoordinateSpanMake(0.002, 0.002)
    } else if span.latitudeDelta > 0.003 { // MAX LEVEL
        span = MKCoordinateSpanMake(0.003, 0.003)
    }
    let region = MKCoordinateRegionMake(coordinate, span)
    mapView.setRegion(region, animated:true)
}
Run Code Online (Sandbox Code Playgroud)


Exe*_*thm 5

试试这个:

 mapView.cameraZoomRange = MKMapView.CameraZoomRange(
            minCenterCoordinateDistance: 1000, // Minimum zoom value
            maxCenterCoordinateDistance: 10000) // Max zoom value
Run Code Online (Sandbox Code Playgroud)