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