48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
import Map from '../src/ol/Map.js';
|
|
import View from '../src/ol/View.js';
|
|
import {Image as ImageLayer, Tile as TileLayer} from '../src/ol/layer.js';
|
|
import ImageWMS from '../src/ol/source/ImageWMS.js';
|
|
import OSM from '../src/ol/source/OSM.js';
|
|
|
|
const wmsSource = new ImageWMS({
|
|
url: 'https://ahocevar.com/geoserver/wms',
|
|
params: {'LAYERS': 'topp:states'},
|
|
ratio: 1,
|
|
serverType: 'geoserver'
|
|
});
|
|
|
|
const updateLegend = function(resolution) {
|
|
const graphicUrl = wmsSource.getLegendUrl(resolution);
|
|
const img = document.getElementById('legend');
|
|
img.src = graphicUrl;
|
|
};
|
|
|
|
const layers = [
|
|
new TileLayer({
|
|
source: new OSM()
|
|
}),
|
|
new ImageLayer({
|
|
extent: [-13884991, 2870341, -7455066, 6338219],
|
|
source: wmsSource
|
|
})
|
|
];
|
|
|
|
const map = new Map({
|
|
layers: layers,
|
|
target: 'map',
|
|
view: new View({
|
|
center: [-10997148, 4569099],
|
|
zoom: 4
|
|
})
|
|
});
|
|
|
|
// Initial legend
|
|
const resolution = map.getView().getResolution();
|
|
updateLegend(resolution);
|
|
|
|
// Update the legend when the resolution changes
|
|
map.getView().on('change:resolution', function(event) {
|
|
const resolution = event.target.getResolution();
|
|
updateLegend(resolution);
|
|
});
|