lojaynaboalwafa
Messages postés4Date d'inscriptiondimanche 13 avril 2014StatutMembreDernière intervention13 mai 2014
-
Modifié par KX le 13/04/2014 à 14:13
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024
-
20 avril 2014 à 18:38
on veut de calculer la distance entre deux points géographiques A(la1,lg2)et B(la1,lg2) en utilisant la formule suivante :
il donner une valeur si on prend de valeurs quelconques
mais lorsque on veut tester les resultats ne donner pas un valeur si on entrer de valeur de google earth exactement on avoir NAN pour resultat pouvez -vous m'aider :)
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 13 avril 2014 à 18:18
Quoi !!?? La distance la plus courte c'est pas toujours la ligne droite !?
On m'aurait donc menti ?
Ceci dit, s'il pouvait commencer par bien faire ses divisions par 2, ce serait déjà un bon début. Au pire, il aura la distance à "vol de taupe", ce qui à petite échelle n'est pas plus faux que de considérer la Terre comme étant ronde...
Quoi !!?? La Terre n'est pas ronde !? On m'aurait donc menti ? ^^
Whismeril
Messages postés19026Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024656 13 avril 2014 à 20:33
s'il pouvait commencer par bien faire ses divisions par 2, ce serait déjà un bon début
C'est sûr!
Quoi !!?? La Terre n'est pas ronde !? On m'aurait donc menti ? ^^
Les demi axes a et b correspondent aux deux "rayons" de référence de l'ellipsoïde choisi.
Pour le GRS80, on voit une différence de 21 km, soit 42 km sur le diamètre.
Sur 12 000 km ça peut paraître peu, mais si on calculait les coordonnées en se basant sur une sphère, un bateau naviguant près du pôle aurait une hauteur sur l'ellipsoïde de -21 km, pas très parlant.
Mais bon, vu le ton te le savais déjà ;-).
il aura la distance à "vol de taupe", ce qui à petite échelle n'est pas plus faux que de considérer la Terre comme étant ronde
là je ne suis pas d'accord, les différences se font rapidement voir, ça dépend bien sûr de la précision attendue.
Mais par exemple, en tenant compte d'un ellipsoïde qui colle parfaitement à l'Europe , c-a-d celui de Clarke, en calculant la bonne orthodromie, en arrondissant le pouce d'une décimale de trop (on dit que c'est 2,54 cm, mais ça n'est pas tout à fait exact) et bien les deux foreuses qui creusaient le tunnel sous la manche sont passées à coté l'une de l'autre.
Whismeril
Messages postés19026Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024656 13 avril 2014 à 20:41
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 14 avril 2014 à 08:03
la distance à "vol de taupe", ce qui à petite échelle n'est pas plus faux que de considérer la Terre comme étant ronde
Ce que je voulais dire par là c'est que si l'on prend un arc de cercle (R.θ) ou la corde associée 2R.sin(θ/2), pour de petites valeurs de θ les distances seront proches.
Pour une distance calculée en arc de cercle à 100 km, la ligne droite fera 99.999 km. Pour 1000 km effectivement on commence à avoir une perte de précision puisqu'on calculerait 998.974 km mais ce n'est déjà plus la petite échelle dont je parlais.
Sachant que la distance réelle n'est évidemment ni l'arc de cercle, ni la corde (mais l'orthodromie), ma remarque disait juste que ce n'était pas plus faux de considérer l'une ou l'autre de ces deux approximations.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 13 avril 2014 à 11:37
Salut,
NaN signifie "Not a Number"
Je ne sais pas ce que tu entres à ton programme mais il doit y avoir un soucis dans les données.
Tu as peut être un dépassement de capacité des tes variables si ce que tu entre est très grand, ca peut arriver. Dans ce cas, il faudra que tu passes par la classe BigInteger pour t'en sortir.
lojaynaboalwafa
Messages postés4Date d'inscriptiondimanche 13 avril 2014StatutMembreDernière intervention13 mai 2014 20 avril 2014 à 12:08
salut , j'essaye de travail avec vos conseils ;mais cette fois le probleme qui je n'avoir pas le valeur exacte de distance.
NB: c'est la fonction qui j'utilise.
double dist ( double la1,double lg1,double la2,double lg2)
{
la1 = la1 * Math.PI / 180;
la2 = la2 * Math.PI / 180;
lg1 = lg1 * Math.PI / 180;
lg2 = lg2 * Math.PI / 180;
double dis = 6366*Math.acos(Math.cos(la1) *Math.cos(la2)* Math.cos(lg1-lg2) +Math.sin(la1)*Math.sin(la2));
return dis;
}
mais je sais pas quelle est l'erreur !!!
ou bien est ce que n'est pas la formule juste ???
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 Modifié par KX le 20/04/2014 à 23:38
Bonsoir,
La formule semble plutôt correcte, si ce n'est ton 6366. Je ne sais pas d'où il sort, mais le rayon de la Terre est de 6371 km...
De plus on ne peut pas totalement exclure que tu ne te sois pas trompé ailleurs dans ton code et que les valeurs de la1, lg1, la2 et lg2 soient fausses avant même d'entrer dans la méthode, ce qui expliquerait du coup pourquoi le résultat est faux.
Remarque : comme on le rappelait avec Whismeril, la Terre n'est pas parfaitement sphérique mais légèrement aplatie. Donc ta formule, qui s'applique à une sphère, ne donnera qu'une approximation du résultat, avec une marge d'erreur de 0.5% sur les latitudes et 0.2% sur les longitudes.
13 avril 2014 à 18:18
On m'aurait donc menti ?
Ceci dit, s'il pouvait commencer par bien faire ses divisions par 2, ce serait déjà un bon début. Au pire, il aura la distance à "vol de taupe", ce qui à petite échelle n'est pas plus faux que de considérer la Terre comme étant ronde...
Quoi !!?? La Terre n'est pas ronde !? On m'aurait donc menti ? ^^
13 avril 2014 à 20:33
Et non http://fr.wikipedia.org/wiki/WGS_84
Les demi axes a et b correspondent aux deux "rayons" de référence de l'ellipsoïde choisi.
Pour le GRS80, on voit une différence de 21 km, soit 42 km sur le diamètre.
Sur 12 000 km ça peut paraître peu, mais si on calculait les coordonnées en se basant sur une sphère, un bateau naviguant près du pôle aurait une hauteur sur l'ellipsoïde de -21 km, pas très parlant.
Mais bon, vu le ton te le savais déjà ;-).
là je ne suis pas d'accord, les différences se font rapidement voir, ça dépend bien sûr de la précision attendue.
Mais par exemple, en tenant compte d'un ellipsoïde qui colle parfaitement à l'Europe , c-a-d celui de Clarke, en calculant la bonne orthodromie, en arrondissant le pouce d'une décimale de trop (on dit que c'est 2,54 cm, mais ça n'est pas tout à fait exact) et bien les deux foreuses qui creusaient le tunnel sous la manche sont passées à coté l'une de l'autre.
13 avril 2014 à 20:41
http://geodesie.ign.fr/contenu/fichiers/Distance_longitude_latitude.pdf
14 avril 2014 à 08:03
Ce que je voulais dire par là c'est que si l'on prend un arc de cercle (R.θ) ou la corde associée 2R.sin(θ/2), pour de petites valeurs de θ les distances seront proches.
Pour une distance calculée en arc de cercle à 100 km, la ligne droite fera 99.999 km. Pour 1000 km effectivement on commence à avoir une perte de précision puisqu'on calculerait 998.974 km mais ce n'est déjà plus la petite échelle dont je parlais.
Sachant que la distance réelle n'est évidemment ni l'arc de cercle, ni la corde (mais l'orthodromie), ma remarque disait juste que ce n'était pas plus faux de considérer l'une ou l'autre de ces deux approximations.