Skip to content

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 ​

ts
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

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
      : latitude number - La latitud en grados decimales
      : longitude number - La longitud en grados decimales
      : accuracy number - La precisión de la posición en metros
      : altitude number|null - La altitud en metros sobre el elipsoide WGS84
      : altitudeAccuracy number|null - La precisión de la altitud en metros
      : heading number|null - El rumbo en grados, en sentido horario desde el norte geográfico
      : speed number|null - La velocidad en metros por segundo
      : timestamp number - 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.

Ejemplo ​

tsx
// 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();
};

Publicado bajo la licencia MIT.