10.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
- 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
List of all changes
See below for a complete list of features and fixes.
- Bring back tile cache for raster reprojection source tiles (by @ahocevar in https://github.com/openlayers/openlayers/pull/17162)
- add docs codeblock modify deleteCondition (by @mradamcox in https://github.com/openlayers/openlayers/pull/17176)
- Add new Stamen Toner variants (by @ianthetechie in https://github.com/openlayers/openlayers/pull/17169)
- Add example of Equal Earth projection with dynamic center meridian (by @pka in https://github.com/openlayers/openlayers/pull/17165)
- properly handle container background in a worker environment (by @RobertOrthofer in https://github.com/openlayers/openlayers/pull/17164)
- mock
remove()method ofHTMLDivElement(by @RobertOrthofer in https://github.com/openlayers/openlayers/pull/17163) - Make
olusable inside aworker(by @RobertOrthofer in https://github.com/openlayers/openlayers/pull/17149) - Add reprojection support for VectorTile layers (by @ahocevar in https://github.com/openlayers/openlayers/pull/17144)
- Add extra url options for Bing Maps and Google sources (by @gmerciel in https://github.com/openlayers/openlayers/pull/17141)
- Use the dependabot cooldown config to limit bad package updates (by @tschaub in https://github.com/openlayers/openlayers/pull/17108)
- Enable trusted publishing (by @outslept in https://github.com/openlayers/openlayers/pull/17086)
- Deprecate stable sort (by @M393 in https://github.com/openlayers/openlayers/pull/17103)
- add osrm plugin to website (by @strues-maps in https://github.com/openlayers/openlayers/pull/17097)
- Snap fixes (by @MoonE in https://github.com/openlayers/openlayers/pull/17093)
- Enforce origin-when-cross-origin for tile.openstreetmap.org (by @ahocevar in https://github.com/openlayers/openlayers/pull/17089)
- Fix glitched rendering in ReprojDataTile (by @jahow in https://github.com/openlayers/openlayers/pull/17079)
- Ensure duplicate snap events are not registered on the same feature (by @megawac in https://github.com/openlayers/openlayers/pull/17054)
- Render vector tile image with correct resolution (by @ahocevar in https://github.com/openlayers/openlayers/pull/17046)
- Add freehand setter and getter to
interaction/Draw(by @daboudii in https://github.com/openlayers/openlayers/pull/17022) - WebGL / Use only two attributes instead of four for storing the hit detection color (by @jahow in https://github.com/openlayers/openlayers/pull/17031)
- WebGL / introduce a
stroke-pattern-start-offsetstyle property (by @jahow in https://github.com/openlayers/openlayers/pull/16976) - Fix collection unique check with setAt (by @M393 in https://github.com/openlayers/openlayers/pull/17013)
- Tracing with the Modify intraction (by @ahocevar in https://github.com/openlayers/openlayers/pull/16997)
- Missing ol/layer/Group events in apidoc and signature (by @M393 in https://github.com/openlayers/openlayers/pull/17011)
- Remove duplicate unique check (by @M393 in https://github.com/openlayers/openlayers/pull/17012)
- Prevent duplicate rendering on vector tiles with
renderMode: 'vector'(by @Swiod in https://github.com/openlayers/openlayers/pull/17008) - Add FitOptions to ol/control/ZoomToExtent (by @rcaplier in https://github.com/openlayers/openlayers/pull/17009)
- Add createCondition and drag options to Extent interaction (by @ahocevar in https://github.com/openlayers/openlayers/pull/16978)
- Do not toggle tracing on pointerup after dragging (by @ahocevar in https://github.com/openlayers/openlayers/pull/16975)
- Fix offscreen canvas example (by @M393 in https://github.com/openlayers/openlayers/pull/16971)
- Fix
ol/style/Textclone()to properly handle non-Fillinstances… (by @ramzahn in https://github.com/openlayers/openlayers/pull/16969) - Deprecate polyline encodeDeltas and decodeDeltas (by @M393 in https://github.com/openlayers/openlayers/pull/16968)
- Use WebGL instanced rendering to improve performance and memory usage (by @jahow in https://github.com/openlayers/openlayers/pull/16959)
- Update ol-stac example (by @m-mohr in https://github.com/openlayers/openlayers/pull/16962)
- Select methods for adding/removing features (by @laundmo in https://github.com/openlayers/openlayers/pull/16923)
- Adding
setSrcmethod to Icon style (by @pakb in https://github.com/openlayers/openlayers/pull/16957) - ol.format.Polyline fixes (by @M393 in https://github.com/openlayers/openlayers/pull/16955)
- Support url template with {z}/{x}/{y} (by @francbartoli in https://github.com/openlayers/openlayers/pull/16956)
- Use bounding box from layer in WMTS capabilities (by @remiHau in https://github.com/openlayers/openlayers/pull/16936)
- Improve memory usage by using a single buffer for WebGL layers (by @jahow in https://github.com/openlayers/openlayers/pull/16942)
- Properly handle boolean attributes in WebGL expressions (by @jahow in https://github.com/openlayers/openlayers/pull/16937)
- Updates for the 10.6.1 release (by @openlayers in https://github.com/openlayers/openlayers/pull/16920)
Dependency Updates
- chore(deps-dev): bump @rollup/plugin-alias from 5.1.1 to 6.0.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17170)
- chore(deps): bump actions/upload-artifact from 4 to 5 (by @openlayers in https://github.com/openlayers/openlayers/pull/17174)
- chore(deps-dev): bump puppeteer from 24.26.0 to 24.27.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17173)
- chore(deps-dev): bump @rollup/plugin-commonjs from 28.0.8 to 28.0.9 (by @openlayers in https://github.com/openlayers/openlayers/pull/17172)
- chore(deps-dev): bump @types/node from 24.9.1 to 24.9.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17171)
- chore(deps-dev): bump rollup from 4.52.4 to 4.52.5 (by @openlayers in https://github.com/openlayers/openlayers/pull/17156)
- chore(deps-dev): bump marked from 16.3.0 to 16.4.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17157)
- chore(deps-dev): bump @types/node from 24.9.0 to 24.9.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17155)
- chore(deps-dev): bump @rollup/plugin-node-resolve from 16.0.1 to 16.0.3 (by @openlayers in https://github.com/openlayers/openlayers/pull/17154)
- chore(deps-dev): bump @rollup/plugin-commonjs from 28.0.6 to 28.0.8 (by @openlayers in https://github.com/openlayers/openlayers/pull/17158)
- chore(deps-dev): bump puppeteer from 24.25.0 to 24.26.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17159)
- chore(deps-dev): bump eslint from 9.36.0 to 9.38.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17160)
- chore(deps-dev): bump @typescript-eslint/parser from 8.46.1 to 8.46.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17161)
- Dependabot/npm and yarn/typescript 5.9.3 (by @openlayers in https://github.com/openlayers/openlayers/pull/17152)
- chore(deps-dev): bump @typescript-eslint/parser from 8.44.1 to 8.46.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17148)
- chore(deps-dev): bump puppeteer from 24.22.2 to 24.25.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17147)
- chore(deps): bump actions/setup-node from 5 to 6 (by @openlayers in https://github.com/openlayers/openlayers/pull/17146)
- chore(deps-dev): bump semver from 7.7.2 to 7.7.3 (by @openlayers in https://github.com/openlayers/openlayers/pull/17140)
- chore(deps-dev): bump mocha from 11.7.2 to 11.7.4 (by @openlayers in https://github.com/openlayers/openlayers/pull/17138)
- chore(deps-dev): bump webpack from 5.101.3 to 5.102.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17134)
- chore(deps-dev): bump rollup from 4.52.2 to 4.52.4 (by @openlayers in https://github.com/openlayers/openlayers/pull/17137)
- chore(deps-dev): bump jsdoc from 4.0.4 to 4.0.5 (by @openlayers in https://github.com/openlayers/openlayers/pull/17136)
- chore(deps-dev): bump globby from 14.1.0 to 15.0.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17129)
- chore(deps-dev): bump webpack-dev-middleware from 7.4.4 to 7.4.5 (by @openlayers in https://github.com/openlayers/openlayers/pull/17125)
- chore(deps-dev): bump puppeteer from 24.22.0 to 24.22.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17115)
- chore(deps-dev): bump @typescript-eslint/parser from 8.44.0 to 8.44.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17116)
- chore(deps-dev): bump webpack-dev-middleware from 7.4.3 to 7.4.4 (by @openlayers in https://github.com/openlayers/openlayers/pull/17117)
- chore(deps): bump actions/checkout from 4 to 5 (by @openlayers in https://github.com/openlayers/openlayers/pull/17036)
- chore(deps-dev): bump ol-mapbox-style from 13.0.1 to 13.1.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17038)
- chore(deps-dev): bump copy-webpack-plugin from 13.0.0 to 13.0.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17042)
- chore(deps-dev): bump webpack from 5.101.0 to 5.101.3 (by @openlayers in https://github.com/openlayers/openlayers/pull/17049)
- chore(deps-dev): bump tmp from 0.2.1 to 0.2.4 (by @openlayers in https://github.com/openlayers/openlayers/pull/17021)
- chore(deps): bump actions/github-script from 7 to 8 (by @openlayers in https://github.com/openlayers/openlayers/pull/17070)
- chore(deps): bump actions/setup-node from 4 to 5 (by @openlayers in https://github.com/openlayers/openlayers/pull/17072)
- chore(deps-dev): bump mocha from 11.7.1 to 11.7.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17109)
- chore(deps-dev): bump @types/d3-array from 3.2.1 to 3.2.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17110)
- chore(deps-dev): bump jspdf from 3.0.2 to 3.0.3 (by @openlayers in https://github.com/openlayers/openlayers/pull/17111)
- chore(deps-dev): bump webpack-dev-middleware from 7.4.2 to 7.4.3 (by @openlayers in https://github.com/openlayers/openlayers/pull/17112)
- chore(deps-dev): bump fs-extra from 11.3.1 to 11.3.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17113)
- chore(deps-dev): bump rollup from 4.46.2 to 4.52.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17099)
- chore(deps-dev): bump marked from 16.1.2 to 16.3.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17082)
- chore(deps-dev): bump eslint from 9.32.0 to 9.36.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17098)
- chore(deps-dev): bump @typescript-eslint/parser from 8.39.0 to 8.44.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17100)
- chore(deps-dev): bump ol-stac from 1.0.2 to 1.0.5 (by @openlayers in https://github.com/openlayers/openlayers/pull/17101)
- chore(deps-dev): bump jspdf from 3.0.1 to 3.0.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17105)
- chore(deps-dev): bump puppeteer from 24.16.1 to 24.22.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17102)
- chore(deps-dev): bump fs-extra from 11.3.0 to 11.3.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17029)
- chore(deps-dev): bump @typescript-eslint/parser from 8.38.0 to 8.39.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17028)
- chore(deps-dev): bump es-main from 1.3.0 to 1.4.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17027)
- chore(deps-dev): bump puppeteer from 24.15.0 to 24.16.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17026)
- chore(deps-dev): bump webpack from 5.100.2 to 5.101.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17016)
- chore(deps-dev): bump marked from 16.1.1 to 16.1.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17017)
- chore(deps-dev): bump rollup from 4.46.1 to 4.46.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17019)
- chore(deps-dev): bump proj4 from 2.19.7 to 2.19.10 (by @openlayers in https://github.com/openlayers/openlayers/pull/17002)
- chore(deps-dev): bump puppeteer from 24.12.1 to 24.15.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17000)
- chore(deps): bump earcut from 3.0.1 to 3.0.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/17001)
- chore(deps-dev): bump @typescript-eslint/parser from 8.37.0 to 8.38.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17003)
- chore(deps-dev): bump eslint from 9.31.0 to 9.32.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/17004)
- chore(deps-dev): bump rollup from 4.45.1 to 4.46.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/17005)
- chore(deps-dev): bump proj4 and @types/proj4 (by @openlayers in https://github.com/openlayers/openlayers/pull/16988)
- chore(deps-dev): bump webpack from 5.99.9 to 5.100.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/16992)
- chore(deps-dev): bump rollup from 4.45.0 to 4.45.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/16993)
- chore(deps-dev): bump marked from 16.0.0 to 16.1.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/16991)
- chore(deps): bump on-headers and compression (by @openlayers in https://github.com/openlayers/openlayers/pull/16986)
- chore(deps-dev): bump @typescript-eslint/parser from 8.36.0 to 8.37.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/16990)
- chore(deps-dev): bump ol-stac from 1.0.0 to 1.0.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/16989)
- chore(deps-dev): bump eslint from 9.29.0 to 9.31.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/16981)
- chore(deps-dev): bump puppeteer from 24.10.1 to 24.12.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/16980)
- chore(deps-dev): bump rollup from 4.43.0 to 4.45.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/16979)
- chore(deps-dev): bump proj4 from 2.17.0 to 2.19.6 (by @openlayers in https://github.com/openlayers/openlayers/pull/16982)
- chore(deps-dev): bump @typescript-eslint/parser from 8.34.0 to 8.36.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/16983)
- chore(deps-dev): bump marked from 15.0.12 to 16.0.0 (by @openlayers in https://github.com/openlayers/openlayers/pull/16944)
- chore(deps-dev): bump mocha from 11.6.0 to 11.7.1 (by @openlayers in https://github.com/openlayers/openlayers/pull/16943)
- chore(deps-dev): bump @rollup/plugin-commonjs from 28.0.5 to 28.0.6 (by @openlayers in https://github.com/openlayers/openlayers/pull/16934)
- chore(deps-dev): bump webpack-sources from 3.3.2 to 3.3.3 (by @openlayers in https://github.com/openlayers/openlayers/pull/16933)
- chore(deps-dev): bump codemirror from 6.0.1 to 6.0.2 (by @openlayers in https://github.com/openlayers/openlayers/pull/16927)