Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.

mapbox/node-s2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 11, 2017
643c1f4 · Jan 11, 2017
Jul 22, 2014
Oct 30, 2016
Jan 11, 2017
Feb 20, 2015
May 7, 2014
Jul 16, 2014
Oct 30, 2016
Feb 22, 2015
Oct 31, 2016
Jul 31, 2014
Jul 18, 2016
Aug 14, 2014
Jan 11, 2017

Repository files navigation

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.

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