デバイスアクセス(Javascript)

デバイスアクセス(Javascript) #

デバイスアクセス、いわゆる機器に関する情報を得るためのAPIをここでは述べる。

Geolocation API #

Geolocation APIは、ユーザの位置情報を扱うためのAPIである。位置情報は、無線LAN・WiFi、携帯電話基地局、GPS、IPアドレスなどから取得する。(どのソースから取得したかを知る事はできない)

また、取得するにはユーザーの許可が必要となる。(ブラウザに確認ウィンドウが出る)

位置情報を取得するためのGeolocationオブジェクトは、navigatorオブジェクトから取得する。Geolocationオブジェクトのメソッド例は以下のとおり。

メソッド名 意味
getCurrentPosition() ユーザの現在の位置情報を取得する(1回のみ)
watchPosition() ユーザの位置情報を定期的に監視する
clearWatch() watchPosition()による位置情報の監視をクリアする

メソッドにより返る位置情報はPositionCallBack型のオブジェクトとして得られる。(位置情報の測位が失敗したときはPositionErrorCallbackオブジェクトが返る。)

その中に更にPositionオブジェクトがあり、そのプロパティは以下の通り。

プロパティ名 意味
coords 位置情報(Coordinatesオブジェクト)
timestamp 測位した時刻

この内、coordsプロパティに入るCoordinatesオブジェクトに取得できた位置情報が格納される。

Coordinatesオブジェクトのプロパティは以下の通り。

プロパティ名 意味
latitude 緯度
longitude 経度
altitude 高度
heading 方角
speed 速度

DeviceOrientation Event #

DeviceOrientation Eventは、スマートフォンに搭載された加速度センサーやコンパスの情報をリアルタイムに取得することができるAPIである。

以下2種類のイベントから成り、これらのイベントを受け取るごとに情報を取得できる。

  • DeviceOrientationEvent ・・・ 加速度センサーがデバイスの方向の変化を検出したときに発生
  • DeviceMotionEvent ・・・ 加速度が変化したときに発生

DeviceOrientationEventのAPIは以下の通り。

プロパティ名 意味
alpha z軸を中心としたデバイスの動き
beta x軸を中心としたデバイスの動き
gamma y軸を中心としたデバイスの動き

DeviceMotionEventのAPIは以下の通り。

プロパティ名 意味
acceleration DeviceAccelerationオブジェクト
rotationRate DeviceRotationRateオブジェクト

ここで得られる、DeviceAccelerationのAPIは以下の通り。

プロパティ名 意味
x 西から東へ向かう方向の加速度
y 南から北へ向かう方向の加速度
z 地面から直立する方向の加速度

また、DeviceRotationRateのAPIは以下の通り。

プロパティ名 意味
alpha 画面またはキーボードから直立した軸に対する回転量
beta 画面またはキーボードの左から右へ向かう軸に対する回転量
gamma 画面またはキーボードの下から上に向かう軸に対する回転量