地理围栏和跟踪器 - Amazon Location Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

地理围栏和跟踪器

本部分概述了使用 Amazon Location Service 地理围栏和跟踪器的概念。地理围栏是多边形边界,当设备或位置移入和移出区域时,您可以使用它来收到通知。跟踪器资源用于存储和更新设备移动时的位置。

注意

有关如何在实践中使用地理围栏和跟踪器的信息,请参阅 使用 Amazon Location 对感兴趣的区域进行地理围栏

地理围栏

地理围栏集合资源允许您存储和管理地理围栏(地图上的虚拟边界)。您可以根据地理围栏集合资源评估位置,并在位置更新越过地理围栏集合中任何地理围栏的边界时收到通知。

下面显示如何创建和使用地理围栏集合资源:

  1. 在您的 AWS 账户中创建地理围栏收集资源。

  2. 将地理围栏添加到该集合中。您可以通过使用 Amazon Location 控制台上的地理围栏上传工具或使用 Amazon Location 地理围栏 API 来实现。有关可用选项的更多信息,请参阅访问 Amazon Location

    地理围栏可以由多边形或圆形定义。使用多边形查找设备何时进入特定区域。使用圆圈查找设备何时到达距离某一点的特定距离(半径)以内。

  3. 您可以开始根据所有地理围栏评估位置。当位置更新跨越一个或多个地理围栏的边界时,您的地理围栏收集资源会在亚马逊上发出以下地理围栏事件类型之一: EventBridge

    • ENTER——为每个地理围栏生成一个事件,其中位置更新通过进入来越过边界。

    • EXIT——每个地理围栏都会生成一个事件,其中位置更新通过离开来越过边界。

    有关更多信息,请参阅通过亚马逊对亚马逊定位服务事件做出反应 EventBridge。您还可以使用诸如Amazon CloudWatch 和之类的服务来集成监控 AWS CloudTrail。有关更多信息,请参阅、使用亚马逊监控 Amazon Location Service CloudWatch使用 AWS CloudTrail 进行日志记录和监控

例如,如果您正在追踪一支卡车车队,并且希望在卡车进入任何仓库的特定区域时收到通知。您可以为每个仓库周围的区域创建地理围栏。然后,当卡车向您发送更新的位置时,您可以使用 Amazon Location Service 来评估这些位置,并查看卡车是否进入(或退出)了其中一个地理围栏区域。

注意

按您评估的地理围栏集合数量计费。您的计费不受每个集合中地理围栏数量的影响。由于每个地理围栏集合可能包含多达 50,000 个地理围栏,因此您可能需要尽可能将地理围栏合并成更少的集合,以降低地理围栏评估的成本。生成的事件将包括集合中各个地理围栏的 ID 以及该集合的 ID。

地理围栏事件

您正在监控的位置由名为 DeviceId 的 ID 引用(这些位置被称为设备位置)。您可以将要评估的设备位置列表直接发送到地理围栏集合资源,也可以使用跟踪器。有关跟踪器的更多信息,请参见下一部分。

只有当设备进入或退出地理围栏时,您才会收到事件(通过 Amazon EventBridge),而不是每次位置变化都会收到事件。这意味着您通常会收到事件,并且响应事件的频率要比每次设备位置更新的频率低得多。

注意

对于特定 DeviceID 的首次位置评估,假设该设备以前不在任何地理围栏中。因此,如果在集合中的地理围栏内,则第一次更新将生成一个 ENTER 事件,如果不是,则不会生成任何事件。

为了计算设备是进入还是退出地理围栏,Amazon Location Service 必须保持该设备的先前位置状态。此位置状态可存储 30 天。在设备未更新 30 天后,新的位置信息更新将被视为首次位置更新。

跟踪器

跟踪器存储一组设备的位置更新。跟踪器可用于查询设备的当前位置或位置记录。它存储更新,但通过在存储更新之前筛选位置来减少存储空间和视觉噪音。

存储在您的跟踪器资源中的每个位置更新都可能包括一个位置精度指标,以及最多 3 个与您要存储的位置或设备相关的元数据字段。元数据以键值对的形式存储,可以存储速度、方向、轮胎压力或发动机温度等信息。

注意

Tracker 存储空间会自动使用 AWS 自有密钥进行加密。您可以使用您管理的 KMS 密钥添加另一层加密,以确保只有您才能访问您的数据。有关更多信息,请参阅Amazon Location Service 中的静态数据加密

跟踪器位置筛选和存储本身很有用,但是与地理围栏配对时,跟踪器尤其有用。您可以将跟踪器链接到您的一个或多个地理围栏集合资源,并根据这些集合中的地理围栏自动评估位置更新。正确使用筛选还可以大大降低地理围栏评估的成本。

下图显示如何创建和使用跟踪器资源:

  1. 首先,在 AWS 账户中创建跟踪器资源。

  2. 接下来,决定如何向跟踪器资源发送位置更新。使用AWS 开发工具包将跟踪功能集成到您的移动应用程序中。或者,您可以按照使用 MQTT 进行跟踪的 step-by-step 说明来使用 MQTT。

  3. 现在,您可以使用跟踪器资源来记录位置记录并在地图上将其可视化。

  4. 您还可以将您的跟踪器资源链接到一个或多个地理围栏集合,这样发送到跟踪器资源的每个位置更新都会根据所有链接的地理围栏集合中的所有地理围栏自动进行评估。您可以在 Amazon Location 控制台的跟踪器资源详情页面上链接资源,也可以使用 Amazon Location 跟踪器 API 来链接资源。

  5. 然后,您可以使用诸如Amazon CloudWatch 和之类的服务来集成监控 AWS CloudTrail。有关更多信息,请参阅、使用亚马逊监控 Amazon Location Service CloudWatch使用 AWS CloudTrail 进行日志记录和监控

使用带有地理围栏的跟踪器

与地理围栏配对时,跟踪器可提供更多功能。您可以通过 Amazon Location 控制台或 API 将跟踪器与地理围栏集合进行链接,以自动评估跟踪器位置。每次跟踪器收到更新的位置时,系统都会根据集合中的每个地理围栏评估该位置,并在 Amazon 中生成相应EXIT的事件ENTER和事件。 EventBridge您还可以对跟踪器应用筛选,根据筛选情况,您可以通过仅评估有意义的位置更新来降低地理围栏评估的成本。

如果您在跟踪器已经收到一些位置更新后将其与地理围栏集合相链接,则链接后的第一个位置更新将被视为地理围栏评估的初始更新。如果它在地理围栏内,您将收到一个 ENTER 事件。如果它不在任何地理围栏内,则无论之前的状态如何,您都不会收到任何 EXIT 事件。

位置筛选

跟踪器可以自动筛选发送给他们的位置。您可能出于多个原因想要筛选掉某些设备位置更新。如果您的系统每分钟左右发送一次报告,则可能需要按时间筛选设备,仅每 30 秒存储和评估一次位置。即使您的监控频率更高,您也可能需要筛选位置更新以清除 GPS 硬件的噪度。GPS 定位位置本质上是有噪点的。它们的精度并不是 100% 完美,因此即使是静止的设备也看似在轻微移动。在低速下,这种抖动会导致凌乱的视觉效果,如果设备靠近地理围栏的边缘,则可能导致错误的进入和退出事件。

位置筛选的工作原理是跟踪器收到位置更新,从而减少设备路径中的视觉噪音(抖动),减少错误的地理围栏进入和退出事件的数量,并通过减少存储的位置更新和触发的地理围栏评估的数量来帮助管理成本。

跟踪器提供三种位置筛选选项,以帮助管理成本并减少位置更新中的抖动。

  • 基于精度——与任何提供精度测量的设备一起使用。大多数 GPS 和移动设备都提供此信息。每次位置测量的准确性都会受到许多环境因素的影响,包括 GPS 卫星接收、场景以及 wifi 和蓝牙设备的距离。大多数设备,包括大多数移动设备,都可以提供测量精度的估计值以及测量结果。通过 AccuracyBased 筛选,如果设备移动小于测量的精度,Amazon Location 将忽略位置更新。例如,如果一个设备两次连续更新的精度范围分别为 5 米和 10 米,则该设备的移动距离小于 15 米时 Amazon Location 忽略第二次更新。Amazon Location 既不会根据地理围栏评估被忽略的更新,也不会存储这些更新。

    如果未提供精度,则将其视为零,并且测量结果被视为完全准确,并且不会对更新进行筛选。

    注意

    您可以使用基于精度的筛选来移除所有筛选。如果您选择基于精度的筛选,但将所有精度数据覆盖为零,或者完全省略准确性,那么 Amazon Location 将不会筛选出任何更新。

    在大多数情况下,基于精度的筛选是筛选位置更新的不错选择,它可以平衡跟踪位置,同时筛选掉不需要的更新,从而降低成本。

  • 基于距离——当您的设备不提供精度测量值,但您仍希望利用筛选功能来减少抖动并管理成本时使用DistanceBased 筛选忽略设备移动小于 30 米(98.4 英尺)的位置更新。当您使用 DistanceBased 位置筛选时,Amazon Location 既不会根据地理围栏评估这些被忽略的更新,也不会存储更新。

    大多数移动设备的精度,包括 iOS 和 Android 设备的平均精度,都在 15 米以内。在大多数应用程序中,DistanceBased 筛选可以减少在地图上显示设备轨迹时位置不准确的影响,以及设备靠近地理围栏边界时连续多次进入和退出事件的反弹效果。它还可以减少对照链接的地理围栏进行评估或检索设备位置的调用,从而帮助降低应用程序的成本。

    如果你想进行筛选,但你的设备不提供精度测量,或者你想筛选掉比基于精度的更新数量更多的更新,那么基于距离的筛选非常有用。

  • 基于时间——(默认)当您的设备非常频繁地发送位置更新(每 30 秒钟超过一次),并且您希望在不存储每个更新的情况下实现近乎实时的地理围栏评估时使用。在 TimeBased 筛选中,每个位置更新根据链接的地理围栏集合进行评估,但并非每个位置更新都会存储。如果更新频率超过 30 秒,则每 30 秒仅为每个唯一的设备 ID 存储一次更新。

    当您想要存储更少的位置,但希望根据链接的地理围栏集合评估每个位置更新时,基于时间的筛选特别有用。

注意

在决定筛选方法和位置更新的频率时,请注意追踪应用程序的成本。您需要为每次位置更新付费,并根据每个链接的地理围栏集合评估位置更新一次付费。例如,使用基于时间的筛选时,如果您的跟踪链接到两个地理围栏集合,则每次位置更新都将计为一个位置更新请求和两次地理围栏收集评估。如果您报告设备每 5 秒更新一次位置并使用基于时间的筛选,则每台设备将按每小时 720 次位置更新和 1,440 次地理围栏评估计费。

地理围栏术语

地理围栏集合

包含零或多个地理围栏。它能够在接到请求时发出“进入”和“退出”事件,从而根据其地理围栏评估设备的位置,从而进行地理围栏监控。

地理围栏

在地图上定义虚拟边界的多边形或圆形几何。

多边形几何

Amazon Location 地理围栏是地理区域的虚拟边界,以多边形几何或圆形表示。

圆是围绕一个点而具有一定距离的一组点的集合。如果您想在设备距离某个位置一定距离内时收到通知,请使用圆。

多边形是由一个或多个线性环组成的数组。如果要为设备通知定义特定边界,请使用多边形。线性环是由四个或更多顶点组成的数组,其中第一个和最后一个顶点相同,形成封闭边界。每个顶点都是[经度、纬度]形式的二维点,其中经度和纬度的单位是度。必须按多边形周围的逆时针顺序列出顶点。

注意

Amazon Location Service 不支持带有多个环的多边形。这包括孔洞、岛屿或多面。Amazon Location 也不支持顺时针缠绕或穿过反子午线的多边形。

以下是单个线性外环的示例:

[ [ [-5.716667, -15.933333], [-14.416667, -7.933333], [-12.316667, -37.066667], [-5.716667, -15.933333] ] ]

跟踪器术语

跟踪器资源

一种从设备接收位置更新的 AWS 资源。跟踪器资源为位置查询提供支持,例如当前和历史设备位置。将跟踪器资源链接到地理围栏集合会根据链接的地理围栏集合中的所有地理围栏自动评估位置更新。

跟踪位置数据

跟踪器资源会随着时间的推移存储有关您的设备的信息。这些信息包括一系列位置更新,其中每次更新都包括地点、时间和可选的元数据。元数据可以包括位置的精度,以及最多三个键值对,以帮助您跟踪每个位置的关键信息,例如正在跟踪的车辆的速度、方向、轮胎压力、剩余燃油或发动机温度。跟踪器会将设备位置记录保存 30 天。

位置筛选

在存储更新或根据地理围栏评估更新之前,位置筛选可以筛选掉不提供有价值信息的位置更新,从而帮助您控制成本并提高跟踪应用程序的质量。

您可以选择 AccuracyBasedDistanceBasedTimeBased 筛选。默认情况下,位置筛选设置为 TimeBased

您可以在创建或更新跟踪器资源时配置位置筛选。

RFC 3339 时间戳格式

Amazon Location Service 跟踪器使用 RFC 3339 格式,该格式遵循国际标准化组织 (ISO) 8601 格式的日期和时间。

格式为“YYYY-MM-DDThh:mm:ss.sssZ+00:00”:

  • YYYY-MM-DD——表示日期格式。

  • T——表明接下来将是时间值。

  • hh:mm:ss.sss——以 24 小时制表示时间。

  • Z——表示使用的时区是 UTC,后面可以有与 UTC 时区的偏差。

  • +00:00——(可选)表示与 UTC 时区的偏差。例如,+ 01:00 表示 UTC + 1 小时。

示例

2020 年 7 月 2 日下午 12:15:20,与 UTC 的时区相比,再调整 1 个小时。

2020-07-02T12:15:20.000Z+01:00