diff --git a/code/hooks.js b/code/hooks.js index 9cdd428d..26c4bb9d 100644 --- a/code/hooks.js +++ b/code/hooks.js @@ -104,3 +104,16 @@ window.addHook = function(event, callback) { else _hooks[event].push(callback); } + +// callback must the SAME function to be unregistered. +window.removeHook = function(event, callback) { + if (typeof callback !== 'function') throw('Callback must be a function.'); + + if (_hooks[event]) { + var index = _hooks[event].indexOf(callback); + if(index == -1) + console.warn('Callback wasn\'t registered for this event.'); + else + _hooks[event].splice(index, 1); + } +} diff --git a/code/send_request.js b/code/send_request.js index f11bdc05..be6d5712 100644 --- a/code/send_request.js +++ b/code/send_request.js @@ -95,7 +95,7 @@ window.outOfDateUserPrompt = function() dialog({ title: 'Reload IITC', - html: '
IITC is using an outdated version code. This will happen when Niantic update the standard intel site.
' + html: 'IITC is using an outdated version code. This will happen when Niantic updates the standard intel site.
' +'You need to reload the page to get the updated changes.
' +'If you have just reloaded the page, then an old version of the standard site script is cached somewhere.' +'In this case, try clearing your cache, or waiting 15-30 minutes for the stale data to expire.
', diff --git a/code/utils_misc.js b/code/utils_misc.js index f1892b82..b3009a58 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -414,6 +414,16 @@ window.addLayerGroup = function(name, layerGroup, defaultDisplay) { layerChooser.addOverlay(layerGroup, name); } +window.removeLayerGroup = function(layerGroup) { + if(!layerChooser._layers[layerGroup._leaflet_id]) throw('Layer was not found'); + // removing the layer will set it's default visibility to false (store if layer gets added again) + var name = layerChooser._layers[layerGroup._leaflet_id].name; + var enabled = isLayerGroupDisplayed(name); + map.removeLayer(layerGroup); + layerChooser.removeLayer(layerGroup); + updateDisplayedLayerGroup(name, enabled); +}; + window.clampLat = function(lat) { // the map projection used does not handle above approx +- 85 degrees north/south of the equator if (lat > 85.051128) diff --git a/external/s2geometry.js b/external/s2geometry.js index 4f7976e7..d6b6841a 100644 --- a/external/s2geometry.js +++ b/external/s2geometry.js @@ -212,8 +212,6 @@ S2.S2Cell.FromLatLng = function(latLng,level) { var ij = STToIJ(st,level); return S2.S2Cell.FromFaceIJ (faceuv[0], ij, level); - - return result; }; S2.S2Cell.FromFaceIJ = function(face,ij,level) { diff --git a/plugins/basemap-opencyclemap.user.js b/plugins/basemap-opencyclemap.user.js index 2118bc81..ed6e5500 100644 --- a/plugins/basemap-opencyclemap.user.js +++ b/plugins/basemap-opencyclemap.user.js @@ -2,7 +2,7 @@ // @id iitc-plugin-basemap-opencyclepam@jonatkins // @name IITC plugin: OpenCycleMap.org map tiles // @category Map Tiles -// @version 0.1.1.@@DATETIMEVERSION@@ +// @version 0.2.0.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ @@ -24,21 +24,29 @@ // use own namespace for plugin -window.plugin.mapTileOpenCycleMap = function() {}; +window.plugin.mapTileOpenCycleMap = { + addLayer: function() { + //the Thunderforest (OpenCycleMap) tiles are free to use - http://www.thunderforest.com/terms/ -window.plugin.mapTileOpenCycleMap.addLayer = function() { + var ocmOpt = { + attribution: 'Tiles © OpenCycleMap, Map data © OpenStreetMap', + maxNativeZoom: 18, + maxZoom: 21, + }; - //the Thunderforest (OpenCycleMap) tiles are free to use - http://www.thunderforest.com/terms/ + var layers = { + 'cycle': 'OpenCycleMap', + 'transport': 'Transport', + 'transport-dark': 'Transport Dark', + 'outdoors': 'Outdoors', + 'landscape': 'Landscape', + }; - osmAttribution = 'Map data © OpenStreetMap'; - var ocmOpt = {attribution: 'Tiles © OpenCycleMap, '+osmAttribution, maxNativeZoom: 18, maxZoom: 21}; - var ocmCycle = new L.TileLayer('http://{s}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png', ocmOpt); - var ocmTransport = new L.TileLayer('http://{s}.tile2.opencyclemap.org/transport/{z}/{x}/{y}.png', ocmOpt); - var ocmLandscape = new L.TileLayer('http://{s}.tile3.opencyclemap.org/landscape/{z}/{x}/{y}.png', ocmOpt); - - layerChooser.addBaseLayer(ocmCycle, "Thunderforest OpenCycleMap"); - layerChooser.addBaseLayer(ocmTransport, "Thunderforest Transport"); - layerChooser.addBaseLayer(ocmLandscape, "Thunderforest Landscape"); + for(var i in layers) { + var layer = new L.TileLayer('http://{s}.tile.thunderforest.com/' + i + '/{z}/{x}/{y}.png', ocmOpt); + layerChooser.addBaseLayer(layer, 'Thunderforest ' + layers[i]); + } + }, }; var setup = window.plugin.mapTileOpenCycleMap.addLayer;