From e3a7a4519b8186e620349f35f385a24663096f85 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Mon, 25 Jul 2016 21:53:02 -0400 Subject: [PATCH 1/5] add relevant L parts --- src/s2geometry.js | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/s2geometry.js b/src/s2geometry.js index 68831fd..266c0b1 100644 --- a/src/s2geometry.js +++ b/src/s2geometry.js @@ -23,10 +23,10 @@ // (so GetSizeIJ for a cell is always 1) (function() { +'use strict'; window.S2 = {}; - var LatLngToXYZ = function(latLng) { var d2r = L.LatLng.DEG_TO_RAD; @@ -44,7 +44,7 @@ var XYZToLatLng = function(xyz) { var lat = Math.atan2(xyz[2], Math.sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1])); var lng = Math.atan2(xyz[1], xyz[0]); - return L.latLng(lat*r2d, lng*r2d); + return L.LatLng(lat*r2d, lng*r2d); }; var largestAbsComponent = function(xyz) { @@ -305,3 +305,31 @@ S2.S2Cell.prototype.getNeighbors = function() { })(); + +(function () { +'use strict'; + + // Adapted from Leafletjs https://searchcode.com/codesearch/view/42525008/ + + var L = { LatLng: {} }; + windows.L = L; + + L.LatLng.DEG_TO_RAD = Math.PI / 180; + L.LatLng.RAD_TO_DEG = 180 / Math.PI; + + L.LatLng = function (/*Number*/ rawLat, /*Number*/ rawLng, /*Boolean*/ noWrap) { + var lat = parseFloat(rawLat); + var lng = parseFloat(rawLng); + + if (isNaN(lat) || isNaN(lng)) { + throw new Error('Invalid LatLng object: (' + rawLat + ', ' + rawLng + ')'); + } + + if (noWrap !== true) { + lat = Math.max(Math.min(lat, 90), -90); // clamp latitude into -90..90 + lng = (lng + 180) % 360 + ((lng < -180 || lng === 180) ? 180 : -180); // wrap longtitude into -180..180 + } + + return { lat: lat, lng: lng }; + }; +})(); From 8c15c5a1d731fc6685d7c486d43e01bb2cef1c30 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Mon, 25 Jul 2016 22:05:28 -0400 Subject: [PATCH 2/5] typo fix windows -> window --- src/s2geometry.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/s2geometry.js b/src/s2geometry.js index 266c0b1..b5b6015 100644 --- a/src/s2geometry.js +++ b/src/s2geometry.js @@ -312,7 +312,7 @@ S2.S2Cell.prototype.getNeighbors = function() { // Adapted from Leafletjs https://searchcode.com/codesearch/view/42525008/ var L = { LatLng: {} }; - windows.L = L; + window.L = L; L.LatLng.DEG_TO_RAD = Math.PI / 180; L.LatLng.RAD_TO_DEG = 180 / Math.PI; From eb224e01aadd9617acfa9aac23158747d2adf8f2 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Mon, 25 Jul 2016 22:06:43 -0400 Subject: [PATCH 3/5] typo fix `uv` -> `var uv` --- src/s2geometry.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/s2geometry.js b/src/s2geometry.js index b5b6015..e19846b 100644 --- a/src/s2geometry.js +++ b/src/s2geometry.js @@ -92,7 +92,7 @@ var XYZToFaceUV = function(xyz) { face += 3; } - uv = faceXYZToUV (face,xyz); + var uv = faceXYZToUV (face,xyz); return [face, uv]; }; From 61b3ea3f375e8664de7ee3c9fae83ae914cb425b Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Mon, 25 Jul 2016 22:50:45 -0400 Subject: [PATCH 4/5] don't redefine L, don't undefine DEG_TO_RAD Moved the consts to below function definition. --- src/s2geometry.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/s2geometry.js b/src/s2geometry.js index e19846b..5e95d7e 100644 --- a/src/s2geometry.js +++ b/src/s2geometry.js @@ -28,7 +28,7 @@ window.S2 = {}; var LatLngToXYZ = function(latLng) { - var d2r = L.LatLng.DEG_TO_RAD; + var d2r = S2.L.LatLng.DEG_TO_RAD; var phi = latLng.lat*d2r; var theta = latLng.lng*d2r; @@ -39,12 +39,12 @@ var LatLngToXYZ = function(latLng) { }; var XYZToLatLng = function(xyz) { - var r2d = L.LatLng.RAD_TO_DEG; + var r2d = S2.L.LatLng.RAD_TO_DEG; var lat = Math.atan2(xyz[2], Math.sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1])); var lng = Math.atan2(xyz[1], xyz[0]); - return L.LatLng(lat*r2d, lng*r2d); + return S2.L.LatLng(lat*r2d, lng*r2d); }; var largestAbsComponent = function(xyz) { @@ -311,11 +311,7 @@ S2.S2Cell.prototype.getNeighbors = function() { // Adapted from Leafletjs https://searchcode.com/codesearch/view/42525008/ - var L = { LatLng: {} }; - window.L = L; - - L.LatLng.DEG_TO_RAD = Math.PI / 180; - L.LatLng.RAD_TO_DEG = 180 / Math.PI; + var L = {}; L.LatLng = function (/*Number*/ rawLat, /*Number*/ rawLng, /*Boolean*/ noWrap) { var lat = parseFloat(rawLat); @@ -332,4 +328,12 @@ S2.S2Cell.prototype.getNeighbors = function() { return { lat: lat, lng: lng }; }; + + L.LatLng.DEG_TO_RAD = Math.PI / 180; + L.LatLng.RAD_TO_DEG = 180 / Math.PI; + + if (!window.L) { + window.L = L; + } + S2.L = L; })(); From 8c17bc9e4fb31b32eee10fd37a6ee7875e4ff841 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Mon, 25 Jul 2016 22:56:23 -0400 Subject: [PATCH 5/5] explicit radix --- src/s2geometry.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/s2geometry.js b/src/s2geometry.js index 5e95d7e..eb76722 100644 --- a/src/s2geometry.js +++ b/src/s2geometry.js @@ -314,8 +314,8 @@ S2.S2Cell.prototype.getNeighbors = function() { var L = {}; L.LatLng = function (/*Number*/ rawLat, /*Number*/ rawLng, /*Boolean*/ noWrap) { - var lat = parseFloat(rawLat); - var lng = parseFloat(rawLng); + var lat = parseFloat(rawLat, 10); + var lng = parseFloat(rawLng, 10); if (isNaN(lat) || isNaN(lng)) { throw new Error('Invalid LatLng object: (' + rawLat + ', ' + rawLng + ')');