OJerBlog
 

メモ: 単盲象をなでる 2010/06/22追記

この掲示を書いたあと、KMLファイルのルートをどうせならGoogleMapで直接描いた方がよかろうと調べていた。そしたら、自分ではそれなりに苦労して見つけたこの掲示の内容は、GoogleのAPIをはじめから知っていれば噴飯ものの苦労であることがわかった。単盲ならぬ単妄が象をなでていたのだ。単妄にはまだ全容が見えていないが、GoogleMapのAPIだけですんなり片づく話のようである。

さっそくルートもKMLをやめてAPIで書き直した。色も少し変えて。これで最後の地図は、GoogleMapのAPIだけで描いている。

自転車ルート 2010/06/23追記

自転車用のルート検索はAPIのドキュメントがあってプログラムも動く。ただし、いまのところはアメリカだけ。専用のレイヤーを設定して、サイクリングロードマップを本格的に作るつもりらしい。当然、地図データが必要になるから、日本の場合はどうなるのだろう。ゼンリンが自転車マップを作るのかなあ?

GPSコンパス 2010年6月20日

以前から浜風の航跡?を掲示に載せるのにGPSロガーがあれば便利だと思っていた。こいつがあれば、自分の移動した軌跡を数秒おきに記録できる。最近、ご近所ブログでGPSロガーの記事が出たので、ますます欲しくなった。あれこれWebを調べてGH-561という台湾メーカーのものを発注した。届いてから取扱説明書を読んで愕然。これはGPSコンパスであってロガー(位置の記録)機能はなかった。後の祭りだがディーラーのHPを見直すと、「この製品はロガーではありません」と書いてあった。いくつになっても粗忽は直らない。

何ができるGH-561

あらためてGH-561を調べてみると、もちろんコンパスの機能、つまり磁石の働きは当然あるが、強い磁石を近づけるなとあるので、GPSで方位を測定するだけでなく、磁気センサーも入っているようだ。

コンパスの状態

コンパスというと磁針があると思うが、ない。つまり、液晶に表示されている円環が回転して、その上に表記してある“N”の位置で北を示している。

それに、北の指示だけでなく簡易ナビの機能がある。それも2通りの使い方がある。

(1)目的地の指示

目的地の位置(緯度経度)を登録しておくと、コンパスが常にその方向を指し、現在位置からの距離を表示する。

(2)ルートの指示

目的地へのルート(主要な通過位置)を登録しておくと、実際に移動しているとき、現在位置に応じてルートに沿って進む向きを表示する。簡易ナビ機能。

この矢印が目的地を指示している

まあ(1)は簡単だが、(2)は結構面倒である。浜風で1日走る予定のコースの通過点を拾って本体に登録しなければならない。粗く拾えばコンパスがどこを指すか不安だし、細かくすれば点数がやたらに増える。もちん付属ソフトがあってGoogleMap上で通過点を1点ずつ指定してゆくと、その結果をGH-561へ吐き出すメニューがある。

GoogleMapでルートを作ってGH-561へ転送する

しかし、直接GoogleMapを使えば、始発点と終点を指定して、「徒歩」で、とやれば、自動的にルートを描いてくれる(まだベーター版でいっとき「自転車」もあったがメニューから消えてしまった)。経過点を細かく指定もできるし、自動検索したルートがおかしければ、途中をドラッグ(まだ不安定だ)して修正できる。それなのに、1点ずつ同じGoogleMap上で地点をクリックしていくなんぞは、バカバカしくて使う気にならない。

アメリカのGoogleMapサイトを使ってルート検索 理由は後述

パソコンで作ったルートのデータをGH-561へ送り込むのは装置に依存するので付属ソフトを使わざるを得ないが、ルートファイルの作成自体はもう少し気の利いたものがありそうである。現に、GH-561には、GPXとKMLという形式の地図データファイルを読むメニューがある。前者はGPSの座標データ(緯度経度)などの地図情報を交換するための標準形式、後者はGoogleEarth固有の形式である。

要するに、GoogleMapで作ったルートをどちらかの形式で吐き出すツールがあればいいのだ。これが、あるんだね。Webを調べてみると自転車愛好家がGPSロガーのデータを使って遠征記録を投稿するという一大オタクワールドがすでに成立している。そのなかに、GoogleMapのルートデータをGPX形式に変換して取り出せる「GMapToGpx」という、そのものずばりのサイトが紹介されていた。GoogleMapでルート作成しておき、その画面からショートカットに登録しておいたサイトを呼び出すとJavaScriptが動いてGPX形式のコードが表示される。ブルーのタブでPoints、Route、Track、Fullとあって、この順にサンプリングする点が多く、したがってルートが詳しくなる。それをコピペでテキストファイルに貼り付けて、ファイル名の拡張子を.gpxとして保存する。そいつを、GH-561付属ソフトに読み込ませ、さらにGH-561本体に書き込む。これで(2)のルートができあがる。

GPXのリスト 出力内容をブルーのボタンで選択できる

実は、次回予定しているルートはすでに作って読み込ませてあるが、まだ使っていない。これについては、いずれ報告しよう。

GoogleMapのルートを自分のサイトに使う

ところで、GPSロガーの話とは別に、GoogleMapで作ったルートをブログに掲示するにはどうする?、このブログのマップで これまでやっていたように地図のイメージを貼り付けるなら簡単だが、どうせならもうすこしましな方法でやってみたくなった。つまり、GoogleMap上に浜風の航跡を描いて、それをそのまま掲示から見えるようにする。これにはGoogleがGoogleMapについて提供しているJavaScriptのAPIを利用すればいい。いまさらプログラムなど作りたくはないが、他のソフトの絵をコピペするだけではシャクだ。

Googleの資料を漁ると、自分で表示したい地域の地図を描くAPIはすぐにわかった。その地図の上にルートを描くAPIもあった。しかし、問題はこのAPIはKMLファイルしか受け付けない。単純な疑問は、Googleは、これだけ充実したAPIを揃えて無償で提供しているのに、なぜルートデータをそのままKMLで提供しないのか? あるのに知らないだけかもしれないけど。せっかく見つけたGMapToGpxで作ったルートファイル(GPX形式)が使えない。となるとGPX→KML変換のツールを探せばいい。これもまたあるんだね。その名もGPSBabelという。神がバベルの塔を建てようとした人の傲慢を怒って言語を乱された。それを人はまた通辞、通訳、はては自動翻訳機などを発明して反逆している。いまやバベルは翻訳の代名詞になっている。バベルなんて言語学校があったが、よくそんな名前つけるよな。おっと、脱線。わたしはクリスチャンでもプロテスタントでも、ましてやアーミッシュでもない。

ま、ともかくこのGPSBabelは、GPSの世界で使われているほとんどのファイル形式の相互変換をしてくれるソフトだ。もっと正確に言うと、個別のGPSチップの吐き出すデータを読んで、任意のファイル形式に変換してくれる。これを使うとGMapToGpxで作ったルートのGPXファイルとKMLファイルへ変換できる。しかし、実際にやってみるとエラーが起きて変換できない。エラーメッセージを見るとエラーの発生した場所が分かる。その場所をチェックすると日本語がでてくる行だ。GoogleMapからGMapToGpxで吐き出したファイルはコメントが日本語で書かれている。

どうやらGPSBabelはその名に不相応なことに日本語ができないらしい。つまり、8ビットコードしか考えていないらしいのだ(コードはUTF-8になっているので本当はできるはずだが)。コメントを読んだGPSBabelは、俺分かんないとエラーにして処理をやめてしまう。なにがバベルだと、いいたくなるがタダのソフトに文句は言えない。いやいや、日本語以外すごいソフトです。

GPSBabelのUI

日本のサイトだと日本語を使っているが、アメリカのサイトなら英語だろう。それなら直す手間がないと、そっちを使ってみた。しかし、GoogleMapってすごい! アメリカのサイトで作ったルートのファイルは、コメントは英語だが、日本の地名は日本語なのだ。しかたないのでGPXファイルにある地名をテキストエディタで半角英字に直す。ただ、日本のサイトで作ったものより遙かに直すカ所は少なくて済む。と、エラーはおきずにKMLのルートファイルを作ることができた。やれやれ。

実際にやってみた結果を次図に示す。最近、潮来のあやめ園へ行った(浜風ではなく)ときの歩程をGoogleMapに描いてみた。

(1)歩いたルートをGoogleMapで描く。

(2)ルートをGMapToGpxでGPXファイルに書き出す。

(3)GPXファイルから日本語をなくす。不要な地図データも削除。

(4)GPSBabelでGPX→KMLへ変換する。

(5)GoogleMapのAPIで潮来辺りの地図を描き、そこにルートを重ねる。

この地図は、このページにはめ込んではあるが、機能的にはGoogleMapそのままである。はめ込みだからサイズは固定だが、縮尺や表示範囲の変更、マップの種類(地図、航空写真、……)も、通常にGoogleMapを表示したのと同等に利用できる。それに応答がすこぶる機敏だ。これは地図のイメージを貼り込んだのではとうていできない芸当である。

カーソルが地図の中にはいると、このページでなくGoogleMapのコントロールになる。

ライトブルー青緑が散策路。白のフラッグは訪ねた場所。とくにオレンジのマーカーを点けた「観音寺」には、写真付きの吹き出しがつけてある。実は内容的には、ルートを描くのはKMLファイルを使い、フラッグはGoogleMapのJavaScriptで描いている(→すべてGoogleMap APIにした 2010/06/22)。最初、吹き出しもKMLで作ったがレイアウトが崩れてうまくいかない。同じコードをGoogleEarthにわたすとちゃんとレイアウトされているのだが、互換性は甘いようだ。なんとかKML内で解決しようとしたがダメで、GooleMapの吹き出しに直したら一発だった。吹き出しのサイズや位置はあまり融通が利かないようだが、もうすこし使い方を調べてみよう。

  
   
現在の閲覧者数:
inserted by FC2 system