useGeolocation ​
Reactive Geolocation API. It allows the user to provide their location to web applications if they so desire. For privacy reasons, the user is asked for permission to report location information.
Demo ​
{
"coords": {
"accuracy": 0,
"latitude": null,
"longitude": null,
"altitude": null,
"altitudeAccuracy": null,
"heading": null,
"speed": null
},
"locatedAt": null,
"error": null
}
Usage ​
js
import { useGeolocation } from '@vueuse/core'
const { coords, locatedAt, error, resume, pause } = useGeolocation()
State | Type | Description |
---|---|---|
coords | Coordinates | information about the position retrieved like the latitude and longitude |
locatedAt | Date | The time of the last geolocation call |
error | string | An error message in case geolocation API fails. |
resume | function | Control function to resume updating geolocation |
pause | function | Control function to pause updating geolocation |
Config ​
useGeolocation
function takes PositionOptions object as an optional parameter.
Component Usage ​
This function also provides a renderless component version via the
@vueuse/components
package. Learn more about the usage.
vue
<template>
<UseGeolocation v-slot="{ coords: { latitude, longitude } }">
Latitude: {{ latitude }}
Longitude: {{ longitude }}
</UseGeolocation>
</template>
Type Declarations ​
typescript
export interface UseGeolocationOptions
extends Partial<PositionOptions>,
ConfigurableNavigator {
immediate?: boolean
}
/**
* Reactive Geolocation API.
*
* @see https://vueuse.org/useGeolocation
* @param options
*/
export declare function useGeolocation(options?: UseGeolocationOptions): {
isSupported: ComputedRef<boolean>
coords: Ref<GeolocationCoordinates>
locatedAt: Ref<number | null>
error: ShallowRef<GeolocationPositionError | null>
resume: () => void
pause: () => void
}
export type UseGeolocationReturn = ReturnType<typeof useGeolocation>
Source ​
Contributors ​
Anthony Fu
Antério Vieira
Jelf
丶远方
vaakian X
Enric Bisbe Gil
Egor Startsev
Michael J. Roberts
Shinigami
wheat
Alex Kozack
Sanxiaozhizi