foss4gだらけの古地図platform maplatのご紹介 (off4g 2016)
TRANSCRIPT
• 従来のGIS手法と異なり、古地図を歪めず、美しさを損ねずに現代地図と切り替え • 全てオープンソース • データ作成ツール(QGIS)、座標変換ロジック(GDAL/turf.js)、表示API(OpenLayers3/Cesium(予定))まで、全てがFOSS4Gで構成 • 変換ロジック差し替え可、既存のTMS古地図変換とも共存可能 • 豊富なデータ作成ヘルパースクリプト
変換ロジック切替可能
• TIN(三角網による変換) • Mapboxのturf.js利用、三角網外での変換は独自ノウハウで変換
• 初期起動が早い、変換速度はそこそこ • TPS(シンプレートスプラインによる変換) • gdalのc++コードをJavaScriptにコンパイル • 変換速度は速いが、変換テーブル事前作成が必要、変換テーブルファイルのファイルサイズが巨大
• その他の変換ロジックも共存可能 (TMS等Webメルカトルベースの地図も含む)
変換ロジック切替可能
• TIN(三角網による変換) • Mapboxのturf.js利用、三角網外での変換は独自ノウハウで変換
• 初期起動が早い、変換速度はそこそこ • TPS(シンプレートスプラインによる変換) • gdalのc++コードをJavaScriptにコンパイル • 変換速度は速いが、変換テーブル事前作成が必要、変換テーブルファイルのファイルサイズが巨大
• その他の変換ロジックも共存可能 (TMS等Webメルカトルベースの地図も含む)
デモhttps://code4nara.github.io/Maplat/?appid=ueda 上田市版https://code4nara.github.io/Maplat/?appid=iwate 盛岡市版https://code4nara.github.io/Maplat/?appid=sabae 鯖江市版https://code4nara.github.io/Maplat/?appid=nara 奈良市版
直近の展開
• 某商用観光アプリ(複数展開中)に採用決定 • 来年半ばごろに既存アプリへの機能追加予定、現在ノウハウ移管中
• 他ソースの自動読み込み/自動コンパイル機能 • David Ramsey Collection, MapWarperなどの他ソースから自動変換
• JavaScript以外への展開 • 個人的にはXamarin展開を優先したい
• QGISだけでなく独自対応点データ生成ツール作成 • サーバ型での提供は現状考えていない、electron等を使ったデスクトップツールを想定
• 後述する独自仕様や、協業元のフィードバック等も取り入れてQGISだけではできないことを実現
独自ノウハウの拡充
• 点と点だけでなく、線を線に変換する技術開発中
• 地図の定義と変換テーブル、タイル画像をセットとしてまとめて配信できるデータフォーマット検討中 • WebからはHTTP Byte Rangeリクエストでランダムアクセス
両者を点ではなく線として変換する
副産物の活用
• 生成した対応点を元にシンプレートスプライン変換画像のTMSタイル等も提供 • 時代を橋渡ししての位置特定用途等に寄与 (明治期の地図の海岸線を使って、江戸期の海岸線の位置特定など)
• TIN三角網での、実距離との比較を元に古地図/絵地図の歪み要素の比較指標を定義 • 古地図内での注視点ごとの歪み度合いを時代比較して主題の変化を確認
• 古地図ごとに 適な変換(Maplatを使うか、TMSタイルに変換するか)を評価する指標にもなりうる
将来の展開
• 3D Maplatの実現 • 国土地理院の標高タイル形式でMaplat古地図タイル向けの標高タイルを定義することは可能(というか既にテスト作成済み)
• Cesiumで読み込ませて古地図タイルと表示する事で、古地図の3D表示が実現可能
• 高さの値の正規化要否は検討要
• 鳥瞰図、写真Maplatの実現 • 比較対象投影地図側に高さ情報を含んだ投影を想定 • 鳥瞰図上で現在地表示、写真を3D地図に重ね合わせ • 古写真、浮世絵と現代写真、3D地図の重ね合わせ