position.ts
v0.3.0
Published
A hyper-efficient library for coordinate manipulation
Downloads
8
Readme
position :round_pushpin:
A blazing-fast JavaScript library for handling locations on and off maps.
position
is a library for quick, elegant manipulation of positional data on a 2D
plane. Prominent features include:
- [x] High-precision geometric calculations
- [x] Rapid path determinations
- [x] Powerful async operations
- [x] First-class TypeScript support
- [x] C++ bindings
- [ ] Time-minimum center (coming soon)
position
was previously branded asmeetHere
, which had first-class support for the Google Maps API. Due to decreased usage quotas of the Google Maps API, this functionality has been removed.
Installation
$ yarn add position.ts
$ npm i position.ts --save
Usage
You can find the full API here.
Position
- a blazing-fast, 2D-locations manipulation prototype.
For general-purpose use, like in physics libraries or games.
import { Position } from 'position.ts';
let Plane = new Position([[0, 1], [1.5, 3], [-9, 1.07]]);
Plane.add([3, 4]);
Plane.center // => [ 1.4990254494359172, 2.999397294475018 ]
Plane.median // => [ -1.125, 2.2675 ]
Plane.score // => 0.11155562920022742
Extensions
Extending any class in position
for your specific use case is trivial:
import { Position } from 'position.ts';
class Plane3D extends Position {
constructor(args) {
super(...args);
}
get flightPath() {
return this.dimensionalize(
super.vrp(this.locations.map(v => [v[0], v[1]])),
super.vrp(this.locations.map(v => [v[0], v[2]])),
super.vrp(this.locations.map(v => [v[1], v[2]]))
);
}
}
Develop
git clone [email protected]:ayazhafiz/position.git && cd position
yarn # or, npm install
# develop some features
# compile
node-gyp configure
node-gyp build
yarn build # or, npm run build
yarn test # or, npm test
Support
position
actively supports Node versions 4 and higher. More specifically:
- 4.x.x (LTS/argon)
- 5.x.x
- 6.x.x (LTS/boron)
- 7.x.x
- 8.x.x
- 9.x.x (nightly)
- Note that failures in nightly versions are most likely a problem with Node, not with this package.
position
may work with Node 0.x.x or io.js (1 - 3.x.x), but since these strains
are not supported by Node anymore, this library does not target build
compatibility with them. The sensitivity of this library's native bindings and
ES targeting may make it completely inoperable with anything below LTS/argon.
License
MIT, © hafiz 2017