建立功能狀態集

功能狀態集會針對支援這些狀態的特定功能定義動態屬性和值。 本文說明如何建立狀態集,其會定義屬性的值和對應的樣式,以及變更屬性的狀態。

必要條件

重要

  • 本文章使用 us.atlas.microsoft.com 地理 URL。 如果您的 Creator 服務未在美國建立,您必須使用不同的地理 URL。 如需詳細資訊,請參閱存取 Creator 服務
  • 在本文中的 URL 範例中,您將需要取代:
    • {Azure-Maps-Subscription-key} 搭配您的 Azure 地圖服務訂用帳戶金鑰。
    • {datasetId},其中具有在「使用建立工具建立室內地圖」教學課程中的檢查資料集建立狀態一節中取得的 datasetId

建立功能狀態集

若要建立狀態集:

建立使用狀態集 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 狀態,請建立呼叫功能狀態集 API 的新 HTTP PUT 要求。 要求看起來應該類似下列 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"
        }
    ]
}

注意

只有在張貼的時間戳記晚於前次要求的時間戳記時,才會儲存更新。

傳送 HTTP 要求並更新完成之後,您會收到 200 OK HTTP 狀態碼。 如果您已為室內地圖實作動態樣式,則更新將會依指定的時間戳記顯示於轉譯的地圖中。

其他資訊

下一步

了解如何實作室內地圖的動態樣式。