Code for History

"Code for History"はIT技術を歴史学上の問題の解決に使うコミュニティです。強調したいのは、我々にとってIT技術は「手段」であって「目的」ではありません。「目的」は歴史学上の問題を解決する事であって、必要であればITでない手段も活用します。常に最優先なのは、問題を解決することです。

バズったので宣伝:古地図、絵地図で街歩きできるサイトを作れるオープンソース、Maplatをよろしくお願いいたします。

バズったので宣伝文化に則って、私の取り組んでいる古地図、絵地図で街歩きできるサイトを作れるオープンソース、Maplatを宣伝させてください。
え、バズって宣伝はTwitter文化でブログではそんなのない?知らんわそんなんこっちは認知あげるのに必死やねん(まず読者を敵に回すスタイル)。

Maplatって何?と思う方は、まずご自分のお好きな街バージョンのMaplatのサイトを一度見てみてください。
特に、アニメ「宇宙よりも遠い場所」のファンの方は、館林バージョンを見ていただくと、よりもいの巡礼マップが含まれているのでオススメです!

s.maplat.jp

s.maplat.jp

s.maplat.jp

s.maplat.jp

s.maplat.jp

雰囲気わかったでしょうか?
絵地図や古地図が、現代地図の上に重なって表示されたと思いますが、右下および左下にスライダ表示されている他の地図のアイコン(左のスライダが正確な地図、右のスライダが不正確な古地図や絵地図になります)をクリックいただくと、正確に測量された地図でないにも関わらず、他の古地図や絵地図、正確な地図などに対応する点がぴったり重なって切り替わったのではないかと思います。

f:id:kochizufan:20190325222320p:plain
不正確な地図でもぴったり重なって切り替わる様子
単に切り替えられるだけでなく、画面中央下の方に表示されている透明度変更スライダを動かしていただくと、現在表示されている古地図絵地図と背景の正確な地図との間で、透明度を切り替えて重なり具合を比較することもできます。
また、現地にいる場合のみですが、左上のGPSボタンを押すと、不正確な地図の上でも現在地の青いGPSアイコンが表示されます。
f:id:kochizufan:20190325232416p:plain
不正確な地図の上でもGPS現在地が表示できる
このような、古地図絵地図と正確な地図とのぴったり重なる切り替えや、古地図絵地図上への現在地の表示によって、その場所が昔どのようであったのか、その時代にタイムスリップしたように街の昔を知ったり、一般地図のように無機質でない、街の魅力にフォーカスした絵地図で街を探検したり、そんな楽しみ方ができるアプリを作れるオープンソースライブラリがMaplatです。
まだまだあまり知られていないライブラリですが、地味に、国土交通省が毎年行なっている「Geoアクティビティコンテスト」というコンテストの2018年度で、史上初の三冠(最優秀賞、教育効果賞、来場者賞)をいただいた実績もあったりします。

www.g-expo.jp

実は似たような古地図街歩きを実現できるサービスは世の中に存在しており、京都のベンチャー企業であるStrolyという企業も、似たようなソリューションを実現しています。

www.youtube.com

というか、実は私自身、元はStrolyの前身だった会社に勤めており、Strolyの開発に従事し、Strolyが保持する特許のうち、地図の中心点の座標を合わせる特許は私以外の人の発明ですが、それ以外の機能をカバーする特許は私の発明だったりします。
その私が、Strolyを退社したのち、Strolyとは異なるやり方(これも特許出願中です)で、Stroly以上の性能、機能を実現するライブラリを、オープンソースで開発したのがMaplatになります。
Maplatの主な機能の列挙、およびStrolyとMaplatの性能、機能比較は「Geoアクティビティコンテスト」時のポスターとして作成した下記のチラシにまとめられています。

drive.google.com

主なところを抜き出しますと、まず性能的な違いとして、Strolyは連続して複数の地図を切り替えた場合、元の場所に戻ってくることが保証されていませんが、Maplatは元のところに戻ってくることが保証されています。
下記は格子状の古地図上の点を経緯度に変換してから再度絵地図上に戻した結果で、黄色がStroly、暗い赤色がMaplatでの変換結果を表しており、当然格子状に戻ってきた方が変換性能は優れていることになりますが、見ればわかります通りStrolyの変換は相当にバタついています。

f:id:kochizufan:20190326002334p:plain
格子状の古地図上の点を経緯度に変換してから再度絵地図上に戻した結果、黄色がStroly、暗い赤色がMaplat

また、別の性能差として、Maplatでは記事の冒頭に紹介したいくつかのサイトで体験いただいた通り、不正確な地図でも正確な地図とぴったり重なって切り替わる体験ができますが、Strolyでは正確な地図に切り替えても地図がぴったり合わないという差があります。
Stroly側の実例ですが、以下のサイトにアクセスして、右下の地図切り替えボタンで地図を切り替えてみてください。
地図の中心点はあっていますが、海岸線がぴったり合わない、すなわち地図がぴったり変換できていないのがわかると思います。

stroly.com

f:id:kochizufan:20190326000634p:plain
Strolyは古地図と現代地図を切り替えてもぴったり重なり合わない
実はこれは、Strolyも本来はぴったり重なり合わせることができる特許(まさに私の在籍中に私が発明した特許ですが)を持っており、その特許を正しく実装できていればこのような事にはならないのですが、技術者の流出でStrolyは自社の持つ特許を正しく実装できなくなっており、その結果このような状況になっています。
なので性能差というよりは本来はStroly側のバグというべきものですが、もうバグの存在が判明してから4ヶ月も修正できていないので、もはや性能差と言って差し支えないと思います。

また、Stroly側で地図を切り替えてもらえばわかったと思いますが、相当に切り替えがもっさりしていると思います。
きびきび地図が切り替わる、なんなら同時に表示されてリアルタイムで重なり合ってるMaplatと比較すると大きな反応速度差だと思いますが、これも性能差に含まれると言えるでしょう。

続いて機能差ですが、以下に現状の機能差一覧表を示します。
一部、すでに説明済みの性能差も含まれていますが読み飛ばしてください。

f:id:kochizufan:20190326001656p:plain
StrolyとMaplatの機能差一覧
これは残念ながら、現時点でStrolyの方が優れている部分もあります。
Strolyはサービスとして展開しているので、オンラインで地図エディターが展開されており、地図のエディットが完了すればすぐ地図コンテンツとして提供できるのは大きなStrolyの利点でしょう。
Maplatはライブラリなので、ライブラリの設定ファイルの設定方法など、いろいろ面倒臭いことを覚えてもらわないと地図コンテンツを提供することはできません。
しかしながら、オンラインエディタでサービスベースのStrolyの利点は、同時に弱点でもあります。
Strolyはインターネットに繋がらないところでは動作できませんが、Maplatはイントラネットだろうが、localhostだろうが、設定さえそれに合わせて行われていれば動作します。
StrolyはStroly社の持つドメインの上でしか動作しませんが、Maplatは独自ドメイン上だろうが自社サーバのサブディレクトリ上だろうがどこでも動作します。
Strolyは他のページに埋め込む場合、iframeでページを読み込む方法しかないですし、APIで挙動を操作するなどもっての他ですが、Maplatはページ内のdivに埋め込むことができ、JavaScriptAPIで視点を変えたり地図を回転させたり縮尺を動かしたり、自在に外からAPIで制御することもできます。
なんならMaplatはAndroidiOSのネイティブアプリ内に埋め込めるaar/frameworkライブラリも用意していますので、ネイティブアプリとして古地図アプリを開発するエンジンにすることも可能ですーー実際、京都の開発会社のコギトさんというところが、ambula mapという名前のアプリを、Maplatをエンジンにして作ってくれています。

ambula.jp

このように、Web技術に喩えるならば、Strolyはブログサービス的なものなのに対し、MaplatはWebサーバ(Apacheやnginx)のようなものと言えるかもしれません。
Strolyは出来合いの簡単サービスで、グラフィカルに編集すればすぐに地図を公開することができるが、決められたこと以上の事は全くできません。
それに対し、Maplatは設定ファイルを設定しないと地図を表示できないが、設定さえ使いこなせば、イントラネット環境、モバイル連携、API操作等、好きなように動作させることができる万能プレーヤーです。
これが機能的なStrolyとMaplatの大きな違いです。

とはいえ、やはり設定を覚えたりするのは大変、オンラインエディタで簡単に編集できた方が楽そう...そう思われるのは全くもっともです。
そういった声に応えるため、実はこれを公に宣言するのは初めてなのですが、一気に機能比較表の中でStrolyに現状劣っている部分を全て潰すべく、Maplat側も編集即パブリッシュができるオンラインエディタを開発したいという気持ちがあります。
とはいえ相当規模の大きい開発ですので、私一人の趣味の余暇の開発で完結するレベルではなさそうなのですが、クラウドファンディングで資金を調達し、それを元にマンパワーを費やして開発したいと思っております。
諸般の環境が揃うのを待つ必要があるため、今すぐ着手、ではなくおそらく今年後半以降くらいからのクラウドファンディング開始になると思いますが、ぜひ開始した際には、ご支援いただけると嬉しいです。

このように、大企業Stroly(Strolyはベンチャーながら、すでに5億円超の投資を集めています)相手に、技術力と機能などの企画力、オープンソースオープンデータの道義的?優位を武器に、圧倒的資金差、知名度差をのりこえて、たった1人徒手空拳で戦っているのが、オープンソースMaplatライブラリになります。
ぜひ興味をもって今後ともウォッチいただけると嬉しいです!
それでは、Maplatライブラリに興味を持った人が、どのように使い始めればいいのか?
そういった入門編的な記事は、長くなりすぎますので近いうちの後日に回す形として、今回はご紹介まででした。

© Code for History