private void FormMain_Load(object sender, EventArgs e)
        {
            Ctrl_Tab.SelectedIndex = 1;
            Ctrl_Tab.SelectedIndex = 0;

            IFeatureWorkspace pFWorkspace    = OpenWorkspace(@"data.gdb") as IFeatureWorkspace;
            INetworkDataset   networkDataset = OpenNetworkDataset(pFWorkspace as IWorkspace, "rdCenLineDataSet_ND", "rdCenLineDataSet");

            m_NAContext = CreateSolverContext(networkDataset);
            INetworkLayer pNetworkLayer = new NetworkLayerClass();

            pNetworkLayer.NetworkDataset = networkDataset;
            ILayer pLayer = pNetworkLayer as ILayer;

            pLayer.Name = "NetworkLayer";
            Ctrl_Map.AddLayer(pLayer, 0);

            IFeatureLayer pJunctionLayer = new FeatureLayerClass();

            pJunctionLayer.FeatureClass = pFWorkspace.OpenFeatureClass("rdCenLineDataSet_ND_Junctions");
            pJunctionLayer.Name         = pJunctionLayer.FeatureClass.AliasName;
            Ctrl_Map.AddLayer(pJunctionLayer, 0);
            IFeatureLayer pRoadLayer = new FeatureLayerClass();

            pRoadLayer.FeatureClass = pFWorkspace.OpenFeatureClass("road_toLine");
            pRoadLayer.Name         = pRoadLayer.FeatureClass.AliasName;
            Ctrl_Map.AddLayer(pRoadLayer, 0);

            INALayer pNALayer = m_NAContext.Solver.CreateLayer(m_NAContext);

            (pNALayer as ILayer).Name = m_NAContext.Solver.DisplayName;
            Ctrl_Map.AddLayer(pNALayer as ILayer, 0);
        }
 private void Btn_ZoomToLayer_Click(object sender, EventArgs e)
 {
     if (m_selectedLayer != null)
     {
         (Ctrl_Map.Map as IActiveView).Extent = m_selectedLayer.AreaOfInterest;
         Ctrl_Map.Refresh();
     }
 }
        private object RequestResponder(OperationType type, object param = null)
        {
            switch (type)
            {
            case OperationType.SentStyleGalleryItem:
                m_pStyleGalleryItem = param as IStyleGalleryItem;
                return(null);

            case OperationType.GetViewIndex:
                return(Ctrl_Tab.SelectedIndex);

            case OperationType.GetSelectedLayer:
                return(m_selectedLayer);

            case OperationType.RefreshMapCtrl:
                Ctrl_Map.Refresh();
                return(null);

            case OperationType.UpdateTOCCtrl:
                Ctrl_TOC.Update();
                return(null);

            case OperationType.ClearSelection:
                Ctrl_Map.Map.ClearSelection();
                return(null);

            case OperationType.ModifyExtent:
                Ctrl_Map.Extent = param as IEnvelope;
                return(null);

            case OperationType.GetMap:
                return(Ctrl_Map.Map);

            case OperationType.GetScene:
                return(Ctrl_Scene.Scene);

            case OperationType.ZoomToSelection:
                ICommand curCmd = new ControlsZoomToSelectedCommandClass();
                curCmd.OnCreate(Ctrl_Map.Object);
                curCmd.OnClick();
                return(null);

            case OperationType.FormAttributeHighLightRow:
                if (m_FrmAttribute != null)
                {
                    m_FrmAttribute.HightLightSelection();
                }
                return(null);

            default:
                return(null);
            }
        }
        private void Btn_DeleteSelection_Click(object sender, EventArgs e)
        {
            IFeatureClass curFeatureClass = (m_selectedLayer as IFeatureLayer).FeatureClass;

            (m_selectedLayer as IFeatureSelection).SelectionSet.Search(null, true, out ICursor cursor);
            IFeatureCursor searchCursor = cursor as IFeatureCursor;
            IFeature       pFeature;

            while ((pFeature = searchCursor.NextFeature()) != null)
            {
                curFeatureClass.GetFeature(pFeature.OID).Delete();
            }
            (m_selectedLayer as IFeatureLayer).FeatureClass = curFeatureClass;
            Ctrl_Map.Refresh();
        }
        private void Btn_Slope_Click(object sender, EventArgs e)
        {
            IRasterLayer pFromRasterLayer = m_selectedLayer as IRasterLayer;

            if (pFromRasterLayer == null)
            {
                MessageBox.Show("非栅格图层");
                return;
            }

            IRaster pFromRaster = pFromRasterLayer.Raster;
            IRasterBandCollection pFromRasterBandCollection = pFromRaster as IRasterBandCollection;
            IRasterBand           pFromRasterBand           = pFromRasterBandCollection.Item(0);
            IRasterDataset        pFromRasterDataset        = pFromRasterBand as IRasterDataset;

            IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactoryClass();
            IRasterWorkspace  pRasterWorkspace  = pWorkspaceFactory.OpenFromFile(@"DB", 0) as IRasterWorkspace;

            ISurfaceOp pSurfaceOp = new RasterSurfaceOpClass();
            IRasterAnalysisEnvironment pRasterAnalysisEnvironment;

            pRasterAnalysisEnvironment = pSurfaceOp as IRasterAnalysisEnvironment;
            pRasterAnalysisEnvironment.OutWorkspace = pWorkspaceFactory as IWorkspace;
            object      zFactor = new object();
            IGeoDataset pGeoDataset, pRasterGetDataset;

            pRasterGetDataset = pFromRasterDataset as IGeoDataset;
            pGeoDataset       = pSurfaceOp.Slope(pRasterGetDataset, esriGeoAnalysisSlopeEnum.esriGeoAnalysisSlopePercentrise, ref zFactor);
            IRasterBandCollection pOutRasterBandCollection = pGeoDataset as IRasterBandCollection;
            string strOutRasterName = pFromRasterLayer.Name.Split('.')[0] + "_slope.tif";

            pOutRasterBandCollection.SaveAs(strOutRasterName, pRasterWorkspace as IWorkspace, "TIFF");

            IRasterDataset pNewRasterDataset = pRasterWorkspace.OpenRasterDataset(strOutRasterName);

            IRasterLayer pNewRasterLayer = new RasterLayerClass();

            pNewRasterLayer.CreateFromDataset(pNewRasterDataset);
            ILayer pNewLayer = pNewRasterLayer as ILayer;

            Ctrl_Map.AddLayer(pNewLayer);
        }