Создание константы из свойств, возвращаемых из массивов - PullRequest
0 голосов
/ 12 сентября 2018

В основном у меня есть два массива, один из которых содержит широты, а другой - долготы (очевидно, что реальные массивы намного длиннее).то есть:

latArray = [50.456782, 57.678654]
longArray = [14.578002, 17.890652]

Мне нужно пройти через эти массивы с помощью цикла for и создать объект, который будет иметь соответствующую широту и долготу в зависимости от порядка массива.Однако я не знаю, как это сделать.то есть

firstPlace.latitude = 50.456782
firstPlace.longitude = 14.578002

secondPlace.latitude = 57.678654
secondPlace.longitude = 17.890652

Мне нужно, чтобы они были отдельными переменными, потому что мне нужно передать их в MKAnnotation, чтобы впоследствии они могли быть представлены в MKAnnotationView как различные местоположения на карте.

Надеюсь, это достаточно ясно, любая помощь приветствуется.Спасибо.

1 Ответ

0 голосов
/ 12 сентября 2018

Вероятно, было бы лучше использовать CLLocationCoordinate2D из структуры CoreLocation для представления координатного местоположения.

Звучит как хорошее место для использования команды zip .

Вот пример:

let latArray = [50.456782, 57.678654]
let longArray = [14.578002, 17.890652]

let coordinates = zip(latArray, longArray).map { lat, lon in
    CLLocationCoordinate2D(latitude: lat, longitude: lon)
}

print(coordinates)

Вывод (немного прибрано):

[CLLocationCoordinate2D (широта: 50.456781999999997, долгота: 14.578002), CLLocationCoordinate2D (широта: 57.678654000000002, долгота: 17.890651999999999)]

MKAnnotation использует CLLocationCoordinate2D для своего свойства координаты, так что это должно быть проще. Вы даже можете создать свой MKAnnotations в функции карты, если хотите.

Пример использования со структурой:

let latArray = [50.456782, 57.678654]
let longArray = [14.578002, 17.890652]

struct Place {
    var name: String
    var coordinate: CLLocationCoordinate2D
}

let places = zip(latArray, longArray).map { lat, lon in
    Place(name: "Some place",
          coordinate: CLLocationCoordinate2D(latitude: lat, longitude: lon))
}

print(places)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...