中文
Continue in the app
Be The First To Get Support Updates
Want to know about the latest technical content and software updates?

操作方法:以编程方式将选定要素导出到 shapefile

摘要

本文将介绍如何使用 VBA 和 ArcObjects 将 ArcMap 中的一组选定要素导出到新的 shapefile。

:
本文中的信息仅适用于 ArcGIS 版本 9.x。 ArcGIS 10 已弃用 ArcMap 和 ArcCatalog 的 Visual Basic for Applications (VBA)。

过程

  1. 打开 ArcMap。
  2. 打开 Visual Basic 编辑器。
  • 在 ArcMap 中,选择工具 > 宏 > Visual Basic 编辑器
  1. 工程浏览器窗口中,展开 Project 文件夹并选择 ThisDocument。 单击鼠标右键并选择查看代码
    [O-Image] Visual Basic Project  Explorer
    :
    ThisDocument 代码模块中的代码仅在当前地图文档中运行。 要将代码存储在所有地图文档中,请打开 Normal.mxt ThisDocument 代码模块中的代码。 
  2. 将以下代码粘贴到代码模块中:
    代码:
    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
  3. 如有必要,请修改 pWorkspaceName.PathName 语句以指向应创建新 shapefile 的文件夹。
  4. 关闭 Visual Basic 编辑器。
  5. 将要素类添加到 ArcMap 并选择一些要导出的要素。
    :
    地图中的第一个图层必须为矢量图层,否则将出现“类型不匹配”错误。
  6. 运行代码。
    1. 单击工具 > 宏 > 宏,以显示对话框。
    2. 选择宏,然后单击运行。 查找在 PathName 设置中指定的文件夹,以查看创建的 shapefile。 将 shapefile 添加到地图文档以查看已创建的要素。

相关信息

上次修改时间: 2/21/2019

文章 ID: 000004964