---
category: Sensors
---
# useGeolocation
Reactive [Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/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.
## Usage
```ts
import { useGeolocation } from '@vueuse/core';
const { coords, locatedAt, error, resume, pause } = useGeolocation();
```
| State | Type | Description |
| --------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| coords | [`Coordinates`](https://developer.mozilla.org/en-US/docs/Web/API/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](https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions) object as an optional parameter.
## Component Usage
```vue
Latitude: {{ latitude }} Longitude: {{ longitude }}
```
## Type Declarations
```ts
export interface UseGeolocationOptions extends Partial, ConfigurableNavigator {
immediate?: boolean;
}
/**
* Reactive Geolocation API.
*
* @see https://vueuse.org/useGeolocation
* @param options
*/
export declare function useGeolocation(options?: UseGeolocationOptions): {
isSupported: ComputedRef;
coords: Ref<
{
readonly accuracy: number;
readonly altitude: number | null;
readonly altitudeAccuracy: number | null;
readonly heading: number | null;
readonly latitude: number;
readonly longitude: number;
readonly speed: number | null;
},
| Omit
| {
readonly accuracy: number;
readonly altitude: number | null;
readonly altitudeAccuracy: number | null;
readonly heading: number | null;
readonly latitude: number;
readonly longitude: number;
readonly speed: number | null;
}
>;
locatedAt: ShallowRef;
error: ShallowRef;
resume: () => void;
pause: () => void;
};
export type UseGeolocationReturn = ReturnType;
```