ちずぶらりHackers

オープンソースの古地図/絵地図アプリ基盤、Maplat開発してます。同種のソリューションに対する優位性は、色々ありますが一番は、あらゆる地図間で双方向1対1座標変換可能な点です。会津若松のサンプル試してみてください。=> http://bit.ly/aizumap

古地図アプリが紙の地図に勝つために:その1、みんなでワイワイ視点共有

以前、Facebookにも書いた話題の改題です。

私は以前Stroly(当時はちずぶらり)という古地図や絵地図の観光マップアプリの仕事してましたが、家族と鳥羽に行った時に自分の観光アプリ起動した隣で、大学生たちが大きな観光マップ広げて「どこいくー?」「私ここ行きたいー」とかワイワイしてるの見て、あ、負けた、と思いました。
1人で手元で古地図/絵地図みながら何かを探す用途としては、古地図/絵地図アプリはハンディで便利ですが、バッと拡げてみんなでワイワイ視点共有しながら、あーでもないこーでもないと楽しく検討するためのプラットフォームとしては、現状の古地図アプリは全く向いているとはいえません。

単に視点を共有できるようにすればみんなでワイワイできるようになるとは限りませんが、少なくとも現状できないものをできるようにすることには意味があると思い、すぐ視点を友人とのアプリ間で共有する機能を考えてStrolyに実装したいと思っていました。 しかしながらその直後、Strolyを解雇されて実現できませんでしたが、今でもあの時「紙に負けた!」と感じたインパクトが強いので、自分のアプリ(Maplat)で実現したいと思ってます。
そういった視線を多人数で共有できるの含め、アプリ地図はまだまだ紙の地図に勝てないところは残っていて、その意味でまだ紙地図はアプリ地図のライバルだし、そういう負けてる点にいかに気付いていかに取り込んでいくかが、アプリ地図技術者の使命だと思ってます。

といったところまでがFacebookや、その以前にはTwitterにも書いたはずの内容なのですが、媒体を変えたとはいえ何度も同じ内容だけを書くのもアレですし、今回は実際にシステムを組むとどうなるかを設計してみました。
今私の中で空前の大ブームの、Azureサーバレス構成で作ると、 f:id:kochizufan:20170916011546p:plain こんな感じになります。

この仕組みを使って、Maplatでも友達間の視点や現在地、お気に入りPOI等を共有でき、チャットなども交えてワイワイできるような機能を加えたいと思っています。

=== 追記 === 最初この視点に気づいた2012年GW頃と10月ごろのTweetがサルベージできたので貼っつけておきます。

なるほど、当初はBlueTooth等での視点共有を考えていたようです。

誰も伊達や酔狂で1億円企業と喧嘩なんかしねえよ

伊達や酔狂、ワガママでStroly社と争ってると思われてる節感じるけど、社員10人以上抱えて弁護士までついてる1億円企業相手に1人で喧嘩して怖くないわけないやろ。
あの会社が俺に対してなしたいまだに謝罪ない脅迫、騙しに対する怒りと、まだ開発中途だった中途半端な技術を拡散される事の社会的損失に対する危機感がなけりゃ、こんな喧嘩とっくにやめてるわ。

あと、と言いながらも、同じ業界にお互い居てイベントなどで顔合わせることも多いんだから、お互いに謝罪し合って過去の事は水に流そうぜ、という呼びかけは常に俺の方から何度かしてる。
それに対して弁護士がしゃしゃり出てきたり、警察に通報した、などと常に逃げ回ってるのがStroly社の方。
嘘だと思うなら弁護士との内容証明のやりとりで俺の方から出したもの公開でもなんでもするけど。

Maplatのキーワードは、Strolyでは実現不可能な「非線形全単射投影の保証」

Maplat会津若松版をSotM会津若松で宣伝したいと思って、現地で売りを列記したチラシを配布しようと思ったのだけど、念のため運営に確認したら、スポンサー代を払わないと現地でチラシは配れないと。
スポンサー代調達しようかとも思ったけど、やっぱキツかったのでそれは断念。
代わりにMaplatのTシャツを作って現地で着て歩くことにした。
チラシでならいろいろとMaplatの売り、できることだの何だのてんこ盛りにしようと思ってたんだけど、Tシャツだと一発で見た人が興味持ちそうなこと書かないといけない。
で、何にしようかと思った時、一瞬でひらめいた。
古地図座標系と正確な地図座標系の間の「全域(−∞〜+∞)」で、「非線形全単射での投影変換」が「保証」されること。
これしかない。

英語で書くと、"Guaranteed nonlinear bijective projection"。
ちずぶらりに合流する前のマピオン時代から、8年越しで古地図を扱う技術として実現したかったことで、Maplatでも、ここ1ヶ月ほどでやっと実現できるようになった性能。
Maplatで実現できていて、Strolyで実現できてないことは山ほどある。
リアルタイムでの古地図と正確地図の重ね合わせ。
Webでの、方角と地図スケールの重ね合わせ。等等。
が、どれも、その差が生まれたのは開発担当者の能力の違いであって、技術ポテンシャルの根本的な差異ではない。
ぶっちゃけ、リアルタイム重ね合わせは、インパクトの割に正直言うと「虚仮威し」だし、方角と地図スケールの重ね合わせは、Stroly側でも俺が残してやったスマホ版では実現できている。
Web版Strolyで実現できていないのは、ぶっちゃけ開発者の怠慢、あるいは能力不足でしかない。
今の三流開発者に取って代わるような、超一流開発者がStroly社に入れば、あっという間に覆される優位。

それらに比べて、「非線形全単射での投影変換」は、原理的にStrolyでは絶対に実現できない機能。
どんなに優秀な技術者が入っても、「StrolyがStrolyであること(つまりは、今の特許取得対象技術)」を捨てない限りは、原理的に絶対できない(できると主張する奴がいるなら、そいつは数学ができないアホ)*1

Strolyが誇りとしている「特許を取得しているという事実」、その請求項に示されている手法では論理的に絶対にできないことだから、この優位は絶対にStrolyから覆されることはない。
また、Strolyの特許技術で原理的に実現できないことをこちらが実現していると言う事実は、とりもなおさずこちらがStrolyの特許を侵害していないという証拠にもなり、Strolyがこちらにスラップ訴訟等を起こす可能性に対する、最高の防御にもなる。
この売りを前面に出さない手はない。

また、全単射投影保証が実現できていると言うことは、とりもなおさずGISで重要なトポロジーの保存なども保証されると言うことだ。
つまりは地籍図の変換など、遺産や税金など大きなお金が動くセンシティブな分野でのGIS利用とも融合できる可能性が出てきたと言うことだ。
古地図連携技術が数奇者のおもちゃだけでは終わらなくなったことも意味する。
ここに未来がある。

今後Maplatを売り込む時は、「非線形全単射投影の保証」を前面に推して売りだしていきたい。

*1:というか、Stroly社が取得している特許5810411号の請求項2と請求項9は、原理的に全単射実現できないStrolyが、少しでも「全単射っぽく」見せかけるための技術で特許が成立している。この特許の存在自体が、Strolyが全単射できないことと、全単射の重要性、そしてそれを実現したMaplatの有用性の証拠になっている。

SotM2017向けにMaplatを整備してみて

Maplatを今年のState of the Map Aizuwakamatsu向けに整備しての気づき: ‬

‪データ整備:‬

  • 同じ地域の古地図を多数マッピングする場合、正確地図側のマッピングポイントはほぼ同じところになる場合が多い。地域毎のマッピングポイント候補データセットか、あるいは他の地図のマッピングポイントを読み込める機能と、それに対するだいたいの対応点位置リコメンド機能が必要。
  • 対応点としてのGCPと、トポロジーエラー解消のために加えた補助GCPを見分ける属性必要。

アプリ側:

  • 地図もPOIも、こちらから提供した情報しか表示できないアプリだと、それだけで街歩きが完結できない。予約してる宿の場所やコンビニの場所、トイレの場所など、ユーザーが他から得た情報の取り込みUI必要。
  • POI説明文の中に別の施設の説明がふくまれていることがあるが、その施設がPOIとしては整備していなくても、準備した地図の中に画像情報として含まれていることがある。そこに対し、地図IDと座標などで遷移できるリンク機構を準備すると、コンテンツの連携を高めることができる。

祖父作詞の流行歌の動画がネットに上がっていた

祖父作詞の1936年の流行歌の動画がネットに上がってるのを発見した。

www.youtube.com

先日、奈良のうとうとさんの詩の朗読会に参加して、自分の下手くそな学生時代の詩をネットから掘り起こすか、祖父の詩をネットから掘り起こすかで悩んで、結局祖父の詩は掘り起こせなかったので自分の詩を詠んだんだけど、代わりにこの動画を発見することができた。

サーバレス技術のみで古地図関連技術を何とかしたい

今の仕事に移って本業で技術に触れられなくなって、また余暇でMaplat開発が進んできたりして起きた心境の変化に、サーバ技術が大嫌いになったというのがある。
昔はサーバサイド技術者だったのが、今はとにかくサーバサイドをなくしたい。

バックエンド処理が必要だとしても、とにかくサーバを立てたくない。サーバレスアーキテクチャで済ませたい。
もともとStrolyやってた時も、少ない人数でお守りするものを減らすために、基本S3だけで完結するようなシステム設計してきたので、そういう方向性あったんだけど、今は拍車がかかってる。

ずっと本業でお守りできる状況ならサーバの面倒見てあげるのも悪くないが、たまにしか面倒見てあげられない状況で、ずっと起動しっぱなしで課金もずっとされて、ずっと状態監視して、不調起こしたら即座に対応してあげないといけなくて、なんてシステムを動かすのはコストがあまりにも高すぎる。
たとえ起動時遅延や過剰コストが多少あったとしても、サーバレスアーキテクチャで関われる時だけ関わるだけでよいシステムの方が絶対安上がりなはず。
古地図タイル化もサーバレスアーキテクチャでやれる目処ついたし、たくさんの古地図を集めてアーカイブ化するシステムも、サーバレスアーキテクチャでかつ分散処理でやれる腹案があるので、(FOSS4G TOKYO 2017 懇親会ライトニングトークで話します)Maplatは徹底してサーバレスな仕組みでStrolyに対抗していく所存。

古地図で街を歩かせることについての、インバウンドがらみでの一考察

古地図全般を美術品的に愛でる意味ではなく、飽くまで古地図で町歩きをするという視点だけで考えて、海外の人に日本の古地図町歩きは刺さらないのではないだろうか。

というのは、我々極東の住人としては、リンガフランカと言える英語の文字アルファベットも知っているし、世界史の舞台も知っているので、欧米の古地図でも楽しめるし、同程度に海外の人も日本の地図を楽しめると勘違いしがちだが、
海外の人は世界言語でない日本の文字など知らないし(ましてやくずし字!)、日本の歴史などそれほど知識として持っていない。

我々がたとえば会津の古地図で町歩きして、おお、ここが西郷頼母の屋敷跡、ここが田中土佐の、佐川官兵衛のと楽しめても、海外の人たちはそんな名前は読めないし、そもそもそんな人たちを知らない。
そういうコンテキストが読み取れない状況では、古地図は単に見にくい不正確な地図でしかない。
だから、海外の人々にも刺さるようにするには、古地図で町歩きさせるだけでは不十分で、その上に乗せるコンテンツも相当に洗練させないといけない。

逆に言うと、それを洗練させる余力がない間は、あるいは国外コンテンツも充実させる余力がない間は、無理して世界に出ようとせず、とりあえず国内に注力だけしていれば良いのではないか。
また、古地図の美しさを維持するために何も加えない事にこだわるよりも、積極的に注記に訳やコメントを加えていく姿勢の方がいいのかもしれない。

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