0

Misc leaflet fixes

This commit is contained in:
Andrew Chin
2016-06-29 22:59:54 -04:00
parent c0875a9ceb
commit 6d3062fade
2 changed files with 49 additions and 14 deletions

View File

@@ -15,6 +15,9 @@ overviewer.worldCtrl = null;
overviewer.layerCtrl = null; overviewer.layerCtrl = null;
overviewer.current_world = null; overviewer.current_world = null;
/// Records the current layer by name (if any) of each world
overviewer.current_layer = {};
overviewer.collections = { overviewer.collections = {
/** /**
@@ -37,6 +40,8 @@ overviewer.collections = {
*/ */
'centers': {}, 'centers': {},
'overlays': {},
'worldViews': [], 'worldViews': [],
'haveSigns': false, 'haveSigns': false,

View File

@@ -60,17 +60,29 @@ overviewer.util = {
overviewer.collections.centers[overviewer.current_world][0] = overviewer.map.getCenter(); overviewer.collections.centers[overviewer.current_world][0] = overviewer.map.getCenter();
overviewer.collections.centers[overviewer.current_world][1] = overviewer.map.getZoom(); overviewer.collections.centers[overviewer.current_world][1] = overviewer.map.getZoom();
overviewer.layerCtrl.remove();
overviewer.layerCtrl = L.control.layers(
overviewer.collections.mapTypes[selected_world],
overviewer.collections.overlays[selected_world],
{collapsed: false})
.addTo(overviewer.map);
for (var world_name in overviewer.collections.mapTypes) { for (var world_name in overviewer.collections.mapTypes) {
for (var tset_name in overviewer.collections.mapTypes[world_name]) { for (var tset_name in overviewer.collections.mapTypes[world_name]) {
var lyr = overviewer.collections.mapTypes[world_name][tset_name]; var lyr = overviewer.collections.mapTypes[world_name][tset_name];
if (world_name == selected_world) { if (world_name != selected_world) {
overviewer.layerCtrl.addBaseLayer(lyr, tset_name); if (overviewer.map.hasLayer(lyr))
overviewer.map.addLayer(lyr); overviewer.map.removeLayer(lyr);
} else {
overviewer.layerCtrl.removeLayer(lyr);
overviewer.map.removeLayer(lyr);
} }
}
for (var tset_name in overviewer.collections.overlays[world_name]) {
var lyr = overviewer.collections.overlays[world_name][tset_name];
if (world_name != selected_world) {
if (overviewer.map.hasLayer(lyr))
overviewer.map.removeLayer(lyr);
}
} }
} }
@@ -78,6 +90,9 @@ overviewer.util = {
overviewer.map.setView(center[0], center[1]); overviewer.map.setView(center[0], center[1]);
overviewer.current_world = selected_world; overviewer.current_world = selected_world;
if (overviewer.collections.mapTypes[selected_world])
overviewer.map.addLayer(overviewer.collections.mapTypes[selected_world][overviewer.current_layer[selected_world]]);
}, },
onAdd: function() { onAdd: function() {
console.log("onAdd mycontrol"); console.log("onAdd mycontrol");
@@ -92,6 +107,10 @@ overviewer.util = {
crs: L.CRS.Simple, crs: L.CRS.Simple,
minZoom: 0}); minZoom: 0});
overviewer.map.on('baselayerchange', function(ev) {
overviewer.current_layer[overviewer.current_world] = ev.name;
});
var tset = overviewerConfig.tilesets[0]; var tset = overviewerConfig.tilesets[0];
overviewer.map.on("click", function(e) { overviewer.map.on("click", function(e) {
@@ -107,6 +126,7 @@ overviewer.util = {
$.each(overviewerConfig.worlds, function(idx, world_name) { $.each(overviewerConfig.worlds, function(idx, world_name) {
overviewer.collections.mapTypes[world_name] = {} overviewer.collections.mapTypes[world_name] = {}
overviewer.collections.overlays[world_name] = {}
overviewer.worldCtrl.addWorld(world_name); overviewer.worldCtrl.addWorld(world_name);
}); });
@@ -121,17 +141,27 @@ overviewer.util = {
}); });
myLayer.getTileUrl = overviewer.gmap.getTileUrlGenerator(obj.path, obj.base, obj.imgextension); myLayer.getTileUrl = overviewer.gmap.getTileUrlGenerator(obj.path, obj.base, obj.imgextension);
overviewer.collections.mapTypes[obj.world][obj.name] = myLayer; if (obj.isOverlay) {
overviewer.collections.overlays[obj.world][obj.name] = myLayer;
} else {
overviewer.collections.mapTypes[obj.world][obj.name] = myLayer;
}
overviewer.collections.centers[obj.world] = [ if (typeof(obj.spawn) == "object") {
overviewer.util.fromWorldToLatLng(obj.spawn[0], obj.spawn[1], obj.spawn[2], obj), var latlng = overviewer.util.fromWorldToLatLng(obj.spawn[0], obj.spawn[1], obj.spawn[2], obj);
1 overviewer.collections.centers[obj.world] = [ latlng, 1 ];
]; } else {
overviewer.collections.centers[obj.world] = [ [0, 0], 1 ];
}
}); });
overviewer.layerCtrl = L.control.layers(overviewer.collections.mapTypes[overviewerConfig.worlds[0]], {}, {collapsed: false}).addTo(overviewer.map); overviewer.layerCtrl = L.control.layers(
overviewer.collections.mapTypes[overviewerConfig.worlds[0]],
overviewer.collections.overlays[overviewerConfig.worlds[0]],
{collapsed: false})
.addTo(overviewer.map);
overviewer.current_world = overviewerConfig.worlds[0]; overviewer.current_world = overviewerConfig.worlds[0];
//myLayer.addTo(overviewer.map); //myLayer.addTo(overviewer.map);