node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

@gerhardberger/s2

Build Status

node-s2

Bindings for the S2 Geometry Library into node.js.

S2 is a library that does spherical math over the world, and supports a very fancy Hilbert curve-related indexing scheme. S2 has no documentation besides source comments and this presentation. Notably it's used for MongoDB's 2dsphere index, as well as in viewfinderco's DynamoDB-powered database. s2map.com also demonstrates one of the killer features of the library, 'coverings', which are intelligently computed groups of cells that can be used to index geometries.

Example

var s2 = require('s2');
 
var ll = new s2.S2LatLng(0, 0);
ll.isValid(); // true 
var normalized = ll.normalized(); // true 
var pt = ll.toPoint();

Build

npm install
npm build . --build-from-source
npm test

Geojson

node-s2 is a low level s2 wrapper. If you are simply looking to get geojson into s2, you should check out geojson-cover.

Documentation: API.md

Notes

Some of the S2 API is not wrapped because it isn't meant to be exposed in this way, and is blocked from wrapping by DISALLOW_COPY_AND_ASSIGN.

  • S2CellUnion
  • S2Loop
  • S2Polyline
  • S2Polygon
  • S2RegionCoverer
  • S2RegionIntersection

See Also