你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用 Azure Maps Creator 创建室内地图
本教程介绍如何创建室内地图以用于 Microsoft Azure Maps。 本教程演示如何:
- 上传室内地图的绘图包。
- 将绘图包转换为地图数据。
- 通过地图数据创建数据集。
- 通过数据集中的数据创建图块集。
- 从你的图块集中获取默认地图配置 ID。
还可以从 GeoJSON 包创建数据集。 有关详细信息,请参阅使用 GeoJSON 包创建数据集(预览版)。
先决条件
- Azure Maps 帐户
- 订阅密钥
- Creator 资源
- 一个 Azure 存储帐户
- 下载的 示例绘图包
本教程使用 Postman 应用程序,但你也可以选择其他 API 开发环境。
重要
- 本文使用
us.atlas.microsoft.com
地理 URL。 如果 Creator 服务不是在美国创建的,则必须使用不同的地理 URL。 有关详细信息,请参阅访问 Creator 服务。 - 在 URL 示例中,将
{Your-Azure-Maps-Subscription-key}
替换为 Azure Maps 订阅密钥。
上传绘图包
按照如何创建数据注册表一文中概述的步骤将 GeoJSON 包上传到 Azure 存储帐户,然后将其注册到 Azure Maps 帐户中。
重要
请务必记下唯一标识符 (udid
) 值,你将需要它。 udid
是引用从源代码和 HTTP 请求上传到 Azure 存储帐户的 GeoJSON 包的方式。
转换绘图包
现在绘图包已上传,可使用已上传包的 udid
值将此包转换为地图数据。 对话 API 使用一个长时间运行的事务,用于实现 Creator 长时间运行的操作一文中定义的模式。
要转换绘图包,请执行以下操作:
在 Postman 应用中,选择“新建”。
在“新建”窗口中,选择“HTTP 请求” 。
对于“请求名称”,输入请求的名称,例如 POST Convert Drawing Package。
选择“POST”HTTP 方法。
将以下 URL 输入到“转换服务”中。 将
{Your-Azure-Maps-Subscription-key}
替换为你的 Azure Maps 订阅密钥。 将udid
替换为已上传保的udid
值。https://us.atlas.microsoft.com/conversions?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2023-03-01-preview&udid={udid}&inputType=DWG&dwgPackageVersion=2.0
选择Send。
在响应窗口中,选择“头”选项卡。
复制 Operation-Location 键的值。 它包含用于检查转换状态的状态 URL。
检查绘图包转换的状态
转换操作完成后,它会返回 conversionId
值。 可以通过检查绘图包转换过程的状态来访问 conversionId
值。 然后,可以使用 conversionId
值访问转换后的数据。
要检查转换过程的状态并检索 conversionId
值,可执行以下操作:
在 Postman 应用中,选择“新建”。
在“新建”窗口中,选择“HTTP 请求” 。
对于“请求名称”,输入请求的名称,例如 GET Conversion Status。
选择“GET”HTTP 方法。
输入在“转换绘图包”部分中复制的状态 URL。 请求应如下面的 URL 所示:
https://us.atlas.microsoft.com/conversions/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Subscription-key}
选择Send。
在响应窗口中,选择“头”选项卡。
复制“Resource-Location”键的值,即资源位置 URL。 资源位置 URL 包含唯一标识符(
conversionId
),其他 API 可使用它来访问转换后的地图数据。
示例绘图包应该在没有错误或警告的情况下进行转换。 但是,如果收到来自自己的绘图包的错误或警告,JSON 响应会包含指向绘图错误可视化工具的链接。 可使用绘图错误可视化工具检查错误和警告的详细信息。 要获取有关解决转换错误和警告的建议,请参阅绘图转换错误和警告。
下面的 JSON 片段显示了一个示例转换警告:
{
"operationId": "{operationId}",
"created": "2021-05-19T18:24:28.7922905+00:00",
"status": "Succeeded",
"warning": {
"code": "dwgConversionProblem",
"details": [
{
"code": "warning",
"details": [
{
"code": "manifestWarning",
"message": "Ignoring unexpected JSON property: unitProperties[0].nonWheelchairAccessible with value False"
}
]
}
]
},
"properties": {
"diagnosticPackageLocation": "https://atlas.microsoft.com/mapData/ce61c3c1-faa8-75b7-349f-d863f6523748?api-version=1.0"
}
}
创建数据集
数据集是地图特征(如建筑物、楼层和房间等)的集合。 若要创建数据集,请使用数据集创建 API。 数据集创建 API 会使用已转换绘图包的 conversionId
值,并返回已创建数据集的 datasetId
值。
创建数据集:
在 Postman 应用中,选择“新建”。
在“新建”窗口中,选择“HTTP 请求” 。
对于“请求名称”,输入请求的名称,例如 POST Dataset Create。
选择“POST”HTTP 方法。
在数据集服务下输入以下 URL。 将
{conversionId}
替换为在检查绘图包转换的状态中获取的conversionId
值。https://us.atlas.microsoft.com/datasets?api-version=2023-03-01-preview&conversionId={conversionId}&subscription-key={Your-Azure-Maps-Subscription-key}
选择Send。
在响应窗口中,选择“头”选项卡。
复制 Operation-Location 键的值。 它包含用于检查数据集状态的状态 URL。
检查数据集创建状态
要检查数据集创建过程的状态并检索 datasetId
值,可执行以下操作:
在 Postman 应用中,选择“新建”。
在“新建”窗口中,选择“HTTP 请求” 。
对于“请求名称”,输入请求的名称,例如 GET Dataset Status。
选择“GET”HTTP 方法。
输入在“创建数据集”部分中复制的状态 URL。 请求应如下面的 URL 所示:
https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
选择Send。
在响应窗口中,选择“标头”选项卡。Resource-Location 键的值为资源位置 URL。 资源位置 URL 包含数据集的唯一标识符(
datasetId
)。保存
datasetId
值,以便在下一教程中使用。
创建图块集
图块集是一组在定位中渲染的矢量图块。 图块集是通过现有数据集创建的。 但图块集独立于它来自的数据集。 如果数据集被删除,图块集将继续存在。
创建图块集:
在 Postman 应用中,选择“新建”。
在“新建”窗口中,选择“HTTP 请求” 。
对于“请求名称”,输入请求的名称,例如 POST Tileset Create。
选择“POST”HTTP 方法。
在图块集服务下输入以下 URL。 将
{datasetId}
替换为在“检查数据集创建状态”部分中获取的datasetId
值。https://us.atlas.microsoft.com/tilesets?api-version=2023-03-01-preview&datasetID={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
选择Send。
在响应窗口中,选择“头”选项卡。
复制 Operation-Location 键的值。 它包含状态 URL,可用于检查图块集的状态。
检查图块集创建的状态
要检查图块集创建过程的状态并检索 tilesetId
值,可执行以下操作:
在 Postman 应用中,选择“新建”。
在“新建”窗口中,选择“HTTP 请求” 。
对于“请求名称”,输入请求的名称,例如 GET Tileset Status。
选择“GET”HTTP 方法。
输入在“创建图块集”部分中复制的状态 URL。 请求应如下面的 URL 所示:
https://us.atlas.microsoft.com/tilesets/operations/{operationId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
选择Send。
在响应窗口中,选择“标头”选项卡。Resource-Location 键的值为资源位置 URL。 资源位置 URL 包含数据集的唯一标识符(
tilesetId
)。
获取地图配置(预览版)
创建图块集后,可以使用 tileset get HTTP 请求获取 mapConfigurationId
值:
在 Postman 应用中,选择“新建”。
在“新建”窗口中,选择“HTTP 请求” 。
对于“请求名称”,输入请求的名称,例如 GET mapConfigurationId from Tileset。
选择“GET”HTTP 方法。
在图块集服务下输入以下 URL。 传入在上一步中获取的图块集 ID。
https://us.atlas.microsoft.com/tilesets/{tilesetId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
选择“发送”。
图块集 JSON 会显示在响应的正文中。 向下滚动以查看
mapConfigurationId
值:"defaultMapConfigurationId": "5906cd57-2dba-389b-3313-ce6b549d4396"
有关详细信息,请参阅《室内地图概念》一文中的地图配置。