#1 Sun 09 April 2017 13:41
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Regrouper polygones/Parcelle en plusieurs entités
Bonjour,
Je suis devant une problématique qui m'a occupé pas mal d'heures ces derniers temps sans arriver a trouver de solutions viables.
Je travaille actuellement PLUi divisé en plusieurs zonages (une couche) qui eux mèmes regroupent des parcelles (couche aussi).
Ces zonages doivent être modifié en fonction du passage d'une couche trame verte et bleu qui les intersectent.
Après avoir découpé le zonage existant par la couche parcelle et modifié les attributs de zonage a la parcelle (Jusque la c'est bon...), j'aurais souhaité regroupé les parcelles de mème zonages, mais que celles étant mitoyenne les unes des autres.
J'ai bien essayé d'utiliser les commandes st_union couplé avec un st_intersecte sans succès, j'ai pas mal de doublons. En cherchant sur georezo j'ai trouvé des problématiques s'approchant (sujet sur les batiments mitoyens) mais les solutions proposés n'ont pas donné les résultats escomptés sur mon cas.
PS (Sujet administration annexe) : Suite à la sauvegarde ma base, celle ci pèse 10 * plus que la base lambda alors que je n'ai importé qu'une couche de parcelles et réalisé des intersections.
Le Vaccum n'a pas l'air de fonctionner, existe il une autre commande pour supprimer des lignes temporaires ?
Merci d'avance pour vos idées & pour vos infos.
Hors ligne
#2 Sun 09 April 2017 15:07
Re: Regrouper polygones/Parcelle en plusieurs entités
Bonjour,
Si vous avez déjà affecté une valeur de zonage à chaque parcelle, vous pouvez les regrouper en utilisant ST_ClusterIntersecting:
Code:
SELECT unnest(ST_ClusterIntersecting(geom)) AS geom FROM parcelles GROUP BY zonage
Daniel
Hors ligne
#3 Mon 10 April 2017 09:16
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: Regrouper polygones/Parcelle en plusieurs entités
Bonjour,
Effectivement avec cette fonction ... A une remarque près : st_clusterintersecting attend un "geometry set" et non une géométrie, vous devez donc agréger les géométries des parcelles, avec st_accum() par exemple.
Une autre solution c'est d'utiliser la topologie.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#4 Mon 10 April 2017 10:34
- ppluvinet
- Participant assidu
- Lieu: VALENCE
- Date d'inscription: 6 Aug 2007
- Messages: 617
Re: Regrouper polygones/Parcelle en plusieurs entités
Bonjour,
Je ne connais pas bien ces fonctions de regroupement telles que st_clusterIntersecting.
Quelle est la différence avec :
Code:
SELECT (st_dump(st_union(geom))).geom AS geom FROM parcelles GROUP BY zonage
Merci d'avance,
Pascal PLUVINET
Hors ligne
#5 Mon 10 April 2017 11:02
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: Regrouper polygones/Parcelle en plusieurs entités
@ppluvinet
Je pense que le résultat doit être similaire,
seulement clusterIntersecting ne modifie pas les géométries,
elle ne fait que les agréger dans des tableaux.
Les polygones ne se "dissolvent" donc pas.
Vous épargnez également à la machine des calculs d'union de géométrie
potentiellement longs et gourmand en mémoire.
Dernière modification par tumasgiu (Mon 10 April 2017 11:03)
Hors ligne
#6 Mon 10 April 2017 11:21
- ppluvinet
- Participant assidu
- Lieu: VALENCE
- Date d'inscription: 6 Aug 2007
- Messages: 617
Re: Regrouper polygones/Parcelle en plusieurs entités
Ok merci ! Je crois mieux comprendre. Ca semble effectivement bien intéressant. Et ca marche aussi bien pour du polygone que pour des lignes , à ce que j'ai pu entrevoir ?
Pascal PLUVINET
Hors ligne
#7 Mon 10 April 2017 13:28
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: Regrouper polygones/Parcelle en plusieurs entités
Bonjour,
Pascal, vas voir là : https://georezo.net/forum/viewtopic.php?id=102129
L'avantage de ces fonctions est de permettre la constitution de grappes et de connaître le nombre d'éléments dans une grappe.
Dans l'exemple cité je créé une grappe de bâtiments qui se touchent et j'utilise ensuite st_union() pour créé un polygone à partir de la grappe.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#8 Mon 10 April 2017 20:10
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Regrouper polygones/Parcelle en plusieurs entités
Merci pour toutes ces informations, je vais voir de mon coté comment s'effectue le traitement.
Hors ligne