Distância Geográfica

De Augusto Baffa Wiki
Ir para navegação Ir para pesquisar

Para calcular as distâncias entre dois pontos no planeta são utilizadas suas posições em coordenadas geográficas. Seus pontos são projetados em uma esfera com raio de 6378.137 quilômetros. As coordenadas são descritas através de graus em latitudes e longitudes.

Função para calcular a distância geográfica utilizando latitudes e longitudes:

def CalculateGeoDistance(latitude_1, longitude_1, latitude_2, longitude_2):
		
   dLon = ToRadians(longitude_2 - longitude_1)
   dLat = ToRadians(latitude_2 - latitude_1)

   r = 6378.137 #Equatorial radius of earth in Kilometers

   a = sin(dLat/2)^2 + cos(ToRadians(latitude_1)) * cos(ToRadians(latitude_2)) * sin(dLon/2)^2

   c = 2 * atan2(sqrt(a), sqrt(1 - a))

return c * r

Função para converter latitudes e longitudes de graus para radianos:

def ToRadians(deg):
   Pi = 3.141592
return Pi/180 * deg


A função atan2 é uma função de arco tangente com dois argumentos e pode ser descrita como segue:

[math] \operatorname {atan2} (y,x)={ \begin{cases} \arctan(\frac {y}{x}) & \text{se } x \gt 0,\\ \arctan(\frac {y}{x}) + \pi & \text{se } x \lt 0 \text{ e } y \geq 0,\\ \arctan(\frac {y}{x}) - \pi & \text{se } x \lt 0 \text{ e } y \lt 0,\\ +\frac{\pi}{2} & \text{se } x=0 \text{ e } y\gt 0,\\ -\frac{\pi}{2} & \text{se } x=0 \text{ e } y\lt 0,\\ \text{indefinido} & \text{se } x=0 \text{ e } y=0. \end{cases}} [/math]


Ver também