Xamarin.ios Monotouch-在地图上绘制多段线

Xamarin.ios Monotouch-在地图上绘制多段线,xamarin.ios,mkmapview,Xamarin.ios,Mkmapview,我有一个由CLLocationCoordinate2D数组(点)组成的MKPolyline。没关系 我将这一行作为覆盖添加到地图中,如下所示:Map.AddOverlay(line) 我设置了以下事件:Map.SetVisibleMapRect(line.BoundingMapRect,true) 但是,尽管贴图边界是正确的,但该线不会显示 我正在查看MKPolylineView,但无法使其工作 有人知道设置颜色和线宽吗 多谢大家的努力,下面是如何在MKMapView上显示MKPolyline:

我有一个由CLLocationCoordinate2D数组(点)组成的MKPolyline。没关系

我将这一行作为覆盖添加到地图中,如下所示:
Map.AddOverlay(line)

我设置了以下事件:
Map.SetVisibleMapRect(line.BoundingMapRect,true)

但是,尽管贴图边界是正确的,但该线不会显示

我正在查看MKPolylineView,但无法使其工作

有人知道设置颜色和线宽吗


多谢大家的努力,下面是如何在MKMapView上显示MKPolyline:

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

Map.GetViewForOverlay = Map_GetViewForOverlay;
其中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;
}
步骤2:创建MKPolyline的新实例

MKPolyline line = MKPolyline.FromCoordinates(polyPoints);
其中,多点是CLLocationCoordinate2D的数组

步骤3:将覆盖添加到地图

Map.AddOverlay(line);
步骤4:使用下面的代码缩放和更改地图边界以适应路线

Map.SetVisibleMapRect(line.BoundingMapRect, true);

我很确定,如果您的目的是在MapView上动态绘制地图,则给定一个支持模型对象,该对象指示您希望在此处查看我的项目的两个坐标:

https://github.com/anujb/MapWithRoutes
这将允许您覆盖路径,并且它将随着地图的更改而更新。它是obj-C端口的修改版本,使用后台线程,因此不会阻塞

谢谢


Anuj

我没有使用MonoTouch,但您是否实现了viewForOverlay委托方法?是否设置了地图视图的委托属性?你能给地图添加常规注释吗?是的,我能添加常规注释。我尝试实现viewForOverlay委托,但不起作用。您是否有Objective-C中viewForOverlay的示例?请参阅。还可以试试苹果的示例应用程序和KMLViewer(虽然这一个有点太复杂了)。我无法理解这个viewForOverlay。在Monotouch中,这是一种我需要传递NSObject覆盖的方法。我不太明白如何使用它。viewForOverlay方法将由地图视图自动调用,而不是由您的代码调用。如果您在调用
AddOverlay
之前显示创建
对象的代码,可能会有所帮助。谢谢Anuj,我将查看它并发表评论