[OSM-talk-fr] distance entre deux points sur une route
pepilepioux at ovh.fr
pepilepioux at ovh.fr
Jeu 30 Juin 05:52:41 UTC 2016
Le 29/06/2016 à 23:20, François Lacombe a écrit :
> Bonjour Adrien,
>
> 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.
> https://fr.wikipedia.org/wiki/Loxodromie
>
> Concrètement, voici un bout de PHP qui te donne la distance entre deux
> points dont tu connais le lat/lon
> Tu n'as plus qu'à faire la somme de tous tes segments pour avoir la
> distance totale
>
> $l = 6366 * 2 * asin(
> sqrt(
> 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)
> )
> );
Pour ceux que ça peut intéresser la même chose en Python :
import math
def distance ( lat1 , lon1 , lat2 , lon2 , alt1 , alt2 ) :
rEquat = 6378137
rPole = 6356752
rLat = rEquat - ( ( rEquat - rPole ) * abs( lat1 / 90 ) ) + alt1
distParallele = abs ( rLat * math.cos( (( lat1 + lat2 ) / 2 ) *
math.pi / 180 ) * ( ( lon2 - lon1 ) * math.pi / 180 ) )
distMeridien = abs ( rLat * ( lat2 - lat1 ) * math.pi / 180 )
distVerticale = abs ( alt2 - alt1 )
distTotale = math.sqrt ( ( distParallele * distParallele ) +
( distMeridien * distMeridien ) + ( distVerticale * distVerticale ) )
return distTotale
(distance en mètres)
>
> Où $lat et $lng sont les coordonnées de ton point B et $ll[0] et
> $ll[1] celles de ton point A.
> Cette formule a un défaut : elle ne tient pas compte de l'altitude des
> points, réputée négligeable ici.
>
>
> A+
>
> *François Lacombe*
>
> fl dot infosreseaux At gmail dot com
> www.infos-reseaux.com <http://www.infos-reseaux.com>
> @InfosReseaux <http://www.twitter.com/InfosReseaux>
>
> Le 29 juin 2016 à 20:46, adrien <perso at adrieng.fr
> <mailto:perso at adrieng.fr>> a écrit :
>
> Bonjour,
>
> J'aimerais connaître la distance entre deux points sur une relation
> route=bicycle,en l'occurence la distance entre Nantes et Blain sur la
> Vélodyssée.
>
> Je suppose que c'est facilement faisable, mais je sèche
> complètement sur
> comment faire, et quel outils utiliser…
>
> Si vous avez des pistes, je vous en serait reconnaissant.
>
> Bonne soirée
>
> Adrien
>
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr at openstreetmap.org <mailto:Talk-fr at openstreetmap.org>
> https://lists.openstreetmap.org/listinfo/talk-fr
>
>
>
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/talk-fr/attachments/20160630/0744394e/attachment.htm>
Plus d'informations sur la liste de diffusion Talk-fr