
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
random-location
Advanced tools
Random coordinates within a circle (or on a circumference) given a center point and radius.
random-location
gets you
random coordinates within a circle (or on a circumference) given a center point and radius.
We use it to stress test our geohash based services.
It works anywhere JavaScript runs.
web example
|
react-native example
Using npm:
$ npm install --save random-location
Then use as you would anything else:
// Using ES6 modules
import randomLocation from 'random-location'
// Using CommonJS modules
const randomLocation = require('random-location')
The UMD build is also available on unpkg:
<script src="https://unpkg.com/random-location/dist/randomLocation.umd.js"></script>
randomLocation.randomCirclePoint(...)
Outputs a Point ( { latitude: ..., longitude: ... }
) of random coordinates within a circle.
Function definition:
const randomCirclePoint = (centerPoint, radius, randomFn = Math.random) => { ... }
Where:
centerPoint
required An object with a latitude
and longitude
fields.radius
required The maximum distance (meters) from centerPoint
.randomFn
optional A random function. Output is >=0 and <=1. Allows usage of seeded random number generators (see seedrandom
) - more predictability when testing.randomLocation.randomCircumferencePoint(...)
Outputs a Point ( { latitude: ..., longitude: ... }
) of random coordinates on a circle's circumference.
Function definition:
const randomCircumferencePoint= (centerPoint, radius, randomFn = Math.random) => { ... }
Where:
centerPoint
required An object with a latitude
and longitude
fields.radius
required The distance (meters) from centerPoint
.randomFn
optional A random function. Output is >=0 and <=1. Allows usage of seeded random number generators (see seedrandom
) - more predictability when testing.randomLocation.randomAnnulusPoint(...)
Outputs a Point ( { latitude: ..., longitude: ... }
) of random coordinates in a region bounded by two concentric circles (annulus).
Function definition:
const randomCircumferencePoint= (centerPoint, radius, randomFn = Math.random) => { ... }
Where:
centerPoint
required An object with a latitude
and longitude
fields.innerRadius
required The readius of the smaller circle.outerRadius
required The readius of the larger circle.randomFn
optional A random function. Output is >=0 and <=1. Allows usage of seeded random number generators (see seedrandom
) - more predictability when testing.Lets say we'd like to get a random location that its distance from
Twitter's HQ
is at most 500
meters:
// Twitter HQ
const P = {
latitude: 37.7768006,
longitude: -122.4187928
}
const R = 500 // meters
const randomPoint = randomLocation.randomCirclePoint(P, R)
// randomPoint => { latitude: 37.77636619, longitude: -122.416575663 }
Lets say we'd like to get a random location that its distance from
Twitter's HQ
is exactly 700
meters:
// Twitter HQ
const P = {
latitude: 37.7768006,
longitude: -122.4187928
}
const R = 700 // meters
const randomPoint = randomLocation.randomCircumferencePoint(P, R)
// randomPoint => { latitude: 37.7828897, longitude: -122.4167713 }
// Eiffel Tower
const P1 = {
latitude: 48.8583736,
longitude: 2.2922926,
}
// Notre-Dame Cathedral
const P2 = {
latitude: 48.8529717,
longitude: 2.3477134,
}
// Prints True
console.log(Math.floor(randomLocation.distance(P1, P2)) === 4098)
Clone. Install. Hack. Open a PR.
MIT.
FAQs
Random coordinates within a circle (or on a circumference) given a center point and radius.
The npm package random-location receives a total of 4,355 weekly downloads. As such, random-location popularity was classified as popular.
We found that random-location demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.