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()
}