#1 Mon 19 February 2018 08:59
- tennisfashion
- Juste Inscrit !
- Date d'inscription: 19 Feb 2018
- Messages: 1
QGIS: Vues Virtuelles et vues matérielles
Bonjour,
Je suis entrain d'essayer d'optimiser la création de vues en séries et doit me décider de choisir entre vues virtuelles ou matérielles.
Contexte
Produit : QGIS DESKTOP
Objectif: Création de vues liés à GraceTHD
Source: Des shapes et des CSV (formats obligatoires des livrables GraceTHD)
1) Comment créer en séries des vues virtuelles.
Pour l'instant je peux creer mes vues en prenant l'icônes vues virtuelles et en ecrivant
/*vs_elem_pt_nd*/
SELECT
*
FROM
gracethd.t_ptech,
gracethd.t_noeud
WHERE
t_ptech.pt_nd_code = t_noeud.nd_code;
Par contre si j'ai 10 vues je suis obligé de les créer une à une en changeant de nom (vs_element_pt_nd) et le codage associé à chaque fois
2) Dans l'hypothèse de vouloir créer des vues matériels comment faire sans sortir de QgisDesktop ? Est-ce possible. J'aurais biensûr la possibilité de sélectionner tous les enregistrements de chaque vue virtuelles et de les enregistrer dans un shape mais tout cela n'est pas très direct...Pour info,pas de base Postgres/Postgis
Merci pour vos réponses
Dernière modification par tennisfashion (Mon 19 February 2018 13:01)
Hors ligne
#2 Wed 28 February 2018 11:04
Re: QGIS: Vues Virtuelles et vues matérielles
Bonjour,
Pour scripter ça, il faudra passer par l'API QGIS. Un sujet en parle ici :
https://gis.stackexchange.com/questions … ly-in-qgis
En gros :
Code:
from qgis.core import QgsVectorLayer, QgsMapLayerRegistry for i in range(10) : sql = "SELECT * FROM gracethd.t_ptech, gracethd.t_noeud WHERE t_ptech.pt_nd_code = t_noeud.nd_code" vlayer = QgsVectorLayer( "?query=%s"%sql, "macouche_%s"%str(i), "virtual" ) QgsMapLayerRegistry.instance().addMapLayer(vlayer)
Ici, y a la même requête sql. Dans ton cas, elle devra être adaptée. Mais en gros, c'est comme cela que je verrais la chose.
geodata au cerema et petits billets en géomatique
Hors ligne