• C#+AE读取Shapefile,raster,gdb,mdb,CAD图,自定义格式坐标数据


     

    C#+AE读取Shapefile,raster,gdb,mdb,CAD图,自定义格式坐标数据

     7人阅读 评论(0) 收藏 举报
    [csharp] view plaincopy
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Text;  
    4. using ESRI.ArcGIS.Carto;  
    5. using ESRI.ArcGIS.DataSourcesGDB;  
    6. using ESRI.ArcGIS.Display;  
    7. using ESRI.ArcGIS.esriSystem;  
    8. using ESRI.ArcGIS.Geodatabase;  
    9. using ESRI.ArcGIS.Geometry;  
    10. using ESRI.ArcGIS.Controls;  
    11. using ESRI.ArcGIS.DataSourcesFile;  
    12. using ESRI.ArcGIS.DataSourcesRaster;  
    13.   
    14. namespace PLOS.ClassLibrary  
    15. {  
    16. public class ReadData  
    17. {  
    18. public static List<ILayer> ReadShapLayer(List<string> filePathList)  
    19. {  
    20. List<ILayer> layerList = new List<ILayer>();  
    21.   
    22. if (filePathList.Count == 0) return null;  
    23. else  
    24. {  
    25. foreach (string path in filePathList)  
    26. {  
    27. IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();  
    28. IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(path), 0);  
    29. IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;  
    30.   
    31. IFeatureClass pFeatureClass=pFeatureWorkspace.OpenFeatureClass(System.IO.Path.GetFileNameWithoutExtension(path));  
    32. IFeatureLayer pFeatureLayer = new FeatureLayerClass();  
    33. pFeatureLayer.FeatureClass = pFeatureClass;  
    34. pFeatureLayer.Name = System.IO.Path.GetFileNameWithoutExtension(path);  
    35. layerList.Add(pFeatureLayer as ILayer);  
    36. }  
    37. return layerList;  
    38. }  
    39. }  
    40.   
    41. public static List<ILayer> ReadLayerFromAccess(List<string> filePathList)  
    42. {  
    43. List<ILayer> layerList = new List<ILayer>();  
    44.   
    45. if (filePathList.Count == 0) return null;  
    46. else  
    47. {  
    48. foreach (string path in filePathList)  
    49. {  
    50. IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();  
    51. IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0);  
    52. IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;  
    53.   
    54. IEnumDataset pEnumDataset = pWorkspace.get_Datasets(esriDatasetType.esriDTFeatureClass) as IEnumDataset;  
    55. pEnumDataset.Reset();  
    56. IDataset pDataset = pEnumDataset.Next();  
    57.   
    58. while (pDataset is IFeatureClass)  
    59. {  
    60. IFeatureLayer pFeatureLayer = new FeatureLayerClass();  
    61. pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(pDataset.Name);  
    62. pFeatureLayer.Name = pDataset.Name;  
    63. ILayer pLayer = pFeatureLayer as ILayer;  
    64. layerList.Add(pFeatureLayer as ILayer);  
    65. pDataset = pEnumDataset.Next();  
    66. }  
    67. }  
    68. return layerList;  
    69. }  
    70. }  
    71.   
    72. public static List<ILayer> ReadLayerFromGDB(List<string> filePathList)  
    73. {  
    74. List<ILayer> layerList = new List<ILayer>();  
    75.   
    76. if (filePathList.Count == 0) return null;  
    77. else  
    78. {  
    79. foreach (string path in filePathList)  
    80. {  
    81. IWorkspaceFactory pWorkspaceFactory = new FileGDBWorkspaceFactoryClass();  
    82. IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(path, 0);  
    83. IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;  
    84.   
    85. IEnumDataset pEnumDataset = pWorkspace.get_Datasets(esriDatasetType.esriDTFeatureClass) as IEnumDataset;  
    86. pEnumDataset.Reset();  
    87. IDataset pDataset = pEnumDataset.Next();  
    88.   
    89. while (pDataset is IFeatureClass)  
    90. {  
    91. IFeatureLayer pFeatureLayer = new FeatureLayerClass();  
    92. pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(pDataset.Name);  
    93. pFeatureLayer.Name = pDataset.Name;  
    94. ILayer pLayer = pFeatureLayer as ILayer;  
    95. layerList.Add(pFeatureLayer as ILayer);  
    96. pDataset = pEnumDataset.Next();  
    97. }  
    98. }  
    99. return layerList;  
    100. }  
    101. }  
    102.   
    103. public static List<ILayer> ReadRasterLayer(List<string> filePathList)  
    104. {  
    105. List<ILayer> layerList = new List<ILayer>();  
    106.   
    107. if (filePathList.Count == 0) return null;  
    108. else  
    109. {  
    110. foreach (string path in filePathList)  
    111. {  
    112. IRasterLayer pRasterLayer = new RasterLayerClass();  
    113. pRasterLayer.CreateFromFilePath(path);  
    114. layerList.Add(pRasterLayer as ILayer);  
    115. }  
    116.   
    117. return layerList;  
    118. }  
    119. }  
    120.   
    121. public static List<ILayer> ReadCADLayer(List<string> filePathList)  
    122. {  
    123. List<ILayer> layerList = new List<ILayer>();  
    124.   
    125. if (filePathList.Count == 0) return null;  
    126. else  
    127. {  
    128. foreach (string path in filePathList)  
    129. {  
    130. IWorkspaceFactory pWorkspaceFactory = new CadWorkspaceFactoryClass();  
    131. IFeatureWorkspace pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName( path), 0) as IFeatureWorkspace;  
    132. IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(System.IO.Path.GetFileName(path));   
    133. IFeatureClassContainer pFeatClassContainer = pFeatureDataset as IFeatureClassContainer;  
    134.   
    135. for (int i = 0; i < pFeatClassContainer.ClassCount - 1; i++)  
    136. {  
    137. IFeatureLayer pFeatureLayer;  
    138. IFeatureClass pFeatClass = pFeatClassContainer.get_Class(i);  
    139. if (pFeatClass.FeatureType == esriFeatureType.esriFTCoverageAnnotation) pFeatureLayer = new CadAnnotationLayerClass();  
    140. else pFeatureLayer = new FeatureLayerClass();  
    141.   
    142. pFeatureLayer.Name = pFeatClass.AliasName;  
    143. pFeatureLayer.FeatureClass = pFeatClass;  
    144. layerList.Add(pFeatureLayer as ILayer);  
    145. }  
    146. }  
    147. return layerList;  
    148. }  
    149. }  
    150.   
    151. public static List<ILayer> ReadXYZfile(List<string> filePathLis)  
    152. {  
    153. //稍后贴出  
    154. }  
    155.   
    156. }  
    157. }  
  • 相关阅读:
    Cookie基本使用
    Chartlet简单易用的图表控件
    JQuery 基础:6.Each的用法
    图的基本算法
    Head First Design Patterns Strategy Pattern
    个人整理的面试题
    Android从SIM卡中获取联系人
    Android 覆盖安装
    Head First Design Patterns Adapter Pattern
    android 获取sim卡运营商信息(转)
  • 原文地址:https://www.cnblogs.com/xianyin05/p/3086561.html
Copyright © 2020-2023  润新知