Message posté par : Julien81
----------------------------------------
Ok cool,
je vous suggère de mettre à jour les expressions de positionnement x et y avec :
-----------------
Code :
x(project(centroid($geometry),
distance($geometry, exterior_ring($geometry))+@map_scale * 0.02--votre distance en m x
@map_scale
, radians(coalesce("Angle_plan",0)-60)))
-----------------
\\pour la distance avec cette expression vous remplacez pour x et y le 0.02m , la fonction
project utilisée pour positionner l'étiquette nécessite :
-un point de départ (ici au plus simple le centroide du polygone:sauf si formes en u etc à
ajuster) ,
-une distance : j'ai fait une simplification mais je prends la variable échelle
multipliée par la distance souhaitée en unité de carte, en prenant soin de rajouter la
distance centroide point d'intersection sur le périmètre pour fixer une distance par
rapport au bord de la geom et non au centroide du polygone
\\Pour l'angle il est calculé via un champ virtuel main_angle :
-----------------
Code :
main_angle(intersection($geometry, aggregate('Axe projet', 'collect',
$geometry)))-35*main_angle(intersection($geometry, aggregate('Axe projet',
'collect', $geometry)))/ to_int( main_angle(intersection($geometry,
aggregate('Axe projet', 'collect', $geometry))))
-----------------
la fonction renvoi l'angle de principal de la plus petite boite englobante de la ligne
intersecté pour chaque polygone, visuellement il y a une correction à appliquer pour
retrouver l'angle de ma ligne qui se retrouve être la diagonale de cette boite
englobante orientée : d'ou le -35 degrés empirique. Par contre l'angle renvoyé
selon l'orientation au Nord est soit positif soit négatif, pour avoir la bonne
rotation en gardant le Nord en haut je remultiplie ce correctif par la valeur valeur de
mon angle sur sa valeur entière (ce qui revient à soustraire si négatif et ajouter si
positif) .
Ceci uniquement dans l'optique d'une sortie au format paysage orientée avec
l'axe long qui suit les tronçons.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=367705#p367705
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net