Ich versuche, die Route zwischen zwei Punkten auf Apple-Karte (Swift-Code) zu zeichnen. Die folgende Struktur wird verwendet, um die Koordinaten KlasseRoute auf der Karte in Swift
struct GeoLocation {
var latitude: Double
var longitude: Double
func distanceBetween(other: GeoLocation) -> Double {
let locationA = CLLocation(latitude: self.latitude, longitude: self.longitude)
let locationB = CLLocation(latitude: other.latitude, longitude: other.longitude)
return locationA.distanceFromLocation(locationB)
}
}
self.foundLocations - is an array of these structures
Im benutzerdefinierten speichern ich die Koordinaten der Punkte auf der Karte empfangen.
var coordinates = self.foundLocations.map{$0.coordinate}
Dann ziehe ich die Route auf der Karte
self.polyline = MKPolyline(coordinates: &coordinates, count: coordinates.count)
self.mapView.addOverlay(self.polyline, level: MKOverlayLevel.AboveRoads)
die Strecke ich die folgende Methode aus MKMapViewDelegate verwenden zu zeichnen
func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {
if let polylineOverlay = overlay as? MKPolyline {
let render = MKPolylineRenderer(polyline: polylineOverlay)
render.strokeColor = UIColor.blueColor()
return render
}
return nil
}
Anstelle der tatsächlichen Route auf Straßen Verlegung ich nur eine gerade Linie zwischen zwei Punkten. Wie kann ich die tatsächliche Route anzeigen?
können Sie diesen Fehler finden Sie in http://stackoverflow.com/questions/30775154/error-400-while-addieren-route-on-mkmapview? noredirect = 1 # comment49605946_30775154 –