@mapbox/s2
v0.5.1
Published
[![Build Status](https://travis-ci.org/mapbox/node-s2.svg?branch=master)](https://travis-ci.org/mapbox/node-s2)
Downloads
24
Maintainers
Keywords
Readme
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
- s2-geometry-javascript - an incomplete port of S2 to JavaScript.
- gos2 - very incomplete port to Go
- viewfinder built a python wrapper
- s2-geometry-php - another very incomplete port to PHP
- interview with david blackman