public static void SortLayer(IBasicMap pBasicMap, ILayer pLayer) { if (pBasicMap is IMap) { IMap pTmpMap = pBasicMap as IMap; pTmpMap.MoveLayer(pLayer, (int)ClsMapLayer.SortIndex(pLayer, pBasicMap)); } else if (pBasicMap is IScene) { IScene pScene = null; pScene = pBasicMap as IScene; pScene.MoveLayer(pLayer, (int)ClsMapLayer.SortIndex(pLayer, pBasicMap)); } }
/// <summary> /// 添加选中的图层 /// </summary> /// <param name="pMap"></param> /// <param name="pSuffix"></param> /// <param name="pListCol"></param> /// <param name="m_DatasetCol"></param> /// <param name="pCurrentFilePath"></param> /// <param name="blnAddData"></param> /// <returns></returns> public static bool AddSelectedLayer(IBasicMap pMap, string pSuffix, Collection <object> pListCol, Collection <object> m_DatasetCol, string pCurrentFilePath, bool blnAddData) { bool functionReturnValue = false; System.Windows.Forms.Cursor pCursor = Cursors.Default; //Dim pFileName As IFileName IWorkspaceFactory pWorkspaceFactory = null; IFeatureWorkspace pFeatWorkspace = null; //Dim pFeatDS As IFeatureDataset IDataset pDataset = null; //Dim pFeatCls As IFeatureClass IFeatureLayer pFeatLayer = null; //Dim pLayer As ILayer ////以下三个变量是用来获得工作区的路径和文件的名称 //Dim sPath() As String string sWorkSpacePath = pCurrentFilePath; string sFileName = null; if (pListCol.Count == 0) { return(false); } //要进行空间参考的比较 blnEditMapSpatial = true; try { switch (pSuffix) { case ".shp": { //shp文件的处理 //获得工作区,并通过shp文件的名称打开文件 pWorkspaceFactory = new ShapefileWorkspaceFactory() as IWorkspaceFactory; if (pWorkspaceFactory.IsWorkspace(sWorkSpacePath)) { pFeatWorkspace = pWorkspaceFactory.OpenFromFile(sWorkSpacePath, 0) as IFeatureWorkspace; for (int i = 0; i < pListCol.Count; i++) { sFileName = pListCol[i].ToString(); pDataset = pFeatWorkspace.OpenFeatureClass(sFileName) as IDataset; m_DatasetCol.Add(pDataset); pFeatLayer = new FeatureLayer(); //设置图层的名字和要素类 pFeatLayer.FeatureClass = pDataset as IFeatureClass; pFeatLayer.Name = sFileName.Substring(0, sFileName.Length - 4); if (blnAddData == true) { //pMap.AddLayer pFeatLayer ClsMapLayer.AddLyrToBasicMap(pMap, pFeatLayer); ClsMapLayer.SortLayer(pMap, pFeatLayer); } //pSelectedCln.Add(pFeatLayer) } functionReturnValue = true; } break; } case "IDatasetName": IDatasetName pDSN = null; for (int i = 0; i < pListCol.Count; i++) { pDSN = pListCol[i] as IDatasetName; functionReturnValue = ClsMapLayer.AddDataset(pMap, pDSN, m_DatasetCol, blnAddData); } break; } } catch (Exception ex) { MessageBox.Show(ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } return(functionReturnValue); }