问题描述
|
我有一个由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);
其中polyPoints是CLLocationCoordinate2D的数组。
步骤3:将叠加层添加到地图
Map.AddOverlay(line);
第4步:使用以下代码缩放和更改地图范围以适合路线
Map.SetVisibleMapRect(line.BoundingMapRect,true);
, 我很确定您的意图是否是在给定支持模型对象的情况下在MapView上动态绘制地图,该对象指示您要在此处查看我的项目的两个坐标:
https://github.com/anujb/MapWithRoutes
这将允许您覆盖路径,并且会随着地图的更改而更新。它是obj-C端口的修改版本,它使用了后台线程,因此不会阻塞。
谢谢,
阿努吉