【问题标题】:How do I zoom in on a location using mapkit in swift 2 (xcode)如何在 swift 2 (xcode) 中使用 mapkit 放大位置
【发布时间】:2015-10-14 02:50:48
【问题描述】:

当用户输入地址时,我试图放大地图上的一个点,例如一个无限循环。我希望它放大到街道级别的位置,但我不能因为上帝的爱让它放大。我试过弄乱区域、跨度等,但没有运气。这是我的代码的样子(我在视图中没有加载函数)......你会看到我已经注释掉了一些代码,因为我尝试了它并且没有任何反应。 my code 这是模拟器上的输出the output on simulator

【问题讨论】:

    标签: xcode swift location mapkit ios9


    【解决方案1】:

    为什么在geocodeAddressString闭包中定义func

    下面的代码怎么样?

        geocoder.geocodeAddressString(address, completionHandler: {(placemarks, error) -> Void in
            if (error != nil) {
                print("Error", error)
            }
    
            if let placemark = placemarks?.first {
                let span = MKCoordinateSpan(latitudeDelta: 0.0001, longitudeDelta: 0.0001)
                let coordinate = placemark.location!.coordinate
                let region = MKCoordinateRegion(center: coordinate, span: span)
                self.mapView.setRegion(region, animated: true)
            }
        })
    

    结果:

    【讨论】:

      【解决方案2】:

      使用var 表示跨度和区域,而不是let

      你需要去掉Map.setRegion前面的self

      还可以为跨度坐标尝试更大的数字,例如 0.40.5 或者你仍然可以使用0.0001,这并不重要。

      span = MKCoordinateSpanMake(0.4,0.4)

      var region = MKCoordinateRegion(center: **location variable goes in here** , span = span ) 
      Map.setRegion(region, animated: true) 
      

      【讨论】:

      • 感谢您的帮助,该方法有效,但出于某种原因(它可能只是我的模拟器)但是当它放大到该位置时,我看到的只是黄色方块(就像实际地图一样尚未加载。) - 有什么建议吗?
      • 我注意到有时模拟器只需要很长时间才能加载我在 WatchKit 上遇到了同样的问题;加载模拟器至少花了我 10 分钟。这可能是 IOS 9 的错误
      • 谢谢,请稍等!对大家有很大帮助
      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-11
      相关资源
      最近更新 更多