ここのところどっぷり Google Maps に嵌って──ハマっていて、試行錯誤を繰り返しながらも、しかしまだゴールが見えない。ゴール、それは「一万を超える超巨大なトラックポイントの描画(オーバレイ)」。データがヘビーすぎて、じぶんのチープ iBook には無理だろうと察するは容易なのだけれど、どうしても描きたい。そしてブラウザをハングさせまくっておる今日この頃。 Firefox にはまだ望みがありそうな気もするのだけれど、一方 Safari はどうしようもないという思いが確固たるものに結晶しつつある。
でもその件についてはまだ志半ばなのでまたの機会にまとめるとして、この記事では、その間に作ったツールについて。 Google Maps を用いて GPX 形式の XML データを作成する JavaScript を含んだ HTML ページ。

Figure 1: Screen Shot [693x712...]
まず Google Maps にトラックデータやウェイポイントなどを読み込ませるために、じぶんは JSON 形式のデータに変換している。そのほうが扱いやすいし、なにより軽いから、というそれは「体感的な経験」から導かれた結果なのだけれども、その前に、一次データとしては GPX 形式として持つように決めていたので、なんにせよ最初は GPX 形式からはじまる。ハンディ GPS レシーバから GPX 形式で取り出して JSON に変換。それを、 Google Maps で読み込む。
GPX 形式のデータを作るには、トラックログは GPS レシーバから GPSBabel で取り込むだけなのでなにも言うことはない。でも、方やウェイポイント、つまり Google Maps のマーカーになるデータについては、後から手動で付け加えて行くことになるので、ゆえに、そのエディタがほしいと思った。
KML から GPX への変換ができれば、 Google Earth のほうでいろいろ付け加えて KML 形式で保存すればよかったかしら。でも GPSBabel ではその向きの変換ができなかった。
そのとき、両データとも XML 形式なので、その内容を知れば変換ツールも比較的簡単に作れそう、とは一瞬思った。でも KML は一瞥して眠くなるほど難解に見えた。またそれ以前に、 Google Earth を起動させるのは躊躇われるものでもあった。なぜなら、じぶんの iBook にはいささかヘビーなアプリケーションだったから。
──ということで、 GPX 形式のデータを直接編集するための、軽くて、簡単なエディタがほしいと思い至ったのだった。もちろん、緯度・経度の数字を手動で入力するようなものではないことは言うまでもない。地図上をクリックするだけで、さくさくとポイントを登録していけるようなものがほしい。でも少し探してみたところでは、見つけられなかった。カシミールで作ったデータというのはよく見かけたけれど、うち、 Mac だし。尤も Mac でもちらほら製品のツールはあるようだけれど、でもじぶんが持っている、例のあの ProAtlas X2 なんか、大金を叩いたというのにぜんぜん頼りにならないのだから悔しい。
また前置きが長くなった。
見つけられないのならば、ということで、 Google Maps API にもだいぶ慣れて来たことだし、これでひとつ作ってみることにした。 GMap2.getCenter() を呼び出すボタンを付けるだけのような、そんな感じだろうと、イメージはすぐわいたので、あとは、ユーザインタフェースを工夫してどれだけスマートにできるかがキメテだろうか、と、そういうことを考えるほうがずっと楽しいからか、 KML 形式を調べることよりも取りかかりはよかった。
そうして、時間はかかったけれど難しいこともとくになく、あったとすれば Safari の不可解な挙動だろうか。それはまあ、いいとして、 Safari ( "Safari 1.3.2 (v312.6)" )と、それから Firefox ( "Firefox 1.5.0.4" )でもちゃんと動くものとして出来上がった(ほかのブラウザのことはうちの iBook には入っていないのでしらない)。
これを作るにあたっては、ひとつのコンセプトとして、 JavaScript だけを使うことにしたかった。いちいち Web に繋がなくとも、ローカルで作成できることがベターだったので Web サーバ不要としたかった。 API キーのことがあるから、せめて( API キーを作成する際に登録したドメインの)サーバにアップロードしないと駄目かな? とも思ったけど、ブラウザでローカルパスの HTML ファイルを開けば( file: プロトコルで表示させるならば)、問題なく地図を送ってくれるようで、またそのときは API キーさえ要らなかったので、ブラウザだけでこと足りるものを作ることができた。(ああ、地図を送ってくれる Google には繋ぎに行く必要はあるのだろうけど、それは裏の事情だ)。
HTML と JavaScript だけで動作するので、うっかりリロードとかしてしまったりすると、入力したものが水の泡になってしまう危険があるのは注意が必要だけれど、なかなかよいカンジではなかろうか。中身は精査していないのでチョットだらしないけど。
そういえばいままでウェイポイントを活用してみる気がおきなかったのも、 GPS レシーバにいちいち入力するのが面倒だったというのもあるかもしれない。手入力はもとよりする気はしなかったし、かといって他に入力する手段といえば、あの ProAtlas 経由でしかもそれはそれは手順が面倒だった。動作も緩慢だし。
でもこれで GPX 形式のデータを簡単に作れるようになると、 GPSBabel 経由でポイントを GPS レシーバに取り込んだりするのも簡単にできるだろうから、いままではトラックログ集めばかりだったけれども、それとはまた違った楽しみ方もできるかもしれない。たとえば最近知ったジオキャッシュとか、面白そう。
ああ、それからトラックデータも作れると、なおよいかもしれない。でもそれはまたにしよう。

Figure 2: Viewer [492x440...]
ところで、作ったデータを見るための、肝心のヴューワ( Viewer )のほうは、 "GPX Viewer" [参考1]というのがあって、これを参考にして、 JSON 形式に対応するように改造したものを使っている。そして、エディタのほうも、じつはこれに読み込ませるための形を意識したものにしている。──一万ポイントを超える、そんな超巨大なものを取り込ませなければ、せいぜい二千くらいまでなら、それで十分いけるくらいには工夫できたのだけれども。
それ以上ともなると指数関数的に時間がかかるようになってしまって、いまのところはぜんぜん駄目。しかしこれは、メモリを積めという思し召しなのかもと思えなくもなくもない。
ただ不思議なことに(?)お茶が沸くくらい待ってみると、いつの間にか表示されたりする。どうせならいっそのこと、ブラウザがクラッシュでもしてくれれば諦めもつくものをとも思えるのだけれど、でもそれでこそ、まだ改良の余地を見いだせるものと思って、もう少しあがいてみるつもりでいる。
サンプル&ダウンロード:
参考:
- [1] GPX Viewer (Notions)