geospatial quadtree encoding and decoding.
npm install quadtreeThe encoding algorithm orders the tiles using the bing maps ordering shown below:
var coordinate = {
lat: -27.093364,
lng: -109.367523
};
var precision = 8;
var encoded = quadtree.encode(coordinate, precision); // returns "20310230")
var decoded = quadtree.decode(encoded); // returns { origin: { lng: -108.984375, lat: -27.0703125 }, error: { lng: 0.703125, lat: 0.3515625 } }
var neighbour = quadtree.neighbour(encoded, 1, 1); // returns "20310213"
var boundingBox = quadtree.bbox(encoded); // returns { minlng: -109.6875, minlat: -27.421875, maxlng: -108.28125, maxlat: -26.71875 }
var enveloped = quadtree.envelop(boundingBox, precision); // returns [ '20310230', '20310231', '20310212', '20310213' ]