Skip to content

Map data format

OHTSUKA Ko-hei edited this page Sep 12, 2017 · 10 revisions

Maplatのマップデータフォーマットについて記載します。 Maplatには2種類の相互運用可能なデータフォーマットが存在します。

マップデータ置き場

通常、マップデータはMaplatのルートフォルダ下に"maps"フォルダを作成し、その下に置かれます。
ファイル名は "マップID(一意なもの)".jsonです。
将来仕様で、"maps"フォルダ以外や別サーバなどにも置けるようにする予定です。

標準データフォーマット

Maplatの標準データフォーマットです。 標準地図の座標と、古地図/絵地図の座標系の対で定義されているため、人間による手動でも編集可能なフォーマットです。

標準地図座標系

標準地図の座標としては、Webメルカトル図法座標系(SRID:3857)を想定していますが、原理的にはその他の座標系も利用可能です。
ただし明示的に示す機能は原状ついておりません。
また、変換計算の仕組み上、平面座標系でない座標系(例:Plate Caree, SRID:4326等)による指定はほぼ意味がありません。

メタデータ

属性中、gcpswidthheightは地図画像及び地図対応点を定義する属性ですが、その他の属性(title等)は地図のメタデータとなります。
メタデータの定義については流動的であり、今後大きく変化する可能性があります。

データスキーマ

---
$schema: "http://json-schema.org/draft-04/schema#"
title: "Maplat Standard"
type: "object"
required: # 必須のプロパティを定義
  - "title"
  - "attr"
  - "width"
  - "height"
  - "gcps"
properties:
  title:
    type: "string" # 地図タイトル
  attr:
    type: "string" # ビューア右下に表示される注記文字列
  width:
    type: "number" # オリジナル地図画像ピクセル幅
  height:
    type: "number" # オリジナル地図画像ピクセル高さ
  year:
    type: # 地図の作成された年代など
      - "string"
      - "number"
  url: # 地図タイルが別サーバなどにある際、"http://example.com/{z}/{x}/{y}.jpg"のような形で指定します。
    type: "string" # MaplatEditorでは現状未対応です。
  gcps:
    type: "array" # 1つ1つが標準地図座標と古地図/絵地図座標のセット
    items:
      type: "array" # 1つ目は絵地図/古地図側座標、2つ目は標準地図側座標
      minItems: 2
      maxItems: 2
      items:
        type: "number" # 1つ目はX座標/経度、2つ目はY座標/緯度 
        minItems: 2
        maxItems: 2          

データサンプル

将来の拡張予定

  • i18n対応のため、現状type: "string"で指定されている属性の構造が大きく変わる可能性があります。(Issue 116)
  • 現状アプリケーションデータ側で指定しているPOIの指定を、地図データ側でも行えるようにする予定があります。(Issue 118)

コンパイル済データフォーマット

Maplatのコンパイル済データフォーマットです。
標準データフォーマットから、Maplatの変換処理に必要な変換計算などを事前に完了したフォーマットです。

作成方法

MaplatEditorにて、「コンパイル済みフォーマット」にチェックを入れてデータセーブした場合、このフォーマットで記録されます(情報の損失なく相互運用可能なので、MaplatEditorで再度「コンパイル済みフォーマット」のチェックを外してセーブすると、標準フォーマットに戻せます)。

データスキーマ

標準データフォーマットと比較して、gcps属性がなくなり、代わりにcompiled属性の下にコンパイル済のデータ構造が入ります。
compiled属性下のデータ構造は、人間系で編集されることを想定していないフォーマットのため(人間系で編集するとデータの一貫性が失われます)、今のところはスキーマを公開しません。
将来的に公開する可能性はあります。

データサンプル

データフォーマットの選択方法

相互運用可能なため、個々の地図で最適なフォーマットを選んでください。
現状で種々の地図をテストした経験則ですが、コンパイル済フォーマットがMB単位になる場合でも、コンパイル済みの方が体感速度が速いです。

標準フォーマットの利点

  • 人間系でも編集可能なため、簡単な手直しがし易い
  • データサイズはコンパイル済フォーマット比較して小さい

標準フォーマットの欠点

  • ビューアで読み込み後に変換用計算が走るため、対応点の多い地図だと表示が可能になるまで少し待たされる

コンパイル済フォーマットの利点

  • どんなに対応点の多い地図でも、読み込み直後に地図変換可能

コンパイル済フォーマットの欠点

  • MaplatEditorを介さなければ事実上編集不可能
  • データサイズが大きくなる。100倍以上になる場合も(数10KB => 数MB)