Monotouch - 在地图上绘制MKPolyline

Jul*_*rre 3 xamarin.ios mkmapview

我有一个由CLLocationCoordinate2D数组(点)组成的MKPolyline.那一切都很好.

我将此行添加到地图中作为叠加层,如下所示: Map.AddOverlay(line);

我事件设置这个: Map.SetVisibleMapRect(line.BoundingMapRect, true);

但是虽然Map边界是正确的,但是线条没有显示出来.

我正在研究MKPolylineView,但无法让它发挥作用.

有谁知道设置颜色和线宽?

谢谢

Jul*_*rre 8

经过多次刮擦,以下是如何在MKMapView上显示MKPolyline:

第1步:为Map GetViewForOverlay创建委托方法

Map.GetViewForOverlay = Map_GetViewForOverlay;
Run Code Online (Sandbox Code Playgroud)

Map是MKMapView.

MKOverlayView Map_GetViewForOverlay(MKMapView mapView, NSObject overlay)
{
    if(overlay.GetType() == typeof(MKPolyline))
    {
       MKPolylineView p = new MKPolylineView((MKPolyline)overlay);
       p.LineWidth = 2.0f;
       p.StrokeColor = UIColor.Green;
       return p;
    }
    else
        return null;
}
Run Code Online (Sandbox Code Playgroud)

第2步:创建MKPolyline的新实例

MKPolyline line = MKPolyline.FromCoordinates(polyPoints);
Run Code Online (Sandbox Code Playgroud)

其中polyPoints是CLLocationCoordinate2D的数组.

第3步:将叠加层添加到地图中

Map.AddOverlay(line);
Run Code Online (Sandbox Code Playgroud)

第4步:使用下面的代码缩放和更改地图边界以适应路线

Map.SetVisibleMapRect(line.BoundingMapRect, true);
Run Code Online (Sandbox Code Playgroud)