你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
创建特征状态集
功能状态集定义支持它们的特定功能的动态属性和值。 本文介绍如何创建定义属性的值和相应样式并更改属性状态的状态集。
先决条件
- 顺利完成包含 WFS API 的查询数据集。
- 从“使用 Creator 创建室内地图”教程的“检查数据集创建状态”部分获取
datasetId
。
重要
- 本文使用
us.atlas.microsoft.com
地理 URL。 如果 Creator 服务不是在美国创建的,则必须使用不同的地理 URL。 有关详细信息,请参阅访问 Creator 服务。 - 在本文中的 URL 示例中,需要替换:
- 将
{Azure-Maps-Subscription-key}
替换为你的 Azure Maps 订阅密钥。 - 将
{datasetId}
替换为datasetId
(从“使用 Creator 创建室内地图”教程的检查数据集创建状态部分获取)
- 将
创建功能状态集
创建状态集:
创建使用状态集 API 的新 HTTP POST 请求。 请求应如下面的 URL 所示:
https://us.atlas.microsoft.com/featurestatesets?api-version=2.0&datasetId={datasetId}&subscription-key={Your-Azure-Maps-Subscription-key}
接下来,将 Content-Type
设置为请求标头中的 application/json
。
如果使用 Postman 等工具,其外观应如下所示:
最后,在 HTTP 请求的正文中,包括采用原始 JSON 格式的样式信息,它会根据属性的值对 occupied
属性应用不同的颜色:
{
"styles":[
{
"keyname":"occupied",
"type":"boolean",
"rules":[
{
"true":"#FF0000",
"false":"#00FF00"
}
]
}
]
}
响应成功返回后,复制响应正文中的 statesetId
。 在下一部分,我们将使用 statesetId
更改特征 id
为“UNIT26”的单位的 occupancy
属性状态。 如果使用 Postman,则显示如下:
更新特征状态
本节演示如何使用功能 id
“UNIT26”更新设备的 occupied
状态。 要更新 occupied
状态,请创建新的 HTTP PUT 请求,调用功能状态集 API。 请求外观应类似于以下 URL(请将 {statesetId}
替换为在创建功能状态集中获取的 statesetId
):
https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Subscription-key}
接下来,将 Content-Type
设置为请求标头中的 application/json
。
如果使用 Postman 等工具,其外观应如下所示:
最后,在 HTTP 请求的正文中,包括采用原始 JSON 格式的样式信息,它会根据属性的值对 occupied
属性应用不同的颜色:
{
"states": [
{
"keyName": "occupied",
"value": true,
"eventTimestamp": "2020-11-14T17:10:20"
}
]
}
注意
只有当 POST 请求的时间戳晚于上一请求的时间戳时,才会保存更新。
发送 HTTP 请求并完成更新后,会收到 200 OK
HTTP 状态代码。 如果你已为室内地图实现动态样式,更新将会在指定的时间戳显示在渲染的地图中。
其他信息
有关如何使用功能 ID 检索功能状态的信息,请参阅功能状态 - 列出状态。
有关如何删除状态集及其资源的信息,请参阅功能状态 - 删除状态集。
如需了解如何使用 Azure Maps Creator 功能状态服务来应用基于室内地图数据功能动态属性的样式,请参阅操作说明一文:实现 Creator 室内地图的动态样式。
有关本文中讨论的不同 Azure Maps Creator 服务的详细信息,请参阅Creator 室内地图。
后续步骤
了解如何实现室内地图的动态样式。