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;
}
{
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;
}
Em breve mais dicas!
Nenhum comentário:
Postar um comentário