meetHere
A blazing-fast JavaScript library for handling locations on and off maps.
meetHere is a library for quick, elegant manipulation of positional data on a 2D
plane, and comes with first-class Google Maps support for on-the-fly
determination of locations relevant to you and your users. Prominent features
include:
Installation
$ yarn add meethere
$ npm i meethere --save
Or build it yourself!
Supported Node versions
Usage
You can find the full API here.
Currently, two classes are available:
Position
- a blazing-fast, 2D-locations manipulation prototype.
For general-purpose use, like in physics libraries or games.
import { Position } from 'meethere';
let Plane = new Position([[0, 1], [1.5, 3], [-9, 1.07]]);
Plane.add([3, 4]);
Plane.center
Plane.median
Plane.score
MeetHere
- a subclass of Position
with first-class Google Maps support.
For user-interactive applications, like meetHere itself.
To use non-super methods of MeetHere
, you'll need a Google Maps API key, as
described
here.
import { MeetHere } from 'meethere';
const MY_GOOGLE_MAPS_TOKEN = process.env.TOKEN;
const user = [33.0952311, -96.8640427];
const west = [33.0437115, -96.8157956];
const senior = [33.0284505, -96.7546927];
let Map = new MeetHere([user, west, senior], MY_GOOGLE_MAPS_TOKEN);
Map.meetHere
Map.nearby().then(console.log)
Extensions
Extending any class in meetHere for your specific use case is trivial:
import { Position, MeetHere } from 'meethere';
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]]))
);
}
}
class RideHere extends MeetHere {
constructor(args) {
super(...args);
}
get rides() {
return this.locations.map(
start => `${RIDE_API}?start=${start}&end=${this.center}&token=${RIDE_TKN}`
);
}
}
Develop
git clone git@github.com:ayazhafiz/meetHere.git && cd meetHere
yarn
node-gyp configure
node-gyp build
yarn build
yarn test
Support
meetHere 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.
meetHere 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