useGeolocation
useGeolocation es un Hook de React que obtiene la ubicación geográfica del usuario y hace un seguimiento de ella. Usa la Geolocation API del navegador para permitirte obtener la posición una sola vez o hacer un seguimiento continuo de la ubicación.
Interfaz
function useGeolocation(options?: GeolocationOptions): Object;Parámetros
- optionsGeolocationOptions
Configuración de las opciones de geolocalización
- options.mountBehaviorGeolocationMountBehaviorType
Comportamiento del Hook al montar el componente:
- Si no proporcionas esta opción, no obtiene la ubicación automáticamente
-get: obtiene la ubicación automáticamente una vez al montar el componente
-watch: inicia automáticamente el seguimiento de los cambios de ubicación al montar el componente - options.enableHighAccuracyboolean · false
Si es true, proporciona información de posición más precisa (aumenta el consumo de batería)
- options.maximumAgenumber · 0
Antigüedad máxima aceptable, en milisegundos, de una posición almacenada en caché para devolverla
- options.timeoutnumber · Infinity
Tiempo máximo permitido (en milisegundos) para la solicitud de ubicación
- options.mountBehaviorGeolocationMountBehaviorType
Valor de retorno
- Object
Objeto que contiene los datos de ubicación y las funciones relacionadas
- loadingboolean
Indica si la obtención de los datos de ubicación está en curso.
- errorCustomGeoLocationError|null
Objeto de error si ocurrió un error, o null. El Hook usa los códigos de error estándar de Geolocation API (
1-3) y añade un código personalizado (0)
:0- El entorno no es compatible con la geolocalización
:1- El usuario denegó el permiso de acceso a la geolocalización
:2- Posición no disponible
:3- Tiempo de espera agotado: la solicitud de geolocalización tardó demasiado. - dataGeolocationData|null
Objeto de datos de ubicación o null
: latitudenumber- La latitud en grados decimales
: longitudenumber- La longitud en grados decimales
: accuracynumber- La precisión de la posición en metros
: altitudenumber|null- La altitud en metros sobre el elipsoide WGS84
: altitudeAccuracynumber|null- La precisión de la altitud en metros
: headingnumber|null- El rumbo en grados, en sentido horario desde el norte geográfico
: speednumber|null- La velocidad en metros por segundo
: timestampnumber- El momento en que se obtuvo la posición. - getCurrentPositionFunction
Función para obtener la posición actual una sola vez.
- startTrackingFunction
Función para iniciar el seguimiento de los cambios de ubicación.
- stopTrackingFunction
Función para detener el seguimiento de la ubicación.
- isTrackingboolean
Indica si el seguimiento de la ubicación está activo.
- loadingboolean
Ejemplo
// Uso básico
const { loading, error, data, getCurrentPosition } = useGeolocation();
// Obtén la ubicación automáticamente al montar el componente
const { loading, error, data } = useGeolocation({ mountBehavior: 'get' });
// Seguimiento de la ubicación
const { loading, error, data, startTracking, stopTracking, isTracking } =
useGeolocation();
const handleStartTracking = () => {
startTracking();
};
const handleStopTracking = () => {
stopTracking();
};