Bom dia Pessoal,Existe uma maneira de eu calcular um raio de 1Km de uma posição especifica de latitude e longitude? Qual a melhor forma?
--
--
--
--
--
--
--
--
double CalculateDistance( double nLat1, double nLon1, double nLat2, double nLon2 )
{
double nRadius = 6371; // Earth's radius in Kilometers
// Get the difference between our two points
// then convert the difference into radians
double nDLat = ToRad(nLat2 - nLat1);
double nDLon = ToRad(nLon2 - nLon1);
// Here is the new line
nLat1 = ToRad(nLat1);
nLat2 = ToRad(nLat2);
double nA = pow ( sin(nDLat/2), 2 ) + cos(nLat1) * cos(nLat2) * pow ( sin(nDLon/2), 2 );
double nC = 2 * atan2( sqrt(nA), sqrt( 1 - nA ));
double nD = nRadius * nC;
return nD; // Return our calculated distance
}
--
--
--
A questão do gps eu acho que não tem como fugir (a não ser que você use localização por rede ou algo do tipo), mas a questão do provider você pode adaptar e usar só um deles... Não li direito, só olhei por alto, mas até onde conheço acho que apenas um já é suficiente pra isso...
--
--
--