Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 11 August 2017 17:35

Ricola62
Participant assidu
Date d'inscription: 24 Apr 2012
Messages: 167

[POSTGIS]Créer un polygone a partir de points

Bonjour,

Tout d'abord je débute sur POSTGRE/GIS;
j'ai 4 points  qui ont été positionné sur QGIS puis importé dans postgre, la table s'appelle 'try'
je voudrai a partir de ces 4 points créer un polygone afin d'extraire le centroide.
Cependant :
1) il faut pouvoir gérer l'ordre par lequel les points sont reliés
2)si je bouge un point le polygone bouge également et donc le centroide

J'ai élaboré cette expression sql mais elle ne fonctionne pas,
Pouvez vous m'aider svp?

Code:

CREATE VIEW spat.view AS
with points_ordonnes as (
    select try.geom
    from spat.try
    ORDER BY try.id
)
SELECT try.id, st_makepolygon(st_makeline(try.geom))AS geom
FROM points_ordonnes,spat.try
GROUP BY try.id;

Merci d'avance

Hors ligne

 

#2 Sat 12 August 2017 10:57

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

Re: [POSTGIS]Créer un polygone a partir de points

Bonjour,
dans ce cas, vous devez passer à st_makeline un tableau de points :

Code:

CREATE VIEW spat.view AS
WITH points_ordonnes AS (
    SELECT row_number() over() AS id, ARRAY (SELECT geom
    FROM spat.try
    ORDER BY id) AS ptsarray
)
SELECT id, st_makepolygon(st_makeline(points_ordonnes.ptsarray)) AS geom
FROM points_ordonnes;

en supposant que le tableau de points constitue bien un polygone

Dernière modification par jmarsac (Sat 12 August 2017 10:59)


Jean-Marie
Azimut

Hors ligne

 

Pied de page des forums

Powered by FluxBB