使用 GeoJson 套件建立資料集 (預覽)
注意
Azure 地圖服務 Creator 淘汰
Azure 地圖服務 Creator 室內地圖服務現在已被取代,且將於 2025/9/30 淘汰。 如需詳細資訊,請參閱 Azure 地圖服務 Creator 的生命周期結束公告。
Azure 地圖服務 Creator 可讓使用者使用 Facility Ontology 2.0 以 GeoJSON 格式匯入其室內地圖資料,然後可用來建立資料集。
必要條件
- Azure 地圖服務帳戶
- 一個訂用帳戶金鑰
- 一個 Azure 地圖服務 Creator 資源
- Azure 儲存體帳戶
- 對於室內地圖 Creator 的基本了解
- 對於設施本體 2.0 的基本了解
- Zip 套件包含所有必要的 GeoJSON 檔案。 如果您沒有 GeoJSON 檔案,您可以下載 Contoso 組建範例。
重要
- 本文章使用
us.atlas.microsoft.com
地理 URL。 如果您的 Creator 服務未在美國建立,您必須使用不同的地理 URL。 如需詳細資訊,請參閱存取 Creator 服務。 - 在本文中的 URL 範例中,您必須將
{Your-Azure-Maps-Subscription-key}
取代為您的 Azure 地圖服務訂用帳戶金鑰。
使用 GeoJSON 套件建立資料集
如需 GeoJSON 套件的詳細資訊,請參閱 Geojson zip 套件需求 一節。
上傳 GeoJSON 套件
請遵循如何建立資料登錄一文所述的步驟,將 GeoJSON 套件上傳至您的 Azure 儲存體帳戶,然後在 Azure 地圖服務帳戶中註冊。
重要
請務必記下唯一識別碼 (udid
) 值,之後的作業需要用到這個值。 udid
是您如何從原始程式碼和 HTTP 要求參考上傳至 Azure 儲存體帳戶的 GeoJSON 套件。
建立資料集
此資料集是地圖特徵的集合,例如建築物、樓層和房間。 若要從 GeoJSON 建立資料集,請使用新的資料集建立 API。 資料集建立 API 會採用您在上一節中取得的 udid
,並傳回新資料集的 datasetId
。
重要
這與舊版的資料集建立 API 不同,因為其不需要來自轉換繪圖套件的 conversionId
。
若要建立資料集:
- 將下列 URL 輸入至資料集服務。 要求應類似下列 URL (將 {udid} 取代為在上傳 GeoJSON 套件一節中取得的
udid
):
https://us.atlas.microsoft.com/datasets?api-version=2023-03-01-preview&udid={udid}&subscription-key={Your-Azure-Maps-Subscription-key}
- 複製回應標頭中的
Operation-Location
金鑰值。Operation-Location
索引鍵也稱為status URL
,而且需要檢查資料集建立程式的狀態並取得datasetId
,這是建立圖格集的必要專案。
檢查資料集建立狀態
若要檢查資料集建立程序的狀態並擷取 datasetId
:
輸入您在 [建立資料集] 中複製的狀態 URL。 要求應會類似於下列 URL:
https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
在 HTTP 回應的標頭中,複製
Resource-Location
金鑰中包含的唯一識別碼值。https://us.atlas.microsoft.com/datasets/**c9c15957-646c-13f2-611a-1ea7adc75174**?api-version=2023-03-01-preview
將資料新增至現有的資料集
您可以藉由將 datasetId
參數提供給資料集建立 API,以及提供您所要新增資料的唯一識別碼,將資料新增至現有的資料集。 唯一識別碼可以是 udid
或 conversionId
。 這會建立新的資料集,其中包含來自現有資料集和匯入新資料的資料 (設施)。 成功建立新的資料集之後,就可以刪除舊的資料集。
新增至現有資料集時要考慮的一件事,就是如何建立功能識別碼。 如果資料集是從轉換的繪圖套件建立,系統會自動產生功能識別碼。 從 GeoJSON 套件建立資料集時,必須在 GeoJSON 檔案中提供功能識別碼。 附加至現有的資料集時,原始資料集會驅動功能識別碼的建立方式。 如果使用 udid
建立原始資料集,這會使用 GeoJSON 的識別碼,而且未來會繼續使用附加至該資料集的所有 GeoJSON 套件來執行此動作。 如果資料集是使用 conversionId
建立的,則會在內部產生識別碼,而且未來會繼續使用附加至該資料集的所有 GeoJSON 套件在內部產生。
新增至從 GeoJSON 來源建立的資料集
如果您的原始資料集是從 GoeJSON 來源建立,而且您想要新增從繪圖套件建立的另一個設施,您可以參考其 conversionId
來將其附加至現有的資料集,如此 HTTP POST 要求所示:
https://us.atlas.microsoft.com/datasets?api-version=2023-03-01-preview&conversionId={conversionId}&outputOntology=facility-2.0&datasetId={datasetId}
識別碼 | 描述 |
---|---|
conversionId | 轉換繪圖套件時傳回的識別碼。 |
datasetId | 從 GeoJSON 套件建立原始資料集時所傳回的資料集識別碼。 |
Geojson zip 套件需求
GeoJSON zip 套件是由一個或多個符合 RFC 7946 規範的 GeoJSON 檔案所組成,每個功能類別都有一個,所有根目錄 (子目錄都不受支援)、使用標準 Zip 壓縮,並使用 .ZIP
延伸模組命名。
每個特徵類別檔案都必須符合其在設施本體 2.0 中的定義,而且每個功能都必須具有全域唯一識別碼。
特徵識別碼只能包含英數位 (a-z、A-Z、0-9)、連字號 (-)、點 (.) 和底線 (_) 字元。
提示
如果您想要確定您有全域唯一識別碼 (GUID),請考慮執行 GUID 產生工具來建立它,例如Guidgen.exe命令列程式 (Visual Studio)。 不論執行多少次或執行多少部不同的機器,Guidgen.exe永遠不會產生相同的數位兩次。
資料集中的設施本體 2.0 驗證
設施本體 2.0 定義 Azure 地圖服務 Creator 如何在 Creator 資料集中內部儲存設施資料 (分為多個功能類別)。 匯入 GeoJSON 套件時,每當新增或修改功能時,就會執行一系列驗證。 這包括參考完整性檢查,以及幾何和屬性驗證。 這些驗證在下列清單中有更詳細的描述。
- 一次可以匯入資料集的功能數目上限為 150,000。
- 設施區域可以介於 4 到 4,000 Sq Km 之間。
- 最上層元素是設施,這會定義 facility.geojson 檔案中的每個建築物。
- 每個設施都有一個或多個層級,這些層級定義於檔案 levels.goejson 中。
- 每個層級都必須位於設施內。
- 每個層級都包含單位、結構、verticalPenetrations 和開頭。 層級中定義的所有項目都必須完全包含在層級幾何內。
unit
可以包含一系列項目,例如大廳、辦公室和街道,這些項目是由區域、線條或點元素所定義。 單位定義於 unit.goejson 檔案中。- 所有
unit
元素都必須完全包含在其層級內,並與其子系交集。
- 所有
structure
定義無法巡覽的實體、非重疊區域,例如牆。 結構定義於 file structure.goejson中。verticalPenetration
表示在層級之間垂直巡覽的方法,例如階梯和電梯,並定義在 verticalPenetration.geojson 檔案中。- verticalPenetrations 無法與相同層級上的其他 verticalPenetrations 交集。
openings
定義兩個單位之間的可周遊界限,或unit
和verticalPenetration
定義於 open.geojson 檔案中。- 開頭無法與相同層級上的其他開啟相交。
- 每個
opening
都必須與至少一個verticalPenetration
或unit
相關聯。