添加地理围栏 - Amazon Location Service

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

添加地理围栏

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

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

注意

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

创建地理围栏集合

使用 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 请求创建名为的地理围栏集合。ExampleGeofenceCollection地理围栏集合与客户托管 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为的地理围栏集合。ExampleGeofenceCollection地理围栏集合与客户托管 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 文件通过 Amazon Location Service控制台、AWS CLI 或 Amazon Location 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 } }