Skip to content

PLATEAUのCityGML形式の3D都市モデルに別の地理空間情報を紐づけて出力するツール

License

Notifications You must be signed in to change notification settings

Project-PLATEAU/PLATEAU-DataLinker

 
 

Repository files navigation

概要

このアプリは、PLATEAUデータと任意のデータをアップロードし、任意のデータの特定要素をPLATEAUデータに追加することができます。

利用の流れ

追加するにはそれぞれのデータにおけるキーとなるタグを選択します。
選択するタグがキーとなるかは、事前にデータを見比べる等してあたりをつけておく必要があります。データを見比べるにはメモ帳などのテキストエディタで可能です。

紐づけるににあたり、任意のデータの追加したいタグを選択し、属性名を入れることでPLATEAUのGenric属性として追加可能になります。

追加が成功すると自動的にCityGMLがファイルダウンロードされます。追加されているかはデータを見比べる際と同様にメモ帳などのテキストエディタで確認可能です。

  • ファイルアップロード: ユーザーはCityGMLアップロードし、任意のGML、XML、CSV、JSONファイルをアップロードします。
  • タグの選択: アップロードされたファイルのタグが一覧表示され、その中からデータ間の紐付けに必要なキーとなる属性を選択します。
  • データの紐づけ: 選択された属性とデータを基に、データを紐づけます。この際に、選択した任意のデータをPLATEAUのCityGMLに新たな属性として追加します。

アプリの処理フロー

  1. ファイルのアップロード:

    • FileUploaderコンポーネントでファイルを選択し、handleFileUpload関数でファイルを処理します。
    • ファイルのMIMEタイプを取得し、適切な解析関数(parseJSONFile, parseXMLFile, parseCSVFile)を呼び出します。
    • タグを収集し、onTagsCollectedコールバックで親コンポーネントに通知します。
  2. タグの表示と選択:

    • TagsComboBoxコンポーネントで収集されたタグを表示し、ユーザーがタグを選択します。
    • 選択されたタグはhandlePlateauTagSelectedhandleAnyDataTagSelectedで状態管理されます。
  3. データの紐づけ:

    • DataTagTableコンポーネントで任意のデータタグとPLATEAUタグを紐づけるためのUIを提供します。
    • ユーザーがタグと属性名を入力し、handleSelectedTagsChangeで選択されたデータを管理します。
  4. データの処理:

    • processGMLData関数で、選択されたタグとデータを基にGMLデータを処理し、建物要素を更新します。
    • 更新されたGMLデータをXML形式でダウンロードします。

マッチングアルゴリズム

現状対応しているのは座標(経緯度)になります。 PLATEAUにおける建物あたりの経緯度(LOD0)は建物の外周座標点(緯度、経度、標高)のリストになっています。任意のデータの座標がそのリストの範囲内に入っているかを判定してマッチングを行なっています。

About

PLATEAUのCityGML形式の3D都市モデルに別の地理空間情報を紐づけて出力するツール

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.7%
  • HTML 2.4%
  • CSS 1.7%
  • JavaScript 0.2%