CLLocation получить только координаты
Мне нужно получить массив 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,00 м (скорость -1,00 м / с / курс -1,00) @ 09.10.14, 14:12:49 летнее время в Центральной Европе, <-122.02685248, + 37,32959580> + / - 0,00 м (скорость -1,00 м / с / курс -1,00) @ 09.10.14, 14:12:49 Лето в Центральной Европе, <-122.02685221, + 37,32963096> +/- 0,00 м (скорость -1,00 м / с / курс -1.00) @ 09.10.14, 14:12:49 Летнее время в Центральной Европе, <-122.02685460, + 37.32966692> +/- 0.00m (скорость -1.00 м / с / курс -1.00) @ 09.10.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 только с координатами? Если вы можете указать мне правильное направление, это было бы здорово.
2 ответа
Как насчет:
var locationArray: [CLLocationCoordinate2D] = []
locationArray.append(CLLocationCoordinate2D(latitude: ..., longitude: ...))
CLLocation
содержит все остальные вещи, как course
, altitude
, точность...
CLLocationCoordinate2D
просто содержит широту и долготу.
Вы можете выполнить итерацию через массив CLLocationCoordinate2D и преобразовать его в CLLocation. CLLocation имеет соответствующий метод init ( - (instancetype) initWithLatitude:(CLLocationDegrees) широта долгота:(CLLocationDegrees) долгота.