1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| import ImageLayer from 'ol/layer/Image.js'; import ImageWMS from 'ol/source/ImageWMS.js'; import Map from 'ol/Map.js'; import Projection from 'ol/proj/Projection.js'; import View from 'ol/View.js'; import proj4 from 'proj4'; import {ScaleLine, defaults as defaultControls} from 'ol/control.js'; import {fromLonLat} from 'ol/proj.js'; import {register} from 'ol/proj/proj4.js';
proj4.defs( 'EPSG:21781', '+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 ' + '+x_0=600000 +y_0=200000 +ellps=bessel ' + '+towgs84=660.077,13.551,369.344,2.484,1.783,2.939,5.66 +units=m +no_defs' ); register(proj4);
const projection = new Projection({ code: 'EPSG:21781', extent: [485869.5728, 76443.1884, 837076.5648, 299941.7864], });
const extent = [420000, 30000, 900000, 350000]; const layers = [ new ImageLayer({ extent: extent, source: new ImageWMS({ url: 'https://wms.geo.admin.ch/', crossOrigin: 'anonymous', attributions: '© <a href="https://shop.swisstopo.admin.ch/en/products/maps/national/lk1000"' + 'target="_blank">Pixelmap 1:1000000 / geo.admin.ch</a>', params: { 'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale', 'FORMAT': 'image/jpeg', }, serverType: 'mapserver', }), }), new ImageLayer({ extent: extent, source: new ImageWMS({ url: 'https://wms.geo.admin.ch/', crossOrigin: 'anonymous', attributions: '© <a href="https://www.hydrodaten.admin.ch/en/notes-on-the-flood-alert-maps.html"' + 'target="_blank">Flood Alert / geo.admin.ch</a>', params: {'LAYERS': 'ch.bafu.hydroweb-warnkarte_national'}, serverType: 'mapserver', }), }), ];
const map = new Map({ controls: defaultControls().extend([new ScaleLine()]), layers: layers, target: 'map', view: new View({ projection: projection, center: fromLonLat([8.23, 46.86], projection), extent: extent, zoom: 2, }), });
|