【GeoDataBase】
洛   
示例: (下载 示例地理数据库(GPKG))
from gma import io
GDB = io.Open("GeoDataBase.gpkg")
# GDB = io.Open("GeoDataBase.gpkg", nOpenFlags = 1)  # 可修改模式
 1
2
3
2
3
注意
如果期望修改数据库(例如添加/删除图层等),请传入参数 nOpenFlags = 1。
GeoDataBase 具有如下所列的 方法/属性:
| 序号 | 名称 | 描述 | 返回值类型 | 方法/属性 | 示例返回值 | 
|---|---|---|---|---|---|
| M.1 | AddLayer | 添加矢量图层 | GDB.AddLayer() | ||
| M.2 | DeleteLayer | 删除矢量图层 | GDB.DeleteLayer() | ||
| M.3 | GetDataSet | 获取栅格数据集 | DataSet |  GDB.GetDataSet() | |
| M.4 | GetLayer | 获取栅格数据集 | Layer |  GDB.GetLayer() | |
| M.5 | SQLQuery | 执行 SQL 查询语句 | Layer |  GDB.SQLQuery() | |
| P.1 | DataSetCount | 栅格数据集数量 | int |  GDB.DataSetCount | 0 | 
| P.2 | DataSetNames | 栅格数据集名称 | list |  GDB.DataSetNames | [] | 
| P.3 | Driver | 数据库驱动 | str |  GDB.Driver | 'GPKG' | 
| P.4 | Info | 栅格信息 | DataFrame |  GDB.Info | 点击跳转 | 
| P.5 | LayerCount | 矢量图层数量 | int |  GDB.LayerCount | 8 | 
| P.6 | LayerNames | 矢量图层名称 | list |  GDB.LayerNames | ['Bridge', 'Gates', ...] | 
| P.7 | Metadata | 元数据 | dict |  GDB.Metadata | {} | 
# AddLayer(GMALayer)
功能:【向数据库添加矢量图层】。
参数:
 GMALayer:Layer。一个矢量图层。
示例: 请参考:CreateDataBase。
# DeleteLayer(LayerName)
功能:【删除数据库中的一个矢量图层】。
参数:
 LayerName:str。矢量图层名称。
示例:
GDB.DeleteLayer('Gates') # 删除数据库中名称为 Gates 的图层。
 1
# GetDataSet(DSIDOrName=0)
功能:【获取数据库中的栅格数据集】。
参数:
 DSIDOrName:str||int。数据集名称或序号。
返回:DataSet。
提示
可通过 Info 属性,获得数据库中所有 栅格数据集的 名称 和 ID。
# GetLayer(LYIDOrName=0)
功能:【获取数据库中的矢量图层】。
参数:
 LYIDOrName:str||int。图层名称或序号。
返回:Layer。
提示
可通过 Info 属性,获得数据库中所有 矢量图层的 名称 和 ID。
示例:
Bridge = GDB.GetLayer('Bridge') # 获取数据库中名称为 Bridge 的图层。
 1
# SQLQuery(SQLExpr)
功能:【执行 SQL(ite) 查询语句】。
参数:
 SQLExpr:str。SQL(ite) 表达式。
返回:Layer。
示例:
# 筛选 Bridge 图层中属性表字段“桥”的值为“天津桥”的数据。
SQLLayer = GDB.SQLQuery('SELECT * FROM "Bridge" WHERE "桥" = "天津桥"')  
 1
2
2
# 在 jupyter notebook 中查看地理数据库信息(与 Info 属性一致)
GDB
 1
| Name | Type | ID | 
|---|---|---|
| Bridge | Layer | 0 | 
| Gates | Layer | 1 | 
| LuoShui | Layer | 2 | 
| Market | Layer | 3 | 
| Neighborhood | Layer | 4 | 
| Taiwei | Layer | 5 | 
| Wall | Layer | 6 | 
| Ziwei | Layer | 7 |