#1 Wed 17 March 2021 19:12
- nico-29
- Participant assidu
- Lieu: Brest
- Date d'inscription: 2 Jun 2006
- Messages: 185
QGIS 3: pyqgis filtrer un vector layer
Bonjour,
Avec pyqgis, j'ouvre un layer de format geojson.
Je filtre les entités suivant un attribut et je crée un layer avec les entités filtrées, et j'affiche ce layer.
Voici mon code:
Code:
vlayer = QgsVectorLayer(filename, "myLayer", "ogr") features = vlayer.getFeatures('"code" = \''+ma_valeur+'\'') layer = QgsVectorLayer('Point?crs=epsg:4326', unique_value , 'memory') prov = layer.dataProvider() prov.addFeatures(features) QgsProject.instance().addMapLayer(layer)
Mais sur le layer des entités filtrées, je n'ai pas accès aux attributs (quand je fait clic droit > ouvrir la table d'attributs, elle vide).
Pourquoi? Comment résoudre?
Merci, Nico
Hors ligne
#2 Thu 18 March 2021 09:51
- Olivier Pompier
- Participant occasionnel
- Date d'inscription: 8 Sep 2013
- Messages: 49
Re: QGIS 3: pyqgis filtrer un vector layer
Bonjour Nico,
Et avec ce script :
Code:
vlayer = QgsVectorLayer(filename, "myLayer", "ogr") features = vlayer.getFeatures('"code" = \''+ma_valeur+'\'') fields = vlayer.fields() layer = QgsVectorLayer('Point?crs=epsg:4326', unique_value , 'memory') prov = layer.dataProvider() prov.addAttributes(fields.toList()) layer.updateFields() prov.addFeatures(features) QgsProject.instance().addMapLayer(layer)
?
Cordialement
Dernière modification par Olivier Pompier (Thu 18 March 2021 09:51)
Hors ligne