With more than 40 pull requests, the 10.4 release brings performance improvements, bug fixes, better TypeScript generics and new features. New features include a convenience Image layer loader for debugging MapServer map files using the MapServer CGI API, and an experimental WebGLVectorTile layer.
Upgrade notes
Deprecation of ol/layer/WebGLPoints
Use ol/layer/WebGLVector instead. Besides rendering points it will also render lines and polygons.
In most cases this is a drop-in replacement. To use filtering the style and filter have to be in a nested object.
WebGL renderers used to rely on the WebGLStyle type in the ol/style/webgl module. This is not the case anymore, all renderers now rely on FlatStyle from ol/style/flat.
-import type { WebGLStyle } from 'ol/style/webgl';
+import type { FlatStyle } from 'ol/style/flat';
ol-mapbox-style compatibility
This version of OpenLayers is only compatible with ol-mapbox-style@12.4.0 or higher.
Returning false from a one-time listener added with once
Returning false from the listener function will now stop propagation, when the listener is added with once.
Previously this only worked with the on method.
The filter option for WebGLPointsLayer has changed
The filter option for the WebGLPointsLayer must now be specified alongside other options instead of being part of the style object. Note that the WebGLPointsLayer is not part of the stable API and is subject to breaking changes between major releases.
We're planning to stop providing barrel files, which will impact how you import modules from OpenLayers. See #16461 for details. To get your code ready for that upcoming change, you can already help us test the replace-barrel-imports codemod from the @openlayers/codemod package.
List of all changes
Updates for the 10.3.1 release by @jahow in https://github.com/openlayers/openlayers/pull/16435
Bump pmtiles from 3.2.1 to 4.0.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16418
Skip tiles not in rotated viewport by @MoonE in https://github.com/openlayers/openlayers/pull/16443
Intersection performance improvements by @MoonE in https://github.com/openlayers/openlayers/pull/16442
Remove duplicate property from CanvasTileLayerRenderer by @MoonE in https://github.com/openlayers/openlayers/pull/16445
Updates to work with ESLint 9 by @tschaub in https://github.com/openlayers/openlayers/pull/16441
Bump dawidd6/action-download-artifact from 6 to 7 by @dependabot in https://github.com/openlayers/openlayers/pull/16421
Bump @types/geojson from 7946.0.14 to 7946.0.15 by @dependabot in https://github.com/openlayers/openlayers/pull/16447
Bump puppeteer from 23.9.0 to 23.10.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16448
Bump rollup from 4.28.0 to 4.28.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16449
Bump mocha from 10.8.2 to 11.0.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16450
Bump webpack from 5.96.1 to 5.97.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16451
Bump express from 4.21.1 to 4.21.2 by @dependabot in https://github.com/openlayers/openlayers/pull/16452
Change tile state to EMPTY when releasing tiles by @ahocevar in https://github.com/openlayers/openlayers/pull/16455
fix: check for ImageBitmap support in ImageWrapper load by @rwd in https://github.com/openlayers/openlayers/pull/16458
Remove expandUrl re-export by @ahocevar in https://github.com/openlayers/openlayers/pull/16459
Update High DPI WMTS capabilities url by @mike-000 in https://github.com/openlayers/openlayers/pull/16463
Replace barrel imports in examples by @tschaub in https://github.com/openlayers/openlayers/pull/16465
Consistent use of relative imports by @tschaub in https://github.com/openlayers/openlayers/pull/16464
Lazily initialize VectorStyleRenderer Worker by @M393 in https://github.com/openlayers/openlayers/pull/16460
Remove IE11 only MSFullscreenChange event handling by @MoonE in https://github.com/openlayers/openlayers/pull/16471
Templatize TileQueue by @MoonE in https://github.com/openlayers/openlayers/pull/16470
Returning false from once-listener should stop event propagation by @MoonE in https://github.com/openlayers/openlayers/pull/16469
Bump puppeteer from 23.10.1 to 23.10.4 by @dependabot in https://github.com/openlayers/openlayers/pull/16473
Bump marked from 15.0.3 to 15.0.4 by @dependabot in https://github.com/openlayers/openlayers/pull/16474
New Contributors
@rwd made their first contribution in https://github.com/openlayers/openlayers/pull/16458
@edsonmsj made their first contribution in https://github.com/openlayers/openlayers/pull/16468
@MelkorCC made their first contribution in https://github.com/openlayers/openlayers/pull/16488
@bilskip made their first contribution in https://github.com/openlayers/openlayers/pull/16522
@viktorijasolovjova made their first contribution in https://github.com/openlayers/openlayers/pull/16506
@jcphill made their first contribution in https://github.com/openlayers/openlayers/pull/16490
@geographika made their first contribution in https://github.com/openlayers/openlayers/pull/16591
Full Changelog: https://github.com/openlayers/openlayers/compare/v10.3.1...v10.4.0
Bump @rollup/plugin-commonjs from 28.0.1 to 28.0.2 by @dependabot in https://github.com/openlayers/openlayers/pull/16478
Bump webpack-dev-server from 5.1.0 to 5.2.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16476
Bump @typescript-eslint/parser from 8.17.0 to 8.18.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16479
Bump eslint from 9.16.0 to 9.17.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16477
Bump pmtiles from 4.0.1 to 4.1.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16472
Fix function or null/undefined types by @MoonE in https://github.com/openlayers/openlayers/pull/16481
Fix return type of ImageObjectPromiseLoader by @MoonE in https://github.com/openlayers/openlayers/pull/16480
Include site directory in npm run lint by @MoonE in https://github.com/openlayers/openlayers/pull/16482
Bump @rollup/plugin-node-resolve from 15.3.0 to 16.0.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16475
Add validation to prevent incorrect calculations when handling undefined values in the updateElement_ method by @edsonmsj in https://github.com/openlayers/openlayers/pull/16468
Clear renderer on layer source changes by @MelkorCC in https://github.com/openlayers/openlayers/pull/16488
Update test docs by @ahocevar in https://github.com/openlayers/openlayers/pull/16496
Bump earcut from 3.0.0 to 3.0.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16501
Bump rollup from 4.28.1 to 4.29.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16502
Bump puppeteer from 23.10.4 to 23.11.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16503
Bump webpack-cli from 5.1.4 to 6.0.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16504
Bump @typescript-eslint/parser from 8.18.0 to 8.18.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16505
Merge style/webgl and style/flat formats into a single one by @jahow in https://github.com/openlayers/openlayers/pull/16492
An EMPTY tile stays EMPTY by @ahocevar in https://github.com/openlayers/openlayers/pull/16513
Only peek tiles we're not sure we're going to use by @ahocevar in https://github.com/openlayers/openlayers/pull/16509
Bump @turf/length from 7.1.0 to 7.2.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16515
Bump @turf/along from 7.1.0 to 7.2.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16516
Bump @typescript-eslint/parser from 8.18.1 to 8.18.2 by @dependabot in https://github.com/openlayers/openlayers/pull/16517
Fix for undefined renderedProjection in web worker's offscreen canvas layer example by @bilskip in https://github.com/openlayers/openlayers/pull/16522
Fix VectorTile source removeSourceTiles by @MoonE in https://github.com/openlayers/openlayers/pull/16427
Ignore site build directory by @ahocevar in https://github.com/openlayers/openlayers/pull/16518
Ignore empty tiles to avoid endless loop by @mike-000 in https://github.com/openlayers/openlayers/pull/16519
Fix considering insertVertexCondition on segment hover in modify interaction by @viktorijasolovjova in https://github.com/openlayers/openlayers/pull/16506
Reset layer style when original GeoTIFF source is ready by @jcphill in https://github.com/openlayers/openlayers/pull/16490
Fix WebGLPoints layer with non-point geometry by @MoonE in https://github.com/openlayers/openlayers/pull/16437
Bump rollup from 4.29.1 to 4.30.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16528
Bump @typescript-eslint/parser from 8.18.2 to 8.19.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16527
Bump marked from 15.0.4 to 15.0.5 by @dependabot in https://github.com/openlayers/openlayers/pull/16526
Bump @types/proj4 from 2.5.5 to 2.5.6 by @dependabot in https://github.com/openlayers/openlayers/pull/16525
Deprecate ol/layer/WebGLPoints by @MoonE in https://github.com/openlayers/openlayers/pull/16529
Introduce a WebGLVectorTileLayer class by @jahow in https://github.com/openlayers/openlayers/pull/16524
Make forEachFeatureAtCoordinate work when decluttering without features by @ahocevar in https://github.com/openlayers/openlayers/pull/16539
Bump typescript from 5.7.2 to 5.7.3 by @dependabot in https://github.com/openlayers/openlayers/pull/16547
Bump puppeteer from 23.11.1 to 24.0.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16548
Bump @typescript-eslint/parser from 8.19.0 to 8.19.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16549
Bump eslint from 9.17.0 to 9.18.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16550
Bump marked from 15.0.5 to 15.0.6 by @dependabot in https://github.com/openlayers/openlayers/pull/16552
Bump @octokit/rest from 21.0.2 to 21.1.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16553
Add test for XYZ source retina tile reprojection by @mike-000 in https://github.com/openlayers/openlayers/pull/16540
Bump rollup from 4.30.0 to 4.30.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16551
Register move and up event on parent map's owner document by @ahocevar in https://github.com/openlayers/openlayers/pull/16545
Set WMS TRANSPARENT parameter default value to the correct value according to the specification by @MelkorCC in https://github.com/openlayers/openlayers/pull/16560
Bump puppeteer from 24.0.0 to 24.1.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16565
Bump rollup from 4.30.1 to 4.31.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16567
Bump @typescript-eslint/parser from 8.19.1 to 8.20.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16566
Bump fs-extra from 11.2.0 to 11.3.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16568
Bump pmtiles from 4.1.0 to 4.2.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16569
Do not fail when reprojecting geometries with empty coordinate arrays by @ahocevar in https://github.com/openlayers/openlayers/pull/16556
Fix text background rendering by @ahocevar in https://github.com/openlayers/openlayers/pull/16557
WebGL / Filter geometries before processing them for rendering (reworked) by @jahow in https://github.com/openlayers/openlayers/pull/16564
Re-arm TypeScript libcheck tests, fix TypeScript issues by @ahocevar in https://github.com/openlayers/openlayers/pull/16579
Bump @types/geojson from 7946.0.15 to 7946.0.16 by @dependabot in https://github.com/openlayers/openlayers/pull/16580
Bump ol-stac from 1.0.0-beta.10 to 1.0.0-rc.5 by @dependabot in https://github.com/openlayers/openlayers/pull/16581
Bump mocha from 11.0.1 to 11.1.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16582
Bump @typescript-eslint/parser from 8.20.0 to 8.21.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16583
Bump color-space from 2.0.1 to 2.1.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16584
Bump puppeteer from 24.1.0 to 24.1.1 by @dependabot in https://github.com/openlayers/openlayers/pull/16585
Bump dawidd6/action-download-artifact from 7 to 8 by @dependabot in https://github.com/openlayers/openlayers/pull/16588
Bump eslint from 9.18.0 to 9.19.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16586
Bump rollup from 4.31.0 to 4.32.0 by @dependabot in https://github.com/openlayers/openlayers/pull/16587
Add color-rgba types by @MoonE in https://github.com/openlayers/openlayers/pull/16590
New ImageMapServer source by @geographika in https://github.com/openlayers/openlayers/pull/16591