/*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);
   }
Gostou??? Compartilhe!!!
  • Add to favorites
  • Print
  • PDF
  • email
  • RSS
  • del.icio.us
  • Facebook
  • LinkedIn
  • Google Bookmarks
  • Twitter
  • MySpace
  • StumbleUpon
  • Live
  • BlinkList
  • Netvibes
  • Sphinn

Posts relacionados:

  1. Comparando datas com JavaScript

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2011 Vinicius Cordeiro Suffusion theme by Sayontan Sinha
8 visitors online now
1 guests, 7 bots, 0 members
Max visitors today: 12 at 08:24 am BRT
This month: 14 at 02-03-2012 01:13 am BRT
This year: 25 at 01-27-2012 02:32 am BRT
All time: 2656 at 02-03-1998 04:52 am BRT