Skip to content

Releases: openlayers/openlayers

v10.7.0

04 Nov 20:03
4a989ef

Choose a tag to compare

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 setSrc method 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/Text clone() to properly handle non-Fill instances… 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-offset style 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/Draw by @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://...
Read more

v10.6.1

10 Oct 18:42
0722006

Choose a tag to compare

What's Changed

  • Updates for the 10.6.0 release by @ahocevar in #16914
  • Remove willReadFrequently hint createCanvasContext2D when creating hitDetectionContext_ by @natalvc in #16919
  • fix type hint for getClosestFeatureToCoordinate() by @knrdl in #16916

New Contributors

Full Changelog: v10.6.0...v10.6.1

v10.6.0

16 Jun 19:39
5820c20

Choose a tag to compare

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

New Contributors

Read more

v10.5.0

02 Apr 09:10

Choose a tag to compare

The 10.5.0 release contains many fixes, typing improvements, but also several new features:

  • The Snap interaction now allows snapping to segment intersections; it also offers a new unsnap event
  • Added support for LineStrings and expressions in the Heatmap layer
  • Added getLength method to the MultiLineString geometry class
  • Added a source.setParams() API alongside the existing source.updateParams for 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 has expression 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-space and color-rgba packages, 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.

Dependency Updates
Read more

v10.4.0

29 Jan 19:26
85219a8

Choose a tag to compare

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

Read more

v10.3.1

06 Dec 15:34

Choose a tag to compare

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.

Dependency Updates

Full Changelog: v10.3.0...v10.3.1

v10.3.0

30 Nov 11:30
e5d6336

Choose a tag to compare

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.

Dependency Updates
Read more

v10.2.1

26 Sep 20:27
f274df2

Choose a tag to compare

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

New Contributors

Full Changelog: v10.2.0...v10.2.1

v10.2.0

23 Sep 08:23
a70874d

Choose a tag to compare

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.

Dependency Updates

New Contributors

Full Changelog: v10.1.0...v10.2.0

v10.1.0

22 Aug 02:50

Choose a tag to compare

Thanks to those who contributed to the 10.1 release! See below for a complete list of new features and fixes.

πŸŽ‚ features

🐜 fixes

🚬 dependencies

πŸ† new contributors

πŸ“œ full changelog v10.0.0...v10.1.0