XR8.Vps.makeWayspotWatcher()
XR8.Vps.makeWayspotWatcher({onVisible, onHidden, pollGps, lat, lng})
概要
プロジェクト・ロケーションだけでなく、すべてのVPS起動ロケーションを検索するウォッチャーを作成する。
パラメータ
パラメータ | 説明 |
---|---|
onVisible [Optional] | 半径1000メートル以内に新しいLocationが表示されたときに呼び出されるコールバック。 |
onHidden [Optional] | 以前見た場所が半径1000メートル以内になくなったときに呼び出されるコールバック。 |
pollGps [Optional] | trueの場合、GPSをオンにし、GPSの移動によって見つかった/失われたLocationで'onVisible'および'onHidden'コールバックを呼び出します。 |
lat [Optional] | lat またはlngが 設定されている場合、設定された場所の近くで見つかった/失われたLocationsでonVisible およびonHidden コールバックを呼び出す。 |
lng [Optional] | lat またはlngが 設定されている場合、設定された場所の近くで見つかった/失われたLocationsでonVisible およびonHidden コールバックを呼び出す。 |
戻り値
以下のメソッドを持つオブジェクトです。
{dispose(), pollGps(), setLatLng()}
メソッド | 説明 |
---|---|
dispose() | 状態をクリアし、gpsを停止します。 更新されてもコールバックを一切呼び出さなくなります。 |
pollGps(Boolean) | gpsアップデートのオン/オフを切り替えます。 |
setLatLng(lat: Number, lng: Number) | ウォッチャーの現在地をlat /lng に設定します。 |
例
const nearbyLocations_ = []
// ウェイスポットウォッチャーから各ロケーションを取得するまでの時間を記録。
let gotAllLocationsTimeout_ = 0
const onLocationVisible = (location) => {
nearbyLocations_.push(location)
window.clearTimeout(gotAllLocationsTimeout_)
gotAllLocationsTimeout_ = window.setTimeout(() => {
// ロケーションを個別に取得する。 近くのものをすべて取得した後にのみ
// 操作を行いたい場合、ここでできます。
}, 0)
}
const onLocationHidden = (location) => {
const index = nearbyLocations_.indexOf(location)
if (index > -1) {
foundProjectLocations_.splice(index, 1)
}.
}
const onAttach = ({}) => {
waypotWatcher_ = XR8.Vps.makeWayspotWatcher(
{onVisible: onLocationVisible, onHidden: onLocationHidden, pollGps: true}
)
}
const onDetach = ({}) => {
// ウォッチャーのクリーンアップ
waypotWatcher_.dispose()
}.