[OSM-talk-fr] distance entre deux points sur une route
Philippe Verdy
verdy_p at wanadoo.fr
Jeu 30 Juin 09:34:58 UTC 2016
Ce n'est pas tout à fait la même formule, celle en Python tient compte de
l'applatissement de la Terre sur le géoïde de référence (alors que la
première formule en PHP la modélise comme une sphère, avec un rayon moyen
arrondi en kilomètres, et non les deux rayons arrondis en mètres).
Cependant les deux formules ne tiennent pas compte de l'altitude (il
faudrait des données supplémentaires sur le modèle de terrain pour estimer
l'altitude des deux points)
Le 30 juin 2016 à 07:52, pepilepioux at ovh.fr <pepilepioux at ovh.fr> a écrit :
> 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
> @InfosReseaux <http://www.twitter.com/InfosReseaux>
>
> Le 29 juin 2016 à 20:46, adrien <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
>> https://lists.openstreetmap.org/listinfo/talk-fr
>>
>
>
>
> _______________________________________________
> Talk-fr mailing listTalk-fr at openstreetmap.orghttps://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/5bf46d3d/attachment.htm>
Plus d'informations sur la liste de diffusion Talk-fr