-1

我需要得到一个只有坐标的 CLLocation 数组,如下所示:

var locations = [CLLocation(latitude: 38.5, longitude: -120.2),
        CLLocation(latitude: 40.7000, longitude: -120.95000),
        CLLocation(latitude: 43.25200, longitude: -126.453000)]

我目前正在像这样保存每个位置:

var locationArray: [CLLocation] = []

在 didUpdateLocations 中:

locationArray.append(locations[0] as CLLocation)

但我总是得到的是这样的:

[<-122.02684687,+37.32956209> +/- 0.00m(速度 -1.00 mps / 航向 -1.00)@ 2014 年 10 月 9 日下午 2:12:49 中欧夏令时间,<-122.02685248,+37.32959580> +/ - 0.00m(速度 -1.00 mps / course -1.00)@ 2014 年 10 月 9 日下午 2:12:49 中欧夏令时,<-122.02685221,+37.32963096> +/- 0.00m(速度 -1.00 mps / course -1.00) @ 10/9/14, 2:12:49 PM 中欧夏令时间, <-122.02685460,+37.32966692> +/- 0.00m (速度 -1.00 mps / course -1.00) @ 10/9/14,中欧夏令时间下午 2:12:49

我尝试将其转换为 CLLocationCoordinate2D,但我总是得到完整的位置数组,而不是上面的示例。我也尝试过这样的事情:

for (index,element) in enumerate(locationArray) {

        var cllocation = CLLocation(latitude: element.coordinate.longitude, longitude: element.coordinate.latitude)

        coordinatesArray.append(cllocation)

    }

但这也会返回完整的位置数组。我做错了什么?我怎样才能创建一个只有坐标的 CLLocation 数组?如果你能指出我正确的方向,那就太棒了。

4

2 回答 2

1

怎么样:

var locationArray: [CLLocationCoordinate2D] = []
locationArray.append(CLLocationCoordinate2D(latitude: ..., longitude: ...))

CLLocation包含所有其他的东西,比如course, altitude, 准确度...

CLLocationCoordinate2D只包含纬度和经度。

于 2014-10-09T12:26:11.953 回答
0

您可以迭代抛出 CLLocationCoordinate2D 数组并将其转换为 CLLocation。CLLocation 有一个适当的初始化方法(- (instancetype)initWithLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude

于 2014-10-09T12:27:08.913 回答