#1 Tue 27 November 2018 15:51
- SIGnico
- Juste Inscrit !
- Date d'inscription: 13 Sep 2018
- Messages: 8
QGIS: Dissolve en requête SQL (couche virtuelle)
Bonjour à tous,
Je cherche à produire une fusion d'une couche parcelle en fonction des propriétaires sous QGIS.
J'ai utilisé l'outil Dissolve qui marche très bien cependant celui-ci ne peut produire qu'une table temporaire qui va disparaître si je ferme mon projet Qgis
2 eme solution :
J'ai essayé ensuite d'importer cette table dans une couche virtuelle mais cela n'importe par les parcelles..
3 eme solution :
J'essaye de produire le même résultat en utilisant Bdmanager -> couche virtuelle -> et faire un dissolve en requete SQL ( sans stockage sur Postgis)
J'ai essayé cette structure de requête :
Code:
select *, st_union(geometry) From la table parcelle Group by "proprietaire"
Il n’arrive pas à proposer une couche multipolygone ..
Pouvez-vous m'indiquer comment faire ?
A bientôt
Dernière modification par SIGnico (Tue 27 November 2018 15:53)
Hors ligne
#2 Tue 27 November 2018 16:04
- ppluvinet
- Participant assidu
- Lieu: VALENCE
- Date d'inscription: 6 Aug 2007
- Messages: 617
Re: QGIS: Dissolve en requête SQL (couche virtuelle)
Bonjour,
concernant votre requete SQL, il ne me semble pas possible de mettre l'étoile (*) et un group by.
Essayer de voir déjà si cela fonctionne :
Code:
select proprietaire, st_union(geometry) From la table parcelle Group by proprietaire
Bonne continuation
Pascal PLUVINET
Hors ligne
#3 Tue 27 November 2018 16:08
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Dissolve en requête SQL (couche virtuelle)
Bonjour,
J'ai utilisé l'outil Dissolve qui marche très bien cependant celui-ci ne peut produire qu'une table temporaire qui va disparaître si je ferme mon projet Qgis
Laquelle table peut ensuite être enregistrée sous n'importe quel autre format...(clic droit > Enregistrer sous - de mémoire)
Il n’arrive pas à proposer une couche multipolygone ..
Est-ce que https://docs.qgis.org/2.18/fr/docs/user … l-comments aide?
Hors ligne
#4 Tue 27 November 2018 17:30
- SIGnico
- Juste Inscrit !
- Date d'inscription: 13 Sep 2018
- Messages: 8
Re: QGIS: Dissolve en requête SQL (couche virtuelle)
Bonjour,
Le but est justement de ne pas l'enregistrer mais de la garder en mémoire (temporaire) dans le projet Qgis (similaire à un Query dans Mapinfo). Si je ferme et j'ouvre aprés mon projet Qgis alors je dois pouvoir la retrouver ( donc utilisation d'une couche virtuelle).
A bientôt
Dernière modification par SIGnico (Tue 27 November 2018 17:32)
Hors ligne
#5 Tue 27 November 2018 20:28
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 427
Re: QGIS: Dissolve en requête SQL (couche virtuelle)
Le st_union() est une syntaxe Postgis.
Selon la doc sur les couches virtuelles :
https://docs.qgis.org/2.14/fr/docs/user … d-language
QGIS accepte les fonctions spatiales de SQLite et les fonctions et expressions que QGIS https://docs.qgis.org/2.14/fr/docs/user … tions-list
Donc en se référant sur ce dernier lien, il faudrait plutôt utiliser union().
Et deux points importants :
Pour référencer la colonne géométrique d’une couche, utilisez le nom geometry.
Contrairement à une requête SQL pure, tous les champs d’une requête de couche virtuelle doivent être nommés. N’oubliez pas d’utiliser le mot-clé as pour nommer vos colonnes si elles sont le résultat d’un calcul ou d’une fonction.
Dernière modification par p.jeremie (Tue 27 November 2018 20:29)
Hors ligne
#6 Wed 28 November 2018 09:04
- SIGnico
- Juste Inscrit !
- Date d'inscription: 13 Sep 2018
- Messages: 8
Re: QGIS: Dissolve en requête SQL (couche virtuelle)
Bonjour,
Merci pour votre aide !
Hors ligne
#7 Wed 28 November 2018 09:56
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Dissolve en requête SQL (couche virtuelle)
Bonjour,
Le but est justement de ne pas l'enregistrer mais de la garder en mémoire (temporaire) dans le projet Qgis (similaire à un Query dans Mapinfo). Si je ferme et j'ouvre aprés mon projet Qgis alors je dois pouvoir la retrouver ( donc utilisation d'une couche virtuelle).
Alors l'extension Memory Layer Saver est la réponse.
EDIT: à ceci près que la couche temporaire (sauvegardée) est statique, alors que la couche virtuelle est dynamique, et donc toujours à jour avec les données de base.
Dernière modification par SANTANNA (Thu 29 November 2018 09:36)
Hors ligne