Pages: 1
- Sujet précédent - [ PostgreSQL 9.2 / PostGis ] Créer des points sur une ligne - Sujet suivant
#1 Thu 12 March 2015 18:26
- verdon
- Juste Inscrit !
- Date d'inscription: 12 Mar 2015
- Messages: 6
[ PostgreSQL 9.2 / PostGis ] Créer des points sur une ligne
Bonjour,
Je voudrais créer des points tous les 50m sur une ligne et je me perds dans l'écriture de la requête SQL. J'ai utilisé ST_InterpolatePoint pour créer un point sur la ligne mais je n'arrive pas à trouver la syntaxe pour créer automatiquement tous les points.
Hors ligne
#2 Thu 12 March 2015 19:06
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [ PostgreSQL 9.2 / PostGis ] Créer des points sur une ligne
Bonsoir,
generate_series peut etre utilisé pour cela, un exemple:
Code:
select r.gid, g as pt_idx , st_lineInterpolatePoint(r.geom, least(g * (50/st_length(r.geom)), 1) ) as geom from route r cross join generate_series(1, round(st_length(r.geom) / 50::float)::int ) as g;
On joint la table des lignes a la fonction generate_series qui calcule le nombre de fractions que représentent 50m par rapport à la longueur de la ligne.
Ce nombre est utilisé pour générer des points successifs sur la ligne.
Nicolas
Hors ligne
#3 Fri 13 March 2015 16:51
- verdon
- Juste Inscrit !
- Date d'inscription: 12 Mar 2015
- Messages: 6
Re: [ PostgreSQL 9.2 / PostGis ] Créer des points sur une ligne
super merci beaucoup. j'ai réussi à faire ce que je voulais avec ta méthode.
Hors ligne
Pages: 1
- Sujet précédent - [ PostgreSQL 9.2 / PostGis ] Créer des points sur une ligne - Sujet suivant