Releases: openlayers/openlayers
v10.7.0
With 40 pull requests over a period of almost 5 months, this long awaited release brings important bug fixes as well as exiting new features. The highlights are
- Several WebGL renderer bug fixes, along with improved memory management
- Updates for the Polyline feature format
- API improvements and bug fixes on the Select, Extent and Snap interactions
- Reprojection support for VectorTile layers
- Full web worker support for
Map, with an (Offscreen)Canvas as map target - Fixed cache and rendering for reprojected raster/image tile layers
- Several updated and new examples, including a globe-like map with Equal Earth projection
Upgrade notes
Deprecation of ol/array's stableSort
Sorting is guaranteed to be stable since ECMAScript 2019.
// Before
stableSort(arr, compareFnc);// After
arr.sort(compareFnc);Deprecation of functions in ol/format/Polyline
The following functions have been deprecated without replacement:
- decodeDeltas
- encodeDeltas
- decodeFloats
- encodeFloats
What's Changed
- Updates for the 10.6.1 release by @ahocevar in #16920
- Properly handle boolean attributes in WebGL expressions by @jahow in #16937
- Improve memory usage by using a single buffer for WebGL layers by @jahow in #16942
- Use bounding box from layer in WMTS capabilities by @remiHau in #16936
- Support url template with {z}/{x}/{y} by @francbartoli in #16956
- ol.format.Polyline fixes by @M393 in #16955
- Adding
setSrcmethod to Icon style by @pakb in #16957 - Select methods for adding/removing features by @laundmo in #16923
- Update ol-stac example by @m-mohr in #16962
- Use WebGL instanced rendering to improve performance and memory usage by @jahow in #16959
- Deprecate polyline encodeDeltas and decodeDeltas by @M393 in #16968
- Fix
ol/style/Textclone()to properly handle non-Fillinstances⦠by @ramzahn in #16969 - Fix offscreen canvas example by @M393 in #16971
- Do not toggle tracing on pointerup after dragging by @ahocevar in #16975
- chore(deps-dev): bump codemirror from 6.0.1 to 6.0.2 by @dependabot[bot] in #16927
- chore(deps-dev): bump webpack-sources from 3.3.2 to 3.3.3 by @dependabot[bot] in #16933
- chore(deps-dev): bump @rollup/plugin-commonjs from 28.0.5 to 28.0.6 by @dependabot[bot] in #16934
- chore(deps-dev): bump mocha from 11.6.0 to 11.7.1 by @dependabot[bot] in #16943
- chore(deps-dev): bump marked from 15.0.12 to 16.0.0 by @dependabot[bot] in #16944
- chore(deps-dev): bump @typescript-eslint/parser from 8.34.0 to 8.36.0 by @dependabot[bot] in #16983
- chore(deps-dev): bump proj4 from 2.17.0 to 2.19.6 by @dependabot[bot] in #16982
- chore(deps-dev): bump rollup from 4.43.0 to 4.45.0 by @dependabot[bot] in #16979
- chore(deps-dev): bump puppeteer from 24.10.1 to 24.12.1 by @dependabot[bot] in #16980
- chore(deps-dev): bump eslint from 9.29.0 to 9.31.0 by @dependabot[bot] in #16981
- Add createCondition and drag options to Extent interaction by @ahocevar in #16978
- chore(deps-dev): bump ol-stac from 1.0.0 to 1.0.2 by @dependabot[bot] in #16989
- chore(deps-dev): bump @typescript-eslint/parser from 8.36.0 to 8.37.0 by @dependabot[bot] in #16990
- chore(deps): bump on-headers and compression by @dependabot[bot] in #16986
- chore(deps-dev): bump marked from 16.0.0 to 16.1.1 by @dependabot[bot] in #16991
- chore(deps-dev): bump rollup from 4.45.0 to 4.45.1 by @dependabot[bot] in #16993
- chore(deps-dev): bump webpack from 5.99.9 to 5.100.2 by @dependabot[bot] in #16992
- chore(deps-dev): bump proj4 and @types/proj4 by @dependabot[bot] in #16988
- chore(deps-dev): bump rollup from 4.45.1 to 4.46.1 by @dependabot[bot] in #17005
- chore(deps-dev): bump eslint from 9.31.0 to 9.32.0 by @dependabot[bot] in #17004
- chore(deps-dev): bump @typescript-eslint/parser from 8.37.0 to 8.38.0 by @dependabot[bot] in #17003
- chore(deps): bump earcut from 3.0.1 to 3.0.2 by @dependabot[bot] in #17001
- chore(deps-dev): bump puppeteer from 24.12.1 to 24.15.0 by @dependabot[bot] in #17000
- chore(deps-dev): bump proj4 from 2.19.7 to 2.19.10 by @dependabot[bot] in #17002
- Add FitOptions to ol/control/ZoomToExtent by @rcaplier in #17009
- Prevent duplicate rendering on vector tiles with
renderMode: 'vector'by @Swiod in #17008 - Remove duplicate unique check by @M393 in #17012
- Missing ol/layer/Group events in apidoc and signature by @M393 in #17011
- Tracing with the Modify intraction by @ahocevar in #16997
- Fix collection unique check with setAt by @M393 in #17013
- chore(deps-dev): bump rollup from 4.46.1 to 4.46.2 by @dependabot[bot] in #17019
- chore(deps-dev): bump marked from 16.1.1 to 16.1.2 by @dependabot[bot] in #17017
- chore(deps-dev): bump webpack from 5.100.2 to 5.101.0 by @dependabot[bot] in #17016
- WebGL / introduce a
stroke-pattern-start-offsetstyle property by @jahow in #16976 - chore(deps-dev): bump puppeteer from 24.15.0 to 24.16.1 by @dependabot[bot] in #17026
- chore(deps-dev): bump es-main from 1.3.0 to 1.4.0 by @dependabot[bot] in #17027
- chore(deps-dev): bump @typescript-eslint/parser from 8.38.0 to 8.39.0 by @dependabot[bot] in #17028
- chore(deps-dev): bump fs-extra from 11.3.0 to 11.3.1 by @dependabot[bot] in #17029
- WebGL / Use only two attributes instead of four for storing the hit detection color by @jahow in #17031
- Add freehand setter and getter to
interaction/Drawby @daboudii in #17022 - Render vector tile image with correct resolution by @ahocevar in #17046
- Ensure duplicate snap events are not registered on the same feature by @megawac in #17054
- Fix glitched rendering in ReprojDataTile by @jahow in #17079
- Enforce origin-when-cross-origin for tile.openstreetmap.org by @ahocevar in #17089
- Snap fixes by @MoonE in #17093
- add osrm plugin to website by @strues-maps in #17097
- Deprecate stable sort by @M393 in #17103
- Enable trusted publishing by @outslept in #17086
- chore(deps-dev): bump puppeteer from 24.16.1 to 24.22.0 by @dependabot[bot] in #17102
- chore(deps-dev): bump jspdf from 3.0.1 to 3.0.2 by @dependabot[bot] in #17105
- chore(deps-dev): bump ol-stac from 1.0.2 to 1.0.5 by @dependabot[bot] in #17101
- chore(deps-dev): bump @typescript-eslint/parser from 8.39.0 to 8.44.0 by @dependabot[bot] in #17100
- chore(deps-dev): bump eslint from 9.32.0 to 9.36.0 by @dependabot[bot] in #17098
- chore(deps-dev): bump marked from 16.1.2 to 16.3.0 by @dependabot[bot] in #17082
- Use the dependabot cooldown config to limit bad package updates by @tschaub in #17108
- chore(deps-dev): bump rollup from 4.46.2 to 4.52.0 by @dependabot[bot] in #17099
- chore(deps-dev): bump fs-extra from 11.3.1 to 11.3.2 by @dependabot[bot] in https://...
v10.6.1
v10.6.0
Summary
The 10.6 release brings new and improved exmaples, a few bugs fixes, and several improvements like better scroll zooming, render quality of overlays and smarter webfont handling. Among the new features are better tile grid debug tiles with custom tile coordinate colors and SLD capability parsing for WMS.
What's Changed
- Updates for the 10.5.0 release by @jahow in #16772
- Fix for a regression issue in snap multipoint by @yjwoo14 in #16773
- Extend doc: Add a warning for attributions constructor argument of At⦠by @sipris in #16777
- Bump express from 4.21.2 to 5.1.0 by @dependabot in #16781
- Bump rollup from 4.38.0 to 4.39.0 by @dependabot in #16785
- Bump typescript from 5.8.2 to 5.8.3 by @dependabot in #16782
- Bump @typescript-eslint/parser from 8.28.0 to 8.29.0 by @dependabot in #16786
- Bump eslint from 9.23.0 to 9.24.0 by @dependabot in #16784
- Bump puppeteer from 24.4.0 to 24.6.0 by @dependabot in #16783
- Add wheel scroll by page. by @kisoso in #16791
- Fix generate-index script for windows by @M393 in #16792
- Handle VectorImage layer with no source by @ahocevar in #16800
- Fix line metric with zero-length segments by @M393 in #16801
- Bump marked from 15.0.7 to 15.0.8 by @dependabot in #16799
- Bump @typescript-eslint/parser from 8.29.0 to 8.29.1 by @dependabot in #16797
- Bump rollup from 4.39.0 to 4.40.0 by @dependabot in #16796
- Bump puppeteer from 24.6.0 to 24.6.1 by @dependabot in #16795
- Add source uid to tile cache key by @ahocevar in #16790
- Avoid instanceof PointerEvent to support cross-document maps by @ahocevar in #16778
- Replace dead comment url with url from wayback machine by @M393 in #16803
- Bump webpack from 5.98.0 to 5.99.5 by @dependabot in #16798
- Bump http-proxy-middleware from 2.0.7 to 2.0.9 by @dependabot in #16804
- Bump eslint from 9.24.0 to 9.25.0 by @dependabot in #16805
- Bump webpack from 5.99.5 to 5.99.6 by @dependabot in #16807
- Bump @typescript-eslint/parser from 8.29.1 to 8.30.1 by @dependabot in #16806
- Prevent Canvas2D warning in hit detection context by @jaa134 in #16810
- Handle change from fill/stroke to no fill/stroke when overlaps: false by @ahocevar in #16815
- Do not round overlay pixel coordinates by @ahocevar in #16809
- Fix formatting of expression apidoc page by @M393 in #16828
- fix(16834): Fix issue in parseImageOffsetProperties generating invalid shaders by @johnnyelwailer in #16835
- WebGL / Fix incorrect scaling of colors when provided by a style variable by @jahow in #16836
- fix(webgl): refactor dashDistanceField function to propery compile with dynamic expressions by @johnnyelwailer in #16837
- Add Mapserver Examples by @geographika in #16644
- Bump mocha from 11.1.0 to 11.2.2 by @dependabot in #16833
- Bump eslint from 9.25.0 to 9.26.0 by @dependabot in #16832
- Bump @typescript-eslint/parser from 8.30.1 to 8.31.1 by @dependabot in #16831
- WebGL / Avoid "Vertex buffer is not big enough for the draw call" error when mixing styles and geometry types by @jahow in #16840
- Fix setGeometry() in webgl/VectorLayer for useGeographic() by @kikuchan in #16814
- Bump marked from 15.0.8 to 15.0.11 by @dependabot in #16822
- Bump rollup from 4.40.0 to 4.40.1 by @dependabot in #16821
- Bump ol-mapbox-style from 12.5.0 to 12.6.0 by @dependabot in #16819
- Bump webpack from 5.99.6 to 5.99.7 by @dependabot in #16820
- Bump proj4 from 2.15.0 to 2.16.2 by @dependabot in #16846
- Bump rollup from 4.40.1 to 4.40.2 by @dependabot in #16847
- Bump @typescript-eslint/parser from 8.31.1 to 8.32.0 by @dependabot in #16849
- Bump puppeteer from 24.6.1 to 24.8.2 by @dependabot in #16848
- Update 3rd party index.hbs by @jipexu in #16851
- Fix deferred render order by @ahocevar in #16856
- Use FontFaceSet for modern font load status tracking by @ahocevar in #16854
- Bump rollup from 4.40.2 to 4.41.0 by @dependabot in #16859
- Bump @codemirror/lang-javascript from 6.2.3 to 6.2.4 by @dependabot in #16860
- Bump proj4 from 2.16.2 to 2.17.0 by @dependabot in #16861
- Bump ol-mapbox-style from 12.6.0 to 13.0.1 by @dependabot in #16862
- Bump eslint from 9.26.0 to 9.27.0 by @dependabot in #16863
- Bump @typescript-eslint/parser from 8.32.0 to 8.32.1 by @dependabot in #16865
- Bump semver from 7.7.1 to 7.7.2 by @dependabot in #16866
- Bump @octokit/rest from 21.1.1 to 22.0.0 by @dependabot in #16874
- Bump marked from 15.0.11 to 15.0.12 by @dependabot in #16876
- Bump mocha from 11.2.2 to 11.5.0 by @dependabot in #16875
- Bump puppeteer from 24.8.2 to 24.9.0 by @dependabot in #16877
- Add option to change TileDebug color by @pakb in #16871
- Only reset draw context when it it set by @ahocevar in #16879
- Bump dawidd6/action-download-artifact from 9 to 10 by @dependabot in #16889
- Bump puppeteer from 24.9.0 to 24.10.0 by @dependabot in #16887
- Bump webpack from 5.99.8 to 5.99.9 by @dependabot in #16886
- Bump @typescript-eslint/parser from 8.32.1 to 8.33.0 by @dependabot in #16885
- Bump eslint from 9.27.0 to 9.28.0 by @dependabot in #16884
- Bump webpack-sources from 3.2.3 to 3.3.0 by @dependabot in #16883
- Allow Parsing of SLD nodes in capabilities by @ltkum in #16890
- Bump rollup from 4.41.0 to 4.41.1 by @dependabot in #16882
- Bump yargs from 17.7.2 to 18.0.0 by @dependabot in #16888
- azure maps example by @jipexu in #16900
- chore(deps-dev): bump webpack-sources from 3.3.0 to 3.3.2 by @dependabot in #16895
- chore(deps-dev): bump webpack-dev-server from 5.2.1 to 5.2.2 by @dependabot in #16896
- chore(deps-dev): bump mocha from 11.5.0 to 11.6.0 by @dependabot in #16903
- chore(deps-dev): bump @rollup/plugin-commonjs from 28.0.3 to 28.0.5 by @dependabot in #16904
- chore(deps-dev): bump rollup from 4.42.0 to 4.43.0 by @dependabot in #16905
- chore(deps-dev): bump sinon from 20.0.0 to 21.0.0 by @dependabot in #16906
- chore(deps-dev): bump eslint from 9.28.0 to 9.29.0 by @dependabot in #16907
- chore(deps-dev): bump puppeteer from 24.10.0 to 24.10.1 by @dependabot in #16908
- chore(deps-dev): bump @typescript-eslint/parser from 8.33.0 to 8.34.0 by @dependabot in #16909
- chore(deps): bump dawidd6/action-download-artifact from 10 to 11 by @dependabot in #16911
New Contributors
- @kisoso made their first contribution in https://github.com/o...
v10.5.0
The 10.5.0 release contains many fixes, typing improvements, but also several new features:
- The
Snapinteraction now allows snapping to segment intersections; it also offers a newunsnapevent - Added support for LineStrings and expressions in the
Heatmaplayer - Added
getLengthmethod to theMultiLineStringgeometry class - Added a
source.setParams()API alongside the existingsource.updateParamsfor various sources to make clearing query parameters easier - WFS feature properties (and other XML text elements) will now be encoded as CDATA when they contain special XML characters, white spaces etc.
- Added support for
hasexpression operator in WebGL layers - Added a performance improvement when selecting features
- Removed a long-standing Firefox-specific workaround when zooming in/out with the mouse wheel
- Removed the runtime dependencies to the
color-spaceandcolor-rgbapackages, instead replaced by local code - Vector layer backgrounds are now rendered even when the source is empty
List of all changes
See below for a complete list of features and fixes.
- Adding numbers to font family regex (by @ltkum in #16771)
- Safely push to the zIndexContext instructions array (by @ahocevar in #16762)
- Fixed: WebGLVectorTile layer setStyle issue (by @catakot in #16746)
- Fix tests (by @ahocevar in #16756)
- Remove endless render loop (by @ahocevar in #16759)
- Avoid comparing
matchoperator input value with fallback value (by @jahow in #16723) - Restore handlebars replacements in website (by @ahocevar in #16754)
- Implement
hasoperator on GPU (by @jahow in #16717) - Compare matrix transforms with lower precision (by @ahocevar in #16744)
- Restore vector tile projection assertion (by @mike-000 in #16739)
- Get rid of Firefox specific wheel delta adjustment (by @ahocevar in #16726)
- Hint willReadFrequently leads to worse performance when selecting features (by @natalvc in #16736)
- A bug fix in unsnap test (by @yjwoo14 in #16724)
- Contours interpolation using Terrarium tiles with gutter (by @mike-000 in #13647)
- Add setParams for setting all URL parameters at once (by @tschaub in #16718)
- Fix hit detection when setting a
filterin a WebGL Vector Layer (by @jahow in #16710) - Fix a shader compilation error when setting stroke dash and point style (by @jahow in #16716)
- Document that polygons must have a fill for full hit detection #16698 (by @m-mohr in #16701)
- Add getLength method to ol/geom/MultiLineString (by @MoonE in #16708)
- Add sustaining sponsors to the main page of the website (by @ahocevar in #16703)
- Fix typo in Offscreen Canvas example (by @jahow in #16695)
- Remove unnecessary eslint-disable directive (by @tschaub in #16692)
- Simplify MapBrowserEvent types and conditions code (by @ahocevar in #16683)
- Update type to reflect that map.setView(null) can be used (by @tschaub in #16691)
- Do not exceed device pixel ratio in Wind example (by @mike-000 in #16680)
- Shader compilation fix for Wind layer example (by @jahow in #16682)
- Add support for LineStrings and expressions in Heatmap layer (by @jahow in #16643)
- Update NumpyTile loader url (by @mike-000 in #16667)
- Convert rich text to plain text when rendering along lines (by @ahocevar in #16665)
- Render vector layer background also when source is empty (by @ahocevar in #16623)
- Fix UTFGrid source (by @ahocevar in #16650)
- Source has changed when loading failed (by @ahocevar in #16647)
- Remove
@typecomments from examples (by @MoonE in #16626) - Fix cloak in example (by @mike-000 in #16642)
- New option to specify custom segmenters for the Snap interaction (by @ahocevar in #16620)
- Replace barrel imports in tests (by @tschaub in #16624)
- Do not include typescript tests in root tsconfig (by @ahocevar in #16619)
- Fix more type problems in examples (by @MoonE in #16616)
- Add option to snap to segment intersections (by @ahocevar in #16617)
- Fix style assignment in WebGLVectorLayer (by @semihher in #16599)
- Update Jugl (by @MoonE in #16607)
- Link to GitHub repository instead of npm package (by @ahocevar in #16615)
- Translate double-quoted type-import paths in examples (by @MoonE in #16608)
- Add some more DefinitelyTyped types and use ol-numpytiles from npm (by @MoonE in #16609)
- Mention the removal of the WebGLStyle type in 10.4.0 upgrade notes (by @openlayers in #16602)
- Fix examples (by @MoonE in #16604)
- Fix some types (by @MoonE in #16605)
- Color without dependencies (by @ahocevar in #16601)
- Support CDATA in writeStringTextNode (by @MelkorCC in #16596)
- Add Unsnap Event (by @RubenKad in #16352)
- Remove unused @openlayers/eslint-plugin dependency (by @ahocevar in #16589)
- Fix 10.4.0 upgrade notes (by @openlayers in #16595)
- Updates for the 10.4.0 release (by @openlayers in #16592)
Dependency Updates
- Bump serve-static from 1.16.2 to 2.2.0 (by @openlayers in #16766)
- Bump sinon from 19.0.4 to 20.0.0 (by @openlayers in #16770)
- Bump @typescript-eslint/parser from 8.27.0 to 8.28.0 (by @openlayers in #16768)
- Bump rollup from 4.37.0 to 4.38.0 (by @openlayers in #16769)
- Bump webpack-dev-server from 5.2.0 to 5.2.1 (by @openlayers in #16767)
- Bump jspdf from 3.0.0 to 3.0.1 (by @openlayers in #16748)
- Bump eslint from 9.22.0 to 9.23.0 (by @openlayers in #16751)
- Bump sinon from 19.0.2 to 19.0.4 (by @openlayers in #16750)
- Bump rollup from 4.36.0 to 4.37.0 (by @openlayers in #16752)
- Bump @typescript-eslint/parser from 8.26.1 to 8.27.0 (by @openlayers in #16749)
- Bump @metalsmith/layouts from 2.7.0 to 3.0.0 (by @openlayers in #16731)
- Bump rollup from 4.35.0 to 4.36.0 (by @openlayers in #16730)
- Bump canvg from 3.0.10 to 3.0.11 (by @openlayers in #16735)
- Bump @rollup/plugin-node-resolve from 16.0.0 to 16.0.1 (by @openlayers in #16732)
- Bump shx from 0.3.4 to 0.4.0 (by @openlayers in #16729)
- Bump @typescript-eslint/parser from 8.26.0 to 8.26.1 (by @openlayers in #16728)
- Bump rollup from 4.34.9 to 4.35.0 (by @openlayers in #16713)
- Bump @rollup/plugin-commonjs from 28.0.2 to 28.0.3 (by @openlayers in #16711)
- Bump eslint from 9.21.0 to 9.22.0 (by @openlayers in #16712)
- Bump ol-stac from 1.0.0-rc.9 to 1.0.0-rc.10 (by @openlayers in #16714)
- Bump puppeteer from 24.3.0 to 24.4.0 (by @openlayers in #16715)
- Bump typescript from 5.7.3 to 5.8.2 (by @openlayers in #16687)
- Bump dawidd6/action-download-artifact from 8 to 9 (by @openlayers in https://github.com/op...
v10.4.0
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.
// Before
new WebGLPointsLayer({
filter: ['between', ['get', 'year'], ['var', 'minYear'], ['var', 'maxYear']],
style: {
'circle-radius': 8,
'circle-fill-color': 'blue',
},
source: vectorSource,
})
// After
new WebGLVectorLayer({
style: [{
filter: ['between', ['get', 'year'], ['var', 'minYear'], ['var', 'maxYear']],
style: {
'circle-radius': 8,
'circle-fill-color': 'blue',
},
}],
source: vectorSource,
})ol/style/webgl module removal
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 [email protected] 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.
// Before
new WebGLPointsLayer({
style: {
filter: ['between', ['get', 'year'], ['var', 'minYear'], ['var', 'maxYear']],
'circle-radius': 8,
'circle-fill-color': 'blue',
},
source: vectorSource,
})
// Now
new WebGLPointsLayer({
filter: ['between', ['get', 'year'], ['var', 'minYear'], ['var', 'maxYear']],
style: {
'circle-radius': 8,
'circle-fill-color': 'blue',
},
source: vectorSource,
})Get ready for future changes
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 #16435
- Bump pmtiles from 3.2.1 to 4.0.1 by @dependabot in #16418
- Skip tiles not in rotated viewport by @MoonE in #16443
- Intersection performance improvements by @MoonE in #16442
- Remove duplicate property from CanvasTileLayerRenderer by @MoonE in #16445
- Updates to work with ESLint 9 by @tschaub in #16441
- Bump dawidd6/action-download-artifact from 6 to 7 by @dependabot in #16421
- Bump @types/geojson from 7946.0.14 to 7946.0.15 by @dependabot in #16447
- Bump puppeteer from 23.9.0 to 23.10.1 by @dependabot in #16448
- Bump rollup from 4.28.0 to 4.28.1 by @dependabot in #16449
- Bump mocha from 10.8.2 to 11.0.1 by @dependabot in #16450
- Bump webpack from 5.96.1 to 5.97.1 by @dependabot in #16451
- Bump express from 4.21.1 to 4.21.2 by @dependabot in #16452
- Change tile state to EMPTY when releasing tiles by @ahocevar in #16455
- fix: check for ImageBitmap support in ImageWrapper load by @rwd in #16458
- Remove expandUrl re-export by @ahocevar in #16459
- Update High DPI WMTS capabilities url by @mike-000 in #16463
- Replace barrel imports in examples by @tschaub in #16465
- Consistent use of relative imports by @tschaub in #16464
- Lazily initialize VectorStyleRenderer Worker by @M393 in #16460
- Remove IE11 only MSFullscreenChange event handling by @MoonE in #16471
- Templatize TileQueue by @MoonE in #16470
- Returning false from once-listener should stop event propagation by @MoonE in #16469
- Bump puppeteer from 23.10.1 to 23.10.4 by @dependabot in #16473
- Bump marked from 15.0.3 to 15.0.4 by @dependabot in #16474
- Bump @rollup/plugin-commonjs from 28.0.1 to 28.0.2 by @dependabot in #16478
- Bump webpack-dev-server from 5.1.0 to 5.2.0 by @dependabot in #16476
- Bump @typescript-eslint/parser from 8.17.0 to 8.18.0 by @dependabot in #16479
- Bump eslint from 9.16.0 to 9.17.0 by @dependabot in #16477
- Bump pmtiles from 4.0.1 to 4.1.0 by @dependabot in #16472
- Fix function or null/undefined types by @MoonE in #16481
- Fix return type of ImageObjectPromiseLoader by @MoonE in #16480
- Include site directory in npm run lint by @MoonE in #16482
- Bump @rollup/plugin-node-resolve from 15.3.0 to 16.0.0 by @dependabot in #16475
- Add validation to prevent incorrect calculations when handling undefined values in the updateElement_ method by @edsonmsj in #16468
- Clear renderer on layer source changes by @MelkorCC in #16488
- Update test docs by @ahocevar in #16496
- Bump earcut from 3.0.0 to 3.0.1 by @dependabot in #16501
- Bump rollup from 4.28.1 to 4.29.1 by @dependabot in #16502
- Bump puppeteer from 23.10.4 to 23.11.1 by @dependabot in #16503
- Bump webpack-cli from 5.1.4 to 6.0.1 by @dependabot in #16504
- Bump @typescript-eslint/parser from 8.18.0 to 8.18.1 by @dependabot in #16505
- Merge style/webgl and style/flat formats into a single one by @jahow in #16492
- An EMPTY tile stays EMPTY by @ahocevar in #16513
- Only peek tiles we're not sure we're going to use by @ahocevar in #16509
- Bump @turf/length from 7.1.0 to 7.2.0 by @dependabot in #16515
- Bump @turf/along from 7.1.0 to 7.2.0 by @dependabot in #16516
- Bump @typescript-eslint/parser from 8.18.1 to 8.18.2 by @dependabot in #16517
- Fix for undefined
renderedProjectionin web worker's offscreen canvas layer example by @bilskip in #16522 - Fix VectorTile source removeSourceTiles by @MoonE in #16427
- Ignore site build directory by @ahocevar in #16518
- Ignore empty tiles to avoid endless loop by @mike-000 in #16519
- Fix considering insertVertexCondition on segment hover in modify interaction by @viktorijasolovjova in #16506
- Reset layer style when original GeoTIFF source is ready by @jcphill in #16490
- Fix WebGLPoints layer with non-point geometry by @MoonE in #16437
- Bump rollup from 4.29.1 to 4.30.0 by @dependabot in #16528
- Bump @typescript-eslint/parser from 8.18.2 to 8.19.0 by @dependabot in #16527
- Bump marked from 15.0.4 to 15.0.5 by @dependabot in #16526
- Bump @types/proj4 from 2.5.5 to 2.5.6 by @dependabot in #16525
- Deprecate ol/layer/WebGLPoints by @MoonE in #16529
- Introduce a WebGLVectorTileLayer class by @jahow in #16524
- Make forEachFeatureAtCoordinate work when dec...
v10.3.1
The 10.3.1 patch release contains several fixes and improvements to types, adds a missing class export and fixes a couple of broken WebGL points examples.
List of all changes
See below for a complete list of features and fixes.
- Fix broken WebGLPoints examples, clarify 10.3.0 patch notes (by @jahow in #16431)
- Fix ol/source/Vector getFeaturesAtCoordinate return type (by @MoonE in #16434)
- Add some types, some code cleanup (by @MoonE in #16428)
- Export WebGlVector layer from ol/layer.js (by @M393 in #16425)
- Fix wrong member types in VectorRenderTile (by @openlayers in #16422)
- Add
sourceoption to TileDebug (by @mike-000 in #16279) - Updates for the 10.3.0 release (by @openlayers in #16416)
Dependency Updates
- Bump @typescript-eslint/parser from 8.15.0 to 8.16.0 (by @openlayers in #16417)
- Bump marked from 15.0.2 to 15.0.3 (by @openlayers in #16420)
- Bump rollup from 4.27.4 to 4.28.0 (by @openlayers in #16419)
Full Changelog: v10.3.0...v10.3.1
v10.3.0
In addition to many important bug fixes, the 10.3 release adds several improvements to the recently introduced ImageTile source, support for model transformations for the GeoTIFF source, a new SentinelHub source, built-in support for UTM coordinate transforms, smart caching of regular shape and icon styles, TypeScript improvements for the VectorImage layer, and a new WebGLVectorLayer.
Upgrade notes
The transform function throws for unknown projections
Previously, the transform() function from the ol/proj module would apply the identity transform if either the source or the destination projections were unrecognized. Now this function will throw an error if it cannot perform the transform. You can check whether a projection is registered by calling the get() function from ol/proj - this function returns null if the projection definition for a provided identifier is not known.
The format of the style for WebGLPointsLayer has changed
Such a layer would previously be created this way:
// Before
new WebGLPointsLayer({
style: {
// variables were part of the `style` object
variables: {
minYear: 1850,
maxYear: 2015,
},
filter: ['between', ['get', 'year'], ['var', 'minYear'], ['var', 'maxYear']],
},
source: vectorSource,
})From this release on, variables are now set as a separate object at the root of the options object:
// Now
new WebGLPointsLayer({
style: {
filter: ['between', ['get', 'year'], ['var', 'minYear'], ['var', 'maxYear']],
},
variables: {
minYear: 1850,
maxYear: 2015,
},
source: vectorSource,
})List of all changes
See below for a complete list of features and fixes.
- FrameState is never null for PostRenderFunction (by @M393 in #16415)
- Fix for #15296 bug (by @piotrintes in #16382)
- Properly encode URI components (by @tschaub in #16409)
- Introduce a WebGLVectorLayer class & change the style variables API (by @jahow in #16394)
- Use event.pixel instead of getEventPixel (by @MoonE in #16395)
- More representative z-index for the layer-vectortile-z-index test. (by @levelost in #16390)
- Make sure hitDetection is only applied on points (by @oterral in #16393)
- Fix incorrect zIndex sorting #16373 (by @levelost in #16386)
- Bring back the setDeclutter() method (by @ahocevar in #16383)
- Include
backgroundinol/layer/Tileoptions (by @mike-000 in #16371) - Expire cache only when not loading tiles (by @ahocevar in #16365)
- Update deprecated applyStyle syntax in Vector tiles in EPSG:4326 example (by @mike-000 in #16350)
- Use Math.ceil() for regular shape canvas size (by @ahocevar in #16362)
- Add test when element is null (by @oterral in #16355)
- Do not append the element if it is null (by @oterral in #16354)
- Remove unnecessary async (by @tschaub in #16351)
- Use IconImageCache for regular shapes (by @ahocevar in #16349)
- Support for UTM transforms (by @tschaub in #16327)
- Fix type generics for VectorImageLayer (by @ahocevar in #16348)
- Add text-keep-upright to flat style attributes (by @leyan in #16315)
- Add template to RBush forEach (by @M393 in #16345)
- Example showing image tiles from a PMTiles archive (by @tschaub in #16335)
- Turn off transition in more rendering tests (by @mike-000 in #16333)
- Revert "Remove debug tile layer in rendering test" (by @mike-000 in #16332)
- Remove debug tile layer in rendering test (by @tschaub in #16329)
- Clear the LRU cache properly (by @ahocevar in #16328)
- Pass the transformed coordinates (by @tschaub in #16325)
- Turn off transition for rendering tests (by @tschaub in #16326)
- Fix vectortile get features (by @M393 in #16313)
- Add a keepUpright parameter to control text labels rotation (by @leyan in #16302)
- Correct annotation for render events (by @tschaub in #16301)
- Sentinel Hub source (by @tschaub in #15891)
- Improve the Modify interaction's API for programmatic actions (by @ahocevar in #16296)
- Set source projection from OGC TileMatrixSet crs (by @kudlav in #16293)
- Accept a CRS object with a URI string in tile matrix set (by @tschaub in #16291)
- Run browser tests without a sandbox in CI (by @tschaub in #16288)
- Execute postrender functions in worker (by @ahocevar in #16277)
- Let isVisible() return false for layers that are not yet rendered (by @ahocevar in #16260)
- Handle rotated, skewed or flipped GeoTIFF tile grids (by @mike-000 in #16227)
- Fix Flow layer rotation (by @kikuchan in #16251)
- Do not call postrender functions when there is no frameState (by @ahocevar in #16268)
- Fix #15484 regression (by @mike-000 in #16249)
- Use fflate instead of jszip (by @ahocevar in #16254)
- Update external scripts and use npm for some (by @MoonE in #16234)
- Make TileDebug a subclass of ImageTile instead of XYZ (by @mike-000 in #16245)
- Add setters for the
overlapsoption (by @ahocevar in #16243) - Reproject DataTiles using WebGL instead of 2d canvas. (by @sweepline in #15860)
- Update example to use turf via npm (by @MoonE in #16232)
- Fix ImageTile source
{-y}placeholder handling (by @mike-000 in #16233) - Add
zDirectionoption to ol/source/ImageTile (by @mike-000 in #16231) - Update URL and attributions of wmts-ign example (by @cvagner in #16230)
- Updates for the 10.2.1 release (by @openlayers in #16226)
Dependency Updates
- Bump rollup-plugin-external-globals from 0.12.1 to 0.13.0 (by @openlayers in #16398)
- Bump proj4 from 2.14.0 to 2.15.0 (by @openlayers in #16399)
- Bump marked from 15.0.1 to 15.0.2 (by @openlayers in #16397)
- Bump typescript from 5.6.3 to 5.7.2 (by @openlayers in #16400)
- Bump @types/mocha from 10.0.9 to 10.0.10 (by @openlayers in #16401)
- Bump puppeteer from 23.8.0 to 23.9.0 (by @openlayers in #16402)
- Bump @typescript-eslint/parser from 8.14.0 to 8.15.0 (by @openlayers in #16403)
- Bump rollup from 4.27.3 to 4.27.4 (by @openlayers in #16404)
- Bump rollup from 4.25.0 to 4.27.3 (by @openlayers in #16384)
- Bump marked from 15.0.0 to 15.0.1 (by @openlayers in #16375)
- Bump puppeteer from 23.7.1 to 23.8.0 (by @openlayers in #16377)
- Bump jsts from 2.11.3 to 2.12.1 (by @openlayers in #16378)
- Bump rollup-plugin-external-globals from 0.12.0 to 0.12.1 (by @openlayers in #16379)
- Bump @typescript-eslint/parser from 8.13.0 to 8.14.0 (by @openlayers in #16374)
- Bump puppeteer from 23.6.1 to 23.7.1 (by @openlayers in #16359)
- Bump @typescript-eslint/parser from 8.12.2 to 8.13.0 (by @openlayers in #16358)
- Bump marked from 14.1.3 to 15.0.0 (by @openlayers in #16357)
- Bump rollup from 4.24.4 to 4.25.0 (by @openlayers in #16356)
- Bump proj4 from 2.12.1 to 2.14.0 (by ...
v10.2.1
The 10.2.1 patch release fixes an issue with missing tiles on reprojected tile layers. See the 10.2.0 release notes for a complete list of changes since the previous release.
What's Changed
- Updates for the 10.2.0 release by @ahocevar in #16210
- Bump @typescript-eslint/parser from 8.5.0 to 8.6.0 by @dependabot in #16212
- Clarify limitation on the WebGL layer swipe example by @llienher in #15409
- Get rid of reprojection tile caches by @ahocevar in #16221
- Bump @rollup/plugin-node-resolve from 15.2.3 to 15.2.4 by @dependabot in #16216
- Bump @rollup/plugin-alias from 5.1.0 to 5.1.1 by @dependabot in #16215
- Bump puppeteer from 23.3.0 to 23.4.0 by @dependabot in #16213
- Bump rollup from 4.21.3 to 4.22.4 by @dependabot in #16214
New Contributors
Full Changelog: v10.2.0...v10.2.1
v10.2.0
The 10.2 release adds an experimental Flow layer to render particle flows (e.g. wind) in WebGL, support for WMS Capabilities v1.1.1, and an ol.VERSION property in the legacy build. Under the hood, it brings several performance improvements, better memory management, bug fixes, type improvements, and the removal of unnecessary tile caching code.
List of all changes
See below for a complete list of features and fixes.
- WebGL / Ensure that
['geometry-type']is correctly interpreted in expressions (by @jahow in #16087) - Improve listen calls (by @MoonE in #15998)
- fix ol.VERSION not available in umd pkg (by @sakitam-gis in #15866)
- Reset layer style when new GeoTIFF source is ready (by @mike-000 in #16067)
- Fix getResolutionsForZoom() for views with only one resolution (by @ahocevar in #16206)
- No double caching, distinct tile keys for queue (by @ahocevar in #16203)
- Use
@types/rbushv3.0.3 (by @ahocevar in #16194) - Fix getData() on reprojected tile layers (by @mike-000 in #16180)
- Add missing keyword in Basic Concepts tutorial (by @ptrgast in #16192)
- Dispose of expired tiles (by @ahocevar in #16157)
- Fix getFeaturesInExtent() (by @ahocevar in #16190)
- feat: support parsing WMS capabilities v1.1 (by @sebakerckhof in #16174)
- Delete orphaned file (by @mike-000 in #16167)
- transform function type regression (by @bkuster in #16151)
- Store anchor pixel instead of coordinate (by @ahocevar in #16124)
- Fix offscreen-canvas example (by @ahocevar in #16143)
- Clear layer tile cache when view projection reset (by @mike-000 in #16141)
- Make API key requirement more prominent in examples (by @mike-000 in #16139)
- Mark the type of InteractionOptions.handleEvent as optional (by @matthias-ccri in #16123)
- Fix flashing on the WebGL vector example (by @jahow in #16055)
- Particle flow renderer (by @tschaub in #14491)
- Upload all palette textures before binding tile textures (by @tschaub in #16115)
- Updates for the 10.1.0 release (by @openlayers in #16117)
Dependency Updates
- Bump typescript from 5.5.4 to 5.6.2 (by @openlayers in #16201)
- Bump rollup from 4.21.2 to 4.21.3 (by @openlayers in #16202)
- Bump @types/mocha from 10.0.7 to 10.0.8 (by @openlayers in #16200)
- Bump @typescript-eslint/parser from 8.4.0 to 8.5.0 (by @openlayers in #16199)
- Bump sinon from 18.0.0 to 19.0.2 (by @openlayers in #16197)
- Bump jsdoc-plugin-typescript from 2.3.0 to 3.0.0 (by @openlayers in #16198)
- Bump dset from 3.1.3 to 3.1.4 (by @openlayers in #16182)
- Bump send, express and serve-static (by @openlayers in #16184)
- Bump proj4 from 2.12.0 to 2.12.1 (by @openlayers in #16168)
- Bump webpack-dev-server from 5.0.4 to 5.1.0 (by @openlayers in #16169)
- Bump puppeteer from 23.2.1 to 23.3.0 (by @openlayers in #16170)
- Bump marked from 14.1.0 to 14.1.2 (by @openlayers in #16171)
- Bump @typescript-eslint/parser from 8.3.0 to 8.4.0 (by @openlayers in #16172)
- Bump puppeteer from 23.1.1 to 23.2.1 (by @openlayers in #16149)
- Bump @typescript-eslint/parser from 8.2.0 to 8.3.0 (by @openlayers in #16147)
- Bump rollup from 4.21.0 to 4.21.2 (by @openlayers in #16146)
- Bump webpack-dev-middleware from 7.3.0 to 7.4.2 (by @openlayers in #16130)
- Bump rbush from 4.0.0 to 4.0.1 (by @openlayers in #16125)
- Bump @typescript-eslint/parser from 8.1.0 to 8.2.0 (by @openlayers in #16129)
- Bump marked from 14.0.0 to 14.1.0 (by @openlayers in #16127)
- Bump puppeteer from 23.1.0 to 23.1.1 (by @openlayers in #16128)
- Bump webpack from 5.93.0 to 5.94.0 (by @openlayers in #16126)
New Contributors
Full Changelog: v10.1.0...v10.2.0
v10.1.0
Thanks to those who contributed to the 10.1 release! See below for a complete list of new features and fixes.
π features
- Add
hasto style expressions (by @bkuster in #16063) - WebGL / Implement the
line-metricoperator to apply styles/filter along a line (by @romprokop in #15961) - Add static
attributionsto attribution control constructor options (by @RobQuincey-DC in #16031) - Add Terra Draw to list of 3rd Party Plugins (by @JamesLMilner in #16096)
π fixes
- Focus for maps placed in ShadowRoot in custom HTML elements (by @chrismayer in #16094)
- Update jsdoc-plugin-typescript to fix
@overridehandling (by @ahocevar in #16114) - Do not transform M dimension (by @ahocevar in #16099)
- Fix WebGLTileLayer source types (by @ahocevar in #16097)
- Fix canvas group changes on webgl layers (revised) (by @kikuchan in #16100)
- Fix canvas group change on webgl layers (by @kikuchan in #16051)
- Fix color style for WebGL tile layer (by @kikuchan in #16075)
- Clear the RenderBox when the DragBox is removed from the Map (by @dlog6649 in #16073)
- Fix #15926: Check property values for undefined (by @m-elseberg in #16066)
- WebGL / fix flaky tests relying on patterns (by @jahow in #16056)
- Fix *-fill-color: 'none' (by @ahocevar in #16050)
- Do not render when no tiles for current z (by @ahocevar in #16044)
- Add v9.2.4 to the API version selector and bump 8.1.0 to 8.2.0. (by @tplunket in #16041)
π¬ dependencies
- Add
@types/rbushas dependency (by @MoonE in #16085) - Bump proj4 from 2.11.0 to 2.12.0 (by @openlayers in #16107)
- Bump rollup from 4.20.0 to 4.21.0 (by @openlayers in #16106)
- Bump @typescript-eslint/parser from 8.0.1 to 8.1.0 (by @openlayers in #16105)
- Bump ol-mapbox-style from 12.3.4 to 12.3.5 (by @openlayers in #16104)
- Bump puppeteer from 23.0.2 to 23.1.0 (by @openlayers in #16103)
- Bump @octokit/rest from 21.0.1 to 21.0.2 (by @openlayers in #16102)
- Bump marked from 13.0.3 to 14.0.0 (by @openlayers in #16080)
- Bump rollup-plugin-external-globals from 0.11.0 to 0.12.0 (by @openlayers in #16079)
- Bump mocha from 10.7.0 to 10.7.3 (by @openlayers in #16077)
- Bump puppeteer from 22.15.0 to 23.0.2 (by @openlayers in #16078)
- Bump @typescript-eslint/parser from 8.0.0 to 8.0.1 (by @openlayers in #16081)
- Bump @typescript-eslint/parser from 7.17.0 to 8.0.0 (by @openlayers in #16062)
- Bump karma from 6.4.3 to 6.4.4 (by @openlayers in #16060)
- Bump puppeteer from 22.14.0 to 22.15.0 (by @openlayers in #16061)
- Bump rollup from 4.19.2 to 4.20.0 (by @openlayers in #16059)
- Bump rollup from 4.19.1 to 4.19.2 (by @openlayers in #16052)
- Bump typescript from 5.5.3 to 5.5.4 (by @openlayers in #16036)
- Bump @typescript-eslint/parser from 7.16.1 to 7.17.0 (by @openlayers in #16035)
- Bump rollup from 4.19.0 to 4.19.1 (by @openlayers in #16034)
- Bump puppeteer from 22.13.1 to 22.14.0 (by @openlayers in #16033)
- Bump marked from 13.0.2 to 13.0.3 (by @openlayers in #16032)
π new contributors
- @tplunket made their first contribution in #16041
- @RobQuincey-DC made their first contribution in #16031
- @m-elseberg made their first contribution in #16066
- @dlog6649 made their first contribution in #16073
- @romprokop made their first contribution in #15961
- @JamesLMilner made their first contribution in #16096