Ho usato questo codice, ma doesnt lavoro:Come posso calcolare la distanza tra due punti gps in Java?
bisogno della distanza tra due coordinate GPS come 41,1212, 11,2323 in chilometri (Java)
double d2r = (180/Math.PI);
double distance = 0;
try{
double dlong = (endpoint.getLon() - startpoint.getLon()) * d2r;
double dlat = (endpoint.getLat() - startpoint.getLat()) * d2r;
double a =
Math.pow(Math.sin(dlat/2.0), 2)
+ Math.cos(startpoint.getLat() * d2r)
* Math.cos(endpoint.getLat() * d2r)
* Math.pow(Math.sin(dlong/2.0), 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double d = 6367 * c;
return d;
} catch(Exception e){
e.printStackTrace();
}
Il tuo approccio di trigonometria funzionerebbe molto bene se la Terra fosse una sfera perfetta. Tuttavia, in realtà è un ellissoide, quindi il raggio dalla superficie al nucleo della Terra è variabile a seconda della posizione sulla Terra. Per ottenere una misurazione precisa della distanza, è necessario ottenere una libreria di sistema di coordinate che possa tener conto di ciò. Supponendo che una sfera possa essere abbastanza vicina per qualsiasi cosa tu stia facendo, ma se hai bisogno che sia molto accurata, dovrai trovare una buona libreria. –
duplicato da: [http://stackoverflow.com/questions/3694380/calculating-distance-between-two-points-using-latitude-longitude-what-am-i-doi][1] [1]: http://stackoverflow.com/questions/3694380/calculating-distance-between-two-points-using-latitude-longitude-what-am-i-doi – gonella