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 03 August 2016 09:52

Hydrolithe
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Apr 2010
Messages: 222

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)));

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


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Wed 03 August 2016 13:36

Hydrolithe
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Apr 2010
Messages: 222

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

 

Pied de page des forums

Powered by FluxBB