OSMとほぼ同じソフトウェアスタックを基盤として、OSMが対象外としている過去の地理データをみんなで作成するOpenHistoricalMap(OHM)が面白くなってきています。
以前状況確認した際はまだ開発途上で方向性も絞りきれていない感じでしたが、開発者?jeffmeyerさんのポストをきっかけに久々に拝見したところ見違えるほどの進化を遂げていました。
1838年頃の東京駅八重洲口-日本橋付近
上記の編集画面
1 概要
OSM経験者なら理解しやすいと思いますが、OHMは世界中の過去のあらゆる地理データを汎用的な形式で登録・共有するプロジェクトであり、投稿者の目的はともかく、全体としては特定の歴史的なテーマに特化したものではありません。
多くのWeb地図化された古地図が特定のテーマにフォーカスして独自に作成され地理データとしての二次利用が難しい状況であるのに対して、OHMで作成した地理データはOSMと同様のベクトルデータとして誰でも二次利用可能である点が大きな特徴です。
技術面ではなんと言っても閲覧時の時間軸の表現方法が最大の課題です。OHMはベクタータイル+タイムスライダーでこれを解決しています。
ライセンス関連では、従来はOSMに由来するデータや他のライセンスのデータが混じり、やや不透明な印象でした。しかし現在はOSMからデータをコピーすることは避け、CC0の情報源を中心に、利用可能なデータをライセンスを明記しながら使う、という方向性で整理されつつあるようです。
タグ付けはほぼOSMを踏襲していますが、「start_date」と「end_date」で地物の始まりと終わりの日付を入力する点が特徴です。これと合わせて情報源のライセンスを「license」タグ、帰属表示を「attribution」タグで付加します。その際、同じ情報源であれば日付やライセンスは同一で良いケースが多いため、リレーションでまとめて、リレーションに対してひとつだけ付与すれば良いようになっています。
2 情報源
エディタであるiDやJOSMの背景画像にジオリファレンスした古地図を設定してトレースします。
背景画像に設定する際、iDの対応スキーマは以下のいずれかです。
- {zoom} または {z}, {x}, {y} (Z/X/Y タイルスキーム)
- {-y} または {ty} (flipped TMS-style Y coordinates)
- {u} (quadtileスキーム)
- {switch:a,b,c} (DNS server multiplexing)
例: http://{s}.domain.com/{z}/{x}/{y}.png
日本では幸いなことにこの形式で利用できる古地図画像などは比較的豊富にありますので、オープンデータとして公開されているものを探してみてください。例えば「歴史的農業環境閲覧システム」で公開されている迅速測図などもCC BY 2.1で公開されているので背景画像に設定してトレースすることができます。
また、オープンデータとして公開されている画像さえあればMapwarperなどを利用して自分でジオリファレンスして使うこともできます。やり方はこちらの記事などを参考にしてください。
3 操作例
Mapwarperにある古地図を元に、iDでOHMを編集してみます。
Exportタブにあるタイル配信URL
https://mapwarper.net/maps/tile/41996/{z}/{x}/{y}.png
をコピーして、iDのカスタム背景欄に貼り付けます。
日本橋付近にズームすると背景地図が表示されます。
OSMと同様に河川、道路、建物などをトレースします。
与力は警察、會所はコミュニティセンターでタグ付けしました ;-)
(ここではリレーションは未作成)
閲覧画面に遷移すると画面右下にタイムスライダーが表示され、指定した期間内にある地物だけが表示されます。
スライダーが地物の存在期間(start_date,end_date)を外れると表示されなくなります。
4 まとめ
行政区画・道路などタグ付けの体系をどう当てはめていくかとか、位置合わせの個人差をどう調整するかとか、地物の開始・終了日の調査が難しいとか、地物の名称が表示されないとか、まだ決め事やら改善の余地はいろいろありそうですが、サクサク動く様子はやる気を起こさせてくれます。江戸の町並みをどこまでリアルに再現できるかとか、経路探索したらどうなるかなど、あれこれ考えるのが非常に楽しみです。自分でテーマを決めたらサブプロジェクトのページを作成して取り掛かると良いようです。
例にあげたエリアは特に東側がまだマッピングしきれていないのでよろしければアカウントを作ってマッピングとレンダリングをいろいろ試してみてください。
Happy Historical Mapping!