BT-338

高度がマイナス

BT-338では,何故か,高度がマイナスになります.CFGPSではそんなことはない(とおもう).
BT-338に問題があるとも思えないので,やはりWGS84->TOKYO変換に問題があるんでしょうね.もっとも,私はWGS84とTOKYOがどう違うのかをいまいち把握しておりませんので,憶測の域を全くでないわけですが,別に困ってないけどなんだか気持ち悪いですね.登山とかで使えないじゃないか!(使わないけど).
qpeGPSだと,地図はお手製になるわけですから,地図を作成する時点でTOKYO->WGS84変換できるはず.というわけで,地図側をWGS84にしておいて,qpeGPS上では全てWGS84で統一,などすると解決するかもしれません.解決しなかったらqpeGPSのバグかBT-338のバグか,実は本当に高度がマイナスなのかのいずれかでしょう:-)

追記

たぶん自己解決しました.
WGS84ではそもそもGPSで高度なんて求まりはしないんだそうな(参考1,参考2).というわけで,あらかじめジオイド高を何らかの形で決めうちにしているから,日本では高度がわからないんじゃないですかね.
ちなみにTOKYO測地系でうまくいくのは,基準が東京湾平均海面だから.
ところで,ジオイド高はここで知ることができるらしい.WGS84で取得した高度にこの値を足し込めばいいんだと思います.たぶん….

qpeGPSのおすすめの地図

地図の切り出し方いろいろ

qpeGPS用のおすすめの地図ってなんでしょう?
ありがちなのは

  • 一生懸命自分で切り出し
  • 自動で切り出し
    • Mapfan
    • Yahoo maps

でしょうか.

自分で切り出すのは大変です.ゼンリンでやったことがありますが,めんどくさいですよね.
自動で切り出しというのは,Perlで組まれたツールなどで半自動的にダウンロードしてきてくれるもので,Mapfanのものが公開されています.Yahoo mapsのほうは,古いMapfanのシステムがまだ古かったころのダウンロードツールなのですが,こいつをちょろちょろと改造してやることで可能です*1.ちなみに,その元はid:Alcyone:20041224で公開されていたmapgetdm.plでした.ありがとうございます.

つまるところ何をいいたいのか

自動化はすばらしい.そして現状ではMapfanとYahoo mapsがあるわけだけれど,どちらがよいのでしょうか?ということです.
一応両方使ってる人間としての意見はこんなかんじ.

maps 正確さ 詳細さ 楽? オーバーラップ
Mapfan ×
Yahoo maps

正確さはMapfanのほうが良いです.1/1562でも正確に現在地を示します.しかし,たまに,異様に緯度経度が狂ったページが存在します.なんでなのかは未調査.Yahoo mapsも悪くはないのですが,1/8000より詳細にすると誤差が目立ちます.
詳細さはYahoo mapsのほうが良いです.Mapfanは詳細にしてもたかがしれています.しかしYahoo mapsは1/3000にすると正確さに問題がありますので,誤差を許して詳細にするかというトレードオフになっています.
楽?というのは,地図の取得時の問題です.もちろん,ツールで簡単に取得はできるのですが,Yahoo mapsの場合,ダウンロードしたgifファイルの都合で,ただ拡張子をpngに変えただけでは,画面にムラがでます.Linuxのlibpngで自動変換することも考えましたが,libpngに問題があるのか,ヘンなムラがでてしまいましたので,仕方なくWindowsアプリを使って変換してようやく使えています.Mapfanのほうは拡張子をpngに変えるだけでOKですので,楽です*2
オーバーラップというのは,qpeGPSの仕様上の問題に起因するものです.qpeGPSでは現在地が変わっていくと,やがて隣の地図ファイルに移動するのですが,このとき,現在地が完全に隣の地図に移動しないと,次の地図が表示されないのです.つまり,対策を講じていないと,画面が半分ほど真っ黒*3になってしまうわけです.
対策として,隣の地図と重なる部分を余分につけて(オーバーラップさせる)やるという方法があります.SL-C系ではVGAディスプレイですから,VGAモードで使うときは,地図の上下左右にそれぞれ320pixelのオーバーラップ部分をつけてやる必要があります*4.そのため,地図画像は十分に大きなサイズでなくてはなりません.具体的には1000x1000以上欲しいです.
Mapfan用のqpegps_from_mapfan.plのソースを眺めてみた限りでは,A4印刷サイズでダウンロードしてくるため,余り大きくありません.したがって余白を大きくとれないので,オーバーラップ仕切れない部分が発生し,地図の表示されない領域が長々と出てしまって悲しいというわけです.

まとめ

自動化すべきなら,MapfanとYahoo mapsの使い分けでいくのが良いような気がします.お気楽さから言えば,断然Mapfanのほうなのですが.ちなみに,テストしているのが山口市なるド田舎なので,東京とかだと違うのかも….東京に戻ってから試してみます.

昔,昔の日記で書いたように,Google mapsAPIをつかってZな地図をうまく切り出したりできないものでしょうかねぇ.

*1:もちろん,Perlの基礎知識くらいは必要.でも私はC/C++しか知らないけどなんとかなりました.

*2:というか,ダウンロードツールのほうで解消してくださっている.

*3:SL-A300SL-B500では真っ白.

*4:VGAモードで標準スタイルとビュースタイルでタテヨコが変わるので,上下左右にそれぞれ320pixel必要.SL-A300とかだと,上下にそれぞれ160,左右にそれぞれ80Pixelでいいです.