我使用以下委托方法在Map上绘制路线。大多数情况下,它工作正常,除非在具有较大坐标数组的一条路线中。有时它可以将MKOverlay强制转换为MKPolyline,有时则不能将其用于同一路径。知道为什么会这样吗?

public override MKOverlayView GetViewForOverlay (MKMapView mapView, IMKOverlay overlay)
            {
                if (overlay is MKPolyline) {
                    MKPolyline polyline = overlay as MKPolyline;
                    MKPolylineView polylineView = new MKPolylineView (polyline);
                    polylineView.StrokeColor = UIColor.Blue;
                    polylineView.LineWidth = 5.0f;
                    return polylineView;
                }
                return null;
            }

最佳答案

此代码用于Objective C并进行翻译。在地图上绘制路线polyLine,如下代码所示,

func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {
        if overlay is MKPolyline {
            var polylineRenderer = MKPolylineRenderer(overlay: overlay)
            polylineRenderer.strokeColor = UIColor.blueColor()
            polylineRenderer.lineWidth = 5
            return polylineRenderer
        }

        return nil
    }

07-28 01:30