Boa tarde Marcos Cruz.
A fórmula para calcular distâncias entre duas localidades, parte do pressuposto que o mapa Mundi está planificado, considerando o eixo Y como sendo o Meridiano de Greenwich e o eixo X sendo a linha do Equador.
A partir dessa planificação, transforma os valores de latitude e longitude das localizações em pontos nesse plano cartesiano calculando a distância considerando que ambos os lugares estão situados nesse mesmo plano, ou seja, desconsidera altura. Além disso, essa distância é calculada considerando uma linha reta, por isso tem valores aproximados.
Não é algo tão complicado, dependendo do nível de compreensão matemática e computacional da pessoa, fazer alterações nessa fórmula, porém, ao meu ver, acho desnecessário, pois os valores são boas aproximações.
Esse site tem um aplicativo interessante. Vale a pena dar uma olhada nele:
http://www.cidademapa.com.br/calcular-distancia.php
Espero ter ajudado e tudo de bom.