Obtém de forma contínua informações de localização do dispositivo móvel, detectada em um intervalo de tempo definido. Para interromper a obtenção contínua da localização utilize o bloco Parar Observador de Posição. Esse bloco necessita que a configuração de localização do dispositivo móvel esteja ativada.


Figura 1 - Bloco Observar Posição


Utilize o bloco Obter Georreferenciamento para obter essas informações uma única vez.

Obs:

A localização de dispositivos móveis pode ser obtida com base em diversas fontes, como por exemplo: Sistema de Posicionamento Global (GPS), localização inferida a partir de sinais de rede como endereço IP, RFID e WiFi. Não há garantia de que a função irá retornar a localização real do dispositivo.

Atenção

A coleta e uso de dados de geolocalização pode apresentar importantes problemas de privacidade. A política de privacidade da aplicação criada com essa função deve analisar a forma de uso dos dados de geolocalização, seja na forma de compartilhamento da informação ou em relação ao nível de precisão dos dados.

Compatibilidade

  • Bloco cliente mobile: cronapi.cordova.geolocation.watchPosition()

Retorno

Retorna um valor string contendo um ID que representa a mudança de posição observada. Esse ID pode ser utilizado como parâmetro do bloco Parar Observador de Posição para fazer com que a contínua observação da posição do dispositivo seja interrompida.

Parâmetros

Sucesso

Caso a geolocalização seja obtida com sucesso, o fluxo de execução é direcionado para os comandos contidos no parâmetro Sucesso, atribuindo a variável definida neste parâmetro um objeto contendo a localização geográfica do dispositivo.

  • Posição: 1
  • Inglês: Success
  • Tipo: Comando com retorno ("item") / Command with return ("item")
  • Exemplo: é possível utilizar um bloco de programação Exibir Notificação para exibir uma mensagem.

Erro

Caso a obtenção da geolocalização seja mal sucedida, os comandos em Erro são executados.

  • Posição: 2
  • Inglês: Error
  • Tipo: Comando com retorno ("item") / Command with return ("item")
  • Exemplo: é possível utilizar um bloco de programação Exibir Notificação para exibir uma mensagem.

Tempo Máximo 

Parâmetro opcional. Aceita uma posição armazenada em cache cujo tempo não seja maior do que o tempo especificado em milissegundos.

  • Posição: 3
  • Inglês: Maximum Age
  • Tipo: Inteiro / Integer 
  • Exemplo: 3000

Intervalo

Parâmetro opcional. Período máximo de tempo, em milissegundos, para que a localização atual do dispositivo seja atualizada.

  • Posição: 4
  • Inglês: Time Out
  • Tipo: Inteiro / Integer 
  • Exemplo: 5000

Habilitar Alta Precisão

Parâmetro opcional. Por padrão, o dispositivo tenta recuperar uma posição usando métodos baseados em rede. Definir esta propriedade como verdadeira diz a função para usar métodos mais precisos, como o posicionamento via satélite. Neste parâmetro pode ser utilizado o bloco de valor booleano.

  • Posição: 5
  • Inglês: Enable High Accuracy
  • Tipo: Boleano / Boolean 
  • Exemplo: "verdadeiro"

Características do bloco

A função Observar Posição retorna um objeto JSON contendo propriedades relacionadas as coordenadas geográficas do dispositivo. Utilize o bloco Obter Propriedade para obter os atributos do objeto:

  • coords.latitude: distância de qualquer ponto da terra em relação ao Equador, medida em grau (Número).
  • coords.longitude: distância de qualquer ponto da terra em relação ao meridiano de Greenwich, medida em grau (Número). 
  • coords.altitude: distância vertical medida entre um ponto e uma uma superfície de referência, geralmente o nível médio do mar (Número).
  • coords.accuracy: nível de precisão das coordenadas de latitude e longitude em metros (Número).
  • coords.altitudeAccuracy: nível de precisão da coordenada de altitude em metros (Número). Esta propriedade não é suportada por dispositivos Android, ela sempre retornará nulo. 
  • coords.heading: direção de viagem, especificada em graus contada no sentido horário em relação ao norte verdadeiro (Número).
  • coords.speed: velocidade atual do dispositivo no solo, especificada em metros por segundo (Número).
  • timestamp: carimbo de data/hora que indica quando as informações de localização foram obtidas (Número).

Exemplo

A função abaixo em destaque obtém do dispositivo a localização geográfica a cada 5000 milissegundos. Essa localização é obtida através de métodos mais precisos já que o parâmetro "Habilitar Alta Precisão" recebe o valor booleando Verdadeiro. Essas coordenadas geográficas são atribuídas a variável item, que passa a ter todas as propriedades contidas no objeto retornado pela função e que podem ser utilizadas pela aplicação, como por exemplo "coords.latitude" e "coords.longitude".



Figura 2 - Função que exibe a latitude e longitude de uma posição 


O teste abaixo foi feito em sistema Android. Veja mais detalhes de como compilar aplicações para Android e iOS no tópico "Exportar e compilar projetos" na documentação Desenvolvimento mobile.


O resultado da execução da figura 2 pode ser observado abaixo. Inicialmente o aplicativo solicitará permissão de localização do dispositivo, para, em seguida, exibir as coordenadas.


Figura 2.1 - Solicitação de permissão para localização do dispositivo 


Após escolher entre as duas primeiras opções (figura 2.1), o resultado será exibido, confira na figura 2.2.


Figura 2.2 - Resultado da execução da função da figura 2


Nesta página