Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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

 

Pied de page des forums

Powered by FluxBB