private void Uninitialize(Android.Gms.Maps.GoogleMap nativeMap, Map map) { try { if (nativeMap == null) { System.Diagnostics.Debug.WriteLine($"Uninitialize failed - {nameof(nativeMap)} is null"); return; } if (map == null) { System.Diagnostics.Debug.WriteLine($"Uninitialize failed - {nameof(map)} is null"); return; } _uiSettingsLogic.Unregister(); map.OnSnapshot -= OnSnapshot; _cameraLogic.Unregister(); foreach (var logic in _logics) { logic.Unregister(nativeMap, map); } if (Map.IsUseCluster) { _clusterLogic.Unregister(nativeMap, map); } nativeMap.SetOnMapClickListener(null); nativeMap.SetOnMapLongClickListener(null); nativeMap.SetOnMyLocationButtonClickListener(null); nativeMap.MyLocationEnabled = false; nativeMap.Dispose(); } catch (System.Exception ex) { var message = ex.Message; System.Diagnostics.Debug.WriteLine($"Uninitialize failed. - {message}"); } }
protected virtual void OnMapReady(Android.Gms.Maps.GoogleMap nativeMap, Map map) { if (nativeMap != null) { _cameraLogic.Register(map, nativeMap); _uiSettingsLogic.Register(map, nativeMap); Map.OnSnapshot += OnSnapshot; nativeMap.SetOnMapClickListener(this); nativeMap.SetOnMapLongClickListener(this); nativeMap.SetOnMyLocationButtonClickListener(this); UpdateIsShowingUser(_uiSettingsLogic.MyLocationButtonEnabled); UpdateHasScrollEnabled(_uiSettingsLogic.ScrollGesturesEnabled); UpdateHasZoomEnabled(_uiSettingsLogic.ZoomControlsEnabled, _uiSettingsLogic.ZoomGesturesEnabled); UpdateHasRotationEnabled(_uiSettingsLogic.RotateGesturesEnabled); UpdateIsTrafficEnabled(); UpdateIndoorEnabled(); UpdateMapStyle(); UpdateMyLocationEnabled(); _uiSettingsLogic.Initialize(); SetMapType(); SetPadding(); //UpdateMaxZoom(); //UpdateMinZoom(); } _ready = true; if (_ready && _onLayout) { InitializeLogic(); } }