如何在 Xamarin.ios 中制作自定义 MKPolyLine

问题描述

除非我错了,MKpolyLine 是通过与 MKMapView 委托关联的GetViewForOverlay覆盖在地图上绘制的。

public override MKOverlayView GetViewForOverlay(MKMapView mapView,IMKOverlay overlay)
{}

我想将自定义属性与我的 MKpolyLine 相关联,以便 GetViewForOverlay 可以使用它。

所以我写了一个新类:

public class polyLineWithPrivacy : MapKit.MKpolyline
{
    public bool PrivacyOn { get; set; }
}

我也想使用静态 FromPoint 构造函数

所以我有这个代码来构建我的自定义实例:

private void TracepolyLine(List<CLLocationCoordinate2D> routeParts,bool privacyon)
{
    GeoFleet.iOS.polyLineWithPrivacy polyLine = (GeoFleet.iOS.polyLineWithPrivacy)MapKit.MKpolyline.FromPoints(routeParts.Select(rp => new MapKit.MKMapPoint(rp.Latitude,rp.Longitude)).ToArray());
    polyLine.PrivacyOn = privacyon;

    this.mapView.AddOverlay(polyLine);
}

但是这会崩溃(在演员期间),因为 I can't assign a base class object to a derived class

那么我有哪些选择?有没有办法从 MKMapPoint 的集合中构造 MKpolyLine?如何在渲染器覆盖中处理我的 PrivacyOn 成员?

编辑:我现在使用认构造函数,只是将点附加到 Points 集合。

EDIT2:附加点不起作用,集合保持为空:(

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)