geocaching2mapfanをブックマークレット化してみる

最近は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属性がいくつもあったりするのが辛い。

コメント

タイトルとURLをコピーしました