你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Data - Update Preview
更新请求允许调用方更新以前使用数据上传上传 的数据内容。
适用于: S1 定价层。
数据更新 API 允许调用方更新以前上传的数据内容。
可以在向现有地理围栏集合添加或删除地理围栏等方案中使用此 API。 地理围栏是使用数据上传 API 上传的,用于Azure Maps地理围栏服务。
请注意,更新 API 将 替换 并 替代 现有数据内容。
注意
Azure Maps 数据服务停用
Azure Maps 数据服务(v1 和 v2)现已弃用,并将于 2024 年 9 月 16 日开始停用。 为了避免服务中断,对数据服务的所有调用都需要在 2024 年 9 月 16 日之前更新为使用 Azure Maps 数据注册表服务。 有关详细信息,请参阅如何创建数据注册表。
提交更新请求
若要更新内容,请使用 PUT
请求。 请求正文将包含将替换现有数据的新数据。 标头 Content-Type
将设置为数据的内容类型,路径将包含 udid
要更新的数据的 。
例如,若要更新以前使用上传 API 上传的地理围栏集合,请将新的地理围栏内容放在请求正文中。 udid
在之前在上传 API 响应中收到的数据的 的路径udid
中设置 参数。 并将 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
}
}]
}
以前上传的地理围栏的半径为 100 米。 上述请求将更新为 500 米。
数据更新 API 执行长时间运行的操作。
数据更新限制
请注意,目前每个Azure Maps帐户都有数据存储限制。
达到存储限制后,所有新的上传 API 调用都将返回 409 Conflict
http 错误响应。
始终可以使用 数据删除 API 删除旧内容/未使用的内容,并为新上传创建空间。
PUT https://{geography}.atlas.microsoft.com/mapData/{udid}?api-version=1.0
PUT https://{geography}.atlas.microsoft.com/mapData/{udid}?subscription-key={subscription-key}&api-version=1.0
URI 参数
名称 | 在 | 必需 | 类型 | 说明 |
---|---|---|---|---|
geography
|
path | True |
string |
此参数指定 Azure Maps Creator 资源所在的位置。 有效值为 us 和 eu。 |
udid
|
path | True |
string |
内容的唯一数据 ID。 |
api-version
|
query | True |
string |
Azure Maps API 的版本号。 当前版本为 1.0 |
subscription-key
|
query |
string |
从 Azure Maps 帐户提供的 Azure Maps 密钥之一。 有关如何管理身份验证的详细信息,请参阅 此文 。 |
请求头
名称 | 必需 | 类型 | 说明 |
---|---|---|---|
x-ms-client-id |
string |
指定要与Microsoft Entra ID安全模型结合使用的帐户。 它表示Azure Maps帐户的唯一 ID,可从Azure Maps管理平面帐户 API 检索。 若要在 Azure Maps 中使用Microsoft Entra ID安全性,请参阅以下文章以获取指导。 |
请求正文
名称 | 类型 | 说明 |
---|---|---|
UpdateContent |
object |
将更新/替换以前上传的内容的新内容。 |
响应
名称 | 类型 | 说明 |
---|---|---|
200 OK |
数据更新失败。 上传的内容未满足所有验证检查。 响应正文包含遇到的所有错误。 |
|
201 Created |
已成功创建资源。 Headers Location: string |
|
202 Accepted |
仅支持异步请求。 请求已接受:已接受请求进行处理。 请使用位置标头中的 URL 重试或访问结果。 Headers Location: string |
|
400 Bad Request |
错误的请求:一个或多个参数未正确指定或互斥。 |
|
401 Unauthorized |
由于订阅密钥无效或Microsoft Entra ID持有者令牌无效,访问被拒绝。 请确保为活动的 Azure 订阅和 Maps 资源提供有效的密钥。 否则,请验证 WWW-Authenticate 标头中提供的Microsoft Entra ID持有者令牌的错误代码和说明。 Headers WWW-Authenticate: string |
|
403 Forbidden |
权限、容量或身份验证问题。 |
|
404 Not Found |
未找到:找不到请求的资源,但将来可能再次可用。 |
|
500 Internal Server Error |
处理该请求时出错。 请稍后再试。 |
安全性
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 允许针对多个用例对应用程序进行基于配置的设置。
- 有关Microsoft 标识平台的详细信息,请参阅Microsoft 标识平台概述。
Type:
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,以便安全地存储密钥。
Type:
apiKey
In:
query
SAS Token
这是一个共享访问签名令牌,通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API,通过 Azure 管理平面在Azure Maps资源上列出 SAS 操作创建。
使用此令牌,任何应用程序都有权使用 Azure 基于角色的访问控制进行访问,并精细控制特定令牌的过期、速率和区域 () 。 换句话说,SAS 令牌可用于允许应用程序以比共享密钥更安全的方式控制访问。
对于公开的应用程序,我们建议在 Map 帐户资源 上配置允许的来源的特定列表,以限制呈现滥用,并定期续订 SAS 令牌。
Type:
apiKey
In:
header
示例
Update previously uploaded GeoJSON data containing geometries that represent a collection of geofences
Sample Request
PUT https://us.atlas.microsoft.com/mapData/25084fb7-307a-4720-8f91-7952a0b91012?subscription-key=[subscription-key]&api-version=1.0
{
"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."
}
}
定义
名称 | 说明 |
---|---|
Long |
Long-Running 操作 API 的响应模型。 |
OData |
当 Azure Maps API 中发生错误时,将返回此对象。 |
OData |
当Azure Maps API 中发生错误时,将返回此响应对象。 |
type |
请求的状态状态。 |
LongRunningOperationResult
Long-Running 操作 API 的响应模型。
名称 | 类型 | 说明 |
---|---|---|
created |
string |
创建的时间戳。 |
error |
当 Azure Maps API 中发生错误时,将返回此对象。 |
|
operationId |
string |
此长时间运行的操作的 ID。 |
resourceLocation |
string |
有关所创建资源的详细信息的位置 URI。 仅当请求成功完成时,才提供此项。 |
status |
请求的状态状态。 |
|
warning |
当 Azure Maps API 中发生错误时,将返回此对象。 |
ODataError
当 Azure Maps API 中发生错误时,将返回此对象。
名称 | 类型 | 说明 |
---|---|---|
code |
string |
ODataError 代码。 |
details |
当 Azure Maps API 中发生错误时,将返回此对象。 |
|
message |
string |
如果可用,则提供错误人工可读的说明。 |
target |
string |
如果可用,则为导致错误的目标。 |
ODataErrorResponse
当Azure Maps API 中发生错误时,将返回此响应对象。
名称 | 类型 | 说明 |
---|---|---|
error |
当 Azure Maps API 中发生错误时,将返回此对象。 |
type
请求的状态状态。
名称 | 类型 | 说明 |
---|---|---|
Failed |
string |
请求有一个或多个失败。 |
NotStarted |
string |
请求尚未开始处理。 |
Running |
string |
请求已开始处理。 |
Succeeded |
string |
请求已成功完成。 |