本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
添加地理围栏
Geofences 包含形成封闭边界的点和顶点,封闭边界定义感兴趣区域。Geofence 集合存储和管理一个或多个地理围栏。
Amazon Location geofence 集合存储使用名为 Geo JSON (RFC 7946) 的标准地理空间数据格式定义的地理围栏。您可以免费使用 geo json.io 等工具以图形方式绘制地理围栏并保存输出的 GeoJSON 文件。
Amazon Location 不支持带有洞的多边形、多多边形、顺时针多边形和穿过反中线的地理围栏。
创建地理围栏集合
使用 Amazon Location 控制台、或 Amazon Location API 创建地理围栏集合以存储和管理地理围栏。AWS CLI
- Console
-
使用 Amazon Location 控制台创建地理围栏集合
- API
-
使用亚马逊位置 API 创建地理围栏集合
使用 Amazon Location Geofences API 中的CreateGeofenceCollection
操作。
以下示例使用 API 请求来创建名为的地理围栏集合ExampleGeofenceCollection
。geofence 集合与客户管理的 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
。geofence 集合与客户管理的 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
绘制地理围栏
现在您已经创建了地理围栏集合,可以定义地理围栏了。地理围栏可以定义为多边形或圆形。要绘制多边形地理围栏,你可以使用 GeoJSON 编辑工具,例如 geo json.io。
要将地理围栏创建为圆,必须定义圆的中心点和半径。例如,如果您想创建地理围栏,以便每当设备到达特定位置 50 米以内时都会收到通知,则可以使用该位置的纬度和经度并将半径指定为 50 米。
添加多边形地理围栏
本部分介绍创建多边形地理围栏的过程
使用 GeoJSON 工具绘制地理围栏
现在您已经创建了 geofence 集合,您可以使用 GeoJSON 编辑工具(例如 geo json.io)定义地理围栏。
创建 GeoJSON 文件
-
打开 GeoJSON 编辑工具。例如,geojson.io。
-
选择绘制多边形图标并绘制您感兴趣的区域。
-
选择 “保存”,然后从下拉菜单中选择 GeoJSON。
将 GeoJSON 地理围栏放入地理围栏集合中
您可以使用生成的 GeoJSON 文件通过亚马逊Location Service 控制台AWS CLI、或亚马逊位置 API 上传地理围栏:
- Console
-
使用亚马逊Location Service 控制台向地理围栏集合添加地理围栏
- API
-
使用亚马逊位置 API 添加地理围栏
使用 Amazon Location Geofences API 中的PutGeofence
操作。
以下示例使用 API 请求将给定 ID 为 GEOFENCE-EXAMPLE1
的地理围栏添加到名为的地理围栏集合中 ExampleGeofenceCollection
:
PUT /geofencing/v0/collections/ExampleGeofenceCollection
/geofence/GEOFENCE-EXAMPLE1
Content-type: application/json
{
"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": [
{
"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
\
--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"
}
添加圆形地理围栏围栏数
本节介绍如何创建圆形地理围栏。您必须知道要作为圆心的点的纬度和经度,以及圆的半径(以米为单位)。您可以使用亚马逊位置 API 或者,创建循环地理围栏AWS CLI。
- API
-
使用亚马逊位置 API 添加圆形地理围栏
使用 Amazon Location Geofences API 中的PutGeofence
操作。
以下示例使用 API 请求将给定 ID 为 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
}
}