GeoJSON パッケージを使用してデータセットを作成する (プレビュー)
Note
Azure Maps Creator の提供終了
Azure Maps Creator のフロア ガイド サービスは現在非推奨となっており、2025 年 9 月 30 日付けで提供が終了します。 詳細については、Azure Maps Creator のサポート終了のお知らせを参照してください。
Azure Maps Creator を使用すると、Facility Ontology 2.0 で GeoJSON 形式の屋内マップ データをインポートしてから、それをデータセットの作成に使用できます。
前提条件
- Azure Maps アカウント
- サブスクリプション キー
- Azure Maps Creator リソース
- Azure ストレージ アカウント
- フロア ガイド用の Creator の基本的な理解
- Facility Ontology 2.0 の基本的な理解
- 必要なすべての GeoJSON ファイルを含む zip パッケージ。 GeoJSON ファイルがない場合は、Contoso の建物のサンプルをダウンロードできます。
重要
- この記事では、地理的な URL
us.atlas.microsoft.com
を使用します。 Creator サービスが米国内で作成されていない場合は、別の地理的 URL を使用する必要があります。 詳細については、「Creator サービスにアクセスする」を参照してください。 - この記事の URL の例では、
{Your-Azure-Maps-Subscription-key}
を Azure Maps サブスクリプション キーに置き換える必要があります。
GeoJSON パッケージを使用してデータセットを作成する
GeoJSON パッケージの詳細については、「GeoJSON zip パッケージの要件」セクションを参照してください。
GeoJSON パッケージをアップロードする
データ レジストリの作成方法の記事に記載されている手順に従って、GeoJSON パッケージを Azure Storage アカウントにアップロードし、Azure Maps アカウントに登録します。
重要
一意識別子 (udid
) の値を必ず書き留めてください。必要になります。 udid
は、ソース コードと HTTP 要求から Azure Storage アカウントにアップロードした GeoJSON パッケージを参照する方法です。
データセットを作成する
データセットは、建物、階層、部屋などのマップ地物のコレクションです。 GeoJSON からデータセットを作成するには、Dataset Create API を使用します。 Dataset Create API では、前のセクションで取得した udid
を受け取り、新しいデータセットの datasetId
を返します。
重要
これは、以前のバージョンの Dataset Create API とは異なり、変換された Drawing パッケージの 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
既存のデータセットにデータを追加する
追加するデータの一意識別子と共に Dataset Create API に datasetId
パラメーターを指定することによって、既存のデータセットにデータを追加できます。 この一意識別子は、udid
または conversionId
のいずれかです。 これにより、既存のデータセットとインポートされる新しいデータの両方のデータ (ファシリティ) で構成される新しいデータセットが作成されます。 新しいデータセットが正常に作成されたら、以前のデータセットを削除できます。
既存のデータセットに追加する際に考慮すべき点の 1 つは、地物 ID の作成方法です。 変換された Drawing パッケージからデータセットを作成すると、地物 ID が自動的に生成されます。 GeoJSON パッケージからデータセットを作成する場合は、GeoJSON ファイルに地物 ID を指定する必要があります。 既存のデータセットに追加する場合、地物 ID の作成方法は元のデータセットによって左右されます。 udid
を使用して元のデータセットが作成された場合は、GeoJSON の ID が使用され、今後そのデータセットに追加されるすべての GeoJSON パッケージでそのように処理されます。 conversionId
を使用してデータセットが作成された場合、ID は内部生成され、今後そのデータセットに追加されるすべての GeoJSON パッケージで内部生成されます。
GeoJSON ソースから作成されたデータセットに追加する
元のデータセットが GeoJSON ソースから作成され、Drawing パッケージから作成された別の施設を追加する場合は、次の HTTP POST 要求で示されるように、その conversionId
を参照して既存のデータセットにそれを追加できます。
https://us.atlas.microsoft.com/datasets?api-version=2023-03-01-preview&conversionId={conversionId}&outputOntology=facility-2.0&datasetId={datasetId}
識別子 | 説明 |
---|---|
conversionId | Drawing パッケージを変換したときに返される ID。 |
datasetId | GeoJSON パッケージから元のデータセットを作成したときに返されるデータセット ID。 |
GeoJSON zip パッケージの要件
GeoJSON zip パッケージは、1 つ以上の RFC 7946 に準拠した GeoJSON ファイルで構成されます。これらのファイルは、それぞれ 1 つの地物クラスに対応し、すべてルート ディレクトリに配置され (サブディレクトリはサポートされていません)、標準の zip 圧縮機能で圧縮され、.ZIP
拡張子を使用して名前が付けられます。
各地物クラス ファイルは、Facility Ontology 2.0 の定義と一致する必要があり、各地物にはグローバル一意識別子が必要です。
地物 ID には、英数字 (a-z、A-Z、0-9)、ハイフン (-)、ドット (.)、アンダースコア (_) 文字のみを含めることができます。
ヒント
グローバル一意識別子 (GUID) を確実に指定したい場合は、Guidgen.exe コマンド ライン プログラム (Visual Studio で使用可能) などの GUID 生成ツールを実行して作成することを検討してください。 Guidgen.exe では、実行回数や実行するマシンの数に関係なく、同じ数値を 1 回しか生成しません。
データセットの Facility Ontology 2.0 検証
Facility Ontology 2.0 では、Azure Maps Creator の内部で施設データを地物クラスに分割して Creator のデータセットに格納する方法を定義します。 GeoJSON パッケージをインポートする際には、地物が追加または変更されるたびに一連の検証が実行されます。 これには、参照整合性チェック、ジオメトリと属性の検証が含まれます。 これらの検証は、次の一覧で詳細に説明されています。
- データセットに一度にインポートできる地物の最大数は 150,000 個です。
- 施設の面積は 4 ~ 4,000 平方 Km です。
- 最上位の要素は facility (施設) です。これは、facility.geojson ファイル内の各建物を定義したものです。
- 各施設には 1 つ以上のレベルがあり、それらは levels.geojson ファイルで定義されています。
- 各レベルは施設の内部にある必要があります。
- 各 level (レベル) には、unit (ユニット)、structure (構造物)、verticalPenetration (垂直貫入)、opening (開口部) が含まれます。 レベルに定義されているすべての項目は、レベルのジオメトリ内に完全に含まれている必要があります。
unit
は、廊下、オフィス、中庭などの項目の配列で構成されます。これらは、area (領域)、line (線)、または point (点) 要素によって定義されます。 ユニットは、unit.geojson ファイルで定義されます。- すべての
unit
要素は、そのレベル内に完全に含まれていて、その子と交差している必要があります。
- すべての
structure
では、壁など、重なり合っておらず、通り抜けることができない物理的な領域を定義します。 構造物は、structure.geojson ファイルで定義されます。verticalPenetration
は、階段やエレベーターなどのレベル間を垂直方向に移動する手段を表し、verticalPenetration.geojson ファイルで定義されます。- 垂直貫入は、同じ平面上の他の垂直貫入と交差できません。
openings
では、2 つのユニット間またはunit
とverticalPenetration
間の通過可能な境界を定義します。これは opening.geojson ファイルで定義されます。- 開口部は、同じレベルの他の開口部と交差できません。
- すべての
opening
は、少なくとも 1 つのverticalPenetration
またはunit
に関連付ける必要があります。