On Tue, 06 Jun 2006 18:49:07 +0200 Stephanie MAHEVAS <Stephanie.Mahevas@ifremer.fr> wrote:
bonjour
il semblerait que les calculs de temps de route ne soient pas corrects. Je suis allee voir la formule de plus pres. Il me semble qu'il y a une erreur. Les latitudes et longitudes sont multipliees dans la formule par 180/pi, transformation necessaire pour passer de radian en degre. Les longitudes et latitudes ne sont-elles pas deja en degre? (C'est ainsi qu'elles apparaissent dans l'interface).
merci a benjamin de verifier et de faire la correction tel est le cas.
Bonjour, Si dans les calculs que vous m'avez fourni il y a une multiplication par 180/pi alors dans mais calcul elle doit aussi y etre :) Voici le calcul complet de distance entre 2 mailles, pour moi il n'y a pas multiplication mais division par 180/pi. Nous avions verifie ce calcul avec dominique et j'avais les meme resultat qu'elle. public float distance(Maille m1, Maille m2){ double earthRadius = 6378.388; double p = 180/Math.PI; /*#if(log.isLoggable(Level.FINEST)) log.finest("p: " + p);#*/ double m1lat = m1.getLatitude(); double m2lat = m2.getLatitude(); double m1lon = m1.getLongitude(); double m2lon = m2.getLongitude(); /*#if(log.isLoggable(Level.FINEST)) log.finest( " m1lat=" + m1lat + " m2lat=" + m2lat + " m1lon=" + m1lon + " m2lonx=" + m2lon );#*/ double m1lat_div_p = m1lat/p; // <------ ici on divise par p qui est 180/pi double m2lat_div_p = m2lat/p; double m1lon_div_p = m1lon/p; double m2lon_div_p = m2lon/p; /*#if(log.isLoggable(Level.FINEST)) log.finest( " m1lat_div_p=" + m1lat_div_p + " m2lat_div_p=" + m2lat_div_p + " m1lon_div_p=" + m1lon_div_p + " m2lon_div_p=" + m2lon_div_p );#*/ double sin_m1lat_div_p = Math.sin(m1lat_div_p); double sin_m2lat_div_p = Math.sin(m2lat_div_p); double cos_m1lat_div_p = Math.cos(m1lat_div_p); double cos_m2lat_div_p = Math.cos(m2lat_div_p); /*#if(log.isLoggable(Level.FINEST)) log.finest( " sin_m1lat_div_p=" + sin_m1lat_div_p + " sin_m2lat_div_p=" + sin_m2lat_div_p + " cos_m1lat_div_p=" + cos_m1lat_div_p + " cos_m2lat_div_p=" + cos_m2lat_div_p );#*/ double cos_m1lon_div_p_minus_m2lon_div_p = Math.cos(m1lon_div_p - m2lon_div_p); /*#if(log.isLoggable(Level.FINEST)) log.finest( " cos_m1lon_div_p_minus_m2lon_div_p=" + cos_m1lon_div_p_minus_m2lon_div_p);#*/ double acos = Math.acos( sin_m1lat_div_p * sin_m2lat_div_p + cos_m1lat_div_p * cos_m2lat_div_p * cos_m1lon_div_p_minus_m2lon_div_p ); /*#if(log.isLoggable(Level.FINEST)) log.finest( " acos=" + acos);#*/ double result = earthRadius * acos; return (float)result; } -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii