今回もGoogleマップアプリの基本です。
マップアプリを起動して、表示された地図を見たときに次のようなことを思ったことはありませんか?
- 自分が今どこにいるのか?
- 自分が今どの方向を向いているのか?
こんなときにはマップアプリの元々の機能を活用すれば一発で問題解決です。
1.自分の位置と向いている方角
では、マップアプリを起動してください。そろそろ見慣れた下図のような画面が表示されます。
今回注目するのは、画面中央に表示されている青いマークです。
この青いマークを拡大して詳しく見てみましょう。
参考になるよう右下に縮尺をコピーしてきました。ここで見えているのが5mですから、マップ自体がかなり拡大したものであることが分かってもらえると思います。
このように真ん中に濃い青の小さな丸があり、それを中心とした薄い青い大きな丸があります。また、中央の濃い青の上側には、扇形に広がっているような薄い青の別のマークがあります。
まずは中央の濃い青の小さな丸です。これがあなたの現在地です。薄い青の大きな丸は、現在地の誤差範囲を表しています。直径はだいたい15m強くらいでしょうか。これらはスマホに搭載されたGPSモジュールによって計算された結果です。
GPSは地球を周回するいくつもの人工衛星からの電波を受信して現在地を計算しています。ですから電波を受信できない屋内ではうまく現在地を見つけられません。たとえ屋外にいたとしても、あなたの近くにビルなどの建物があればGPSの電波を遮ってしまいます。
そうするとGPSモジュールで計算した結果として得られる誤差が大きくなることもあります。するとこの薄い青の大きな丸が更に大きくなります。
次に、扇形のマークです。これは、あなたが今向いている方向を表しています。スマホが検出したあなたの向きは扇形のちょうど真ん中辺りの向きになり、扇形の開き具合はその誤差範囲を表しています。念のため、この図で向きを示すと下図の赤い矢印になります。
この向きというのは、あなたがスマホを持っマップアプリの画面をあなたの正面で見ているときのあなたの向きという意味です。実はスマホの持ち方や姿勢をそれほど意識しなくても、普通の姿勢でマップアプリを使っていれば問題ありません。
ちなみに、場所は移動せずに体の向きを変えてみると次のように表示されるようになりました。
これがだいたい反対方向を向いたときの画面の様子です。青い点の位置は若干ズレていますが、誤差の範囲です。また、扇形の向きは体の向きの変化とほぼ同じの180度反対方向を向いていることが分かります。
このようにマップアプリを起動させ、周囲の建物が分かるくらいにマップを拡大させれば、自分のおおよその位置や向きがマップアプリ上に表示されます。これさえあれば、自分がどこにいて、どの方向を向いているのかすぐに分かるようになると思います。
2.マップで使うスマホのセンサー
現在のスマホにはいろいろな種類のセンサーが搭載されていて、マップに限らずたくさんのアプリがこれらのセンサーを利用しています。
マップアプリが使っているセンサー類は、だいたい次のようなものだと思います。
- GPS
- 電子コンパス
- 加速度センサー
- ジャイロスコープ
せっかくですから、これらについて簡単に説明しておきます。
2.1 GPS
まずはGPSについてです。
GPSは上で説明したように地球上のスマホの位置情報を取得します。
GPSというのは本来アメリカが運用している測位システムの名前で、Global Positioning Systemの頭文字です。ところが現状は、「GPS」という言葉は測位システムの人工衛星が発信している電波を受信し、位置を求めることができるセンサーのようなものという意味で使われています。
実はスマホに搭載されているGPSは、アメリカが運用しているGPS以外の測位システムにも対応しています。主なものは、次の3つです。
- ロシアの GLONASS (正式名称はロシア語で ГЛОбальная НАвигационная Спутниковая Система で、その頭文字(?)の ГЛОНАСС を英語のアルファベットにあてたもの)
- 中国の Beidou (正式名称は中国語で 北斗卫星导航系统 という名前の最初の2文字のピンイン表記)
- EUの Galileo
日本でもみちびきという測位システムが運用されています。最近のスマホでしたらこのシステムにも対応していると思います。
スマホでは、これらの色々な測位システムを使うことで現在地の精度を向上させることができます。
2.2 電子コンパス
次は電子コンパスです。
学校などで方位磁石/方位磁針を使ったことがあると思います。水平に置くと、地磁気を感じてN極が北を指し、S極が南を指すアレです。
方位磁針のことを英語ではコンパスといいます。ここで話をしている電子コンパスというのは、この機能を電子的に実現したものです。
実は、地磁気の方向は地面と並行ではありません。地球の周りの地磁気の方向を線で表現すれば、赤道付近は地面と平行に近いのですが、北半球であれば北へ向かうほど地面の方へ傾き、南半球であれば南へ進むほど地面の方に傾いています。
電子コンパスは方位磁針と違って平らなところに置く必要はなく、3次元的に地磁気の方向を検出することができます。北と南の方位は地面に平行な成分だけを計算すれば求めることができます。
ちなみに地磁気の南北は南極点・北極点とはちょっとズレたところにあります。ですので、電子コンパスの検出結果だけを使って南北を表示すると地図の南北はちょっとズレていることになります。(実際はこんなことにはならないようにしているはずですが…)
2.3 加速度センサー
加速度センサーというのは、その名の通り加速度を検出するセンサーです。
もしかすると、スマホに搭載されている加速度センサーなんだからスマホを動かし回っているときの加速度が測定できるだけだろうと思っているのではないでしょうか?
もちろんそれはそれで正しいのですが、スマホが静止していても加速度センサーは0ではないほぼ一定の出力を出しています。それは何でしょうか?
答えは重力加速度です。重力加速度というのは地球の中心方向、または水平面に対して垂直な方向を向いた加速度です。
加速度センサーも電子コンパスを同じように3次元の各方向の加速度を検出できます。ですからスマホがどんな向きで置かれようとも静止させておけば水平面に対して垂直な方向がどちら向きなのかが分かるというわけです。
2.4 ジャイロスコープ
ジャイロスコープというのは回転を検出するセンサーです。
スマホがどんな方向にどれくらいのスピードで回転しているのかということが分かります。
このセンサーも3次元的に検出することができるのであらゆる方向への回転に関する情報が得られるというわけです。
2.5 マップで各種センサー出力を統合
この話を始めたときに紹介したGoogleマップ上のあなたの位置や向きは、上記の(少なくとも)4つのセンサー類の検出結果を更に計算することで求めています。
例えば、電子コンパスで得られた地磁気の方向のうち、北がどちらかを知るには水平成分だけを抽出する必要があります。水平成分だけを抽出するには水平面を知る必要があります。このためには加速度センサーで得た重力加速度の方向が必要になります。
また、地磁気の北と北極点とのズレを補正するにはGPSで求めた地球上でのあなたの位置が必要になります。
このように各センサーの出力を互いに利用することでマップに表示する位置・方位データの精度を高めることができるというわけです。
スマホでマップを使用することだけを考えていると、「スマホにはGPSさえあれば十分じゃん」と思うかもしれません。でも、スマホに搭載されている各種センサーがそれぞれの役割を果たしているからこそ、今のようにとても便利に使えるアプリになっているのです。
スマホのカタログを見ると、GPSやセンサー関係の項目もちゃんと掲載されています。いつもなら飛ばしてしまって、見ることさえなかったかもしれませんが、今度見るときには上のようなことも思い出しつつ眺めてもらえれば嬉しいです。
では、これでマップアプリ上の現在地と向きの話はおしまいです。