Calculando a distância entre dois pontos – Javascript + html5

esfer

Motivação: Mostrar ou não mostrar um dado conteúdo em um site baseado na posição do usuário em relação a um perímetro circular. 

A necessidade era de saber se um pessoa está dentro ou fora de uma área utilizando a geolocalização do HTML5. Parece simples mas não é! Não é simplesmente ligar 2 pontos e medir, é necessário considerar a distância entre dois pontos na superfície de uma grande esfera (o nosso querido planeta Terra).

Para isso utilizei a fórmula Harvesine. Antes eu não sabia nem por onde começar até encontrar este link

Abaixo a constituição da equação e a legenda.

ae2fb2ccf4587b293ec00963b21d8c68

af04991ec156eda6bdfde4c61917863d

Função de Havensin

 

  • haversin é função de Havensin,
  • d é a distância entre dois pontos em uma grande esfera,
  • r é o raio da esfera,
  • \phi_1, \phi_2: latitude do ponto 1 e do ponto 2,
  • \lambda_1, \lambda_2: longitude do ponto  1 e do ponto 2.

Assim adaptar para o javascript foi fácil.

 

E o JS no HTML5?

Seguindo o exemplo da W3schools ou do site HTML5. Para testar defini uma posição X (Lat, Lon) e pego dinamicamente a localização da execução do programa. Se a distância for maior ou igual a 200 metros digo que os objetos estão longe, do contrário digo que estão perto. Considerei que o Raio da Terra é 6371km.

É isso

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *