Foto de formas no gelo no Polo Norte.

{link:http://www.bensaunders.com/}Foto do Polo Norte, por Ben Saunders.{/link}

E depois deste último artigo sobre a Geolocation API do HTML5 que nos diz acertadamente (ou pelo menos tenta) a nossa latitude e longitude no planeta Terra, fomos um passo mais longe. Depois de sabermos onde estamos queremos saber a que distância em quilómetros e em linha reta estamos do Polo Norte. Sim, um dos pontos mais frios e extremos do planeta.

 

Primeiro, a demonstração

Print-screen da janela que deverá aceitar para obter a sua latitude e longitude.

{link:http://www.techrepublic.com/+}Esta é a janela que surge no topo esquerdo do seu browser que deverá aceitar para ser mostrada a latitude e longitude.{/link}

Depois de aceitar a janela que surge no topo superior direito da janela já deverá aparecer abaixo a sua latitude e longitude (no formato que o Google Maps aceita) e a respetiva distãncia que você está do Polo Norte.

Depois de aceitar o pedido do browser, a sua localização deverá aparecer aqui…

Agora, a explicação…

Mas como é que isto é feito? Trata-se de uma série cálculos programáticos que utilizam a fórmula de Haversine.

Trata-se de uma fórmula bastante importante e muito utilizada na navegação. Ela fornece as distâncias entre dois pontos de uma esfera a partir das suas latitudes e longitudes.

Trata-se de um caso especial, de uma fórmula mais geral de trigonometria esférica, a lei dos Haversines, e que relaciona os lados a ângulos de uma esfera triangular.

E é esta fórmula que faz todo o trabalho pesado. É com ela que conseguimos saber a distância em linha reta entre o lugar de onde estamos e o Polo Norte.

O código

E então o que temos aqui? São três funções:

  • calculaDistancia Esta função é responsável por receber as coordenadas, converte-las para radianos, e depois aplicar a fórmula de Haversine tendo em consideração o raio da Terra em quilómetros. Obtendo o resultado, retorna-o para a função mostraLocalizacaoComDistancia.
  • grausParaRadianos É responsável por converter as coordenadas de graus para radianos.
  • mostraLocalizacaoComDistancia Por último, esta função mostra a nossa latitude e longitude no browser e de seguida, após obter o resultado da nossa distância ao Polo Norte, mostra-a no browser.

[codigofonte linguagem="javascript"]
function calculaDistancia(startCoords, destCoords)
{
var startLatRads = grausParaRadianos(startCoords.latitude);
var startLongRads = grausParaRadianos(startCoords.longitude);
var destLatRads = grausParaRadianos(destCoords.latitude);
var destLongRads = grausParaRadianos(destCoords.longitude);
var Radius = 6371; // raio da Terra em km
var distancia = Math.acos(Math.sin(startLatRads) * Math.sin(destLatRads)
Math.cos(startLatRads) * Math.cos(destLatRads) *
Math.cos(startLongRads – destLongRads)) * Radius;
return distancia;
}
function grausParaRadianos(graus)
{
var radianos = (graus * Math.PI)/180;
return radianos;
}
function mostraLocalizacaoComDistancia(posicao)
{
var latitude = posicao.coords.latitude;
var longitude = posicao.coords.longitude;
texto = "Você está na latitude, longitude (no formato que pode colocar no google maps) " latitude ", " longitude;
var km = calculaDistancia(posicao.coords, coodernadasPoloNorte);
texto = "<br />";
texto = "E está a " km " km de distância do Pólo Norte…";
var locdist = document.getElementById("localizacao");
locdist.innerHTML = texto;
}
var coodernadasPoloNorte = { latitude: 90, longitude: 0};
[/codigofonte]

E isto para que serve?

Serve para imensas coisas. Aliás, pense no que pode fazer com informação geográfica.

Pode fazer aplicações que não “obrigam” o utilizador a dar a sua localização atual, e a partir daí, caso tenha uma base de dados com as localizações de restaurantes ou hotéis, por exemplo, dizer ao utilizador, quais os que ficam nas imediações.

A Geolocation API que vem proposta pelo HTML5 veio abrir ainda mais horizontes das aplicações.

E se é certo que antigamente isto já era possível fazer, o que não era possível era ter uma tecnologia que funcionasse em todos os dispositivos.

Com algumas limitações em browsers mais antigos, é certo, mas o caminho é esse.

Texto escrito de acordo com o novo acordo ortográfico.

Tags: , , , , , ,

Informático que gosta de emoções fortes, de programar e da web no geral.

Deixar um Comentário



Smartphones Android - As Nossas Escolhas

Sony Xperia E – O Smartphone Acessível da Sony

smartphone sony xperia e

Sony Xperia J – Análise: Mais Do Que “Uma Cara Bonita”?

dois sony xperia j

Samsung Galaxy S4 – Análise ao tão esperado sucessor do Galaxy S3

Samsung S4 Branco

HTC One SV – Excelente performance, design de qualidade e boa autonomia

Samsung Galaxy Camera – a câmara fotográfica com o sistema Android

Sony Ericsson Xperia Ray – Elegância e autonomia num só equipamento

Huawei Honor – Excelente autonomia e bonito design

Huawei Ascend G300 – Design interessante e excelente autonomia a um preço acessível

Huawei Ascend P1 – O smartphone fino, leve, de sólido desempenho e bonito ecrã

Samsung Galaxy Gio – Bonito design, boa performance e preço acessível

Sony Xperia P – Design único e excelente câmara fotográfica

Samsung Galaxy SIII Mini – A versão mais pequena do Galaxy SIII?