diff --git a/GeocacheCircles/Geocache_Circles.meta.js b/GeocacheCircles/Geocache_Circles.meta.js
index 1a543a2..76d1b02 100644
--- a/GeocacheCircles/Geocache_Circles.meta.js
+++ b/GeocacheCircles/Geocache_Circles.meta.js
@@ -7,7 +7,7 @@
// @oujs:author JRI
// @license MIT; http://www.opensource.org/licenses/mit-license.php
// @copyright 2016-2017, James Inge (http://geo.inge.org.uk/)
-// @version 0.0.4
+// @version 0.0.5
// @icon https://geo.inge.org.uk/userscripts/circleIcon48.png
// @icon64 https://geo.inge.org.uk/userscripts/circleIcon64.png
// @connect www.geocaching.com
diff --git a/GeocacheCircles/Geocache_Circles.user.js b/GeocacheCircles/Geocache_Circles.user.js
index 4b60076..27d3865 100644
--- a/GeocacheCircles/Geocache_Circles.user.js
+++ b/GeocacheCircles/Geocache_Circles.user.js
@@ -7,7 +7,7 @@
// @oujs:author JRI
// @license MIT; http://www.opensource.org/licenses/mit-license.php
// @copyright 2016-2017, James Inge (http://geo.inge.org.uk/)
-// @version 0.0.4
+// @version 0.0.5
// @icon https://geo.inge.org.uk/userscripts/circleIcon48.png
// @icon64 https://geo.inge.org.uk/userscripts/circleIcon64.png
// @connect www.geocaching.com
@@ -19,87 +19,114 @@
/*jshint esversion: 6, undef:true, unused:true */
/*global L, MapSettings, window, console */
-(function () {
- "use strict";
- const version = "Geocache Circles v0.0.4";
- const loggedIn = document.getElementById("uxLoginStatus_divSignedIn");
- const template = document.getElementById("cacheDetailsTemplate");
- const script = document.createElement("script");
- const circleIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA6UlEQVQ4ja2TsY3DMAxFiUvvbOTaA0SVRhBEfooyBLjyON7FC3iVNNYVlwB3MQwH5/xW/A/8FEm0I+99E4K0IUjrvW/26jaKETeILZC0KqwqrELSCrElRtx2jaWUq0iaFFaBPKvawMwdM3eqNgB5VlgVSVMp5boBPMx3ibkfx/Hr9d05d5GYe4XdRdK0aVthVWLujyI+IPVPHIgtQJ6dc5cjgHPuAuQZYgsR/UwbklZVG47MT6naAEmr976hEKRVWGXm7l0AM3cKqyFIex5wOgLRySESfeAbiU4uEtEHVvl3nH8d06vePedvYUbM9ZMTrS4AAAAASUVORK5CYII=";
-
- function handleCircleRequest(e) {
- /* Fetch coordinates from cache page */
- const req = new XMLHttpRequest();
- const gc = e.detail;
- req.addEventListener("load", function (ignore) {
- const r = req.responseText;
- const k = r.indexOf("mapLatLng = {");
-
- if (req.status < 400) {
- try {
- const {lat, lng, name} = JSON.parse(r.substring(k + 12, r.indexOf("}", k) + 1));
-
- if (typeof lat !== "number" || typeof lng !== "number") {
- // Missing data in JSON string
- console.error("Geocache Circles: no cache coordinates retrieved.");
- return;
- }
-
- if (window.MapSettings && MapSettings.Map && window.L && window.L.Circle) {
- const ll = new L.LatLng(lat, lng);
- new L.Circle(ll, 161, {weight: 2})
- .addTo(MapSettings.Map)
- .bindPopup(`
${name}
${ll.toUrl()}`);
- } else {
- console.error("Geocache Circles: couldn't find map interface.");
- }
- } catch (err) {
- if (err instanceof SyntaxError) {
- console.warn(`Geocache Circles: Received ${r.length} bytes, coords at ${k} but couldn't extract cache coordinates from data (are you still logged in?):
+(function() {
+ "use strict";
+ const version = "Geocache Circles v0.0.5";
+ const loggedIn = document.getElementById("uxLoginStatus_divSignedIn");
+ const template = document.getElementById("cacheDetailsTemplate");
+ const script = document.createElement("script");
+ const circleIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA6UlEQVQ4ja2TsY3DMAxFiUvvbOTaA0SVRhBEfooyBLjyON7FC3iVNNYVlwB3MQwH5/xW/A/8FEm0I+99E4K0IUjrvW/26jaKETeILZC0KqwqrELSCrElRtx2jaWUq0iaFFaBPKvawMwdM3eqNgB5VlgVSVMp5boBPMx3ibkfx/Hr9d05d5GYe4XdRdK0aVthVWLujyI+IPVPHIgtQJ6dc5cjgHPuAuQZYgsR/UwbklZVG47MT6naAEmr976hEKRVWGXm7l0AM3cKqyFIex5wOgLRySESfeAbiU4uEtEHVvl3nH8d06vePedvYUbM9ZMTrS4AAAAASUVORK5CYII=";
+
+ //delete existing circle
+ function handleCircleRemove(e) {
+ const gc = e.detail;
+ if (window.MapSettings && MapSettings.Map && window.L && circleStorage[gc]) {
+ {
+ MapSettings.Map.removeLayer(circleStorage[gc]);
+ delete circleStorage[gc];
+ }
+ }
+ }
+
+ function handleCircleRequest(e) {
+ /* Fetch coordinates from cache page */
+ const req = new XMLHttpRequest();
+ const gc = e.detail;
+
+ //if circle exists, delete it
+ if (circleStorage[gc] && window.MapSettings && MapSettings.Map && window.L && window.L.Circle) {
+ MapSettings.Map.removeLayer(circleStorage[gc]);
+ delete circleStorage[gc];
+ return;
+ }
+
+ req.addEventListener("load", function(ignore) {
+ const r = req.responseText;
+ const k = r.indexOf("mapLatLng = {");
+
+
+
+ if (req.status < 400) {
+ try {
+ const { lat, lng, name } = JSON.parse(r.substring(k + 12, r.indexOf("}", k) + 1));
+
+ if (typeof lat !== "number" || typeof lng !== "number") {
+ // Missing data in JSON string
+ console.error("Geocache Circles: no cache coordinates retrieved.");
+ return;
+ }
+
+ if (window.MapSettings && MapSettings.Map && window.L && window.L.Circle) {
+ const ll = new L.LatLng(lat, lng);
+ var circle = new L.Circle(ll, 161, { weight: 2 });
+ circle.addTo(MapSettings.Map)
+ .bindPopup(`
${name}
${ll.toUrl()}
+ OpenCache
+ Remove circle`);
+ circleStorage[gc] = circle;
+ } else {
+ console.error("Geocache Circles: couldn't find map interface.");
+ }
+ } catch (err) {
+ if (err instanceof SyntaxError) {
+ console.warn(`Geocache Circles: Received ${r.length} bytes, coords at ${k} but couldn't extract cache coordinates from data (are you still logged in?):
${err}`);
- } else {
- console.error(`Geocache Circles: couldn't add circle to ssmap: ${err}`);
- }
- }
- } else {
- console.warn(`Geocache Circles: error retrieving cache page to find coords for ${gc}: ${req.statusText}`);
- }
- });
- req.open("GET", `https://www.geocaching.com/geocache/${gc}`);
- req.send();
- }
-
- // Don't run on frames or iframes
- if (window.top !== window.self) {
- return false;
- }
-
- // Check feature support
- if (!window.JSON || !window.XMLHttpRequest) {
- console.warn(`${version} requires a browser with support for JSON and XMLHttpRequest`);
- return false;
- }
-
- if (loggedIn === null) {
- // Warn if not logged in, as coords unavailable. Don't quit, as user might log in later in a different window, or login detection might have failed.
- console.warn("Geocache Circles may not be able to locate caches as you don't seem to be logged in.");
- }
-
- if (template) {
- console.info(version);
-
- // Attach to cache info popup template
- template.textContent = template.textContent.replace(/
/, `
Circle `);
-
- // Add event listener to content script context
- script.type = "text/javascript";
- script.text = `"use strict";
- ${handleCircleRequest.toString()}
- document.addEventListener("gme_circle_request", handleCircleRequest, false)`;
- document.documentElement.firstChild.appendChild(script);
- document.documentElement.firstChild.removeChild(script);
- } else {
- // Couldn't find popup template
- console.error(`${version} didn't understand page structure.`);
- }
-}());
\ No newline at end of file
+ } else {
+ console.error(`Geocache Circles: couldn't add circle to ssmap: ${err}`);
+ }
+ }
+ } else {
+ console.warn(`Geocache Circles: error retrieving cache page to find coords for ${gc}: ${req.statusText}`);
+ }
+ });
+ req.open("GET", `https://www.geocaching.com/geocache/${gc}`);
+ req.send();
+ }
+
+ // Don't run on frames or iframes
+ if (window.top !== window.self) {
+ return false;
+ }
+
+ // Check feature support
+ if (!window.JSON || !window.XMLHttpRequest) {
+ console.warn(`${version} requires a browser with support for JSON and XMLHttpRequest`);
+ return false;
+ }
+
+ if (loggedIn === null) {
+ // Warn if not logged in, as coords unavailable. Don't quit, as user might log in later in a different window, or login detection might have failed.
+ console.warn("Geocache Circles may not be able to locate caches as you don't seem to be logged in.");
+ }
+
+ if (template) {
+ console.info(version);
+
+ // Attach to cache info popup template
+ template.textContent = template.textContent.replace(/
/, `
Circle `);
+
+ // Add event listener to content script context
+ script.type = "text/javascript";
+ script.text = `"use strict";
+ const circleStorage = {};
+ ${handleCircleRequest.toString()}
+ ${handleCircleRemove.toString()}
+ document.addEventListener("gme_circle_request", handleCircleRequest, false);
+ document.addEventListener("gme_circle_remove", handleCircleRemove, false)`;
+ document.documentElement.firstChild.appendChild(script);
+ document.documentElement.firstChild.removeChild(script);
+ } else {
+ // Couldn't find popup template
+ console.error(`${version} didn't understand page structure.`);
+ }
+}());
diff --git a/GeocacheCircles/src/Geocache_Circles.js b/GeocacheCircles/src/Geocache_Circles.js
index 37372f4..ddc0465 100644
--- a/GeocacheCircles/src/Geocache_Circles.js
+++ b/GeocacheCircles/src/Geocache_Circles.js
@@ -1,81 +1,108 @@
- const version = "Geocache Circles v0.0.4";
- const loggedIn = document.getElementById("uxLoginStatus_divSignedIn");
- const template = document.getElementById("cacheDetailsTemplate");
- const script = document.createElement("script");
- const circleIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA6UlEQVQ4ja2TsY3DMAxFiUvvbOTaA0SVRhBEfooyBLjyON7FC3iVNNYVlwB3MQwH5/xW/A/8FEm0I+99E4K0IUjrvW/26jaKETeILZC0KqwqrELSCrElRtx2jaWUq0iaFFaBPKvawMwdM3eqNgB5VlgVSVMp5boBPMx3ibkfx/Hr9d05d5GYe4XdRdK0aVthVWLujyI+IPVPHIgtQJ6dc5cjgHPuAuQZYgsR/UwbklZVG47MT6naAEmr976hEKRVWGXm7l0AM3cKqyFIex5wOgLRySESfeAbiU4uEtEHVvl3nH8d06vePedvYUbM9ZMTrS4AAAAASUVORK5CYII=";
+const version = "Geocache Circles v0.0.5";
+const loggedIn = document.getElementById("uxLoginStatus_divSignedIn");
+const template = document.getElementById("cacheDetailsTemplate");
+const script = document.createElement("script");
+const circleIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA6UlEQVQ4ja2TsY3DMAxFiUvvbOTaA0SVRhBEfooyBLjyON7FC3iVNNYVlwB3MQwH5/xW/A/8FEm0I+99E4K0IUjrvW/26jaKETeILZC0KqwqrELSCrElRtx2jaWUq0iaFFaBPKvawMwdM3eqNgB5VlgVSVMp5boBPMx3ibkfx/Hr9d05d5GYe4XdRdK0aVthVWLujyI+IPVPHIgtQJ6dc5cjgHPuAuQZYgsR/UwbklZVG47MT6naAEmr976hEKRVWGXm7l0AM3cKqyFIex5wOgLRySESfeAbiU4uEtEHVvl3nH8d06vePedvYUbM9ZMTrS4AAAAASUVORK5CYII=";
- function handleCircleRequest(e) {
- /* Fetch coordinates from cache page */
- const req = new XMLHttpRequest();
- const gc = e.detail;
- req.addEventListener("load", function (ignore) {
- const r = req.responseText;
- const k = r.indexOf("mapLatLng = {");
+//delete existing circle
+function handleCircleRemove(e) {
+ const gc = e.detail;
+ if (window.MapSettings && MapSettings.Map && window.L && circleStorage[gc]) {
+ {
+ MapSettings.Map.removeLayer(circleStorage[gc]);
+ delete circleStorage[gc];
+ }
+ }
+}
- if (req.status < 400) {
- try {
- const {lat, lng, name} = JSON.parse(r.substring(k + 12, r.indexOf("}", k) + 1));
+function handleCircleRequest(e) {
+ /* Fetch coordinates from cache page */
+ const req = new XMLHttpRequest();
+ const gc = e.detail;
- if (typeof lat !== "number" || typeof lng !== "number") {
- // Missing data in JSON string
- console.error("Geocache Circles: no cache coordinates retrieved.");
- return;
- }
+ //if circle exists, delete it
+ if (circleStorage[gc] && window.MapSettings && MapSettings.Map && window.L && window.L.Circle) {
+ MapSettings.Map.removeLayer(circleStorage[gc]);
+ delete circleStorage[gc];
+ return;
+ }
- if (window.MapSettings && MapSettings.Map && window.L && window.L.Circle) {
- const ll = new L.LatLng(lat, lng);
- new L.Circle(ll, 161, {weight: 2})
- .addTo(MapSettings.Map)
- .bindPopup(`
${name}
${ll.toUrl()}`);
- } else {
- console.error("Geocache Circles: couldn't find map interface.");
- }
- } catch (err) {
- if (err instanceof SyntaxError) {
- console.warn(`Geocache Circles: Received ${r.length} bytes, coords at ${k} but couldn't extract cache coordinates from data (are you still logged in?):
+ req.addEventListener("load", function(ignore) {
+ const r = req.responseText;
+ const k = r.indexOf("mapLatLng = {");
+
+
+
+ if (req.status < 400) {
+ try {
+ const { lat, lng, name } = JSON.parse(r.substring(k + 12, r.indexOf("}", k) + 1));
+
+ if (typeof lat !== "number" || typeof lng !== "number") {
+ // Missing data in JSON string
+ console.error("Geocache Circles: no cache coordinates retrieved.");
+ return;
+ }
+
+ if (window.MapSettings && MapSettings.Map && window.L && window.L.Circle) {
+ const ll = new L.LatLng(lat, lng);
+ var circle = new L.Circle(ll, 161, { weight: 2 });
+ circle.addTo(MapSettings.Map)
+ .bindPopup(`
${name}
${ll.toUrl()}
+ OpenCache
+ Remove circle`);
+ circleStorage[gc] = circle;
+ } else {
+ console.error("Geocache Circles: couldn't find map interface.");
+ }
+ } catch (err) {
+ if (err instanceof SyntaxError) {
+ console.warn(`Geocache Circles: Received ${r.length} bytes, coords at ${k} but couldn't extract cache coordinates from data (are you still logged in?):
${err}`);
- } else {
- console.error(`Geocache Circles: couldn't add circle to ssmap: ${err}`);
- }
- }
- } else {
- console.warn(`Geocache Circles: error retrieving cache page to find coords for ${gc}: ${req.statusText}`);
- }
- });
- req.open("GET", `https://www.geocaching.com/geocache/${gc}`);
- req.send();
- }
+ } else {
+ console.error(`Geocache Circles: couldn't add circle to ssmap: ${err}`);
+ }
+ }
+ } else {
+ console.warn(`Geocache Circles: error retrieving cache page to find coords for ${gc}: ${req.statusText}`);
+ }
+ });
+ req.open("GET", `https://www.geocaching.com/geocache/${gc}`);
+ req.send();
+}
- // Don't run on frames or iframes
- if (window.top !== window.self) {
- return false;
- }
+// Don't run on frames or iframes
+if (window.top !== window.self) {
+ return false;
+}
- // Check feature support
- if (!window.JSON || !window.XMLHttpRequest) {
- console.warn(`${version} requires a browser with support for JSON and XMLHttpRequest`);
- return false;
- }
+// Check feature support
+if (!window.JSON || !window.XMLHttpRequest) {
+ console.warn(`${version} requires a browser with support for JSON and XMLHttpRequest`);
+ return false;
+}
- if (loggedIn === null) {
- // Warn if not logged in, as coords unavailable. Don't quit, as user might log in later in a different window, or login detection might have failed.
- console.warn("Geocache Circles may not be able to locate caches as you don't seem to be logged in.");
- }
+if (loggedIn === null) {
+ // Warn if not logged in, as coords unavailable. Don't quit, as user might log in later in a different window, or login detection might have failed.
+ console.warn("Geocache Circles may not be able to locate caches as you don't seem to be logged in.");
+}
- if (template) {
- console.info(version);
+if (template) {
+ console.info(version);
- // Attach to cache info popup template
- template.textContent = template.textContent.replace(/
/, `
Circle `);
+ // Attach to cache info popup template
+ template.textContent = template.textContent.replace(/
/, `
Circle `);
- // Add event listener to content script context
- script.type = "text/javascript";
- script.text = `"use strict";
- ${handleCircleRequest.toString()}
- document.addEventListener("gme_circle_request", handleCircleRequest, false)`;
- document.documentElement.firstChild.appendChild(script);
- document.documentElement.firstChild.removeChild(script);
- } else {
- // Couldn't find popup template
- console.error(`${version} didn't understand page structure.`);
- }
+ // Add event listener to content script context
+ script.type = "text/javascript";
+ script.text = `"use strict";
+ const circleStorage = {};
+ ${handleCircleRequest.toString()}
+ ${handleCircleRemove.toString()}
+ document.addEventListener("gme_circle_request", handleCircleRequest, false);
+ document.addEventListener("gme_circle_remove", handleCircleRemove, false)`;
+ document.documentElement.firstChild.appendChild(script);
+ document.documentElement.firstChild.removeChild(script);
+} else {
+ // Couldn't find popup template
+ console.error(`${version} didn't understand page structure.`);
+}
diff --git a/GeocacheCircles/src/Geocache_Circles.meta.js b/GeocacheCircles/src/Geocache_Circles.meta.js
index 1a543a2..76d1b02 100644
--- a/GeocacheCircles/src/Geocache_Circles.meta.js
+++ b/GeocacheCircles/src/Geocache_Circles.meta.js
@@ -7,7 +7,7 @@
// @oujs:author JRI
// @license MIT; http://www.opensource.org/licenses/mit-license.php
// @copyright 2016-2017, James Inge (http://geo.inge.org.uk/)
-// @version 0.0.4
+// @version 0.0.5
// @icon https://geo.inge.org.uk/userscripts/circleIcon48.png
// @icon64 https://geo.inge.org.uk/userscripts/circleIcon64.png
// @connect www.geocaching.com
diff --git a/GeocachingMapEnhancements/Geocaching_Map_Enhancements.user.js b/GeocachingMapEnhancements/Geocaching_Map_Enhancements.user.js
index 9655b1e..cab5a68 100644
--- a/GeocachingMapEnhancements/Geocaching_Map_Enhancements.user.js
+++ b/GeocachingMapEnhancements/Geocaching_Map_Enhancements.user.js
@@ -76,8 +76,8 @@ var gmeResources = {
.gme-button-active {border:solid 3px #02b; padding:1px 0 1px 1px; background-color:#fff;}\
.gme-button-active:hover {border-color:#63f;filter:alpha(opacity=100);}\
span.gme-button, .gme-button-wide { padding-left:5px; padding-right:5px; font-size:12px; font-weight:bold; width:auto; background-image:none; color: #424242; }\
- .GME_home { background-position: -572px 4px;}\
- .GME_config { background-position: -284px 4px;}\
+ .GME_home { background-size: 18px 18px; background-position: center;background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgMzAgMzAiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDsiPiAgICA8cGF0aCBkPSJNIDE1IDIgQSAxIDEgMCAwIDAgMTQuMzAwNzgxIDIuMjg1MTU2MiBMIDMuMzkyNTc4MSAxMS4yMDcwMzEgQSAxIDEgMCAwIDAgMy4zNTU0Njg4IDExLjIzNjMyOCBMIDMuMzE4MzU5NCAxMS4yNjc1NzggTCAzLjMxODM1OTQgMTEuMjY5NTMxIEEgMSAxIDAgMCAwIDMgMTIgQSAxIDEgMCAwIDAgNCAxMyBMIDUgMTMgTCA1IDI0IEMgNSAyNS4xMDUgNS44OTUgMjYgNyAyNiBMIDIzIDI2IEMgMjQuMTA1IDI2IDI1IDI1LjEwNSAyNSAyNCBMIDI1IDEzIEwgMjYgMTMgQSAxIDEgMCAwIDAgMjcgMTIgQSAxIDEgMCAwIDAgMjYuNjgxNjQxIDExLjI2NzU3OCBMIDI2LjY2NjAxNiAxMS4yNTU4NTkgQSAxIDEgMCAwIDAgMjYuNTk3NjU2IDExLjE5OTIxOSBMIDI1IDkuODkyNTc4MSBMIDI1IDYgQyAyNSA1LjQ0OCAyNC41NTIgNSAyNCA1IEwgMjMgNSBDIDIyLjQ0OCA1IDIyIDUuNDQ4IDIyIDYgTCAyMiA3LjQzOTQ1MzEgTCAxNS42Nzc3MzQgMi4yNjc1NzgxIEEgMSAxIDAgMCAwIDE1IDIgeiBNIDE4IDE1IEwgMjIgMTUgTCAyMiAyMyBMIDE4IDIzIEwgMTggMTUgeiI+PC9wYXRoPjwvc3ZnPg==")}\
+ .GME_config { background-size: 18px 18px; background-position: center;background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IgogICAgIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIKICAgICB2aWV3Qm94PSIwIDAgMzIgMzIiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDsiPjxnIGlkPSJzdXJmYWNlMSI+PHBhdGggc3R5bGU9IiAiIGQ9Ik0gMjEuNSAyLjUgTCAyMS41IDMuOTA2MjUgQyAyMC42NjQwNjMgNC4wNTQ2ODggMTkuODg2NzE5IDQuMzcxMDk0IDE5LjIxODc1IDQuODQzNzUgTCAxOC4xODc1IDMuODc1IEwgMTYuODEyNSA1LjM0Mzc1IEwgMTcuODEyNSA2LjI4MTI1IEMgMTcuMzYzMjgxIDYuOTM3NSAxNy4wNTA3ODEgNy42ODc1IDE2LjkwNjI1IDguNSBMIDE1LjUgOC41IEwgMTUuNSAxMC41IEwgMTYuOTA2MjUgMTAuNSBDIDE3LjA1MDc4MSAxMS4zMjgxMjUgMTcuMzc4OTA2IDEyLjA4NTkzOCAxNy44NDM3NSAxMi43NSBMIDE2Ljc4MTI1IDEzLjc4MTI1IEwgMTguMjE4NzUgMTUuMjE4NzUgTCAxOS4yNSAxNC4xNTYyNSBDIDE5LjkxNDA2MyAxNC42MjEwOTQgMjAuNjcxODc1IDE0Ljk0OTIxOSAyMS41IDE1LjA5Mzc1IEwgMjEuNSAxNi41IEwgMjMuNSAxNi41IEwgMjMuNSAxNS4wOTM3NSBDIDI0LjMxMjUgMTQuOTQ5MjE5IDI1LjA2MjUgMTQuNjM2NzE5IDI1LjcxODc1IDE0LjE4NzUgTCAyNi42NTYyNSAxNS4xODc1IEwgMjguMTI1IDEzLjgxMjUgTCAyNy4xNTYyNSAxMi43ODEyNSBDIDI3LjYyODkwNiAxMi4xMTMyODEgMjcuOTQ1MzEzIDExLjMzNTkzOCAyOC4wOTM3NSAxMC41IEwgMjkuNSAxMC41IEwgMjkuNSA4LjUgTCAyOC4wOTM3NSA4LjUgQyAyNy45NDkyMTkgNy42NzE4NzUgMjcuNjIxMDk0IDYuOTE0MDYzIDI3LjE1NjI1IDYuMjUgTCAyOC4wOTM3NSA1LjMxMjUgTCAyNi42ODc1IDMuOTA2MjUgTCAyNS43NSA0Ljg0Mzc1IEMgMjUuMDg1OTM4IDQuMzc4OTA2IDI0LjMyODEyNSA0LjA1MDc4MSAyMy41IDMuOTA2MjUgTCAyMy41IDIuNSBaIE0gMjIuNSA1LjgxMjUgQyAyNC41NTQ2ODggNS44MTI1IDI2LjE4NzUgNy40NDUzMTMgMjYuMTg3NSA5LjUgQyAyNi4xODc1IDExLjU1NDY4OCAyNC41NTQ2ODggMTMuMTg3NSAyMi41IDEzLjE4NzUgQyAyMC40NDUzMTMgMTMuMTg3NSAxOC44MTI1IDExLjU1NDY4OCAxOC44MTI1IDkuNSBDIDE4LjgxMjUgNy40NDUzMTMgMjAuNDQ1MzEzIDUuODEyNSAyMi41IDUuODEyNSBaIE0gOS41MzEyNSAxMS43MTg3NSBMIDcuNjg3NSAxMi40Njg3NSBMIDguNDA2MjUgMTQuMjgxMjUgQyA3LjQ1MzEyNSAxNC44NTE1NjMgNi42NDA2MjUgMTUuNjQ4NDM4IDYuMDYyNSAxNi41OTM3NSBMIDQuMjgxMjUgMTUuODc1IEwgMy41MzEyNSAxNy43MTg3NSBMIDUuMzEyNSAxOC40Mzc1IEMgNS4xNzk2ODggMTguOTY0ODQ0IDUuMDkzNzUgMTkuNTIzNDM4IDUuMDkzNzUgMjAuMDkzNzUgQyA1LjA5Mzc1IDIwLjY2NDA2MyA1LjE3OTY4OCAyMS4yMTg3NSA1LjMxMjUgMjEuNzUgTCAzLjUzMTI1IDIyLjQ2ODc1IEwgNC4yODEyNSAyNC4zMTI1IEwgNi4wNjI1IDIzLjU5Mzc1IEMgNi42NDA2MjUgMjQuNTU0Njg4IDcuNDQ1MzEzIDI1LjM1OTM3NSA4LjQwNjI1IDI1LjkzNzUgTCA3LjY4NzUgMjcuNzE4NzUgTCA5LjUzMTI1IDI4LjQ2ODc1IEwgMTAuMjUgMjYuNjg3NSBDIDEwLjc4MTI1IDI2LjgyMDMxMyAxMS4zMzIwMzEgMjYuOTA2MjUgMTEuOTA2MjUgMjYuOTA2MjUgQyAxMi40NzY1NjMgMjYuOTA2MjUgMTMuMDM1MTU2IDI2LjgyMDMxMyAxMy41NjI1IDI2LjY4NzUgTCAxNC4yODEyNSAyOC40Njg3NSBMIDE2LjEyNSAyNy43MTg3NSBMIDE1LjQwNjI1IDI1LjkzNzUgQyAxNi4zNTE1NjMgMjUuMzU5Mzc1IDE3LjE0ODQzOCAyNC41NDY4NzUgMTcuNzE4NzUgMjMuNTkzNzUgTCAxOS41MzEyNSAyNC4zMTI1IEwgMjAuMjgxMjUgMjIuNDY4NzUgTCAxOC40Njg3NSAyMS43NSBDIDE4LjYwMTU2MyAyMS4yMTg3NSAxOC42ODc1IDIwLjY2NDA2MyAxOC42ODc1IDIwLjA5Mzc1IEMgMTguNjg3NSAxOS41MjM0MzggMTguNjAxNTYzIDE4Ljk2NDg0NCAxOC40Njg3NSAxOC40Mzc1IEwgMjAuMjgxMjUgMTcuNzE4NzUgTCAxOS41MzEyNSAxNS44NzUgTCAxNy43MTg3NSAxNi41OTM3NSBDIDE3LjE0ODQzOCAxNS42NTIzNDQgMTYuMzUxNTYzIDE0Ljg1MTU2MyAxNS40MDYyNSAxNC4yODEyNSBMIDE2LjEyNSAxMi40Njg3NSBMIDE0LjI4MTI1IDExLjcxODc1IEwgMTMuNTYyNSAxMy41MzEyNSBDIDEzLjAzMTI1IDEzLjM5ODQzOCAxMi40NzY1NjMgMTMuMzEyNSAxMS45MDYyNSAxMy4zMTI1IEMgMTEuMzM1OTM4IDEzLjMxMjUgMTAuNzgxMjUgMTMuMzk4NDM4IDEwLjI1IDEzLjUzMTI1IFogTSAxMS45MDYyNSAxNS4zMTI1IEMgMTQuNTcwMzEzIDE1LjMxMjUgMTYuNjg3NSAxNy40Mjk2ODggMTYuNjg3NSAyMC4wOTM3NSBDIDE2LjY4NzUgMjIuNzU3ODEzIDE0LjU3MDMxMyAyNC45MDYyNSAxMS45MDYyNSAyNC45MDYyNSBDIDkuMjQyMTg4IDI0LjkwNjI1IDcuMDkzNzUgMjIuNzU3ODEzIDcuMDkzNzUgMjAuMDkzNzUgQyA3LjA5Mzc1IDE3LjQyOTY4OCA5LjI0MjE4OCAxNS4zMTI1IDExLjkwNjI1IDE1LjMxMjUgWiAiPjwvcGF0aD48L2c+PC9zdmc+")}\
.GME_route, .GME_hide {background: url(https://geo.inge.org.uk/userscripts/gme_icons_0_8_0.png) no-repeat #eee;}\
.GME_route { background-position: 7px 3px;}\
.GME_route.gme-button-active { background-position: 5px 1px;}\
@@ -87,8 +87,8 @@ var gmeResources = {
.gme-button-clear-labels { background-position: -69px 4px;}\
span.gme-distance-container { display: none; }\
span.gme-distance-container.show { display: inline-block; }\
- .GME_info { background-position: -537px 4px;}\
- .GME_info.gme-button-active {background-position: -540px 1px;}\
+ .GME_info { background-size: 16px 16px; background-position: center;background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDMyIDMyIiA+PHBhdGggc3R5bGU9ImZpbGw6IzAzMDEwNDsiIGQ9Ik0xMCwxNmMxLjEwNSwwLDIsMC44OTUsMiwydjhjMCwxLjEwNS0wLjg5NSwyLTIsMkg4djRoMTZ2LTRoLTEuOTkyYy0xLjEwMiwwLTItMC44OTUtMi0yTDIwLDEySDggdjRIMTB6Ii8+PGNpcmNsZSBzdHlsZT0iZmlsbDojMDMwMTA0OyIgY3g9IjE2IiBjeT0iNCIgcj0iNCIvPjwvc3ZnPg0K")}\
+ .GME_info.gme-button-active {}\
#GME_loc, a.gme-button.leaflet-active {outline: none;}\
.leaflet-control-zoomwarning { top: 94px; }\
.leaflet-control-zoomwarning a { filter: progid:DXImageTransform.Microsoft.gradient(startColorStr="#BFC80000",EndColorStr="#BFC80000"); background-color:rgba(200,0,0,0.75); margin-left: -4px; background-position: -502px 2px;height:14px;width:14px; border-color: #b00; box-shadow: 0 0 8px rgba(0, 0, 0, 0.4); }\