--- title: Geolocation.watchPosition() slug: Web/API/Geolocation/watchPosition translation_of: Web/API/Geolocation/watchPosition ---

{{ APIref("Geolocation API") }}

O método Geolocation.watchPosition() é usado para registrar uma função manipuladora (handler function) que irá ser chamada automáticamente  cada vez que a posição no dispositivo mudar. Você pode, opcionalemnte, especificar uma função de retorno que manipulará qualquer erro.

Este método retorna um valor para o watch ID que pode ser usado para desregistrar o manipulador passando isto para o método {{domxref("Geolocation.clearWatch()")}}.

Síntaxe

id = navigator.geolocation.watchPosition(success, error, options)

Parâmetros

success
AUma função de retorno (callback) que pega um objeto {{domxref("Position")}} como parametro de entrada.  
error {{optional_inline}}
Uma função de retorno opcional que pega um objeto {{domxref("PositionError")}} como parametro de entrada.  
options {{optional_inline}}
Um objeto opcional {{domxref("PositionOptions")}}.

Exemplo

var id, target, options;

function success(pos) {
  var crd = pos.coords;

  if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
    console.log('Parabéns, você alcançou o destino');
    navigator.geolocation.clearWatch(id);
  }
}

function error(err) {
  console.warn('ERRO(' + err.code + '): ' + err.message);
}

target = {
  latitude : 0,
  longitude: 0
};

options = {
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0
};

id = navigator.geolocation.watchPosition(success, error, options);

Especificações

Especificação Estado Comentário
{{SpecName('Geolocation', '#watch-position', 'Geolocation.watchPosition()')}} {{Spec2('Geolocation')}} Especificação Inicial.

Compatibillidade de Navegadores

{{ CompatibilityTable() }}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suporte básico 5 {{CompatGeckoDesktop("1.9.1")}} 9 10.60
Removido no 15.0
Reintroduzido no 16.0
5
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suporte básico {{CompatUnknown()}} {{CompatUnknown()}} {{CompatGeckoMobile("4")}} {{CompatUnknown()}} 10.60 {{CompatUnknown()}}

 

Veja também