趣味のメモ

備忘録です

測位できたよーんのビミョーな仕様について

Zegaで対応しているNMEA-0183のフォーマット京都大学の研究室が公開している「GPSの森」の情報を参考にしています。*1
ここの説明によると「GGA」センテンスの第6フィールド*2が「GPSのクオリティ」となってまして、ここが「1(単独測位)」の時に「測位できたよーん」とZega側で判断して地図上に現在位置を表示するようにしてます。*3
逆に「0(受信不能)」や「2(DGPS)」の場合は測位できてないと判断して、GPS受信状態をNGにしてます。「DGPS」は何なのかわからんかったのでシカトしてます。*4

自分も気づいていたのですが「GPSのクオリティ」のステータスでGPS機器が測位中と判断するのは誤っているようです。
実際、自分が使ってるBC-337様は「GPSのクオリティ」が「0」でもカード本体側のLEDが点滅して「測位中よん♪」と仰ってることがあります。
なので、第7フィールドの「受信衛星数」を当てにするか、経度・緯度が埋め込まれていればOKとしてしまった方が良いような気がしてます。


でも、他の機器がどうなのかよくわかんないので安全パイで「GPSのクオリティ」を判定に使っちゃいました。日本にいるのに赤道直下を測位されちゃったら地図が見えないんで困るかなと思ったりしたもので。(^^ゞ


qpeGPSとかgpsvpのソースを眺めて、実装をパクろうかなぁ。(^^;
ちょっと調べて修正版を出します。
GPS受信感度の悪い状態で色々な機器でテストしてもらえると面白いかな〜。(^^)

*1:大学の先生達ありがとうナリ

*2:NMEA-0183フォーマットのページの表だと4番目です

*3:具体的にはVersion 0.10のプログラムソース gpsloghandler.cpp の235行目の if 文で判定してます

*4:ダメじゃん;;;