![](/img/trans.png)
[英]How to append positions when creating a Polyline with Xamarin.Forms.Maps in runtime?
[英]Xamarin.Forms.Maps custom polyline renderer does not render when in view
我正在尝试遵循本指南 ,以便在Xamarin.Forms应用程序的地图上绘制折线。 它应该实时跟踪用户的位置,并在输入新的位置数据时更新折线。
我编写了一个自定义地图渲染器,它将渲染折线,但是由于某些原因,它在地图显示时不会更新。 我必须导航回到主启动页面并再次导航到映射页面以进行更新。
我提取了最少的代码来重现该问题,但是在此处粘贴仍然太多,因此我将其托管在GitHub上:
https://github.com/Steztric/MapWithWaylineSample
请有人让我知道我在做什么错。 您可以通过克隆存储库并运行它来演示问题。
您每次都需要创建渲染器,因此请删除类变量polylineRenderer并使用本地变量。
MKOverlayRenderer GetOverlayRenderer(MKMapView mapView, IMKOverlay overlayWrapper)
{
IMKOverlay overlay = Runtime.GetNSObject(overlayWrapper.Handle) as IMKOverlay;
if (overlay is MKPolyline)
{
var polylineRenderer = new MKPolylineRenderer(overlay as MKPolyline);
polylineRenderer.FillColor = UIColor.Blue;
polylineRenderer.StrokeColor = UIColor.Red;
polylineRenderer.LineWidth = 3;
polylineRenderer.Alpha = 0.4f;
return polylineRenderer;
}
else
{
return null;
}
}
你也可以简化一些事情
定义MKPolyline currentWayline;
然后
var wayline = MKPolyline.FromCoordinates(coords.ToArray());
//IMKOverlay overlay = Runtime.GetNSObject(wayline.Handle) as IMKOverlay;
nativeMap.AddOverlay(wayline);
currentWayline = wayline;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.