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

Printemps des cartes 2024

#1 Wed 13 March 2019 09:19

ppluvinet
Participant assidu
Lieu: LYON
Date d'inscription: 6 Aug 2007
Messages: 608

Créer un camembert sous postgis

Bonjour,

Je souhaiterais créer un camembert avec des tranches égales à partir de coordonnées d'un point central et un rayon donné.
Ceci me permettrait ensuite de sélectionner des points géographiquement bien réparti autour du point central .
Cela revendrait à découper un buffer par une étoile en astérix.

Je vais me creuser un peu la cervelle. Toutefois, quelqu'un aurait il déjà réaliser ce traitement ou souhaiterait m'aider ? 

Merci d'avance pour vos retours,


Pascal PLUVINET

Hors ligne

 

#2 Wed 13 March 2019 09:41

ppluvinet
Participant assidu
Lieu: LYON
Date d'inscription: 6 Aug 2007
Messages: 608

Re: Créer un camembert sous postgis

Et bien je viens de trouver une solution grâce à ce lien :
https://stackoverflow.com/questions/443 … ql-postgis

Voici le code :

Code:

--20 tranches égales pour une rayon de 20km
drop table camenbert;
create table camenbert as 
With  buffer as(
    SELECT 1::numeric as pt_id, (ST_DumpPoints(ST_Buffer(geom,20000,5))).geom as geom
    FROM  point_depart group by pt_id, geom
    UNION ALL 
    SELECT gid as pt_id, geom FROM  point_depart
) , tr as (
    SELECT pt_id, (ST_Dump(ST_DelaunayTriangles(ST_Collect(geom),0, 0))).geom geom
    FROM buffer
    GROUP BY pt_id
)
select row_number() OVER (partition by pt_id), pt_id, geom from tr
;

Pascal PLUVINET

Hors ligne

 

Pied de page des forums

Powered by FluxBB