微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在 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 举报,一经查实,本站将立刻删除。