Data - Upload Preview

API передачи данных

Применимо к: Ценовая категория S1.

API передачи данных позволяет вызывающему объекту передавать содержимое данных в службу Azure Maps. Этот API можно использовать в сценарии, например при отправке коллекции геозаборов в GeoJSON формате, для использования в нашей Azure Maps службе геоограждения.

Отправить запрос на отправку

Для отправки содержимого будет использоваться POST запрос. Текст запроса будет содержать данные для отправки. dataFormatПараметр запроса будет содержать формат данных, dataSharingLevel параметр запроса может содержать уровень общего доступа для данных. Content-TypeДля заголовка будет задан тип содержимого данных.

Например, чтобы передать коллекцию геозаборов в GeoJSON формате, задайте для текста запроса содержимое геозоны. Задайте dataFormat для параметра запроса значение геоjson и задайте Content-Type для заголовка один из следующих типов носителей:

  • application/json
  • application/vnd.geo+json
  • application/octet-stream

Ниже приведен пример текста запроса для отправки простого геозоны, представленного в виде круговой геометрии с помощью центральной точки и радиуса. Пример ниже GeoJSON :

{
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [-122.126986, 47.639754]
        },
        "properties": {
            "geometryId": "001",
            "radius": 500
        }
    }]
}

API передачи данных выполняет длительный запрос.

Ограничения на передачу данных

Обратите внимание, что в настоящее время каждая учетная запись Azure Maps имеет ограничение на объем хранилища данных. После достижения предела хранилища все новые вызовы API передачи будут возвращать 409 Conflict ответ об ошибке HTTP. Вы всегда можете использовать API удаления данных , чтобы удалить старое или неиспользуемое содержимое и создать пространство для новых отправок.

POST https://atlas.microsoft.com/mapData/upload?api-version=1.0&dataFormat={dataFormat}
POST https://atlas.microsoft.com/mapData/upload?subscription-key={subscription-key}&api-version=1.0&dataFormat={dataFormat}

Параметры URI

Name In Required Type Description
api-version
query True
  • string

Номер версии Azure Maps API. Текущая версия — 1,0

dataFormat
query True

Формат данных отправляемого содержимого.

subscription-key
query
  • string

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

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

Name Required Type Description
x-ms-client-id
  • string

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

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

Name Type Description
UploadContent
  • object

Содержимое для отправки.

Ответы

Name Type Description
200 OK

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

201 Created

Ресурс успешно создан.

Headers

  • Location: string
202 Accepted

Поддерживается только для асинхронных запросов. Запрос принят: запрос принят на обработку. Используйте URL-адрес в заголовке Location, чтобы повторить попытку или получить доступ к результатам.

Headers

  • Location: string
400 Bad Request

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

401 Unauthorized

Отказано в доступе из-за недопустимого ключа подписки или токена носителя Azure Active Directory. Обязательно укажите допустимый ключ для активной подписки Azure и сопоставляет ресурс. В противном случае проверьте заголовок WWW-Authenticate для кода ошибки и описание предоставленного токена носителя AAD.

Headers

  • WWW-Authenticate: string
403 Forbidden

Проблемы с разрешением, емкостью или проверкой подлинности.

404 Not Found

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

500 Internal Server Error

При обработке этого запроса возникла ошибка. Повторите попытку позже.

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

azure_auth

Это Azure Active Directory потоки OAuth2 . В сочетании с контролем доступа на основе ролей Azure ее можно использовать для управления доступом к Azure Maps интерфейсам API. Элементы управления доступом на основе ролей Azure используются для обозначения доступа к одной или нескольким Azure Maps учетной записи ресурса или подресурсам. Любому пользователю, группе или субъекту-службе можно предоставить доступ через встроенную роль или пользовательскую роль, состоящую из одного или нескольких разрешений для Azure Maps интерфейсов API.

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

Примечание

  • Это определение безопасности требует использования x-ms-client-id заголовка для указания того, какой Azure Maps ресурс, к которому приложение запрашивает доступ. Это можно получить с помощью API управления картами.
  • Authorization URLОтносится только к экземпляру общедоступного облака Azure. Облака независимых имеют уникальные URL-адреса авторизации и конфигурации Azure Active Directory.
  • Управление доступом на основе ролей Azure настраивается на плоскости управления Azure с помощью портал Azure, POWERSHELL, CLI, пакетов SDK для Azure или интерфейсов API.
  • Использование веб-пакета SDK Azure Maps позволяет настроить приложение на основе конфигурации для нескольких вариантов использования.
  • Сейчас поддерживаются маркеры Azure Active Directory v 1.0 .

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

subscription-key

Это общий ключ, который подготавливается при создании Azure Maps ресурса с помощью плоскости управления Azure с помощью портал Azure, POWERSHELL, CLI, пакетов SDK для Azure или интерфейсов API. С помощью этого ключа любое приложение имеет право доступа ко всем интерфейсам API-интерфейса RESTFUL. Другими словами, в настоящее время они могут рассматриваться как главные ключи для учетной записи, для которой они выдаются. Для общедоступных приложений мы рекомендуем использовать сервер для доступа к Azure Maps API-интерфейсам RESTFUL, где этот ключ можно безопасно хранить.

Type: apiKey
In: query

Примеры

Upload GeoJSON data containing geometries that represent a collection of geofences

Sample Request

POST https://atlas.microsoft.com/mapData/upload?subscription-key=[subscription-key]&api-version=1.0&dataFormat=geojson
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.126986,
          47.639754
        ]
      },
      "properties": {
        "geometryId": "001",
        "radius": 500
      }
    }
  ]
}

Sample Response

Location: https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0
Access-Control-Expose-Headers: Location
{
  "operationId": "{operationId}",
  "status": "Succeeded",
  "created": "2020-01-02 1:02:03 AM +00:00",
  "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0"
}
Location: https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0
Access-Control-Expose-Headers: Location
{
  "error": {
    "code": "400 Bad Request",
    "message": "Upload request failed. Your data has been removed as we encountered the following problems with it: Map data is not a valid GeoJSON geometry."
  }
}
{
  "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."
  }
}

Определения

LongRunningOperationResult

Модель отклика для API Long-Runningных операций.

ODataError

Этот объект возвращается при возникновении ошибки в API Maps.

ODataErrorResponse

Этот объект ответа возвращается при возникновении ошибки в API Maps.

type

Состояние запроса.

UploadDataFormat

Формат данных отправляемого содержимого.

LongRunningOperationResult

Модель отклика для API Long-Runningных операций.

Name Type Description
created
  • string

Созданная метка времени.

error

Этот объект возвращается при возникновении ошибки в API Maps.

operationId
  • string

Идентификатор для этой длительной операции.

resourceLocation
  • string

URI расположения для получения сведений о созданном ресурсе. Он предоставляется только при успешном завершении запроса.

status

Состояние запроса.

warning

Этот объект возвращается при возникновении ошибки в API Maps.

ODataError

Этот объект возвращается при возникновении ошибки в API Maps.

Name Type Description
code
  • string

Код ODataError.

details

Этот объект возвращается при возникновении ошибки в API Maps.

message
  • string

Понятное текстовое описание ошибки, если оно доступно.

target
  • string

Если это возможно, целевой объект, вызвавший ошибку.

ODataErrorResponse

Этот объект ответа возвращается при возникновении ошибки в API Maps.

Name Type Description
error

Этот объект возвращается при возникновении ошибки в API Maps.

type

Состояние запроса.

Name Type Description
Failed
  • string

Запрос содержит один или несколько сбоев.

NotStarted
  • string

Запрос еще не начал обработку.

Running
  • string

Запрос начал обработку.

Succeeded
  • string

Запрос успешно завершен.

UploadDataFormat

Формат данных отправляемого содержимого.

Name Type Description
geojson
  • string

Геоjson — это формат обмена геопространственных данных на основе JSON.

zip
  • string

Формат сжатых данных.