#1 Mon 11 June 2018 11:40
- mad_sydela
- Participant occasionnel
- Date d'inscription: 17 Aug 2015
- Messages: 31
QGIS 2.14: Fusion dynamique des entités sur un champ
Bonjour,
Je cherche, sous Qgis, à fusionner des entités dynamiquement en fonction d'un champ. En fait, j'ai un fichier avec des codes et je voudrai, dans l'optique de faire un atlas, fusionner les entités qui ont le même code. Mais comme mon fichier est mis à jour régulièrement, je souhaiterai que cette fusion soit dynamique et pas créer à chaque fois un nouveau fichier par le géotraitement Dissolve.
Comme c'est pour faire un atlas, peut être que la manip est possible via le générateur d'atlas.
Je vous remercie par avance pour votre aide, MAD
Hors ligne
#2 Mon 11 June 2018 14:45
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS 2.14: Fusion dynamique des entités sur un champ
Bonjour,
il serait possible d'utiliser une couche virtuelle pour créer cette couche agrégée et l'utiliser comme couche de couverture de l'atlas. Quelque chose du genre
Code:
select monchampdefusion, st_union(geometry) from macouche group by monchampdefusion
Dernière modification par SANTANNA (Mon 11 June 2018 14:46)
En ligne
#3 Mon 11 June 2018 16:16
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS 2.14: Fusion dynamique des entités sur un champ
Bonjour,
Pour compléter la réponse de SANTANNA, si les performances des couches virtuelles QGIS ne sont pas à la hauteur des espérances (ce qui risque d'être le cas s'il y a beaucoup d'objet), le format VRT permets d’exécuter le code SQL au niveau du provider OGR ce qui s’avère bien plus efficace.
http://www.portailsig.org/content/ogr-q … s-virtuels
Autrement il faudra opter pour une base postgis ou spatialite
Hors ligne
#4 Tue 12 June 2018 16:30
- mad_sydela
- Participant occasionnel
- Date d'inscription: 17 Aug 2015
- Messages: 31
Re: QGIS 2.14: Fusion dynamique des entités sur un champ
Bonjour,
Merci pour vos réponses ... mais ça ne marche pas.
J'ai rentré la requête suivante :
Code:
select Code, st_union(geometry) as geom from Troncons group by Code
J'ai le message d'erreur suivant : Query preparation erreur on PRAGMA table_info(_tview)
Le champ Code est un champ virtuel calculé à partir d'autres champs présents en dur dans mon fichier. Est-ce que le souci pourrait venir de là (j'ai testé avec un champ en dur, ça fonctionne).
Un autre souci est que mon shape d'origine comprend un ç, et du coup ça ne fonctionne pas (j'ai effectué les tests précédents en remplaçant le ç par c).
Auriez-vous une solution à mes problèmes.
Merci d'avance pour votre aide,
Cdt,
Dernière modification par mad_sydela (Tue 12 June 2018 16:37)
Hors ligne
#5 Wed 13 June 2018 10:15
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS 2.14: Fusion dynamique des entités sur un champ
Bonjour,
Si ça ne fonctionne pas avec un champ virtuel, vous pouvez le calculer directement dans la requête. Pour la cédille il suffit de mettre le nom de la table ente guillemets.
Par exemple si votre code est le résultat de la concaténation de deux champs textuels vous pouvez écrire
Code:
SELECT field1|| '_' || field2 AS code, ST_UNION(geom) AS geom FROM 'Tronçons' GROUP BY code
Hors ligne
#6 Wed 13 June 2018 11:12
- mad_sydela
- Participant occasionnel
- Date d'inscription: 17 Aug 2015
- Messages: 31
Re: QGIS 2.14: Fusion dynamique des entités sur un champ
Super, ça fonctionne ... mais sur mon fichier qui est sans le ç.
Même en mettant le nom du fichier entre guillemet ou entre cote ça ne fonctionne pas !!
Mais c'est déjà super !!! Merci beaucoup pour votre aide.
Hors ligne