Jan 18

JavaScript para calcular distâncias entre 2 coordenadas 5

Tags: ,
/*Os valores da latitude e longitude tem de ser passados já convertidos para segundos.
      para fazer isso basta fazer, por exemplo, para converter  23:50:01 em segundos:
      23*60*60 + 50*60 + 01 = 85801 segundos.
*/
public double distancia (int latitudeOrigem, int longitudeOrigem, int latitudeDestino, int longitudeDestino){
      double circTerra=40030; // Circunferência da Terra (em kilômetros)
      double latitudeO = (double) latitudeOrigem / 3600;
      double longitudeO = (double) longitudeOrigem / 3600;
      double latitudeD = (double) latitudeDestino / 3600;
      double longitudeD = (double) longitudeDestino / 3600;
      double a = longitudeO - longitudeD;
      double c = 90.0 - latitudeO;
      double b = 90.0 - latitudeD;
      double aCosA =  (Math.acos(Math.cos(radiano(b)) * Math.cos(radiano(c)) + Math.sin(radiano(b)) * Math.sin(radiano(c)) * Math.cos(radiano(a))) * 180 / Math.PI);
      return(aCosA * circTerra / 360);
   }
Share and Enjoy:
  • E-mail this story to a friend!
  • Print this article!
  • del.icio.us
  • Digg
  • Google
  • TwitThis
  • Facebook
  • Live
  • StumbleUpon

No Comments

Leave a comment