Mapの地図と、APIから使用できる地図が違う!?」と書いたが、どうやら『新しい地図』がWGS84の地図のようである。APIにおける世界測地系の発表があったので、「&datum=wgs84」を付け、リニューアル間近のサイトのスクリプトを急遽フルWGS84仕様に訂正した。すると、以前の投稿で書いた、GoogleMapの地図と同じ地図が表示された。日本測地系の地図は12/1をもって打ち止め、となるそうなのでそちらの地図はアップデートしていなかった、というところでしょうか。post2005/11/02CLコードの登場(ロカポ誕生の記録:8)認知心理学からヒントを得てコードを作ることに決めた。コード」(CLコード)と名づけてスタートした。(これがその後「ロカポ(Locapoint)」となる)実際は試行錯誤の連続でしたが、ここでは最終的に落ち着いたフォーマットの仕様について、その経緯等を書いておきたいと思います。これは実質的にロカポの仕様ともいえます。これができあがったのが2005年1月の終わりごろでした。(本文がかなり長いです・・・・)●チャンク分け。いう様に分割しています。分け方としては、何文字ずつ、と物理的に分けるより「意味のあるかたまり」に分割する方が、脳の中でデータが意味付けられるので記憶に残りやすい。は・・・」の方が覚えやすいと思われる。位置情報コードを分けるには、まず緯度情報と経度情報に分けられる。二つだけではまだサイズが大きいので、これをさらに意味のある単位に分割するには「広域情報」と「詳細情報」に分けることが考えられた。そこでCLコードは4チャンクで緯度、経度それぞれの広域、詳細の情報を表すことに決定した。Globalでの使用を考えているので、カタカナや漢字はNG。どこでも通用する文字としてはやはり英語のアルファベットであろう。分ければ文字種が増えるので桁数短縮に貢献できそうだが、音声での伝達時に伝達ミスが発生しやすい。したがって大文字か小文字のどちらか片方に絞る。小文字は文字の形にバリエーションがあり、瞬間的な視認性が優れている。正方形であり、小文字よりは視認性に劣る。小文字であればどうしても「単語」と受け止めてしまう(と私は思った)つまり(da)とかいてあれば「ダ」と読んでしまう。これが大文字で(DA)とかいてれば「ディー・エー」と読む率が上がるだろうと考えた。誰が読んでも同じになることが望ましいので、後者を取って使う文字は英語アルファベットの大文字のみに決定した。「HK」と「KH」は間違えにくいが、「GKH」と「GHK」は間違えやすい。この手の認識間違いは連続する文字数が増えるほど大きくなる。本人なので?)3文字以上は覚え間違いが多い。したがって、連続する英文字は二文字にしたい。これは情報量との兼ね合いとなる。●数字の使用アルファベット(26文字)と数字(10文字)を混在させれば、36進法が使用できる。パスワード等では文字のIとOは使わないものが多い。30文字を使用している。これはなかなか良く考えられている。省く文字は「母音」と覚えられる。Iと思ってもそれは数字の1である。31文字であるが、31進法は計算がやりにくい。30進法にすれば、360度がベースの角度との割り算等がやりやすい。く必要があるが、母音ではないが「I」と音が近くイメージしやすい「Y」を選んでいるあたり、考え抜かれた形跡が伺える。ちなみにNACコードとほとんど同じマイクロソフトのコードは数字+アルファベット小文字で、母音と子音一文字を省いた30進法である。子音一文字は「y」ではなく「l(エル)」が選ばれているが、これは数字の1と形が似ているからであることは容易に推察できる。前置きが長くなったが、CLコードでは、文字と数字を使用する「位置」を区別してこの問題を解決することになった。これは次のリズムとも関連がある。文字が表れるべき位置と数値が表れるべき位置を明確に分離しておく。すると「|」のような文字が表れた場合、それが「文字」の場所なら「I(アイ)」だし、「数字」の場所なら「1(壱)」と区別できる、というアイデアである。●リズム(韻)これも電話番号を覚える時だが、よく似た番号をもつものは覚えやすくないだろうか。6305-6385と6305-2976では前者の方が覚えやすい。少なくとも私は最後の一文字が同じだけでも覚えやすい6206-8586これは最後の6だけが2チャンク間で共通なのだが、このおかげで一種の韻を踏むような効果で記憶に残りやすかった。この仕組みをなんとかコードに取り入れたい。韻を踏む、というのは万国共通で、大概各チャンクの後ろで音を合わせている。YYYYBのように、強制的に最後の一桁を前のチャンクに合わせるわけにはいかない。これでは一桁の情報量がほとんど無駄になる。CLコードでは文字の種類でリズムを出すことを思いついた。文字であろうが数字であろうが、コンピュータには単に8ビットのデータであるが、人間は明確に「文字」とういグループと「数字」というグループに分けて認識することができる。これを利用してリズムを作るのである。これらを加味すると、文字(A~Z)しか表れない位置と、数字(0~9)しか表れない位置ができる。これを数値化するには、文字の桁は26進法、数字の桁は10進法という桁によって進法がことなる(?)進法が必要となる。調べてみると、これは混合(復号)基数(基底)というそうである。度(360分)、分(60秒)、秒以下(10進法)そのほかに、アメリカのインチ・ヤード方(インチ・ヤード・フィート)や通貨の単位(ドルとセント)などがある。これら以外ではめったに使われることはない。いう単位を4つ繰り返したコードにすることに決定した。これで表せる情報量は26(文字)の2乗×10(数字)=6760これを緯度、経度に割り振ると、それぞれ7670の二乗=45697600通り=25.5ビットで、必要な25ビットをクリアしている。精度にすると、経度(幅360度)は45697600で割ると赤道上で0.000007.87度(約80センチ)、緯度60度ではその半分の40センチとなる。緯度は幅180度なので40センチの精度である。これだけの精度があれば、「人間が使う」分には十分である。これでやっと、使いやすいフォーマットと必要な情報量を同時に満足させることができた。90度から北緯90度までの角度を線形に対応させた。経度では西経180度から東経180度に対応させた。分かれば、その後は式一つで緯度経度にデコード可能である。ここで上位桁同士を並べて左側にしてみた。すると、左側2チャンクが広域情報に相当するので、狭い地域で使用する際には、左にチャンクはほとんど変化しない事になる。いうように、完全に地域コードになっている。用に際して、左二桁に対して、脳はほとんど気を配らなくても良い。この効果はかなり効果的である。私は関西在住であるが、大阪駅周辺はSA2.WU4という地域コードになり、覚えてしまった。いつでもそこへいける。●PCとの親和性(おまけ)これは当初は想定していなかったが、意外とPCとの親和性があることに気づいた。いうコードがあったとして、パソコンに認識させるには<××コード=“SKJEUD”>とタグなどを付けてあげなければ、それが位置情報かどうか分からない。いうパターンを正規表現で検索すれば、コードが認識できる。書いていても、メールアドレスやURLのように自動的に位置情報であることを検出し、地図やナビソフトを立ち上げるハイパーリンクにできる。Mapの地図と、APIから使用できる地図が違う!?同じ場所をGoogleMapと、GoogleMapAPIを使っている自分のサイトを比較して気づいたのですが、どうも使っている地図が違うようです。APIで使えるものの方が古い?または情報が少ないようです。GoogleMapsでは日本のものでも、USのものでも「セブンイレブン」が表示されています。Mapsでの表示ところが、GoogleMapAPIを使った私のサイトでは「セブンイレブン」がありません。Locapointのサイトでの表示はじめはコンビニのアイコンなので、GoogleLocalだけの付加機能かとも思ったのですが、もう少し北を見ると、「サンクス」はどちらの地図にも出ています。アイコンだけではありません。表示がないと、地図そのものも微妙に異なるようです。Japanロカポ開発者です。