2008/01/30

ロカポーター誕生の記録(1)

位置情報圧縮技術(LocaPorter)発表後の各方面より多数のお問合せを頂きました。どうもありがとうございました。現在ドキュメント整備など、販売の準備を進めておりますので、もうしばらくお待ち下さいませ。

それまでに順次、LocaPorter開発の歴史を記録に残しておこうと思います。

1.ロカポDIYマップ時代
2006年1月にロカポDIYマップという、グーグルマップにマーカーや線を引いて、それぞブログに貼り付けられるサービスを始めました。(今やこんな機能はどこのサイトにもありますよね)
その当時はまだ数社しかそういったサービスをしていませんでした。他社さんは、(推測ですが)ユーザが作った経路情報をデータベースに入れて、キーとなる文字列のみをURL化する方式だったのですが、ロカポでは借りているサーバーの容量が小さかったので、ユーザーさんが増えた場合、すぐに対応できなくなってしまう心配がありました。結果、ユーザーさんのデータはユーザーさんに持ってもらおう、という他力本願の思考回路となりました(笑)。
でもユーザーさんに渡せるのはURLのみ。URLに経路情報を入れるには長すぎるし、、と考えていたとき、
「そうかロカポのフォーマットの左右非対称性を活かせば簡単に可逆圧縮できるぞ」
、、、ということでロカポをベースにした経路圧縮を作りました。

もう少し説明すると、ロカポは「文字、文字、数字」のパターンなので、「省略するのは左側のみか、右側のみのどちらか」という制限さえ設ければ
「文字、文字」---数字が省略されている(精度を荒くしている)
「文字、数字」---左の文字が省略されている(上位桁の省略)
「文字」-----右側の文字と数字が省略されている(精度を荒くしている)
「数字」-----左側の文字+数字が省略されている(上位桁の省略)
ということが明確です。
で、ロカポはエリアコードの上位桁と、詳細情報のローカルコード下位桁に分かれているので、
エリアコードは同じことが多いので、同じ部分は省略(上位桁の省略・左側のみ)
ローカルコードは、多少精度を粗くしてもナビ用には問題ないので右側のみ省略
というようにすれば、かなり文字数を減らせる、という原理です。

これはロカポの仕様Version 1.0 には書いていたのですが、まずは素のロカポを知ってもらう上で返って邪魔となるので、現在の仕様 version 2.0では消された、いわば幻の仕様です。 (その他、余談ですが、ロカポVersion 1.0 には圧縮仕様の他に、経路情報、領域情報、点のグループ、を表す仕様がありました。)

その後2年間そのままにされていましたが、このときの幻の仕様がロカポーターの卵となりました。

2へ続く。

2008/01/23

訂正!

hatenaブックマークで指摘いただきました(ご指摘感謝!)
「「精度1mで情報を取るのと、精度10mで情報を取るのでは、元の精度を再現するのに必要な情報量は当たり前ですが10倍になります。」→ダウト! :-)
そのとおりです!すみません。
情報量という意味ではlog2(10) ≒3.3219倍です。(logの底は2)

で、表示上何桁必要かは、何進法を使うかで変わります。10進法なら一桁増えるだけなので、今N桁で表示しているところを、N+1桁必要となるので、表示上必要な桁数の増加は (N+1)/N 倍です。

適当なセールストークになってしまいまして、申し訳ございません(反省)。

2008/01/21

経路やエリア情報の圧縮技術を開発、特許出願しました。LocaParam改めLocaPorter。

先のジオメディア2008新年会で発表していたのですが、昨年9月から、
・経路
・領域
・複数地点
など、緯度経度の複数セット情報を短いテキストに圧縮する圧縮技術を開発し、先週特許出願いたしました。(プレスリリース)

元々は、URL文字数制限の厳しい携帯サイト用のURLに、何点もの緯度経度を入れたい、という話を聞き、ロカポDIYマップで使っているURL圧縮仕様(今は亡きロカポ仕様Ver1.0の圧縮拡張フォーマット)をベースにスタート、ああすればもっと短くなるのでは?、こうすればどうだ?などいろいろ試行錯誤していました。一方、情報圧縮理論もちゃんと勉強してバイナリレベルで究極に圧縮できればどのくらいまで小さくなるだろう?など。結構おもしろかったです。

サイズだけを追求すれば
1.緯度経度を整数にする
2.差分をとってバイナリで表す
3.ワイル符号化、γ符号化、σ符号化などの手法で2進数にする
4.ホフマン符号化、LZ法などで情報圧縮
とやれば小さくなります。

でももっと使い勝手と、携帯やPDAのCPUでも軽~く圧縮・解凍できて、しかも実装も簡単なのが望ましい。ということで、試行錯誤の上にできたのが、今回の圧縮技術です。

これまでは、経路やエリアなどを扱うにはデータベースやKMLファイルを使うことがほとんどだったと思います。この圧縮技術では位置情報をテキスト文字列に圧縮します。
QRコード、RF-ID(ICカード)、URL文字列、低速パケット通信回線、赤外線通信など、文字数や容量の制約が厳しい媒体でどんどん使ってください。

URLに使っても%XXとURLエンコードされてしまうと、せっかくの1文字が3文字になるケースがあります。そうならないよう、URLエンコード対象外の64文字のみで圧縮データは表現されます。それに64という数字はあとからバイナリにしてさらに圧縮、、、とかやりたくなったときでも無駄なビットロスがないですし。

位置情報圧縮技術の主な特徴です。
①軽量な圧縮アルゴリズムですが、ホフマン符号等を駆使した場合の約60%くらいの能力はあります。サンプルの経路データでテストした結果です。
 ・5箇所の緯度経度 →約22%に圧縮
 ・60箇所の緯度経度 →約13%に圧縮
 ・1200箇所の緯度、経度、高度 →約8%に圧縮
  (弊社実験結果より。データの内容により圧縮率は異なる)
②オン・ザ・フライ処理
符号化、復号化とも先頭から順にデータを追加していく方式なので、測位しながら記録し、さらに途中で電源が切れるようなケースでも、すでにあるデータにどんどん追加可能です。
③精度の違うデータの混在が可能
これが目玉です!最後までバイナリレベルのサイズ優先と、バランス優先の二本立てにしようかどうか迷っていたのですが、このメリットが無いことでサイズ優先の選択肢が消えました。

同じ経路でも、精度1mで情報を取るのと、精度10mで情報を取るのでは、元の精度を再現するのに必要な情報量は当たり前ですが10倍になります。
仮に海外旅行の旅行記をとるとして、飛行機の飛行経路は一応残したい、立ち寄ったお店の情報はピンポイントの精度が欲しい、となると「広範囲×高精度」でデータ容量はとても多くなってしまいます。元データそのものが大きいので、いくら圧縮しても限界があります。だから通常、このような場合は精度のことなる別々のデータとして、それぞれ圧縮することになります。

この圧縮技術では、一つの経路やエリア情報の中で、精度の異なるデータの混在が可能です。さらに、復号する際に、圧縮時の精度情報も取得できます。
カーナビなどではマップマッチングの技術があり、経路情報はある程度ルートを外れても道路上に戻してくれます。これを利用して、マップマッチングを前提に、ルート情報はかなり情報量を落として容量を節約しつつ、出発地、経由するお店、目的地は1mのピンポイント精度で表現する、ということが可能です。


圧縮の効果単独で、たとえばパケット量を減らしてレスポンスを上げるとか、そういう用途にどんどん使って頂きたいのですが、それよりも位置情報サービス同士の連携に使って欲しいと考えています。

そもそも
現在地→周辺情報
が1:Nなのに対して
現在経路→経路沿い情報
では N:Nになるので、通常の
GET/POSTで送信→XML/JSONで受信 のよう単純なデータの流れは難しい。

例えばルート検索後、ルートに沿ったレストランを検索したい場合、ルート情報がデータベースに入っている限り、通常他社サービスからのアクセスはできません。必然的に、こういった複合サービスを提供したい場合は、ワンストップサービスとなり、一つのサイトでルート検索も、路線検索も、ホテル検索も、レストラン検索も、、、ということになりがちです。

でも一般のITの世界では、All in one のポータルサイトより、各ジャンルに特化したサイト同士がマッシュアップする時代です。百貨店より専門店です。位置情報系のサービスだけが百貨店戦略を続けるのは難しい。
そこで、検索した経路や、地図上にマウスで描いたエリアなど、この圧縮技術で一つの文字列にパラメータ化できます。そうして位置情報系サイト同士のマッシュアップが簡単にできるようになれば、どんな斬新なサービスが出てくるのか想像もできません。なぜなら、今の現状ではただ一箇所だけの情報(現在地とか地図の中心とか)でさえ、サービス間連携している例は少ないからです。

だからこのサービスを圧縮ではなく、連携を前面に打ち出して「LocaPorter」という名称にしました。
ジオメディア2008では「LocaParam」という名前で発表していましたが、パラメータというより、各サービスで使った位置情報を他のサービスへ自由に「持ち運ぶ入れ物」というコンセプトがぴったりで、こちらにしました。それにLocaPointの名付け親のネーミング・コンサルタントからLocaParamは英語的ではちょと、というアドバイスをもらい、LocaPorterはOKもらったのと、別の方から「ロカポ」という音が入ってた方がいいという意見も頂いたので。

この位置情報圧縮技術、1月末か2月始めまでにドキュメントなどを整備して、ライセンス販売と導入支援を開始する予定です。

技術の詳細な内容は当面はNDA前提の公開となりますが、ロカポと同じように、近いうちにオープンにしたいと考えています。

LocaPorterをどうぞよろしくお願いいたします。

2007/12/09

ロケーション・ビューがすごかった

先日、IDUとアジア航測が出している「ロケーションビュー」というサービスを見る機会がありました。
これがスゴイ。グーグルマップの「ストリートビュー」と同様のサービスです。
あるいは、「ここでねマピオン3D」の実写版というところ。

が、、、
 ○場所によっては昼の映像と夜の映像をダブルでうつせるので、雰囲気まで分かる。
 ○車の入れる道はたいがい入れる。
 ○仰角(見上げる角度)も自由自在。
 ○東京、名古屋、大阪、福岡はほとんどカバーしてるらしい。
 ◎なにより、動作がめちゃめちゃ速い。(進行方向のデータを先読みしてるっぽい?)
ということで、私が見た同様のサービスの中ではダントツに使いやそう。

今後はGoogleEarthなども含め、こういった3D系地図が広告や情報の重要な媒体になってくるのかなと思ってますが、その時代が一気に近づいているような気がしたサービスでした。

2007/11/15

Mashupedia(マッシュペディア)に掲載されました

ベクターのMASHUxPEDIA(マッシュペディア)の「マッシュアッパーを追う」というコーナーに記事が掲載されました。
大変光栄です。マッシュペディアさん、どうもありがとうございます。

2007/10/26

マッシュアップアワード受賞作品「日産de旅ログ?」を改造!

マッシュアップ・アワード3rdで日産カーウイングス賞を頂いた「日産de旅ログ?」に新機能を追加してみました。

「日産de旅ログ?」カーナビからアクセスしてきた位置情報を記録しておき、あとから経路マップとしてブログに貼る地図をつくったり、KMLファイルにしてGoogleEarthで再生して楽しみものですが、実は未完成(!)で、カーナビから位置情報を送信したとき、カーナビには「送信を完了しました。」という文字しか表示されず、コンテンツとしての機能は全くありませんでした。
日産の方にもその点が弱いことはご指摘頂いていて、審査の際にはその点がマイナスに響いて僅差で入賞したそうです。

せっかく作ったのだから、実際にCARWINGS(日産純正のカーナビ)ユーザーさんに使ってもらおうと、コンテンツ面を強化しようと思いました。CARWINGSは、サービスとして登録できるRSSは10個(だったかな)、走行中に使えるのは5個までです。お気に入りのサービスがあればすぐに埋まってしまいます。その5個に登録してもらえるコンテンツ・・・・うーん難しい。

というわけで、コンテンツを自前で用意するのはさっさと諦めて、「ユーザーさん一人ひとりが、今実際に使っているRSSサービス」とマッシュアップ!

新機能は「日産deRSSリボルバー」といいます。例えば、今ユーザーさんがAというサービスを登録して、一番良く使っているとします。これの代わりに「日産de旅ログ?」を登録していただいて、「日産deRSSリボルバー」設定画面にAというサービスを登録します。
そうすると、「日産de旅ログ?」へアクセスすると、位置情報を記録したあと、「日産de旅ログ?」からAというサービスへリクエストを転送し、受け取ったRSSをユーザーに返します。つまり、ユーザーからすると、いつも使っているAに「日産de旅ログ?」機能が付いたことになります。

さらに、RSSは最大6つまで登録でき、「日産de旅ログ?」へアクセスすると、それらを順送りでアクセスします。例えば、和食検索、中華検索、洋食検索、ファミレス検索、などを登録しておくと、何回かアクセスすれば一回りできます。これで走行中は5つまで、というRSS登録の限界を拡大できます。

CARWINGSのユーザーさんにしかメリットのないサービスですが、ログを見ると「日産de旅ログ?」はほとんど使われていない(悲しい!)ので、ぜひ使ってもらいたいなあ、と思ってます。

2007/10/09

グーグル・ガジェット版「マップサーファー」できました (+雑魚ガジェットもうひとつ)

マップサーファーに新しいツールが追加されました!

ここギコ!さん作による、グーグル・ガジェット版マップサーファーができました。
機能はマップレット版マップサーファーと同じですが、キーワードによる検索が付いています。

キーワードで検索し、その場所へ「サーフ!」するもので、とても便利です。
ぜひ皆さん使ってください。


ついで、「GoogleMaps@once(グーグル・マップス・アット・ワンス)」というガジェットも作りました。
こちらは、複数のキーワードGoogleMapsに投げて、キーワードの数だけウィンドウを開く、という乱暴なものですが、出張先Aと、出張先Bと、出張先Cの場所を調べたいときなど、一気に3枚の地図が開くので便利です。
こちらもぜひ使ってください。

2007/10/01

マッシュアップアワード3rdにトリプル入賞しました!

ここギコ!さんとデザインのANNAIさんとで共同出品していた、マッシュアップアワード3rd(リクルート、SUN主催)に、入賞しました!前回MA2ndのホットペッパー賞に続き、二回目の受賞です。

「マップサーファー」:富士ゼロックス ネットプリント賞


「日産de旅ログ?」:日産自動車 カーウイングス賞


「AB-ROAD Mapplus!(GreaseMonkeyスクリプト)」:リクルート エイビーロード賞


アワードもどんどん周りのレベル(技術、アイデア)が上がっていって、今回は難しいなあ、、と諦めていたのですが、なんと3作品受賞です(本当にびっくり!)
これもここギコ!さんの技術力とANNAIさんのデザインのおかげです!
また審査していただいたAPI提供企業さま、どうもありがとうございました。

2007/09/25

マップサーファー V3.0 リリース

Google Mapplet「マップサーファー」がバージョンアップしました。
これはサンとリクルートが主催するマッシュアップ・アワード・3rd にも出品しました。

これまでのロカポサイト内とは別に、マップサーファー専用ドメインでも配布しています
マップサーファーホームページ http://map.surf.gs/
マップレットの場所 http://map.surf.gs/mapplet/mapsurfer.xml

これまでの場所にも置いてあります。http://www.locapoint.com/publicutil/mapplets/mapsurfer_j.xml


V3.0はこれまでの機能に加え、地図を開くURLをメールする、カーナビへ転送する、セブンイレブンのネットプリントへ転送する、その場所を中心にして情報サイトなどの機能を追加し、よりパワーアップしました。

また、マップサーファーにMapplet以外の選択肢が増えました。
ここギコ!さんが手がけた携帯サイト版マップサーファーも用意しています。

携帯サイト版マップサーファー http://map.surf.gs/m/
こちらもGPSで取得した位置を軸に、いろいろな地図サービスへ「サーフ」することができるようになっています。

また、MapSurferのロゴをデザイン事務所ANNAIさんに作っていただきました。ありがとうございます。

新しくなったマップサーファーをぜひお試し下さい。

2007/09/24

gungi(軍議)でのライトニングトークとプレゼンの先生

9/21(金)に、エンジニアによるエンジニアのための勉強会「gungi(軍議)」に参加させて頂いた。
5分間のライトニングトークの枠を頂いて、位置情報ロカポの紹介をさせてもらった。

プレゼンが下手で苦手な私だったが、ちょうど直前の9/11~9/14に大阪のポリテク関西というところで「English Presentation Technique」というセミナーを受けたばかりだった。プレゼンの構成、パワポの作り方からはじまって、姿勢、ジェスチャー、見せ方、などなどいろいろ講師からアドバイスを受け、最後にプレゼンを発表した姿をDVDに撮ったものをもらえる、というセミナーだった。私はもちろん、「位置情報ロカポ」を紹介するプレゼンをテーマにやった。

その講師は、Roman Meshonというボストン出身・高知県在住のアメリカ人で一人一人に的確なアドバイスをくれた。セミナー最終日にはローマン先生と受講生達で大阪の町に飲みに出かけいい友人になった。

ちょうど、飲んでいる最中に軍議でプレゼン(ライトニングトーク)をやれば?という電話をもらった。なんというグッドタイミング。当然セミナーでRomanにアドバイスをもらった原稿をベースにやることにした。

ところが、とても悲しいことに、そのRoman先生が3日後の9/17に事故でお亡くなりになったと聞いた。もらったメルアドにメールして"keep in touch" と書いた返事が、同僚の方からのメールだった。私はすっかり動転してしまった。

Gungiに参加した9/21日の前日の深夜、彼の遺族にCondolence(お悔やみ)の電報を打ったところだった。というわけで、GungiでのプレゼンはRomanの弔い合戦のようになってしまった。Gungiが始まる直前、1時間ほど時間をつくり、カラオケボックスに入って、DVDの中で私にアドバイスをくれるRomanを何度も見ながら練習を重ねた。時折涙が出てきた。

実際のGungiでは5分のプレゼンが自分としては非常にうまくいった。緊張もせず、適度に笑いもとれて、うまく伝わったと思う。後の懇親会では、プレゼンが良かった、というお声もいくつも頂いた。プレゼンが下手で苦手で、本来は人前で話すもの苦手な私では考えられないことだ。Romanの授業とアドバイスのおかげである。

Roman, I dedicated that presentation to you.
I made it, my friend, thank you.