internal override void Register(GoogleMap oldNativeMap, Map oldMap, GoogleMap newNativeMap, Map newMap) { base.Register(oldNativeMap, oldMap, newNativeMap, newMap); clusterManager = new ClusterManager(context, NativeMap) { Algorithm = GetClusterAlgorithm() }; clusterHandler = new ClusterLogicHandler(ClusteredMap, clusterManager, this); if (newNativeMap == null) { return; } ClusteredMap.OnCluster = HandleClusterRequest; NativeMap.CameraIdle += NativeMapOnCameraIdle; NativeMap.SetOnMarkerClickListener(clusterManager); NativeMap.SetOnInfoWindowClickListener(clusterManager); newNativeMap.MarkerDragStart += OnMarkerDragStart; newNativeMap.MarkerDragEnd += OnMarkerDragEnd; newNativeMap.MarkerDrag += OnMarkerDrag; clusterRenderer = new ClusterRenderer(context, ClusteredMap, NativeMap, clusterManager); clusterManager.Renderer = clusterRenderer; clusterManager.SetOnClusterClickListener(clusterHandler); clusterManager.SetOnClusterInfoWindowClickListener(clusterHandler); clusterManager.SetOnClusterItemClickListener(clusterHandler); clusterManager.SetOnClusterItemInfoWindowClickListener(clusterHandler); }
protected override void OnMapReady(GoogleMap map) { base.OnMapReady(map); NativeMap.MyLocationChange += NativeMapOnMyLocationChange; NativeMap.SetOnMarkerClickListener(this); }
public override void Register(Android.Gms.Maps.GoogleMap oldNativeMap, Map oldMap, Android.Gms.Maps.GoogleMap newNativeMap, Map newMap) { base.Register(oldNativeMap, oldMap, newNativeMap, newMap); clusterManager = new ClusterManager(context, NativeMap) { Algorithm = GetClusterAlgorithm() }; clusterHandler = new ClusterLogicHandler(Map, clusterManager, this); if (newNativeMap == null) { return; } ClusteredMap.OnCluster = HandleClusterRequest; NativeMap.CameraIdle += NativeMapOnCameraIdle; NativeMap.SetOnMarkerClickListener(clusterManager); NativeMap.SetOnInfoWindowClickListener(clusterManager); clusterRenderer = new ClusterRenderer(context, ClusteredMap, NativeMap, clusterManager); clusterManager.Renderer = clusterRenderer; clusterManager.SetOnClusterClickListener(clusterHandler); clusterManager.SetOnClusterInfoWindowClickListener(clusterHandler); clusterManager.SetOnClusterItemClickListener(clusterHandler); clusterManager.SetOnClusterItemInfoWindowClickListener(clusterHandler); }
public override void Unregister(Android.Gms.Maps.GoogleMap nativeMap, Map map) { if (nativeMap != null) { NativeMap.CameraIdle -= NativeMapOnCameraIdle; NativeMap.SetOnMarkerClickListener(null); NativeMap.SetOnInfoWindowClickListener(null); clusterHandler.Dispose(); clusterManager.Dispose(); } base.Unregister(nativeMap, map); }
internal override void Unregister(GoogleMap nativeMap, Map map) { if (nativeMap != null) { NativeMap.CameraIdle -= NativeMapOnCameraIdle; NativeMap.SetOnMarkerClickListener(null); NativeMap.SetOnInfoWindowClickListener(null); nativeMap.MarkerDrag -= OnMarkerDrag; nativeMap.MarkerDragEnd -= OnMarkerDragEnd; nativeMap.MarkerDragStart -= OnMarkerDragStart; clusterHandler.Dispose(); clusterManager.Dispose(); } base.Unregister(nativeMap, map); }
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); } }