From 18f2e8b4209e1abdecf00815027a031dcbed09e8 Mon Sep 17 00:00:00 2001 From: Jon Atkins Date: Mon, 20 Jan 2014 17:08:22 +0000 Subject: [PATCH] s2 geometry - add method to get neighbor cells --- external/s2geometry.js | 61 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/external/s2geometry.js b/external/s2geometry.js index d7fc661d..68831fd3 100644 --- a/external/s2geometry.js +++ b/external/s2geometry.js @@ -211,15 +211,24 @@ S2.S2Cell.FromLatLng = function(latLng,level) { var ij = STToIJ(st,level); - - var result = new S2.S2Cell(); - result.face = faceuv[0]; - result.ij = ij; - result.level = level; + return S2.S2Cell.FromFaceIJ (faceuv[0], ij, level); return result; }; +S2.S2Cell.FromFaceIJ = function(face,ij,level) { + var cell = new S2.S2Cell(); + cell.face = face; + cell.ij = ij; + cell.level = level; + + return cell; +}; + + +S2.S2Cell.prototype.toString = function() { + return 'F'+this.face+'ij['+this.ij[0]+','+this.ij[1]+']@'+this.level; +}; S2.S2Cell.prototype.getLatLng = function() { var st = IJToST(this.ij,this.level, [0.5,0.5]); @@ -239,7 +248,7 @@ S2.S2Cell.prototype.getCornerLatLngs = function() { ]; for (var i=0; i<4; i++) { - var st = IJToST(this.ij,this.level, offsets[i]); + var st = IJToST(this.ij, this.level, offsets[i]); var uv = STToUV(st); var xyz = FaceUVToXYZ(this.face, uv); @@ -255,4 +264,44 @@ S2.S2Cell.prototype.getFaceAndQuads = function() { return [this.face,quads]; }; +S2.S2Cell.prototype.getNeighbors = function() { + + var fromFaceIJWrap = function(face,ij,level) { + var maxSize = (1<=0 && ij[1]>=0 && ij[0]