Microsoft Azure Maps Spatial Service

Microsoft Azure Maps Spatial Service is a powerful tool that allows developers to analyze and visualize location-based data in their applications. By integrating spatial intelligence into their software, users can easily understand complex geospatial relationships, identify patterns, and make informed decisions based on real-time location data.

OpenAPI Specification

azure-maps-spatial-service-openapi-original.yml Raw ↑
swagger: '2.0'
info:
  title: Microsoft Azure Azure Maps Spatial Service
  version: '1.0'
  description: Azure Maps Spatial REST APIs
host: atlas.microsoft.com
schemes:
  - https
consumes: []
produces:
  - application/json
  - application/xml
securityDefinitions:
  AADToken:
    type: oauth2
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    flow: implicit
    description: >-
      These are the [Microsoft Entra OAuth
      2.0](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 Microsoft Entra ID
      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.

      * For more information on Microsoft identity platform, see [Microsoft
      identity platform
      overview](https://learn.microsoft.com/entra/identity-platform/v2-overview).
    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: []
responses:
  '202':
    description: >-
      Request Accepted: The request has been accepted for processing. Please use
      the URL in the Location Header to retry or access the results.
    headers:
      Location:
        type: string
        description: New URL to check for the results of the long-running operation.
  '400':
    description: >-
      Bad request: one or more parameters were incorrectly specified or are
      mutually exclusive.
    schema:
      $ref: '#/definitions/ODataErrorResponse'
  '401':
    description: >-
      Access denied due to invalid subscription key or invalid Microsoft Entra
      ID bearer token.  Make sure to provide a valid key for an active Azure
      subscription and Maps resource.  Otherwise, verify the
      [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header
      for error code and description of the provided Microsoft Entra ID bearer
      token.
    schema:
      $ref: '#/definitions/ODataErrorResponse'
    headers:
      WWW-Authenticate:
        type: string
        description: >-
          Bearer realm="https://atlas.microsoft.com/", error="invalid_token",
          error_description="The access token expired"
  '403':
    description: Permission, capacity, or authentication issues.
    schema:
      $ref: '#/definitions/ODataErrorResponse'
  '404':
    description: >-
      Not Found: the requested resource could not be found, but it may be
      available again in the future.
    schema:
      $ref: '#/definitions/ODataErrorResponse'
  '500':
    description: An error occurred while processing the request. Please try again later.
    schema:
      $ref: '#/definitions/ODataErrorResponse'
parameters:
  ClientId:
    name: x-ms-client-id
    description: >-
      Specifies which account is intended for usage in conjunction with the
      Microsoft Entra ID security model.  It represents a unique ID for the
      Azure Maps account and can be retrieved from the Azure Maps management  plane Account API. To use Microsoft Entra ID security in Azure Maps see
      the following [articles](https://aka.ms/amauthdetails) for guidance.
    type: string
    in: header
    required: false
    x-ms-parameter-location: client
  SubscriptionKey:
    name: subscription-key
    description: >-
      One of the Azure Maps keys provided from an Azure Map Account. Please
      refer to this
      [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication)
      for details on how to manage authentication.
    type: string
    in: query
    required: false
    x-ms-parameter-location: client
  ApiVersion:
    name: api-version
    description: Version number of Azure Maps API. Current version is 1.0
    type: string
    in: query
    required: true
    default: '1.0'
    x-ms-parameter-location: client
  JsonFormat:
    name: format
    description: Desired format of the response. Only `json` format is supported.
    type: string
    in: path
    required: true
    enum:
      - json
    x-ms-enum:
      name: JsonFormat
      modelAsString: true
      values:
        - value: json
          description: >-
            [The JavaScript Object Notation Data Interchange
            Format](https://tools.ietf.org/html/rfc8259)
    x-ms-parameter-location: method
  TextFormat:
    name: format
    description: Desired format of the response. Value can be either _json_ or _xml_.
    type: string
    in: path
    required: true
    enum:
      - json
      - xml
    x-ms-enum:
      name: TextFormat
      modelAsString: true
      values:
        - value: json
          description: >-
            [The JavaScript Object Notation Data Interchange
            Format](https://tools.ietf.org/html/rfc8259)
        - value: xml
          description: '[The Extensible Markup Language](https://www.w3.org/TR/xml/)'
    x-ms-parameter-location: method
  Mode:
    name: mode
    in: query
    description: Mode of the geofencing async event mechanism.
    required: false
    type: string
    enum:
      - All
      - EnterAndExit
    x-ms-enum:
      name: GeofenceMode
      modelAsString: true
      values:
        - value: All
          description: >-
            Publish all the query results to Azure Maps account event
            subscription.
        - value: EnterAndExit
          description: >-
            Only publish result when user location is considered as crossing
            geofencing boarder.
    x-ms-parameter-location: method
  UdidSpatial:
    name: udid
    in: query
    description: >-
      The unique id returned from [Data Upload
      API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadPreview)
      after uploading a valid GeoJSON FeatureCollection object.  Please refer to
      [RFC 7946](https://tools.ietf.org/html/rfc7946#section-3.3) for details.
      All the feature's properties should contain `geometryId`, which is used
      for identifying the geometry and is case-sensitive.
    required: true
    type: string
    x-ms-parameter-location: method
  SpatialDataUploadFormat:
    name: dataFormat
    description: >-
      Data format of the content being uploaded. Currently, only `geojson`
      format is supported.
    type: string
    in: query
    required: true
    enum:
      - geojson
    x-ms-enum:
      name: SpatialDataUploadFormat
      modelAsString: true
      values:
        - value: geojson
          description: >-
            [GeoJSON](https://tools.ietf.org/html/rfc7946) is a JSON based
            geospatial data interchange format.
    x-ms-parameter-location: method
paths:
  /spatial/geofence/{format}:
    get:
      x-publish: true
      description: "**Search Geofence Get API**<br><br>**Applies to:** S1 Pricing tier.<br><br>The Geofence Get API allows you to retrieve the proximity of a coordinate to a <br>geofence that has been uploaded to the Data service. You can use the <br>[Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadPreview) to upload <br>a geofence or set of fences. See [Geofencing GeoJSON data](https://docs.microsoft.com/en-us/azure/azure-maps/geofence-geojson) <br>for more details on the geofence data format. To query the proximity of a coordinate, you supply the location of the object you are tracking as well<br>as the ID for the fence or set of fences, and the response will contain information about<br>the distance from the outer edge of the geofence. A negative value signifies that the <br>coordinate is inside of the fence while a positive value means that it is outside of the<br>fence.This API can be used for a variety of scenarios that include things like asset <br>tracking, fleet management, or setting up alerts for moving objects.<br><br>The API supports [integration with Event Grid](https://docs.microsoft.com/azure/azure-maps/azure-maps-event-grid-integration). The isAsync parameter is used to enable integration with Event Grid (disabled by default).<br>To test this API, you can upload the sample data from Post Geofence API examples (Request Body) via Data Upload API and replace the `{udid}` from the sample request below with the udid returned by Data Upload API.<br><br><br>### Geofencing InnerError code<br><br>In geofencing response error contract, `innererror` is  an object containing service specific information about the error. `code` is a property in `innererror` which can map to a specific geofencing error type. The table belows shows the code mapping between all the known client error type to the corresponding geofencing error `message`.<br><br>innererror.code | error.message<br>---------------------------- | -------------------------------------- <br>NullDeviceId  | Device Id should not be null.<br>NullUdid\t  | Udid should not be null.<br>UdidWrongFormat| Udid should be acquired from user data ingestion API.<br>InvalidUserTime| Usertime is invalid.<br>InvalidSearchBuffer| Searchbuffer is invalid.<br>InvalidSearchRange| The value range of searchbuffer should be from 0 to 500 meters.<br>InvalidLatLon| Lat and/or lon parameters are invalid.<br>InvalidIsAsyncValue| The IsAsync parameter is invalid.<br>InvalidModeValue| The mode parameter invalid.<br>InvalidJson| Geofencing data is not a valid json file.<br>NotSupportedGeoJson| Geofencing data can't be read as a Feature or FeatureCollections.<br>InvalidGeoJson| Geofencing data is invalid.<br>NoUserDataWithAccountOrSubscription| Can't find user geofencing data with provided account-id and/or subscription-id.<br>NoUserDataWithUdid|\tCan't find user geofencing data with provided udId."
      operationId: microsoftAzureSpatialGetgeofence
      x-ms-examples:
        Geofence:
          $ref: ./examples/GetGeofence.json
      parameters:
        - $ref: '#/parameters/ClientId'
        - $ref: '#/parameters/SubscriptionKey'
        - $ref: '#/parameters/ApiVersion'
        - $ref: '#/parameters/JsonFormat'
        - name: deviceId
          in: query
          description: ID of the device
          required: true
          type: string
        - name: udId
          in: query
          description: >-
            The unique id returned from [Data Upload
            API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadPreview)
            after uploading a valid GeoJSON FeatureCollection object. Please
            refer to [RFC 7946](https://tools.ietf.org/html/rfc7946#section-3.3)
            for details. All the feature's  properties should contain
            `geometryId`, which is used for identifying the geometry and is
            case-sensitive.
          required: true
          type: string
        - name: lat
          in: query
          description: 'The latitude of the location being passed.  Example: 48.36.'
          required: true
          type: number
        - name: lon
          in: query
          description: 'The longitude of the location being passed.  Example: -124.63.'
          required: true
          type: number
        - name: z
          in: query
          description: >-
            The sea level in meter of the location being passed. If this
            parameter is presented, 2D extrusion is used. Example: 200.
          required: false
          type: number
        - name: userTime
          in: query
          description: >-
            The user request time. If not presented in the request, the default
            value is DateTime.Now.
          required: false
          type: string
        - name: searchBuffer
          in: query
          description: >-
            The radius of the buffer around the geofence in meters that defines
            how far to search inside and outside the border of the fence against
            the coordinate that was provided when calculating the result.  The
            minimum value is 0, and the maximum is 500.  The default value is
            50.
          required: false
          type: number
          minimum: 0
          maximum: 500
          default: 50
        - name: isAsync
          in: query
          description: >-
            If true, the request will use async event mechanism; if false, the
            request will be synchronized and do not trigger any event. The
            default value is false.
          required: false
          type: boolean
          default: false
        - $ref: '#/parameters/Mode'
      produces:
        - application/json
      responses:
        '200':
          description: >-
            OK The X-Correlation-id header value is present in an async call's
            response and the Event Grid event data. It helps correlate the async
            call’s response with the corresponding Event Grid event.
          headers:
            X-Correlation-id:
              description: >-
                Value present in an async call's response and the Event Grid
                event data. It helps correlate the async call’s response with
                the corresponding Event Grid event.
              type: string
          schema:
            $ref: '#/definitions/GeofenceResponse'
        '400':
          $ref: '#/responses/400'
        '401':
          $ref: '#/responses/401'
        '403':
          $ref: '#/responses/403'
        '404':
          $ref: '#/responses/404'
        '500':
          $ref: '#/responses/500'
      summary: Microsoft Azure Get Spatial Geofence Format
      tags:
        - Spatial
    post:
      x-publish: true
      description: >-
        **Search Geofence Post API**<br>**Applies to:** S1 Pricing tier.<br>The
        Geofence Post API allows you to retrieve the proximity of a coordinate
        to a  provided geofence or set of fences. With POST call, you do not
        have to upload the fence data in advance, instead you supply the
        location of the object you are tracking in query parameters as well as
        the fence or set of fences data in post request body. See [Geofencing
        GeoJSON
        data](https://docs.microsoft.com/en-us/azure/azure-maps/geofence-geojson)
        for more details on the geofence data format. The response will contain
        information about the distance from the outer edge of the geofence. A
        negative value signifies that the  coordinate is inside of the fence
        while a positive value means that it is outside of the fence.This API
        can be used for a variety of scenarios that include things like asset  tracking, fleet management, or setting up alerts for moving
        objects.<br><br>The API supports [integration with Event
        Grid](https://docs.microsoft.com/azure/azure-maps/azure-maps-event-grid-integration).  The isAsync parameter is used to enable integration with Event Grid
        (disabled by default).
      operationId: microsoftAzureSpatialPostgeofence
      x-ms-examples:
        Geofence:
          $ref: ./examples/PostGeofence.json
      parameters:
        - $ref: '#/parameters/ClientId'
        - $ref: '#/parameters/SubscriptionKey'
        - $ref: '#/parameters/ApiVersion'
        - $ref: '#/parameters/JsonFormat'
        - name: deviceId
          in: query
          description: ID of the device
          required: true
          type: string
        - name: lat
          in: query
          description: 'The latitude of the location being passed.  Example: 48.36.'
          required: true
          type: number
        - name: lon
          in: query
          description: 'The longitude of the location being passed.  Example: -124.63.'
          required: true
          type: number
        - name: z
          in: query
          description: >-
            The sea level in meter of the location being passed. If this
            parameter is presented, 2D extrusion geofencing is applied. Example:
            200.
          required: false
          type: number
        - name: userTime
          in: query
          description: >-
            The user request time. If not presented in the request, the default
            value is DateTime.UtcNow.
          required: false
          type: string
        - name: searchBuffer
          in: query
          description: >-
            The radius of the buffer around the geofence in meters that defines
            how far to search inside and outside the border of the fence against
            the coordinate that was provided when calculating the result.  The
            minimum value is 0, and the maximum is 500.  The default value is
            50.
          required: false
          type: number
          minimum: 0
          maximum: 500
          default: 50
        - name: isAsync
          in: query
          description: >-
            If true, the request will use async event mechanism; if false, the
            request will be synchronized and do not trigger any event. The
            default value is false.
          required: false
          type: boolean
          default: false
        - $ref: '#/parameters/Mode'
        - name: searchGeofenceRequestBody
          in: body
          description: The geofencing GeoJSON data.
          required: true
          schema:
            $ref: '#/definitions/GeoJSONFeatureCollection'
      produces:
        - application/json
      responses:
        '200':
          description: >-
            OK The X-Correlation-id header value is present in an async call's
            response and the Event Grid event data. It helps correlate the async
            call’s response with the corresponding Event Grid event.
          headers:
            X-Correlation-id:
              description: >-
                Value present in an async call's response and the Event Grid
                event data. It helps correlate the async call’s response with
                the corresponding Event Grid event.
              type: string
          schema:
            $ref: '#/definitions/GeofenceResponse'
        '400':
          $ref: '#/responses/400'
        '401':
          $ref: '#/responses/401'
        '403':
          $ref: '#/responses/403'
        '404':
          $ref: '#/responses/404'
        '500':
          $ref: '#/responses/500'
      summary: Microsoft Azure Post Spatial Geofence Format
      tags:
        - Spatial
  /spatial/buffer/{format}:
    post:
      x-publish: true
      description: >-
        **Applies to**: S1 pricing tier.<br><br>This API returns a
        FeatureCollection where each Feature is a buffer around the
        corresponding indexed Feature of the input. The buffer could be either
        on the outside or the inside of the provided Feature, depending on the
        distance provided in the input. There must be either one distance
        provided per Feature in the FeatureCollection  input, or if only one
        distance is provided, then that distance is applied to every Feature in
        the collection. The positive (or negative) buffer of a geometry is
        defined as the Minkowski sum (or difference) of the geometry with a
        circle of radius equal to the absolute value of the buffer distance. The
        buffer API always returns a polygonal result. The negative or
        zero-distance buffer of lines and points is always an empty polygon. The
        input may contain a collection of Point, MultiPoint, Polygon,
        MultiPolygon, LineString and MultiLineString. GeometryCollection will be
        ignored if provided.
      operationId: microsoftAzureSpatialPostbuffer
      x-ms-examples:
        PostBuffer:
          $ref: ./examples/PostBuffer.json
      parameters:
        - $ref: '#/parameters/ClientId'
        - $ref: '#/parameters/SubscriptionKey'
        - $ref: '#/parameters/ApiVersion'
        - $ref: '#/parameters/JsonFormat'
        - name: bufferRequestBody
          in: body
          description: >-
            The FeatureCollection and the list of distances (one per feature or
            one for all features).
          required: true
          schema:
            $ref: '#/definitions/BufferRequestBody'
      produces:
        - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/BufferResponse'
        '400':
          $ref: '#/responses/400'
        '401':
          $ref: '#/responses/401'
        '403':
          $ref: '#/responses/403'
        '404':
          $ref: '#/responses/404'
        '500':
          $ref: '#/responses/500'
      summary: Microsoft Azure Post Spatial Buffer Format
      tags:
        - Spatial
    get:
      x-publish: true
      description: >-
        **Applies to**: S1 pricing tier.<br><br>This API returns a
        FeatureCollection where each Feature is a buffer around the
        corresponding indexed Feature of the input. The buffer could be either
        on the outside or the inside of the provided Feature, depending on the
        distance provided in the input. There must be either one distance
        provided per Feature in the FeatureCollection  input, or if only one
        distance is provided, then that distance is applied to every Feature in
        the collection. The positive (or negative) buffer of a geometry is
        defined as the Minkowski sum (or difference) of the geometry with a
        circle of radius equal to the absolute value of the buffer distance. The
        buffer API always returns a polygonal result. The negative or
        zero-distance buffer of lines and points is always an empty polygon. The
        input features are provided by a GeoJSON file which is uploaded via
        [Data Upload
        API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadPreview)
        and referenced by a unique udid. The GeoJSON file may contain a
        collection of Point, MultiPoint, Polygon, MultiPolygon, LineString and
        MultiLineString. GeometryCollection will be ignored if provided.
        <br><br>To test this API, you can upload the sample data from [Post
        Buffer
        API](https://docs.microsoft.com/en-us/rest/api/maps/spatial/postbuffer#examples)
        examples (Request Body without distances array) via [Data Upload
        API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadPreview)
        and replace the `{udid}` from the [sample request
        below](https://docs.microsoft.com/en-us/rest/api/maps/spatial/getbuffer#examples)
        with the udid returned by Data Upload API.
      operationId: microsoftAzureSpatialGetbuffer
      x-ms-examples:
        GetBuffer:
          $ref: ./examples/GetBuffer.json
      parameters:
        - $ref: '#/parameters/ClientId'
        - $ref: '#/parameters/SubscriptionKey'
        - $ref: '#/parameters/ApiVersion'
        - $ref: '#/parameters/JsonFormat'
        - $ref: '#/parameters/UdidSpatial'
        - name: distances
          in: query
          description: >-
            The list of distances (one per feature or one for all features),
            delimited by semicolons. For example, 12.34;-56.78. Positive
            distance will generate a buffer outside of the feature, whereas
            negative distance will generate a buffer inside of the feature. If
            the negative distance larger than the geometry itself, an empty
            polygon will be returned.
          required: true
          type: string
      produces:
        - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/BufferResponse'
        '400':
          $ref: '#/responses/400'
        '401':
          $ref: '#/responses/401'
        '403':
          $ref: '#/responses/403'
        '404':
          $ref: '#/responses/404'
        '500':
          $ref: '#/responses/500'
      summary: Microsoft Azure Get Spatial Buffer Format
      tags:
        - Spatial
  /spatial/closestPoint/{format}:
    post:
      x-publish: true
      description: >-
        **Applies to**: S1 pricing tier.<br><br>This API returns the closest
        point between a base point and a given set of target points. The set of
        target points is provided by user data in post request body. The user
        data may only contain a collection of Point geometry. MultiPoint or
        other geometries will be ignored if provided. The algorithm does not
        take into account routing or traffic. The maximum number of points
        accepted is 100,000. Information returned includes closest point
        latitude, longitude, and distance in meters from the closest point.
      operationId: microsoftAzureSpatialPostclosestpoint
      x-ms-examples:
        PostClosestPoint:
          $ref: ./examples/PostClosestPoint.json
      parameters:
        - $ref: '#/parameters/ClientId'
        - $ref: '#/parameters/SubscriptionKey'
        - $ref: '#/parameters/ApiVersion'
        - $ref: '#/parameters/JsonFormat'
        - name: lat
          in: query
          description: >-
            The base point latitude of the location being passed.  Example:
            47.622942.
          required: true
          type: number
        - name: lon
          in: query
          description: >-
            The base point longitude of the location being passed.  Example:
            -122.316456.
          required: true
          type: number
        - name: numberOfClosestPoints
          in: query
          description: >-
            The number of closest points expected from response. Default: 1,
            minimum: 1 and maximum: 50
          required: false
          type: integer
        - name: closestPointRequestBody
          in: body
          description: >-
            The FeatureCollection of Point geometries from which closest point
            to source point should be determined. All the feature's properties
            should contain `geometryId`, which is used for identifying the
            geometry and is case-sensitive.
          required: true
          schema:
            $ref: '#/definitions/GeoJSONFeatureCollection'
      produces:
        - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PostClosestPointResponse'
        '400':
          $ref: '#/responses/400'
        '401':
          $ref: '#/responses/401'
        '403':
          $ref: '#/responses/403'
        '404':
          $ref: '#/responses/404'
        '500':
          $ref: '#/responses/500'
      summary: Microsoft Azure Post Spatial Closestpoint Format
      tags:
        - Spatial
    get:
      x-publish: true
      description: >-
        **Applies to**: S1 pricing tier.<br><br>This API returns the closest
        point between a base point and a given set of points in the user
        uploaded data set identified by udid. The set of target points is
        provided by a GeoJSON file which is uploaded via [Data Upload
        API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadPreview)
        and referenced by a unique udid. The GeoJSON file may only contain a
        collection of Point geometry. MultiPoint or other geometries will be
        ignored if provided. The maximum number of points accepted is 100,000.
        The algorithm does not take into account routing or traffic. Information
        returned includes closest point latitude, longitude, and distance in
        meters from the closest point.<br><br>To test this API, you can upload
        the sample data from [Post Closest Point
        API](https://docs.microsoft.com/en-us/rest/api/maps/spatial/postclosestpoint#examples)
        examples (Request Body) via [Data Upload
        API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadPreview)
        and replace the `{udid}` from the [sample request
        below](https://docs.microsoft.com/en-us/rest/api/maps/spatial/getclosestpoint#examples)
        with the udid returned by Data Upload API.
      operationId: microsoftAzureSpatialGetclosestpoint
      x-ms-examples:
        GetClosestPoint:
          $ref: ./examples/GetClosestPoint.json
      parameters:
        - $ref: '#/parameters/ClientId'
        - $ref: '#/parameters/SubscriptionKey'
        - $ref: '#/parameters/ApiVersion'
        - $ref: '#/parameters/JsonFormat'
        - $ref: '#/parameters/UdidSpatial'
        - name: lat
          in: query
          description: >-
            The base point latitude of the location being passed.  Example:
            47.622942.
          required: true
          type: number
        - name: lon
          in: query
          description: >-
            The base point longitude of the location being passed.  Example:
            -122.316456.
          required: true
          type: number
        - name: numberOfClosestPoints
          in: query
          description: >-
            The number of closest points expected from response. Default: 1,
            minimum: 1 and maximum: 50
          required: false
          type: integer
      produces:
        - application/json
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/GetClosestPointResponse'
        '400':
          $ref: '#/responses/400'
        '401':
          $ref: '#/responses/401'
        '403':
          $ref: '#/responses/403'
        '404':
          $ref: '#/responses/404'
        '500':
          $ref: '#/responses/500'
      summary: Microsoft Azure Get Spatial Closestpoint Format
      tags:
        - Spatial
  /spatial/pointInPolygon/{format}:
    post:
      x-publish: true
      description: >-
    

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/microsoft-azure/refs/heads/main/openapi/azure-maps-spatial-service-openapi-original.yml