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

室内地图寻路服务(预览版)

使用 Azure Maps Creator 寻路服务,可以在室内地图中从一个位置导航到另一个位置。 该服务利用楼梯和电梯在楼层之间导航,并提供指引来帮助你绕过物理障碍物。 本文采用示例室内地图来介绍如何生成从起点到目的地的路径。

先决条件

重要

  • 本文使用 us.atlas.microsoft.com 地理 URL。 如果 Creator 服务不是在美国创建的,则必须使用不同的地理 URL。 有关详细信息,请参阅访问 Creator 服务
  • 在本文中的 URL 示例中,需要:
    • {Your-Azure-Maps-Subscription-key} 替换为你的 Azure Maps 订阅密钥。
    • {datasetId} 替换为你的 datasetId。 有关详细信息,请参阅“使用 Creator 创建室内地图”教程的检查数据集创建状态部分。

创建路线集

路线集是供寻路服务使用的室内地图数据的集合。

从数据集创建路由集。 该路由集独立于数据集,这意味着如果删除数据集,路由集将继续存在。

创建路线集后,可以使用寻路 API 获取场所内从起点到目的地的路径。

创建路线集:

  1. 执行以下 HTTP POST 请求:

    https://us.atlas.microsoft.com/routesets?api-version=2023-03-01-preview&datasetID={datasetId}&subscription-key={Your-Azure-Maps-Subscription-key} 
    
    
  2. 从响应标头复制 Operation-Location 键的值。

Operation-Location 键为状态 URL,用于检查路由集创建的状态,如下部分所示。

检查路线集创建状态并检索 routesetId

检查路线集创建过程的状态并检索 routesetId:

  1. 执行以下 HTTP GET 请求:

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

    注意

    创建新的路线集时,从响应标头中的 Operation-Location 键获取 operationId

  2. 从响应标头复制 Resource-Location 键的值。 它是资源位置 URL,包含 routesetId

    https://us.atlas.microsoft.com/routesets/**675ce646-f405-03be-302e-0d22bcfe17e8**?api-version=2023-03-01-preview

记下 routesetId。 它在所有寻路请求和在获取设备 ID 时是必需的。

获取场所 ID

facilityId(路线集的一个属性)是搜索寻路路径时必需的参数。 通过查询路线集获取 facilityId

  1. 执行以下 HTTP GET 请求:

    https://us.atlas.microsoft.com/routesets/{routesetId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key} 
    
    
  2. facilityIdfacilityDetails 对象的一个属性,可以在路线集请求的响应正文中找到,即以下示例中的 FCL43

{
    "routeSetId": "675ce646-f405-03be-302e-0d22bcfe17e8",
    "dataSetId": "eec3825c-620f-13e1-b469-85d2767c8a41",
    "created": "10/10/2022 6:58:32 PM +00:00",
    "facilityDetails": [
        {
            "facilityId": "FCL43",
            "levelOrdinals": [
                0,
                1
            ]
        }
    ],
    "creationMode": "Wall",
    "ontology": "facility-2.0"
}

获取寻路路径

使用寻路 API 从在上一部分创建的路线集生成路径。 寻路 API 要求查询包含室内地图中的起点和终点,以及楼层序号。 有关 Creator 寻路的详细信息,请参阅概念文章中的寻路

创建寻路查询:

  1. 执行以下 HTTP GET 请求(将 {routesetId} 替换为在检查路线集创建状态部分中获取的 routesetId,将 {facilityId} 替换为在获取场所 ID 部分中获取的 facilityId):

    https://us.atlas.microsoft.com/wayfinding/path?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}&routesetid={routeset-ID}&facilityid={facility-ID}&fromPoint={lat,lon}&fromLevel={from-level}&toPoint={lat,lon}&toLevel={to-level}&minWidth={minimun-width}
    

    提示

    参数 AvoidFeatures 可用于为寻路服务指定在确定路径时要避开的对象,如电梯或楼梯。

  2. 路径和路段的详细信息显示在响应的正文中。

摘要会显示整个路程的估计耗时(以秒为单位)。 此外,路程中各部分的估计耗时会显示在每个路段的开头。

寻路服务计算通过特定中间点的路径。 将显示每个点及其纬度和经度详细信息。