Ejemplo n.º 1
0
        /// <summary>
        /// 直接添加所有层--通过IFeatureClassContainer
        /// </summary>
        /// <param name="mapControlDefault">地图控件</param>
        /// <param name="pFeatureWorkspace">要素工作空间</param>
        /// <param name="strFileName">文件名,包括后缀</param>
        public static void GetALLCADbyWorkspace(IMapControlDefault mapControlDefault, IWorkspace pCADWorkspace, string strFileName)
        {
            IFeatureWorkspace      pFeatureWorkspace      = pCADWorkspace as IFeatureWorkspace;
            IFeatureDataset        pFeatureDataset        = pFeatureWorkspace.OpenFeatureDataset(strFileName);
            IFeatureClassContainer pFeatureClassContainer = pFeatureDataset as IFeatureClassContainer;

            for (int i = 0; i < pFeatureClassContainer.ClassCount; i++)
            {
                IFeatureClass pFeatureClass = pFeatureClassContainer.get_Class(i);
                IFeatureLayer pFeatureLayer = null;
                if (pFeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)
                {
                    pFeatureLayer = new CadAnnotationLayerClass();
                }
                else
                {
                    pFeatureLayer = new CadFeatureLayerClass();
                }
                if (pFeatureLayer != null)
                {
                    pFeatureLayer.Name         = pFeatureClass.AliasName;
                    pFeatureLayer.FeatureClass = pFeatureClass;
                    mapControlDefault.AddLayer(pFeatureLayer as ILayer, 0);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 打开指定的CAD图层,包括点point,线polyline,多点mutilpoint,多段mutilpatch与注记(如果是注记,需要建立CadAnnotationLayerClass实例对象),添加的是空间数据对象(添加到同一个图层组中,图层组名为文件名无后缀)
        /// </summary>
        /// <param name="mapControlDefault">地图控件</param>
        /// <param name="pWorkspace">工作空间</param>
        /// <param name="strFileName">文件名,没有会追</param>
        public static void GetALLCADLayerFromGeo(IMapControlDefault mapControlDefault, IWorkspace pWorkspace, string strFileName)
        {
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
            //组图层
            IGroupLayer pGroupLayer = new GroupLayerClass();

            pGroupLayer.Name = strFileName.Substring(0, strFileName.LastIndexOf("."));

            //打开指定的的cad图层--Point
            IFeatureClass pFeatureClass_Point = pFeatureWorkspace.OpenFeatureClass(strFileName + ":point");

            if (pFeatureClass_Point != null)
            {
                IFeatureLayer pFeatureLayer_Point = new CadFeatureLayerClass();
                pFeatureLayer_Point.FeatureClass = pFeatureClass_Point;
                pFeatureLayer_Point.Name         = pFeatureClass_Point.AliasName;
                pGroupLayer.Add(pFeatureLayer_Point);
            }
            //Polyline
            string        strPlineName        = System.String.Concat(strFileName, ":Polyline");
            IFeatureClass pFeatClass_Polyline = pFeatureWorkspace.OpenFeatureClass(strPlineName);

            if (pFeatClass_Polyline != null)
            {
                IFeatureLayer pFeatureLayer_Polyline = new CadFeatureLayerClass();
                pFeatureLayer_Polyline.FeatureClass = pFeatClass_Polyline;
                pFeatureLayer_Polyline.Name         = pFeatClass_Polyline.AliasName;
                pGroupLayer.Add(pFeatureLayer_Polyline);
                pGroupLayer.Add(pFeatureLayer_Polyline);
            }

            mapControlDefault.AddLayer(pGroupLayer as ILayer, 0);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 通过IWorkspace直接获取到CadDrawingDataset--是cad数据
        /// </summary>
        /// <param name="mapControlDefault">地图控件</param>
        /// <param name="pWorkspace">工作空间</param>
        /// <param name="strFileName"></param>
        public static void GetALLCADLayer(IMapControlDefault mapControlDefault, IWorkspace pWorkspace, string strFileName)
        {
            ICadDrawingWorkspace pCadDrawingWorkspace = pWorkspace as ICadDrawingWorkspace;
            ICadDrawingDataset   pCadDrawingDataset   = pCadDrawingWorkspace.OpenCadDrawingDataset(strFileName);
            ICadLayer            pCadLayer            = new CadLayerClass();

            pCadLayer.CadDrawingDataset = pCadDrawingDataset;
            mapControlDefault.AddLayer(pCadLayer as ILayer, 0);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 通过ICadDrawingDataset与ICadLayer获取cad
        /// </summary>
        /// <param name="mapControlDefault">地图控件</param>
        /// <param name="strPathWithoutFileName">文件所在文件夹路径</param>
        /// <param name="strFileName">文件名,包括后缀</param>
        public static void GetAllCADbyCADLayer(IMapControlDefault mapControlDefault, string strPathWithoutFileName, string strFileName)
        {
            ICadDrawingDataset cadDrawingDataset = GetCadDataset(strPathWithoutFileName, strFileName);

            if (cadDrawingDataset == null)
            {
                return;
            }
            ICadLayer cadLayer = new CadLayerClass();

            cadLayer.CadDrawingDataset = cadDrawingDataset;
            cadLayer.Name = strFileName;
            ILayer mLayer = cadLayer as ILayer;

            mapControlDefault.AddLayer(mLayer, 0);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 直接添加所有层--通过IFeatureClassContainer
 /// </summary>
 /// <param name="mapControlDefault">地图控件</param>
 /// <param name="pFeatureWorkspace">要素工作空间</param>
 /// <param name="strFileName">文件名,包括后缀</param>
 public static void GetALLCADbyWorkspace(IMapControlDefault mapControlDefault,IWorkspace pCADWorkspace, string strFileName)
 {
     IFeatureWorkspace pFeatureWorkspace = pCADWorkspace as IFeatureWorkspace;
     IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(strFileName);
     IFeatureClassContainer pFeatureClassContainer = pFeatureDataset as IFeatureClassContainer;
     for (int i = 0; i < pFeatureClassContainer.ClassCount; i++)
     {
         IFeatureClass pFeatureClass = pFeatureClassContainer.get_Class(i);
         IFeatureLayer pFeatureLayer = null;
         if (pFeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)
         {
             pFeatureLayer = new CadAnnotationLayerClass();
         }
         else
         {
             pFeatureLayer = new CadFeatureLayerClass();
         }
         if (pFeatureLayer != null)
         {
             pFeatureLayer.Name = pFeatureClass.AliasName;
             pFeatureLayer.FeatureClass = pFeatureClass;
             mapControlDefault.AddLayer(pFeatureLayer as ILayer, 0);
         }
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// 打开指定的CAD图层,包括点point,线polyline,多点mutilpoint,多段mutilpatch与注记(如果是注记,需要建立CadAnnotationLayerClass实例对象),添加的是空间数据对象(添加到同一个图层组中,图层组名为文件名无后缀)
        /// </summary>
        /// <param name="mapControlDefault">地图控件</param>
        /// <param name="pWorkspace">工作空间</param>
        /// <param name="strFileName">文件名,没有会追</param>
        public static void GetALLCADLayerFromGeo(IMapControlDefault mapControlDefault, IWorkspace pWorkspace, string strFileName)
        {
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
            //组图层
            IGroupLayer pGroupLayer = new GroupLayerClass();
            pGroupLayer.Name = strFileName.Substring(0, strFileName.LastIndexOf("."));

            //打开指定的的cad图层--Point
            IFeatureClass pFeatureClass_Point = pFeatureWorkspace.OpenFeatureClass(strFileName + ":point");
            if (pFeatureClass_Point != null)
            {
                IFeatureLayer pFeatureLayer_Point = new CadFeatureLayerClass();
                pFeatureLayer_Point.FeatureClass = pFeatureClass_Point;
                pFeatureLayer_Point.Name = pFeatureClass_Point.AliasName;
                pGroupLayer.Add(pFeatureLayer_Point);
            }
            //Polyline  
            string strPlineName = System.String.Concat(strFileName, ":Polyline");
            IFeatureClass pFeatClass_Polyline = pFeatureWorkspace.OpenFeatureClass(strPlineName);
            if (pFeatClass_Polyline != null)
            {
                IFeatureLayer pFeatureLayer_Polyline = new CadFeatureLayerClass();
                pFeatureLayer_Polyline.FeatureClass = pFeatClass_Polyline;
                pFeatureLayer_Polyline.Name = pFeatClass_Polyline.AliasName;
                pGroupLayer.Add(pFeatureLayer_Polyline);
                pGroupLayer.Add(pFeatureLayer_Polyline);
            }

            mapControlDefault.AddLayer(pGroupLayer as ILayer, 0);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// 通过IWorkspace直接获取到CadDrawingDataset--是cad数据
 /// </summary>
 /// <param name="mapControlDefault">地图控件</param>
 /// <param name="pWorkspace">工作空间</param>
 /// <param name="strFileName"></param>
 public static void GetALLCADLayer(IMapControlDefault mapControlDefault, IWorkspace pWorkspace, string strFileName)
 {
     ICadDrawingWorkspace pCadDrawingWorkspace = pWorkspace as ICadDrawingWorkspace;
     ICadDrawingDataset pCadDrawingDataset = pCadDrawingWorkspace.OpenCadDrawingDataset(strFileName);
     ICadLayer pCadLayer = new CadLayerClass();
     pCadLayer.CadDrawingDataset = pCadDrawingDataset;
     mapControlDefault.AddLayer(pCadLayer as ILayer, 0);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 通过ICadDrawingDataset与ICadLayer获取cad
 /// </summary>
 /// <param name="mapControlDefault">地图控件</param>
 /// <param name="strPathWithoutFileName">文件所在文件夹路径</param>
 /// <param name="strFileName">文件名,包括后缀</param>
 public static void GetAllCADbyCADLayer(IMapControlDefault mapControlDefault, string strPathWithoutFileName, string strFileName)
 {
     ICadDrawingDataset cadDrawingDataset = GetCadDataset(strPathWithoutFileName, strFileName);
     if (cadDrawingDataset == null) 
         return;
     ICadLayer cadLayer = new CadLayerClass();
     cadLayer.CadDrawingDataset = cadDrawingDataset;
     cadLayer.Name = strFileName;
     ILayer mLayer = cadLayer as ILayer;
     mapControlDefault.AddLayer(mLayer, 0);
 }