MapKit缩放按钮

问题描述:

我的问题是关于地图服务我现在正在使用具有自定义tile服务的地图我需要添加两个按钮或步进器来放大和缩小,我使用MapKit库。有人可以帮助吗?MapKit缩放按钮

+1

我有答案,但在目标C –

退房答案

switch sender.tag { 
    case 10: 
    //Zoom In 

     var region: MKCoordinateRegion = map_view.region 
     region.span.latitudeDelta /= 2.0 
     region.span.longitudeDelta /= 2.0 
     map_view.setRegion(region, animated: true) 
    case 20: 

    //Zoom Out 
     var region: MKCoordinateRegion = map_view.region 
     region.span.latitudeDelta = min(region.span.latitudeDelta * 2.0, 180.0) 
     region.span.longitudeDelta = min(region.span.longitudeDelta * 2.0, 180.0) 
     map_view.setRegion(region, animated: true) 
} 
+0

Thnx花花公子对我的问题简单而容易 – Saneth

这里是

let region = MKCoordinateRegionMake(self.mapView.region.center, MKCoordinateSpanMake(mapView.region.span.latitudeDelta*0.7, mapView.region.span.longitudeDelta*0.7)) 
mapView.setRegion(region, animated: true) 

在迅速3

变焦答案变焦出

let zoom = getZoom() // to get the value of zoom of your map. 
    if zoom > 3.5{ // **here i have used the condition that avoid the mapview to zoom less then 3.5 to avoid crash.** 

      let region = MKCoordinateRegionMake(self.mapView.region.center, MKCoordinateSpanMake(mapView.region.span.latitudeDelta/0.7, mapView.region.span.longitudeDelta/0.7)) 
      mapView.setRegion(region, animated: true) 
     } 

在这里你可以得到多少的地图视野放大。

func getZoom() -> Double { 

    var angleCamera = self.mapView.camera.heading 
    if angleCamera > 270 { 
     angleCamera = 360 - angleCamera 
    } else if angleCamera > 90 { 
     angleCamera = fabs(angleCamera - 180) 
    } 
    let angleRad = Double.pi * angleCamera/180 
    let width = Double(self.view.frame.size.width) 
    let height = Double(self.view.frame.size.height) 
    let heightOffset : Double = 20 
    let spanStraight = width * self.mapView.region.span.longitudeDelta/(width * cos(angleRad) + (height - heightOffset) * sin(angleRad)) 
    return log2(360 * ((width/256)/spanStraight)) + 1; 
} 

它适用于我。

+0

日Thnx花花公子它也能工作 – Saneth

+0

欢迎兄弟如果有的话,然后问我。 –