# What changed in ol

> 119 changes in ol 10 from its official release notes, upgrade guides and advisories: 6 breaking, 4 deprecations, 33 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/ol/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## ol 10

### Breaking changes

- Geometries with empty coordinate arrays, except GeometryCollection, are now parsed as null geometries to match the GeoJSON spec recommendation. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- Color interpolation now uses sRGB on both Canvas and WebGL, so Canvas gradients may look different; interpolated channels retain fractional values. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- WMTS tile grid extent now comes only from an advertised BoundingBox; getExtent() returns null when none is advertised, while tile requests use matrix sizes and limits. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- WMTS capabilities-derived wrapX is now based on whether the first tile matrix spans the projection extent; override it to false if a single world copy is desired. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- TextPath relies on Intl.Segmenter; very old browsers may need a polyfill. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- The separate group option for the GeoZarr source was removed. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)

### Deprecations

- The BingMaps source is deprecated; use ol/source/ImageTile with the Azure Maps tile API instead. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- BingMaps for Enterprise is being retired on June 30th, 2028; the release recommends ImageTile with the Azure Maps tile API. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- The ol/format/Polyline function is deprecated without replacement. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- ol/array stableSort is deprecated; use the stable built-in Array.sort instead. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)

### New APIs and options

- Adds a fetchSessionToken option to Google. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- The GeoZarr source can visualize generic n-D datacubes. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- The method accepts a wrapX option. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- The method accepts a wrapX option. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- Use interpolate-hcl to retain perceptual color gradients; it is currently supported only by the Canvas renderer. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- Raster sources now have basic data tile support. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- GeoZarr sources accept storeOptions for headers and credentials. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- The new rotateContent option supports crisp rendering on rotated views, including rotated text and point symbols. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- The WKT format accepts projection options. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- The GeoZarr source supports selecting non-spatial dimensions, such as for time series. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- GeoZarr adds support for proj:projjson and proj:wkt2. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Sentinelhub supports setting the response format. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- WebGL vector renderers now support text. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- GeoTIFF sources now support a custom fetch client. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- The ImageLayer base now includes the background option. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- GeoTIFF source options now support attributions. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- An experimental source supports raster data conforming to the evolving GeoZarr specification. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Modify options now accept a filter function. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- A new source supports OGC API Maps. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- The new stroke offset option enables line offsets in Canvas rendering. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Canvas map targets support pixelRatio, and the map now has pixelRatio getter and setter methods. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Property definitions now support generics, enabling typed property definitions. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Support for ReferrerPolicy when fetching source data and icons lets requests include a referer header where required. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Bing Maps and Google sources gain extra URL options. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- The Extent interaction gains createCondition and drag options. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- The Extent interaction gains createCondition and drag options. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- Icon style gains a setSrc method for changing its source. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- Draw gains a setter and getter for freehand. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- ol can be used inside a worker, with full Map support and an (Offscreen)Canvas as the map target. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- ZoomToExtent gains FitOptions. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- Select gains methods for adding and removing features. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- WebGL styles gain the stroke-pattern-start-offset style property. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- URL templates using {z}/{x}/{y} are supported. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)

### Performance

- Tiles no longer needed by the current view are dropped from the queue. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- The WebGL text overlay worker is loaded on demand. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- Tile rendering draws only lower-zoom remainders instead of clipping and redrawing full tiles. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Opened arrays are cached across tile loads, band arrays open in parallel, tile sizes align with inner shards, and concurrent byte-range requests are coalesced. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Loading striped GeoTIFFs and reprojected WebGL tiles is more efficient. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Filtering out features in WebGL rendering is more efficient. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- WebGL instanced rendering improves performance and memory usage. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- WebGL layers use a single buffer to improve memory usage. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)

### Behavior and default changes

- Canvas styles now evaluate the array operator. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- WFS 2.0.0 transaction filters now use fes:ResourceId. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- APIs that required a Promise now accept any thenable. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- When matrixLimits is passed, the returned tile grid restricts requests to the advertised row and column bounds for each zoom level. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- The GeoJSON reader uses the configured featureClass to instantiate a Feature. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Images in multi-page GeoTIFFs are sorted automatically. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Long lines are clipped at the render extent boundary for text rendering. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- VectorSource removes loaded extents by overlap rather than exact match. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Style variable values are used to determine the type of an expression. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- GeoTIFF sources provide min, max, and nodata values per band. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- GeoTIFF sources can load unknown projections. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- GeoZarr sources can load bands from multiple Zarr groups. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Hit detection now has a default stroke. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- The flat-style in operator now accepts literal number arrays as its haystack. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Shared vertices are treated as equal. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Resolution is computed from spatial:bbox and spatial:shape. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Vector tile layers are clipped at the layer extent. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Generic projection code lookup is based on spatialreference.org. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Tracing is supported with the Modify interaction. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- VectorTile layers now support reprojection. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)

### Fixes and other changes

- Canvas styles now evaluate the color operator. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- The function now respects the stride parameter. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- Fixes target cleanup for MouseWheelZoom. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- Fixes rendering of RTL text along lines. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- Text is aligned to the visible part of a line only when textAlign is undefined. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- Nested WFS 2.0 FeatureCollections are now read correctly. (10.11.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.11.0)
- ImageArcGISRest and TileArcGISRest now support ArcREST case sensitivity. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Decluttering z-index ordering has been fixed. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- WebGLTile layers now use the correct GeoTIFF alpha band. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- setParams resets the loader for image sources. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Text is split by graphemes so ligatures are no longer cut apart. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- LinearRing extent intersection handling has been fixed. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Tracing in the Modify interaction has been fixed. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Text placed along a line now honors offsetX. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Transparency outside source coverage is handled on reprojected WebGLTile layers. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Transforms are no longer skipped on rotated maps. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- hasFeature uses an identity check when a feature has an id. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Incorrect VectorTile source resolution calculation has been fixed. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- WebGL tile rendering now handles stale tiles. (10.10.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.10.0)
- Cloning a Feature with a custom geometry name is fixed. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- GeoZarr nodata handling was improved. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Blur and radius expressions now work after inlining blurSlope computation. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- A stroked polygon renders correctly after a non-stroked polygon when overlaps is false. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Snap intersections with mixed GeometryCollection geometries are fixed. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Text on circle features now works with decluttering. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Trackpad pinch-to-zoom deltas are inflated, and zoom feel is consistent with and without constrainResolution. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Failure handling for promise-based vector loaders was fixed. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Hit detection now works for features beyond tile boundaries. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Rendering precision was improved to eliminate artifacts when zoomed in. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Artifacts when zooming far into a WebGLTile layer were fixed. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Geometry updates preserve per-geometry Z and M values. (10.9.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.9.0)
- Dynamic icon color handling for Canvas was fixed. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- The bandCount property now works for band expressions. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- The Heatmap class now includes its missing event types. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Hit detection at polygon edges was fixed. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- setParams() now updates the image request parameters. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- The link interaction now works with views that are not fully defined. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- The first and last vertices of a polygon are synchronized during a modify drag. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Pattern fill rotation was fixed. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Blank input tiles are avoided when reprojecting. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Feature collection events now fire in the correct order. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- Vector layer wrapping behavior was fixed. (10.8.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.8.0)
- The tile cache for raster reprojection source tiles is restored. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- Glitched rendering in ReprojDataTile is fixed. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- Snap receives fixes, including avoiding duplicate snap events registered on the same feature. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- Duplicate rendering is prevented for vector tiles using renderMode: 'vector'. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- Boolean attributes in WebGL expressions are now handled properly. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
- The bounding box from the layer is used in WMTS capabilities. (10.7.0) — [release notes](https://github.com/openlayers/openlayers/releases/tag/v10.7.0)
