Esempio n. 1
0
        protected override void OnElementChanged(ElementChangedEventArgs <View> args)
        {
            SKMap oldMap = args.OldElement as SKMap;
            SKMap newMap = args.NewElement as SKMap;

            if (oldMap != null)
            {
                _NativeControl.OverlayRenderer      = null;
                _NativeControl.GetViewForAnnotation = null;

                if (oldMap.MapOverlays != null)
                {
                    oldMap.MapOverlays.CollectionChanged -= MapOverlaysCollectionChanged;
                }

                if (oldMap.Pins as ObservableCollection <Pin> != null)
                {
                    ((ObservableCollection <Pin>)oldMap.Pins).CollectionChanged -= PinsCollectionChanged;
                }
                UnregisterPinCallbacks(oldMap.Pins);
            }

            base.OnElementChanged(args);

            if (newMap != null)
            {
                _NativeControl.OverlayRenderer      = OverlayedMapDelegate.OverlayRenderer;
                _NativeControl.GetViewForAnnotation = GetViewForPin;

                if (_SharedControl?.MapOverlays != null)
                {
                    _SharedControl.MapOverlays.CollectionChanged += MapOverlaysCollectionChanged;
                    SetupMapOverlays();
                }

                if (newMap.Pins as ObservableCollection <Pin> != null)
                {
                    ((ObservableCollection <Pin>)newMap.Pins).CollectionChanged += PinsCollectionChanged;
                }
                RegisterPinCallbacks(newMap.Pins);
            }
        }
        protected override void OnElementChanged(ElementChangedEventArgs <Map> args)
        {
            SKMap oldMap = args.OldElement as SKMap;
            SKMap newMap = args.NewElement as SKMap;

            if (oldMap != null)
            {
                if (oldMap.MapOverlays != null)
                {
                    oldMap.MapOverlays.CollectionChanged -= MapOverlaysCollectionChanged;
                }

                if (oldMap.Pins as ObservableCollection <Pin> != null)
                {
                    ((ObservableCollection <Pin>)oldMap.Pins).CollectionChanged -= PinsCollectionChanged;
                }

                NativeMap?.SetOnMarkerClickListener(null);

                UnregisterPinCallbacks(oldMap.Pins);
            }

            base.OnElementChanged(args);

            if (newMap != null)
            {
                if (newMap.MapOverlays != null)
                {
                    newMap.MapOverlays.CollectionChanged += MapOverlaysCollectionChanged;
                }

                if (newMap.Pins as ObservableCollection <Pin> != null)
                {
                    ((ObservableCollection <Pin>)newMap.Pins).CollectionChanged += PinsCollectionChanged;
                }

                RegisterPinCallbacks(newMap.Pins);
            }
        }
Esempio n. 3
0
 public SKMapKitOverlay(SKMapOverlay sharedOverlay, SKMap sharedControl)
 {
     SharedOverlay  = sharedOverlay;
     _SharedControl = sharedControl;
 }