教學課程:使用 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 會使用長時間執行交易,該交易會實作建立工具長時間執行作業一文中定義的模式。
若要轉換繪圖套件:
在 Postman 應用程式中,選取 [New] \(新增\)。
在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(HTTP 要求\)。
針對 [要求名稱],輸入要求的名稱,例如 POST Convert Drawing Package。
選取 [POST] HTTP 方法。
將下列 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
請選取傳送。
在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。
複製 Operation-Location 金鑰的值。 這包含您將會用來檢查轉換的狀態 URL。
檢查繪圖套件轉換的狀態
轉換作業完結束之後,會傳回 conversionId
值。 您可以藉由檢查繪圖套件轉換程序的狀態來存取 conversionId
值。 您可以使用 conversionId
值來存取轉換的資料。
若要檢查轉換程序的狀態並擷取 conversionId
值:
在 Postman 應用程式中,選取 [New] \(新增\)。
在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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}
請選取傳送。
在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。
複製 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 應用程式中,選取 [New] \(新增\)。
在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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}
請選取傳送。
在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。
複製 Operation-Location 金鑰的值。 這包含您將會用來檢查資料集的狀態 URL。
檢查資料集建立狀態
若要檢查資料集建立程序的狀態並擷取 datasetId
值:
在 Postman 應用程式中,選取 [New] \(新增\)。
在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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}
請選取傳送。
在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。Resource-Location 金鑰的值,即資源位置 URL。 資源位置 URL 包含資料集的唯一識別碼 (
datasetId
)。儲存
datasetId
值,您會在下一個教學課程中用到。
建立圖格集
圖格集是在地圖上轉譯的一組向量圖格。 圖格集是從現有資料集建立而來的。 不過,圖格集並不依賴來源資料集。 如果資料集遭到刪除,圖格集會繼續存在。
若要建立圖格集:
在 Postman 應用程式中,選取 [New] \(新增\)。
在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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}
請選取傳送。
在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。
複製 Operation-Location 金鑰的值。 這包含您將會用來檢查圖格集的狀態 URL。
檢查圖格集建立的狀態
若要檢查圖格集建立程序的狀態並擷取 tilesetId
值:
在 Postman 應用程式中,選取 [New] \(新增\)。
在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(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}
請選取傳送。
在回應視窗中,選取 [Headers] \(標頭\) 索引標籤。Resource-Location 金鑰的值,即資源位置 URL。 資源位置 URL 包含資料集的唯一識別碼 (
tilesetId
)。
取得地圖設定 (預覽)
建立圖格集之後,您可以使用 圖格集取得 HTTP 要求來取得 mapConfigurationId
值:
在 Postman 應用程式中,選取 [New] \(新增\)。
在 [Create New] \(新建\) 視窗中,選取 [HTTP Request] \(HTTP 要求\)。
針對要求名稱,輸入要求的名稱,例如 GET mapConfigurationId from Tileset。
選取 [GET] HTTP 方法。
將下列 URL 輸入至圖格集服務。 傳入您在上一個步驟中取得的圖格集識別碼。
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"
如需詳細資訊,請參閱關於室內地圖概念文章中的地圖設定。