Back to Openlayers

10.10.0

changelog/v10.10.0.md

10.10.013.5 KB
Original Source

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. 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.

<details> <summary>Dependency Updates</summary> </details>