quinta-feira, 14 de maio de 2015

Calculando a distância em metros entre dois pontos geográficos

Compartilho aqui este método de enorme utilidade. Ele calcula, a partir de dois pontos "latitude, longitude", a distância entre eles (em metros). Desconheço o autor desta rotina. Entretanto, é um código facilmente encontrado na Internet, nos fóruns de programação Android:

public static double distFrom(double lat1, double lng1, double lat2, double lng2)
{
   double earthRadius=3958.75;
   double dLat=Math.toRadians(lat2 - lat1);
   double dLng=Math.toRadians(lng2 - lng1);
 double a=Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(dLng / 2) * Math.sin(dLng / 2);
   double c=2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
   double dist=earthRadius * c;
   int meterConversion=1609;

   double retValue;
   retValue=dist * meterConversion;

   return retValue;
}

O método recebe quatro parâmetros: Latitude1, Longitude1, Latitude2 e Longitude2. Calcula a distância entre os dois pontos, considerando a curvatura do planeta Terra. O retorno do método é o resultado em metros.

Em breve mais dicas!


Nenhum comentário:

Postar um comentário