2017-05-29 4 views
0

ich diesen Code haben Richtungen von einem Quellpunkt (userLocation) auf eine Anmerkung (Pin von Benutzer choosed) zu erhalten .`Xcode Wegbeschreibung Koordinate in Swift

func showRouteOnMap() { 
    let request = MKDirectionsRequest() 

    request.source = MKMapItem(placemark: MKPlacemark(coordinate: (userLocationForDirections?.coordinate)!, addressDictionary: nil)) 
    if(annotationPin != nil){ 
    request.destination = MKMapItem(placemark: MKPlacemark(coordinate: (coordinateAnnotationPin)!, addressDictionary: nil)) 
    } 
    request.requestsAlternateRoutes = true 
    request.transportType = .walking 

    let directions = MKDirections(request: request) 

    directions.calculate(completionHandler: {(response, error) in 

     if error != nil { 
      print("Error getting directions") 

     } else { 
      self.showRoute(response!) 
     } 
    }) 
} 

Jetzt muss ich die Koordinate der Richtung bekommen Route (CLLocationCordinate2D). Wie kann ich?

Antwort

1

So erhalten Sie die Koordinaten von einer Polylinie. Sie sollten die Polylinie nur zu Ihrer Karte hinzufügen. Es ist ungewöhnlich, die Koordinaten zu verlangen.

let directions = MKDirections(request: request) 

directions.calculate { (response, error) in 

    if let error = error { 

     print(error.localizedDescription) 

     return 
    } 

    if let response = response { 

     if let route = response.routes.first { 

      self.map.add(route.polyline, level: .aboveRoads) 

      let coordinates: Array<CLLocationCoordinate2D> = { 

       var array = Array<CLLocationCoordinate2D>() 

       let polyline = route.polyline 

       for i in 0 ..< polyline.pointCount { 

        let point = polyline.points()[i] 

        array.append(MKCoordinateForMapPoint(point)) 
       } 

       return array 
      }() 

      dump(coordinates) 
     } 
    } 
} 
+0

danke Tristan –