【问题标题】:ArcGIS: Get catalog path from IFeatureClassArcGIS:从 IFeatureClass 获取目录路径
【发布时间】:2017-07-13 23:27:02
【问题描述】:

VB.NET 针对 ArcGIS 10.1 我有一个在 geodb 中搜索要素类名称的函数。如果找到我想显示它是在哪里找到的。目前我只返回 FeatureClass 对象,如下所示:

Dim fcTest As IFeatureClass = FindFeatureClassByName(pWorkspace, fcName)

效果很好,但现在我想显示要素类对象的完整目录路径。那可能吗?我一直在寻找几个小时,但似乎无法做到。要素类可能存在于要素数据集中。因此要素类可能位于

    E:\Batch\Delivered.gdb\Bridges
    D:\Data\Final\Infrastructure.gdb\EastValley\powerlines
    C:/projects/RedRiverBasin/data.mdb/streams
    C:/projects/Airports/USA.mdb/West/lax

该信息是否包含在 FeatureClass 对象中,还是我必须调整我的功能?

我试过了

Dim pDataset As IDataset = CType(fcTest, IDataset)

但 pDataset.Name 只是要素类的名称,而不是完整的目录路径和名称,包括任何要素数据集(如果位于其位置)。

【问题讨论】:

    标签: path gis arcgis catalog


    【解决方案1】:

    找到了一个解决方案,而且相当简单:

    ''' <summary>
    ''' this routine will return the full catalog path and name of a feature class.
    ''' </summary>
    ''' <param name="pFeatClass">the feature class object</param>
    ''' <returns>a string representing the catalog path of the feature class</returns>
    ''' <remarks>https://geonet.esri.com/thread/4280</remarks>
    Public Function GetCatalogPath(ByVal pFeatClass As IFeatureClass) As String
        Try
            'check for valid object
            If pFeatClass Is Nothing Then Return Nothing
    
            'cast to dataset and get workspace
            Dim pDataset As IDataset = CType(pFeatClass, IDataset)
            Dim pWksp As IWorkspace = pDataset.Workspace
    
            'the full path may be in a fetaure dataset so check it
            Dim pFeatDs As IFeatureDataset = pFeatClass.FeatureDataset
            If pFeatDs Is Nothing Then
                Return System.IO.Path.Combine(pWksp.PathName, pDataset.Name)
            Else
                Return System.IO.Path.Combine(pWksp.PathName, pFeatDs.Name, pDataset.Name)
            End If
        Catch ex As Exception
            Return Nothing
        End Try
    End Function
    

    【讨论】:

      猜你喜欢
      • 2017-03-05
      • 2010-10-14
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多