Saltar al contenido principal

XR8.Vps.makeWayspotWatcher()

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

Descripción

Crea un observador que busque todos los Wayspots activados por VPS, no solo los del Proyecto.

Parámetros

ParámetroDescripción
onVisible [Opcional]Llamada de retorno a la que se llama cuando se hace visible un nuevo Wayspot en un radio de 1000 metros.
onHidden [Opcional]Llamada de retorno que se invoca cuando un Wayspot que viste anteriormente ya no está en un radio de 1000 metros de ti.
pollGps [Opcional]Si es verdadero, activa el GPS y llama a las retrollamadas 'onVisible' y 'onHidden' con los puntos de ruta encontrados/perdidos por el movimiento del GPS.
lat [Opcional]Si se establece lat o lng, llama a onVisible y onHidden con cualquier waypots encontrado/perdido cerca de la ubicación establecida.
lng [Opcional]Si se establece lat o lng, llama a onVisible y onHidden con cualquier waypots encontrado/perdido cerca de la ubicación establecida.

Vuelta

Un objeto con los siguientes métodos:

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

MétodoDescripción
dispose()Borra el estado y detiene el gps. Actualiza y ya no llamará a ninguna llamada de retorno.
pollGps(Boolean)Activa o desactiva las actualizaciones del GPS.
setLatLng(lat: Number, lng: Number)Establece la ubicación actual del observador en lat / lng.

Ejemplo

const nearbyWayspots_ = []

// Registra el tiempo transcurrido entre la obtención de cada Wayspot desde el wayspotWatcher.
let gotAllWayspotsTimeout_ = 0

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

window.clearTimeout(gotAllWayspotsTimeout_)
gotAllWayspotsTimeout_ = window.setTimeout(() => {
// Obtenemos los wayspots individualmente. Si solo queremos realizar una operación
// después de haber obtenido todas las cercanas, podríamos hacerlo aquí.
}, 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 = ({}) => {
// Limpia el observador
wayspotWatcher_.dispose()
}