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

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

地理围栏和跟踪器

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

注意

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

地理围栏

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

下面几节演示如何创建和使用 Geofence 集合资源:

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

  2. 将地理围栏添加到该集合中。您可以使用亚马逊位置控制台上的 geofence 上传工具,也可以使用亚马逊位置 Geofence API 来完成此操作。有关可用选项的更多信息,请参阅访问亚马逊位置

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

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

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

    • EXIT — 为每个地理围栏生成一个事件,其中位置更新通过退@@ 地理围栏越过其边界。

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

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

注意

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

地理围栏事件

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

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

注意

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

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

追踪器

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

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

注意

跟踪器存储会自动使用AWS自有密钥进行加密。您可以使用自己管理的 KMS 密钥添加另一层加密,以确保只有您才能访问您的数据。有关更多信息,请参阅适用于 Amazon Location Service

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

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

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

  2. 接下来,决定如何向跟踪资源发送位置更新。使用 AWSSDK 将跟踪功能集成到您的移动应用程序中。或者,您可以按照 step-by-step 指示使用 MQTT 进行跟踪,从而使用 MQTT

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

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

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

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

与地理围栏配对时,跟踪器可提供额外功能。您可以通过亚马逊定位控制台或 API 将跟踪器与地理围栏集合相关联,以自动评估跟踪器的位置。每次跟踪器收到更新的位置时,将根据集合中的每个地理围栏对该位置进行评估,并在亚马逊中生成相应的ENTEREXIT事件 EventBridge。您还可以对跟踪器应用筛选,并且,根据筛选条件,您可以通过仅评估有意义的位置更新来降低地理围栏评估的成本。

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

位置过滤

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

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

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

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

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

    注意

    您可以使用基于精度的筛选来删除所有筛选。如果您选择基于准确度的筛选,但将所有精度数据改写为零,或者完全省略精度,则 Amazon Location 不会过滤掉任何更新。

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

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

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

    如果您想进行筛选,但您的设备不提供精度测量值,或者您想要过滤掉比基于精度的更新数量更多的更新,则基于距离的筛选很有用。

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

    当您想要存储较少的位置但希望根据关联的 geofence 集合评估每个位置更新时,基于时间的筛选尤其有用。

注意

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

地理围栏术语

地理围栏集合

包含零或多个地理围栏。它能够通过在需要时发出进入和退出事件来进行地理围栏监控,以根据其地理围栏评估设备的位置。

地理围栏

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

多边形几何

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

圆是周围有一段距离的点。如果您希望在设备距离某个位置的特定距离内收到通知,请使用圆圈。

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

注意

亚马逊Location Service 不支持包含多个环的多边形。这包括洞、岛屿或多面体。Amazon Location 也不支持顺时针旋转的多边形或穿过反经纬线的多边形。

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

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

跟踪器术语

追踪器资源

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

跟踪位置数据

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

位置过滤

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

您可以选择AccuracyBasedDistanceBased、或TimeBased筛选。默认情况下,位置过滤设置为TimeBased

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

RFC 3339 时间戳格式

亚马逊Location Service 追踪器使用 RFC 3339 格式,其日期和时间遵循国际标准化组织 (ISO) 8601 格式。

格式为 “MM: mm: mm: mm: mm: .mm: .mm: mm:

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

  • T— 表示时间值将随之而来。

  • hh:mm:ss.sss— 代表时间,采用 24 小时制。

  • Z— 表示使用的时区是 UTC,之后可以偏离 UTC 时区。

  • +00:00— 可选指明与 UTC 时区的偏差。例如,+ 01:00 表示世界标准时间 + 1 小时。

示例

2020 年 7 月 2 日下午 12:15:20,将世界标准时区再调整 1 小时。

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