Microsoft Azure Maps Wayfinding Service

Microsoft Azure Maps Wayfinding Service is a cloud-based service that provides interactive maps and navigation capabilities for users to easily create and use custom wayfinding experiences in their applications. With this service, developers can integrate real-time directions, route optimization, and location-based services into their applications, allowing users to navigate complex indoor and outdoor environments with ease.

OpenAPI Specification

azure-maps-wayfinding-service-openapi-original.yml Raw ↑
swagger: '2.0'
info:
  version: 2023-03-01-preview
  title: Microsoft Azure Azure Maps Wayfinding Service
  description: Azure Maps Wayfinding REST APIs
schemes:
  - https
consumes: []
produces:
  - application/json
securityDefinitions:
  AADToken:
    type: oauth2
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    flow: implicit
    description: >-
      These are the [Azure Active Directory
      OAuth2](https://docs.microsoft.com/azure/active-directory/develop/v1-overview)
      Flows. When paired with [Azure role-based
      access](https://docs.microsoft.com/azure/role-based-access-control/overview)
      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](https://aka.ms/amauth). 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](https://aka.ms/amauthdetails).

      * 

      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](https://aka.ms/amrbac) via Azure portal, PowerShell,
      CLI, Azure SDKs, or REST APIs.

      * 

      Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for
      configuration based setup of an application for multiple use cases.

      * Currently, Azure Active Directory [v1.0 or
      v2.0](https://docs.microsoft.com/azure/active-directory/develop/azure-ad-endpoint-comparison)
      supports Work, School, and Guests but does not support Personal accounts.
    scopes:
      https://atlas.microsoft.com/.default: https://atlas.microsoft.com/.default
  SharedKey:
    type: apiKey
    description: >-
      This is a shared key that is provisioned when you [Create an Azure Maps
      account](https://docs.microsoft.com/azure/azure-maps/quick-demo-map-app#create-an-azure-maps-account)
      in the Azure portal or using PowerShell, CLI, Azure SDKs, or REST API.

       With this key, any application can access all REST API. In other words, this key can be used as a master key in the account that they are issued in.

       For publicly exposed applications, our recommendation is to use the [confidential client applications](https://docs.microsoft.com/azure/azure-maps/authentication-best-practices#confidential-client-applications) approach to access Azure Maps REST APIs so your key can be securely stored.
    name: subscription-key
    in: query
  SasToken:
    type: apiKey
    description: >-
      This is a shared access signature token is created from the List SAS
      operation on the [Azure Maps resource](https://aka.ms/amauth) through the
      Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or
      REST APIs.

       With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key.

       For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the [Map account resource](https://aka.ms/amauth) to limit rendering abuse and regularly renew the SAS Token.
    name: SAS Token
    in: header
security:
  - AADToken:
      - https://atlas.microsoft.com/.default
  - SharedKey: []
  - SasToken: []
definitions:
  Point:
    description: A point within the facility.
    type: object
    properties:
      latitude:
        description: the point latitude
        type: number
      longitude:
        description: the point longitude
        type: number
    required:
      - latitude
      - longitude
  Leg:
    description: A section of the overall path.
    type: object
    properties:
      mode:
        type: string
        description: >-
          The leg mode of traversal for this leg. It can be default (all on the
          same level), elevators or stairs when moving vertically between
          levels.
      lengthInMeters:
        type: number
        description: The leg length, in meters, of this leg.
      timeInSeconds:
        type: integer
        format: int64
        description: >-
          The leg travel time, in seconds, to travel between the first and last
          point of this leg.
      startLevel:
        type: integer
        format: int32
        description: The floor where this leg starts.
      endLevel:
        type: integer
        format: int32
        description: The floor where this leg ends.
      points:
        description: >-
          The leg shape points. Their vertical position is determined as
          follows: all the points are at the same height when startLevel and
          endLevel are the same, otherwise the array will contain only two
          points: the first at startLevel and the second at endLevel.
        type: array
        items:
          $ref: '#/definitions/Point'
        x-ms-identifiers: []
  Path:
    description: >-
      The details about a particular path between the origin and destination. It
      can be made up of one or more legs.
    type: object
    properties:
      lengthInMeters:
        type: number
        description: The path length, in meters, of the entire path.
      timeInSeconds:
        type: integer
        format: int64
        description: >-
          The path total time, in seconds, to travel between the origin and the
          destination when following this path.
      legs:
        description: The different travel sections of this path.
        type: array
        items:
          $ref: '#/definitions/Leg'
        x-ms-identifiers: []
  WayfindResult:
    description: The object returned by this Wayfinding Path request.
    type: object
    properties:
      noResultExplanation:
        type: string
        description: >-
          In the event that no paths are found, the `paths` array will be empty.
          If the reason no paths were found can be determined, this property
          will provide an explanation why.
        enum:
          - NoExplanation
        x-ms-enum:
          name: NoResultExplanation
          modelAsString: true
          values:
            - value: NoExplanation
              description: >-
                Default value provided when a result is returned or it wasn't
                possible to determine why a path wasn't found.
        readOnly: true
      paths:
        description: >-
          An array of wayfinding path results.  An empty array will be returned
          if no results were found.
        type: array
        items:
          $ref: '#/definitions/Path'
        x-ms-identifiers: []
parameters:
  ApiVersion:
    name: api-version
    description: Version number of Azure Maps API.
    type: string
    in: query
    required: true
    x-ms-parameter-location: client
  RoutesetId:
    name: routesetId
    description: The ID of the routeset to query from.
    type: string
    in: query
    required: true
    x-ms-parameter-location: client
  FacilityId:
    name: facilityId
    type: string
    in: query
    description: The identifier of the facility within the routeset where to find the path.
    required: true
    x-ms-parameter-location: client
  FromPoint:
    name: fromPoint
    type: string
    in: query
    description: 'The path origin point in the following format: {latitude},{longitude}.'
    required: true
    x-ms-parameter-location: client
  FromLevel:
    name: fromLevel
    type: integer
    format: int32
    in: query
    description: The path origin level.
    required: true
    x-ms-parameter-location: client
  ToPoint:
    name: toPoint
    type: string
    in: query
    description: 'The path destination in the following format: {latitude},{longitude}.'
    required: true
    x-ms-parameter-location: client
  ToLevel:
    name: toLevel
    type: integer
    format: int32
    in: query
    description: The path destination level.
    required: true
    x-ms-parameter-location: client
  AvoidFeatures:
    name: avoidFeatures
    description: >-
      To avoid certain types of connectors in the resulting path. Multiple
      values can be specified.
    type: array
    items:
      type: string
      enum:
        - stairs
        - elevators
      x-ms-enum:
        name: avoidFeatures
        modelAsString: true
        values:
          - value: stairs
            description: Avoid stairs.
          - value: elevators
            description: Avoid elevators.
    in: query
    x-ms-parameter-location: client
  MinWidth:
    name: minWidth
    description: >-
      The minimum width (in meters) of openings in the searched path. For
      example, if you specified a minimum width of 0.85, the searched path will
      avoid openings less than 85 centimeters wide. Note: by using this value,
      the resulting path points will be buffered from walls and other vertical
      obstacles by half of the width provided.
    type: number
    in: query
    default: '0.55'
    x-ms-parameter-location: client
paths:
  /wayfinding/path:
    get:
      summary: 'Microsoft Azure Use To Calculate The Best Path Between Two Locations Within A Facility'
      description: >-
        <br><br> The Wayfinding Service is part of Creator, and adheres to the
        [Open Geospatial
        Consortium](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html)
        standard. Wayfinding uses indoor map data from the
        [routeset](/rest/api/maps-creator/routeset) to calculate the best path
        between two locations within the same facility. For more information,
        see
        [Wayfinding](/azure/azure-maps/creator-indoor-maps#wayfinding-preview)
        in the _Creator for indoor maps_ concepts article.
      operationId: microsoftAzureWayfindingGetpath
      x-ms-examples:
        Get the shortest path between two points in the facility.:
          $ref: ./examples/wayfind/Wayfinding_GetPath.json
      parameters:
        - $ref: ../../../Common/preview/1.0/common.json#/parameters/ClientId
        - $ref: '#/parameters/ApiVersion'
        - $ref: '#/parameters/RoutesetId'
        - $ref: '#/parameters/FacilityId'
        - $ref: '#/parameters/FromPoint'
        - $ref: '#/parameters/FromLevel'
        - $ref: '#/parameters/ToPoint'
        - $ref: '#/parameters/ToLevel'
        - $ref: '#/parameters/AvoidFeatures'
        - $ref: '#/parameters/MinWidth'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/WayfindResult'
        default:
          $ref: ../../../Common/preview/1.0/common.json#/responses/default
      tags:
        - Wayfinding
tags:
  - name: Wayfinding