Geolocation クラスの使い方は前回説明した Accelerometer と良く似ています。
Geolocation.isSupported 属性を使うと、実行環境で Geolocation が使えるかどうかを確認できます。値が true なら利用可能、false なら利用不可を意味します。
if (Geolocation.isSupported)
{
// Geolocationの機能が利用できる
}
位置情報といえば GPS が有名ですが、GPS 以外の手段で位置情報を取得するデバイスもあります。そのため、isSupported の値が true であることは、必ずしも GPS が搭載されているという意味にはなりません。
また、GPS 情報が受信できない場合の補助用に、複数の測位システムを搭載しているデバイスもあります。このようなデバイスでは、アプリ実行中に利用する測位情報システムが変わる可能性があります。
利用する測位システムの種類によって、Geolocation からの通知のタイミングや頻度が影響を受けるようです。ですが、利用中の測位情報の種類を知る手段はありません。なので、Geolocation の振る舞いについては実機での検証がいるかもです。
位置情報へのアクセスの状態
多くのデバイスでは、位置情報を利用する/しないをオプションとして選択できるようになっています。この状態は muted 属性を使って知ることができます。値が true のときは利用しない、false のときは利用する、が選択されていることを示します。
この状態が変わると、Status イベントが発生します。イベントハンドラを追加することで、状況に応じて処理をすることができます。下はその例です。
