<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Le 29/06/2016 à 23:20, François Lacombe
      a écrit :<br>
    </div>
    <blockquote
cite="mid:CAG0ygLeUVWZ7bR4sBCvRyqWVwBF_5g9XGTwyFV1odScpXDFYZg@mail.gmail.com"
      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">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>
    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)<br>
    <br>
    <br>
    <br>
    <br>
    <blockquote
cite="mid:CAG0ygLeUVWZ7bR4sBCvRyqWVwBF_5g9XGTwyFV1odScpXDFYZg@mail.gmail.com"
      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 class="gmail_signature" 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">perso@adrieng.fr</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">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 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>
    <p><br>
    </p>
  </body>
</html>