Distância Geográfica

De Augusto Baffa Wiki
Revisão de 08h57min de 31 de janeiro de 2019 por Abaffa (discussão | contribs) (Criou página com ' 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 6...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
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:

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:

ToRadians(deg)
   let 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]