From a0f66aaf3c3a7400ae18b015a8d19a4d4c73967d Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Thu, 25 Jul 2024 15:56:53 +0200 Subject: [PATCH] Added view-switcher and center button controls inside map --- Layout/default/Building/Index.php | 2 +- Layout/default/Preorder/Index.php | 2 +- Layout/default/header.php | 4 ++ .../css/leaflet-ext/leaflet.center-button.css | 11 +++ .../leaflet.switch-view-button.css | 11 +++ .../css/leaflet-ext/map-center-button-2x.png | Bin 0 -> 3118 bytes .../css/leaflet-ext/map-center-button.png | Bin 0 -> 1600 bytes .../css/leaflet-ext/map-switch-view-2x.png | Bin 0 -> 6033 bytes .../css/leaflet-ext/map-switch-view.png | Bin 0 -> 2021 bytes .../js/leaflet-ext/leaflet.center-button.js | 64 ++++++++++++++++++ .../leaflet-ext/leaflet.switch-view-button.js | 62 +++++++++++++++++ 11 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 public/assets/css/leaflet-ext/leaflet.center-button.css create mode 100644 public/assets/css/leaflet-ext/leaflet.switch-view-button.css create mode 100644 public/assets/css/leaflet-ext/map-center-button-2x.png create mode 100644 public/assets/css/leaflet-ext/map-center-button.png create mode 100644 public/assets/css/leaflet-ext/map-switch-view-2x.png create mode 100644 public/assets/css/leaflet-ext/map-switch-view.png create mode 100644 public/assets/js/leaflet-ext/leaflet.center-button.js create mode 100644 public/assets/js/leaflet-ext/leaflet.switch-view-button.js diff --git a/Layout/default/Building/Index.php b/Layout/default/Building/Index.php index b53781942..efff4a2d8 100644 --- a/Layout/default/Building/Index.php +++ b/Layout/default/Building/Index.php @@ -397,7 +397,7 @@ }); } } else { - buildingMap = L.map('building-map', {fullscreenControl: true}).setView([, ], 12); + buildingMap = L.map('building-map', {fullscreenControl: true, centerControl: true, switchviewControl: true}).setView([, ], 12); } if(!(currentTileset in tileLayers)) { diff --git a/Layout/default/Preorder/Index.php b/Layout/default/Preorder/Index.php index 245bb7e86..19650db08 100644 --- a/Layout/default/Preorder/Index.php +++ b/Layout/default/Preorder/Index.php @@ -437,7 +437,7 @@ }); } } else { - preorderMap = L.map('preorder-map', {fullscreenControl: true}).setView([, ], 12); + preorderMap = L.map('preorder-map', {fullscreenControl: true, centerControl: true, switchviewControl: true}).setView([, ], 12); } if(!(currentTileset in tileLayers)) { diff --git a/Layout/default/header.php b/Layout/default/header.php index 1a1f26627..960564812 100644 --- a/Layout/default/header.php +++ b/Layout/default/header.php @@ -20,6 +20,8 @@ + + @@ -42,6 +44,8 @@ + + diff --git a/public/assets/css/leaflet-ext/leaflet.center-button.css b/public/assets/css/leaflet-ext/leaflet.center-button.css new file mode 100644 index 000000000..08dca6d7d --- /dev/null +++ b/public/assets/css/leaflet-ext/leaflet.center-button.css @@ -0,0 +1,11 @@ +.leaflet-control-center a { + background:#fff url(map-center-button.png) no-repeat 0 0; +} + +@media +(-webkit-min-device-pixel-ratio:2), +(min-resolution:192dpi) { + .leaflet-control-center a { + background-image:url(map-center-button-2x.png); + } +} diff --git a/public/assets/css/leaflet-ext/leaflet.switch-view-button.css b/public/assets/css/leaflet-ext/leaflet.switch-view-button.css new file mode 100644 index 000000000..1b83816af --- /dev/null +++ b/public/assets/css/leaflet-ext/leaflet.switch-view-button.css @@ -0,0 +1,11 @@ +.leaflet-control-switch-view a { + background:#fff url(map-switch-view.png) no-repeat 0 0; +} + +@media +(-webkit-min-device-pixel-ratio:2), +(min-resolution:192dpi) { + .leaflet-control-switch-view a { + background-image:url(map-switch-view-2x.png); + } +} diff --git a/public/assets/css/leaflet-ext/map-center-button-2x.png b/public/assets/css/leaflet-ext/map-center-button-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..13953611a3402d31b10124e5b842022924ea6f71 GIT binary patch literal 3118 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 IM6N<$f+temz5oCK literal 0 HcmV?d00001 diff --git a/public/assets/css/leaflet-ext/map-center-button.png b/public/assets/css/leaflet-ext/map-center-button.png new file mode 100644 index 0000000000000000000000000000000000000000..f309dfc9f46c838e44429375e673ede2a9f0b1ee GIT binary patch literal 1600 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 D=%K>W literal 0 HcmV?d00001 diff --git a/public/assets/js/leaflet-ext/leaflet.center-button.js b/public/assets/js/leaflet-ext/leaflet.center-button.js new file mode 100644 index 000000000..0c0bd2637 --- /dev/null +++ b/public/assets/js/leaflet-ext/leaflet.center-button.js @@ -0,0 +1,64 @@ +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['leaflet'], factory); + } else if (typeof module !== 'undefined') { + // Node/CommonJS + module.exports = factory(require('leaflet')); + } else { + // Browser globals + if (typeof window.L === 'undefined') { + throw new Error('Leaflet must be loaded first'); + } + factory(window.L); + } +}(function (L) { + L.Control.Center = L.Control.extend({ + options: { + position: 'bottomleft', + title: 'Zentrieren' + }, + + onAdd: function (map) { + var container = L.DomUtil.create('div', 'leaflet-control-center leaflet-bar leaflet-control'); + + this.link = L.DomUtil.create('a', 'leaflet-control-center-button leaflet-bar-part', container); + this.link.href = '#'; + + this._map = map; + this.link.title = this.options.title; + + L.DomEvent.on(this.link, 'click', this._click, this); + + return container; + }, + + _click: function (e) { + L.DomEvent.stopPropagation(e); + L.DomEvent.preventDefault(e); + this._map.centerMap(); + }, + + }); + + L.Map.include({ + centerMap: function() { + if(typeof mapCenterPos !== 'undefined') { + this.setView(mapCenterPos); + } + + }, + + }); + + L.Map.addInitHook(function () { + if (this.options.centerControl) { + this.centerControl = new L.Control.Center(this.options.centerControl); + this.addControl(this.centerControl); + } + }); + + L.control.center = function (options) { + return new L.Control.Center(options); + }; +})); \ No newline at end of file diff --git a/public/assets/js/leaflet-ext/leaflet.switch-view-button.js b/public/assets/js/leaflet-ext/leaflet.switch-view-button.js new file mode 100644 index 000000000..20467dd7b --- /dev/null +++ b/public/assets/js/leaflet-ext/leaflet.switch-view-button.js @@ -0,0 +1,62 @@ +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['leaflet'], factory); + } else if (typeof module !== 'undefined') { + // Node/CommonJS + module.exports = factory(require('leaflet')); + } else { + // Browser globals + if (typeof window.L === 'undefined') { + throw new Error('Leaflet must be loaded first'); + } + factory(window.L); + } +}(function (L) { + L.Control.Switchview = L.Control.extend({ + options: { + position: 'bottomleft', + title: 'Zwischen Karte und Satellitenansicht wechseln' + }, + + onAdd: function (map) { + var container = L.DomUtil.create('div', 'leaflet-control-switch-view leaflet-bar leaflet-control'); + + this.link = L.DomUtil.create('a', 'leaflet-control-switch-view-button leaflet-bar-part', container); + this.link.href = '#'; + + this._map = map; + this.link.title = this.options.title; + + L.DomEvent.on(this.link, 'click', this._click, this); + + return container; + }, + + _click: function (e) { + L.DomEvent.stopPropagation(e); + L.DomEvent.preventDefault(e); + this._map.toggleTileset(); + }, + + }); + + L.Map.include({ + toggleTileset: function() { + toggleTileset(); + + }, + + }); + + L.Map.addInitHook(function () { + if (this.options.switchviewControl) { + this.switchviewControl = new L.Control.Switchview(this.options.switchviewControl); + this.addControl(this.switchviewControl); + } + }); + + L.control.switchview = function (options) { + return new L.Control.Switchview(options); + }; +})); \ No newline at end of file