mirror of
https://github.com/neocturne/MinedMap.git
synced 2025-03-04 17:23:33 +01:00
viewer: more URL hash improvements
This commit is contained in:
parent
82acbeacb1
commit
02808dcf9b
1 changed files with 39 additions and 34 deletions
|
@ -122,10 +122,14 @@ window.createMap = function () {
|
|||
mipmaps = res.mipmaps,
|
||||
spawn = res.spawn;
|
||||
|
||||
var args = parseHash(),
|
||||
zoom = parseInt(args['zoom']),
|
||||
x = parseFloat(args['x']),
|
||||
z = parseFloat(args['z']),
|
||||
var x, z, zoom, light;
|
||||
|
||||
var updateParams = function () {
|
||||
var args = parseHash();
|
||||
|
||||
zoom = parseInt(args['zoom']);
|
||||
x = parseFloat(args['x']);
|
||||
z = parseFloat(args['z']);
|
||||
light = parseInt(args['light']);
|
||||
|
||||
if (isNaN(zoom))
|
||||
|
@ -134,6 +138,9 @@ window.createMap = function () {
|
|||
x = spawn.x;
|
||||
if (isNaN(z))
|
||||
z = spawn.z;
|
||||
};
|
||||
|
||||
updateParams();
|
||||
|
||||
var map = L.map('map', {
|
||||
center: [-z, x],
|
||||
|
@ -169,11 +176,10 @@ window.createMap = function () {
|
|||
});
|
||||
|
||||
var makeHash = function () {
|
||||
var zoom = map.getZoom(),
|
||||
center = map.getCenter(),
|
||||
x = Math.round(center.lng),
|
||||
z = Math.round(-center.lat),
|
||||
ret = '#x='+x+'&z='+z+'&zoom='+zoom;
|
||||
var ret = '#x='+x+'&z='+z;
|
||||
|
||||
if (zoom != 0)
|
||||
ret += '&zoom='+zoom;
|
||||
|
||||
if (map.hasLayer(lightLayer))
|
||||
ret += '&light=1';
|
||||
|
@ -185,30 +191,27 @@ window.createMap = function () {
|
|||
window.location.hash = makeHash();
|
||||
};
|
||||
|
||||
var refreshHash = function () {
|
||||
zoom = map.getZoom();
|
||||
center = map.getCenter();
|
||||
x = Math.round(center.lng);
|
||||
z = Math.round(-center.lat);
|
||||
|
||||
updateHash();
|
||||
}
|
||||
|
||||
updateHash();
|
||||
|
||||
map.on('moveend', updateHash);
|
||||
map.on('zoomend', updateHash);
|
||||
map.on('layeradd', updateHash);
|
||||
map.on('layerremove', updateHash);
|
||||
map.on('moveend', refreshHash);
|
||||
map.on('zoomend', refreshHash);
|
||||
map.on('layeradd', refreshHash);
|
||||
map.on('layerremove', refreshHash);
|
||||
|
||||
window.onhashchange = function () {
|
||||
if (window.location.hash == makeHash())
|
||||
return;
|
||||
|
||||
var args = parseHash(),
|
||||
center = map.getCenter(),
|
||||
zoom = parseInt(args['zoom']),
|
||||
x = parseFloat(args['x']),
|
||||
z = parseFloat(args['z']),
|
||||
light = parseInt(args['light']);
|
||||
|
||||
if (isNaN(zoom))
|
||||
zoom = map.getZoom();
|
||||
if (isNaN(x))
|
||||
x = center.lng;
|
||||
if (isNaN(z))
|
||||
z = -center.lat;
|
||||
updateParams();
|
||||
|
||||
map.setView([-z, x], zoom);
|
||||
|
||||
|
@ -216,6 +219,8 @@ window.createMap = function () {
|
|||
map.addLayer(lightLayer);
|
||||
else
|
||||
map.removeLayer(lightLayer);
|
||||
|
||||
updateHash();
|
||||
};
|
||||
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue