Download Latest Version v10.10.0 source code.zip (29.3 MB)
Email in envelope

Get an email when there's a new version of OpenLayers

Home / v10.10.0
Name Modified Size InfoDownloads / Week
Parent folder
v10.10.0-package.zip 2026-07-27 3.2 MB
v10.10.0-site.zip 2026-07-27 20.9 MB
README.md 2026-07-27 15.2 kB
v10.10.0 source code.tar.gz 2026-07-27 28.3 MB
v10.10.0 source code.zip 2026-07-27 29.3 MB
Totals: 5 Items   81.7 MB 5

10.10.0

The 10.10 release brings improvements throughout the library — from tile and vector rendering to sources, formats and interactions. The highlights are

  • Text support in the WebGL vector renderers, plus stale tile handling for WebGL tile layers
  • Smoother tile rendering: instead of clipping and redrawing full tiles, only the remainders of lower zoom levels are drawn
  • WMTS and OGC tile grids now honor the advertised tile matrix set limits, so no tiles are requested outside a layer's data extent
  • GeoZarr gains selection of non-spatial dimensions, e.g. for time series
  • Text along lines honors offsetX and is split into graphemes, so ligatures are no longer cut apart
  • Fixes for the Modify interaction's tracing, vector tile resolutions, decluttering z-index order, and text rendering of long lines

Upgrade notes

Usage of Intl.Segmenter

TextPath now relies on Intl.Segmenter (developer.mozilla.org). For support of very old browsers (e.g. Firefox before version 125), a polyfill is available: https://formatjs.github.io/docs/polyfills/intl-segmenter/.

Deprecation of ol/source/BingMaps

Bing Maps for Enterprise is being retired on June 30th, 2028. The BingMaps source has been deprecated. Use ol/source/ImageTile with the Azure Maps tile API instead. See the azure-maps example for guidance.

:::js
// Before
new BingMaps({
  key: 'YOUR_BING_MAPS_KEY',
  imagerySet: 'RoadOnDemand',
})

// After
new ImageTile({
  url: `https://atlas.microsoft.com/map/tile?subscription-key=YOUR_AZURE_MAPS_KEY&api-version=2.0&tilesetId=microsoft.base.road&zoom={z}&x={x}&y={y}&tileSize=256`,
  attributions: `© ${new Date().getFullYear()} TomTom, Microsoft`,
})

createFromCapabilitiesMatrixSet now respects TileMatrixSetLimits

When a matrixLimits array is passed to createFromCapabilitiesMatrixSet, the returned tile grid will now restrict tile requests to the MinTileRow/MaxTileRow/MinTileCol/MaxTileCol bounds advertised for each zoom level. Previously those bounds were ignored and the full matrix extent was used, causing tile requests outside the layer's data extent.

If you were passing matrixLimits only to filter zoom levels and relied on the full matrix range being loaded at each level, you can omit the matrixLimits argument or pass an empty array to restore the previous behavior.

List of all changes

See below for a complete list of features and fixes.

Dependency Updates * chore(deps): bump pbf from 5.1.0 to 5.1.2 in the production-minor-patch group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17566) * chore(deps): bump websocket-driver from 0.7.4 to 0.7.5 (by @openlayers in https://github.com/openlayers/openlayers/pull/17563) * chore(deps): bump the actions group with 2 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17567) * chore(deps): bump github/codeql-action from 4.36.2 to 4.36.3 in the actions group (by @openlayers in https://github.com/openlayers/openlayers/pull/17555) * chore(deps-dev): bump the development-minor-patch group with 3 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17557) * chore(deps): bump earcut from 3.1.0 to 3.2.3 in the production-minor-patch group (by @openlayers in https://github.com/openlayers/openlayers/pull/17558) * chore(deps-dev): bump the development-minor-patch group across 1 directory with 8 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17554) * chore(deps): bump earcut from 3.0.2 to 3.1.0 in the production-minor-patch group (by @openlayers in https://github.com/openlayers/openlayers/pull/17549) * chore(deps-dev): bump the development-major group with 2 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17547) * chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the actions group (by @openlayers in https://github.com/openlayers/openlayers/pull/17541) * chore(deps-dev): bump the development-security group across 1 directory with 2 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17534) * chore(deps-dev): bump sinon from 21.1.2 to 22.0.0 in the development-major group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17510) * chore(deps-dev): bump tmp from 0.2.4 to 0.2.7 in the development-security group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17496) * chore(deps-dev): bump the development-minor-patch group across 1 directory with 15 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17533) * chore(deps): bump the actions group across 1 directory with 2 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17532) * chore(deps): bump pbf from 4.0.1 to 5.1.0 in the production-major group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17521) * chore(deps-dev): bump webpack-dev-server from 5.2.3 to 5.2.4 in the development-security group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17485) * chore(deps-dev): bump fast-uri from 3.0.2 to 3.1.2 in the development-security group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17484) * chore(deps-dev): bump the development-minor-patch group across 1 directory with 11 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17481) * chore(deps): bump zarrita from 0.7.2 to 0.7.3 in the production-minor-patch group (by @openlayers in https://github.com/openlayers/openlayers/pull/17480) * chore(deps): bump the actions group with 2 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17477) * chore(deps-dev): bump ip-address from 10.1.0 to 10.2.0 in the development-security group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17475) * chore(deps-dev): bump the development-minor-patch group with 2 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17470) * chore(deps): bump zarrita from 0.7.1 to 0.7.2 in the production-minor-patch group (by @openlayers in https://github.com/openlayers/openlayers/pull/17471) * chore(deps): bump github/codeql-action from 4.35.1 to 4.35.2 in the actions group (by @openlayers in https://github.com/openlayers/openlayers/pull/17460) * chore(deps-dev): bump the development-minor-patch group with 6 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17461) * chore(deps-dev): bump the development-minor-patch group across 1 directory with 10 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17458) * chore(deps): bump geotiff from 3.0.5 to 3.1.0-beta.0 in the production-minor-patch group (by @openlayers in https://github.com/openlayers/openlayers/pull/17450) * chore(deps-dev): bump marked from 17.0.6 to 18.0.0 in the development-major group (by @openlayers in https://github.com/openlayers/openlayers/pull/17448) * chore(deps): bump the actions group with 2 updates (by @openlayers in https://github.com/openlayers/openlayers/pull/17447) * chore(deps): bump protocol-buffers-schema from 3.6.0 to 3.6.1 in the production-security group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17443) * chore(deps-dev): bump dompurify from 3.3.3 to 3.4.0 in the development-security group across 1 directory (by @openlayers in https://github.com/openlayers/openlayers/pull/17441)

New Contributors

Full Changelog: https://github.com/openlayers/openlayers/compare/v10.9.0...v10.10.0

Source: README.md, updated 2026-07-27