如何将位置:[CLLocation] 转换为 Coordinate2D?

Posted

技术标签:

【中文标题】如何将位置:[CLLocation] 转换为 Coordinate2D?【英文标题】:how convert locations: [CLLocation] to Coordinate2D? 【发布时间】:2017-12-08 08:55:53 【问题描述】:

cat如何获取didUpdateLocation委托的坐标位置?

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 

请帮帮我。谢谢

【问题讨论】:

CLLocation().coordinate ? developer.apple.com/documentation/corelocation/cllocation/… 这是一个简单的属性。然后检查数组的第一个还是最后一个值? 我想要第一个位置的拳头值 @user9071596,let coordinate: CLLocationCoordinate2D? = locations.first?.coordinate,可能。 【参考方案1】:
 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 

 location = locations.last!

【讨论】:

【参考方案2】:

这个问题的简单答案:

(locations.first?.coordinate)!

【讨论】:

为什么要先使用?,然后再使用!?为什么不直接locations.first!.coordinate?或locations[0].coordinate? @Sulthan 不幸的是,编译器建议在访问可选链表达式的非可选属性时使用该语法。而且很多人没有仔细检查编译器的建议?【参考方案3】:

请在发帖前做一些研究。

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
    let coordinate = locations.first?.coordinate

CLLocation Documentation

位置管理器为您提供一组位置,只需获取第一个位置,然后访问坐标属性。

【讨论】:

【参考方案4】:
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: AnyObject[]!) 
        var locationArray = locations as NSArray
        var locationObj = locationArray.lastObject as CLLocation
        var coord = locationObj.coordinate

        println(coord.latitude)
        println(coord.longitude)

【讨论】:

【参考方案5】:

另一种方式:

let lastLocation = locations.flatMap( $0.coordinate ).last

【讨论】:

以上是关于如何将位置:[CLLocation] 转换为 Coordinate2D?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中将 CLLocation 转换为 MKMapItem

[CLLocation] 和 CLLocation 的区别

将 CLLocation 或 CLLocationCoordinate2D 转换为 CGPoint

无法从用户位置 SwiftUi 更新 CLLocation()

Swift 中的 CLLocation 管理器获取用户的位置

快速将 PFGeoPoint Lat 和 Long 从 Parse 转换为 CLLocation Lat 和 Long