建立功能狀態集
功能狀態集會針對支援這些狀態的特定功能定義動態屬性和值。 本文說明如何建立狀態集,其會定義屬性的值和對應的樣式,以及變更屬性的狀態。
必要條件
- 成功完成使用 WFS API 查詢資料集。
- 在使用建立工具建立室內地圖教學課程的檢查資料集建立狀態一節中取得的
datasetId
。
重要
- 本文章使用
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 之類的工具,它看起來應該像這樣:
最後,在 HTTP 要求的本文中,包含原始 JSON 格式的樣式資訊,其會根據 occupied
屬性的值,將不同的色彩套用至該屬性:
{
"styles":[
{
"keyname":"occupied",
"type":"boolean",
"rules":[
{
"true":"#FF0000",
"false":"#00FF00"
}
]
}
]
}
成功傳回回應之後,請從回應本文複製 statesetId
。 在下一節中,您將使用 statesetId
來變更具有功能 id
「UNIT26」的單位 occupancy
屬性狀態。 如果使用 Postman,它的顯示如下:
更新功能狀態
本節示範如何使用功能 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 之類的工具,它看起來應該像這樣:
最後,在 HTTP 要求的本文中,包含原始 JSON 格式的樣式資訊,其會根據 occupied
屬性的值,將不同的色彩套用至該屬性:
{
"states": [
{
"keyName": "occupied",
"value": true,
"eventTimestamp": "2020-11-14T17:10:20"
}
]
}
注意
只有在張貼的時間戳記晚於前次要求的時間戳記時,才會儲存更新。
傳送 HTTP 要求並更新完成之後,您會收到 200 OK
HTTP 狀態碼。 如果您已為室內地圖實作動態樣式,則更新將會依指定的時間戳記顯示於轉譯的地圖中。
其他資訊
如需如何使用功能識別碼擷取功能狀態的資訊,請參閱功能狀態 - 列出狀態。
如需如何刪除狀態集及其資源的資訊,請參閱功能狀態 - 刪除狀態集。
如需使用 Azure 地圖服務建立工具功能狀態服務,來套用以室內地圖資料功能動態屬性為基礎之樣式的詳細資訊,請參閱如何實作建立工具室內地圖的動態樣式一文。
如需本文中討論的不同 Azure 地圖服務 Creator 服務的詳細資訊,請參閱 Creator Indoor Maps。
下一步
了解如何實作室內地圖的動態樣式。