在Swift中按计算距离对数组进行排序

前端之家收集整理的这篇文章主要介绍了在Swift中按计算距离对数组进行排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一组自定义对象,它们具有Double纬度和Double经度值.我想根据从特定点到阵列中每个项目的位置的计算距离对数组进行排序.我有一个函数,将根据纬度和经度值计算距离.有没有简单的方法来完成这种排序?
假设您有一个适合您的对象的模型位置:
class Place {
    var latitude: CLLocationDegrees
    var longitude: CLLocationDegrees

    var location: CLLocation {
        return CLLocation(latitude: self.latitude,longitude: self.longitude)
    }

    func distance(to location: CLLocation) -> CLLocationDistance {
        return location.distance(from: self.location)
    }
}

然后一个数组var放置:[Place]可以这样排序:

places.sort(by: { $0.distance(to: myLocation) < $1.distance(to: myLocation) })

猜你在找的Swift相关文章