From 02a1813bd506a5361aafe7cf334190b7d39793a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Mon, 6 Jan 2020 20:52:03 +0100
Subject: [PATCH] Define a map.getMetersPerPixel() function

---
 src/CategoryOverpass.js      | 2 +-
 src/index.js                 | 2 ++
 src/map-getMetersPerPixel.js | 5 +++++
 3 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 src/map-getMetersPerPixel.js

diff --git a/src/CategoryOverpass.js b/src/CategoryOverpass.js
index da79a76e..8c0e7718 100644
--- a/src/CategoryOverpass.js
+++ b/src/CategoryOverpass.js
@@ -435,7 +435,7 @@ CategoryOverpass.prototype.updateInfo = function () {
   if (this.map) {
     data.map = {
       zoom: this.map.getZoom(),
-      metersPerPixel: 40075016.686 * Math.abs(Math.cos(this.map.getCenter().lat / 180 * Math.PI)) / Math.pow(2, this.map.getZoom() + 8)
+      metersPerPixel: this.map.getMetersPerPixel()
     }
   }
   this.domInfo.innerHTML = this.templateInfo.render(data)
diff --git a/src/index.js b/src/index.js
index 0428ad2c..5dcd553e 100644
--- a/src/index.js
+++ b/src/index.js
@@ -11,6 +11,7 @@ global.OpenStreetBrowserLoader = OpenStreetBrowserLoader
 require('./CategoryIndex')
 require('./CategoryOverpass')
 require('./category.css')
+const mapMetersPerPixel = require('./map-getMetersPerPixel')
 
 global.map = null
 global.baseCategory = null
@@ -43,6 +44,7 @@ window.onload = function () {
   var initState = config.defaultView
 
   map = L.map('map')
+  map.getMetersPerPixel = mapMetersPerPixel.bind(map)
 
   map.attributionControl.setPrefix('<a target="_blank" href="https://wiki.openstreetmap.org/wiki/OpenStreetBrowser">OpenStreetBrowser</a>')
 
diff --git a/src/map-getMetersPerPixel.js b/src/map-getMetersPerPixel.js
new file mode 100644
index 00000000..b17053f7
--- /dev/null
+++ b/src/map-getMetersPerPixel.js
@@ -0,0 +1,5 @@
+function getMetersPerPixel () {
+  return 40075016.686 * Math.abs(Math.cos(this.getCenter().lat / 180 * Math.PI)) / Math.pow(2, this.getZoom() + 8)
+}
+
+module.exports = getMetersPerPixel