Pages: 1
- Sujet précédent - [POSTGIS] - Comment compter les parcelles regroupées par ST_Union ? - Sujet suivant
#1 Sun 29 March 2015 14:40
- apatride
- Juste Inscrit !
- Date d'inscription: 28 Mar 2015
- Messages: 5
[POSTGIS] - Comment compter les parcelles regroupées par ST_Union ?
Bonjour,
Dans POSTGIS, je souhaite réunir les parcelles en ilots contigus en obtenir le nombre de parcelle ainsi réunis.
J'imagine qu'il faut utiliser count, mais je n'y arrive pas.
A.
Seuls ceux qui ont la mémoire longue sont capables de penser l'avenir.
Hors ligne
#2 Mon 30 March 2015 10:30
Re: [POSTGIS] - Comment compter les parcelles regroupées par ST_Union ?
Bonjour et bienvenue sur Georezo,
si vous souhaitez regrouper les parcelles selon leur appartenance à un même ilot (num_ilot), la requête suivante regroupera ces parcelles et comptera le nombre de parcelles regroupées.
Code:
SELECT num_ilot, count(id_parcelle), st_union(geometrie) FROM parcelle GROUP BY numero_ilot
Dernière modification par MathieuB (Mon 30 March 2015 10:30)
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#3 Mon 30 March 2015 11:20
- apatride
- Juste Inscrit !
- Date d'inscription: 28 Mar 2015
- Messages: 5
Re: [POSTGIS] - Comment compter les parcelles regroupées par ST_Union ?
Bonjour,
Je ne dispose pas du champ "num_ilot"; il n'existe pas dans mes données.
C'est l'union qui permet d'identifier les ilots.
Merci.
Seuls ceux qui ont la mémoire longue sont capables de penser l'avenir.
Hors ligne
#4 Mon 30 March 2015 12:12
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [POSTGIS] - Comment compter les parcelles regroupées par ST_Union ?
Si vous n'avez que la géo, vous pouvez faire le dump de l'union des parcelles, puis compter ensuite le nombre de st_pointOnSurface(parcelle.geom) dans chaque polygone généré par le dump:
Code:
with tmp as ( SELECT st_dump(st_union(p.geom)) as dmp FROM parcelle p ) select (t.dmp).path[1], count(p.*) as num_parc, (t.dmp).geom from tmp t join parcelle p on (st_contains((t.dmp).geom, st_pointonsurface(p.geom))) group by (t.dmp).path[1], (t.dmp).geom;
Nicolas
Hors ligne
Pages: 1
- Sujet précédent - [POSTGIS] - Comment compter les parcelles regroupées par ST_Union ? - Sujet suivant