你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建特征状态集

功能状态集定义支持它们的特定功能的动态属性和值。 本文介绍如何创建定义属性的值和相应样式并更改属性状态的状态集。

先决条件

重要

  • 本文使用 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 等工具,其外观应如下所示:

A screenshot of Postman showing the Header tab of the POST request that shows the Content Type Key with a value of application forward slash json.

最后,在 HTTP 请求的正文中,包括采用原始 JSON 格式的样式信息,它会根据属性的值对 occupied 属性应用不同的颜色:

{
    "styles":[
        {
            "keyname":"occupied",
            "type":"boolean",
            "rules":[
            {
                "true":"#FF0000",
                "false":"#00FF00"
            }
            ]
        }
    ]
}

响应成功返回后,复制响应正文中的 statesetId。 在下一部分,我们将使用 statesetId 更改特征 id 为“UNIT26”的单位的 occupancy 属性状态。 如果使用 Postman,则显示如下:

A screenshot of Postman showing the resource Stateset ID value in the responses body.

更新特征状态

本节演示如何使用功能 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 等工具,其外观应如下所示:

A screenshot of the header tab information for stateset creation.

最后,在 HTTP 请求的正文中,包括采用原始 JSON 格式的样式信息,它会根据属性的值对 occupied 属性应用不同的颜色:

{
    "states": [
        {
            "keyName": "occupied",
            "value": true,
            "eventTimestamp": "2020-11-14T17:10:20"
        }
    ]
}

注意

只有当 POST 请求的时间戳晚于上一请求的时间戳时,才会保存更新。

发送 HTTP 请求并完成更新后,会收到 200 OK HTTP 状态代码。 如果你已为室内地图实现动态样式,更新将会在指定的时间戳显示在渲染的地图中。

其他信息

后续步骤

了解如何实现室内地图的动态样式。