#1 Wed 03 August 2016 09:52
- Hydrolithe
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Apr 2010
- Messages: 223
ordre calcul fonction st_addmeasure
Bonjour,
J'utilise la fonction st_addmeasure qui me permet de calculer des distances le long d'un linéaire.
Elle fonctionne très bien mais le problème est que pour une de mes entités qui est une multilinestring en 3 partie orientée nord-est / sud-ouest, le point de départ des valeurs M n'est pas le point de départ de ma polyligne (cf. image jointe).
Voici la requête que j'exécute :
Code:
update nom_table set geom_m = (ST_AddMeasure(nom_table.geom, 0, ST_Length(nom_table.geom)));
Où geom_m est le champ géométrique contenant les mesures.
Existe-t-il un moyen pour "forcer" le point de départ de la mesure au point de départ géométrique de l'entité ?
Si vous avez des pistes, je suis preneur.
Pierre
Hors ligne
#2 Wed 03 August 2016 13:36
- Hydrolithe
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Apr 2010
- Messages: 223
Re: ordre calcul fonction st_addmeasure
Pour ceux que ça intéresserait, j'ai trouvé la solution.
En fait le problème venait de ma couche dès le départ. Il faut donc attribuer un n° d'ordre dans une colonne et ensuite lancer la requête suivante pour fusionner les 3 parties en une seule selon le n° d'ordre :
Code:
select ST_AsText((ST_Dump(C)).geom) from ( select ST_Collect(Geom) C from (select * from nom_table order by num_colonne_ordre) A
Afin d'avoir des données en résultat en type multilinestring, il faut que les données de départ soient en type linestring.
Ensuite, il est possible de lancer la requête du premier post qui va ainsi commencer les mesures depuis le point de départ de la polyligne.
Hors ligne