protected override void OnItemPropertyChanged(object sender, PropertyChangedEventArgs e) { Circle item = (Circle)sender; BMKCircle native = (BMKCircle)item?.NativeObject; if (null == native) { return; } if (Annotation.TitleProperty.PropertyName == e.PropertyName) { native.Title = item.Title; return; } if (Annotation.CoordinateProperty.PropertyName == e.PropertyName) { native.Coordinate = item.Coordinate.ToNative(); return; } if (Circle.RadiusProperty.PropertyName == e.PropertyName) { native.Radius = item.Radius; return; } if (Circle.WidthProperty.PropertyName == e.PropertyName) { BMKCircleView view = (BMKCircleView)NativeMap.ViewForAnnotation(native); if (view != null) { view.LineWidth = item.Width; } return; } if (Circle.ColorProperty.PropertyName == e.PropertyName) { BMKCircleView view = (BMKCircleView)NativeMap.ViewForAnnotation(native); if (view != null) { view.StrokeColor = item.Color.ToUIColor(); } return; } if (Circle.FillColorProperty.PropertyName == e.PropertyName) { BMKCircleView view = (BMKCircleView)NativeMap.ViewForAnnotation(native); if (view != null) { view.FillColor = item.Color.ToUIColor(); } return; } }
public override BMKOverlayView ViewForOverlay(BMKMapView mapView, BMKOverlay overlay) { if (typeof(BMKPolyline) == overlay.GetType()) { Polyline poly = map.Map.Polylines.Find(overlay); if (null != poly) { BMKPolylineView view = new BMKPolylineView(overlay); view.StrokeColor = poly.Color.ToUIColor(); view.LineWidth = poly.Width; return(view); } } else if (typeof(BMKPolygon) == overlay.GetType()) { Polygon poly = map.Map.Polygons.Find(overlay); if (null != poly) { BMKPolygonView view = new BMKPolygonView(overlay); view.StrokeColor = poly.Color.ToUIColor(); view.FillColor = poly.FillColor.ToUIColor(); view.LineWidth = poly.Width; return(view); } } else if (typeof(BMKCircle) == overlay.GetType()) { Circle circle = map.Map.Circles.Find(overlay); if (null != circle) { BMKCircleView view = new BMKCircleView(overlay); view.StrokeColor = circle.Color.ToUIColor(); view.FillColor = circle.FillColor.ToUIColor(); view.LineWidth = circle.Width; return(view); } } Debug.WriteLine("MapViewViewForOverlay: " + overlay.GetType()); return(null); }