コード例 #1
0
        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());
        }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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();
        }