map: Also include map layer in URL
So far, only the overlay layers had been included. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
parent
2afc9e549d
commit
fae6e858b7
|
@ -5,7 +5,6 @@ var tilesosmorg = new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y
|
|||
maxNativeZoom: 19,
|
||||
maxZoom: 22
|
||||
});
|
||||
map.addLayer(tilesosmorg);
|
||||
var tilesosmde = new L.TileLayer('https://{s}.osm.rrze.fau.de/osmde/{z}/{x}/{y}.png', {
|
||||
attribution: '<a href="https://www.openstreetmap.org/copyright">© Openstreetmap Contributors</a>',
|
||||
maxNativeZoom: 19,
|
||||
|
@ -64,6 +63,7 @@ function update_permalink() {
|
|||
var zoom = map.getZoom();
|
||||
window.history.replaceState({}, document.title,
|
||||
mapurl + '?mapcenter=' + pos.lat.toFixed(5) + ',' + pos.lng.toFixed(5) + ',' + zoom
|
||||
+ '&source=' + (map.hasLayer(tilesosmorg) ? 1 : (map.hasLayer(tilesosmde) ? 2 : 3))
|
||||
+ '&layers=' + (map.hasLayer(routers)|0) + ','
|
||||
+ (map.hasLayer(routers_v2)|0) + ','
|
||||
+ (map.hasLayer(routers_local)|0) + ','
|
||||
|
@ -75,16 +75,36 @@ function update_permalink() {
|
|||
}
|
||||
}
|
||||
|
||||
function initialMap() {
|
||||
map.addLayer(tilesosmorg);
|
||||
}
|
||||
function initialLayers() {
|
||||
routers.addTo(map);
|
||||
routers_v2.addTo(map);
|
||||
routers_local.addTo(map);
|
||||
}
|
||||
function setupMap(getargs) {
|
||||
var getsrc = getargs.replace("source=", "");
|
||||
if(getsrc==2) { map.addLayer(tilesosmde); }
|
||||
else if(getsrc==3) { map.addLayer(tilestfod); }
|
||||
else { map.addLayer(tilesosmorg); }
|
||||
}
|
||||
function setupLayers(getargs) {
|
||||
var getlayers = getargs.replace("layers=", "").split(",");
|
||||
if(getlayers[0]==1) { routers.addTo(map); }
|
||||
if(getlayers[1]==1) { routers_v2.addTo(map); }
|
||||
if(getlayers[2]==1) { routers_local.addTo(map); }
|
||||
if(getlayers[3]==1) { hoods.addTo(map); }
|
||||
if(getlayers[4]==1) { hoods_v2.addTo(map); }
|
||||
if(getlayers[5]==1) { hoods_poly.addTo(map); }
|
||||
if(getlayers[6]==1) { popuplayer.addTo(map); }
|
||||
}
|
||||
|
||||
map.on('moveend', update_permalink);
|
||||
map.on('zoomend', update_permalink);
|
||||
map.on('overlayadd', update_permalink);
|
||||
map.on('overlayremove', update_permalink);
|
||||
map.on('baselayerchange', update_permalink);
|
||||
|
||||
map.on('click', function(pos) {
|
||||
// height = width of world in px
|
||||
|
|
|
@ -36,21 +36,28 @@
|
|||
var getargs = window.location.search.replace("?mapcenter=", "").split("&");
|
||||
var maploc = getargs[0].split(",");
|
||||
map.setView([maploc[0], maploc[1]], maploc[2]);
|
||||
if (getargs.length > 1 && getargs[1].match("layers=")) {
|
||||
var getlayers = getargs[1].replace("layers=", "").split(",");
|
||||
if(getlayers[0]==1) { routers.addTo(map); }
|
||||
if(getlayers[1]==1) { routers_v2.addTo(map); }
|
||||
if(getlayers[2]==1) { routers_local.addTo(map); }
|
||||
if(getlayers[3]==1) { hoods.addTo(map); }
|
||||
if(getlayers[4]==1) { hoods_v2.addTo(map); }
|
||||
if(getlayers[5]==1) { hoods_poly.addTo(map); }
|
||||
if(getlayers[6]==1) { popuplayer.addTo(map); }
|
||||
if (getargs.length > 1 && getargs[1].match("source=")) {
|
||||
setupMap(getargs[1]);
|
||||
if (getargs.length > 2 && getargs[2].match("layers=")) {
|
||||
setupLayers(getargs[2]);
|
||||
} else {
|
||||
initialLayers();
|
||||
}
|
||||
} else if (getargs.length > 1 && getargs[1].match("layers=")) {
|
||||
setupLayers(getargs[1]);
|
||||
if (getargs.length > 2 && getargs[2].match("source=")) {
|
||||
setupMap(getargs[2]);
|
||||
} else {
|
||||
initialMap();
|
||||
}
|
||||
} else {
|
||||
initialMap();
|
||||
initialLayers();
|
||||
}
|
||||
}
|
||||
else {
|
||||
map.setView([49.824, 10.786], 9);
|
||||
initialMap();
|
||||
initialLayers();
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -90,6 +90,7 @@
|
|||
</script>
|
||||
<script src="{{ url_for('static', filename='js/map.js') }}"></script>
|
||||
<script type="text/javascript">
|
||||
initialMap();
|
||||
initialLayers();
|
||||
{%- if router.lng and router.lat %}
|
||||
var router_pos = [{{ router.lat }}, {{ router.lng }}];
|
||||
|
|
Loading…
Reference in New Issue