操作方法
本文将介绍如何使用 VBA 和 ArcObjects 将 ArcMap 中的一组选定要素导出到新的 shapefile。
注: 本文中的信息仅适用于 ArcGIS 版本 9.x。 ArcGIS 10 已弃用 ArcMap 和 ArcCatalog 的 Visual Basic for Applications (VBA)。
注: ThisDocument 代码模块中的代码仅在当前地图文档中运行。 要将代码存储在所有地图文档中,请打开 Normal.mxt ThisDocument 代码模块中的代码。
代码: Sub ExportFeatureClass() Dim pDoc As IMxDocument Dim pMap As IMap Dim pFLayer As IFeatureLayer Dim pFc As IFeatureClass Dim pINFeatureClassName As IFeatureClassName Dim pDataset As IDataset Dim pInDsName As IDatasetName Dim pFSel As IFeatureSelection Dim pSelSet As ISelectionSet Dim pFeatureClassName As IFeatureClassName Dim pOutDatasetName As IDatasetName Dim pWorkspaceName As IWorkspaceName Dim pExportOp As IExportOperation Set pDoc = ThisDocument Set pMap = pDoc.FocusMap Set pFLayer = pMap.Layer(0) Set pFc = pFLayer.FeatureClass 'Get the FcName from the featureclass Set pDataset = pFc Set pINFeatureClassName = pDataset.FullName Set pInDsName = pINFeatureClassName 'Get the selection set Set pFSel = pFLayer Set pSelSet = pFSel.SelectionSet 'Define the output feature class name Set pFeatureClassName = New FeatureClassName Set pOutDatasetName = pFeatureClassName pOutDatasetName.Name = "TestExport" Set pWorkspaceName = New WorkspaceName pWorkspaceName.PathName = "c:\temp" pWorkspaceName.WorkspaceFactoryProgID = _ "esriCore.shapefileworkspacefactory.1" Set pOutDatasetName.WorkspaceName = pWorkspaceName pFeatureClassName.FeatureType = esriFTSimple pFeatureClassName.ShapeType = esriGeometryAny pFeatureClassName.ShapeFieldName = "Shape" 'Export Set pExportOp = New ExportOperation pExportOp.ExportFeatureClass pInDsName, Nothing, _ pSelSet, Nothing, pOutDatasetName, 0 End Sub
注: 地图中的第一个图层必须为矢量图层,否则将出现“类型不匹配”错误。
文章 ID:000004964
从 ArcGIS 专家处获得帮助
下载 Esri 支持应用程序