From 10d6e8904d8cdb92b6e8e44ea36224659ff28092 Mon Sep 17 00:00:00 2001 From: NatureFreshMilk Date: Fri, 8 Feb 2019 14:48:06 +0100 Subject: [PATCH] click coordinates --- server/static/js/CoordinatesDisplay.js | 32 +++++++++++++++---- .../static/js/overlays/AbstractIconOverlay.js | 7 ++-- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/server/static/js/CoordinatesDisplay.js b/server/static/js/CoordinatesDisplay.js index 61ce72e..37392cf 100644 --- a/server/static/js/CoordinatesDisplay.js +++ b/server/static/js/CoordinatesDisplay.js @@ -4,15 +4,33 @@ var CoordinatesDisplay = L.Control.extend({ onAdd: function(map) { var div = L.DomUtil.create('div', 'leaflet-bar leaflet-custom-display'); - function update(ev){ - var latlng = ev.latlng; - div.innerHTML = "X:" + parseInt(latlng.lng) + " Z:" + parseInt(latlng.lat); + + var hoverCoord, clickCoord + + function updateHover(ev){ + hoverCoord = ev.latlng; + update(); } - //TODO: x: 1 z: 2 (selected: x:1 z:3) - map.on('mousemove', update); - map.on('click', update); - map.on('touch', update); + function updateClick(ev){ + clickCoord = ev.latlng; + update(); + } + + function update(){ + var html = ""; + if (hoverCoord) + html += = "X=" + parseInt(hoverCoord.lng) + " Z=" + parseInt(hoverCoord.lat); + + if (clickCoord) + html += = " (marked: X=" + parseInt(clickCoord.lng) + " Z=" + parseInt(clickCoord.lat) + ")"; + + div.innerHTML = html; + } + + map.on('mousemove', updateHover); + map.on('click', updateClick); + map.on('touch', updateClick); return div; }, diff --git a/server/static/js/overlays/AbstractIconOverlay.js b/server/static/js/overlays/AbstractIconOverlay.js index 1ebb86f..17c0a75 100644 --- a/server/static/js/overlays/AbstractIconOverlay.js +++ b/server/static/js/overlays/AbstractIconOverlay.js @@ -46,7 +46,7 @@ var AbstractIconOverlay = L.LayerGroup.extend({ reDraw: function(full){ var self = this; - if (this._map.getZoom() < 10) { + if (this.map.getZoom() < 10) { this.clearLayers(); this.currentObjects = {}; return; @@ -58,8 +58,8 @@ var AbstractIconOverlay = L.LayerGroup.extend({ } var mapLayer = this.layerMgr.getCurrentLayer() - var min = this._map.getBounds().getSouthWest(); - var max = this._map.getBounds().getNorthEast(); + var min = this.map.getBounds().getSouthWest(); + var max = this.map.getBounds().getNorthEast(); var y1 = parseInt(mapLayer.from/16); var y2 = parseInt(mapLayer.to/16); @@ -98,6 +98,7 @@ var AbstractIconOverlay = L.LayerGroup.extend({ }, onAdd: function(map) { + this.map = map; map.on("zoomend", this.onMapMove); map.on("moveend", this.onMapMove); this.layerMgr.addListener(this.onLayerChange);