SDE要素类导出为shp格式文件

本文介绍了一种将特征类导出为Shapefile的方法,通过使用ArcGIS API进行空间过滤和选择,实现特定几何条件下的数据导出。此方法适用于没有Annotation feature class的情况。

与导出到PGDB的方法相似,shapefile没有Annotation featureclass,所以用以下这一方法就够

ExpandedBlockStart.gifContractedBlock.gifPrivate Sub ExportFeatureClass()Sub ExportFeatureClass(pFeatWorkspace As IFeatureWorkspace, pGeometry As IGeometry, pFCN() As String, OutputLocation As String)
     
    
Dim pFeatCLS As IFeatureClass
    
    
Dim pSelectionSet As ISelectionSet
    
Dim pExportOp As IExportOperation
    
Dim pDataset As IDataset
    
Dim pInFeatureClassName As IFeatureClassName
    
Dim pInDsName As IDatasetName
    
Dim pFeatureClassName As IFeatureClassName
    
Dim pOutDatasetName As IDatasetName
    
Dim pWorkspaceName As IWorkspaceName
    
    
Dim pProgID As String
    pProgID 
= "esriDataSourcesFile.ShapefileWorkspaceFactory"
     
    
'create new spatial filter
    Dim pSpatialFilter As ISpatialFilter
    
Dim pFilter As IQueryFilter
    
Set pSpatialFilter = New SpatialFilter
    
Set pSpatialFilter.Geometry = pGeometry
    pSpatialFilter.GeometryField 
= "SHAPE"
    pSpatialFilter.SpatialRel 
= esriSpatialRelEnum.esriSpatialRelIntersects
    
Set pFilter = pSpatialFilter
 
    
Dim j As Integer
    
For j = LBound(pFCN) To UBound(pFCN)
     
                
        
Set pFeatCLS = pFeatWorkspace.OpenFeatureClass(pFCN(j))
         
          
           
Set pSelectionSet = pFeatCLS.Select(pFilter, esriSelectionTypeIDSet, esriSelectionOption.esriSelectionOptionNormal, Nothing)

           
Set pWorkspaceName = New WorkspaceName
           pWorkspaceName.PathName 
= OutputLocation
           pWorkspaceName.WorkspaceFactoryProgID 
= pProgID

           
Set pDataset = pFeatCLS
           
Set pInFeatureClassName = pDataset.FullName
           
Set pInDsName = pInFeatureClassName

           
Set pFeatureClassName = New FeatureClassName

           
Set pOutDatasetName = pFeatureClassName
           
'    pOutDatasetName.Name = pFeatCls.AliasName & "_exp"
           Dim position As Integer
           position 
= InStr(pFeatCLS.AliasName, ".")
           
          
If position > 0 Then
           pOutDatasetName.Name 
= Right(pFeatCLS.AliasName, Len(pFeatCLS.AliasName) - position)
         
          
Else
            pOutDatasetName.Name 
= pFeatCLS.AliasName
          
End If
          
        
'   pOutDatasetName.Name = pFeatCls.AliasName
           Set pOutDatasetName.WorkspaceName = pWorkspaceName


           
Set pExportOp = New ExportOperation

           pExportOp.ExportFeatureClass pInDsName, 
Nothing, pSelectionSet, Nothing, pOutDatasetName, 0
          
              
       
        
Set pFeatCLS = Nothing
          
       
    
Next j
       
    
    
'Dispose
    Set pFeatCLS = Nothing
    
Set pSpatialFilter = Nothing
    
Set pFilter = Nothing
    
Set pSelectionSet = Nothing
    
Set pExportOp = Nothing
    
Set pDataset = Nothing
    
Set pInFeatureClassName = Nothing
    
Set pInDsName = Nothing
    
Set pFeatureClassName = Nothing
    
Set pOutDatasetName = Nothing
    
Set pWorkspaceName = Nothing
    
    
End Sub

 

转载于:https://www.cnblogs.com/iswszheng/archive/2009/04/03/1428767.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值