Message posté par : piedro25
----------------------------------------
Bonjour,
Je me permet de vous solliciter pour un problème qui relève plus de la curiosité
personnelle qu'autre-chose.
J'ai une table avec des vecteurs (orientés, avec une longueur définie), ce sont des
façades de bâtiments.
J'ai extrait l'orientation de ces vecteurs via l'outil azimut de qgis, jusque
là tout va bien.
J'ai ensuite appliqué un pivotage du vecteur en lui appliquant -90 degrés.
Il se trouve qu'à la sortie j'ai des valeurs négatives en degrés ex : -1, quand
d'autres sont justes.
J'ai trouvé la solution à mon problème en distinguant par un CASE les valeurs
négatives pour leur ajouter 360 et retrouver la valeur normale de l'angle.
Est-ce qu'il y aurait une solution qui me permettrait de passer cette dernière étape
et retrouver la valeur de l'angle entre 0 et 360 degré sans avoir à effectuer ce
calcul?
De mon côté j'ai essayé plusieurs fois en travaillant directement en radians de
résoudre mon problème, notamment en utilisant le modulo de pi ou en soustrayant
directement pi/2à la conversion en degrés, je retombe toujours sur ces mêmes valeurs.
De ce que j'ai compris la fonction AZIMUTH de qgis prend pour origine le Nord qui est
le point Zéro, le calcul est ensuite effectué dans le sens horaire et non dans le sens
trigonométrique, mais donne quand même une valeur en radians.
Voilà la formule utilisée:
-----------------
Code :
round (degrees(azimuth(start_point($geometry), end_point($geometry))) -90)
-----------------
Mes souvenirs de math commencent à dater, mais j'aimerais néanmoins vraiment
comprendre comment le contourner t comprendre comment tourne cette machine.
En vous remerciant pour votre aide.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=364488#p364488
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