読者です 読者をやめる 読者になる 読者になる

ちずぶらりHackers

オープンデータ化も進んでいる古地図、絵地図を扱うiOSアプリ、ちずぶらりをハックし倒します。iOS / Androidでのクローンアプリの開発も予定しています。

ちずぶらり相互ダウンローダ作成しました

ツール ちずぶらり

前記事で、

震災記憶地図では、次のようなURLスキームで、作成された地図を追加できます。
eqstroll://od/[地図ID].kmz?sup
これ、odという文字が使われているので、これをcsに変えるとcss3~系サーバにあるデータも読めるようです。
すると、いろんなちずぶらりに収録されていて、一緒には比べられない地図を、震災記憶地図上でまとめて一緒に見る事ができます。

と書きましたが、これ、その後地図を読み込む事のできるアプリが震災記憶地図以外にも拡張されているようで、かなりの数のちずぶらりで他のアプリの地図が読み込めるようになっているようです。
各アプリのInfo.plistの解析で判りました。

そこで、各アプリに含まれている地図を別のアプリで読み込み可能にするための、ツールを一つ作ってみました。

ちずぶらり相互ダウンローダ

このツールを使うと、これまで違うちずぶらりに含まれていて、一緒に重ね合わせて見られなかった地図を、一つのアプリ内にまとめることで一緒に比較できるようになります。
利用感はこんな感じ。

f:id:kochizufan:20140727124016p:plain

上のセレクトボックスで移したい地図をアプリ選択=>地図選択の順で選び、下のセレクトボックスで移す先のアプリを選んだ後、ダウンロードボタンを押すと、地図のダウンロードが始まります。

前記事でも書きましたが、この仕様を使うと、データとしての所有権のないデータでも読み込めてしまいます。
それはモラルに反するので、飽くまで自己導入済みで、所有権を主張できるデータのみを読み込むようにしましょう。
具体的には、送信元に指定するアプリとしては、自分のiOSデバイスに一度でも導入した事のあるもの以外は使わないでください。

また、ちずぶらりも私のいた2年間に何度も進化していますので、アプリによっては微妙なデータ仕様の差でうまく読み込めなかったり、リンク切れになってたりするものもあります。
残念ながら本ツールはアプリのバイナリから構成情報を機械的に抜き出してきただけなので、そういうリンク切れ等までは対応していません。
その場合、たとえばアプリAのB地図とアプリCのD地図を重ね合わせたい時に、B地図をアプリCに入れようとして失敗するなら、D地図をアプリAに入れる方針に変更するとか、いろいろ試してみてください。

閑話休題、実は他アプリ丸々読み込めるちずぶらりのデータダウンロード仕様

今回作ったツールについては以上ですが、以下ちずぶらりのデータダウンロード機能のこぼれ話。
実はちずぶらりのデータ構造は、個々の地図をダウンロードできるだけでなく、他タイトルの地図アプリをまるまる自分の中に取り込む事もできるようなデータ構造になってます。
なので、データの場所と読み込み仕様さえ知っていれば、下記画像のように、震災記憶地図の中に初三郎ちずぶらりを丸々取り込む事も。

f:id:kochizufan:20140727124135p:plain

個々の地図と違ってこのアプリ全体定義仕様はデータが作られていないので、この仕様を公開しても誰も幸せにはならないのですが、こんな機能もあるんだよ、という紹介として。
現在のちずぶらり運営チームにも、せっかくの機能、いろいろ活用して欲しいものです。

© TileMapJp/歴史国土/地図タイル工法協会