#1 Fri 02 February 2018 08:18
- HugoC
- Juste Inscrit !
- Date d'inscription: 1 Feb 2018
- Messages: 1
QGIS 2.14.21: Ajouter une couche virtuelle en Python
Bonjour à tous,
Je cherche à développer un petit outil sur une couche shapefile (que nous appellerons 'points'), via les actions de l'entités.
L'idée est, quand je vais utiliser cette action et cliquer sur un des points de ma couche, cela va créer une couche virtuelle avec toutes les données de la couche qui ont la même valeur pour un des champs de la table d'attributs.
Mais pour l'instant je n'arrive déjà pas à créer une couche virtuelle contenant les données de ma couche points, même sans filtrer avec WHERE
À l'aide des infos fournies par l'auteur ici : https://github.com/mhugo/qgis_vlayers/b … /README.md et via un sujet sur un forum anglophone j'ai pu pondre le code suivant :
Code:
from qgis.core import QgsVectorLayer, QgsMapLayerRegistry pts=QgsMapLayerRegistry.instance().mapLayersByName('points')[0] VL=QgsVectorLayer( "?query=SELECT * FROM points", "couche_virtuelle", "virtual" ) QgsMapLayerRegistry.instance().addMapLayer(VL)
Mais ce code ne fonctionne pas, je n'ai pas de couche virtuelle qui apparaît sur QGIS.
Si quelqu'un peut m'expliquer ce qui cloche dans mon code...
Quelques petits tests me confirment qu'un objet VL est bien créé mais VL.isValid() renvoie 'False'
Alors que pts est bien créé et pts.isValid() renvoie 'True'
Infos complémentaires :
Windows 7 Professionnel
QGIS installé avec OSGEO4W
Merci d'avance pour votre aide !
Hors ligne