Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
A API geolocation permite que o usuário forneça sua localização a aplicativos web se ele desejar. Por questões de privacidade, o usuário é perguntado se permite fornecer informações de localização.
O aplicativo de geolocalização é utilizado através de um objeto filho chamado geolocation localizado dentro do objeto navigator. Se o objeto existe, os serviços de geolocalização estarão disponíveis. Você pode adicionalmente testar a presença da geolocalização:
Ao iniciar no Gecko 1.9.2 (Firefox 3.6), add-ons podem obter o objeto de geolocalização obtendo a referência para o serviço de geolocaliazação como se ve a seguir:
Para obter a localização atual do usuário, você pode utiliza o método getCurrentPosition(). Isto inicia uma requisição assíncrona para identificar a posição do usuário, e consulta o hardware de localização para conseguir informações atualizadas. Quando a posição é determinada, uma rotina específica de retorno é executada. Você pode opcionalmente gerar uma segunda rotina de retorno se um erro ocorrer. Um terceiro, e opcional, parâmetro é a interface "opções" onde você pode configurar o tempo máximo da posição recebida e o tempo a se esperar por uma solicitação.
Use getCurrentPosition() se você deseja uma única posição rapidamente, independente da precisão. Dispositivos com GPS, por exemplo, podem levar um minuto ou mais para conseguir a localização, e portanto dados menos precisos (localização do IP location ou rede wifi) podem retornar do método getCurrentPosition().
O exemplo acima irá fazer a função the do_something() executar quando a localização for obtida.
Se os dados de posição mudam (sejam pelo movimento do dispositivo ou se uma informação mais precisa for recebida), se pode configurar um retorno que é feito com esta informação de posição atual. Isto é feito usando a função watchPosition(), a qual tem os mesmos parâmetros de entrada da função getCurrentPosition(). Seu retorno é chamada múltiplas vezes, permitindo que o navegador ou atualize sua posição enquanto você se move, ou forneça uma localização mais precisa enquanto diferentes técnicas são usadas para localizar sua posição. O erro do retorno, o qual é opcional assim como no getCurrentPosition(), é chamado uma única vez, se nenhum resultado válido retornar.
O watchPosition() pode ser usado sem que não haja a chamada inicial de getCurrentPosition().
O método watchPosition() retorna um número de ID que pode ser usado para identificar a posição solicitada; você pode usar esse valor em conjunto com o método clearWatch(), parando a localização do usuário.
navigator.geolocation.clearWatch(watchID);watchPosition()retorna um callback sucesso e erro (como getCurrentPosition) e um objeto positionObjects, que pode ter três propriedades:
Segue uma chamada para watchPosition:
var wpid = navigator.geolocation.watchPosition(geo_success, geo_error, {enableHighAccuracy:true, maximumAge:30000, timeout:27000});Exemplo de watchPosition em uso: thedotproduct.org/posts/a-simple-example-of-navigatorgeolocationwatchposition
A localização do usuário é impressa usando o objeto Position, que tem os seguintes campos:
timestampMomento em que a leitura foi feita, como DOMTimeStamp.
coordsObjecto nsIDOMGeoPositionCoords indicando a localização.
addressnsIDOMGeoPositionAddress objeto especificando o endereço correspondente, se disponível.
Retornando o callback de erro, se fornecido, chamar getCurrentPosition() e watchPosition(), tem a seguinte assinatura:
function errorCallback(PositionError error);O PositionError tem a seguinte estrutura de campos:
codeUm código de erro numérico dos seguintes procedimentos:
UNKNOWN_ERROR (valor numérico 0)O processo de aquisição de localização falhou devido a um erro de qualquer outro código nesta interface.
PERMISSION_DENIED (valor numérico 1)O processo de aquisição da localização falhou porque a origem aplicativo não tem permissão para usar a API de Geolocalização.
POSITION_UNAVAILABLE (valor numérico 2)A posição do dispositivo não pôde ser determinada. Um ou mais provedores de localização utilizados no processo de aquisição local gerou um erro interno que falou o processo completamente.
TIMEOUT (numeric value 3)O comprimento máximo de tempo especificado.
messageUma mensagem de erro legível para uso em registros e depuração, mas não para exibir para o usuário.
| Internet Explorer | IE9 RC | --- |
| Firefox (Gecko) | 3.5 (1.9.1) | --- |
| Opera | 10.60 | --- |
| Safari | Chrome | WebKit | 5 | 5 | 533 | --- |
Qualquer add-on hospedado em addons.mozilla.org, que faz uso de dados de geolocalização, deve solicitar antes uma permissão. A função a seguir vai solicitar a permissão de um modo semelhante ao prompt. A resposta do usuário será salva no parâmetro pref. A função fornecida no parâmetro de callback será chamado com um valor booleano que indica a resposta do usuário. Se for true, o add-on poderá retornar dados de geolocalização.
This page was last modified on 17 de dez. de 2024 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.