gis - 如何使用 pyqgis 列出 Geopackage 上的所有图层?
问题描述
我正在研究 pyqgis(使用pyqgis 食谱并开始加载矢量图层。
到目前为止,我能够打开一个我已经知道存在于 geopackge 上的层。
iface.addVectorLayer("./bcim_2016_21_11_2018.gpkg|layername=lim_unidade_federacao_a", "Nome Vetor", "ogr")
现在,我想知道如何列出托管在地理包上的所有图层,以便可以定义要加载的图层?提前谢谢
费利佩
解决方案
我刚刚在PyQGIS CookBook - cheatsheet上找到了这种可能性,它回答了我的问题。
from qgis.core import QgsVectorLayer, QgsProject
fileName = "/path/to/gpkg/file.gpkg"
layer = QgsVectorLayer(fileName,"test","ogr")
subLayers =layer.dataProvider().subLayers()
for subLayer in subLayers:
name = subLayer.split('!!::!!')[1]
uri = "%s|layername=%s" % (fileName, name,)
# Create layer
sub_vlayer = QgsVectorLayer(uri, name, 'ogr')
# Add layer to map
QgsProject.instance().addMapLayer(sub_vlayer)
推荐阅读
- php - 检查两次之间的时间(用户输入)(在一个 foreach 之外)
- php - 隐藏的输入得到错误的 ID
- c# - 在c#中将dd/mm/yyyy字符串转换为yyyy-dd-mm DateTime
- php - 当提交 NULL 值时,laravel 雄辩的查询没有给出正确的结果
- zapier - “得到一个缺少“id”属性的结果” - Zapier
- .htaccess - .htaccess 在 url 中隐藏子目录
- python - Pandas/Numpy 根据存在将行移入列
- python - 我如何订阅消费者并通知他 Django 频道的任何变化
- c# - 从选定的列表 ID 显示视图中的类
- docker - 如何模拟/存根 websocket 请求离开 docker 容器