# gps-scramble

> A tool for controlled randomization of GPS coordinates.

Latest version **1.2.6** (published 2021-07-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install gps-scramble
pnpm add gps-scramble
yarn add gps-scramble
bun add gps-scramble
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.6 |
| Published | 2021-07-09 |
| First published | 2019-07-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 494.2 KB |
| Known vulnerabilities | 0 (+23 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 8 |
| Author | Scharkee |
| Maintainers | scharkee |
| Keywords | gps |

## Links

- npm: https://www.npmjs.com/package/gps-scramble
- Repository: https://github.com/Scharkee/gps-scramble
- Homepage: https://github.com/Scharkee/gps-scramble#readme
- Issues: https://github.com/Scharkee/gps-scramble/issues
- npm.io page: https://npm.io/package/gps-scramble

## Dependencies (3)

- [axios](https://npm.io/package/axios.md) ^0.21.0
- [dotenv](https://npm.io/package/dotenv.md) ^10.0.0
- [await-to-js](https://npm.io/package/await-to-js.md) ^3.0.0

## Recent versions

- 1.2.6 (latest) — 2021-07-09
- 1.2.5 — 2020-10-14
- 1.2.4 — 2019-08-26
- 1.2.3 — 2019-08-11
- 1.2.2 — 2019-07-26
- 1.2.0 — 2019-07-21
- 1.1.0 — 2019-07-21

## README

# gps-scramble

[![npm version](http://img.shields.io/npm/v/gps-scramble.svg?style=flat)](https://npmjs.org/package/gps-scramble "View this project on npm")
[![Status](https://travis-ci.org/scharkee/gps-scramble.svg?branch=master)](https://travis-ci.org/scharkee/gps-scramble)
[![Coverage Status](https://coveralls.io/repos/github/Scharkee/gps-scramble/badge.svg?branch=master)](https://coveralls.io/github/Scharkee/gps-scramble?branch=master)
[![David](https://img.shields.io/david/scharkee/gps-scramble.svg)](https://david-dm.org/scharkee/gps-scramble)

A tool for controlled randomization/spoofing of GPS coordinates.

## Features

- Generate similar coordinates within a distance of given coordinates
- Location name based coordinate generation (geocoding), resolve coordinates by location name
- Generate the coordinates of a random establishment near the given coordinates

## Install

```bash
$ npm install gps-scramble
```

## Usage

```js
const { Scrambler } = require("gps-scramble");
let scrambler = new Scrambler([40.758896, -73.98513]);
console.log(scrambler.within(100, "m")); // randomized location within 100 meters from given coordinates.
console.log(scrambler.near()); // randomized location near given coordinates.
```

## Advanced usage (Geocoding)

```js
const { ScramblerAsync } = require("gps-scramble");
let scrambler = new ScramblerAsync("Times Square");

let location = await scrambler.within(100, "m");
console.log(location.x, location.y); // randomized location within 100 meters from Times Square

location = await scrambler.near();
console.log(location.x, location.y); // randomized location near Times Square

location = await scrambler.nearbyEstablishment();
console.log(location.x, location.y); // randomized location of a business near Times Square
```

## Geocoding support

To enable geocoding support (powered by Bing Maps Geocoding API), you must get an API key.
The process of getting a key is described [here](https://docs.microsoft.com/en-us/bingmaps/getting-started/bing-maps-dev-center-help/getting-a-bing-maps-key)

The key must be loaded as an enviromental variable named `BING_API_KEY`.

## Units

Supported units are: "mm" - milimeters, "cm" - centimeters, "m" - meters (default), "dm" - decimeters, "km" - kilometers.

## API

[API reference docs.](https://scharkee.github.io/gps-scramble/)

All gps-scrambler methods return Location objects, which contain coordinates.

They can be accessed like this:

```js
const { Scrambler } = require("gps-scramble");
let scrambler = new Scrambler([40.758896, -73.98513]);
let location = scrambler.near();

location.x; // X coordinate
location.y; // Y coordinate
location[0]; // X coordinate alternative
location[1]; // Y coordinate alternative
```

The same method for access works with scramblers themselves. Their initial states can be accessed like so:

```js
const { Scrambler } = require("gps-scramble");
let scrambler = new Scrambler([40.758896, -73.98513]);

scrambler.x; // initial X coordinate
scrambler.y; // initial Y coordinate
// ...
```

### Support

Submit bugs and requests through the project's issue tracker:

[![Issues](http://img.shields.io/github/issues/Scharkee/gps-scramble.svg)](https://github.com/Scharkee/gps-scramble/issues)

---
_Source: https://npm.io/package/gps-scramble · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
