我有一个由CLLocationCoordinate2D数组(点)组成的MKPolyline。这一切都很好。
我将此行添加到地图中作为叠加层,如下所示:Map.AddOverlay(line);
我的事件设置为:Map.SetVisibleMapRect(line.BoundingMapRect, true);
但是虽然地图边界是正确的,但是线条没有出现。
我正在研究MKPolylineView,但无法让它发挥作用。
任何人都知道设置颜色和线宽?
由于
答案 0 :(得分:8)
经过多次刮擦,以下是如何在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);
其中polyPoints是CLLocationCoordinate2D的数组。
第3步:将叠加层添加到地图
Map.AddOverlay(line);
步骤4:使用下面的代码缩放和更改地图边界以适合路线
Map.SetVisibleMapRect(line.BoundingMapRect, true);
答案 1 :(得分:1)
我很确定你的意图是在MapView上动态绘制一个地图,给出一个支持模型对象,该对象指示你想在这里查看我的项目的两个坐标:
https://github.com/anujb/MapWithRoutes
这将允许您覆盖路径,它将随着地图的变化而更新。它是obj-C端口的修改版本,它使用后台线程,因此它不会阻塞。
谢谢,
Anuj