<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="transparent" text="#000000">
<p>C'est vraiment de l'optimisation à la petite semaine car le
calcul d'une valeur absolue n'est pas bien compliqué.</p>
<p>Bien plus intéressant est de changer la dimension des lignes afin
de stocker la distance depuis le premier nœud.<br>
Typiquement dans un modèle d'itinéraire tu ajoutes deux coûts : le
coût en distance et le coût en temps (en plus des lat/lon et
éventuellement ele).</p>
<p>N.B. : les points étant rapprochés, je doute même de la nécessité
de tenir compte de la rotondité de la terre entre deux points, une
droite géométrique est, étant donné l'absence d'information sur
l'altitude, à peine plus fausse qu'une ligne loxodromique.</p>
<p>Adrien, si jamais ton calcul depuis le GPX tient compte de
l'élévation et si la trace est de bonne qualité, tu dois avoir le
meilleur calcul... qui plus est sans effort de programmation.<br>
</p>
<p>Jean-Yvon<br>
</p>
<br>
<div class="moz-cite-prefix">Le 30/06/2016 à 11:38, Philippe Verdy -
<a class="moz-txt-link-abbreviated" href="mailto:verdy_p@wanadoo.fr">verdy_p@wanadoo.fr</a> a écrit :<br>
</div>
<blockquote
cite="mid:CAGa7JC2j5=1QZSbP+zyLuCN1fhdzQfyReShUe+iVQXOgjhejdg@mail.gmail.com"
type="cite">
<div dir="ltr">D'ailleurs dans la formule Python les fonctions
abs() pour les trois composantes distParallele, distMeridien, et
distVertical sont inutiles, puisqu'on ne va utiliser que leur
carré respectif. Il suffit juste de les voir comme des
composantes d'un vecteur 3D orienté et non comme des distances
positives.</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">Le 30 juin 2016 à 07:52, <a
moz-do-not-send="true" href="mailto:pepilepioux@ovh.fr"><a class="moz-txt-link-abbreviated" href="mailto:pepilepioux@ovh.fr">pepilepioux@ovh.fr</a></a>
<span dir="ltr"><<a moz-do-not-send="true"
href="mailto:pepilepioux@ovh.fr" target="_blank">pepilepioux@ovh.fr</a>></span>
a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><span class="">
<div>Le 29/06/2016 à 23:20, François Lacombe a écrit :<br>
</div>
</span><span class="">
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>Bonjour Adrien,<br>
<br>
</div>
A mon sens c'est un calcul de distance
loxodromique entre chaque nœud, de chaque
portion de véloroute qui composent le chemin
à parcourir.<br>
<a moz-do-not-send="true"
href="https://fr.wikipedia.org/wiki/Loxodromie"
target="_blank">https://fr.wikipedia.org/wiki/Loxodromie</a><br>
<br>
</div>
Concrètement, voici un bout de PHP qui te
donne la distance entre deux points dont tu
connais le lat/lon<br>
</div>
Tu n'as plus qu'à faire la somme de tous tes
segments pour avoir la distance totale<br>
<br>
$l = 6366 * 2 * asin(<br>
sqrt(<br>
pow(
sin((deg2rad($lat)-deg2rad($ll[1]))/2) , 2) +
cos(deg2rad($lat))*cos(deg2rad($ll[1]))* pow(
sin((deg2rad($lng)-deg2rad($ll[0]))/2) , 2)<br>
)<br>
);<br>
</div>
</div>
</div>
</blockquote>
<br>
<br>
</span> Pour ceux que ça peut intéresser la même chose en
Python :<br>
<br>
<font face="Lucida Console">import math<br>
<br>
def distance ( lat1 , lon1 , lat2 , lon2 , alt1 ,
alt2 ) :<br>
rEquat = 6378137<br>
rPole = 6356752<br>
rLat = rEquat - ( ( rEquat - rPole ) * abs( lat1
/ 90 ) ) + alt1<br>
<br>
distParallele = abs ( rLat * math.cos( (( lat1 +
lat2 ) / 2 ) * math.pi / 180 ) * ( ( lon2 - lon1 ) *
math.pi / 180 ) )<br>
distMeridien = abs ( rLat * ( lat2 - lat1 ) *
math.pi / 180 )<br>
distVerticale = abs ( alt2 - alt1 )<br>
distTotale = math.sqrt ( ( distParallele *
distParallele ) + ( distMeridien * distMeridien ) + (
distVerticale * distVerticale ) )<br>
<br>
return distTotale<br>
<br>
</font>(distance en mètres)
<div>
<div class="h5"><br>
<br>
<br>
<br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div>
<div><br>
</div>
Où $lat et $lng sont les coordonnées de ton
point B et $ll[0] et $ll[1] celles de ton point
A.<br>
</div>
Cette formule a un défaut : elle ne tient pas
compte de l'altitude des points, réputée
négligeable ici.<br>
<div>
<div><br>
<br>
</div>
<div>A+<br>
</div>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div data-smartmail="gmail_signature">
<div dir="ltr"><b>François Lacombe</b><br>
<br>
fl dot infosreseaux At gmail dot com<br>
<a moz-do-not-send="true"
href="http://www.infos-reseaux.com"
target="_blank">www.infos-reseaux.com</a><br>
<a moz-do-not-send="true"
href="http://www.twitter.com/InfosReseaux"
target="_blank">@InfosReseaux</a></div>
</div>
</div>
<br>
<div class="gmail_quote">Le 29 juin 2016 à 20:46,
adrien <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:perso@adrieng.fr"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:perso@adrieng.fr">perso@adrieng.fr</a></a>></span>
a écrit :<br>
<blockquote class="gmail_quote" style="margin:0
0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">Bonjour,<br>
<br>
J'aimerais connaître la distance entre deux
points sur une relation<br>
route=bicycle,en l'occurence la distance entre
Nantes et Blain sur la<br>
Vélodyssée.<br>
<br>
Je suppose que c'est facilement faisable, mais
je sèche complètement sur<br>
comment faire, et quel outils utiliser…<br>
<br>
Si vous avez des pistes, je vous en serait
reconnaissant.<br>
<br>
Bonne soirée<br>
<br>
Adrien<br>
<br>
<br>
_______________________________________________<br>
Talk-fr mailing list<br>
<a moz-do-not-send="true"
href="mailto:Talk-fr@openstreetmap.org"
target="_blank">Talk-fr@openstreetmap.org</a><br>
<a moz-do-not-send="true"
href="https://lists.openstreetmap.org/listinfo/talk-fr"
rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/talk-fr</a><br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
Talk-fr mailing list
<a moz-do-not-send="true" href="mailto:Talk-fr@openstreetmap.org" target="_blank">Talk-fr@openstreetmap.org</a>
<a moz-do-not-send="true" href="https://lists.openstreetmap.org/listinfo/talk-fr" target="_blank">https://lists.openstreetmap.org/listinfo/talk-fr</a>
</pre>
</blockquote>
<p><br>
</p>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Talk-fr mailing list<br>
<a moz-do-not-send="true"
href="mailto:Talk-fr@openstreetmap.org">Talk-fr@openstreetmap.org</a><br>
<a moz-do-not-send="true"
href="https://lists.openstreetmap.org/listinfo/talk-fr"
rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/talk-fr</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Talk-fr mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Talk-fr@openstreetmap.org">Talk-fr@openstreetmap.org</a>
<a class="moz-txt-link-freetext" href="https://lists.openstreetmap.org/listinfo/talk-fr">https://lists.openstreetmap.org/listinfo/talk-fr</a>
</pre>
</blockquote>
<br>
</body>
</html>