Encontrar a sua posição com Geolocalização

A API de geolocalização consiste em um método para localizar exatamente a posição de um usuário. Isso é extremamente útil para uma serie de coisas como informações sobre um determinado local ou uma rota de navegação.

Por | @gregoryylaborde Programação

A API de geolocalização consiste em um método para localizar exatamente a posição de um usuário. Isso é extremamente útil para uma serie de coisas como informações sobre um determinado local ou uma rota de navegação. A API é extremamente simples de ser implementada e utilizada, este artigo busca demonstrar isto de forma prática.

Compatibilidade do navegador


Atualmente, a API W3C de Geolocalização é suportada pelos navegadores de desktop a baixo:
  • Firefox 3.5 +
  • Chrome 5.0 +
  • Opera 10,60 +
  • Internet Explorer 9.0 +


Também existe suporte para a API W3C de Geolocalização em dispositivos móveis:
  • Android 2.0 +
  • iPhone 3.0 +
  • Opera Mobile 10.1 +
  • Symbian (S60 3rd e 5 ª geração)
  • Blackberry OS 6
  • Maemo


Proteção de Dados


A especificação deixa explicitamente afirmado que, desde que a natureza da API expõe a localização do usuário, podendo comprometer a sua privacidade e integridade, se faz necessária a autorização do mesmo para acessar as suas informações de geolocalização. O navegador desempenha este trabalho mostrando ao usuário uma caixa de mensagem que pode aparecer na forma de pop-up ou na parte superior do navegador, solicitando a permissão do usuário.
Encontrar a sua posição com Geolocalização


Fontes de geolocalização


Uma gama de fontes diferentes são utilizadas para obter a localização do usuário, tendo cada uma seu próprio grau de precisão e variação e precisão. Em um navegador instalado em um desktop é bem provável que o sistema de geolocalização utilize WiFi ( com precisão de 20m) ou o IP que so se faz necessário ao nível de cidade, podendo fornecer algumas vezes falsas informações. Já os dispositivos móveis utilizam a técnica de triangulação do GPS ( que possui precisão de 10m) , WiFi e GSM/ CDMA celular com uma precisão de 1000m.

Usando a API


Antes que você tentar usar a API de geolocalização, primeiro você precisa verificar se o navegador realmente suporta . A API fornece uma função útil para realizar este teste:
if (navigator.geolocation) {
  // do fancy stuff
}

Obviamente, se o navegador retornar ‘false’, você deve informar ao usuário da inferioridade do seu navegador e rir na cara dele (mas não muito). Através da API, há duas funções disponíveis para obter a localização de um usuário:

getCurrentPosition e watchPosition


Os dois métodos retornam imediatamente, e depois de forma assíncrona tentam obter a localização atual. Eles carregam o mesmo número de argumentos, dois deles são opcionais:

1. successCallback - chamado se o método retorna com sucesso

2. [ errorCallback ] - chamado se o método retorna com um erro

3. [Options] - uma série de opções estão disponíveis:
- enableHighAccuracy - fornece um indício de que a aplicação gostaria dos melhores resultados possíveis . Isso pode causar um tempo de resposta mais lento, no caso de um dispositivo móvel, ampliando o consumo de energia.

- tempo limite - indica o comprimento máximo de tempo de espera por uma resposta. Em as respostas devem ser enviadas em milésimos de segundo com o padrão de 0 - infinito.

4. maximumAge – denota o tempo máximo de uma posição em cache que o aplicativo estará disposto a aceitar. Tudo isso sendo realizado em milissegundos com o valor padrão 0, significando que uma tentativa deve ser realizada para obter um novo objeto imediatamente.

Antes de mencionar as diferenças entre os dois, um outro método precisa ser introduzidas:

clearWatch


Este método possui um argumento, o watchID que é retornado pelo watchposition. Agora, a diferença entre o getCruttentPosition e watchPosition é que watchPosition mantém a informação sobre o seu código e a mudança de posição, então basicamente mantém atualizada a posição do usuário. Isto é bastante útil caso ele esteja em movimento e você queira manter o controle de sua posição constantemente atualizada chamando o clearWatch.
Quando a posição do usuário é retornada, contendo dentro do bloco uma posição do objeto existem as seguintes propriedades:
Encontrar a sua posição com Geolocalização


Entre estes apenas o que é coords . latitude , coords .longitude e coords . precisão são garantidos para serem devolvidos (todos os outros podem ser nulo ), e os dois primeiros são em geral os mais relevantes, pois é a partir destes que uma posição pode ser plotados em um mapa do Google, por exemplo.


Juntando tudo


Colocar este conjunto, o código a seguir irá tentar obter a localização de um usuário, chamando o método displayPosition em caso de sucesso que simplesmente aparece uma caixa de alerta com a latitude e longitude capturados:

Inserindo este conjunto de códigos a seguir você irá obter a localização de um usuário utilizando o método displayPosition em caso de êxito aparecerá uma caixa de alerta com a latitude e longitude capturadas:
if (navigator.geolocation) {
    var timeoutVal = 10 * 1000 * 1000;    
    navigator.geolocation.getCurrentPosition(
        displayPosition, 
        displayError,
        { enableHighAccuracy: true, timeout: timeoutVal,maximumAge: 0 }
    );
}
else 
{
    alert("Geolocation is not supported by this browser");
}

function displayPosition(position) {
    alert("Latitude: " + position.coords.latitude + ", Longitude: " + position.coords.longitude);
}


O código acima também chama o DisplayError este método é utilizado quando tentamos buscar os dados do usuário. Esta simples função converte o código de erro retornado para uma mensagem apropriada:
function displayError(error) {
    var errors = { 
        1: 'Permission denied',
        2: 'Position unavailable',
        3: 'Request timeout'
    };
    alert("Error: " + errors[error.code]);
}


Conclusão
Esta é apenas uma simples introdução sobre uso da API de geolocalização e um de seus usos.
É claro que a API pode ser usada para mais do que simplesmente traçar uma posição em um mapa (apesar de que em si é bastante útil).A especificação em si oferece uma lista de potenciais casos de uso para a API, tais como:
  • Encontrar e traçar pontos de interesse para o usuário.
  • Coletar conteúdo com a localização e posição de um usuário em um mapa.
  • Turn-by-turn de navegação via - watchPosition.
  • Up-to-date informações locais - updates como você se move.


Resultado: Clique no seu navegador permitindo a usar sua posição para testar


Exemplos
Para ver em ação a geolocalização, eu coloquei um par de exemplos rápidos em que eu encorajo você a experimentá-lo por si mesmo.

Mais sobre: desenvolvimento, web, geolocalização
Share Tweet
DESTAQUESRecomendadoMais compartilhados
Comentários
AINDA NÃO SE INSCREVEU?

Vem ver os vídeos legais que
estamos produzindo no Youtube.