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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 21 April 2010 11:24

goujonmp
Participant occasionnel
Date d'inscription: 8 Dec 2005
Messages: 34

Trouver l'angle et le sens de saisie d'une polyligne à son centroïde

Bonjour,

Je n'arrive pas à trouver comment enregistrer l'angle d'orientation et le sens de saisie d'une polyligne au niveau de son centroïde, en fait ce qui s'affiche dans le contrôle des couches quand coche l'affichage des centroîdes (le triange bleu).

Je voudrai superposer à mon filaire de voies des symboles points orientés indiquant les sens de circulation.

Encore une fois, merci pour votre aide.

Cordialement

MPG

Hors ligne

 

#2 Wed 21 April 2010 17:00

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: Trouver l'angle et le sens de saisie d'une polyligne à son centroïde

Bonjour,

Si je comprends bien, vous voulez que le sens de circulation (qui correspond au sens de numérisation) soit visible sur vos carte, car les flèches bleues ne sont pas toutes visibles à une échelle donnée.

Vous pouvez utiliser un style de ligne comme celui ci:

                   ->->->->->->

Le sens de circulation sera ainsi visible pour tous les tronçons affichés à toutes les échelles.

Hors ligne

 

#3 Thu 22 April 2010 22:40

goujonmp
Participant occasionnel
Date d'inscription: 8 Dec 2005
Messages: 34

Re: Trouver l'angle et le sens de saisie d'une polyligne à son centroïde

Bonjour,

Non,

La symbolisation des sens de circulation par style de ligne n'est pas "propre", belle.
Je voudrais la matérialiser, la remplacer par des symboles points orientés, de la bibliothèque de symboles mapInfo, une flèche par exemple automatiquement grâce à l'outil rotateSymbols.mbx , il me faudrait pour cela récupérer la position des centres des polylignes (axe de mon filaire de voie) et leurs angles à cette endroit.
Mais je ne connais pas les formules magiques si toutefois elles existent pour récupérer ces Valeurs.

Merci à vous.

Hors ligne

 

#4 Thu 22 April 2010 22:53

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Trouver l'angle et le sens de saisie d'une polyligne à son centroïde

Bonjour
Le centre devrait pouvoir être déterminé par centroidX(obj) et centroidY(obj) (avec une set coordsys table ma_table tapé dans la FMB avant...)
Pour l'angle c'est plus coton (si le centre est juste dans un virage aigu, etc...) mais l'angle entre ce centre et le point d'intersection de la polyligne avec un cercle de 100 m (par exemple) tracé depuis ce centre devrait faire l'affaire...

Hors ligne

 

#5 Fri 23 April 2010 13:32

goujonmp
Participant occasionnel
Date d'inscription: 8 Dec 2005
Messages: 34

Re: Trouver l'angle et le sens de saisie d'une polyligne à son centroïde

C'est sioux mais cela me plait d'essayer de trouver.
Je vais trouver.

Encore une fois merci à vous.

[EDIT Maurice pour Daniel] en italique ci-après, partie supprimable

Hors ligne

 

#6 Fri 23 April 2010 15:46

Damien BEAUSEIGNEUR
Participant assidu
Lieu: meyzieu
Date d'inscription: 5 Sep 2005
Messages: 425

Re: Trouver l'angle et le sens de saisie d'une polyligne à son centroïde

petit rappel de base une polyligne est constituée d'un ou plusieurs segments, qui en général ont des angles différents.
L'idéal c'est de prendre tous les noeuds de la polylignes . Connaitre la longueur de la polyligne.
de parcourir segment par segment , déterminer leur longueur, de comparer la longueur cumulée avec la moitié de la longueur de la polyligne si c'est inférieur on continue le parcours, si c'est supérieur on poursuit.
l'angle sera donné par un peu de trigonométrie de base, attention l'angle doit être compris entre (-180° et 180°) on a besoin du sinus et du cosinus dans l'affaire.
au cas ou par hasard la distance cumulée serait exactement égale à la demi longueur de la polyligne, il faudra faire le calcul de l'angle sur le dernier segment lu et le suivant et faire une moyenne simple entre les 2 angles.

Hors ligne

 

#7 Mon 26 April 2010 23:03

goujonmp
Participant occasionnel
Date d'inscription: 8 Dec 2005
Messages: 34

Re: Trouver l'angle et le sens de saisie d'une polyligne à son centroïde

Bonjour,

Merci pour vos idées,

Je vous soumets ma "bidouille", au cas ou quelqu'un ai un jour besoin de générer "automatiquement" des symboles orientés
pour modéliser des sens de circulation.

Je suis arrivée à mes fin, bien plus "simplement", en évitant la trigo.
Ce n'est pas académique mais ça marche.

J'ai fait étiqueter l'attribut de la colonne "ID" de tous mes tronçons de voies (en tout petit et centré).
Avec l'outil labeller.mbx on transforme ces étiquettes en objets texte.
Avec la formule ObjectGeography(Obj,7) j'ai mis à jour une colonne "angles" pour ces objets texte.
[EDIT Maurice] le 7 veut dire OBJ_GEO_TEXTANGLE, angle de rotation de l'objet texte
Egalement demandé la mise à jour des colonnes X et Y des centroïdes de ces objets texte.
Dans le contrôle des couches j'ai supprimé la table graphique.
Puis crée des points avec le X et Y des centroÏdes des objets textes.
Ensuite avec l'outil rotateSymbols.mbx on génère les symboles orientés suivant l'angle de la colonne "angle".
Pour le sens reste à rajouter + ou - 180 degrés ponctuellement, en fonction des sens de circulation et quand tout est à jour, on remet tout d'aplomb avec rotateSymbols.mbx

Hors ligne

 

Pied de page des forums

Powered by FluxBB