<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>