获取FeatureClass
1.从shape文件获取FeatureClass
1 /// <summary> 2 /// 读取shape文件为FeatureClass 3 /// </summary> 4 ///Example: shape文件路径:C:\data\USA\States.shp 5 /// <param name="string_ShapefileDirectory">shape文件的目录. 此处: "C:\data\USA"</param> 6 /// <param name="string_ShapefileName">shape文件的名字,不包括后缀,后缀大家都知道是shp. 此处: "States"</param> 7 /// <returns>返回FeatureClass接口</returns> 8 /// <remarks></remarks> 9 public ESRI.ArcGIS.Geodatabase.IFeatureClass GetFeatureClassFromShapefileOnDisk(System.String string_ShapefileDirectory, System.String string_ShapefileName) 10 { 11 System.IO.DirectoryInfo directoryInfo_check = new System.IO.DirectoryInfo(string_ShapefileDirectory); 12 if (directoryInfo_check.Exists) 13 { 14 //We have a valid directory, proceed 15 System.IO.FileInfo fileInfo_check = new System.IO.FileInfo(string_ShapefileDirectory + "\\" + string_ShapefileName + ".shp"); 16 if (fileInfo_check.Exists) 17 { 18 //We have a valid shapefile, proceed 19 20 ESRI.ArcGIS.Geodatabase.IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesFile.ShapefileWorkspaceFactoryClass(); 21 ESRI.ArcGIS.Geodatabase.IWorkspace workspace = workspaceFactory.OpenFromFile(string_ShapefileDirectory, 0); 22 ESRI.ArcGIS.Geodatabase.IFeatureWorkspace featureWorkspace = (ESRI.ArcGIS.Geodatabase.IFeatureWorkspace)workspace; // Explict Cast 23 ESRI.ArcGIS.Geodatabase.IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(string_ShapefileName); 24 25 return featureClass; 26 } 27 else 28 { 29 //Not valid shapefile 30 return null; 31 } 32 } 33 else 34 { 35 // Not valid directory 36 return null; 37 } 38 }
源:http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#//00490000008m000000
2.从FeatureLayer选中要素获取FeatureClass
1 ///<summary>Returns a reference to the currently selected featureclass from the given contents view.从当前内容视图中选中的要素返回要素类的引用</summary> 2 /// 3 ///<param name="currentContentsView">An IContentsView interface.内容视图接口</param> 4 /// 5 ///<returns>An IFeatureClass interface or Nothing if not found.返回值</returns> 6 /// 7 ///<remarks></remarks> 8 public ESRI.ArcGIS.Geodatabase.IFeatureClass GetFeatureClassOfSelectedFeatureLayerInContentsView(ESRI.ArcGIS.ArcMapUI.IContentsView currentContentsView) 9 { 10 if (currentContentsView == null) 11 { 12 return null; 13 } 14 if (currentContentsView.SelectedItem is ESRI.ArcGIS.Carto.IFeatureLayer) 15 { 16 ESRI.ArcGIS.Carto.IFeatureLayer featureLayer = (ESRI.ArcGIS.Carto.IFeatureLayer)currentContentsView.SelectedItem; // Explicit Cast 17 ESRI.ArcGIS.Geodatabase.IFeatureClass featureClass = featureLayer.FeatureClass; 18 19 return featureClass; 20 } 21 return null; 22 }
源:http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/Get_FeatureClass_of_Selected_Feature_Layer_in_Contents_View_Snippet/00490000004r000000/
3.从Personal Geodatabase获取FeatureClass
4.从File Geodatabase获取FeatureClass
5.从SDE获取FeatureClass