问题描述
除非我错了,MKpolyLine 是通过与 MKMapView 委托关联的GetViewForOverlay
覆盖在地图上绘制的。
public override MKOverlayView GetViewForOverlay(MKMapView mapView,IMKOverlay overlay)
{}
我想将自定义属性与我的 MKpolyLine 相关联,以便 GetViewForOverlay 可以使用它。
所以我写了一个新类:
public class polyLineWithPrivacy : MapKit.MKpolyline
{
public bool PrivacyOn { get; set; }
}
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 (将#修改为@)