GeoJSON パッケージを使用してデータセットを作成する (プレビュー)

Azure Maps Creator を使用すると、Facility Ontology 2.0 で GeoJSON 形式の屋内マップ データをインポートしてから、それをデータセットの作成に使用できます。

注意

この記事では、GeoJSON パッケージからデータセットを作成する方法について説明します。 屋内マップを完成させるために必要な追加の手順については、「次のステップ」を参照してください。

前提条件

重要

  • この記事では、地理的な URL us.atlas.microsoft.comを使用します。 Creator サービスが米国内で作成されていない場合は、別の地理的 URL を使用する必要があります。 詳細については、「Creator サービスにアクセスする」を参照してください。
  • この記事の URL の例では、{Azure-Maps-Primary-Subscription-key} をプライマリ サブスクリプション キーに置き換える必要があります。

GeoJSON パッケージを使用してデータセットを作成する

GeoJSON パッケージの詳細については、「GeoJSON zip パッケージの要件」セクションを参照してください。

GeoJSON パッケージをアップロードする

Drawing パッケージを Azure Maps Creator アカウントにアップロードするには、Data Upload API を使用します。

Data Upload API は、Creator の実行時間の長い操作 API V2 で定義されたパターンを実装する長時間トランザクションです。

GeoJSON パッケージをアップロードするには:

  1. Data Upload API を使用する次の HTTP POST 要求を実行します。

    https://us.atlas.microsoft.com/mapData?api-version=2.0&dataFormat=zip&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
    1. ヘッダーContent-Typeapplication/zip に設定します。
  2. 応答ヘッダーの Operation-Location キーの値をコピーします。 Operation-Location キーは status URL とも呼ばれ、アップロードの状態を確認するために必要となります。これについては、次のセクションで説明します。

GeoJSON パッケージのアップロードの状態を確認する

GeoJSON パッケージの状態を確認し、その一意識別子 (udid) を取得するには:

  1. この記事の前のセクションで最後の手順としてコピーした状態 URL を使用して、次の HTTP GET 要求を実行します。 要求は次の URL のようになります。
https://us.atlas.microsoft.com/mapData/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
  1. 応答ヘッダーの Resource-Location キーの値をコピーします。これは resource location URL です。 resource location URL には、GeoJSON パッケージ リソースの一意識別子 (udid) が含まれています。

データセットを作成する

データセットは、建物、階層、部屋などのマップ地物のコレクションです。 GeoJSON からデータセットを作成するには、Dataset Create API を使用します。 Dataset Create API では、前のセクションで取得した udid を受け取り、新しいデータセットの datasetId を返します。

重要

これは、[以前のバージョン][Dataset Create] とは異なり、変換された Drawing パッケージの conversionId を必要としません。

データセットを作成するには、次の手順を行います。

  1. データセット サービスへの次の URL を入力します。 要求は、次の URL のようになります ({udid} は「GeoJSON パッケージのアップロードの状態を確認する」で取得した udid に置き換えます)。
https://us.atlas.microsoft.com/datasets?api-version=2022-09-01-preview&udid={udid}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
  1. 応答ヘッダーの Operation-Location キーの値をコピーします。 Operation-Location キーは status URL とも呼ばれ、データセット作成プロセスの状態を確認し、タイルセットを作成するために必要な datasetId を取得するために必要です。

データセットの作成状態を確認する

データセット作成プロセスの状態を確認し、datasetId を取得するには、次の手順を行います。

  1. データセットを作成する」でコピーした状態 URL を入力します。 要求は次の URL のようになります。

    https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2022-09-01-preview&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  2. HTTP 応答のヘッダーで、Resource-Location キーに含まれる一意識別子の値をコピーします。

    https://us.atlas.microsoft.com/datasets/**c9c15957-646c-13f2-611a-1ea7adc75174**?api-version=2022-09-01-preview

屋内マップを完成させる際に役立つ記事へのリンクについては、「次のステップ」を参照してください。

既存のデータセットにデータを追加する

Dataset Create APIdatasetId パラメーターに追加するデータの一意識別子を指定すると、既存のデータセットにデータを追加できます。 この一意識別子は、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=2022-09-01-preview&conversionId={conversionId}&outputOntology=facility-2.0&datasetId={datasetId}
識別子 説明
conversionId Drawing パッケージを変換したときに返される ID。 詳細については、「Drawing パッケージを変換する」を参照してください。
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 では、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 つのユニット間または unitverticalPenetration 間の通過可能な境界を定義します。これは opening.geojson ファイルで定義されます。
      • 開口部は、同じレベルの他の開口部と交差できません。
      • すべての opening は、少なくとも 1 つの verticalPenetration または unit に関連付ける必要があります。

次のステップ