Pages: 1
- Sujet précédent - Trouver l'angle et le sens de saisie d'une polyligne à son centroïde - Sujet suivant
#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
Pages: 1
- Sujet précédent - Trouver l'angle et le sens de saisie d'une polyligne à son centroïde - Sujet suivant