API version 4
iOSAndroidWindows
StartLocationMeasureメソッドで位置測位を開始した状態で位置情報が更新されたときに発生するイベントです。
LocationChangedイベントは以下の構造をもちます。
Event { Number provider; /* この位置情報を取得したロケーションプロバイダを取得します。 */ Number latitude; /* 緯度を取得します。 単位は度(deg)です。 */ Number longitude; /* 経度を取得します。 単位は度(deg)です。 */ Date time; /* この位置情報を取得した時刻が格納されます。 */ Number hasAccuracy; /* 計測精度を取得できた場合は$TRUE、そうでなければ$FALSEが格納されます。 */ /* 下記の子オブジェクトはhasAccuracy=$TRUEの時のみ存在します */ Number accuracy; /* 計測精度を取得します。単位はメートル(m)です。 */ /* 下記の子オブジェクトはiOS版のみ存在します */ Number isMeasuringFailed; /* 測位不可能だった場合、本オブジェクトは1を示します。可能な場合は0を示します。 */ String errorMessage; /* 測位に失敗しした際のエラーメッセージが格納されます。空の場合もあります。 */ }
iOS版
iOS版固有で
取得可能な情報があります。
また、providerオブジェクトは常に0(不明)を示します。
位置情報には緯度経度の他にも取得時刻や計測精度、計測したロケーションプロバイダの情報が含まれます。
実際に位置情報を使用する際はこれらの情報を元に用途に適した位置情報を選別してお使いください。
LocationChangedイベントは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);