Comece a rastrear com a Amazon Location - Amazon Location Service

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.

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ções DistanceBased, 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.

Console

Para criar um rastreador usando o console do Amazon Location

  1. Abra o console do Amazon Location Service em https://console.aws.amazon.com/location/.

  2. No painel de navegação à esquerda, selecione Rastreadores.

  3. Selecione Criar rastreador.

  4. Preencha os seguintes campos:

    • Nome: insira um nome exclusivo. Por exemplo, ExampleTracker. Máximo de 100 caracteres. Entradas válidas incluem caracteres alfanuméricos, hifens, pontos e sublinhados.

    • Descrição: Insira uma descrição opcional.

  5. Em Filtragem de posições, escolha a opção que melhor se adequa à forma como você pretende usar seu recurso de rastreador. Se você não definir Filtragem de posições, a configuração padrão será TimeBased. Para obter mais informações, consulte Saiba mais sobre rastreadores no Amazon Location Service neste guia e PositionFiltering na Referência de APIs para Rastreadores do Amazon Location Service.

  6. (Opcional) Em Tags, insira uma tag Chave e Valor. Isso adiciona uma tag à sua nova coleção de geocercas. Para obter mais informações, consulte Marcar seus recursos.

  7. (Opcional) Em Criptografia de chave gerenciada pelo cliente, você pode selecionar Adicionar uma chave gerenciada pelo cliente. Isso adiciona uma chave simétrica gerenciada pelo cliente criada e gerenciada por meio da criptografia de AWS propriedade padrão. Para obter mais informações, consulte Criptografia de dados em repouso.

  8. (Opcional) Em KMSKeyEnableGeospatialQueries, você pode optar por ativar Consultas geoespaciais. Isso permite que você use o atributo Bounding Polygon Queries e, ao mesmo tempo, criptografe seus dados usando uma chave gerenciada pelo KMS da AWS do cliente.

    nota

    Quando você usa o atributo Bounding Polygon Queries, a representação das suas posições dos dispositivos não é criptografada usando a chave gerenciada AWS KMS. No entanto, a posição exata do dispositivo é criptografada mesmo assim usando sua chave gerenciada.

  9. (Opcional) Em Configuração do EventBridge, você pode optar por ativar os eventos do EventBridge para atualizações de posição filtradas. Isso enviará um evento sempre que uma atualização de posição de um dispositivo nesse rastreador atender à avaliação de filtragem de posições.

  10. Selecione Criar rastreador.

API

Para criar um rastreador usando as APIs do Amazon Location

Use a operação CreateTracker das APIs do Amazon Location Trackers.

O exemplo a seguir usa uma solicitação de API para criar um rastreador chamado ExampleTracker. O recurso de rastreador está associado a uma chave gerenciada pelo cliente AWS KMSpara criptografar os dados do cliente e não permite atualizações de posição no EventBridge.

POST /tracking/v0/trackers Content-type: application/json { "TrackerName": "ExampleTracker", "Description": "string", "KmsKeyEnableGeospatialQueries": false, "EventBridgeEnabled": false, "KmsKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "PositionFiltering": "AccuracyBased", "Tags": { "string" : "string" } }

Crie um rastreador com KmsKeyEnableGeospatialQueries ativado

O exemplo a seguir tem o parâmetro KmsKeyEnableGeospatialQueries definido como verdadeiro. Isso permite que você use o atributo Bounding Polygon Queries e, ao mesmo tempo, criptografe seus dados usando uma chave gerenciada AWS KMS pelo cliente.

Para obter informações sobre como usar o atributo Bounding Polygon Queries, consulte Liste suas posições dos dispositivos

nota

Quando você usa o atributo Bounding Polygon Queries, a representação das suas posições dos dispositivos não é criptografada usando a chave gerenciada AWS KMS. No entanto, a posição exata do dispositivo é criptografada mesmo assim usando sua chave gerenciada.

POST /tracking/v0/trackers Content-type: application/json { "TrackerName": "ExampleTracker", "Description": "string", "KmsKeyEnableGeospatialQueries": true, "EventBridgeEnabled": false, "KmsKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "PositionFiltering": "AccuracyBased", "Tags": { "string" : "string" } }
AWS CLI

Para criar um rastreador usando comandos AWS CLI

Use o comando create-tracker.

O exemplo a seguir usa o AWS CLI para criar um rastreador chamado ExampleTracker. O recurso de rastreador está associado a uma chave gerenciada pelo cliente AWS KMSpara criptografar os dados do cliente e não permite atualizações de posição no EventBridge.

aws location \ create-tracker \ --tracker-name "ExampleTracker" \ --position-filtering "AccuracyBased" \ --event-bridge-enabled false \ --kms-key-enable-geospatial-queries false \ --kms-key-id "1234abcd-12ab-34cd-56ef-1234567890ab"

Crie um rastreador com KmsKeyEnableGeospatialQueries ativado

O exemplo a seguir tem o parâmetro KmsKeyEnableGeospatialQueries definido como verdadeiro. Isso permite que você use o atributo Bounding Polygon Queries e, ao mesmo tempo, criptografe seus dados usando uma chave gerenciada AWS KMS pelo cliente.

Para obter informações sobre como usar o atributo Bounding Polygon Queries, consulte Liste suas posições dos dispositivos

nota

Quando você usa o atributo Bounding Polygon Queries, a representação das suas posições dos dispositivos não é criptografada usando a chave gerenciada AWS KMS. No entanto, a posição exata do dispositivo é criptografada mesmo assim usando sua chave gerenciada.

aws location \ create-tracker \ --tracker-name "ExampleTracker" \ --position-filtering "AccuracyBased" \ --event-bridge-enabled false \ --kms-key-enable-geospatial-queries true \ --kms-key-id "1234abcd-12ab-34cd-56ef-1234567890ab"
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.

API

Para enviar uma atualização de posição usando as APIs do Amazon Location

Use a operação BatchUpdateDevicePosition das APIs do Amazon Location Trackers.

O exemplo a seguir usa uma solicitação de API para publicar a atualização da posição de um dispositivo para ExampleDevice em um rastreador ExampleTracker.

POST /tracking/v0/trackers/ExampleTracker/positions Content-type: application/json { "Updates": [ { "DeviceId": "1", "Position": [ -123.12245146162303, 49.27521118043802 ], "SampleTime": "2022-10-24T19:09:07.327Z", "PositionProperties": { "name" : "device1" }, "Accuracy": { "Horizontal": 10 } }, { "DeviceId": "2", "Position": [ -123.1230104928471, 49.27752402723152 ], "SampleTime": "2022-10-02T19:09:07.327Z" }, { "DeviceId": "3", "Position": [ -123.12325592118916, 49.27340530543111 ], "SampleTime": "2022-10-02T19:09:07.327Z" }, { "DeviceId": "4", "Position": [ -123.11958813096311, 49.27774641063121 ], "SampleTime": "2022-10-02T19:09:07.327Z" }, { "DeviceId": "5", "Position": [ -123.1277418058896, 49.2765989015285 ], "SampleTime": "2022-10-02T19:09:07.327Z" }, { "DeviceId": "6", "Position": [ -123.11964267059481, 49.274188155916534 ], "SampleTime": "2022-10-02T19:09:07.327Z" } ] }
AWS CLI

Para enviar uma atualização de posição usando comandos AWS CLI

Use o comando batch-update-device-position.

O exemplo a seguir usa um AWS CLI para publicar a atualização da posição de um dispositivo para ExampleDevice-1 e ExampleDevice-2 em um rastreador ExampleTracker.

aws location batch-update-device-position \ --tracker-name ExampleTracker \ --updates '[{"DeviceId":"ExampleDevice-1","Position":[-123.123,47.123],"SampleTime":"2021-11-30T21:47:25.149Z"},{"DeviceId":"ExampleDevice-2","Position":[-123.123,47.123],"SampleTime":"2021-11-30T21:47:25.149Z","Accuracy":{"Horizontal":10.30},"PositionProperties":{"field1":"value1","field2":"value2"}}]'

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.

API

Para obter o histórico de localização do dispositivo de um rastreador usando as APIs do Amazon Location

Use a operação GetDevicePositionHistory das APIs do Amazon Location Trackers.

O exemplo a seguir usa uma solicitação de URI de API para obter o histórico de localização do dispositivo de ExampleDevice de um rastreador chamado ExampleTracker começando em 19:05:07 (incluindo) e terminando em 19:20:07 (exclusivo) em 2020–10–02.

POST /tracking/v0/trackers/ExampleTracker/devices/ExampleDevice/list-positions Content-type: application/json { "StartTimeInclusive": "2020-10-02T19:05:07.327Z", "EndTimeExclusive": "2020-10-02T19:20:07.327Z" }
AWS CLI

Para obter o histórico de localização do dispositivo de um rastreador usando comandos AWS CLI

Use o comando get-device-position-history.

O exemplo a seguir usa um AWS CLI para obter o histórico de localização do dispositivo de ExampleDevice de um rastreador chamado ExampleTracker começando em 19:05:07 (incluindo) e terminando em 19:20:07 (exclusivo) em 2020–10–02.

aws location \ get-device-position-history \ --device-id "ExampleDevice" \ --start-time-inclusive "2020-10-02T19:05:07.327Z" \ --end-time-exclusive "2020-10-02T19:20:07.327Z" \ --tracker-name "ExampleTracker"

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.

API

Use a operação ListDevicePositions das APIs do Amazon Location Trackers.

O exemplo a seguir é uma solicitação de API para obter uma lista das posições dos dispositivos na área poligonal, usando o parâmetro opcional FilterGeometry. O exemplo retorna três localizações de dispositivos presentes na área definida pelo array Polygon.

POST /tracking/v0/trackers/TrackerName/list-positions HTTP/1.1 Content-type: application/json { "FilterGeometry": { "Polygon": [ [ [ -123.12003339442259, 49.27425121147397 ], [ -123.1176984148229, 49.277063620879744 ], [ -123.12389509145294, 49.277954183760926 ], [ -123.12755921328647, 49.27554025235713 ], [ -123.12330236586217, 49.27211836076236 ], [ -123.12003339442259, 49.27425121147397 ] ] ] }, "MaxResults": 3, "NextToken": "1234-5678-9012" }

Este é um exemplo de resposta para ListDevicePositions:

{ "Entries": [ { "DeviceId": "1", "SampleTime": "2022-10-24T19:09:07.327Z", "Position": [ -123.12245146162303, 49.27521118043802 ], "Accuracy": { "Horizontal": 10 }, "PositionProperties": { "name": "device1" } }, { "DeviceId": "3", "SampleTime": "2022-10-02T19:09:07.327Z", "Position": [ -123.12325592118916, 49.27340530543111 ] }, { "DeviceId": "2", "SampleTime": "2022-10-02T19:09:07.327Z", "Position": [ -123.1230104928471, 49.27752402723152 ] } ], "NextToken": "1234-5678-9012" }
CLI

Use o comando list-trackers.

O exemplo a seguir é um AWS CLI para obter uma lista de dispositivos em uma área poligonal.

aws location list-device-positions TODO: add arguments add props for filter geo