【发布时间】:2015-09-21 19:06:46
【问题描述】:
我正在尝试按与当前位置的距离对数组进行排序。下面首先你会看到organizationObject,它包含不同的值,然后我们有位置,它是一个不同位置的数组。之所以是array,是因为一个组织可以有多个位置。然后在我的 ViewController 中,我创建了一组测试对象并附加到一个数组中。我的问题是如何根据 distanceFromLocation 对 orgArray 进行排序?如果位置数组中有多个位置,则应取最近的一个。
组织对象
class OrganizationObject {
var id: Int
var name: String
var image: UIImage
var locations: [CLLocationCoordinate2D]
init(id: Int, name: String, image: UIImage, locations: [CLLocationCoordinate2D]) {
self.id = id
self.name = name
self.image = image
self.locations = locations
}
}
将测试对象附加到数组。在 viewDidLoad
orgArray.append(OrganizationObject(id: 0, name: "Statens Museum For Kunst", image: UIImage(named: "statensmuseum.jpg")!, locations: [CLLocationCoordinate2D(latitude: 55.6888127, longitude: 12.578330300000061)]))
orgArray.append(OrganizationObject(id: 0, name: "7 eleven", image: UIImage(named: "7eleven.jpg")!, locations: [CLLocationCoordinate2D(latitude: 58.334682, longitude: 8.231820900000002)]))
orgArray.append(OrganizationObject(id: 0, name: "Kongens have", image: UIImage(named: "kongenshave.jpg")!, locations: [CLLocationCoordinate2D(latitude: 55.6852905, longitude:12.579845200000022)]))
orgArray.append(OrganizationObject(id: 0, name: "Magasin du nord", image: UIImage(named: "magasin.jpg")!, locations: [CLLocationCoordinate2D(latitude: 50.6456604, longitude: 3.053486600000042), CLLocationCoordinate2D(latitude: 55.7835017, longitude: 12.370985799999971)]))
【问题讨论】: