如何在我的mapkit中用不同的颜色快速绘制2条线

3 mapkit polyline mkpolyline swift

这是我绘制第一条线的代码,对于另一条具有另一种颜色的线我该怎么办?

 func mapView(mapView : MKMapView! , rendererForOverlay overlay: MKOverlay!) ->MKOverlayRenderer! {

    if overlay is MKPolyline {

        var polyLineRenderer = MKPolylineRenderer(overlay: overlay)
        polyLineRenderer.strokeColor = UIColor.blackColor()
        polyLineRenderer.lineWidth = 10

        return polyLineRenderer
    }
    return nil
  }
Run Code Online (Sandbox Code Playgroud)

小智 6

终于我找到了方法:

在全班最重要的地方

var toGo    : MKPolyline?
var toCome  : MKPolyline?
Run Code Online (Sandbox Code Playgroud)

然后考虑到是否加载了:

                    var polyLineGoes = MKPolyline(coordinates: &coordinateGoes, count: coordinateGoes.count)
                    toGo = polyLineGoes
                    mapView.addOverlay(polyLineGoes)


                    var polyLineComes = MKPolyline(coordinates: &coordinateComes, count: coordinateComes.count)
                    toCome = polyLineComes
                    mapView.addOverlay(polyLineComes)
Run Code Online (Sandbox Code Playgroud)

在课程结束时:

func mapView(mapView : MKMapView! , rendererForOverlay overlay: MKOverlay!) ->MKOverlayRenderer! {

    if overlay is MKPolyline {
        if ( toGo  != nil) && (toCome != nil ) {
            if overlay as? MKPolyline  == toGo {
                var polyLineRenderer = MKPolylineRenderer(overlay: overlay)
                polyLineRenderer.strokeColor = UIColor.redColor()
                polyLineRenderer.lineWidth = 3

                return polyLineRenderer
            } else if overlay as? MKPolyline  == toCome {
                print(overlay.description)
                var polyLineRenderer = MKPolylineRenderer(overlay: overlay)
                polyLineRenderer.strokeColor = UIColor.blueColor()
                polyLineRenderer.lineWidth = 3

                return polyLineRenderer
            }
        }
    }
    return nil

}
Run Code Online (Sandbox Code Playgroud)