你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
地理围栏 GeoJSON 数据
使用 Azure Maps GET 地理围栏和 POST 地理围栏 API 可以检索某个坐标相对于所提供地理围栏或围栏集的邻近性。 本文详细介绍如何准备可在 Azure Maps GET 和 POST API 中使用的地理围栏数据。
地理围栏或地理围栏集的数据由 rfc7946 中定义的、采用 GeoJSON
格式的 Feature
对象和 FeatureCollection
对象表示。 除此之外:
- GeoJSON 对象类型可以是
Feature
对象或FeatureCollection
对象。 - 几何对象类型可以是
Point
、MultiPoint
、LineString
、MultiLineString
、Polygon
、MultiPolygon
和GeometryCollection
。 - 所有特征属性应该包含用于标识地理围栏的
geometryId
。 - 具有
Point
、MultiPoint
、LineString
、MultiLineString
的特征必须在属性中包含radius
。radius
值的计量单位为米,radius
值的范围为 1 到 10000。 - 具有
polygon
和multipolygon
几何类型的特征没有半径属性。 validityTime
是可选属性,可让用户为地理围栏数据设置过期时间和有效时间。 如果未指定该属性,则数据永不过期,而是一直有效。expiredTime
是地理围栏数据的过期日期和时间。 如果请求中userTime
的值晚于此值,则将相应的地理围栏数据视为过期的数据,且不会查询这些数据。 基于这一点,此地理围栏数据的 geometryId 将包含在地理围栏响应中的expiredGeofenceGeometryId
数组内。validityPeriod
是地理围栏有效时段的列表。 如果请求中userTime
的值超出有效时段,则将相应的地理围栏数据视为无效,且不会查询这些数据。 此地理围栏数据的 geometryId 包含在地理围栏响应中的invalidPeriodGeofenceGeometryId
数组内。 下表显示了 validityPeriod 元素的属性。
名称 | 类型 | 必需 | 描述 |
---|---|---|---|
startTime | datetime | 是 | 有效时段的开始日期时间。 |
endTime | datetime | 是 | 有效时段的结束日期时间。 |
recurrenceType | 字符串 | false | 时段的重复类型。 值可为 Daily 、Weekly 、Monthly 或 Yearly 。 默认值为 Daily 。 |
businessDayOnly | Boolean | false | 指示数据是否仅在工作日有效。 默认值为 false 。 |
- 所有坐标值以
WGS84
中定义的[纬度,经度]表示。 - 对于包含
MultiPoint
、MultiLineString
、MultiPolygon
或GeometryCollection
的每个特征,属性将应用到所有元素。 例如:MultiPoint
中的所有点将使用相同的半径来构成多个圆形地理围栏。 - 在点圆方案中,可以使用具有扩展 GeoJSON 几何图形中所述属性的
Point
几何对象来表示圆几何图形。
以下地理围栏的示例请求正文表示为在 GeoJSON
中使用中心点和半径的圆形地理围栏几何图形。 该地理围栏数据的有效时段为从 2018-10-22
上午 9 点到下午 5 点,除周末外,每天都会重复。 expiredTime
指示如果请求中的 userTime
晚于 2019-01-01
,则将此地理围栏数据视为过期。
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.126986, 47.639754]
},
"properties": {
"geometryId" : "1",
"subType": "Circle",
"radius": 500,
"validityTime":
{
"expiredTime": "2019-01-01T00:00:00",
"validityPeriod": [
{
"startTime": "2018-10-22T09:00:00",
"endTime": "2018-10-22T17:00:00",
"recurrenceType": "Daily",
"recurrenceFrequency": 1,
"businessDayOnly": true
}
]
}
}
}