教學課程:使用 Azure 地圖服務建立工具建立室內地圖

本教學課程描述如何建立室內地圖,以用於 Microsoft Azure 地圖服務。 本教學課程會示範如何執行:

  • 上傳您室內地圖的繪圖套件。
  • 將繪圖套件轉換成地圖資料。
  • 從地圖資料建立資料集。
  • 從資料集中的資料建立圖格集。
  • 從您的地圖底圖集取得預設地圖設定識別碼。

您也可以從 GeoJSON 套件建立資料集。 如需詳細資訊,請參閱使用 GeoJSON 套件建立資料集 (預覽)

必要條件

本教學課程使用 Postman 應用程式,但您可以使用不同的 API 開發環境。

重要

  • 本文章使用 us.atlas.microsoft.com 地理 URL。 如果您的 Creator 服務未在美國建立,您必須使用不同的地理 URL。 如需詳細資訊,請參閱存取 Creator 服務
  • 在 URL 範例中,以您的 Azure 地圖服務訂用帳戶金鑰取代 {Your-Azure-Maps-Subscription-key}

上傳繪圖套件

請遵循如何建立資料登錄一文所述的步驟,將 GeoJSON 套件上傳至您的 Azure 儲存體帳戶,然後在 Azure 地圖服務帳戶中註冊。

重要

請務必記下唯一識別碼 (udid) 值,之後的作業需要用到這個值。 udid 是您如何從原始程式碼和 HTTP 要求參考上傳至 Azure 儲存體帳戶的 GeoJSON 套件。

轉換繪圖套件

在繪圖套件上傳之後,您會對上傳的套件使用 udid 值,以將套件轉換成地圖資料。 轉換 API 會使用長時間執行交易,該交易會實作建立工具長時間執行作業一文中定義的模式。

若要轉換繪圖套件:

  1. 在 Postman 應用程式中,選取 [New] \(新增\)。

  2. 在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(HTTP 要求\)。

  3. 針對 [要求名稱],輸入要求的名稱,例如 POST Convert Drawing Package

  4. 選取 [POST] HTTP 方法。

  5. 將下列 URL 輸入至轉換服務。 以您的 Azure 地圖服務訂用帳戶金鑰替換 {Your-Azure-Maps-Subscription-key}。 以上傳套件的 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. 請選取傳送

  7. 在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。

  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 應用程式中,選取 [New] \(新增\)。

  2. 在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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. 請選取傳送

  7. 在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。

  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 應用程式中,選取 [New] \(新增\)。

  2. 在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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. 請選取傳送

  7. 在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。

  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 應用程式中,選取 [New] \(新增\)。

  2. 在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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. 請選取傳送

  7. 在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。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 應用程式中,選取 [New] \(新增\)。

  2. 在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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. 請選取傳送

  7. 在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。

  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 應用程式中,選取 [New] \(新增\)。

  2. 在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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. 請選取傳送

  7. 在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。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.

取得地圖設定 (預覽)

建立圖格集之後,您可以使用 圖格集取得 HTTP 要求來取得 mapConfigurationId 值:

  1. 在 Postman 應用程式中,選取 [New] \(新增\)。

  2. 在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(HTTP 要求\)。

  3. 針對要求名稱,輸入要求的名稱,例如 GET mapConfigurationId from Tileset

  4. 選取 [GET] HTTP 方法。

  5. 將下列 URL 輸入至圖格集服務。 傳入您在上一個步驟中取得的圖格集識別碼。

    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"
    

如需詳細資訊,請參閱關於室內地圖概念文章中的地圖設定

下一步