Comece a rastrear com a Amazon Location
Esta seção orienta você na criação de um aplicativo de rastreamento que captura a localização dos dispositivos.
Tópicos
Criar um rastreador
Crie um recurso de rastreador para armazenar e processar as atualizações de posição de seus dispositivos. Você pode usar o console do Amazon Location Service, o AWS CLI, ou as APIs do Amazon Location.
Cada atualização de posição armazenada em seus recursos de rastreador pode incluir uma medida da precisão da posição e até três campos de metadados sobre a posição ou o dispositivo que você deseja armazenar. Os metadados são armazenados como pares chave-valor e podem armazenar informações como velocidade, direção, pressão dos pneus ou temperatura do motor.
Os rastreadores filtram as atualizações de posição à medida que elas são recebidas. Isso reduz o ruído visual nos caminhos do dispositivo (chamado de instabilidade) e reduz o número de eventos falsos de entrada e saída da geocerca. Isso também ajuda a gerenciar custos, reduzindo o número de avaliações iniciadas de geocercas.
Os rastreadores oferecem três opções de filtragem de posições para ajudar a gerenciar custos e reduzir a instabilidade nas atualizações de localização.
-
Baseado na precisão: use com qualquer dispositivo que forneça uma medição de precisão. A maioria dos dispositivos móveis fornece essas informações. A precisão de cada medição de posição é afetada por muitos fatores ambientais, incluindo a recepção do satélite de GPS, a paisagem e a proximidade a dispositivos Wi-Fi e Bluetooth. A maioria dos dispositivos, incluindo a maioria dos dispositivos móveis, pode fornecer uma estimativa da precisão da medição junto com a medição. Com a filtragem
AccuracyBased
, o Amazon Location ignora atualizações de localização se o dispositivo tiver se movido menos em relação à precisão medida. Por exemplo, se duas atualizações consecutivas de um dispositivo tiverem uma faixa de precisão de 5 m e 10 m, o Amazon Location ignora a segunda atualização se o dispositivo tiver se movido menos de 15 m. O Amazon Location não avalia nem armazena as atualizações ignoradas em relação a geocercas.Quando a precisão não é fornecida, ela é tratada como zero, a medição é considerada perfeitamente precisa.
nota
Você também pode usar a filtragem baseada em precisão para remover toda a filtragem. Se você selecionar a filtragem com base na precisão, mas substituir todos os dados de precisão para zero ou omitir totalmente a precisão, o Amazon Location não filtrará nenhuma atualização.
-
Baseada na distância: use quando seus dispositivos não fornecem uma medição precisa, mas você quer aproveitar a filtragem para reduzir a instabilidade e gerenciar os custos mesmo assim. A filtragem
DistanceBased
ignora as atualizações de localização nas quais os dispositivos se moveram menos de 30 m (98,4 pés). Quando você usa a filtragem de posiçõesDistanceBased
, o Amazon Location não avalia nem armazena essas atualizações ignoradas em relação a geocercas.A precisão da maioria dos dispositivos móveis, incluindo a precisão média dos dispositivos iOS e Android, é de cerca de 15 m. Na maioria dos aplicativos, a filtragem
DistanceBased
pode reduzir o efeito das imprecisões de localização ao exibir a trajetória do dispositivo em um mapa e o efeito de vai e vem de vários eventos consecutivos de entrada e saída quando os dispositivos estão próximos à borda de uma geocerca. Ela também pode ajudar a reduzir o custo do seu aplicativo, fazendo menos chamadas para avaliar as geocercas vinculadas ou recuperar as posições dos dispositivos. -
Baseada no tempo: (padrão) use quando seus dispositivos enviam atualizações de posição com muita frequência (mais de uma vez a cada 30 segundos) e você deseja obter as avaliações da geocerca em tempo quase real sem armazenar todas as atualizações.Na filtragem
TimeBased
, cada atualização de localização é avaliada em relação a coleções de geocercas vinculadas, mas nem todas as atualizações de localização são armazenadas. Se a frequência de atualização for superior a 30 segundos, apenas uma atualização a cada 30 segundos será armazenada para cada ID de dispositivo exclusivo.
nota
Esteja atento aos custos do seu aplicativo de rastreamento ao decidir seu método de filtragem e a frequência das atualizações de posição. Você é cobrado por cada atualização de localização e uma vez para avaliar a atualização de posição em relação a cada coleção de geocercas vinculada. Por exemplo, ao usar a filtragem baseada no tempo, se seu rastreador estiver vinculado a duas coleções de geocercas, cada atualização de posição contará como uma solicitação de atualização de localização e duas avaliações da coleção de geocercas. Se você estiver registrando atualizações de posição a cada cinco segundos para seus dispositivos e usando a filtragem com base no tempo, você será cobrado por 720 atualizações de localização e 1.440 avaliações da geocerca por hora para cada dispositivo.
Sua fatura não é afetada pelo número de geocercas em cada coleção. Como cada coleção de geocercas pode conter até 50 mil geocercas, convém combinar suas geocercas em menos coleções, sempre que possível, para reduzir o custo das avaliações das geocercas.
Por padrão, você receberá eventos do EventBridge sempre que um dispositivo rastreado entrar ou sair de uma geocerca vinculada. Para ter mais informações, consulte Tutorial: vincule um rastreador a uma coleção de geocercas na Amazon Location.
Você pode ativar eventos para todas as atualizações de posição filtradas para um recurso de rastreador. Para ter mais informações, consulte Ativar eventos de atualização para um rastreador.
nota
Se você deseja criptografar seus dados usando sua própria chave gerenciada pelo cliente AWS KMS, o atributo Bounding Polygon Queries (solicitações do polígono limítrofe) será desativado por padrão. Isso ocorre porque, ao usar esse atributo, a representação das suas posições dos dispositivos não será criptografada usando sua chave gerenciada AWS KMS. No entanto, a posição exata do dispositivo é criptografada mesmo assim usando sua chave gerenciada.
Você pode optar por ativar o atributo Bounding Polygon Queries definindo o parâmetro KmsKeyEnableGeospatialQueries
como verdadeiro ao criar ou atualizar um rastreador.
nota
O faturamento depende do seu uso. Você pode incorrer em taxas pelo uso de outros serviços da AWS. Para obter mais informações, consulte os preços do Amazon Location Service
Você pode editar a Descrição, a Filtragem de posições e a Configuração do EventBridge após a criação do rastreador, selecionando Editar rastreador.
Autenticando suas solicitações
Depois de criar um recurso de rastreador e estiver pronto para começar a avaliar as posições dos dispositivos em relação às geocercas, escolha como autenticar suas solicitações:
-
Para explorar as formas para acessar os serviços, consulte Acessando o Amazon Location Service.
-
Se você quiser publicar as posições de dispositivos com solicitações não autenticadas, talvez você deva usar o Amazon Cognito.
Exemplo
O exemplo a seguir mostra o uso de um banco de identidades do Amazon Cognito para autorização, usando do JavaScript do SDK da AWS v3
e o Amazon Location Auxiliar de autenticação em JavaScript. import { LocationClient, BatchUpdateDevicePositionCommand } from "@aws-sdk/client-location"; import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper"; // Unauthenticated identity pool you created const identityPoolId = "
us-east-1:1234abcd-5678-9012-abcd-sample-id
"; // Create an authentication helper instance using credentials from Cognito const authHelper = await withIdentityPoolId(identityPoolId); const client = new LocationClient({ region: "us-east-1
", // The region containing both the identity pool and tracker resource ...authHelper.getLocationClientConfig(), // Provides configuration required to make requests to Amazon Location }); const input = { TrackerName: "ExampleTracker
", Updates: [ { DeviceId: "ExampleDevice-1
", Position: [-123.4567, 45.6789], SampleTime: new Date("2020-10-02T19:09:07.327Z"), }, { DeviceId: "ExampleDevice-2
", Position: [-123.123, 45.123], SampleTime: new Date("2020-10-02T19:10:32Z"), }, ], }; const command = new BatchUpdateDevicePositionCommand(input); // Send device position updates const response = await client.send(command);
Atualize seu rastreador com a posição de um dispositivo
Para rastrear seus dispositivos, você pode publicar atualizações das posições dos dispositivos em seu rastreador. Posteriormente, você pode recuperar essas posições dos dispositivos ou o histórico das posições do dispositivo a partir do seu recurso de rastreador.
Cada atualização de posição deve incluir a ID do dispositivo, um carimbo de data e hora e uma posição. Opcionalmente, você pode incluir outros metadados, incluindo a precisão e até três pares chave-valor para seu próprio uso.
Se o seu rastreador estiver vinculado a uma ou mais coleções de geocercas, as atualizações serão avaliadas em relação a essas geocercas (seguindo as regras de filtragem que você especificou para o rastreador). Se um dispositivo violar uma área geocercada (movendo-se de dentro para fora da área ou vice-versa), você receberá eventos no EventBridge. Esses ENTER
ou EXIT
eventos incluem os detalhes da atualização da posição, incluindo a ID do dispositivo, o timestamp e quaisquer metadados associados.
nota
Para obter mais informações sobre a filtragem de posições, consulte Criar um rastreador.
Para obter mais informações sobre os eventos das geocercas, consulte Reagindo aos eventos do Amazon Location Service com o Amazon EventBridge.
Use um desses métodos para enviar atualizações do dispositivo:
-
Envie atualizações do MQTT para um recurso do AWS IoT Core e vincule-o ao seu recurso de rastreador.
-
Envie atualizações de localização usando a API do Amazon Location Trackers, usando a AWS CLI, ou as APIs do Amazon Location. Você pode usar os SDKs AWS para chamar as APIs do seu aplicativo iOS ou Android.
Obtenha o histórico de localização de um dispositivo a partir de um rastreador
Seu recurso de rastreador do Amazon Location guarda o histórico de localização de todos os seus dispositivos rastreados por um período de 30 dias. Você pode recuperar o histórico de localização do dispositivo, incluindo todos os metadados associados, do seu recurso de rastreador. Os exemplos a seguir usam a AWS CLI ou as APIs do Amazon Location.
Liste suas posições dos dispositivos
Você pode visualizar uma lista das posições dos dispositivos de um rastreador usando as AWS CLI ou as APIs do Amazon Location com a API ListDevicePositions. Quando você chama a API ListDevicePositions, uma lista das posições mais recentes de todos os dispositivos associados a um determinado rastreador é retornada. Por padrão, essa API retorna as 100 posições mais recentes do dispositivo por página de resultados para um determinado rastreador. Para retornar somente os dispositivos que estão dentro de uma região específica, use o parâmetro FilterGeometry
para criar uma Bounding Polygon Query (solicitação do polígono limítrofe). Dessa forma, quando você chama a ListDevicePositions, somente os dispositivos que estão dentro do polígono serão retornados.
nota
Se você deseja criptografar seus dados usando sua própria chave gerenciada pelo cliente AWS KMS, o atributo Bounding Polygon Queries (solicitações do polígono limítrofe) será desativado por padrão. Isso ocorre porque, ao usar esse atributo, a representação das suas posições dos dispositivos não será criptografada usando a chave gerenciada AWS KMS. A posição exata do dispositivo é criptografada mesmo assim usando sua chave gerenciada.
Você pode optar por ativar o atributo Bounding Polygon Queries. Isso é feito definindo o parâmetro KmsKeyEnableGeospatialQueries
como verdadeiro ao criar ou atualizar um rastreador.