ios - 使用 MapKit Swift 在两个坐标之间绘制路径

标签 ios swift xcode maps

关于这个问题的所有答案都使用 Objective-c,或使用 Swift 2。无论如何我有两个点,第一个点的坐标是 (lat, long),第二个点的坐标是 (coordinates.纬度,坐标.经度)。这是我到目前为止能够得到的,但我仍然有两个问题:

Value of type 'MKDirectionsRequest' has no member 'setSource'
Value of type 'MKDirectionsRequest' has no member 'setDestination'

我从这个页面得到这个代码的任何方式:http://studyswift.blogspot.com/2014/10/mkdirections-draw-route-from-location.html

到目前为止,这是我的代码:

@IBOutlet weak var myMap: MKMapView!
var myRoute : MKRoute?

viewDidLoad 里面我有以下内容:

let directionsRequest = MKDirectionsRequest()
        let markFirstPoint = MKPlacemark(coordinate: CLLocationCoordinate2DMake(lat, long), addressDictionary: nil)
        let markSecondPoint = MKPlacemark(coordinate: CLLocationCoordinate2DMake(coordinates.latitude, coordinates.longitude), addressDictionary: nil)
        directionsRequest.setSource(MKMapItem(placemark: markSecondPoint))
        directionsRequest.setDestination(MKMapItem(placemark: markFirstPoint))
        directionsRequest.transportType = MKDirectionsTransportType.automobile
        let directions = MKDirections(request: directionsRequest)
        directions.calculate { (response:MKDirectionsResponse!, error: Error!) -> Void in
            if error == nil {
                self.myRoute = response.routes[0] as? MKRoute
                self.myMap.add((self.myRoute?.polyline)!)
            }
        }

viewDidLoad 之后我有这个:

 func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {
        var myLineRenderer = MKPolylineRenderer(polyline: (myRoute?.polyline)!)
        myLineRenderer.strokeColor = UIColor.red
        myLineRenderer.lineWidth = 3
        return myLineRenderer
    }

有什么方法可以让这段代码正常工作吗?

最佳答案

只需查看MKDirectionsRequest 的文档。有一个 source 属性和一个 destination 属性。

线条:

directionsRequest.setSource(MKMapItem(placemark: markSecondPoint))
directionsRequest.setDestination(MKMapItem(placemark: markFirstPoint))

成为:

directionsRequest.source = MKMapItem(placemark: markSecondPoint)
directionsRequest.destination = MKMapItem(placemark: markFirstPoint)

关于ios - 使用 MapKit Swift 在两个坐标之间绘制路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47250821/

相关文章:

ios - (空)libc++abi.dylib : terminate called throwing an exception

ios - 我可以使用 PopViewController Animated 传递数据吗?

iphone - 什么时候在模态视图 Controller 上设置父/呈现 View Controller ?

iphone - 将 Google Analytics 实现到 iOS 时出错

swift - 在可解码对象上使用 DidSet 或 WillSet

ios - 无法将 JSON 值传输到 SecondViewController 中的标签

objective-c - NSDateFormatter dateFromString 返回不正确的日期

swift - 代码为-1100 的 NSURLErrorDomain

objective-c - 使用 Swift 将 CLLocation 转换为 GeoPoint

objective-c - 导入 MagicalRecord 时单元测试构建失败