Example of using WFS with a BBOX strategy.
A Pen by Nico Mandery on CodePen.
Example of using WFS with a BBOX strategy.
A Pen by Nico Mandery on CodePen.
| <div id="map" class="map"></div> | |
| <div id="info"> </div> |
| var wmsSource = new ol.source.TileWMS({ | |
| url: "https://geoservice.dlr.de/eoc/zki/service/wms", | |
| params: { | |
| LAYERS: "riesgos_workshop:flood", | |
| TILED: true, | |
| VERSION: "1.1.0" /* geoserver issue. getfeatureinf works only on 1.1.0*/ | |
| }, | |
| serverType: "geoserver", | |
| crossOrigin: "anonymous" | |
| }); | |
| var wmsLayer = new ol.layer.Tile({ | |
| source: wmsSource | |
| }); | |
| var bg = new ol.layer.Tile({ | |
| visible: true, | |
| opacity: 1.0, | |
| title: "EOC Base Overlay", | |
| source: new ol.source.WMTS({ | |
| attributions: [ | |
| new ol.Attribution({ | |
| html: | |
| '| Baseoverlay: Data © <a href="http://openstreetmap.org">OpenStreetMap contributors</a> and <a href="../about#basemaps">others</a>, Rendering © <a href="http://www.dlr.de/eoc">DLR/EOC</a>' | |
| }) | |
| ], | |
| url: "https://tiles.geoservice.dlr.de/service/wmts", | |
| // crossOrigin: 'Anonymous', | |
| layer: "eoc:baseoverlay", | |
| matrixSet: "EPSG:3857", | |
| format: "image/png", | |
| projection: ol.proj.get("EPSG:3857"), | |
| tileGrid: new ol.tilegrid.WMTS({ | |
| extent: [-20037508.3428, -20037508.3428, 20037508.3428, 20037508.3428], | |
| origin: [-20037508.3428, 20037508.3428], | |
| resolutions: [ | |
| 156543.03392811998, | |
| 78271.51696419998, | |
| 39135.758481959994, | |
| 19567.879241008, | |
| 9783.939620504, | |
| 4891.969810252, | |
| 2445.984905126, | |
| 1222.9924525644, | |
| 611.4962262807999, | |
| 305.74811314039994, | |
| 152.87405657047998, | |
| 76.43702828523999, | |
| 38.21851414248, | |
| 19.109257071295996, | |
| 9.554628535647998, | |
| 4.777314267823999, | |
| 2.3886571339119995 | |
| ], | |
| matrixIds: [ | |
| "EPSG:3857:0", | |
| "EPSG:3857:1", | |
| "EPSG:3857:2", | |
| "EPSG:3857:3", | |
| "EPSG:3857:4", | |
| "EPSG:3857:5", | |
| "EPSG:3857:6", | |
| "EPSG:3857:7", | |
| "EPSG:3857:8", | |
| "EPSG:3857:9", | |
| "EPSG:3857:10", | |
| "EPSG:3857:11", | |
| "EPSG:3857:12", | |
| "EPSG:3857:13", | |
| "EPSG:3857:14", | |
| "EPSG:3857:15", | |
| "EPSG:3857:16" | |
| ], | |
| tileSize: [256, 256] | |
| }), | |
| wrapX: true | |
| }) | |
| }); | |
| var view = new ol.View({ | |
| center: [-7201856.245971127, -1992342.4195436193], | |
| maxZoom: 19, | |
| zoom: 3 | |
| }); | |
| var map = new ol.Map({ | |
| layers: [bg, wmsLayer], | |
| target: document.getElementById("map"), | |
| view: view | |
| }); | |
| map.on("singleclick", function(evt) { | |
| document.getElementById("info").innerHTML = ""; | |
| var viewResolution = /** @type {number} */ (view.getResolution()); | |
| var url = wmsSource.getGetFeatureInfoUrl( | |
| evt.coordinate, | |
| viewResolution, | |
| "EPSG:3857", | |
| { INFO_FORMAT: "text/html" } | |
| ); | |
| if (url) { | |
| fetch(url) | |
| .then(function(response) { | |
| return response.text(); | |
| }) | |
| .then(function(text) { | |
| document.getElementById("info").innerHTML = text; | |
| }); | |
| } | |
| }); | |
| map.on("pointermove", function(evt) { | |
| if (evt.dragging) { | |
| return; | |
| } | |
| var pixel = map.getEventPixel(evt.originalEvent); | |
| var hit = map.forEachLayerAtPixel(pixel, function() { | |
| return true; | |
| }); | |
| map.getTargetElement().style.cursor = hit ? "pointer" : ""; | |
| }); |
| <script src="https://openlayers.org/en/v4.6.5/build/ol.js"></script> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.4/fetch.js"></script> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.5.1/bluebird.js"></script> |
| <link href="https://openlayers.org/en/v4.6.5/css/ol.css" rel="stylesheet" /> |