最近はgeocaching.com内の各cacheのページから直接地図ページに飛べる様になっている。 しかし、そのほとんどは日本地図をまともにサポートしていない。 唯一まともな日本地図を備えるGoogle Mapsも、測地系の違いのため (geocaching.comはWGS84、Google MapsはエセTokyo) 、東京付近で数百メートルの誤差が生じている。
そこで、各cacheのページからMapFanへ飛べる様なブックマークレットを作ってみた。 使い方は簡単。 IEの場合なら、下のブックマークレットを右クリックからお気に入りに追加して、cacheのページを表示させた状態で実行するだけ。 自動的にTokyo測地系への変換が行われ、Mapfanの地図が開く。 ここでGoogle MapsではなくMapFanを選んだのは単純に私の好み。 Google Mapsも悪くないし、Google Maps APIを使用して遊べそうではあるが、日本の測地系の扱いがまだ流動的っぽいので見送り。 MapFan以外の地図サイトを使いたい方は各自で変数jの生成を頑張っていただきたい。
測地系の変換は元のJavaScript版と同様、三角関数を使わない変換式を使用した。 なお、ブックマークレット版を作成する際に、元の普通のJavaScript版にバグが発見されたのでそちらも修正した。
ブックマークレットの作成にあたって一番苦心したのは、508文字制限。 hddd mm.mmmからの変換処理を省くために、NAD27へのコンバート用に用意されているddd.dddddd形式から座標を取得したりしている。 その他にも、短くするために変数名を縮めたり、細々した工夫をしているのでかなり難読なコードになってしまった。
ブックマークレットはIE 6.0.2900.2180;SP2;で動作確認している。 その他の環境での動作報告をいただけるとありがたい。
さて、次は逆のmapfan2geocachingを作りたいところだが、こちらは更に508文字制限が厳しそう。 MapFanの座標はmeta要素から拾えそうだし、geocaching側へはwgs84の座標をDecimal Degreesのままpostして近くのキャッシュの検索をすればよさそうだが、"LocationPanel1:LatLong:_inputLatDegs" などという長いname属性がいくつもあったりするのが辛い。
ToDo/ToBuy
_ ivatyp [Hi My Name Is ivalsv.]