diff --git a/main.js b/main.js index d8b0b1f..510e50d 100644 --- a/main.js +++ b/main.js @@ -105,7 +105,7 @@ for (let category of layerCategories) { for (let layer of category.layers) { const li = document.createElement("li"); li.innerHTML = ` - + `; li.querySelector("input").addEventListener("change", function(e){ if (e.target.checked) { @@ -129,10 +129,27 @@ for (let category of layerCategories) { } if (layer.enabled) { map.addLayer(layer.layer); + // I'm a bit rusty on the definitions, but this might be O(n^2), and definitely wouldn't have to be. + // Keep checkbox state in sync + for (const label of document.querySelectorAll("aside label")) { + if (label.innerText.trim() == layer.name) { + label.querySelector("input[type=checkbox]").checked = true; + } + } } } } +let location_set = false; + +if (urlLayers.length > 0) { + location_set = true; + map.once('loadend', function() { + const layers = map.getLayers(); + map.getView().fit(layers.item(layers.getLength() - 1).getSource().getExtent(), {padding: [20, 20, 20, 20]}); + }); +} + function objectToTable(o) { // TODO: hack hack hack let table = ``;