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

教程:使用 Azure Maps Creator 创建室内地图

本教程介绍如何创建室内地图以用于 Microsoft Azure Maps。 本教程演示如何:

  • 上传室内地图的绘图包。
  • 将绘图包转换为地图数据。
  • 通过地图数据创建数据集。
  • 通过数据集中的数据创建图块集。
  • 从你的图块集中获取默认地图配置 ID。

还可以从 GeoJSON 包创建数据集。 有关详细信息,请参阅使用 GeoJSON 包创建数据集(预览版)

先决条件

本教程使用 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 长时间运行的操作一文中定义的模式。

要转换绘图包,请执行以下操作:

  1. 在 Postman 应用中,选择“新建”。

  2. 在“新建”窗口中,选择“HTTP 请求” 。

  3. 对于“请求名称”,输入请求的名称,例如 POST Convert Drawing Package

  4. 选择“POST”HTTP 方法。

  5. 将以下 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
    
  6. 选择Send

  7. 在响应窗口中,选择“头”选项卡。

  8. 复制 Operation-Location 键的值。 它包含用于检查转换状态的状态 URL。

    Screenshot of Postman that shows the URL value of the operation location key in the response header.

检查绘图包转换的状态

转换操作完成后,它会返回 conversionId 值。 可以通过检查绘图包转换过程的状态来访问 conversionId 值。 然后,可以使用 conversionId 值访问转换后的数据。

要检查转换过程的状态并检索 conversionId 值,可执行以下操作:

  1. 在 Postman 应用中,选择“新建”。

  2. 在“新建”窗口中,选择“HTTP 请求” 。

  3. 对于“请求名称”,输入请求的名称,例如 GET Conversion Status

  4. 选择“GET”HTTP 方法。

  5. 输入在“转换绘图包”部分中复制的状态 URL。 请求应如下面的 URL 所示:

    https://us.atlas.microsoft.com/conversions/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Subscription-key}
    
  6. 选择Send

  7. 在响应窗口中,选择“头”选项卡。

  8. 复制“Resource-Location”键的值,即资源位置 URL。 资源位置 URL 包含唯一标识符(conversionId),其他 API 可使用它来访问转换后的地图数据。

    Screenshot of Postman that highlights the conversion ID value that appears in the Resource-Location key in the response header.

示例绘图包应该在没有错误或警告的情况下进行转换。 但是,如果收到来自自己的绘图包的错误或警告,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 值。

创建数据集:

  1. 在 Postman 应用中,选择“新建”。

  2. 在“新建”窗口中,选择“HTTP 请求” 。

  3. 对于“请求名称”,输入请求的名称,例如 POST Dataset Create

  4. 选择“POST”HTTP 方法。

  5. 数据集服务下输入以下 URL。 将 {conversionId} 替换为在检查绘图包转换的状态中获取的 conversionId 值。

    https://us.atlas.microsoft.com/datasets?api-version=2023-03-01-preview&conversionId={conversionId}&subscription-key={Your-Azure-Maps-Subscription-key}
    
  6. 选择Send

  7. 在响应窗口中,选择“头”选项卡。

  8. 复制 Operation-Location 键的值。 它包含用于检查数据集状态的状态 URL。

    Screenshot of Postman that shows the value of the Operation-Location key for a dataset in the response header.

检查数据集创建状态

要检查数据集创建过程的状态并检索 datasetId 值,可执行以下操作:

  1. 在 Postman 应用中,选择“新建”。

  2. 在“新建”窗口中,选择“HTTP 请求” 。

  3. 对于“请求名称”,输入请求的名称,例如 GET Dataset Status

  4. 选择“GET”HTTP 方法。

  5. 输入在“创建数据集”部分中复制的状态 URL。 请求应如下面的 URL 所示:

    https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
    
  6. 选择Send

  7. 在响应窗口中,选择“标头”选项卡。Resource-Location 键的值为资源位置 URL。 资源位置 URL 包含数据集的唯一标识符(datasetId)。

  8. 保存 datasetId 值,以便在下一教程中使用。

    Screenshot of Postman that shows the dataset ID value of the Resource-Location key in the response header.

创建图块集

图块集是一组在定位中渲染的矢量图块。 图块集是通过现有数据集创建的。 但图块集独立于它来自的数据集。 如果数据集被删除,图块集将继续存在。

创建图块集:

  1. 在 Postman 应用中,选择“新建”。

  2. 在“新建”窗口中,选择“HTTP 请求” 。

  3. 对于“请求名称”,输入请求的名称,例如 POST Tileset Create

  4. 选择“POST”HTTP 方法。

  5. 图块集服务下输入以下 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}
    
  6. 选择Send

  7. 在响应窗口中,选择“头”选项卡。

  8. 复制 Operation-Location 键的值。 它包含状态 URL,可用于检查图块集的状态。

    Screenshot of Postman that shows the status URL, which is the value of the Operation-Location key in the response header.

检查图块集创建的状态

要检查图块集创建过程的状态并检索 tilesetId 值,可执行以下操作:

  1. 在 Postman 应用中,选择“新建”。

  2. 在“新建”窗口中,选择“HTTP 请求” 。

  3. 对于“请求名称”,输入请求的名称,例如 GET Tileset Status

  4. 选择“GET”HTTP 方法。

  5. 输入在“创建图块集”部分中复制的状态 URL。 请求应如下面的 URL 所示:

    https://us.atlas.microsoft.com/tilesets/operations/{operationId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
    
  6. 选择Send

  7. 在响应窗口中,选择“标头”选项卡。Resource-Location 键的值为资源位置 URL。 资源位置 URL 包含数据集的唯一标识符(tilesetId)。

    Screenshot of Postman that shows the tileset ID, which is part of the value of the resource location URL in the response header.

获取地图配置(预览版)

创建图块集后,可以使用 tileset get HTTP 请求获取 mapConfigurationId 值:

  1. 在 Postman 应用中,选择“新建”。

  2. 在“新建”窗口中,选择“HTTP 请求” 。

  3. 对于“请求名称”,输入请求的名称,例如 GET mapConfigurationId from Tileset

  4. 选择“GET”HTTP 方法。

  5. 图块集服务下输入以下 URL。 传入在上一步中获取的图块集 ID。

    https://us.atlas.microsoft.com/tilesets/{tilesetId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
    
  6. 选择“发送”。

  7. 图块集 JSON 会显示在响应的正文中。 向下滚动以查看 mapConfigurationId 值:

    "defaultMapConfigurationId": "5906cd57-2dba-389b-3313-ce6b549d4396"
    

有关详细信息,请参阅《室内地图概念》一文中的地图配置

后续步骤