protected MKOverlayRenderer OverlayRenderer(MKMapView mapview, IMKOverlay overlay)
        {
            if (!(Runtime.GetNSObject(overlay.Handle) is MKCircle circle))
            {
                return(new MKTileOverlayRenderer((MKTileOverlay)overlay));
            }

            return(PointHandler.GetCircleRenderer(circle));
        }
 protected override void OnElementChanged(ElementChangedEventArgs <View> e)
 {
     base.OnElementChanged(e);
     if (e.NewElement != null)
     {
         this.map    = Control as MKMapView;
         TileOverlay = new CustomTileProvider(
             (IReadOnlyTileService)((App)Application.Current).Container.Resolve(typeof(IReadOnlyTileService)));
         if (this.map != null)
         {
             this.map.AddOverlay(TileOverlay);
             PointHandler = new PointHandler
             {
                 Map    = this.map,
                 Points = CustomMap.Points,
             };
             this.map.OverlayRenderer   = OverlayRenderer;
             PointHandler.OnMapClicked += OnMapClicked;
         }
     }
 }