Feature State - Create Stateset

Applies to: see pricing tiers.

Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. This article introduces concepts and tools that apply to Azure Maps Creator.

This POST API allows the user to create a new Stateset and define stateset style using request body.

Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Feature State API is part of Creator.

The Feature State service allows the user to update the states of a feature and query them to be used in other services. The dynamic properties of a feature that don't belong to the dataset are referred to as states here.

This Feature State service pivot on the Stateset. Like Tileset, Stateset encapsulates the storage mechanism for feature states for a dataset.

Once the stateset is created, users can use that statesetId to post feature state updates and retrieve the current feature states. A feature can have only one state at a given point in time.

Feature state is defined by the key name, value and the timestamp. When a feature state update is posted to Azure Maps, the state value gets updated only if the provided state’s timestamp is later than the stored timestamp.

Azure Maps MapControl provides a way to use these feature states to style the features. Please refer to the State Tile documentation for more information.

POST https://{geography}.atlas.microsoft.com/featureStateSets?api-version=2.0&datasetId={datasetId}
POST https://{geography}.atlas.microsoft.com/featureStateSets?subscription-key={subscription-key}&api-version=2.0&datasetId={datasetId}&description={description}

URI Parameters

Name In Required Type Description
geography
path True
  • string

This parameter specifies where the Azure Maps Creator resource is located. Valid values are us and eu.

api-version
query True
  • string

Version number of Azure Maps API. Current version is 2.0

datasetId
query True
  • string

The datasetId must have been obtained from a successful Dataset Create API call.

description
query
  • string

Description for the stateset. Max length allowed is 1000.

subscription-key
query
  • string

One of the Azure Maps keys provided from an Azure Map Account. Please refer to this article for details on how to manage authentication.

Request Body

Name Type Description
styles
  • object[]

An array of stateset styles. The style rule could be a numeric or string or a boolean type style rule. Refer to NumberRuleObject, StringRuleObject and BooleanRuleObject definitions here.

Responses

Name Type Description
200 OK

Stateset created.

400 Bad Request

Bad request: one or more parameters were incorrectly specified or are mutually exclusive.

401 Unauthorized

Access denied due to invalid subscription key or invalid Azure Active Directory (Azure AD) bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the WWW-Authenticate header for error code and description of the provided Azure AD bearer token.

Headers

  • WWW-Authenticate: string
403 Forbidden

Permission, capacity, or authentication issues.

404 Not Found

Not Found: the requested resource could not be found, but it may be available again in the future.

500 Internal Server Error

An error occurred while processing the request. Please try again later.

Security

azure_auth

These are the Azure Active Directory OAuth2 Flows. When paired with Azure role-based access control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs.

To implement scenarios, we recommend viewing authentication concepts. In summary, this security definition provides a solution for modeling application(s) via objects capable of access control on specific APIs and scopes.

Notes

  • This security definition requires the use of the x-ms-client-id header to indicate which Azure Maps resource the application is requesting access to. This can be acquired from the Maps management API.

The Authorization URL is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. * The Azure role-based access control is configured from the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs. * Usage of the Azure Maps Web SDK allows for configuration based setup of an application for multiple use cases.

  • Currently, Azure Active Directory v1.0 tokens are supported.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

subscription-key

This is a shared key that is provisioned when creating an Azure Maps resource through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.

With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for.

For publicly exposed applications, our recommendation is to use server-to-server access of Azure Maps REST APIs where this key can be securely stored.

Type: apiKey
In: query

Examples

Create a new stateset with a datasetId

Sample Request

POST https://us.atlas.microsoft.com/featureStateSets?subscription-key=[subscription-key]&api-version=2.0&datasetId=5d34fbe8-87b7-f7c0-3144-c50e003a3c75&description=Stateset for Azure Maps POC.
{
  "styles": [
    {
      "keyname": "s1",
      "type": "boolean",
      "rules": [
        {
          "true": "#FF0000",
          "false": "#00FF00"
        }
      ]
    },
    {
      "keyname": "s2",
      "type": "number",
      "rules": [
        {
          "range": {
            "exclusiveMaximum": 50
          },
          "color": "#343deb"
        },
        {
          "range": {
            "minimum": 50,
            "exclusiveMaximum": 70
          },
          "color": "#34ebb1"
        },
        {
          "range": {
            "minimum": 70,
            "exclusiveMaximum": 90
          },
          "color": "#eba834"
        },
        {
          "range": {
            "minimum": 90
          },
          "color": "#eb3434"
        }
      ]
    },
    {
      "keyname": "s3",
      "type": "string",
      "rules": [
        {
          "stateValue1": "#FF0000",
          "stateValue2": "#FF00AA",
          "stateValueN": "#00FF00"
        }
      ]
    }
  ]
}

Sample Response

{
  "statesetId": "b24bdb73-1305-3212-1909-a428d937b64f"
}
{
  "error": {
    "code": "400 BadRequest",
    "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive."
  }
}
{
  "error": {
    "code": "401 Unauthorized",
    "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
  }
}
{
  "error": {
    "code": "403 Forbidden",
    "message": "Permission, capacity, or authentication issues."
  }
}
{
  "error": {
    "code": "404 NotFound",
    "message": "Not Found: the requested resource could not be found, but it may be available again in the future."
  }
}
{
  "error": {
    "code": "500 InternalServerError",
    "message": "An error occurred while processing the request. Please try again later."
  }
}

Definitions

ODataError

This object is returned when an error occurs in the Azure Maps API.

ODataErrorResponse

This response object is returned when an error occurs in the Azure Maps API.

StatesetCreatedResponse

The response model for the successful Stateset Create API.

StylesObject

The styles model.

ODataError

This object is returned when an error occurs in the Azure Maps API.

Name Type Description
code
  • string

The ODataError code.

details

This object is returned when an error occurs in the Azure Maps API.

message
  • string

If available, a human-readable description of the error.

target
  • string

If available, the target causing the error.

ODataErrorResponse

This response object is returned when an error occurs in the Azure Maps API.

Name Type Description
error

This object is returned when an error occurs in the Azure Maps API.

StatesetCreatedResponse

The response model for the successful Stateset Create API.

Name Type Description
statesetId
  • string

The ID for the new stateset created.

StylesObject

The styles model.

Name Type Description
styles
  • object[]

An array of stateset styles. The style rule could be a numeric or string or a boolean type style rule. Refer to NumberRuleObject, StringRuleObject and BooleanRuleObject definitions here.