#1 Thu 16 September 2021 11:22
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
Centroid de polygone + transformation coordonnées
Bonjour à tous,
J'ai une table sur Postgres/Postgis avec des polygones en Lambert93 (2154), je souhaiterais obtenir la longitude et la latitude du centroid de chaque polygone en WGS84 (4326).
Avez-vous des idées de requêtes ?
J'arrive d'un côté à transformer le référentiel :
Code:
SELECT st_transform(geom,4326) from ma_table;
De l'autre côté j'arrive à obtenir les coordonnées du centroid de chaque polygone :
Code:
SELECT ST_X(ST_centroid(geom)), ST_Y(ST_centroid(geom)) from ma_table;
Mais je n'arrive pas à "combiner" ces deux requêtes pour obtenir le résultat voulu.
Merci d'avance pour votre aide.
J
Hors ligne
#2 Thu 16 September 2021 11:33
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Centroid de polygone + transformation coordonnées
Bonjour,
Quelle est l'erreur que vous obtenez ? Ca doit venir de parenthèses mal fermées ou autre erreur de syntaxe.
Code:
SELECT ST_X(ST_centroid(st_transform(geom, 4326))), ST_Y(ST_centroid(st_transform(geom, 4326))) from ma_table;
Nicolas
Hors ligne
#3 Thu 16 September 2021 12:31
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
Re: Centroid de polygone + transformation coordonnées
Merci ça fonctionne !
En effet c'était juste une histoire d'ordre d'appel des fonctions !
Super !
J
Hors ligne
#4 Wed 02 February 2022 12:04
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
Re: Centroid de polygone + transformation coordonnées
Bonjour,
Je remonte ce vieux sujet car j'ai une difficulté qui vient de s'ajouter.
Est il possible d'appliquer la requête précédente mais à partir d'une polyligne -> buffer ?
Je pars d'une polyligne, je créer un buffer de 1m, de calcul de centroid que je transforme en WGS84.
Merci pour votre aide, je bloque un peu.
J
Hors ligne
#5 Wed 02 February 2022 16:29
- JP LLORENS
- Participant assidu
- Date d'inscription: 12 Nov 2008
- Messages: 231
Re: Centroid de polygone + transformation coordonnées
Bonjour.
Code:
with monbuffer as (select st_buffer(magéométrie, 1) as geom from matable -- je génère le buffer SELECT ST_X(ST_centroid(st_transform(monbuffer.geom, 4326))), ST_Y(ST_centroid(st_transform(monbuffer.geom, 4326))) from monbuffer ;
Vous pouvez remplacer ST_centroid par ST_PointOnSurface pour avoir un centroïde à l'intérieur du buffer quelque soit sa forme.
Cordialement
JP
Hors ligne