日本の住所表記とGoogle Map/Earth


以前、カーナビなんかで使われている電子地図の規格がどうなっているのか調べたことがあった。カーナビが日本くらいしか市場がない製品だった時代なので、当然カーナビで使われている電子地図も日本の実情に沿った形で作られていた。


日本の住所表記は、基本的には面的な広がりをもった地域分割をした上で、その面的な広がりの中にさらに番号を振るという形式だ。ようは「東京都」「千代田区」「永田町1丁目」「7番」「1号」ってな感じ。一部のアメリカ人なんかから「これは合理的だ!」なんて感動されたこともあるんだが、彼らにはこの住所表記がなんとなく二次元的(X-Y座標的)に表記されているように思えるらしい。


一方、欧米は大雑把に言うと番地がまずきて、「通り」の名前(xxx streetとかyyy ave.とか)、町の名前、最後に都市名という表記だ。「1600 Amphitheatre Parkway, Mountain View, CA」ってな感じ。で、こっちは奴らに言わせると「一次元的」らしい。


で、カーナビの電子地図の話に戻ると、まあ最初に商業ベースでカーナビを普及させた日本の地図規格をぜひ世界標準にと意気込んで話をしたら、欧米からはそんなめんどくさい規格はいらねーといわれてしまった。


日本の電子地図はもともと「ラスタ」データで作られた。航空写真とかをスキャニングして、それぞれのドットに「これは道路」とか「これは川」とかの情報を重ねていったわけですな。そして、日本の住所表記は面的に情報が存在していたので、それぞれのドットに「ここは何町何丁目何番何号」という情報も重ねやすく、これはこれで合理的だった。一方、欧米のほうはここまで面的な情報は必要ない。基本的には道路のベクトル情報だけを押さえておけばいい。んで、欧米なんかでは「ベクタ」データ形式のほうが主流だった(「ラスタ」「ベクタ」の説明は「ラスターとベクター」あたりを参照)*1


日本の住所表記は平面状の全ての点に何らかの住所が割り振られる必要があるわけだが、欧米のほうは道路の周り(というか道路のみ)さえ地図に書き込めばいいだけだ。しかも日本の住所の「丁目」とか「番地」の割り振りにはたいした法則性はない。必ず北東から南西方向に番号が振られるとか決まってないし。対して欧米のほうはとりあえず通りの起点の向かって左側をとりあえず「1」にしてあとは適当に番号を振っていって、通りの終わりにきたら今度はそっから道路の右側に番号振っていって終了と。


ついでに言えば、アメリカで車を運転すると案内標識が異常に分かりやすいことがわかる。とりあえず都市名と通りの名前さえわかればたどり着ける感じ。案内標識の考え方として「この都市にいくならこの通りを行け」ってのがすぐわかるし、その町についたら「その通りにいくにはこの結節点を左折しろ」とかって具合だ。そしてその通りにたどり着けさえすれば一往復すればほぼ確実に目的地は見つかる。対して日本の案内標識の分かりにくさはなんなんだろうとか思うわけだが、これはまた別の話か。


で、話をカーナビの地図に戻せば、最近は日本でもベクタデータを搭載したカーナビが増えてきたと思う(最近追っかけてないのであまり自信はないが)。これは3次元表示とかをする際の描画計算とかはベクタデータのほうがはるかに速いからという理由なんだろうけど。とはいえ、やはり日本の住所情報とかはラスタデータで持ってるとも思う。レイヤーで重ね合わせたりしてるんだろうか。




さてようやっと話は表題につながるんだが、Google MapとかGoogle Earthとかってこれってラスタデータなんじゃね?という気がしている。Google Earth衛星写真とか航空写真とかでしょ。Google Mapのほうはよく分からんが。ただどっちにしてもただの地図だと意味がないわけで、Googleはこのデータの上にお店だのなんだのの情報を重ね合わせることを狙っているわけだから、そうなるとベクタデータよりはラスタデータのほうが親和性が高い。ただGoogle Mapをカーナビに使うのかどうかはわからないが(ま、いずれでてくるんだろうが)、移動を前提とした利用方法なら何らかの形でベクタデータを用意しなけりゃいけなくなるのかなとは思うが。


で、「ここギコ!: 位置情報周りでGoogleの戦略がぶれている」を読んで思ったのは、実は欧米の住所表記テキストをそのまま読みこんで地図に表記するというのは実はラスタデータだとやりにくいんじゃないかということ。日本の住所表記のほうが実は向いてるんじゃね?と思った。その意味では上記エントリの

Webクロールして住所を抜き出しジオコーディングするためのライブラリの構成

なんてのは日本のほうがやりやすいのかも。


ただ、日本では既に「MAPCODE」というサービスをデンソーがやっている。このMAPCODEは、日本中をメッシュ化してそれぞれのメッシュに独自のコードを付与しているサービス。これ使えば一応住所と緯度・経度の変換は擬似的に可能*2。これをラスタデータの地図上に植え付ければ一歩先んじることは可能かも。さらに言えば電話番号からもMAPCODEへの変換は可能なはず(タウンページとかに載せてれば)。デンソーははやいとここの規格をパブリックドメインにすべきだと思うがな。その際は緯度・経度情報も併せて開示することが必要になるんだろうが。


ま、そのうちGoogle様は地球上の4次元座標に固有IDをふっていただけると思われるので、MAPCODEはローカル規格で終わるんだろうなと。あー、結論を無理やりつけるとすれば、日本の住所表記は実はGoogle Mapと親和性が高いじゃないの、ということで。

*1:関係ないが「ベクター」とのばすのか「ベクタ」で止めるのかっていっつも悩む。JISとかではのばさないほうに統一してるんだっけか?

*2:ただし、このMAPCODEではメッシュの最小単位が3mなので精度の問題がいずれ出てくるかも