An open API service indexing awesome lists of open source software.

https://github.com/termosa/use-geo

Make use of browser geo location API
https://github.com/termosa/use-geo

Last synced: 4 months ago
JSON representation

Make use of browser geo location API

Awesome Lists containing this project

README

          

# use-geo

> Make use of browser geo location API

[![NPM](https://img.shields.io/npm/v/use-geo.svg)](https://www.npmjs.com/package/use-geo) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save use-geo
```

## Usage

### Manual position request

```tsx
import * as React from 'react';

import { useGeo } from 'use-geo';
// Or import useGeo from 'use-geo';

const stringifyResults = (status, position, error) => {
if (error) return `Error(${error.message})`;
if (position) return `{\n lat: ${position.coords.latitude},\n long: ${position.coords.longitude}\n}`;
return status;
};

export default () => {
const { status, position, error, request } = useGeo(/* immediate flag (boolean) or PositionOptions object */);

return (



useGeo(): {stringifyResults(status, position, error)}


);
};
```

### Watching position changes

```tsx
import * as React from 'react';

import { useGeoWatch } from 'use-geo';

const stringifyResults = (position, error) => {
if (error) return `Error(${error.message})`;
if (position) return `{\n lat: ${position.coords.latitude},\n long: ${position.coords.longitude}\n}`;
return 'No results';
};

export default () => {
const { position, error, watching, watch, unwatch } = useGeoWatch(/* immediate flag (boolean) or PositionOptions object */);

return (


{watching ? 'watching' : 'not watching'}

useGeo(): {stringifyResults(position, error)}


);
};
```

## License

MIT © [termosa](https://github.com/termosa)

---

This hook is created using [create-react-hook](https://github.com/hermanya/create-react-hook).