gps-scramble
v1.2.6
Published
A tool for controlled randomization of GPS coordinates.
Downloads
79
Readme
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
$ npm install gps-scramble
Usage
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)
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
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
All gps-scrambler methods return Location objects, which contain coordinates.
They can be accessed like this:
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:
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: