如何使用Google Map SDK for iOS将myLocation与Swift一起使用?

时间:2016-03-04 22:02:02

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

我正在使用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!))

但这会使应用程序崩溃并抛出“致命错误:在展开Optional值时意外发现nil”。 这个错误信息告诉我什么?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

错误表示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为零的原因。可能是用户不允许位置服务。

答案 1 :(得分:-1)

这不会出现任何错误:

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