#1 Tue 20 June 2017 15:03
- tati
- Participant occasionnel
- Date d'inscription: 6 Jun 2017
- Messages: 27
Postgresql
Bonjour,
Je reviens vers vous car j'ai un ptit problème que j'ai pas réussi à résoudre sur postgres.
J'ai une table de multipolygones dont j'ai calculer la surface de tous les polygones y compris les parks.
Et j'ai une autre table sirène géocodé.
Je souhaite créer un attribut (une nouvelle colonne) dans ma table sirène qui pour chaque pro de cette table va calculer la surface des parks dans le rayon de 100 mètres.
J'ai utilisé st_buffer mais ça ne me donne pas le résultat que je veux:
SELECT surface,ST_Buffer(the_geom,100)
from public.multipolygones
join shema.sirene on multipolygones.gid=finale.id
where "leisure" ilike 'park'
order by geom asc limit 3
Pouvez-vous m'aider svp ?
Hors ligne
#2 Tue 20 June 2017 15:44
Re: Postgresql
Bonjour,
Pour calculer une surface la fonction st_area() est sans doute nécessaire
En outre si vous cherchez à calculer la surface des polygones intersectés par un buffer de 100 m il faudra sûrement utiliser st_intersects()
https://postgis.net/docs/ST_Area.html
https://postgis.net/docs/ST_Intersects.html
Dernière modification par heretik25 (Tue 20 June 2017 15:51)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Tue 20 June 2017 16:01
- tati
- Participant occasionnel
- Date d'inscription: 6 Jun 2017
- Messages: 27
Re: Postgresql
Je vous remercie pour votre réponse.
En fait dans ma table multipolygones j'ai déjà un champs surface, mais comme vous dites c'est mieux d'utiliser st_intersects().
Hors ligne