你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Data - Upload

使用 将数据内容上传到 Azure Maps 帐户。

注意

Azure Maps 数据服务停用

Azure Maps 数据服务(v1v2)现已弃用,并将于 2024 年 9 月 16 日开始停用。 为了避免服务中断,对数据服务的所有调用都需要在 2024 年 9 月 16 日之前更新为使用 Azure Maps 数据注册表服务。 有关详细信息,请参阅如何创建数据注册表

API Data Upload 是一个 HTTP POST 请求,允许调用方将数据内容上传到 Azure Maps 服务。 可以在上传格式的地理围栏 GeoJSON集合等方案中使用此 API,以便在 Azure Maps 地理围栏服务中使用。

重要

使用此功能即表示你同意预览版法律条款。 有关更多详细信息,请参阅 预览版补充条款

提交上传请求

若要上传内容,你将使用请求 POST 。 请求正文将包含要上传的数据。 查询 dataFormat 参数将包含数据的格式, dataSharingLevel 查询参数可以包含数据的共享级别。 标头 Content-Type 将设置为数据的内容类型。

例如,若要以格式上传地理围栏 GeoJSON 集合,请将请求正文设置为地理围栏内容。 将 dataFormat 查询参数设置为 geojson,并将 标头设置为 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://{geography}.atlas.microsoft.com/mapData?api-version=2.0&dataFormat={dataFormat}
POST https://{geography}.atlas.microsoft.com/mapData?api-version=2.0&description={description}&dataFormat={dataFormat}

URI 参数

名称 必需 类型 说明
geography
path True

string

此参数指定 Azure Maps Creator 资源所在的位置。 有效值为 us 和 eu。

api-version
query True

string

Azure Maps API 的版本号。

dataFormat
query True

DataFormat

正在上传的内容的数据格式。

description
query

string

要提供给上传的说明。

请求头

Media Types: "application/json", "application/octet-stream"

名称 必需 类型 说明
x-ms-client-id

string

指定用于与 Microsoft Entra ID 安全模型结合使用的帐户。 它表示 Azure Maps 帐户的唯一 ID,可从 Azure Maps 管理平面帐户 API 检索。 若要在 Azure Maps 中使用 Microsoft Entra ID 安全性,请参阅以下 文章 以获取指导。

请求正文

Media Types: "application/json", "application/octet-stream"

名称 类型 说明
UploadContent

object

要上传的内容。

响应

名称 类型 说明
200 OK

LongRunningOperationResult

操作正在运行或已完成。 如果操作成功,请使用 Resource-Location 标头获取结果的路径。

标头

Resource-Location: string

202 Accepted

请求已接受:已接受请求进行处理。 请使用 Operation-Location 标头中的 URL 获取状态。

标头

Operation-Location: string

Other Status Codes

ErrorResponse

在 Azure Maps 帐户上达到 数据存储限制 。 始终可以使用 数据删除 API 删除旧内容/未使用的内容,并为新上传创建空间。

Other Status Codes

ErrorResponse

发生了意外错误。

安全性

AADToken

这些是 Microsoft Entra OAuth 2.0 流。 与 Azure 基于角色的访问控制 配对时,它可用于控制对 Azure Maps REST API 的访问。 Azure 基于角色的访问控制用于指定对一个或多个 Azure Maps 资源帐户或子资源的访问权限。 可以通过内置角色或由 Azure Maps REST API 的一个或多个权限组成的自定义角色授予任何用户、组或服务主体的访问权限。

若要实现方案,建议查看 身份验证概念。 总之,此安全定义提供了一种解决方案,用于通过能够对特定 API 和作用域进行访问控制的对象对应用程序 () 建模。

备注

  • 此安全定义 需要使用x-ms-client-id 标头来指示应用程序请求访问的 Azure Maps 资源。 这可以从 地图管理 API 获取。

Authorization URL特定于 Azure 公有云实例。 主权云具有唯一的授权 URL 和Microsoft Entra ID 配置。 * Azure 基于角色的访问控制是通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 从 Azure 管理平面 配置的。 * 使用 Azure Maps Web SDK 可以针对多个用例对应用程序进行基于配置的设置。

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

Scopes

名称 说明
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

这是在 Azure 门户中或使用 PowerShell、CLI、Azure SDK 或 REST API 创建 Azure Maps 帐户 时预配的共享密钥。

使用此密钥,任何应用程序都可以访问所有 REST API。 换句话说,此密钥可用作颁发密钥的帐户中的主密钥。

对于公开的应用程序,我们建议使用 机密客户端应用程序 方法来访问 Azure Maps REST API,以便安全地存储密钥。

类型: apiKey
在: query

SAS Token

这是通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 通过 Azure 管理平面通过 Azure Maps 资源 上的列出 SAS 操作创建的共享访问签名令牌。

使用此令牌,任何应用程序都有权使用 Azure 基于角色的访问控制进行访问,并精细控制特定令牌的过期、速率和区域 () 。 换句话说,SAS 令牌可用于允许应用程序以比共享密钥更安全的方式控制访问。

对于公开的应用程序,我们建议在 Map 帐户资源 上配置允许的来源的特定列表,以限制呈现滥用,并定期续订 SAS 令牌。

类型: apiKey
在: header

示例

Upload GeoJSON data containing geometries that represent a collection of geofences

Sample request

POST https://us.atlas.microsoft.com/mapData?api-version=2.0&dataFormat=geojson

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

Sample response

Resource-Location: https://us.atlas.microsoft.com/mapData/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0
{
  "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c",
  "created": "2021-04-20T22:43:14.9401559+00:00",
  "status": "Succeeded"
}
Operation-Location: https://us.atlas.microsoft.com/mapData/operations/{udid}?api-version=2.0
Access-Control-Expose-Headers: Operation-Location
{
  "error": {
    "code": "409 Conflict",
    "message": "The data storage limit is reached on the Azure Maps account. You can always use the Data Delete API to delete old/unused content and create space for new uploads."
  }
}

定义

名称 说明
DataFormat

已上传内容的数据格式。

ErrorAdditionalInfo

资源管理错误附加信息。

ErrorDetail

错误详细信息。

ErrorResponse

错误响应

LongRunningOperationResult

Long-Running 操作 API 的响应模型。

LroStatus

请求的状态状态。

DataFormat

已上传内容的数据格式。

名称 类型 说明
dwgzippackage

string

包含 DWG 文件的 ZIP 包。

geojson

string

GeoJSON 是基于 JSON 的地理空间数据交换格式。

zip

string

压缩的数据格式。

ErrorAdditionalInfo

资源管理错误附加信息。

名称 类型 说明
info

object

其他信息。

type

string

其他信息类型。

ErrorDetail

错误详细信息。

名称 类型 说明
additionalInfo

ErrorAdditionalInfo[]

错误附加信息。

code

string

错误代码。

details

ErrorDetail[]

错误详细信息。

message

string

错误消息。

target

string

错误目标。

ErrorResponse

错误响应

名称 类型 说明
error

ErrorDetail

错误对象。

LongRunningOperationResult

Long-Running 操作 API 的响应模型。

名称 类型 说明
created

string

创建的时间戳。

error

ErrorDetail

错误详细信息。

operationId

string

此长时间运行的操作的 ID。

status

LroStatus

请求的状态状态。

warning

ErrorDetail

错误详细信息。

LroStatus

请求的状态状态。

名称 类型 说明
Failed

string

请求有一个或多个失败。

NotStarted

string

请求尚未开始处理。

Running

string

请求已开始处理。

Succeeded

string

请求已成功完成。