Comenzar el rastreo - Amazon Location Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Comenzar el rastreo

Esta sección le guía a través de la creación de una aplicación de rastreo que captura las ubicaciones de los dispositivos.

Crear un rastreador

Cree un recurso de rastreador para almacenar y procesar las actualizaciones de posición de sus dispositivos. Puedes usar la consola de Amazon Location Service AWS CLI, o Amazon LocationAPIs.

Cada actualización de posición almacenada en los recursos de su rastreador puede incluir una medida de la precisión de la posición y hasta tres campos de metadatos sobre la posición o el dispositivo que desee almacenar. Los metadatos se almacenan como pares clave-valor y pueden almacenar información como la velocidad, la dirección, la presión de los neumáticos o la temperatura del motor.

Los rastreadores filtran las actualizaciones de posición a medida que se reciben. Esto reduce el ruido visual en las rutas de los dispositivos (lo que se denomina fluctuación) y reduce el número de eventos de entrada y salida falsos de la geocerca. Esto también ayuda a administrar los costos al reducir la cantidad de evaluaciones de geocercas iniciadas.

Los rastreadores ofrecen tres opciones de filtrado de posición para ayudar a gestionar los costos y reducir las interrupciones en las actualizaciones de ubicación.

  • Basado en la precisión: utilícelo con cualquier dispositivo que proporcione una medición de la precisión. La mayoría de los dispositivos móviles proporcionan esta información. La precisión de cada medición de posición se ve afectada por muchos factores ambientales, como la recepción del GPS satélite, el paisaje y la proximidad de los dispositivos Wi-Fi y Bluetooth. La mayoría de los dispositivos, incluidos la mayoría de los dispositivos móviles, pueden proporcionar una estimación de la precisión de la medición junto con la medición. Mediante el filtrado AccuracyBased, Amazon Location ignora las actualizaciones de ubicación si el dispositivo se ha movido menos de la precisión medida. Por ejemplo, si dos actualizaciones consecutivas de un dispositivo tienen un rango de precisión de 5 m y 10 m, Amazon Location ignora la segunda actualización si el dispositivo se ha movido menos de 15 m. Amazon Location no evalúa las actualizaciones ignoradas comparándolas con las geocercas ni las almacena.

    Si no se proporciona la precisión, se trata como cero y la medición se considera perfectamente precisa.

    nota

    También puede utilizar un filtrado basado en la precisión para eliminar todos los filtros. Si selecciona un filtrado basado en la precisión, pero sobrescribe todos los datos de precisión a cero u omite la precisión por completo, Amazon Location no filtrará ninguna actualización.

  • Basado en la distancia: utilícelo cuando sus dispositivos no proporcionen una medición precisa, pero aun así desee aprovechar las ventajas del filtrado para reducir las fluctuaciones y gestionar los costos. El filtrado DistanceBased ignora las actualizaciones de ubicación en las que los dispositivos se han movido menos de 30 m (98,4 pies). Cuando utiliza el filtrado de posición DistanceBased, Amazon Location no evalúa estas actualizaciones ignoradas comparándolas con las geocercas ni las almacena.

    La precisión de la mayoría de los dispositivos móviles, incluida la precisión media de los dispositivos iOS y Android, está dentro de los 15 m. En la mayoría de las aplicaciones, el filtrado DistanceBased puede reducir el efecto de las imprecisiones de ubicación al mostrar la trayectoria del dispositivo en un mapa, y el efecto rebote de varios eventos consecutivos de entrada y salida cuando los dispositivos se encuentran cerca del borde de una geocerca. También puede ayudar a reducir el coste de la aplicación, ya que realiza menos llamadas para evaluar las geocercas asociadas o recuperar la posición de los dispositivos.

  • Basado en el tiempo: (predeterminado) úselo cuando sus dispositivos envíen actualizaciones de posición con mucha frecuencia (más de una vez cada 30 segundos) y desee realizar evaluaciones de la geocerca prácticamente en tiempo real sin almacenar todas las actualizaciones.Durante el filtrado TimeBased, las actualizaciones de ubicación se evalúan con las recopilaciones de geocercas asociadas, pero no se almacenan todas las actualizaciones de ubicación. Si la frecuencia de actualización es superior a 30 segundos, solo se almacenará una actualización cada 30 segundos por cada ID de dispositivo único.

nota

Tenga en cuenta los costos de su aplicación de rastreo a la hora de decidir el método de filtrado y la frecuencia de las actualizaciones de posición. Se le facturará por cada actualización de ubicación y una vez por la evaluación de la actualización de posición con respecto a cada colección de geocercas vinculadas. Por ejemplo, si utiliza un filtrado basado en el tiempo, si su rastreador está vinculado a dos colecciones de geocercas, cada actualización de posición contará como una solicitud de actualización de ubicación y dos evaluaciones de la colección de geocercas. Si informa de las actualizaciones de posición de sus dispositivos cada 5 segundos y utiliza un filtrado basado en el tiempo, se le facturarán 720 actualizaciones de ubicación y 1440 evaluaciones de geocercas por hora para cada dispositivo.

La cantidad de geocercas de cada colección no afecta a su factura. Dado que cada colección de geocercas puede contener hasta 50 000 geocercas, tal vez desee combinar sus geocercas en un menor número de colecciones, siempre que sea posible, para reducir el costo de las evaluaciones de las geocercas.

De forma predeterminada, recibirá EventBridge los eventos cada vez que un dispositivo rastreado entre o salga de una geocerca vinculada. Para obtener más información, consulte Vincular un rastreador a una colección de geocercas.

Puede activar los eventos para todas las actualizaciones de posición filtradas de un recurso de rastreo. Para obtener más información, consulte Habilitar los eventos de actualización para un rastreador.

nota

Si deseas cifrar tus datos con tu propia clave gestionada por el AWS KMS cliente, la función de consultas a polígonos delimitadores estará desactivada de forma predeterminada. Esto se debe a que, al utilizar esta función de consultas de polígonos delimitadores, una representación de las posiciones de los dispositivos no se cifrará con la clave gestionada. AWS KMS Sin embargo, la posición exacta del dispositivo se sigue cifrando con la clave gestionada.

Puede optar por activar la característica de consultas de polígonos delimitadores configurando el parámetro KmsKeyEnableGeospatialQueries en «verdadero» al crear o actualizar un rastreador.

Console

Para crear un rastreador mediante la consola de Amazon Location

  1. Abre la consola de Amazon Location Service en https://console.aws.amazon.com/location/.

  2. En el panel de navegación izquierdo, elija Rastreadores.

  3. Seleccione Crear rastreador.

  4. Cumplimente los siguientes campos:

    • Nombre: escriba un nombre único. Por ejemplo: ExampleTracker. Máximo 100 caracteres. Entre las entradas válidas se incluyen caracteres alfanuméricos, guiones, puntos y guiones bajos.

    • Descripción: escriba una descripción opcional.

  5. En Filtrado de posición, elija la opción que mejor se adapte a la forma en que piensa utilizar el recurso de rastreo. Si no configura el Filtrado de posición, el ajuste predeterminado es TimeBased. Para obtener más información, consulta Rastreadores esta guía y la API referencia PositionFiltering de rastreadores de Amazon Location Service.

  6. (Opcional) En Etiquetas, escriba una clave y un valor de etiqueta. Esto añade una etiqueta a su nueva colección de geocercas. Para obtener más información, consulte Etiquetado de los recursos.

  7. (Opcional) En Cifrado de claves gestionadas por el cliente, puede optar por agregar una clave gestionada por el cliente. Esto añade una clave simétrica gestionada por el cliente que usted crea, posee y administra mediante el cifrado de AWS propiedad predeterminada. Para obtener más información, consulte Cifrado de datos en reposo.

  8. (Opcional) En KmsKeyEnableGeospatialQueries, puede optar por habilitar las consultas geoespaciales. Esto le permite utilizar la función de consultas de polígonos delimitadores y, al mismo tiempo, cifrar los datos con una clave gestionada por el cliente. AWS KMS

    nota

    Cuando utiliza la característica Consultas de polígonos delimitadores, no se cifra una representación de las posiciones de sus dispositivos con su clave gestionada de AWS KMS . Sin embargo, la posición exacta del dispositivo se sigue cifrando con la clave gestionada.

  9. (Opcional) En la EventBridge configuración, puede optar por habilitar los EventBridge eventos para las actualizaciones de posición filtradas. Esto enviará un evento cada vez que una actualización de posición de un dispositivo de este rastreador cumpla con la evaluación del filtrado de posición.

  10. Seleccione Crear rastreador.

API

Para crear un rastreador mediante la ubicación de Amazon APIs

Usa la CreateTracker operación de Amazon Location Trackers. APIs

En el siguiente ejemplo, se utiliza una API solicitud para crear un rastreador llamado ExampleTracker. El recurso de seguimiento está asociado a una AWS KMS clave gestionada por el cliente para cifrar los datos del cliente y no permite la entrada de actualizaciones de posición. 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" } }

Crear un rastreador con la opción KmsKeyEnableGeospatialQueries activada

El siguiente ejemplo tiene el parámetro KmsKeyEnableGeospatialQueries establecido en «verdadero». Esto le permite utilizar la función de consultas de polígonos delimitadores y, al mismo tiempo, cifrar los datos con una clave gestionada por el cliente. AWS KMS

Para obtener información sobre el uso de la característica Consultas de polígonos delimitadores, consulte

nota

Al utilizar la función de consultas de polígonos delimitadores, no se cifra una representación de las posiciones de los dispositivos con la clave gestionada. AWS KMS Sin embargo, la posición exacta del dispositivo se sigue cifrando con la clave gestionada.

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 crear un rastreador mediante comandos de AWS CLI

Utilice el comando create-tracker.

En el siguiente ejemplo, se utiliza AWS CLI para crear un rastreador llamado ExampleTracker. El recurso de seguimiento está asociado a una AWS KMS clave gestionada por el cliente para cifrar los datos del cliente y no permite la entrada de actualizaciones de posición. 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"

Crear un rastreador con la opción KmsKeyEnableGeospatialQueries activada

El siguiente ejemplo tiene el parámetro KmsKeyEnableGeospatialQueries establecido en «verdadero». Esto le permite utilizar la función de consultas de polígonos delimitadores y, al mismo tiempo, cifrar los datos con una clave gestionada por el cliente. AWS KMS

Para obtener información sobre el uso de la característica Consultas de polígonos delimitadores, consulte

nota

Al utilizar la función de consultas de polígonos delimitadores, no se cifra una representación de las posiciones de los dispositivos con la clave gestionada. AWS KMS Sin embargo, la posición exacta del dispositivo se sigue cifrando con la clave gestionada.

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

La facturación depende del uso. Puede incurrir en cargos por el uso de otros servicios de AWS . Para obtener más información, consulte los precios de Amazon Location Service.

Puede editar la descripción, el filtrado de posición y la EventBridge configuración una vez creado el rastreador seleccionando Editar rastreador.

Autenticación de sus solicitudes

Una vez que haya creado un recurso de rastreo y esté listo para empezar a evaluar las posiciones de los dispositivos comparándolas con las geocercas, elija cómo autenticaría sus solicitudes:

  • Para explorar las formas en las que puede acceder a los servicios, consulte Cómo acceder a Amazon Location Service.

  • Si desea publicar las posiciones de los dispositivos con solicitudes no autenticadas, puede utilizar Amazon Cognito.

    Ejemplo

    El siguiente ejemplo muestra el uso de un grupo de identidades de Amazon Cognito para la autorización, utilizando la AWS JavaScript SDKversión 3 y la ubicación de Amazon. JavaScript Ayudante de autenticación

    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);

Actualizar el rastreador con la posición del dispositivo

Para rastrear sus dispositivos, puede publicar actualizaciones de la posición del dispositivo en su rastreador. Más adelante, puede recuperar estas posiciones de los dispositivos o el historial de posiciones del dispositivo desde su recurso de rastreador.

Cada actualización de posición debe incluir el ID del dispositivo, una marca de tiempo y una posición. Si lo desea, puede incluir otros metadatos, como la precisión y hasta 3 pares clave-valor para su propio uso.

Si su rastreador está asociado a una o más colecciones de geocercas, las actualizaciones se evaluarán en función de esas geocercas (siguiendo las reglas de filtrado que especificó para el rastreador). Si un dispositivo entra en un área geovallada (al moverse desde el interior del área hacia el exterior o viceversa), recibirá los eventos en su interior. EventBridge Estos eventos ENTER o EXIT incluyen los detalles de la actualización de la posición, como el ID del dispositivo, la marca de tiempo y cualquier metadato asociado.

nota

Para obtener más información sobre cómo filtrar posiciones, consulte Crear un rastreador.

Para obtener más información sobre los eventos de geocercas, consulte Cómo reaccionar a los eventos de Amazon Location Service con Amazon EventBridge.

Use uno de estos métodos para enviar las actualizaciones del dispositivo:

  • Envía MQTT actualizaciones a un recurso básico de AWS IoT y vincúlalo a tu recurso de seguimiento.

  • Envía actualizaciones de ubicación mediante los rastreadores de ubicaciones de AmazonAPI, mediante la AWS CLI ubicación APIs de Amazon o Amazon. Puedes usar el AWS SDKspara llamar APIs desde tu aplicación iOS o Android.

API

Para enviar una actualización de posición a través de la sucursal de Amazon APIs

Usa la BatchUpdateDevicePosition operación de Amazon Location Trackers. APIs

En el siguiente ejemplo, se utiliza una API solicitud para publicar una actualización de la posición del dispositivo para ExampleDevice a un 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 una actualización de posición mediante comandos de AWS CLI

Utilice el comando batch-update-device-position.

En el siguiente ejemplo, se utiliza una AWS CLI para publicar una actualización de la posición del dispositivo para ExampleDevice-1 y ExampleDevice-2 a un 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"}}]'

Obtener el historial de ubicaciones de un dispositivo a partir de un rastreador

Su recurso de rastreador de ubicaciones de Amazon conserva el historial de ubicaciones de todos tus dispositivos rastreados durante un período de 30 días. Puedes recuperar el historial de ubicaciones del dispositivo, incluidos todos los metadatos asociados, desde su recurso de rastreador. En los siguientes ejemplos se utiliza AWS CLI la ubicación de Amazon o AmazonAPIs.

API

Para obtener el historial de ubicaciones del dispositivo desde un rastreador utilizando Amazon Location APIs

Usa la GetDevicePositionHistory operación de Amazon Location Trackers. APIs

En el siguiente ejemplo, se utiliza una API URI solicitud para obtener el historial de ubicaciones del dispositivo de ExampleDevice desde un rastreador llamado ExampleTracker empezando desde 19:05:07 (incluido) y terminando 19:20:07 (exclusivo) en adelante2020–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 obtener el historial de ubicaciones del dispositivo desde un rastreador mediante AWS CLI comandos

Utilice el comando get-device-position-history.

En el siguiente ejemplo, se utiliza un AWS CLI para obtener el historial de ubicaciones del dispositivo de ExampleDevice desde un rastreador llamado ExampleTracker empezando desde 19:05:07 (incluido) y terminando 19:20:07 (exclusivo) en adelante2020–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"

Enumerar las posiciones de sus dispositivos

Puedes ver una lista de las posiciones de los dispositivos de un rastreador utilizando el AWS CLI, o la ubicación de AmazonAPIs, con el ListDevicePositions API. Al llamar al ListDevicePositions API, aparece una lista de las últimas posiciones de todos los dispositivos asociados a un rastreador determinado. De forma predeterminada, API devuelve 100 de las últimas posiciones de los dispositivos por página de resultados de un rastreador determinado. Para devolver solo los dispositivos de una región específica, use el parámetro FilterGeometry para crear una consulta de polígonos delimitadores. De esta forma, cuando llames ListDevicePositions, solo se devolverán los dispositivos que se encuentren dentro del polígono.

nota

Si deseas cifrar tus datos con tu propia clave gestionada por el AWS KMS cliente, la función de consultas a polígonos delimitadores estará desactivada de forma predeterminada. Esto se debe a que, al utilizar esta función, una representación de las posiciones de sus dispositivos no se cifrará con la clave gestionada. AWS KMS Sin embargo, la posición exacta del dispositivo sigue cifrada con su clave gestionada.

Puede optar por activar la característica Consultas de polígonos delimitadores. Esto se hace configurando el parámetro KmsKeyEnableGeospatialQueries en «verdadero» al crear o actualizar un rastreador.

API

Usa la ListDevicePositions operación de Amazon Location Trackers. APIs

El siguiente ejemplo es una API solicitud para obtener una lista de las posiciones de los dispositivos en un área poligonal mediante el parámetro opcional. FilterGeometry El ejemplo devuelve 3 ubicaciones de dispositivos presentes en el área definida por la matriz 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" }

A continuación se muestra un ejemplo de respuesta 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

Utilice el comando list-trackers.

El siguiente ejemplo sirve AWS CLI para obtener una lista de dispositivos en un área poligonal.

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