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

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