diff --git a/overviewer_core/data/js_src/overviewer.js b/overviewer_core/data/js_src/overviewer.js index 8741ee0..8261d7a 100644 --- a/overviewer_core/data/js_src/overviewer.js +++ b/overviewer_core/data/js_src/overviewer.js @@ -14,6 +14,7 @@ overviewer.map = null; overviewer.worldCtrl = null; overviewer.layerCtrl = null; overviewer.compass = null; +overviewer.coord_box = null; overviewer.current_world = null; /// Records the current layer by name (if any) of each world diff --git a/overviewer_core/data/js_src/util.js b/overviewer_core/data/js_src/util.js index 85d999d..4bdc79d 100644 --- a/overviewer_core/data/js_src/util.js +++ b/overviewer_core/data/js_src/util.js @@ -38,6 +38,37 @@ overviewer.util = { document.getElementById('NoJSWarning').remove(); + overviewer.coordBoxClass = L.Control.extend({ + options: { + position: 'bottomleft', + }, + initialize: function() { + this.coord_box = L.DomUtil.create('div', 'coordbox'); + }, + render: function(latlng) { + var currWorld = overviewer.current_world; + if (currWorld == null) {return;} + + var currTileset = overviewer.current_layer[currWorld]; + if (currTileset == null) {return;} + + var ovconf = currTileset.tileSetConfig; + + w_coords = overviewer.util.fromLatLngToWorld(latlng.lat, latlng.lng, ovconf); + + var r_x = Math.floor(Math.floor(w_coords.x / 16.0) / 32.0); + var r_z = Math.floor(Math.floor(w_coords.z / 16.0) / 32.0); + var r_name = "r." + r_x + "." + r_z + ".mca"; + + this.coord_box.innerHTML = "X " + + Math.round(w_coords.x) + + " Z " + Math.round(w_coords.z) + + " (" + r_name + ")"; + }, + onAdd: function() { + return this.coord_box; + } + }); overviewer.compassClass = L.Control.extend({ initialize: function(imagedict, options) { L.Util.setOptions(this, options); @@ -193,6 +224,7 @@ overviewer.util = { overviewer.worldCtrl = new overviewer.control(); overviewer.compass = new overviewer.compassClass( overviewerConfig.CONST.image.compass); + overviewer.coord_box = new overviewer.coordBoxClass(); $.each(overviewerConfig.worlds, function(idx, world_name) { @@ -203,6 +235,11 @@ overviewer.util = { overviewer.compass.addTo(overviewer.map); overviewer.worldCtrl.addTo(overviewer.map); + overviewer.coord_box.addTo(overviewer.map); + + overviewer.map.on('mousemove', function(ev) { + overviewer.coord_box.render(ev.latlng); + }); $.each(overviewerConfig.tilesets, function(idx, obj) { var myLayer = new L.tileLayer('', { diff --git a/overviewer_core/data/web_assets/index.html b/overviewer_core/data/web_assets/index.html index f188602..c890161 100644 --- a/overviewer_core/data/web_assets/index.html +++ b/overviewer_core/data/web_assets/index.html @@ -8,8 +8,6 @@ - - @@ -18,6 +16,7 @@ + diff --git a/overviewer_core/data/web_assets/overviewer.css b/overviewer_core/data/web_assets/overviewer.css index cf12efd..4d3f94a 100644 --- a/overviewer_core/data/web_assets/overviewer.css +++ b/overviewer_core/data/web_assets/overviewer.css @@ -164,3 +164,12 @@ div.worldcontrol select { color: #333; font-size: 1.2em; } + +.leaflet-container .coordbox { + box-shadow: none; + font-size: 11px; + background: rgba(255, 255, 255, 0.7); + margin: 0; + padding: 0 5px; + color: #333; +}