缩放级别更改后,多个MKPolyline会更改颜色

时间:2015-06-24 00:20:36

标签: mkmapview mkoverlay mkpolyline

我有每秒25行的传入数据。每行都有gps数据和高度数据。解析这些线并将其转换为mkpolylines并添加为贴图以进行贴图。每条折线根据海拔高度具有不同的颜色。因此,如果飞机在0米处,颜色为白色,如果在2000米处,则为暗红色。我有一个颜色代码数组,其高度从该数组获得相应的颜色代码。

我的代码没有问题,但只要更改缩放级别并浏览地图,生成的折线颜色就会根据当前高度对应的颜色代码进行更改。

我的代码非常简单..

这是我用于折线的内容:

     var polyArray : [CLLocationCoordinate2D] = [polyFirstLocation.coordinate,newLocation.coordinate]
     var polyLine = MKPolyline()
     polyLine =  MKPolyline(coordinates: &polyArray, count: 2)
     polyLine.title = "planePath"
     colorAltitude(parsedData[7].doubleValue)
     mapView.addOverlay(polyLine, level: MKOverlayLevel.AboveLabels)

这是我的渲染器:

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

if overlay is MKPolyline {
        var polylineRenderer = MKPolylineRenderer(overlay: overlay)
        if overlay.title == "planePath" {
            polylineRenderer.strokeColor = NSColor(netHex: cCode)
            polylineRenderer.lineWidth = 2
        }
        return polylineRenderer
    }
        return nil
}

它有效..这里是图像.. working

但是当我放大到最大级别并浏览并再次缩小时,颜色会更改为我的上一个颜色代码值。所以不知何故,我需要渲染器不要重绘我的折线,或者重绘时保留原始颜色。

enter image description here

我的代码很快,但是如果你有一个想法,即使它是obj-C,我真的很喜欢..我绝望地尝试了过去四天的一切。

谢谢..

0 个答案:

没有答案