- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 vba/arcobjects 枚举文件地理数据库的内容(要素类和要素数据集,对表不感兴趣等)。
我将文件 GDB 设置为 IGxDatabase 对象,但找不到进一步了解的方法。我查看了地理数据库对象模型并尝试使用 IFeatureClass 和 IFeatureDataset,但似乎都没有返回有用的结果.
预先感谢您的帮助
最佳答案
枚举地理数据库中包含的名称比枚举名称可以打开的内容要快得多。棘手的部分是循环遍历特征数据集中的名称。虽然 IFeatureWorkspace.Open 可用于打开要素类,而无需先打开包含它的要素数据集,但获取要素数据集中的要素类名称需要打开要素数据集。
如果您确定需要打开每个要素类,那么我想使用 IWorkspace.Datasets、IEnumDataset 和 IDataset 而不是 IWorkspaceDatasetNames、IEnumDatasetname 和 IDatasetname 不会有什么坏处。
Option Explicit
Sub TestGetContents()
Dim pGxApp As IGxApplication
Set pGxApp = Application
If Not TypeOf pGxApp.SelectedObject Is IGxDatabase Then
Debug.Print "select a geodb first"
Exit Sub
End If
Dim c As Collection
Set c = GetContents(pGxApp.SelectedObject)
Dim l As Long
For l = 1 To c.Count
Dim pName As IName
Set pName = c.Item(l)
If TypeOf pName Is IFeatureClassName Then
Dim pFC As IFeatureClass
Set pFC = pName.Open
Debug.Print pFC.AliasName, pFC.FeatureCount(Nothing)
ElseIf TypeOf pName Is IFeatureDatasetName Then
Dim pDSName As IDatasetName
Set pDSName = pName
Debug.Print pDSName.name, "(featuredataset)"
End If
Next l
End Sub<p></p>
<p>Function GetContents(pGxDB As IGxDatabase) As Collection
Dim c As New Collection
Dim pEnumDSName As IEnumDatasetName
Set pEnumDSName = pGxDB.Workspace.DatasetNames(esriDTAny)
Dim pDSName As IDatasetName
Set pDSName = pEnumDSName.Next
Do Until pDSName Is Nothing
If TypeOf pDSName Is IFeatureClassName Then
c.Add pDSName
ElseIf TypeOf pDSName Is IFeatureDatasetName Then
c.Add pDSName
AddSubNames pDSName, c
End If
Set pDSName = pEnumDSName.Next
Loop
Set GetContents = c
End Function</p>
<p>Sub AddSubNames(pDSName1 As IDatasetName, c As Collection)
Dim pEnumDSName As IEnumDatasetName
Set pEnumDSName = pDSName1.SubsetNames
pEnumDSName.Reset
Dim pDSName2 As IDatasetName
Set pDSName2 = pEnumDSName.Next
Do Until pDSName2 Is Nothing
If TypeOf pDSName2 Is IFeatureClassName Then
c.Add pDSName2
End If
Set pDSName2 = pEnumDSName.Next
Loop
End Sub
</p>
关于vba - ArcObjects - 枚举地理数据库中的要素类和数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2509567/
我正在尝试使用 vba/arcobjects 枚举文件地理数据库的内容(要素类和要素数据集,对表不感兴趣等)。 我将文件 GDB 设置为 IGxDatabase 对象,但找不到进一步了解的方法。我查看
这是一个长镜头,最近有人用过 Esri ArcObjects 吗? 根据文档: 一个新的要求是运行时绑定(bind)。运行时绑定(bind)是指在调用任何 ArcObjects 代码(包括许可初始化)
我正在开发一个用于处理地理数据的 .NET 应用程序,该应用程序通过 ESRI 自己的 .NET 互操作程序集使用 ESRI 的 ArcObjects COM 库。 在生产环境中运行时,由于达到每个进
我正在开发一个用于处理地理数据的 .NET 应用程序,该应用程序通过 ESRI 自己的 .NET 互操作程序集使用 ESRI 的 ArcObjects COM 库。 在生产环境中运行时,由于达到每个进
我正在编写一个外部 Python/comtypes 脚本(在 PythonWin 中),它需要获取对当前 ArcGIS 10.0 ArcMap session 的引用(通过 ArcObjects CO
无法将 Ilayer 转换为 IPolygon。 我正在为 ArcMap 开发一个工具栏,我通过代码从副目录中获取一个图层。 Layer 是一个多边形,但代码不会将其转换为 IPolygon。 谁能帮
我需要表示平面图形结构,即将平面的一部分划分为多边形,以便我可以轻松找到多边形的邻居等(如在 map 上)。最好用的图书馆是什么?弧形对象? CGAL(二维排列)?还有什么吗? 我在 Windows
我正在 Python 2.6.5 和 ArcGIS 10 SP1 下试验 comtypes 和 ArcObjects。我使用纯 Python 方法来包装 this answer 中描述的 ArcObj
我刚开始使用 GDAL + python 来支持 ArcGIS python 地理处理脚本无法完成的操作。我主要从事栅格和矢量数据的空间建模/分析/编辑。 我有点困惑什么时候需要 ArcObject
我是一名优秀的程序员,十分优秀!