Skip to content

v10.10.0

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Jul 22:33
a23f258

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.

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

  • Reset loader in setParams for image sources (by @hyeonjun-L in #17572)
  • Relative css and vite base path for examples (by @ahocevar in #17579)
  • Get rid of mocha, use vitest for node tests too (by @ahocevar in #17577)
  • Support offsetX for text placed along a line (by @sobol-sudo in #17576)
  • Line labels: properly split text by graphemes (by @yohanboniface in #17575)
  • Draw lower z remainders only instead of clipping and drawing full tiles (by @ahocevar in #17543)
  • Replace webpack with vite (by @tschaub in #17568)
  • Add non-spatial dimension selection to the GeoZarr source (by @lhoupert in #17542)
  • Fix modify tracing (by @ahocevar in #17544)
  • Add support for text in WebGL renderers (by @jahow in #16693)
  • Add stale tile handling to the WebGL tile renderer (by @ahocevar in #17559)
  • Do not skip transform on rotated maps (by @ahocevar in #17553)
  • Add a Vitest browser-mode test setup (by @hyeonjun-L in #17515)
  • fix typedef for FilterFunction in Select (by @sguimmara in #17550)
  • Fix ZIndexContext instructions desynchronization (by @M393 in #17540)
  • Use assert from chai.js (by @tschaub in #17539)
  • GeoZarr: add support for proj:projjson and proj:wkt2 (by @ahocevar in #17482)
  • Fix incorrect VectorTile source resolution calculation (by @ahocevar in #17490)
  • Transparency outside source coverage on reprojected WebGLTile layers (by @ahocevar in #17525)
  • WebGL / Use style variables values to determine the type of an expression (by @jahow in #17538)
  • Guard WebGL vector layer buffer disposal against a removed helper (by @fredj in #17536)
  • Use already calculated canvas size to avoid pixel differences (by @ahocevar in #17535)
  • Clip long lines at render extent boundary for text rendering (by @ahocevar in #17527)
  • Fix LinearRing extent intersections (by @cyphercodes in #17524)
  • Make resize observer cross-realm safe for maps in a separate window (by @ahocevar in #17520)
  • Use the correct GeoTIFF alpha band in WebGLTile layer (by @m-mohr in #17516)
  • fix(webgl): renderer return null value if buffers not exist (by @n-elhk in #17503)
  • Document the background option for canvas-based layers (by @fredj in #17513)
  • Deprecate BingMaps source and migrate mobile-full-screen example to OSM (by @fredj in #17512)
  • Fix VectorSource#hasFeature to use identity check when feature has an id (by @fredj in #17511)
  • Update puppeteer and fix font loading (by @ahocevar in #17506)
  • Respect TileMatrixSetLimits when creating WMTS tile grids (by @fredj in #17505)
  • Automatically sort images in multi-page geotiffs (by @isti115 in #17488)
  • Improve type determination when parsing style expressions (by @jahow in #17498)
  • Use configured featureClass in GeoJSON reader to instanciate a new Feature (by @HenFo in #17486)
  • docs: add workletjs library to 3rd party resources (by @Jonnytoshen in #17473)
  • Add support for setting response format in Sentinelhub (by @zcernigoj in #17418)
  • Handle OGC tileMatrixSetLimits with minzoom (by @ahocevar in #17469)
  • fix ImageArcGISRest and TileArcGISRest to support ArcREST case sensitivity (by @Ecotrust in #17468)
  • VectorSource now removes loaded extents by overlap rather than exact match (by @viktorijasolovjova in #17464)
  • Generate API docs for symbols with @OverRide (by @ahocevar in #17462)
  • Raster source improvements (by @ahocevar in #17451)
  • No offset loop detection for first and last segment of closed ring lines (by @ahocevar in #17459)
  • Render dirctly to target canvas, if possible (by @ahocevar in #17455)
  • Add sponsor logo and link for Chunk Base (by @ahocevar in #17454)
  • Clear target canvas at the beginning of renderFrame() (by @ahocevar in #17453)
  • Remove "crs" property from GeoJSON examples (by @pavankguduru in #17452)
  • docs: added collapsible functionality to the different sections in the example pages (by @KWangechi in #17446)
  • Updates for the 10.9.0 release (by @openlayers in #17440)
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 #17566)
  • chore(deps): bump websocket-driver from 0.7.4 to 0.7.5 (by @openlayers in #17563)
  • chore(deps): bump the actions group with 2 updates (by @openlayers in #17567)
  • chore(deps): bump github/codeql-action from 4.36.2 to 4.36.3 in the actions group (by @openlayers in #17555)
  • chore(deps-dev): bump the development-minor-patch group with 3 updates (by @openlayers in #17557)
  • chore(deps): bump earcut from 3.1.0 to 3.2.3 in the production-minor-patch group (by @openlayers in #17558)
  • chore(deps-dev): bump the development-minor-patch group across 1 directory with 8 updates (by @openlayers in #17554)
  • chore(deps): bump earcut from 3.0.2 to 3.1.0 in the production-minor-patch group (by @openlayers in #17549)
  • chore(deps-dev): bump the development-major group with 2 updates (by @openlayers in #17547)
  • chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the actions group (by @openlayers in #17541)
  • chore(deps-dev): bump the development-security group across 1 directory with 2 updates (by @openlayers in #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 #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 #17496)
  • chore(deps-dev): bump the development-minor-patch group across 1 directory with 15 updates (by @openlayers in #17533)
  • chore(deps): bump the actions group across 1 directory with 2 updates (by @openlayers in #17532)
  • chore(deps): bump pbf from 4.0.1 to 5.1.0 in the production-major group across 1 directory (by @openlayers in #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 #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 #17484)
  • chore(deps-dev): bump the development-minor-patch group across 1 directory with 11 updates (by @openlayers in #17481)
  • chore(deps): bump zarrita from 0.7.2 to 0.7.3 in the production-minor-patch group (by @openlayers in #17480)
  • chore(deps): bump the actions group with 2 updates (by @openlayers in #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 #17475)
  • chore(deps-dev): bump the development-minor-patch group with 2 updates (by @openlayers in #17470)
  • chore(deps): bump zarrita from 0.7.1 to 0.7.2 in the production-minor-patch group (by @openlayers in #17471)
  • chore(deps): bump github/codeql-action from 4.35.1 to 4.35.2 in the actions group (by @openlayers in #17460)
  • chore(deps-dev): bump the development-minor-patch group with 6 updates (by @openlayers in #17461)
  • chore(deps-dev): bump the development-minor-patch group across 1 directory with 10 updates (by @openlayers in #17458)
  • chore(deps): bump geotiff from 3.0.5 to 3.1.0-beta.0 in the production-minor-patch group (by @openlayers in #17450)
  • chore(deps-dev): bump marked from 17.0.6 to 18.0.0 in the development-major group (by @openlayers in #17448)
  • chore(deps): bump the actions group with 2 updates (by @openlayers in #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 #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 #17441)

New Contributors

Full Changelog: v10.9.0...v10.10.0