based on this tutorial (http://leafletjs.com/examples/layers-control.html), I've tried to add 2 layers for a WMS based solution. In the tutorial, they managed to add 2 layers (Street and GrayScales) and switch between them.
My code:
function getDefaultWmsValues() {
var layer1, layer2;
layer2= 'Street';
layer1= 'Satellite';
return {
url: "http://dummy.com/wms/service",
mapCenter: [1, 2],
startZoom: 15,
layer: [layer1,layer2],
imageFormat: 'image/jpeg',
autor: "WMS Dummy",
maxZoom: 17,
minZoom: 12,
version: '1.1.0',
interactiveMapBoundaries: [[123, 1234], [1245.164611, 17890.023279]],
usedProjection: L.CRS.EPSG4326
};
}
function getWmsConfig(wmsDefaultValues) {
return L.tileLayer.wms(wmsDefaultValues.url, {
layers: wmsDefaultValues.layer,
format: wmsDefaultValues.imageFormat,
version: wmsDefaultValues.version,
maxZoom: wmsDefaultValues.maxZoom,
minZoom: wmsDefaultValues.minZoom,
crs: wmsDefaultValues.usedProjection,
attribution: wmsDefaultValues.autor
});
}
function createLeafletMap(wmsDefaultValues) {
var map = L.map('map', {center: wmsDefaultValues.mapCenter, zoom: wmsDefaultValues.startZoom});
var wmsConfig = getWmsConfig(wmsDefaultValues);
wmsConfig.addTo(map);
L.control.scale().addTo(map);
map.setMaxBounds(wmsDefaultValues.interactiveMapBoundaries);
L.marker(wmsDefaultValues.mapCenter).addTo(map);
var baseMaps = {
"Layer Name 1": 'Satellite',
"Layer Name 2": 'Street'
};
L.control.layers(baseMaps).addTo(map);
return map;
}
var wmsDefaultValues = getDefaultWmsValues();
var leafletMap = createLeafletMap(wmsDefaultValues);
In the function getDefaultWmsValues(), I have 2 valid layers, layer1 and layer2. If I let either => layer: [layer1] or layer: [layer2], my code will alternatively show the desired layer.
However, when I try to configure both to be able to switch with layer: [layer1,layer2], only one of the layer will be shown and the widget to switch between layers like in the tutorial (Grayscale / Street) seems to be broken=> it will only show one of the layers...
Any help would be very much appreciated!
PS: I've replaced variables with dummy data, but my code is really built like this snippet...