Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-30 Par sujet Gautier Pelloux-Prayer
Je ne sais pas si c'est un besoin utilisateur, mais dans ce cas précis il y a 
brouter dédié au routing vélo : http://brouter.de/brouter-web/ 

Gautier

> On 30 Jun 2016, at 14:41, osm.sanspourr...@spamgourmet.com wrote:
> 
> Certaines fois il est bon de rappeler la question :
> 
> J'aimerais connaître la distance entre deux points sur une relation
> route=bicycle,en l’occurrence la distance entre Nantes et Blain sur la
> Vélodyssée.
> 
> 
> Et oui, j'ose affirmer que le calcul n'est pas à 10 cm près.
> Adrien me démentira si besoin.
> La différence est de l'ordre de 1/3000.
> 0,03 % !
> L'erreur est fonction de la latitude, si tu as des cas pour le nord du 
> rond-point est à une latitude significativement différente du point le plus 
> au sud, je suis preneur.
> Le plus grand rond-point en France est / était celui de Pen Ar C'hleuz. A 
> priori, mais tu te feras un plaisir de le vérifier par le calcul, entre le 
> point le plus au nord 48,4150848, -4,4796283 et le point le plus au sud 
> 48,4140211, -4,4795085 nous restons comme entre Nantes et Blain dans des 
> latitudes où l'approximation reste correcte.
> A cet effet tu mesureras le périmètre avec et sans l'approximation puis avec 
> l'utilisation de la chaussée intérieure et de la chaussée extérieure (3 
> voies) et tu relativiseras alors l'écart.
> 
> 20 km sur 6  km (6366,000 km c'est 40  / pi / 2 c'est à dire la 
> définition initiale du mètre), oui pour un parcours à vélo entre Nantes et 
> Blain (latitude moyenne) c'est négligeable.
> 
> Adrien, je ne sais ajouter des points sur les calculs d'itinéraires d'OSM 
> (juste 2 points).
> Sur Graphhopper, tu peux le faire et en plus tu vois le profil altimétrique 
> et vois que tu ajoutes plusieurs centaines de mètres (290 m de montée, autant 
> de descente) à force de monter et descendre (soit >1 %, à comparer aux 0,03 % 
> des cas extrêmes de Philippe).
> En plus tu vois bien la tâche dans le paysage que constitue le bocage de 
> Notre-Dame-des-Landes ;-).
> 
> Le 30/06/2016 à 13:26, Philippe Verdy - verd...@wanadoo.fr a écrit :
> ___
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr


___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-30 Par sujet osm . sanspourriel

Certaines fois il est bon de rappeler la question :

J'aimerais connaître la distance entre deux points sur une relation
route=bicycle,en l’occurrence la distance entre Nantes et Blain sur la
Vélodyssée.

Et oui, j'ose affirmer que le calcul n'est pas à 10 cm près.
Adrien me démentira si besoin.
La différence est de l'ordre de 1/3000.
0,03 % !
L'erreur est fonction de la latitude, si tu as des cas pour le nord du 
rond-point est à une latitude significativement différente du point le 
plus au sud, je suis preneur.
Le plus grand rond-point en France est / était celui de Pen Ar C'hleuz 
. A priori, mais tu te feras 
un plaisir de le vérifier par le calcul, entre le point le plus au nord 
48,4150848, -4,4796283  et 
le point le plus au sud 48,4140211, -4,4795085 
 nous restons comme entre 
Nantes et Blain dans des latitudes où l'approximation reste correcte.
A cet effet tu mesureras le périmètre avec et sans l'approximation puis 
avec l'utilisation de la chaussée intérieure et de la chaussée 
extérieure (3 voies) et tu relativiseras alors l'écart.


20 km sur 6  km (6366,000 km c'est 40  / pi / 2 c'est à dire la 
définition initiale du mètre), oui pour un parcours à vélo entre Nantes 
et Blain (latitude moyenne) c'est négligeable.


Adrien, je ne sais ajouter des points sur les calculs d'itinéraires 
d'OSM (juste 2 points).
Sur Graphhopper 
, 
tu peux le faire et en plus tu vois le profil altimétrique et vois que 
tu ajoutes plusieurs centaines de mètres (290 m de montée, autant de 
descente) à force de monter et descendre (soit >1 %, à comparer aux 0,03 
% des cas extrêmes de Philippe).
En plus tu vois bien la tâche dans le paysage que constitue le bocage de 
Notre-Dame-des-Landes ;-).


Le 30/06/2016 à 13:26, Philippe Verdy - verd...@wanadoo.fr a écrit :
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-30 Par sujet Philippe Verdy
En plus les arrondis des rayons sont différents:

- 6366,000 km pour la formule PHP
- 6378,137 km aux pôles et
- 6356,752 km à l'équateur pour la formule Python

Près de 20 kilomètres d'écart entre les deux dernières, ce n'est pas rien
et c'est TRES significatif (la formule simplifiée en PHP n'en tient pas
compte). La différence est de l'ordre de 1/3000 C'est suffisant comme
différence pour ne pas pouvoir distinguer deux points dans OSM ; comme si
on passait d'une carte à précision décimétrique (OSM) à une carte de
précision seulement kilométrique (ou hectométrique aux latitudes moyennes).

Si on n'en tient pas compte, il ne sert alors plus à rien de donner le
résultat obtenu sur le chemin total avec une précision décimétrique, les
derniers chiffres étant tous complètement faux. Au mieux on ne peut
arrondir le résultat qu'à 100 mètres près (c'est pas si mal, mais ça passe
mal pour mesurer des objets plus petits qu'un itinéraire routier, par
exemple le rayon d'un rond-point, la longueur correcte d'une rue de
quelques centaines de mètres, ou obtenir une distance asez précise entre
deux points de visées).

Pour des distances d'approche ou de sécrité en vol à basse altitude, on
peut rater la piste et se poser loin ou se crasher (pas les avions de ligne
qui ont de bons instruments et un guidage imposé depuis le sol, et
n'aterrissent que sur des aéroports bien balisés, mais pour la navigation
amateur sur des petits aérodromes c'est plus problématique, l'approche se
fait surtout à vue et on a besoin de pouvoir localiser précisément ce qui
est autour: la précision décimétrique ou au minimum métrique, mais surtout
pas kilométrique, est nécessaire même si pour l'itinéraire entier sur des
centaines de kilomètres la différence n'est pas très significative...)

Cependant si on veut optimiser le calcul des distances, pour mesurer les
longueurs de ways, on a aussi intérêt à faire la transformation des
coordonnées cartographiques(avec ou sans altitude) en coordonnées
cartésiennes une seule fois et non deux fois pour chaque point
intermédiaire, les formules ne sont pas rapides car on le fait sur des
centaines ou des milliers de points. Une boucle parcourera chaque point
d'un chemin en les convertissant tout de suite en cartésiennes, puis on ne
garde que les cartésiennes dans la boucle. Sur une appli interactive, la
différence de temps se fait vite sentir sur les chemins longs avec ne
nombreux points.

Il fallait le préciser pour que les formules ne soient pas utilisées sans
précaution : on doit savoir ce qui est une approximation et quelles en sont
les limitations pour ne pas les appliquer à tout.

D'ailleurs c'est sur la mesure des petits objets qu'il faut plus de
précision d'autant plus qu'on n'a pas beaucoup de noeuds pour les définir
et que leur géométrie est déjà approximative avec de nombreux virages
dessinés avec des angles trop importants qui parfois font même des segments
sortant complètement de la chaussée

Autre exemple, mesure d'une distance entre un panneau et un carrefour dans
un virage : sur un assistant de navigation cela fait une différence dans le
temps que met le navigateur à nous avertir de l'approche d'un carrefour et
de la bonne voie à prendre, il peut réagir trop tard... et on aura loupé
une sortie, ou celui ci peut nous induire en erreur en nous demandant de
tourner à droite au carrefour suivant alors qu'au bon carrefour il nous
disait de continuer tout droit, et ce n'est pas juste une question de
précision du récepteur GPS.

Heureusement OSM cherche à produire une cartographie décimétrique. Pour la
précision kilométrique, on a assez de cartes statiques depuis longtemps
sans OSM (mais avec peu de renseignements locaux), qui sont immédiatement
utilisables mais réduisent souvent toute une ville à une grosse icône sans
le détail des rues (ou seulement quelques grands axes sommairement tracés
dans les plus grandes).

Le 30 juin 2016 à 12:42, Philippe Verdy  a écrit :

> Ce n'est pas juste de l'optimisation, c'est de la géométrie... Ces
> formules étaient données pour être exactes.
>
> Oui cela fait une différence, certe petite, mais tout dépend de la
> précision qu'on attend (même 0,01% cela fait vite une différence mesurable
> sur une distance assez longue (toutefois non significative si c'est un
> trajet routier car on ne tient pas compte de la géométrie des voies sur les
> routes et des petits écarts à droit ou à gauche et encore moins des
> dépassements).
>
> En revanche la non-rotondité de la terre a une impact bien plus important
> que la petite erreur sur la non-orthonormie du repère sur l'axe des
> altitudes. Dans OSM on utilise le géoïde WGS84 partout, pas la sphère ! Et
> là ce calcul PHP ne tenait compte que du rayon moyen de la sphère (qui est
> correct uniquement aux latitudes moyennes : les distances seront trop
> courtes à l'équateur et trop longues aux pôles). La formule Python est bien
> meilleure.
>
>
> Le 30 juin 2016 à 12:08,  a écrit :
>
>> C'est vraiment de l'optimisation à la peti

Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-30 Par sujet Philippe Verdy
Ce n'est pas juste de l'optimisation, c'est de la géométrie... Ces formules
étaient données pour être exactes.

Oui cela fait une différence, certe petite, mais tout dépend de la
précision qu'on attend (même 0,01% cela fait vite une différence mesurable
sur une distance assez longue (toutefois non significative si c'est un
trajet routier car on ne tient pas compte de la géométrie des voies sur les
routes et des petits écarts à droit ou à gauche et encore moins des
dépassements).

En revanche la non-rotondité de la terre a une impact bien plus important
que la petite erreur sur la non-orthonormie du repère sur l'axe des
altitudes. Dans OSM on utilise le géoïde WGS84 partout, pas la sphère ! Et
là ce calcul PHP ne tenait compte que du rayon moyen de la sphère (qui est
correct uniquement aux latitudes moyennes : les distances seront trop
courtes à l'équateur et trop longues aux pôles). La formule Python est bien
meilleure.


Le 30 juin 2016 à 12:08,  a écrit :

> C'est vraiment de l'optimisation à la petite semaine car le calcul d'une
> valeur absolue n'est pas bien compliqué.
>
> Bien plus intéressant est de changer la dimension des lignes afin de
> stocker la distance depuis le premier nœud.
> 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).
>
> 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.
>
> 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.
>
> Jean-Yvon
>
> Le 30/06/2016 à 11:38, Philippe Verdy - verd...@wanadoo.fr a écrit :
>
> 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.
>
> Le 30 juin 2016 à 07:52, pepilepi...@ovh.fr <
> pepilepi...@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 :
>>
>> importmath
>>
>> defdistance( 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 ) )
>>
>> returndistTotale
>>
>> (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 
>>
>> Le 29 juin 2016 à 20:46, adrien < pe...@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@openstreetmap.org
>>> https://lists.openstreetmap.org/listinfo/talk-fr
>>>
>>
>>
>>
>> ___
>> Talk-fr mailing 
>> listTalk-fr@openstreetmap.orghttps://lists.

Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-30 Par sujet osm . sanspourriel
C'est vraiment de l'optimisation à la petite semaine car le calcul d'une 
valeur absolue n'est pas bien compliqué.


Bien plus intéressant est de changer la dimension des lignes afin de 
stocker la distance depuis le premier nœud.
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).


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.


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.


Jean-Yvon


Le 30/06/2016 à 11:38, Philippe Verdy - verd...@wanadoo.fr a écrit :
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.


Le 30 juin 2016 à 07:52, pepilepi...@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 :

importmath

defdistance( 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 ) )

returndistTotale

(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 

Le 29 juin 2016 à 20:46, adrien mailto:pe...@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@openstreetmap.org 
https://lists.openstreetmap.org/listinfo/talk-fr




___
Talk-fr mailing list
Talk-fr@openstreetmap.org 
https://lists.openstreetmap.org/listinfo/talk-fr




___
Talk-fr mailing list
Talk-fr@openstreetmap.org 
https://lists.openstreetmap.org/listinfo/talk-fr




___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-30 Par sujet Philippe Verdy
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.

Le 30 juin 2016 à 07:52, pepilepi...@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 :
>
> importmath
>
> defdistance( 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 ) )
>
> returndistTotale
>
> (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 
>
> Le 29 juin 2016 à 20:46, adrien  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@openstreetmap.org
>> https://lists.openstreetmap.org/listinfo/talk-fr
>>
>
>
>
> ___
> Talk-fr mailing 
> listTalk-fr@openstreetmap.orghttps://lists.openstreetmap.org/listinfo/talk-fr
>
>
>
> ___
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
>
>
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-30 Par sujet Philippe Verdy
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, pepilepi...@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 :
>
> importmath
>
> defdistance( 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 ) )
>
> returndistTotale
>
> (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 
>
> Le 29 juin 2016 à 20:46, adrien  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@openstreetmap.org
>> https://lists.openstreetmap.org/listinfo/talk-fr
>>
>
>
>
> ___
> Talk-fr mailing 
> listTalk-fr@openstreetmap.orghttps://lists.openstreetmap.org/listinfo/talk-fr
>
>
>
> ___
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
>
>
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-29 Par sujet pepilepi...@ovh.fr
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 :

importmath

defdistance( 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 ) )
   
returndistTotale

(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 
>
> Le 29 juin 2016 à 20:46, adrien  > 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@openstreetmap.org 
> https://lists.openstreetmap.org/listinfo/talk-fr
>
>
>
>
> ___
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr


___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-29 Par sujet Vincent de Château-Thierry

Bonjour,

Le 30/06/2016 07:15, adrien a écrit :


Merci pour l'explication, mais n'y a-t-il pas plus simple, genre
j'indique les deux points, et le logiciel me donne la distance suivant
la route, un peu comme openrouteservice peut le faire ?

Pour info marble permet de faire assez simplement ce que tu décrit, mais
c'est quand même fastidieux puisqu'il faut suivre tout le chemin.


S'il s'agit d'une relation modélisée dans OSM, si tu en sélectionnes les 
membres dans JOSM (clic-droit sur la relation > Sélectionner les 
membres) tu verras dans la barre d'état en bas le cumul de distance.


vincent

___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-29 Par sujet adrien
Bonjour,

Merci pour l'explication, mais n'y a-t-il pas plus simple, genre
j'indique les deux points, et le logiciel me donne la distance suivant
la route, un peu comme openrouteservice peut le faire ?

Pour info marble permet de faire assez simplement ce que tu décrit, mais
c'est quand même fastidieux puisqu'il faut suivre tout le chemin.

Bonne journée

Adrien


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)
> )
> );
>
> 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 
>
> Le 29 juin 2016 à 20:46, adrien  > 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@openstreetmap.org 
> https://lists.openstreetmap.org/listinfo/talk-fr
>
>
>
>
> ___
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr

___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] distance entre deux points sur une route

2016-06-29 Par sujet François Lacombe
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)
)
);

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 

Le 29 juin 2016 à 20:46, adrien  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@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
>
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


[OSM-talk-fr] distance entre deux points sur une route

2016-06-29 Par sujet adrien
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@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr