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 Thu 19 November 2020 11:52

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

QGIS 3.16: Etiquettes longueur segments polyligne

Bonjour, et merci d'avance pour votre aide !

Je cherche à afficher une étiquette sur une polyligne qui indiquerait la longueur de chacun de ses segments ; et bien sûr afficher autant d'étiquettes que de segments.

Quelqu'un a une idée de comment faire ça ?

----------------------------------------------------------------------------------------------------------------------------------------------------------------

[EDIT 1] : J'ai tenté en créant 9 étiquettes distinctes (je suppose que je n'aurais pas de polylignes de plus de 9 segments) avec comme valeur :
if(
    num_geometries(segments_to_lines($geometry))<X,
    null,
    length(
        geometry_n(
            segments_to_lines($geometry),
            X
        )
    )
)

avec X le numéro du segment

Et dans "Label Anchoring" j'ai mis une expression du type :
(
length(geometry_n(segments_to_lines($geometry),1))+
length(geometry_n(segments_to_lines($geometry),2))*0.5
)
/length($geometry)


(ici pour le segment 2; je mets la somme des longueurs des segments précédents + la moitié de la longueur du segment en cours pour que l'étiquette soit au milieu)

Problème : l'anchoring fonctionne en valeur relative et pas absolue (mon expression permet d'avoir un pourcentage [0.0-1.0] de la longueur courante/visible sur l'écran de la polyligne...

----------------------------------------------------------------------------------------------------------------------------------------------------------------
[EDIT 2] :
Peut-être en passant par une couche virtuelle ? Mais je ne vois pas comment utiliser la fonction "segments_to_lines" dans une requête SQL...

Dernière modification par aheurion (Thu 19 November 2020 15:57)

Hors ligne

 

Pied de page des forums

Powered by FluxBB