#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