View a markdown version of this page

使用 Amazon Location 添加地理围栏 - Amazon Location Service

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

使用 Amazon Location 添加地理围栏

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

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

注意

Amazon Location 不支持顺时针多边形(按照 RFC 7946 §3.1.6 的要求使用逆时针绕组顺序)和穿过反子午线(经度 180° 线)的地理围栏。

创建地理围栏集合

使用亚马逊定位控制台、 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 (值)。这会为你的新地理围栏集合添加一个标签。有关更多信息,请参阅使用标签管理资源

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

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

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

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

以下示例使用 API 请求创建名为 ExampleGeofenceCollection 的地理围栏集合。Geofence 集合与客户管理的 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

要创建圆形地理围栏,请使用位置的纬度和经度定义中心点,并以米为单位设置半径。有关更多信息,请参阅 添加圆形地理围栏

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

添加多边形地理围栏

多边形地理围栏使用 GeoJSON 坐标数组来定义区域。当您需要跟踪进入或离开形状不规则的地理边界时,请使用此格式。

使用 GeoJSON 工具绘制地理围栏

创建 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 请求将带有 ID 的地理围栏添加到名GEOFENCE-EXAMPLE1为的地理围栏集合中。ExampleGeofenceCollection它还使用键Type和值指定地理围栏元数据属性。loadingArea

PUT /geofencing/v0/collections/ExampleGeofenceCollection/geofences/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]]]'

添加圆形地理围栏

要创建圆形地理围栏,必须知道中心点的纬度和经度以及以米为单位的半径。当您需要根据与特定点(例如商店、仓库或地标)的距离来触发事件时,请使用圆形地理围栏。您可以使用亚马逊定位控制台、亚马逊定位 API 或. 创建圆形地理围栏。 AWS CLI

Console
使用 Amazon Location Service 控制台向地理围栏集合添加圆形地理围栏
  1. 打开 Amazon Location Service 控制台,网址为https://console.aws.amazon.com/location/

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

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

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

  5. 添加地理围栏窗口中,选择圆圈,然后输入中心纬度度和半径(以米为单位)。

  6. 选择添加地理围栏

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

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

以下示例使用 API 请求将带有 ID 的地理围栏添加到名GEOFENCE-EXAMPLE2为的地理围栏集合中。ExampleGeofenceCollection

PUT /geofencing/v0/collections/ExampleGeofenceCollection/geofences/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包含圆形几何图形。

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