【问题标题】:How can I use myLocation with Swift using Google Map SDK for iOS?如何使用适用于 iOS 的 Google Map SDK 将 myLocation 与 Swift 一起使用?
【发布时间】:2016-03-04 22:02:02
【问题描述】:

我正在使用 Google Map SDK 在 Xcode 中制作单视图应用程序。我已按照在线说明进行操作,我的应用程序可以成功加载谷歌地图视图。我还启用了myLocation,以便myLocation 按钮显示在地图视图上。

我知道点击 myLocation 按钮会自动更改相机位置,但我想知道如何使用myLocation 的数据(比如添加标记或添加路径节点)?

我试过直接访问mapView.myLocation,例如

let lat = mapView.myLocation?.coordinate.latitude
let long = mapView.myLocation?.coordinate.longitude
path.addCoordinate(CLLocationCoordinate2D(latitude: lat!, longitude: long!))

但是,这会使应用程序崩溃并抛出:

致命错误:在展开可选值时意外发现 nil

这个错误信息是什么意思,我应该如何解决这个问题?

【问题讨论】:

标签: ios swift google-maps-sdk-ios


【解决方案1】:

错误表明mapView 的myLocation 属性为零。你应该在访问它之前检查它是否有一个值。

if let myLocation = mapView.myLocation {
    let lat = myLocation.coordinate.latitude
    let long = myLocation.coordinate.longitude
    path.addCoordinate(CLLocationCoordinate2D(latitude: lat, longitude: long))
}

还要验证为什么myLocation 为零。可能是用户不允许定位服务。

【讨论】:

  • 感谢您的回答!我相信我已经打开了定位服务,因为应用程序用蓝点显示我的当前位置,并且 myLocation 按钮正常工作。在这种情况下,为什么 myLocation 变量会为零?
  • @CatSensei 编辑您的问题并显示您的 myLocation 按钮的代码。这可能有助于澄清一些问题,并在提及其他代码时始终尝试包含其他代码。
【解决方案2】:

这不会给出任何错误:

let lat = mapView.myLocation?.coordinate.latitude ??  give any value of latitude 
let long = mapView.myLocation?.coordinate.longitude ?? give any value of longitude

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多