メインコンテンツへスキップ

XR8.Vps.makeWayspotWatcher()

XR8.Vps.makeWayspotWatcher({onVisible, onHidden, pollGps, lat, lng})

概要

Project Wayspotsだけでなく、VPSで起動したすべてのWayspotsを検索するWatcherを作成します。

パラメータ

パラメータ説明
onVisible [Optional]新しいWayspotが半径1000メートル以内に表示されるようになった時に呼び出されるコールバックです。
onHidden [Optional]以前閲覧したWayspotが、半径1000mの外に出た時に呼び出されるコールバックです。
pollGps [Optional]trueの場合、GPSをオンにし、GPSの移動によって見つかった/見失ったWayspotsとともに、'onVisible'と'onHidden'のコールバックを呼び出します。
lat [Optional]latまたは lngが設定されている場合、設定された場所の近くで見つかった/見失ったWayspotとともに、onVisibleおよびonHiddenのコールバックを呼び出します。
lng [Optional]latまたは lngが設定されている場合、設定された場所の近くで見つかった/見失ったWayspotとともに、onVisibleおよびonHiddenのコールバックを呼び出します。

戻り値

以下のメソッドを持つオブジェクトです。

{dispose(), pollGps(), setLatLng()}

メソッド説明
dispose()状態をクリアし、gpsを停止します。 更新されてもコールバックを一切呼び出さなくなります。
pollGps(Boolean)gpsアップデートのオン/オフを切り替えます。
setLatLng(lat: Number, lng: Number)ウォッチャーの現在地をlat/lngに設定します。

const nearbyWayspots_ = []

// wayspotWatcherから各Wayspotを取得するまでの時間を記録します。
let gotAllWayspotsTimeout_ = 0

const onWayspotVisible = (wayspot) => {
nearbyWayspots_.push(wayspot)

window.clearTimeout(gotAllWayspotsTimeout_)
gotAllWayspotsTimeout_ = window.setTimeout(() => {
// wayspotを個別に取得します。 近くのものをすべて取得した後にのみ
// 操作を行いたい場合、ここでできます。
}, 0)
}

const onWayspotHidden = (wayspot) => {
const index = nearbyWayspots_.indexOf(wayspot)
if (index > -1) {
foundProjectWayspots_.splice(index, 1)
}
}

const onAttach = ({}) => {
wayspotWatcher_ = XR8.Vps.makeWayspotWatcher(
{onVisible: onWayspotVisible, onHidden: onWayspotHidden, pollGps: true}
)
}

const onDetach = ({}) => {
// ウォッチャーをクリーンアップします。
wayspotWatcher_.dispose()
}