地物状態セットを作成する

地物状態セットを使用して、動的なプロパティと値を定義します。その際、これらのプロパティと値をサポートする特定の地物に対して定義します。 この記事では、プロパティの値と対応するスタイルを定義する状態セットを作成し、プロパティの状態を変更する方法について説明します。

前提条件

重要

  • この記事では、地理的な URL us.atlas.microsoft.comを使用します。 Creator サービスが米国内で作成されていない場合は、別の地理的 URL を使用する必要があります。 詳細については、「Creator サービスにアクセスする」を参照してください。
  • この記事の URL の例では、次の項目を置き換える必要があります。
    • {Azure-Maps-Subscription-key} を Azure Maps サブスクリプション キーに置き換える必要があります。
    • {datasetId} を、"Creator を使用して屋内マップを作成する" のチュートリアルの「データセットの作成状態を確認する」セクションで取得した datasetId に置き換えます。

地物状態セットを作成する

状態セットを作成するには、次の手順を行います。

Stateset API を使用する新しい HTTP POST 要求を作成します。 要求は次の URL のようになります。

https://us.atlas.microsoft.com/featurestatesets?api-version=2.0&datasetId={datasetId}&subscription-key={Your-Azure-Maps-Subscription-key}

次に、要求のヘッダーContent-Typeapplication/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 状態を更新するには、Feature Statesets 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-Typeapplication/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"
        }
    ]
}

Note

この更新は、POST されたタイム スタンプが前の要求のタイム スタンプより後の場合にのみ保存されます。

HTTP 要求が送信され、更新が完了すると、200 OK HTTP 状態コードを受信します。 フロア ガイドに動的スタイル設定を実装した場合、レンダリングされたマップに指定されたタイムスタンプで更新内容が表示されます。

関連情報

次の手順

屋内マップに動的スタイル設定を実装する方法について説明します。