Porting Google's S2 Geometry Library to Javascript
Go to file
AJ ONeal 7ca690db14 bump 2016-07-28 00:38:01 -04:00
src refactor and test for getting latlng 2016-07-28 00:37:43 -04:00
tests refactor and test for getting latlng 2016-07-28 00:37:43 -04:00
.gitignore add .gitignore 2016-07-27 20:46:04 -04:00
AUTHORS v1.0.0 2016-07-26 00:42:53 -04:00
LICENSE v1.0.0 2016-07-26 00:42:53 -04:00
README.md add id conversion 2016-07-27 20:41:04 -04:00
bower.json v1.0.0 2016-07-26 00:44:38 -04:00
package.json bump 2016-07-28 00:38:01 -04:00

README.md

s2-geometry (JavaScript/ES5.1)

A pure JavaScript/ES5.1 port of Google/Niantic's S2 Geometry library (used by Ingress, Pokemon GO)

Currently contains basic support for S2Cell

Simple Examples

var level = 15;
var latlng = { lat: 40.2574448, lng: -111.7089464 };
var cell = S2.S2Cell.FromLatLng(latlng, level);

cell.getNeighbors();  // [ cellLeft, cellDown, cellRight, cellUp ]

cell.getLatLng();     // { lat: 40.2574448, lng: -111.7089464 }

convert Cell Id to Quadkey

Convert from base 10 (decimal) S2 Cell Id to base 4 quadkey (aka hilbert curve quadtree id)

Example '4/032212303102210' becomes '9749618446378729472'

'use strict';

var quadkey = '4/032212303102210'
var parts = quadkey.split('/');
var face = parts[0];                  // 4
var position = parts[1];              // '032212303102210';
var level = '032212303102210'.length; // 15

var cellId = S2.fromFacePosLevel(face, position, level);

console.log(cellId);

Convert from hilbert quadtree id to s2 cell id:

Example '9749618446378729472' becomes '4/032212303102210'

'use strict';

var cellId = '9749618446378729472';

var hilbertQuadkey = S2.toHilbertQuadkey(cellId);

console.log(hilbertQuadkey);