Swift中的Xcode方向坐标

时间:2017-05-29 18:39:51

标签: xcode routes cllocationcoordinate2d mkdirection

我有这个代码来获取从源点(userLocation)到注释(从用户选择的引脚)的路线.`

    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!)
        }
    })
}

现在我需要获取方向路线的坐标(CLLocationCordinate2D)。我该怎么办?

1 个答案:

答案 0 :(得分:1)

这是从折线获取坐标的方法。虽然您只需要将折线添加到地图中。需要坐标是不常见的。

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)
        }
    }
}