- Created by Fábio Duarte Freitas, last modified by Igor Andrade on 31/08/2023
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
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