Поделиться через


Route - Post Snap To Roads Batch

API привязки к дорогам отправляет пакетные пакеты до 100 запросов в качестве одного вызова API Snap To Roads. Этот API позволяет эффективно обрабатывать несколько запросов в одном запросе, уменьшая потребность в отдельных вызовах.

Отправка синхронного пакетного запроса

Синхронный API рекомендуется для упрощенных пакетных запросов. Когда служба получает запрос, он ответит сразу после вычисления пакетных элементов и не сможет получить результаты позже. Синхронный API возвращает ошибку времени ожидания (ответ 408), если запрос занимает более 60 секунд. Количество пакетных элементов ограничено 100 для этого API.

POST https://atlas.microsoft.com/route/snapToRoads:batch?api-version=2025-01-01

Текст POST для пакетного запроса

Для отправки привязки к дорогам запросов будет использоваться запрос POST, в котором текст запроса будет содержать массив batchItems в формате json, а заголовок Content-Type будет иметь значение application/json. Ниже приведен пример текста запроса, содержащего 2 привязки к дорогам запросам:

{
  "batchItems": [
    {
      "optionalId": "bbc9c0f6-ab52-49d8-a788-a658fa654c94",
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "type": "Point",
            "coordinates": [
              -122.336691,
              47.59085
            ]
          },
          "properties": {
          }
        }
      ],
      "includeSpeedLimit": true,
      "travelMode": "driving"
    },
    {
      "optionalId": "300af787-589b-4088-accd-56828542e293",
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "type": "Point",
            "coordinates": [
              -122.336023,
              47.601616
            ]
          },
          "properties": {
          }
        }
      ],
      "includeSpeedLimit": true,
      "travelMode": "driving"
    }
  ]
}

Привязка к дорогам объект batchItem может принять любой из поддерживаемых привязки к дорогамтекст запроса

Пакет должен содержать по крайней мере 1 запроса.

Модель пакетного ответа

Пакетный ответ содержит компонент summary, указывающий totalRequests, которые были частью исходного пакетного запроса и successfulRequests то есть запросы, которые были выполнены успешно. Пакетный ответ также содержит массив batchItems, содержащий ответ для каждого запроса и каждого запроса в пакетном запросе. batchItems будет содержать результаты в том же порядке, что и исходные запросы, отправленные в пакетном запросе. Каждый элемент имеет один из следующих типов:

  • SnapToRoadsResponse. Если запрос выполнен успешно.

  • Error — если запрос завершился ошибкой. Ответ будет содержать code и message в этом случае.

POST https://atlas.microsoft.com/route/snapToRoads:batch?api-version=2025-01-01

Параметры URI

Имя В Обязательно Тип Описание
api-version
query True

string

Номер версии API Azure Maps.

Заголовок запроса

Media Types: "application/geo+json"

Имя Обязательно Тип Описание
x-ms-client-id

string

Указывает, какая учетная запись предназначена для использования в сочетании с моделью безопасности идентификатора Microsoft Entra. Он представляет уникальный идентификатор учетной записи Azure Maps и может быть получен из API учетной записи уровня управления Azure Maps. Сведения о том, как использовать безопасность идентификатора Microsoft Entra в Azure Maps, см. в следующих статьях .

Accept-Language

string

Язык, в котором должны быть возвращены результаты маршрутизации.

Дополнительные сведения см. в поддержке локализации вAzure Maps.

Текст запроса

Media Types: "application/geo+json"

Имя Тип Описание
batchItems

SnapToRoadsBatchRequestItem[]

Список запросов для обработки.

Ответы

Имя Тип Описание
200 OK

SnapToRoadsBatchResponse

Пакетный запрос успешно обработан. Текст ответа содержит все результаты пакета.

Other Status Codes

MapsErrorResponse

Произошла непредвиденная ошибка.

Заголовки

x-ms-error-code: string

Безопасность

AADToken

Это потоки Microsoft Entra OAuth 2.0. При паре с доступом на основе ролей Azure его можно использовать для управления доступом к REST API Azure Maps. Управление доступом на основе ролей Azure используется для назначения доступа к одной или нескольким учетным записям ресурсов Azure Maps или вложенным ресурсам. Доступ к любому пользователю, группе или субъекту-службе можно предоставить через встроенную роль или пользовательскую роль, состоящую из одного или нескольких разрешений для REST API Azure Maps.

Для реализации сценариев рекомендуется просматривать концепции проверки подлинности . В целом, это определение безопасности предоставляет решение для моделирования приложений через объекты, способные управлять доступом в определенных API и областях.

Примечание.

  • Для этого определения безопасности требуется использовать заголовок x-ms-client-id, чтобы указать, к какой ресурсу Azure Maps приложение запрашивает доступ. Это можно получить изAPI управления картами .
  • Authorization URL зависит от экземпляра общедоступного облака Azure. В национальных облаках есть уникальные URL-адреса авторизации и конфигурации идентификатора Microsoft Entra.
  • Управление доступом на основе ролей Azure настраивается на основе плоскости управления Azure с помощью портала Azure, PowerShell, CLI, пакетов SDK Azure или REST API.
  • Использование веб-пакета SDK для Azure Maps позволяет настроить приложение на основе конфигурации для нескольких вариантов использования.
  • Дополнительные сведения о платформе удостоверений Майкрософт см. в обзоре платформы удостоверений Майкрософт.

Тип: oauth2
Flow: implicit
URL-адрес авторизации: https://login.microsoftonline.com/common/oauth2/authorize

Области

Имя Описание
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Это общий ключ, подготовленный при создании ресурса Azure Maps через плоскость управления Azure с помощью портала Azure, PowerShell, CLI, пакетов SDK Azure или REST API.

С помощью этого ключа любой приложению разрешен доступ ко всем REST API. Другими словами, они в настоящее время могут рассматриваться как главные ключи учетной записи, для которой они выданы.

Для общедоступных приложений мы рекомендуем использовать доступ к REST API Azure Maps на сервере, где этот ключ можно безопасно хранить.

Тип: apiKey
В: header

SAS Token

Это маркер подписанного URL-адреса создается из операции SAS списка на ресурсе Azure Maps через плоскость управления Azure с помощью портала Azure, PowerShell, CLI, пакетов SDK Azure или REST API.

С помощью этого маркера любой приложению разрешен доступ с помощью управления доступом на основе ролей Azure и точного управления сроком действия, скоростью и регионами, используемыми для конкретного маркера. Другими словами, маркер SAS можно использовать для разрешения приложений управлять доступом более защищенным способом, чем общий ключ.

Для общедоступных приложений мы рекомендуем настроить определенный список разрешенных источников в ресурсе учетной записи карты карты, чтобы ограничить злоупотребление отрисовкой и регулярно обновлять маркер SAS.

Тип: apiKey
В: header

Примеры

A Snap To Roads Batch request containing 1 query

Образец запроса

POST https://atlas.microsoft.com/route/snapToRoads:batch?api-version=2025-01-01

{
  "batchItems": [
    {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "coordinates": [
              -122.336729,
              47.590868
            ],
            "type": "Point"
          },
          "properties": {}
        },
        {
          "type": "Feature",
          "geometry": {
            "coordinates": [
              -122.336042,
              47.601604
            ],
            "type": "Point"
          },
          "properties": {}
        }
      ],
      "includeSpeedLimit": true,
      "travelMode": "driving"
    },
    {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "coordinates": [
              -122.133269,
              47.6470965
            ],
            "type": "Point"
          },
          "properties": {}
        },
        {
          "type": "Feature",
          "geometry": {
            "coordinates": [
              -74.00487,
              40.71396
            ],
            "type": "Point"
          },
          "properties": {}
        }
      ],
      "travelMode": "driving"
    }
  ]
}

Пример ответа

{
  "summary": {
    "successfulRequests": 1,
    "totalRequests": 2
  },
  "batchItems": [
    {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "coordinates": [
              -122.336769,
              47.590885
            ],
            "type": "Point"
          },
          "properties": {
            "inputIndex": 0,
            "name": "WA-99 N",
            "speedLimitInKilometersPerHour": 80
          }
        },
        {
          "type": "Feature",
          "geometry": {
            "coordinates": [
              -122.336008,
              47.601609
            ],
            "type": "Point"
          },
          "properties": {
            "inputIndex": 1,
            "name": "WA-99 N",
            "speedLimitInKilometersPerHour": 80
          }
        }
      ]
    },
    {
      "error": {
        "code": "BadRequest",
        "message": "The distance between two consecutive points (-122.133269,47.6470965) (-74.00487,40.71396) must be within 2.5 kilometers of each other."
      }
    }
  ]
}

Определения

Имя Описание
ErrorAdditionalInfo

Дополнительные сведения об ошибке управления ресурсами.

ErrorDetail

Сведения об ошибке.

FeaturesItemTypeEnum

Указывает тип GeoJSON. Единственным поддерживаемым типом объекта является Feature. Дополнительные сведения см. в RFC 7946.

FeatureTypeEnum

Указывает тип GeoJSON. Единственным поддерживаемым типом объекта является FeatureCollection. Дополнительные сведения см. в RFC 7946.

GeoJsonPoint

Допустимый тип геометрии GeoJSON Point. Дополнительные сведения см. в RFC 7946.

InputSnapToRoadsFeaturesItem

Задает привязку входных данных к точкам дорог. GeoJSON объект компонента и дополнительные свойства. Дополнительные сведения см. в RFC 7946.

MapsErrorDetail

Сведения об ошибке.

MapsErrorResponse

Распространенный ответ об ошибке для API Azure Maps для возврата сведений об ошибке для неудачных операций.

MapsInnerError

Объект, содержащий более конкретные сведения, чем текущий объект об ошибке.

PointGeometry

Точка источника, передаваемая в качестве допустимого объекта GeoJSON Geometry, из которого должен вычисляться многоугольник диапазона. Дополнительные сведения см. в RFC 7946.

Note: API привязывает запрошенную точку источника к ближайшей дорожной сети и будет использовать ее для вычисления диапазона. Он будет возвращен в качестве center точки в ответе.

SnapToRoadFeaturesItem

Объект функции GeoJSON, содержащий объект Geometry и дополнительные свойства маршрута.

SnapToRoadsBatchRequestBody

Список привязки к запросам и запросам для обработки дорог. Список может содержать не более 100 запросов и должен содержать не менее 1 запроса.

SnapToRoadsBatchRequestItem

Объект Batch Query

SnapToRoadsBatchResponse

Этот объект возвращается из успешного вызова пакетной службы Snap To Roads.

SnapToRoadsBatchResponseItem

Элемент ответа пакетной службы

SnapToRoadsFeatureProperties

Привязка к свойствам "Дороги".

SnapToRoadsTravelModeEnum

Задает профиль маршрутизации для привязки точек. Если не указано, по умолчанию используется режим вождения, который оптимизирует оснастки для маршрутов вождения.

Summary

Сводка для пакетного запроса

ErrorAdditionalInfo

Дополнительные сведения об ошибке управления ресурсами.

Имя Тип Описание
info

object

Дополнительные сведения.

type

string

Дополнительный тип сведений.

ErrorDetail

Сведения об ошибке.

Имя Тип Описание
additionalInfo

ErrorAdditionalInfo[]

Дополнительные сведения об ошибке.

code

string

Код ошибки.

details

ErrorDetail[]

Сведения об ошибке.

message

string

Сообщение об ошибке.

target

string

Целевой объект ошибки.

FeaturesItemTypeEnum

Указывает тип GeoJSON. Единственным поддерживаемым типом объекта является Feature. Дополнительные сведения см. в RFC 7946.

Значение Описание
Feature

Указывает тип объекта компонента GeoJSON.

FeatureTypeEnum

Указывает тип GeoJSON. Единственным поддерживаемым типом объекта является FeatureCollection. Дополнительные сведения см. в RFC 7946.

Значение Описание
FeatureCollection

Указывает тип объекта GeoJSONFeatureCollection.

GeoJsonPoint

Допустимый тип геометрии GeoJSON Point. Дополнительные сведения см. в RFC 7946.

Имя Тип Описание
coordinates

number[] (double)

Position — это массив чисел с двумя или более элементами. Первые два элемента — это долготы и широты, точно в этом порядке. высоты или высоты является необязательным третьим элементом. Дополнительные сведения см. в RFC 7946.

type string:

Point

Указывает тип GeoJSON. Должен быть одним из девяти допустимых типов объектов GeoJSON — Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature и FeatureCollection.

InputSnapToRoadsFeaturesItem

Задает привязку входных данных к точкам дорог. GeoJSON объект компонента и дополнительные свойства. Дополнительные сведения см. в RFC 7946.

Имя Тип Описание
geometry GeoJsonPoint:

PointGeometry

Допустимый тип геометрии GeoJSON Point. Дополнительные сведения см. в RFC 7946.

properties

object

Объект свойств требуется в допустимом GeoJSON, но он может быть пустым, так как метаданные не используются для привязки к дороге.

type

FeaturesItemTypeEnum

Указывает тип GeoJSON. Единственным поддерживаемым типом объекта является Feature. Дополнительные сведения см. в RFC 7946.

MapsErrorDetail

Сведения об ошибке.

Имя Тип Описание
code

string

Один из определяемых сервером кодов ошибок.

details

MapsErrorDetail[]

Массив сведений об определенных ошибках, которые привели к этой сообщаемой ошибке.

innererror

MapsInnerError

Объект, содержащий более конкретные сведения, чем текущий объект об ошибке.

message

string

Читаемое пользователем представление ошибки.

target

string

Целевой объект ошибки.

MapsErrorResponse

Распространенный ответ об ошибке для API Azure Maps для возврата сведений об ошибке для неудачных операций.

Имя Тип Описание
error

MapsErrorDetail

Сведения об ошибке.

MapsInnerError

Объект, содержащий более конкретные сведения, чем текущий объект об ошибке.

Имя Тип Описание
code

string

Код ошибки.

innererror

MapsInnerError

Объект, содержащий более конкретные сведения, чем текущий объект об ошибке.

PointGeometry

Точка источника, передаваемая в качестве допустимого объекта GeoJSON Geometry, из которого должен вычисляться многоугольник диапазона. Дополнительные сведения см. в RFC 7946.

Note: API привязывает запрошенную точку источника к ближайшей дорожной сети и будет использовать ее для вычисления диапазона. Он будет возвращен в качестве center точки в ответе.

Имя Тип Описание
coordinates

number[] (double)

Position — это массив чисел с двумя или более элементами. Первые два элемента — это долготы и широты, точно в этом порядке. высоты или высоты является необязательным третьим элементом. Дополнительные сведения см. в RFC 7946.

type string:

Point

Задает тип геометрии для объекта GeoJSON Geometry. Дополнительные сведения см. в RFC 7946.

SnapToRoadFeaturesItem

Объект функции GeoJSON, содержащий объект Geometry и дополнительные свойства маршрута.

Имя Тип Описание
bbox

number[] (double)

Прямоугольная область на земле, определенная как ограничивающий прямоугольник. Стороны прямоугольников определяются значениями широты и долготы. Дополнительные сведения см. в разделе RFC 7946, раздел 5.

Пример: "bbox": [-10.0, -10.0, 10.0, 10.0]

geometry GeoJsonPoint:

PointGeometry

Допустимый тип геометрии GeoJSON Point. Дополнительные сведения см. в RFC 7946.

properties

SnapToRoadsFeatureProperties

Привязка к свойствам "Дороги".

type

FeaturesItemTypeEnum

Указывает тип GeoJSON. Единственным поддерживаемым типом объекта является Feature. Дополнительные сведения см. в RFC 7946.

SnapToRoadsBatchRequestBody

Список привязки к запросам и запросам для обработки дорог. Список может содержать не более 100 запросов и должен содержать не менее 1 запроса.

Имя Тип Описание
batchItems

SnapToRoadsBatchRequestItem[]

Список запросов для обработки.

SnapToRoadsBatchRequestItem

Объект Batch Query

Имя Тип Default value Описание
features

InputSnapToRoadsFeaturesItem[]

Набор точек для привязки к дорожной сети. Вы можете иметь не более 100 точек, и два последовательных пункта должны находиться в пределах 2,5 километра друг от друга. Дополнительные сведения о формате GeoJSON см. в RFC 7946.

Note: API не вернет объект точки в ответ на точку GPS, которая не может быть прикреплена к дорожной сети.

includeSpeedLimit

boolean

False

Указывает, следует ли включать сведения об ограничении скорости для оснастки в ответе. Единица находится в километрах в час.

Note: поддерживается только для вождения travelMode.

interpolate

boolean

False

Указывает, следует ли возвращать дополнительные точки между прикрепленными точками, чтобы завершить полный путь маршрута, который плавно следует геометрии дороги.

Интерполированные точки будут иметь isInterpolate:true в ответе, который можно использовать для идентификации оснаснутых точек из интерполированных точек.

optionalId

string

Идентификатор запроса, который будет отображаться в соответствующем пакетном сайте.

travelMode

SnapToRoadsTravelModeEnum

driving

Задает профиль маршрутизации для привязки точек. Если не указано, по умолчанию используется режим вождения, который оптимизирует оснастки для маршрутов вождения.

type

FeatureTypeEnum

Указывает тип GeoJSON. Единственным поддерживаемым типом объекта является FeatureCollection. Дополнительные сведения см. в RFC 7946.

SnapToRoadsBatchResponse

Этот объект возвращается из успешного вызова пакетной службы Snap To Roads.

Имя Тип Описание
batchItems

SnapToRoadsBatchResponseItem[]

Массив, содержащий результаты пакетной службы.

summary

Summary

Сводка для пакетного запроса

SnapToRoadsBatchResponseItem

Элемент ответа пакетной службы

Имя Тип Описание
error

ErrorDetail

Сведения об ошибке.

features

SnapToRoadFeaturesItem[]

GeoJSON объект компонента, содержащий объект Geometry и дополнительные свойства. Дополнительные сведения см. в RFC 7946, раздел 3.2.

optionalId

string

Идентификатор запроса, который будет отображаться в соответствующем пакетном сайте.

type

FeatureTypeEnum

Указывает тип GeoJSON. Единственным поддерживаемым типом объекта является FeatureCollection. Дополнительные сведения см. в RFC 7946.

SnapToRoadsFeatureProperties

Привязка к свойствам "Дороги".

Имя Тип Описание
inputIndex

integer (int64)

Определите соответствующий индекс в исходном списке точек для каждой оснастки. Только оснастки будут возвращать индексы и использовать их для отличия от интерполированных точек.

isInterpolated

boolean

Определите, является ли это интерполированной точкой.

name

string

Имя дороги, к какой точке привязана точка.

speedLimitInKilometersPerHour

number (double)

Ограничение скорости в километрах в час.

SnapToRoadsTravelModeEnum

Задает профиль маршрутизации для привязки точек. Если не указано, по умолчанию используется режим вождения, который оптимизирует оснастки для маршрутов вождения.

Значение Описание
driving

Точки прикрепляются к дороге, подходящей для автомобилей.

walking

Точки прикрепляются к пешеходному маршруту, включая использование тротуаров.

Summary

Сводка для пакетного запроса

Имя Тип Описание
successfulRequests

integer (int32)

Количество успешных запросов в пакете

totalRequests

integer (int32)

Общее количество запросов в пакете