diff --git a/README.md b/README.md index 6f2265d..63c5801 100644 --- a/README.md +++ b/README.md @@ -1,231 +1,5 @@ - +s2-geometry.js +===== -About Daplie: We're taking back the Internet! --------------- +Moved to https://git.daplie.com/Daplie/s2-geometry.js -Down with Google, Apple, and Facebook! - -We're re-decentralizing the web and making it read-write again - one home cloud system at a time. - -Tired of serving the Empire? Come join the Rebel Alliance: - -jobs@daplie.com | [Invest in Daplie on Wefunder](https://daplie.com/invest/) | [Pre-order Cloud](https://daplie.com/preorder/), The World's First Home Server for Everyone - - - -s2-geometry (JavaScript/ES5.1) -====================== - -A pure JavaScript/ES5.1 port of Google/Niantic's S2 Geometry library (as used by **Ingress**, **Pokemon GO**) - -Currently contains basic support for S2Cell - - - - - - - - - - - - - - - - - - - -
-Face 2 -
-Orientation A - -Face 2 - -
-The North Pole
(and Canada / Europe) -
-Face 0 -
-Orientation A - -Face 0 - -
-Africa -
-Face 1 -
-Orientation D - -Face 1 - -
-Asia -
-Face 3 -
-Orientation D - -Face 3 - -
-Nothing
(and Australia) -
-Face 4 -
-Orientation A - -Face 4 - -
-The Americas
(and Provo, UT) -
-Face 5 -
-Orientation D - -Face 5 - -
-Antarctica -
- -Where is this being used? ---------------------- - -* [pokemap-webapp](https://github.com/Daplie/pokemap-webapp) -* [node-pokemap](https://github.com/Daplie/node-pokemap) -* [Pokemon-GO-node-api](https://github.com/Daplie/Pokemon-GO-node-api) - -Simple Examples ---------------- - -```javascript -'use strict'; - -var S2 = require('s2-geometry').S2; - -var lat = 40.2574448; -var lng = -111.7089464; -var level = 15; - - - -// -// Convert from Lat / Lng -// -var key = S2.latLngToKey(lat, lng, level); -// '4/032212303102210' - - - -// -// Convert between Hilbert Curve Quadtree Key and S2 Cell Id -// -var id = S2.keyToId(key); -// '9749618446378729472' - -var key = S2.idToKey(id); -// '9749618446378729472' - - -// -// Convert between Quadkey and Id -// -var latlng = S2.keyToLatLng(key); -var latlng = S2.idToLatLng(id); - - - -// -// Neighbors -// -var neighbors = S2.latLngToNeighborKeys(lat, lng, level); -// [ keyLeft, keyDown, keyRight, keyUp ] - - - -// -// Previous, Next, and Step -// -var nextKey = S2.nextKey(key); -var prevKey = S2.prevKey(key); - -var backTenKeys = S2.stepKey(key, -10); -``` - -Previous and Next ------------------ - -You can get the previous and next S2CellId from any given Key: - -1. Convert from Lat/Lng to Key (Face and Hilbert Curve Quadtree) -2. Get the Previous or Next Key -3. Convert the Key to an Id (uint64 string) - -```javascript -var key = S2.latLngToKey(40.2574448, -111.7089464, 15); // '4/032212303102210' -var id = S2.keyToId(key); // '9749618446378729472' - -var nextKey = S2.nextKey(key); -var nextId = S2.keyToId(nextKey); - -var prevKey = S2.prevKey(key); -var prevId = S2.keyToId(prevKey); - -var backTenKeys = S2.stepKey(key, -10); - -// See it -console.log(prevKey); // '4/032212303102203' -console.log(key); // '4/032212303102210' -console.log(nextKey); // '4/032212303102211' -console.log(nextId); -``` - -convert Cell Id to Hilbert Curve Quad Tree ------------------- - -Convert from base 10 (decimal) `S2 Cell Id` to base 4 `quadkey` (aka hilbert curve quadtree id) - -Example '4/032212303102210' becomes '9749618446378729472' - -```javascript -'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.facePosLevelToId(face, position, level); - -console.log(cellId); -``` - -Convert from hilbert quadtree id to s2 cell id: - -Example '9749618446378729472' becomes '4/032212303102210' - -```javascript -'use strict'; - -var cellId = '9749618446378729472'; - -var hilbertQuadkey = S2.idToKey(cellId); - -console.log(hilbertQuadkey); -``` - -Convert Key and Id to LatLng ---------------------- - -```javascript -var latlng = S2.keyToLatLng('4/032212303102210'); - -var latlng = S2.idToLatLng('9749618446378729472'); -```