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