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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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: 606

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

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

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

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