现在的位置: 首页 > 综合 > 正文

打开各种类型的featureclass(VB.Net源码)

2011年04月27日 ⁄ 综合 ⁄ 共 3152字 ⁄ 字号 评论关闭

 

 

#Region "打开各种类型的featureclass"
  ''' <summary>
  ''' 打开Access,返回featureclass
  ''' </summary>
  ''' <param name="sDBName">Access文件名(全路径)</param>
  ''' <param name="sFCName">featureclass名称</param>
  ''' <returns>要素类featureclass</returns>
  ''' <remarks></remarks>
  Public Function OpenAccessDatabase(ByVal sDBName As String, ByVal sFCName As String) As IFeatureClass
    Dim pPropset As IPropertySet
    pPropset = New PropertySet
    Dim pFact As IWorkspaceFactory
    Dim pWorkspace As IWorkspace
    pPropset.SetProperty("DATABASE", sDBName)
    pFact = New AccessWorkspaceFactory
    pWorkspace = pFact.Open(pPropset, 0)
    Dim pFeatureWorkspace As IFeatureWorkspace
    pFeatureWorkspace = pWorkspace
    Dim pFeatureClass As IFeatureClass
    pFeatureClass = pFeatureWorkspace.OpenFeatureClass(sFCName)
    Return pFeatureClass
  End Function
  ''' <summary>
  ''' 打开Shapefile,返回featureclass
  ''' </summary>
  ''' <param name="sDBName">shapefile路径</param>
  ''' <param name="sFCName">featureclass名称</param>
  ''' <returns>要素类featureclass</returns>
  ''' <remarks></remarks>
  Public Function OpenShapefile(ByVal sDBName As String, ByVal sFCName As String) As IFeatureClass
    Dim pPropset As IPropertySet
    pPropset = New PropertySet
    Dim pFact As IWorkspaceFactory
    Dim pWorkspace As IWorkspace
    pPropset.SetProperty("DATABASE", sDBName)
    pFact = New ShapefileWorkspaceFactory
    pWorkspace = pFact.Open(pPropset, 0)
    Dim pFeatureWorkspace As IFeatureWorkspace
    pFeatureWorkspace = pWorkspace
    Dim pFeatureClass As IFeatureClass
    pFeatureClass = pFeatureWorkspace.OpenFeatureClass(sFCName)
    Return pFeatureClass
  End Function
 

 ''' <summary>
  ''' 打开SDE,返回featureclass
  ''' </summary>
  ''' <param name="sServerName">sde服务名称</param>
  ''' <param name="sFCName">featureclass名称</param>
  ''' <returns>要素类featureclass</returns>
  ''' <remarks></remarks>
 
 Public Function OpenSDE(ByVal sServerName As String, ByVal sFCName As String) As IFeatureClass
    Dim pPropset As IPropertySet
    pPropset = New PropertySet
    Dim pFact As IWorkspaceFactory
    Dim pWorkspace As IWorkspace
    With pPropset
      .SetProperty("Server", sServerName)
      .SetProperty("Instance", "sdemss")
      .SetProperty("Database", "sde") 'Ignored with ArcSDE for Oracle
      .SetProperty("user", "sde")
      .SetProperty("password", "go")
      .SetProperty("version", "sde.DEFAULT")
    End With
    pFact = New SdeWorkspaceFactory
    pWorkspace = pFact.Open(pPropset, 0)
    Dim pFeatureWorkspace As IFeatureWorkspace
    pFeatureWorkspace = pWorkspace
    Dim pFeatureClass As IFeatureClass
    pFeatureClass = pFeatureWorkspace.OpenFeatureClass(sFCName)
    Return pFeatureClass
  End Function
 
''' <summary>
  ''' 打开Raster,返回dataset
  ''' </summary>
  ''' <param name="sDir">路径名</param>
  ''' <param name="sFile">文件名</param>
  ''' <returns>返回RasterDataset</returns>
  ''' <remarks></remarks>
  Public Function OpenRasterDataset(ByVal sDir As String, ByVal sFile As String) As IRasterDataset
    'Open the raster dataset with the given name.
    'sDir is the directory the file resides
    'sFile is the filename
    Dim pWsFact As IWorkspaceFactory
    Dim pWs As IRasterWorkspace
    Dim pRasterDataset As IRasterDataset
    'Open the workspace
    pWsFact = New RasterWorkspaceFactory
    pWs = pWsFact.OpenFromFile(sDir, 0)
    'Open the raster dataset
    pRasterDataset = pWs.OpenRasterDataset(sFile)
    'Return
    pWsFact = Nothing
    pWs = Nothing
    pRasterDataset = Nothing
    Return pRasterDataset
  End Function
#End Region

抱歉!评论已关闭.