有两种方法可以根据地理围栏评估位置以生成地理围栏事件:
-
您可以关联跟踪器和地理围栏集合。想要了解更多信息,请参阅 教程:在 Amazon Location 中将跟踪器链接到地理围栏集合 部分。
-
您可以使用 BatchEvaluateGeofences API 直接向地理围栏集合资源提出请求,以评估一个或多个位置。
此外,还可以预测设备进入、退出地理围栏或在其中保持空闲状态等接下来的地理围栏事件。使用 ForecastGeofenceEvents API 预测事件。
如果您还想跟踪设备位置记录或在地图上显示位置,请将跟踪器链接到地理围栏集合。或者,您可能不想评估所有位置更新,或者您不打算将位置数据存储在跟踪器资源中。如果是其中任何一种情况,则可以直接向地理围栏集合发出请求,并根据其地理围栏评估一个或多个设备的位置。
根据地理围栏评估设备位置会生成事件。您可以对这些事件做出反应并将它们路线到其他 AWS 服务。有关在接收地理围栏事件时可以采取的操作的更多信息,请参阅使用 Amazon EventBridge 对 Amazon Location Service 事件做出反应。
Amazon Location 事件包括生成该事件的设备位置更新的属性,包括时间、位置、准确性和键值元数据,以及进入或退出的地理围栏的一些属性。有关地理围栏事件中包含的数据的更多信息,请参阅 适用于 Amazon Location Service Amazon EventBridge 事件示例。
以下示例使用 AWS CLI、或 Amazon Location API。
使用 Amazon Location API 根据地理围栏的位置评估设备位置
使用 Amazon Location 地理围栏 API 中的 BatchEvaluateGeofences
操作。
以下示例使用 API 请求来评估设备 ExampleDevice
与链接的地理围栏集合 ExampleGeofenceCollection
的位置。将这些值替换为您自己的地理围栏和设备 ID。
POST /geofencing/v0/collections/
ExampleGeofenceCollection
/positions HTTP/1.1 Content-type: application/json { "DevicePositionUpdates": [ { "DeviceId": "ExampleDevice
", "Position":[-123.123, 47.123]
, "SampleTime": "2021-11-30T21:47:25.149Z", "Accuracy": { "Horizontal": 10.30 }, "PositionProperties": { "field1": "value1", "field2": "value2" } } ] }
根据地理围栏评估设备位置会生成事件。传统上,您可以使用 Amazon EventBridge 对事件做出反应,但是这种处理只允许您在事件发生之后对它们做出反应。如果您需要预测设备何时进入或退出地理围栏,例如设备是否越过国境并因此受到不同的法规约束,则可以使用 ForecastGeofenceEvents API 来预测未来的地理围栏事件。
ForecastGeofenceEvents API 使用设备的违例时间、距离、速度和位置等标准来预测事件。该 API 将返回 ForecastedBreachTime
,表示估计的地理围栏事件将要发生的时间。
以下示例使用 Amazon Location API。
使用 Amazon Location API 预测地理围栏事件
使用 Amazon Location 地理围栏 API 中的 ForecastGeofenceEvents
操作。
以下示例使用 API 请求来预测 ExampleDevice
相对于 ExampleGeofence
的地理围栏事件。将这些值替换为您自己的地理围栏和设备 ID。
POST /geofencing/v0/collections/CollectionName/forecast-geofence-events HTTP/1.1
Content-type: application/json
{
"DeviceState": {
"Position": [ number ],
"Speed": number
},
"DistanceUnit": "string",
"MaxResults": number,
"NextToken": "string",
"SpeedUnit": "string",
"TimeHorizonMinutes": number
}