I am studying about pyqgis (using the pyqgis cookbook and started loading a vector layer.
So far I was able to open a layer that I already knew exist on a geopackge.
iface.addVectorLayer("./bcim_2016_21_11_2018.gpkg|layername=lim_unidade_federacao_a", "Nome Vetor", "ogr")
Now, I am wondering how could I list all layers hosted on a geopackage, so a can define which layer to load? Thansk in advance
Felipe
I have just found this possibility on PyQGIS CookBook - cheatsheet, which answer my question.
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)