#1 Mon 07 January 2019 15:43
- capo04
- Participant occasionnel
- Date d'inscription: 14 May 2018
- Messages: 14
Utilisation de la fonction ST_expand
Bonjour à tous
J'ai une table des point, dans cette table j'ai un champs "surface", je souhaite générer des carré de la même surface que mon champ "surface".
J'ai utilisé cette requête:
update ma_table set geom = st_expand(ma_table.geom,sqrt(mon_champ_surface))
Les carrés apparaissent mais après avoir utilisé la fonction st_area, dans un nouveau champs j'ai constaté que les surfaces, issue de mon champs "surface", étaient bien différents des résultats trouvé avec ST_area.
Si quelqu'un voit où est le problème
Merci
Hors ligne
#2 Mon 07 January 2019 16:11
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: Utilisation de la fonction ST_expand
Bonjour,
Il faut lire la documentation de st_expand(the_geom,units_to_expand)
"This function returns a bounding box expanded from the bounding box of the input"
Le deuxième paramètre est :
" either by specifying a single distance with which the box should be expanded in all directions"
Donc ici vous aurez la boudingbox de votre géométrie, ayant subit une homothétie de facteur sqrt(ma_surface).
Donc si vous souhaitez générez des RECTANGLES (pas des carrés) correspondant à la BBox de la géométrie : st_expand(the_geom,0)
Maintenant si vous souhaitez réaliser votre demande :
pour chaque point P(X,Y) :
st_expand('POINT(X Y)', sqrt(mon_champ_surface)/2) ou plus simplement st_expand(the_geom_du_point, sqrt(mon_champ_surface)/2)
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#3 Mon 07 January 2019 16:35
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: Utilisation de la fonction ST_expand
Salut,
Code:
update ma_table set geom = st_expand(ma_table.geom,sqrt(mon_champ_surface/4))
?
J'imagine que la géométrie de votre table est de type point ?
Hors ligne