Нарисуйте линию на Mapkit, используя список координат

У меня есть массив координатных объектов, и я хочу соединить их (в том порядке, в котором они есть) в виде полилинии в Mapkit в Swift 3. Как мне это сделать? Вот моя структура данных

List<Location> (
    [0] Location {
        lat = 37.33477977;
        long = -122.03369603;
    },
    [1] Location {
        lat = 37.33477977;
        long = -122.03369603;
    },
    [2] Location {
        lat = 37.33477977;
        long = -122.03369603;
    },
    [3] Location {
        lat = 37.33305632;
        long = -122.05318781;
    },
    [4] Location {
        lat = 37.33298105;
        long = -122.0535463;
    }
)

Предыдущие обсуждения на эту тему уже устарели.


person Sam    schedule 16.05.2017    source источник


Ответы (1)


Вы должны преобразовать его в массив [CLLocation], посмотрите на этот похожий вопрос:

var locations = [CLLocation(latitude: 37.582691, longitude: 127.011186), CLLocation(latitude: 37.586112,longitude: 127.011047), CLLocation(latitude: 37.588212, longitude: 127.010438)]
        var coordinates = locations.map({(location: CLLocation) -> CLLocationCoordinate2D in return location.coordinate})
        var polyline = MKPolyline(coordinates: &coordinates, count: locations.count)
person pesch    schedule 16.05.2017
comment
После этого ответа Swift был обновлен, и код в вопросе больше не работает. - person Sam; 16.05.2017
comment
Я представил обновленное редактирование связанного вопроса с кодом, совместимым со Swift 3. - person Sam; 16.05.2017
comment
В документации есть ссылка на init(coordinates coords: UnsafePointer<CLLocationCoordinate2D>, count: Int). Кажется, это то же самое, что и этот вопрос: c" title="unsafemutablepointer в swift в качестве замены массива c правильного размера в obj c"> stackoverflow.com/questions/25560751/ - person pesch; 16.05.2017