#1 Fri 31 May 2002 19:20
- Mackinley Sylvestre
- Invité
Distance sur une polyligne
Bonjour tout le monde
J'aimerais savoir s'il existe une fonction en mapbasic qui me permettrait d'evaluer la distance d'un point sur une polyligne par rapport a son debut en suivant la geometrie de la polyligne celle ci.
Merci
#2 Fri 31 May 2002 19:23
- Pblanc
- Invité
Re: Distance sur une polyligne
Vous pouvez proceder ainsi :
Segment par segment,
Verifier si le segment est situe a cote du point (autrement dit, si le point
se trouve decale d'un cote ou de l'autre du segment, entre ses extremites).
Si c'est le cas, calculer la distance entre le point et le segment. Calculer
aussi les coordonnees du point le plus rapproche sur le segment ( point a
mesurer ).
Retenir en memoire le numero du segment le plus rapproche du point.
Ensuite, avec le numero du segment le plus rapproche :
Calculer la longueur de la polyligne jusqu'au segment en question avec
ObjectLength et ExtractNodes
Additionner finalement la distance entre le premier noeud du segment et le
point a mesurer
Cette derniere methode a pour defaut d'obliger a tester chaque segment. En
creant plutot un cercle autour du point, on peut limiter le nombre de
segments a tester. Utiliser alors Overlap avec un Buffer pour decouper un ou
plusieurs bouts de polylignes. Tester ensuite les segments pour trouver le
bon. Ensuite, calculer et cumuler les longueurs des morceaux en amont en
prenant soin de retracer les bons morceaux! Cette methode est plus rapide
lorsque les noeuds sont nombreux sur les polylignes.
Contactez-moi au besoin.
#3 Fri 31 May 2002 19:22
- Sebastien Roddier
- Invité
Re: Distance sur une polyligne
Bonjour
vovi peut etre une methode :
- recuperer le nombre de noeud de la ligne (fonction mapbasic)
- Si le point fait partie de la polyligne (un noeud) alors recuperer son
numero sur cette meme polyligne (fonction mapbasic)
- faire boucler un programme qui calcul la distance separant le noeud
selectionne par rapport au noeud amont (numero - 1) (ou aval : numero + 1),
puis le noeud amont (ou aval) devient noeud principal et on recalcul la
distance que l'on ajoute a la distance precedente et ainsi de suite jusqu'a
ce que le noeud principal soit le noeud de depart ou d'arrivee de la
polyligne (fonction mapbasic).
Je ne sais pas si cela marche, je n'ai pas eu le temps de tester, tenez moi
au courant.
#4 Wed 05 June 2002 19:21
- Denis Jouin
- Invité
Re: Distance sur une polyligne
Bonjour !
j'ai ecrit un outil MBX qui, lorsque l'on clique sur une polyligne, affiche
la longueur depuis le debut de la polyligne et la longueur jusqu'a la fin.
Ce n'est pas une fonction, mais un bouton outil.
Si cela vous interesse je peux vous l'envoyer.
Mon adresse : djouin@ hotmail.com
Cordialement.
Denis Jouin