internal static LatLonZoom DefaultReferenceMapPosition(SourceMap sourceMap, MapTileSourceFactory mapTileSourceFactory, ViewControlIfc viewControl, DefaultReferenceView drv) { if (sourceMap.ReadyToLock()) { try { ViewerControlIfc sMViewerControl = viewControl.GetSMViewerControl(); MapRectangle bounds = sMViewerControl.GetBounds(); WarpedMapTileSource warpedMapTileSource = mapTileSourceFactory.CreateWarpedSource(sourceMap); IPointTransformer sourceToDestLatLonTransformer = warpedMapTileSource.GetSourceToDestLatLonTransformer(); MapRectangle mapRectangle = bounds.Transform(sourceToDestLatLonTransformer); mapRectangle = mapRectangle.ClipTo(new MapRectangle(-180.0, -360.0, 180.0, 360.0)); return(viewControl.GetVEViewerControl().GetCoordinateSystem() .GetBestViewContaining(mapRectangle, sMViewerControl.Size)); } catch (CorrespondencesAreSingularException) { } catch (InsufficientCorrespondencesException) { } } if (drv != null && drv.present) { return(drv.llz); } return(viewControl.GetVEViewerControl().GetCoordinateSystem().GetDefaultView()); }
public void Activate() { try { UIPositionManager uIPositionManager = this.viewControl.GetUIPositionManager(); ViewerControlIfc sMViewerControl = this.viewControl.GetSMViewerControl(); bool flag = false; if (this.sourceMap.lastView is SourceMapRegistrationView) { try { SourceMapRegistrationView sourceMapRegistrationView = (SourceMapRegistrationView)this.sourceMap.lastView; if (sourceMapRegistrationView.locked) { if (this.sourceMap.ReadyToLock()) { this.SetupLockedView(); uIPositionManager.GetVEPos().setPosition(sourceMapRegistrationView.GetReferenceMapView()); flag = true; } } else { this.SetupUnlockedView(); uIPositionManager.GetSMPos().setPosition(sourceMapRegistrationView.GetSourceMapView()); uIPositionManager.GetVEPos().setPosition(sourceMapRegistrationView.GetReferenceMapView()); flag = true; } this.viewControl.SetVEMapStyle(sourceMapRegistrationView.GetReferenceMapView().style); } catch (CorrespondencesAreSingularException) { } catch (InsufficientCorrespondencesException) { } } if (!flag) { this.SetupUnlockedView(); uIPositionManager.GetSMPos().setPosition(new ContinuousCoordinateSystem().GetDefaultView()); uIPositionManager.GetVEPos().setPosition(this.DefaultReferenceMapPosition(this.drv)); } uIPositionManager.SetPositionMemory(this.sourceMap); this.viewControl.SetOptionsPanelVisibility(OptionsPanelVisibility.SourceMapOptions); this.viewControl.GetSourceMapInfoPanel().Configure(this.sourceMap); this.viewControl.GetSourceMapInfoPanel().Enabled = true; this.viewControl.GetTransparencyPanel().Configure(this.sourceMap, sMViewerControl); this.viewControl.GetTransparencyPanel().Enabled = true; this.viewControl.GetSMViewerControl().SetSnapViewStore(new SourceSnapView(this)); this.viewControl.GetVEViewerControl().SetSnapViewStore(new RefSnapView(this)); uIPositionManager.PositionUpdated(); } catch (Exception) { this.Dispose(); throw; } }
public void Activate() { ViewerControlIfc sMViewerControl = viewControl.GetSMViewerControl(); UIPositionManager uIPositionManager = viewControl.GetUIPositionManager(); foreach (SourceMap current in layer.GetBackToFront()) { IDisplayableSource displayableSource = mapTileSourceFactory.CreateDisplayableWarpedSource(current); if (displayableSource != null) { sMViewerControl.AddLayer(displayableSource); } } uIPositionManager.SetPositionMemory(layer); LayerView layerView = (LayerView)layer.lastView; viewControl.GetUIPositionManager().switchSlaved(); if (layerView != null) { uIPositionManager.GetVEPos().setPosition(layerView.GetReferenceMapView()); uIPositionManager.GetVEPos().setStyle(layerView.GetReferenceMapView().style); return; } MapRectangle mapRectangle = null; try { mapRectangle = layer.GetUserBoundingBox(mapTileSourceFactory); } catch (CorrespondencesAreSingularException) { } catch (InsufficientCorrespondencesException) { } LatLonZoom position; if (mapRectangle != null) { Size size = new Size(600, 600); position = viewControl.GetVEViewerControl().GetCoordinateSystem() .GetBestViewContaining(mapRectangle, size); } else { position = viewControl.GetVEViewerControl().GetCoordinateSystem().GetDefaultView(); } uIPositionManager.GetVEPos().setPosition(position); }
public void UnlockMaps() { if (!this.mapsLocked) { throw new Exception("uh oh. trying to unlock maps that are already unlocked!"); } this.SetupUnlockedView(); ViewerControlIfc sMViewerControl = this.viewControl.GetSMViewerControl(); MapRectangle bounds = this.viewControl.GetVEViewerControl().GetBounds(); WarpedMapTileSource warpedMapTileSource = this.mapTileSourceFactory.CreateWarpedSource(this.sourceMap); IPointTransformer destLatLonToSourceTransformer = warpedMapTileSource.GetDestLatLonToSourceTransformer(); MapRectangle newBounds = bounds.Transform(destLatLonToSourceTransformer); LatLonZoom latLonZoom = sMViewerControl.GetCoordinateSystem().GetBestViewContaining(newBounds, sMViewerControl.Size); latLonZoom = CoordinateSystemUtilities.ConstrainLLZ(ContinuousCoordinateSystem.theInstance, latLonZoom); this.viewControl.GetUIPositionManager().GetSMPos().setPosition(latLonZoom); this.viewControl.GetUIPositionManager().PositionUpdated(); }