Exemple #1
0
 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));
     }
 }
Exemple #2
0
        /// <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);
        }