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

GEODATA DAYS 2024

#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: LYON
Date d'inscription: 6 Aug 2007
Messages: 609

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: 3880

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: 411

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: 3880

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

 

Pied de page des forums

Powered by FluxBB