123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import os
- from osgeo import ogr
- # 设置 GDB 文件夹路径
- gdb_path = 'D:\\gisdata\\三亚\\海域数据和三区三线数据\\三亚三线数据.gdb' # 设置为你的 .gdb 文件夹路径
- # 打开 GDB 文件夹(通过 ogr 驱动)
- driver = ogr.GetDriverByName('OpenFileGDB')
- if not driver:
- raise Exception("OpenFileGDB 驱动不可用")
- # 打开 GDB 文件夹
- gdb = driver.Open(gdb_path, 0) # 0 表示只读模式
- if not gdb:
- raise Exception(f"无法打开 {gdb_path} 文件夹")
- # 获取所有图层(要素类)
- layer_count = gdb.GetLayerCount()
- print(f"该 GDB 文件夹包含 {layer_count} 个图层:")
- # 遍历每个图层并输出图层名称
- for i in range(layer_count):
- layer = gdb.GetLayerByIndex(i)
- print(f"图层 {i}: {layer.GetName()}")
- # 读取第一个图层(你可以选择其他图层)
- layer_name = gdb.GetLayerByIndex(0).GetName()
- print(f"加载图层: {layer_name}")
- # 获取图层数据
- layer = gdb.GetLayerByName(layer_name)
- for feature in layer:
- # 获取每个要素的几何形状
- geom = feature.GetGeometryRef()
- print(f"要素几何: {geom.ExportToWkt()}")
- # 获取每个要素的字段值
- for field in feature.items():
- print(f"{field}: {feature.GetField(field)}")
- # 关闭 GDB 文件夹
- gdb = None
|