Como calculo o azimute (ângulo para norte) entre duas coordenadas WGS84

Tenho duas coordenadas WGS84, latitude e longitude em graus. Esses pontos estão bastante próximos, por ex. apenas um metro de distânci

Existe uma maneira fácil de calcular o azimute da linha entre esses pontos, ou seja, o ângulo para o nort

A abordagem ingênua seria assumir um sistema de coordenadas cartesianas (porque esses pontos estão muito próximos) e apenas usar

sin (a) = abs (L2-L1) / sqrt (sqr (L2-L1) + sqr (B2-B1))

a = azimute L1, L2 = longitude B1, B2 = latitude

O erro será maior à medida que as coordenadas se afastarem do equador, pois a distância entre dois graus longitudinais se torna cada vez menor que a distância entre dois graus latitudinais (que permanece constante

Eu encontrei algumas fórmulas bastante complexas que eu realmente não quero implementar porque elas parecem um exagero para pontos que são muito próximos e não preciso de uma precisão muito alta (duas casas decimais são suficientes, uma provavelmente está boa também, pois de qualquer forma, há outros fatores que reduzem a precisão, como o que o GPS retorna

alvez eu pudesse determinar um fator de correção ng, lo aproximado, dependendo da latitude, e usar algo como ist

sin (a) = abs (L2 * f-L1 * f) / sqrt (sqr (L2 * f-L1 * f) + sqr (B2-B1))

onde f é o fator de correção

Alguma dica?

(Eu não quero usar nenhuma biblioteca para isso, especialmente aquelas que requerem licenças de tempo de execução. Qualquer fonte MPLed Delphi Source seria ótima.)

questionAnswers(6)

yourAnswerToTheQuestion