#1 Mon 22 May 2017 12:01
- Romary
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 17 Jun 2011
- Messages: 211
[POSTGIS] fusionner parcelles voisines
Bonjour,
J'ai une table contenant les parcelles cadastrales d'un propriétaire. J'aimerais que toutes les parcelles de ce propriétaire qui sont côte à côte forment un seul polygone.
J'aimerais trouver une fonction postgis qui me fusionnerais des parcelles voisines.
J'arrive à détecter quelles parcelles ont une voisine (st_touches).
Je n'arrive pas à évacuer tous les doubles comptes. Ex si la parcelle p1 est voisine de p2 et p3 : j'obtiens les couples (p1,p2), (p1,p3), (p2,p1) et (p3,p1). Je voudrais obtenir qu'un couple (p1, p2, p3)
Cdlt,
Romary
Hors ligne
#2 Mon 22 May 2017 14:06
- Florent LUQUET
- Participant occasionnel
- Lieu: Vallet
- Date d'inscription: 24 Mar 2016
- Messages: 12
Re: [POSTGIS] fusionner parcelles voisines
Bonjour,
Si j'ai bien compris l'objectif, je fonctionnerai de la manière suivante :
1. Fusion de toutes les parcelles d'un même propriétaire => résultat 1 multi-polygone par propriétaire
2. Éclatement des entités multiparties en entités mono => ST_GeometryN couplé à ST_NumGeometries
Résultat :
Les parcelles contiguës d'un même propriétaire forment une seule entité.
A tester
Hors ligne
#3 Mon 22 May 2017 14:36
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: [POSTGIS] fusionner parcelles voisines
Bonjour,
Un petit st_union() sur l'ensemble des parcelles d'un même propriétaire donnera un multi polygone où les parcelles voisines sont fusionnées.
Une méthode avec st_clusterintersecting() un peu plus compliqué à mettre en œuvre mais résultats supérieurs (on peu gérer le nombre de parcelles mini pour constituer un groupe).
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#4 Wed 24 May 2017 10:14
- Romary
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 17 Jun 2011
- Messages: 211
Re: [POSTGIS] fusionner parcelles voisines
Bonjour,
Merci pour vos réponses.
La commande st_clusterintersecting() (ChristopheV)n'est pas disponible avec version de postgis (2.1).
J'ai donc procédé en travaillant avec des requêtes imbriquées :
1. st_union() : fusion de toutes les parcelles d'un même propriétaire. Les parcelles voisines sont fusionnées dans une partie du multipolygon formé
2. st_dump() : éclatement du multipolygon en polygon.
Ry
Hors ligne
#5 Wed 07 June 2017 15:12
- Romary
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 17 Jun 2011
- Messages: 211
Re: [POSTGIS] fusionner parcelles voisines
Bonjour,
La précédente méthode ne me convient pas complétement car il faut que j'agrège tous les polygones distants de moins de 5m.
Quelqu'un connaît il une méthode équivalente à ST_ClusterWithin() (disponible à partir de 2.2) dans ma version 2.1 de postgis?
Romary
Hors ligne
#6 Mon 19 June 2017 16:48
- Romary
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 17 Jun 2011
- Messages: 211
Re: [POSTGIS] fusionner parcelles voisines
J'ai trouvé en faisant tout une série de sous requêtes (avec un with qui m'a permis de bien structurer) rapidement résumées ici :
1) une table t1 avec 1 geométrie et un table t2 avec la même géométrie + buffer 10m
2) jointure sur intersection entre t1 et t2 et récupération de données attributaires de t2 avec l'association des géométrie issues de t1
Cordialement,
Romary
Hors ligne