コード例 #1
0
        private void AddVectorLayer(string strVecName)
        {
            if (_vectorHostLayer == null)
            {
                return;
            }
            if (canvasHost1.Canvas.IsRasterCoord)
            {
                return;
            }
            IRasterDrawing drawing = canvasHost1.Canvas.PrimaryDrawObject as IRasterDrawing;

            if (drawing != null)
            {
                drawing.TryCreateOrbitPrjection();
            }

            string extName = Path.GetExtension(strVecName).ToUpper();

            if (extName == ".SHP")
            {
                _vectorHostLayer.AddData(strVecName, null);

                CodeCell.AgileMap.Core.IMap             map   = _vectorHostLayer.Map as CodeCell.AgileMap.Core.IMap;
                CodeCell.AgileMap.Core.FeatureLayer     fetL  = map.LayerContainer.Layers[0] as CodeCell.AgileMap.Core.FeatureLayer;
                CodeCell.AgileMap.Core.FeatureClass     fetc  = fetL.Class as CodeCell.AgileMap.Core.FeatureClass;
                CodeCell.AgileMap.Core.Envelope         evp   = fetc.FullEnvelope.Clone() as CodeCell.AgileMap.Core.Envelope;
                GeoDo.RSS.Core.DrawEngine.CoordEnvelope cvEvp = new GeoDo.RSS.Core.DrawEngine.CoordEnvelope(evp.MinX, evp.MaxX, evp.MinY, evp.MaxY);
                canvasHost1.Canvas.CurrentEnvelope = cvEvp;
            }

            canvasHost1.Canvas.Refresh(enumRefreshType.All);
        }
コード例 #2
0
        private void SelPoint_Click(object sender, EventArgs e)
        {
            bool hasDataShowed = false;

            foreach (ILayer layer in canvasHost1.Canvas.LayerContainer.Layers)
            {
                if (layer is RasterLayer)
                {
                    hasDataShowed = true;
                    break;
                }

                if (layer is IVectorHostLayer)
                {
                    CodeCell.AgileMap.Core.IMap map = (layer as IVectorHostLayer).Map as CodeCell.AgileMap.Core.IMap;
                    if (map != null)
                    {
                        if ((map.LayerContainer.Layers != null) && (map.LayerContainer.Layers.Length > 0))
                        {
                            hasDataShowed = true;
                            break;
                        }
                    }
                }
            }
            if (!hasDataShowed)
            {
                return;
            }
            //_aoiContainer.Reset();
            _aoiContainer.IsAllowEdit = true;
            if (_aoiContainer.AOIs.Count() == 0)
            {
                canvasHost1.Canvas.CurrentViewControl = _aoiContainer as IControlLayer;
                AddSelPoint();
            }
            else
            {
                GeometryOfDrawed geometry = _aoiContainer.FirstAOI as GeometryOfDrawed;
                canvasHost1.Canvas.CurrentViewControl = _aoiContainer as IControlLayer;
                _aoiContainer.AddAOI(geometry);
            }
            // canvasHost1.Canvas.CurrentViewControl = _aoiContainer as IControlLayer;
            //drawTool.PencilIsFinished = (x) =>
            //{
            //    _aoiContainer.AddAOI(x);
            //    UpdateDrawedAOI();
            //    if (AOIIsChanged != null)
            //        AOIIsChanged(this, null);
            //    canvasHost1.Canvas.CurrentViewControl = _aoiContainer as IControlLayer;
            //};
            canvasHost1.Canvas.Refresh(enumRefreshType.All);
            //canvasHost1.Canvas.CurrentViewControl = drawTool;
        }
コード例 #3
0
        public override bool Open(string fname, out bool memoryIsNotEnough)
        {
            memoryIsNotEnough = false;
            if (!MemoryIsEnoughChecker.MemoryIsEnouggWithMsgBoxForVector(fname))
            {
                memoryIsNotEnough = true;
                return(false);
            }
            bool isSpatial = IsCanAddToView(fname);

            //string mcd = TryGetMcd(fname);//不能在这里用mcd替换
            //if (!string.IsNullOrWhiteSpace(mcd))
            //    fname = mcd;

            if (_session.SmartWindowManager.ActiveViewer is ICanvasViewer && isSpatial)
            {
                AddVectorDataToCanvasViewer(fname, true);
            }
            else if (_session.SmartWindowManager.ActiveViewer is ILayoutViewer)
            {
                AddVectorDataToLayoutViewer(fname, true);
            }
            else
            {
                CanvasViewer cv = new CanvasViewer(OpenFileFactory.GetTextByFileName(fname), _session);
                _session.SmartWindowManager.DisplayWindow(cv);
                IVectorHostLayer host = cv.Canvas.LayerContainer.VectorHost as IVectorHostLayer;
                if (host != null)
                {
                    host.Set(cv.Canvas);
                    AddVectorDataToCanvasViewer(fname, false);
                    CodeCell.AgileMap.Core.IMap         map  = host.Map as CodeCell.AgileMap.Core.IMap;
                    CodeCell.AgileMap.Core.FeatureLayer fetL = map.LayerContainer.Layers[0] as CodeCell.AgileMap.Core.FeatureLayer;
                    CodeCell.AgileMap.Core.FeatureClass fetc = fetL.Class as CodeCell.AgileMap.Core.FeatureClass;
                    CodeCell.AgileMap.Core.Envelope     evp  = fetc.FullEnvelope.Clone() as CodeCell.AgileMap.Core.Envelope;
                    CoordEnvelope cvEvp = new CoordEnvelope(evp.MinX, evp.MaxX, evp.MinY, evp.MaxY);
                    cv.Canvas.CurrentEnvelope = cvEvp;
                    cv.Canvas.Refresh(enumRefreshType.All);
                }
            }
            RefreshLayerManager();
            return(true);
        }
コード例 #4
0
 private void ImgFullMap_Click(object sender, EventArgs e)
 {
     if (canvasHost1.Canvas.PrimaryDrawObject is IRasterDrawing)
     {
         canvasHost1.Canvas.CurrentEnvelope = (canvasHost1.Canvas.PrimaryDrawObject as IRasterDrawing).OriginalEnvelope;
     }
     else
     {
         CodeCell.AgileMap.Core.IMap map = _vectorHostLayer.Map as CodeCell.AgileMap.Core.IMap;
         if ((map.LayerContainer.Layers != null) && (map.LayerContainer.Layers.Length > 0))
         {
             CodeCell.AgileMap.Core.FeatureLayer     fetL  = map.LayerContainer.Layers[0] as CodeCell.AgileMap.Core.FeatureLayer;
             CodeCell.AgileMap.Core.FeatureClass     fetc  = fetL.Class as CodeCell.AgileMap.Core.FeatureClass;
             CodeCell.AgileMap.Core.Envelope         evp   = fetc.FullEnvelope.Clone() as CodeCell.AgileMap.Core.Envelope;
             GeoDo.RSS.Core.DrawEngine.CoordEnvelope cvEvp = new GeoDo.RSS.Core.DrawEngine.CoordEnvelope(evp.MinX, evp.MaxX, evp.MinY, evp.MaxY);
             canvasHost1.Canvas.CurrentEnvelope = cvEvp;
         }
     }
     //canvasHost1.Canvas.SetToFullEnvelope();
     canvasHost1.Canvas.Refresh(enumRefreshType.All);
 }
コード例 #5
0
        public ISpatialReference GetSpatialRef()
        {
            ISpatialReference spatialRef = null;

            if (canvasHost1.Canvas.PrimaryDrawObject != null)
            {
                spatialRef = SpatialReference.FromWkt(canvasHost1.Canvas.PrimaryDrawObject.SpatialRef, enumWKTSource.GDAL);
            }
            else
            {
                CodeCell.AgileMap.Core.IMap map = _vectorHostLayer.Map as CodeCell.AgileMap.Core.IMap;
                if ((map.LayerContainer.Layers != null) && (map.LayerContainer.Layers.Length > 0))
                {
                    CodeCell.AgileMap.Core.FeatureLayer fetL = map.LayerContainer.Layers[0] as CodeCell.AgileMap.Core.FeatureLayer;
                    CodeCell.AgileMap.Core.FeatureClass fetc = fetL.Class as CodeCell.AgileMap.Core.FeatureClass;
                    if (fetc.SpatialReference != null)
                    {
                        spatialRef = SpatialReference.FromWkt(fetc.SpatialReference.ToWKTString(), enumWKTSource.GDAL);
                    }
                }
            }
            return(spatialRef);
        }
コード例 #6
0
 public int GetCoordType()
 {
     if (canvasHost1.Canvas.PrimaryDrawObject != null)
     {
         if (canvasHost1.Canvas.PrimaryDrawObject.IsRasterCoord)
         {
             return(0);
         }
         else if (canvasHost1.Canvas.CoordTransform.DataCoordType == enumDataCoordType.Geo)
         {
             return(1);
         }
         else
         {
             return(2);
         }
     }
     else
     {
         CodeCell.AgileMap.Core.IMap map = _vectorHostLayer.Map as CodeCell.AgileMap.Core.IMap;
         if ((map.LayerContainer.Layers != null) && (map.LayerContainer.Layers.Length > 0))
         {
             CodeCell.AgileMap.Core.FeatureLayer       fetL      = map.LayerContainer.Layers[0] as CodeCell.AgileMap.Core.FeatureLayer;
             CodeCell.AgileMap.Core.FeatureClass       fetc      = fetL.Class as CodeCell.AgileMap.Core.FeatureClass;
             CodeCell.AgileMap.Core.enumCoordinateType coordType = fetc.OriginalCoordinateType;
             if (coordType == 0)
             {
                 return(1);
             }
             else
             {
                 return(2);
             }
         }
     }
     return(1);
 }