O TairGIS é uma estrutura de dados geoespacial no Tair (Enterprise Edition) que armazena e consulta formas geográficas, como pontos, linhas e polígonos. Ele oferece alto desempenho em cenários de alta concorrência, sendo ideal para aplicativos de serviços baseados em localização (LBS) em tempo real, como geofencing. Este tópico mostra como usar o TairGIS para criar uma geofence.
Como funciona
Uma geofence é um limite virtual em torno de uma área geográfica. O TairGIS usa o WKT (Well-Known Text), um padrão aberto para representar formas geométricas como strings de texto, para definir e consultar esses limites.
O TairGIS suporta três tipos de geometria WKT relevantes para geofencing:
|
Geometria |
Formato WKT |
Quando usar |
|
Ponto |
|
Localização do dispositivo por GPS |
|
Polígono |
|
Limite da geofence ou área de cobertura da estação base |
|
Linha |
|
Rota ou caminho |
O fluxo de trabalho principal do geofencing:
Para começar, defina o limite da geofence com o GIS.ADD usando um polígono WKT.
Obtenha a localização atual do dispositivo como um ponto ou polígono WKT.
Execute o GIS.CONTAINS para verificar se a localização está dentro da geofence.
Compare os resultados entre verificações sucessivas para detectar eventos de entrada e saída e, então, acione alertas.
Configurar uma geofence
Etapa 1: Adicione o limite da geofence
Use o GIS.ADD para armazenar uma área geográfica sob uma chave nomeada. No exemplo a seguir, insira o limite de uma escola como um polígono:
GIS.ADD test_app school_location 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'
Etapa 2: Verifique se um dispositivo está dentro da geofence
Use um dos métodos a seguir, dependendo de como você obtém a localização do dispositivo.
Localização baseada em GPS (ponto)
O GPS retorna uma coordenada precisa. Passe-a como um POINT WKT para o GIS.CONTAINS:
GIS.CONTAINS test_app 'POINT (40.086631 30.138141)'
O GIS.CONTAINS retorna os nomes de todas as geometrias armazenadas que contêm a forma especificada. Se o ponto estiver fora de todas as geometrias armazenadas, a resposta será um array vazio.
Localização baseada em operadora (polígono)
Ao usar dados de operadoras de telecomunicações, a localização informada pode ser um setor ou a área total de cobertura de uma estação base, em vez de um ponto preciso. Represente essa área de cobertura como um POLYGON WKT:
GIS.CONTAINS test_app 'POLYGON ((10 22, 30 45, 16 53, 10 22))'
Se o polígono de cobertura coincidir com school_location, a resposta incluirá school_location, o que indica que o dispositivo está dentro ou próximo à geofence.
Etapa 3: Detecte eventos de entrada e saída
O GIS.CONTAINS retorna um snapshot do estado atual. Execute-o repetidamente em intervalos fixos e compare os resultados consecutivos para detectar mudanças de estado:
|
Resultado anterior |
Resultado atual |
Evento |
Ação |
|
|
array vazio |
Dispositivo saiu da geofence |
Acione o alerta de saída |
|
array vazio |
|
Dispositivo entrou na geofence |
Acione a notificação de entrada |
Por exemplo, em um aplicativo de segurança escolar, consulte a localização do aluno em intervalos fixos. Quando o GIS.CONTAINS deixar de retornar school_location e passar a retornar um array vazio durante o horário monitorado, acione o alerta de saída.
Execute também os comandos GIS.WITHIN e GIS.INTERSECTS para verificar se um dispositivo está dentro de uma geofence. Para a referência completa de comandos, consulte Comandos do TairGIS .
Próximos passos
Explore a referência completa de comandos do TairGIS para operações geométricas adicionais.