Я загрузкой некоторой GEODATA с моим сервера и хотят отобразить их бросить аннотации:Обновление аннотаций загружены с HTTP
Alamofire.request("http://localhost:1234/app/data").responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
var annotations = [Station]()
for (key, subJson):(String, JSON) in json {
let lat: CLLocationDegrees = subJson["latitude"].double! as CLLocationDegrees
let long: CLLocationDegrees = subJson["longtitude"].double! as CLLocationDegrees
self.annotations += [Station(name: "test", lat: lat, long: long)]
}
DispatchQueue.main.async {
let allAnnotations = self.mapView.annotations
self.mapView.removeAnnotations(allAnnotations)
self.mapView.addAnnotations(annotations)
}
case .failure(let error):
print(error)
}
}
и мой Station
класса:
class Station: NSObject, MKAnnotation {
var identifier = "test"
var title: String?
var coordinate: CLLocationCoordinate2D
init(name:String, lat:CLLocationDegrees, long:CLLocationDegrees) {
title = name
coordinate = CLLocationCoordinate2DMake(lat, long)
}
}
Так что я сделал, в основном :
Загрузить данные из удаленной службы и отобразить эти данные в виде аннотаций на MKMapView
.
Но: как-то эти аннотации не загружаются на карту, даже я сначала «удаляю», а затем «добавляю» их.
Любые предложения?
При установке точки останова в вашем ответе, все ваши значения JSON печатаются так, как ожидалось? Наносит ли он каждый раздел метода в том порядке, в котором вы ожидаете? –