添加地理围栏 - Amazon Location Service

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

添加地理围栏

地理围栏包含形成封闭边界的点和顶点,封闭边界定义了感兴趣区域。地理围栏集合存储并管理一个或多个地理围栏。

Amazon Location 地理围栏集合存储使用名为 GeoJSON (RFC 7946) 的标准地理空间数据格式定义的地理围栏。您可以免费使用诸如 geojson.io 之类的工具来以图形方式绘制地理围栏并保存输出的 GeoJSON 文件。

注意

Amazon Location 不支持带有孔洞的多边形、多面、顺时针多边形和穿过对向子午线的地理围栏。

创建地理围栏集合

使用亚马逊定位控制台、 AWS CLI或 Amazon Location API 创建地理围栏集合,用于存储和管理地理围栏。

Console

使用 Amazon Location 控制台创建地理围栏集合

  1. 打开 Amazon Location Service 控制台:https://console.aws.amazon.com/location/

  2. 在左侧导航窗格中,选择地理围栏集合

  3. 选择创建地理围栏集合

  4. 填写以下选框:

    • 名称——输入唯一名称。例如,ExampleGeofenceCollection。最多 100 个字符。有效条目包括:字母数字字符、连字符、句号和下划线。

    • 描述——输入可选描述以区分您的资源。

  5. 以目标 CloudWatch 为目标的EventBridge 规则下,您可以创建一条可选 EventBridge 规则来开始对地理围栏事件做出反应。这样,Amazon Location 就可以将事件发布到亚马逊 CloudWatch 日志。

  6. (可选)在 Tags (标签) 下,输入标签 Key (键)Value (值)。这会为您的新地理围栏集合添加一个标签。有关更多信息,请参阅 为您的 Amazon Location Service 资源添加标签

  7. (可选)在“客户托管密钥加密”下,您可以选择添加客户托管密钥。这会添加一个对称的客户托管密钥,您可以通过默认 AWS 拥有的加密来创建、拥有和管理该密钥。想要了解更多信息,请参阅加密静态数据

  8. 选择创建地理围栏集合

API

使用 Amazon Location API 创建地理围栏集合

使用 Amazon Location 地理围栏 API 中的 CreateGeofenceCollection 操作。

以下示例使用 API 请求创建名为的地理围栏集合。ExampleGeofenceCollectionGeofence 集合与客户管理的 AWS KMS 密钥相关联,用于加密客户数据

POST /geofencing/v0/collections Content-type: application/json { "CollectionName": "ExampleGeofenceCollection", "Description": "Geofence collection 1 for shopping center", "KmsKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Tags": { "Tag1" : "Value1" } }
AWS CLI

使用 AWS CLI 命令创建地理围栏集合

使用 create-geofence-collection 命令。

以下示例使用创建名 AWS CLI 为的地理围栏集合。ExampleGeofenceCollectionGeofence 集合与客户管理的 AWS KMS 密钥相关联,用于加密客户数据

aws location \ create-geofence-collection \ --collection-name "ExampleGeofenceCollection" \ --description "Shopping center geofence collection" \ --kms-key-id "1234abcd-12ab-34cd-56ef-1234567890ab" \ --tags Tag1=Value1
注意

计费取决于您的使用情况。您可能会因为使用其他 AWS 服务而产生费用。想要了解更多信息,请参阅 Amazon Location Service 定价

绘制地理围栏

现在,您已经创建了地理围栏集合,可以定义您的地理围栏了。地理围栏既可以定义为多边形,也可以定义为圆形。要绘制多边形地理围栏,你可以使用 GeoJSON 编辑工具,例如 geojson.io

要将地理围栏创建为圆形,必须定义圆的中心点和半径。例如,如果您要创建一个地理围栏,以便在设备距离特定位置 50 米以内时收到通知,则应使用该位置的纬度和经度并将半径指定为 50 米。

使用 Amazon Location Service API,您还可以使用键/值对的形式向地理围栏添加元数据。它们可用于存储有关地理围栏的信息(例如地理围栏的类型)或其他特定于您的应用程序的信息。您可以在以下 通过亚马逊对亚马逊定位服务事件做出反应 EventBridge 情况下使用此元数据。

添加多边形地理围栏

本部分介绍创建多边形地理围栏的情况

使用 GeoJSON 工具绘制地理围栏

现在你已经创建了地理围栏集合,你可以使用 GeoJSON 编辑工具(例如 geojson.io)来定义地理围栏。

创建 GeoJSON 文件

  1. 打开 GeoJSON 编辑工具。例如,geojson.io。

  2. 选择绘制多边形图标并绘制感兴趣的区域。

  3. 选择保存,然后从下拉菜单中选择 GeoJSON

将 GeoJSON 地理围栏放入地理围栏集合中

您可以使用生成的 GeoJSON 文件通过亚马逊定位服务控制台、 AWS CLI或亚马逊定位 API 上传您的地理围栏:

Console

使用 Amazon Location Service 控制台向地理围栏集合添加地理围栏

  1. 打开 Amazon Location Service 控制台:https://console.aws.amazon.com/location/

  2. 在左侧导航窗格中,选择地理围栏集合

  3. 地理围栏集合列表中,选择目标地理围栏集合的名称链接。

  4. 地理围栏下,选择创建地理围栏

  5. 添加地理围栏窗口中,将您的 GeoJSON 拖放到窗口中。

  6. 选择添加地理围栏

API

使用 Amazon Location API 添加地理围栏

使用 Amazon Location 地理围栏 API 中的 PutGeofence 操作。

以下示例使用 API 请求向名为的地理围栏集合添加标识为 GEOFENCE-EXAMPLE1 的地理围栏。ExampleGeofenceCollection它还指定了带有键 Type 和值 loadingArea 的单个地理围栏元数据属性。

PUT /geofencing/v0/collections/ExampleGeofenceCollection/geofence/GEOFENCE-EXAMPLE1 Content-type: application/json { "GeofenceProperties": { "Type" : "loadingArea" }, "Geometry": { "Polygon": [ [ [-5.716667, -15.933333], [-14.416667, -7.933333], [-12.316667, -37.066667], [-5.716667, -15.933333] ] ] } }

或者,您可以使用 BatchPutGeofence 操作添加多个地理围栏。

POST /geofencing/v0/collections/ExampleGeofenceCollection/put-geofences Content-type: application/json { "Entries": [ { "GeofenceProperties": { "Type" : "loadingArea" }, "GeofenceId": "GEOFENCE-EXAMPLE1", "Geometry": { "Polygon": [ [ [-5.716667, -15.933333], [-14.416667, -7.933333], [-12.316667, -37.066667], [-5.716667, -15.933333] ] ] } } ] }
AWS CLI

使用命令向地理围栏集合添加地理围栏 AWS CLI

使用 put-geofence 命令。

以下示例使用 AWS CLI 向名为的地理围栏集合添加地理围栏。ExampleGeofenceCollection

$ aws location \ put-geofence \ --collection-name ExampleGeofenceCollection \ --geofence-id ExampleGeofenceTriangle \ --geofence-properties '{"Type": "loadingArea"}' \ --geometry 'Polygon=[[[-5.716667, -15.933333],[-14.416667, -7.933333],[-12.316667, -37.066667],[-5.716667, -15.933333]]]' { "CreateTime": "2020-11-11T00:16:14.487000+00:00", "GeofenceId": "ExampleGeofenceTriangle", "UpdateTime": "2020-11-11T00:19:59.894000+00:00" }

添加圆形地理围栏

本部分介绍如何创建圆形地理围栏。您必须知道要作为圆心的点的纬度和经度,以及圆的半径(以米为单位)。您可以使用 Amazon Location API AWS CLI或创建圆形地理围栏。

API

使用 Amazon Location API 添加圆形地理围栏

使用 Amazon Location 地理围栏 API 中的 PutGeofence 操作。

以下示例使用 API 请求将标识为 GEOFENCE-EXAMPLE2 的地理围栏添加到名为的地理围栏集合中:ExampleGeofenceCollection

PUT /geofencing/v0/collections/ExampleGeofenceCollection/geofence/GEOFENCE-EXAMPLE2 Content-type: application/json { "Geometry": { "Circle": { "Center": [-5.716667, -15.933333], "Radius": 50 } } }
AWS CLI

使用命令向地理围栏集合添加圆形地理围栏 AWS CLI

使用 put-geofence 命令。

以下示例使用 AWS CLI 向名为的地理围栏集合添加地理围栏。ExampleGeofenceCollection

$ aws location \ put-geofence \ --collection-name ExampleGeofenceCollection \ --geofence-id ExampleGeofenceCircle \ --geometry 'Circle={Center=[-5.716667, -15.933333], Radius=50}'
注意

您还可以将 JSON(用于复杂几何体)放入其自己的文件中,如下面的示例所示。

$ aws location \ put-geofence \ --collection-name ExampleGeofenceCollection \ --geofence-id ExampleGeofenceCircle \ --geometry file:circle.json

在示例中,circle.json 文件包含圆形几何图形的 JSON。

{ "Circle": { "Center": [-74.006975, 40.717127], "Radius": 287.7897969218057 } }