StartLocationMeasureメソッドで位置測位を開始した状態で位置情報が更新されたときに発生するイベントです。
より追加されました
LocationChangedイベントは以下の構造をもちます。
Event {
Number provider; /* この位置情報を取得したロケーションプロバイダを取得します。 */
Number latitude; /* 経度を取得します。 単位は度(deg)です。 */
Number longitude; /* 緯度を取得します。 単位は度(deg)です。 */
Date time; /* この位置情報を取得した時刻が格納されます。 */
Number hasAccuracy; /* 計測精度を取得できた場合は$TRUE、そうでなければ$FALSEが格納されます。 */
/* 下記の子オブジェクトはhasAccuracy=$TRUEの時のみ存在します */
Number accuracy; /* 計測精度を取得します。単位はメートル(m)です。 */
}
位置情報には緯度経度の他にも取得時刻や計測精度、計測したロケーションプロバイダの情報が含まれます。
実際に位置情報を使用する際はこれらの情報を元に用途に適した位置情報を選別してお使いください。
LocationChangedイベントはAndroid OSのロケーションプロバイダが位置情報を更新した際に発生するものです。
そのため、GPSのように測位に長い時間がかかったり、測位を行えない場所に端末がある場合、イベントが長期間発生しない可能性があります。
Runtimeオブジェクトがオブジェクトツリーに含まれない場合は、イベントハンドラの記述には注意が必要です。
オブジェクトツリーに含まれないオブジェクトから他のオブジェクトを参照する場合、グローバルオブジェクト、"//"からの絶対パス、自オブジェクトの子オブジェクトのみ、参照できます。
オブジェクトツリーに含まれない記述例
var rt = new Runtime {
Function OnLocationChanged(e) {
/* Runtimeオブジェクトはオブジェクトツリーに含まれないため */
/* ここでは相対パスによる他のオブジェクトの参照はできない */
}
}
rt.StartLocationMeasure(Runtime.LOCATION_GPS);
オブジェクトツリーに含まれる記述例
Runtime tr {
Function OnLocationChanged(e) {
/* Runtimeオブジェクトはオブジェクトツリーに含まれるため */
/* ここでも相対パスによる他のオブジェクトの参照ができるが */
/* 使用後に削除しない限り永続的にオブジェクトが残る */
}
}
rt.StartLocationMeasure(Runtime.LOCATION_GPS);