你当前正在访问 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 对象。
  • 几何对象类型可以是 PointMultiPointLineStringMultiLineStringPolygonMultiPolygonGeometryCollection
  • 所有特征属性应该包含用于标识地理围栏的 geometryId
  • 具有 PointMultiPointLineStringMultiLineString 的特征必须在属性中包含 radiusradius 值的计量单位为米,radius 值的范围为 1 到 10000。
  • 具有 polygonmultipolygon 几何类型的特征没有半径属性。
  • validityTime 是可选属性,可让用户为地理围栏数据设置过期时间和有效时间。 如果未指定该属性,则数据永不过期,而是一直有效。
  • expiredTime 是地理围栏数据的过期日期和时间。 如果请求中 userTime 的值晚于此值,则将相应的地理围栏数据视为过期的数据,且不会查询这些数据。 基于这一点,此地理围栏数据的 geometryId 将包含在地理围栏响应中的 expiredGeofenceGeometryId 数组内。
  • validityPeriod 是地理围栏有效时段的列表。 如果请求中 userTime 的值超出有效时段,则将相应的地理围栏数据视为无效,且不会查询这些数据。 此地理围栏数据的 geometryId 包含在地理围栏响应中的 invalidPeriodGeofenceGeometryId 数组内。 下表显示了 validityPeriod 元素的属性。
名称 类型​​ 必需 描述
startTime datetime 有效时段的开始日期时间。
endTime datetime 有效时段的结束日期时间。
recurrenceType 字符串 false 时段的重复类型。 值可为 DailyWeeklyMonthlyYearly。 默认值为 Daily
businessDayOnly Boolean false 指示数据是否仅在工作日有效。 默认值为 false
  • 所有坐标值以 WGS84 中定义的[纬度,经度]表示。
  • 对于包含 MultiPointMultiLineStringMultiPolygonGeometryCollection 的每个特征,属性将应用到所有元素。 例如: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
                }
            ]
        }
    }
}