Releases: openlayers/openlayers
v7.5.0
The 7.5 release includes a solid batch of new features and fixes. Among the improvements, you'll find more control over label decluttering, improved WebGL semi-transparent tile rendering, more consistency hit detecting transparent items, improvements with WebGL vector rendering, fixes for raster source loading, and more.
No special changes should be required when upgrading from previous 7.x releases. See the upgrade notes for a few minor changes in behavior.
List of all changes
See below for a complete list of features and fixes.
- New flushDeclutterItems() map method to control declutter stack (by @ahocevar in #14971)
- Render VectorLayer when ReplayGroup is empty but render listener exists (by @M393 in #14984)
- Improve the description of the Coordinate type (by @isti115 in #14994)
- Use none to avoid hit detection of text fills (by @tschaub in #14992)
- Reorganise old no fill / transparent fill tests (by @mike-000 in #14982)
- Migrate to @rollup/plugin-terser (by @bjornharrtell in #14985)
- WebGLTile: Properly render semi-transparent tiles (by @puckipedia in #14983)
- Hit detect transparent fill and backgroundFill in Text styles (by @mike-000 in #14943)
- Hit detect images even if zero opacity (by @mike-000 in #14939)
- Fix test for keyboard zoom on a Mac (by @fjellfly in #14977)
- Apply dashed line hit detection to all geometry types (by @mike-000 in #14938)
- npx update-browserslist-db@latest (by @ahocevar in #14975)
- fix #14968 (by @tanhh326 in #14972)
- Don't overwrite browser zoom shortcuts (by @fjellfly in #14946)
- Add upgrade note about start/end textAlign fix (by @ahocevar in #14970)
- Fix textAlign start/end for placement: line (by @ahocevar in #14932)
- Cannot create polygon from empty extent (by @mike-000 in #14962)
- Use Terrarium tiles in Shaded Relief examples (by @mike-000 in #14957)
- fix Style RenderFunction type (by @tanhh326 in #14956)
- Update TileJSON source url (by @mike-000 in #14937)
- Slightly enhance documentation for circle radius (by @openlayers in #14951)
- More WebGL TileHelper cleanup (by @ahocevar in #14935)
- Better types for more timeouts (by @mike-000 in #14934)
- WebGL helper improvements (by @ahocevar in #14929)
- Use new headless option for Puppeteer (by @ahocevar in #14928)
- Add typedef, use underscore for private methods (by @mike-000 in #14925)
- Fix infinite tile rendering loop and incomplete images in Raster source (by @ahocevar in #14922)
- Remove .nvmrc (by @ahocevar in #14917)
- Remove reference to ES5 (by @mike-000 in #14907)
- Draw features style example (by @ahocevar in #14920)
- Fix cluster source handling of points with null geometry (by @roemhildtg in #14915)
- Avoid line dash flicker in Measure examples (by @mike-000 in #14918)
- Use
touch-action: none;
for elements in viewport (by @mike-000 in #14906) - return last snapTo feature (by @fmg-lydonchandra in #14676)
- Fix dynamic background color (by @kikuchan in #14895)
- Remove marked warning (by @ahocevar in #14878)
- Update concepts.md (by @barnoma-soz in #14882)
- Fix VectorImageLayer opacity (by @MrLynx93 in #14867)
- Another attempt to avoid missing tiles with the Raster source (by @ahocevar in #14856)
- Avoid missing tiles for Raster source using Tile layers or sources (by @ahocevar in #14853)
- WebGL / Support styles with only fill, stroke or symbol, better defaults (by @jahow in #14840)
- Use MapTiler Coordinates API to find proj4 transforms without
+nadgrids
forfromEPSGCode()
(by @mike-000 in #14692) - Remove pointer events polyfill from examples (by @ahocevar in #14816)
- Optionally show or hide Bing 'placeholder' tiles (by @Shane98c in #14832)
- Expressions / add
geometry-type
operator, fix exponentialinterpolate
(by @jahow in #14837) - Test image with less text for lower font engine sensitivity (by @ahocevar in #14828)
- Add support for 'in' and 'sqrt' operators in expressions (by @jahow in #14803)
- Rework webgl points hit detection (by @gberaudo in #14806)
- send 'loadend' event on layer image load failure (by @Tobias43 in #14810)
- Add option-based support for options.target in ZoomSlider (by @Pierstoval in #14807)
- Update reference image for changed type system on CI (by @ahocevar in #14805)
- Update sponsors (by @ahocevar in #14789)
- Fix ufos example with type hint (by @MoonE in #14791)
- Miscellaneous rich text documentation fixes (by @mike-000 in #14790)
- Get a pixel perfect match WMS image (by @sbrunner in #14719)
- Updates for the 7.4.0 release (by @openlayers in #14787)
Dependency Updates
- Bump puppeteer from 20.9.0 to 21.0.1 (by @openlayers in #14980)
- Bump marked from 5.1.2 to 7.0.0 (by @openlayers in #14981)
- Bump handlebars from 4.7.7 to 4.7.8 (by @openlayers in #14979)
- Bump marked from 5.1.1 to 5.1.2 (by @openlayers in #14960)
- Bump eslint from 8.45.0 to 8.46.0 (by @openlayers in #14959)
- Bump @metalsmith/in-place from 4.6.0 to 5.0.0 (by @openlayers in #14940)
- Bump puppeteer from 20.8.2 to 20.9.0 (by @openlayers in #14942)
- Bump webpack from 5.88.1 to 5.88.2 (by @openlayers in #14941)
- Bump eslint from 8.44.0 to 8.45.0 (by @openlayers in #14903)
- Bump @octokit/rest from 19.0.13 to 20.0.1 (by @openlayers in #14905)
- Bump metalsmith from 2.6.0 to 2.6.1 (by @openlayers in #14904)
- Bump puppeteer from 20.8.0 to 20.8.2 (by @openlayers in #14902)
- Bump @rollup/plugin-commonjs from 25.0.2 to 25.0.3 (by @openlayers in #14901)
- Bump globby from 13.2.1 to 13.2.2 (by @openlayers in #14890)
- Bump puppeteer from 20.7.4 to 20.8.0 (by @openlayers in #14889)
- Bump marked from 5.1.0 to 5.1.1 (by @openlayers in #14888)
- Bump semver from 7.5.3 to 7.5.4 (by @openlayers in #14887)
- Bump webpack from 5.88.0 to 5.88.1 (by @openlayers in #14874)
- Bump globby from 13.2.0 to 13.2.1 (by @openlayers in #14876)
- Bump eslint from 8.43.0 to 8.44.0 (by @openlayers in #14875)
- Bump typescript from 5.1.3 to 5.1.6 (by @openlayers in #14873)
- Bump puppeteer from 20.7.3 to 20.7.4 (by @openlayers in #14872)
- Bump sinon from 15.1.2 to 15.2.0 (by @openlayers in #14863)
- Bump webpack from 5.87.0 to 5.88.0 (by @openlayers in #14862)
- Bump @rollup/...
v7.4.0
Summary
The 7.4 release includes WebGL vector tiles along with several improvements to vector styling of WebGL layers, a new interaction for one-finger zooming on touch devices, and support for way geometries in the OSMXML parser. Several bug fixes for working with user projections and performance improvements for WebGL tile rendering are also on on board.
What's Changed
- Updates for the 7.3.0 release by @tschaub in #14548
- Avoid rendering a tile more than once by @tschaub in #14550
- Bump ol-mapbox-style from 9.7.0 to 10.1.0 by @dependabot in #14551
- Update CONTRIBUTING.md by @RobQuincey in #14568
- Bump puppeteer from 19.7.2 to 19.7.4 by @dependabot in #14559
- Bump ol-mapbox-style from 10.1.0 to 10.2.0 by @dependabot in #14561
- Bump webpack from 5.75.0 to 5.76.1 by @dependabot in #14563
- Bump sinon from 15.0.1 to 15.0.2 by @dependabot in #14566
- Bump jquery from 3.6.3 to 3.6.4 by @dependabot in #14560
- Bump rollup-plugin-external-globals from 0.7.1 to 0.7.3 by @dependabot in #14562
- Bump proj4 from 2.8.1 to 2.9.0 by @dependabot in #14564
- Bump eslint from 8.35.0 to 8.36.0 by @dependabot in #14565
- Fix issue with external map example by @RobQuincey in #14572
- Automatically update URL of examples page based on search query by @RobQuincey in #14576
- Remove unused, broken getTileRangeExtent method by @ahocevar in #14579
- Bump puppeteer from 19.7.4 to 19.7.5 by @dependabot in #14588
- Bump webpack-dev-server from 4.11.1 to 4.13.1 by @dependabot in #14587
- Bump webpack from 5.76.1 to 5.76.2 by @dependabot in #14585
- Bump webpack-dev-middleware from 6.0.1 to 6.0.2 by @dependabot in #14584
- Avoid unnecessary else if indentation by @tschaub in #14591
- Handle direction function by @tschaub in #14590
- Bump typescript from 4.9.5 to 5.0.2 by @dependabot in #14586
- WebGL / Introduce a base tile renderer by @jahow in #14594
- Add latest typescript to CodeSandbox devDependencies by @mike-000 in #14589
- Update deprecated KeyboardEvent properties by @mike-000 in #14598
- Smarter isVisible method on Layer by @ahocevar in #14599
- Do not use non-API methods in example by @ahocevar in #14607
- Handle wrapped worlds in Box Selection example by @mike-000 in #14608
- WebGL Points / mark the renderer as initially ready by @jahow in #14611
- Bump sinon from 15.0.2 to 15.0.3 by @dependabot in #14612
- Bump marked from 4.2.12 to 4.3.0 by @dependabot in #14613
- Bump puppeteer from 19.7.5 to 19.8.0 by @dependabot in #14614
- Bump fs-extra from 11.1.0 to 11.1.1 by @dependabot in #14615
- Bump ol-mapbox-style from 10.2.0 to 10.3.4 by @dependabot in #14617
- Bump webpack from 5.76.2 to 5.76.3 by @dependabot in #14616
- Base scale calculation on icon size, not image size by @ahocevar in #14619
- WebGL vector tile renderer by @jahow in #14445
- Clear size when target is detached from map by @ahocevar in #14622
- Helper method to bind a texture by @tschaub in #14628
- Ensure empty extents stay empty when transformed by @mike-000 in #14627
- Allow postProcesses to be passed to parent renderer by @tschaub in #14630
- Bump puppeteer from 19.8.0 to 19.8.3 by @dependabot in #14636
- Bump eslint from 8.36.0 to 8.37.0 by @dependabot in #14635
- Bump webpack from 5.76.3 to 5.77.0 by @dependabot in #14634
- Bump webpack-dev-server from 4.13.1 to 4.13.2 by @dependabot in #14633
- Bump typescript from 5.0.2 to 5.0.3 by @dependabot in #14632
- Make Modify hitdetect mode work with user projection by @ahocevar in #14638
- Bump eslint from 8.37.0 to 8.38.0 by @dependabot in #14655
- Bump ol-mapbox-style from 10.3.4 to 10.4.0 by @dependabot in #14649
- Bump @metalsmith/layouts from 2.6.0 to 2.7.0 by @dependabot in #14654
- Bump @rollup/plugin-node-resolve from 15.0.1 to 15.0.2 by @dependabot in #14653
- Bump puppeteer from 19.8.3 to 19.8.5 by @dependabot in #14652
- Bump typescript from 5.0.3 to 5.0.4 by @dependabot in #14651
- Draw DataTile image at correct position when converting to array by @mike-000 in #14647
- Bump webpack from 5.77.0 to 5.78.0 by @dependabot in #14650
- WebGL / Add support for stroke and fill in the ShaderBuilder class by @jahow in #14660
- Fix VectorContext drawFeature and drawCircle with user projection by @mike-000 in #14659
- Remove experimental description from getUserProjection() API method by @mike-000 in #14656
- Bump globby from 13.1.3 to 13.1.4 by @dependabot in #14678
- Bump semver from 7.3.8 to 7.4.0 by @dependabot in #14679
- Bump webpack-dev-server from 4.13.2 to 4.13.3 by @dependabot in #14680
- Bump puppeteer from 19.8.5 to 19.9.0 by @dependabot in #14682
- Bump @rollup/plugin-commonjs from 24.0.1 to 24.1.0 by @dependabot in #14677
- Bump webpack from 5.78.0 to 5.79.0 by @dependabot in #14681
- Bump ol-mapbox-style from 10.4.0 to 10.5.0 by @dependabot in #14683
- WebGL / add support for more types in style expressions by @jahow in #14685
- Bump karma from 6.4.1 to 6.4.2 by @dependabot in #14695
- Bump semver from 7.4.0 to 7.5.0 by @dependabot in #14696
- Bump puppeteer from 19.9.0 to 19.10.1 by @dependabot in #14697
- Bump webpack-cli from 5.0.1 to 5.0.2 by @dependabot in #14698
- Bump karma-chrome-launcher from 3.1.1 to 3.2.0 by @dependabot in #14701
- Bump sinon from 15.0.3 to 15.0.4 by @dependabot in #14702
- Bump webpack from 5.79.0 to 5.80.0 by @dependabot in #14699
- Bump eslint from 8.38.0 to 8.39.0 by @dependabot in #14700
- Rename properties to conform with protected / private conventions by @tschaub in #14694
- Fix several typos by @marcjansen in #14704
- Bump yargs from 17.7.1 to 17.7.2 by @dependabot in #14715
- Bump webpack from 5.80.0 to 5.81.0 by @dependabot in #14716
- Bump puppeteer from 19.10.1 to 19.11.1 by @dependabot in #14717
- Bump engine.io and socket.io by @dependabot in #14722
- Update Maptiler topo map to latest version by @ahocevar in #14724
- OSMXML: support reading geometry from ways by @simon04 in #14674
- Do not restrict image reprojection extent width for global projections by @mike-000 in #14706
- Bump webpack-dev-middleware from 6.0.2 to 6.1.0 by @dependabot in #14725
- Bump marked from 4.3.0 to 5.0.1 by @dependabot in https://github.com/openlayers/openlayers...
v7.3.0
The 7.3 release includes rendering performance improvements with many layers, performance improvements when snapping during editing, and a handful of useful fixes. See the detailed list of changes below. Nothing special should be required when upgrading from the 7.2 release. Thanks to those who contributed!
List of all changes
See below for a complete list of features and fixes.
- Use correct GeoTIFF value for image height in getResolutions (by @spoyd in #14511)
- Safeguard against negative view hint values to avoid unexpected behavior (by @jahow in #14545)
- Fix a padding setter bug of
ol/View
when usinguseGeographic()
(by @kikuchan in #14531) - Clean up artifacts after depoyment (by @tyrasd in #14533)
- Update ESRI World Basemap url in examples (by @mike-000 in #14524)
- Improve the performance of remove Snap interaction (by @XingGuoZ in #14516)
- Fix geolocation event types (by @ahocevar in #14503)
- Use
event.key
instead ofevent.charCode
(by @WebKieth in #14492) - New
isVisible()
andgetAttributions()
methods on Layer (by @ahocevar in #14476) - Use multisurface and multicurve for GML 3.2 and WFS 2.0 (by @ahocevar in #14471)
- Use fetch instead of jsonp for getting Bing metadata (by @ahocevar in #14464)
- Fix cloning of Icons with width/height (by @marcjansen in #14457)
- Add more browsers that support OffscreenCanvas (by @ahocevar in #14448)
- Use PointerEvent constructor, no need to support IE any more (by @ahocevar in #14438)
- Store images as canvas for more efficient reuse (by @ahocevar in #14444)
- Fix for issue #14389 (by @ghschier in #14430)
- Add repeat property for text along lines (by @ahocevar in #14400)
- Add .babelrc and .prettierrc to CodeSandbox export (by @mike-000 in #14419)
- Ensure gl context is cleared in
ol/source/Raster
(by @mike-000 in #14414) - Add rendering test for the full build (by @ahocevar in #14405)
- Release v7.2.2 (by @openlayers in #14404)
Dependency Updates
- Bump dns-packet from 5.3.1 to 5.4.0 (by @openlayers in #14547)
- Bump ol-mapbox-style from 9.6.0 to 9.7.0 (by @openlayers in #14539)
- Bump yargs from 17.7.0 to 17.7.1 (by @openlayers in #14538)
- Bump puppeteer from 19.7.1 to 19.7.2 (by @openlayers in #14537)
- Bump @metalsmith/markdown from 1.9.0 to 1.9.1 (by @openlayers in #14536)
- Bump eslint from 8.34.0 to 8.35.0 (by @openlayers in #14535)
- Bump puppeteer from 19.7.0 to 19.7.1 (by @openlayers in #14522)
- Bump ol-mapbox-style from 9.5.0 to 9.6.0 (by @openlayers in #14523)
- Bump jsdoc-plugin-typescript from 2.2.0 to 2.2.1 (by @openlayers in #14521)
- Bump jsdoc from 4.0.0 to 4.0.2 (by @openlayers in #14520)
- Bump yargs from 17.6.2 to 17.7.0 (by @openlayers in #14519)
- Bump pngjs from 6.0.0 to 7.0.0 (by @openlayers in #14518)
- Bump puppeteer from 19.6.3 to 19.7.0 (by @openlayers in #14504)
- Bump eslint from 8.33.0 to 8.34.0 (by @openlayers in #14505)
- Bump @metalsmith/in-place from 4.5.0 to 4.6.0 (by @openlayers in #14486)
- Bump typescript from 4.9.4 to 4.9.5 (by @openlayers in #14487)
- Bump puppeteer from 19.6.2 to 19.6.3 (by @openlayers in #14488)
- Bump @metalsmith/markdown from 1.8.0 to 1.9.0 (by @openlayers in #14489)
- Bump ua-parser-js from 0.7.31 to 0.7.33 (by @openlayers in #14461)
- Bump ol-mapbox-style from 9.4.0 to 9.5.0 (by @openlayers in #14468)
- Bump eslint from 8.32.0 to 8.33.0 (by @openlayers in #14469)
- Bump puppeteer from 19.5.2 to 19.6.2 (by @openlayers in #14470)
- Bump @rollup/plugin-commonjs from 24.0.0 to 24.0.1 (by @openlayers in #14452)
- Bump @octokit/rest from 19.0.5 to 19.0.7 (by @openlayers in #14451)
- Bump clean-css-cli from 5.6.1 to 5.6.2 (by @openlayers in #14450)
- Bump proj4 from 2.8.0 to 2.8.1 (by @openlayers in #14440)
- Bump marked from 4.2.5 to 4.2.12 (by @openlayers in #14439)
- Bump eslint from 8.31.0 to 8.32.0 (by @openlayers in #14441)
- Bump puppeteer from 19.4.1 to 19.5.2 (by @openlayers in #14442)
- Bump ol-mapbox-style from 9.3.0 to 9.4.0 (by @openlayers in #14429)
- Bump json5 from 1.0.1 to 1.0.2 (by @openlayers in #14428)
- Bump marked from 4.2.4 to 4.2.5 (by @openlayers in #14413)
- Bump ol-mapbox-style from 9.2.4 to 9.3.0 (by @openlayers in #14412)
- Bump jquery from 3.6.2 to 3.6.3 (by @openlayers in #14411)
- Bump eslint from 8.30.0 to 8.31.0 (by @openlayers in #14424)
New Contributors
- @ghschier made their first contribution in #14430
- @WebKieth made their first contribution in #14492
- @XingGuoZ made their first contribution in #14516
- @tyrasd made their first contribution in #14533
- @spoyd made their first contribution in #14511
Full Changelog: v7.2.2...v7.3.0
v7.2.2
The 7.2.2 release adds back missing symbols to the full build. See the changelog for 7.2.0 for new features and fixes since 7.1.
What's Changed
Full Changelog: v7.2.1...v7.2.2
v7.2.1
The 7.2.1 release is a patch to provide a working full build. See the changelog for 7.2.0 for new features and fixes since 7.1.
What's Changed
- Updates for the 7.2.0 release by @marcjansen in #14396
- Use custom query function to replace missing taffydb query features by @ahocevar in #14398
Full Changelog: v7.2.0...v7.2.1
v7.2.0
The 7.2 release includes …
- …some new features (e.g. for icon styling),
- …performance optimisations (e.g. for canvas rendering),
- …better interoperability (e.g. OGC API - Tiles support, saner projection-handling for GeoTIFFs and a new PMTiles example),
- …the usual smaller bugfixes, and
- …a lot of dependency updates.
Please find below four aspects of this release that we want to highlight and make
sure to scan over the full list of included changes (even further below).
OGC vector and map tile sources are now a stable part of the API
The OGC API – Tiles core v1 spec has been published, and as a consequence we marked the long existing vector and map tile sources as part of the stable API.
Introduce width
and height
configuration options to Icon
styles
It is now possible to create an icon symbolizer with an explicit width
and/or height
, e.g.:
const myIcon = new Icon({
src: 'data/icon.png',
width: 32,
height: 32
});
This is an additional configuration option to make working with image icons easier.
Rendered resolutions of ol/source/Raster
Previously, ol/source/Raster
processed input sources at the current view resolution, which caused interpolation artefacts in cases where input sources were up- or downsampled. Now, ol/source/Raster
picks up the resolutions from the first input source that has resolutions configured (either implicitly through a tile grid in the case of tile sources, or directly when configured through the resolutions
constructor option). This improves the rendered output in most cases.
If the previous behavior is desired, configure the source with resolutions: null
.
Fixed wrapX
behavior of ol/control/MousePosition
Previously, ol/control/MousePosition
always displayed coordinates as-is. Now it has a wrapX
option,
which is true
by default. This avoids longitudes aoutside the -180 to 180 degrees range.
If you want the previous behavior, which displays coordinates with longitudes less than -180 or greater than 180, configure the control with wrapX: false
.
List of all changes
See below for a complete list of features and fixes.
- Fix types and docs for GeolocationError (by @ahocevar in #14395)
- Introduce
width
andheight
to Icon style (by @KaiVolland in #14364) - Fix typo in Helper.js & inconsistency in ShaderBuilder.js comment. (by @Tomcariello in #14368)
- Rendering tests instead of unit tests for MapboxVector layer background (by @openlayers in #14355)
- Mark OGC tile sources as stable (by @tschaub in #14354)
- Calculate snap tolerance extent allowing for rotation (by @mike-000 in #14344)
- Updated extensions for Stamen tiles (by @tschaub in #14347)
- Convert closest point on geometry edge to user coordinates for snap (by @mike-000 in #14349)
- Fix immediate renderer image and text rotation in rotated canvas (by @mike-000 in #14333)
- Consider rotation when obtaining vector context pixel ratio (by @mike-000 in #14332)
- Update ArcGIS REST Feature Service example (by @mike-000 in #14296)
- Assign variable to work around swc minification problem (by @openlayers in #14320)
- Support better detection of projection in GeoTIFF files (by @ahocevar in #14321)
- Use ResizeObserver to detect resizes, also when in Shadow DOM (by @ahocevar in #14305)
- Ensure
change:position
event is fired if identify transform used (by @mike-000 in #14319) - Rename numberSafeCompareFunction to ascending (by @tschaub in #14311)
- Change ela-compil url (by @fredj in #14301)
- Update sponsors (by @ahocevar in #14293)
- Remove unused arguments (by @ahocevar in #14292)
- Also set version in full build (by @openlayers in #14288)
- Update example showing COG with external overviews (by @tschaub in #14286)
- Add resolutions option to Raster source (by @ahocevar in #14282)
- Handle layers that do not have a source yet (by @openlayers in #14280)
- Remove Babel (by @tschaub in #14279)
- Configurable log level (by @tschaub in #14278)
- Update geotiff to v2.0.7 (by @ahocevar in #14257)
- Include file extensions in examples and docs (by @tschaub in #14263)
- Avoid creating tiles with one row each (by @tschaub in #14260)
- Add support for images in data tiles (by @tschaub in #14258)
- Add a PMTiles example (by @tschaub in #14256)
- Update more COG paths (by @mike-000 in #14252)
- Update ArcGIS MapServer examples service url (by @mike-000 in #14251)
- Use wkt definitions in EPSG.io Search example (by @mike-000 in #14239)
- Update COG path (by @mike-000 in #14236)
- Add wrapX support to the MousePosition control (by @openlayers in #14232)
- Minor fixes to ReprojDataTile tests (by @mike-000 in #14217)
- Pass transition option along to reproj data tile (by @tschaub in #14216)
- Set willReadFrequently option on
ol/source/Raster
shared context (by @mike-000 in #14215) - Do not use .getImageData where .createImageData can be used (by @mike-000 in #14213)
- Set willReadFrequently option on pixel contexts (by @ahocevar in #14204)
- Create hit and taint detection canvas with willReadFrequently set to true (by @ahocevar in #14203)
- Use jsdelivr instead of unpkg (by @openlayers in #14200)
- Take scale transform into account for viewport pixels (by @ahocevar in #14199)
- Typo were => where (by @nboisteault in #14197)
- RenderFeature cannot be modified (by @MoonE in #14194)
- Typo (by @JakobMiksch in #14195)
- Translate interaction can't work with RenderFeature (by @MoonE in #14172)
- Only TileImage as ReprojTile source tile type (by @MoonE in #14173)
- Correct return type for ol/layer/VectorTile~getFeatures() (by @MoonE in #14165)
- Use arrow functions instead of binding anonymous functions (by @tschaub in #14170)
- Fix if condition in clusters-dynamic example (by @ahocevar in #14150)
- hitdetect GeometryCollection (by @MoonE in #14138)
- Make track properties in Link interaction configurable (by @ahocevar in #14126)
- Add a sourceready event to layers (by @tschaub in #14124)
- Add support for fetching proj4 definitions from epsg.io (by @tschaub in #14122)
- Avoid the redirect to the OL 2 page (by @tschaub in #14118)
- No else after return (by @tschaub in #14103)
- Fix WMTS source key (by @ahocevar in #14100)
- Reproject DataTiles (by @mike-000 in #13654)
- Updates for ol-mapbox-style v9.2 (by @ahocevar in #14086)
- Add version dropdown for API link (by @KaiVolland in #14085)
- Updates for the 7.1.0 release (by @openlayers in #14082)
Dependency Updates
- Bump @metalsmith/markdown from 1.6.0 to 1.8.0 (by @openlayers in #14386)
- Bump globby from 13.1.2 to 13.1.3 (by @openlayers in #14382)
- Bump eslint from 8.29.0 to 8.30.0 (by @openlayers in #14388)
- Bump puppeteer from 19.4.0 to 19.4.1 (by @openlayers in #14387)
- Bump jquery from 3.6.1 to 3.6.2 (by @op...
v7.1.0
The 7.1 release adds a handful of new features and updates the story for users of the full library build.
Draw with tracing
The draw interaction has a new trace
option. When this is set, you can click on existing features to trace their outlines while creating new polygons or lines.
New GeoTIFF options
The GeoTIFF source now supports imagery with internal masks. In addition, the GeoTIFF source accepts a convertToRGB: 'auto'
setting. With this new setting, the values will be converted to RGB in cases where the input data has three bands and the photometric interpretation is one of CMYK, YCbCr, CIELab, or ICCLab.
Notice to full build users
If you have been using the full build of the library, we now include this full build in the release package. This should mean stable URLs that you can point to in a <script>
tag. See the https://openlayers.org/download/ page for more detail.
Deprecation of ol/AssertionError
and error codes
Future versions will no longer throw ol/AssertionError
with an error code
. Instead, they will throw Error
with just the error message.
Updating parameters in ol/source/ImageWMS
and ol/source/TileWMS
The updateParams()
method is the only way to update WMS parameters. Changes made directly to the params
object passed as a constructor option will have no effect.
List of all changes
See below for a complete list of features and fixes.
- Fix control styles on Full Screen Mobile example (by @mike-000 in #14079)
- Include the full build in the ol package (by @openlayers in #14067)
- Add support for auto conversion to RGB (by @tschaub in #14066)
- Avoid stuck maps when resolving views from a GeoTIFF (by @tschaub in #14064)
- GeoTIFF mask support (by @tschaub in #14063)
- Use preferred tile.openstreetmap.org URL (by @Firefishy in #14062)
- Clarify proj4 version (by @ahocevar in #14061)
- Fix register import (by @openlayers in #14059)
- Clone the WMS params option (by @mike-000 in #14048)
- Clear cache when WebGL tile layer source reset (by @mike-000 in #14015)
- Consider both tracing directions when within snap tolerance (by @tschaub in #14057)
- Fix WebGL preload and empty reproj tiles (by @mike-000 in #14051)
- Avoid rate limits from the GitHub API (by @tschaub in #14056)
- Support tracing with the draw interaction (by @tschaub in #14046)
- Improve some examples (by @MoonE in #14039)
- Show how to use Skypack (by @ahocevar in #14038)
- Update to bootstrap 5.2 (by @MoonE in #13996)
- Move assertion messages into code and deprecate AssertionError (by @ahocevar in #14030)
- New URL to check for latest release (by @tschaub in #14025)
- Link to latest 6.x release (by @tschaub in #14026)
- Do not display TileJSON attributions if empty string (by @mike-000 in #14023)
- Updates for the 7.0.0 release (by @openlayers in #14019)
Dependency Updates
- Bump typescript from 4.7.4 to 4.8.2 (by @openlayers in #14073)
- Bump eslint from 8.22.0 to 8.23.0 (by @openlayers in #14069)
- Bump @babel/core from 7.18.10 to 7.18.13 (by @openlayers in #14071)
- Bump puppeteer from 16.2.0 to 17.0.0 (by @openlayers in #14072)
- Bump ol-mapbox-style from 9.0.0 to 9.1.0 (by @openlayers in #14070)
- Bump jquery from 3.6.0 to 3.6.1 (by @openlayers in #14074)
- Bump puppeteer from 16.1.0 to 16.2.0 (by @openlayers in #14035)
- Bump marked from 4.0.18 to 4.0.19 (by @openlayers in #14033)
- Bump rollup from 2.78.0 to 2.78.1 (by @openlayers in #14036)
- Bump @octokit/rest from 19.0.3 to 19.0.4 (by @openlayers in #14034)
New Contributors
- @Firefishy made their first contribution in #14062
Full Changelog: v7.0.0...v7.1.0
v7.0.0
The 7.0 release includes an impressive batch of features and fixes from over 90 pull requests. We're excited about a new foundation for WebGL vector rendering. The previous point rendering functionality has been extended to include lines and polygons. The rendering API is still low level and experimental. Future releases will include a higher level styling API.
In developing the new WebGL rendering functionality, we changed the signature for a number of methods on a helper class that had been marked as part of the API in 6.x releases. While this is technically a breaking change, it is unlikely that applications were using this helper class, so upgrades should be straightforward.
We took advantage of the breaking change in the WebGL helper class to remove a few other deprecated parts of the API. In addition, since Microsoft ended support for Internet Explorer a few months ago, we decided to do the same.
Backwards incompatible changes
Removal of deprecated properties and methods
- The
tilePixelRatio
has been removed from theDataTile
source. - The
imageSmoothing
option has been removed from sources. - The
undefinedHTML
option has been removed from theMousePosition
control. - The
forEachLayerAtPixel
method has been removed from theMap
class. - Deprecated options have been removed from the
Overlay
component. - The
labelCache
has been removed from theol/render/canvas.js
module.
Internet Explorer is no longer supported
Please see https://docs.microsoft.com/en-us/lifecycle/announcements/internet-explorer-11-end-of-support.
ol/webgl/Helper.js
The Helper
constructor from the ol/webgl/Helper.js
module is no longer part of the public API.
ol/coordinate.js
The toStringHDMS
function from the ol/coordinate.js
module now formats longitude, latitude pairs so that the minutes and seconds are omitted if they are zero. This changes the values displayed on graticules.
ol/layer/Graticule
The default intervals
now align with integer minutes and seconds better suited to the default label formatter. If formatting in decimal degrees you may wish to specify custom intervals
suited to that format.
ol/Collection
Inserting with setAt
or insertAt
beyond the current length used to create a sparse Collection with undefined
inserted for any missing indexes. This will now throw an error instead.
ol/control/MousePosition
The control will now by default keep displaying the last mouse position when the mouse leaves the viewport. With placeholder: ' '
you can keep the old behaviour. The placeholder
option no longer accepts false
as a valid value, instead simply omit the option. The undefinedHTML
option has been removed. You should use placeholder
instead.
ol/PluggableMap
The PluggableMap
class has been removed. If you want to create a custom map class, extend the Map
class instead.
ol/style/Icon and ol/style/RegularShape
ol/style/Image
and subclasses displacement
is no longer scaled with the image. If you previously expected this unintended behavior you should now increase the displacement when setting the scale.
List of all changes
See below for a complete list of features and fixes.
- Make the website deploy job succeed even if there are no changes (by @tschaub in #14017)
- Release actions (by @tschaub in #14014)
- Properly clear and refresh reprojected sources (by @ahocevar in #14013)
- Remove ENABLE_RASTER_REPROJECTION flag (by @ahocevar in #14011)
- Force render after update in Icon Scale example (by @mike-000 in #14012)
- Update ol-mapbox-style to v9.0.0 (by @ahocevar in #14009)
- Replace the Icon Scale example (by @mike-000 in #14007)
- Improve description of displacement in docs (by @mike-000 in #14006)
- Remove IE workarounds for legacy build, examples, and workers (by @tschaub in #13995)
- Use the full table for constructor options (by @tschaub in #13998)
- Do not scale Icon and RegularShape displacement (by @mike-000 in #13975)
- Support user projections in Drag and Drop (by @mike-000 in #14003)
- Avoid append only cache in WebGL tile layers (by @tschaub in #13997)
- Fix immediate renderer text rotation with offset (by @mike-000 in #13981)
- Build and deploy the website (by @openlayers in #13984)
- Small example template fixes (by @marcjansen in #13992)
- Fix wording in API docs (by @marcjansen in #13991)
- Nicer links in the API docs (by @tschaub in #13970)
- Minor adjustments to the website style (by @tschaub in #13989)
- Fix copying of non-linked ol.css, clean example build (by @MoonE in #13988)
- Fix kml-timezone example calculations (by @MoonE in #13982)
- Fix some errors in examples (by @MoonE in #13977)
- Update FontAwesome to v6.1.2 (by @MoonE in #13978)
- Use correct bands with
LUMINANCE_ALPHA
(by @mike-000 in #13974) - Remove opt_ prefix (by @tschaub in #13972)
- Fix bandcount per texture for 8, 12, 16, etc. bands (by @mike-000 in #13973)
- Do not apply #12467 change to Icons (by @mike-000 in #13955)
- Remove more IE compatibility (by @MoonE in #13971)
- Remove workaround and docs for IE 11 (by @tschaub in #13965)
- Remove circular dependency (by @tschaub in #13967)
- Update link to sponsors (by @tschaub in #13968)
- Bundle code for the map on the homepage (by @tschaub in #13966)
- Website build (by @tschaub in #13961)
- Remove polyfills for IE and Android 4 (by @tschaub in #13963)
- Replace VERSION in un-transpiled source (by @MoonE in #13957)
- Use const in docs and other places (by @MoonE in #13958)
- Add few missing new lines in example source listing (by @MoonE in #13959)
- Fix js error in api pages on load (by @MoonE in #13956)
- Minor simplification (by @JakobMiksch in #13953)
- Fix typo and formatting in upgrade notes (by @mike-000 in #13946)
- Fixes to export examples (by @mike-000 in #13947)
- Fix WebGL points layer flaky test (by @jahow in #13944)
- Scaleline (by @MoonE in #13943)
- Improve loading of kmz file in example (by @MoonE in #13942)
- Fix KML default icon anchor with https icon url (by @MoonE in #13941)
- Use nicer functions, remove old code (by @MoonE in #13937)
- Render vector tile vectors in correct sequence for the postrender event (by @ahocevar in #13939)
- Remove workaround for missing TypedArray.from function (by @MoonE in #13936)
- Remove check for context.setLineDash (by @MoonE in #13933)
- Remove deprecated DataTile source
tilePixelRatio
(by @mike-000 in #13930) - Remove input type="range"
change
event listeners whereinput
events are also used (by @mike-000 in #13932) - Remove deprecated
imageSmoothing
source options (by @mike-000 in #13931) - Updated map background (by @tschaub in #13926)
- Include babel for CodeSandbox (by @tschaub in #13923)
- Remove reference to ES6 as ES2017 already listed (by @mike-000 in #13922)
- Style updates for examples and API docs (by @tschaub in #13917)
- Remove Google Analytics and cookie consent (by @tschaub in #13916)
- Fix map render test (by @MoonE in #13915)
- Uniformly grayscale controls (by @tschaub in #13908)
- Remove PluggableMap (by @tschaub in #13914)
- Remove Mou...
v6.15.1
The 6.15.1 release is a patch to ensure that a layer gets rendered when its source has completed loading. See the changelog for 6.15.0 for new features and fixes since 6.14.
List of all changes:
Full Changelog: v6.15.0...v6.15.1
v6.15.0
Overview
The 6.15 release brings several fixes and improvements:
- Faster vector tile rendering for soures with non-standard tile grids
- Reduced canvas memory footprint for increased stability on iOS devices and better rendering performance
- Fixed a bug that prevented tiles from expiring from the tile cache in the correct order
- Better type safety with an increasing number of
null
checks and union types - New
setFill
andsetStroke
methods forRegularShape
symbols - Vector symbol and text decluttering on the style level
- Fixed pointer event handling on touch devices when layer visibility changes
- New
justify
option for text styles - New
Link
interation for adding center, zoom, rotation and active layers to the URL - Easier css styling of the scale bar, and in addition to
minWidth
, the scale line can now also be configured with amaxWidth
Details
Deprecated tilePixelRatio
option for data tile sources.
If you were previously trying to scale data tiles using the tilePixelRatio
property for data tile sources (this is rare), you should now use the explicit tileSize
and tileGrid
properties. The source's tileSize
represents the source tile dimensions and the tile grid's tileSize
represents the desired rendered dimensions.
const source = new DataTileSource({
tileSize: [512, 512], // source tile size
tileGrid: createXYZ({tileSize: [256, 256]}), // rendered tile size
});
Fixed coordinate dimension handling in ol/proj
's addCoordinateTransforms
The forward
and inverse
functions passed to addCooordinateTransforms
now receive a coordinate with all dimensions of the original coordinate, not just two. If you previosly had coordinates with more than two dimensions and added a transform like
addCoordinateTransforms(
'EPSG:4326',
new Projection({code: 'latlong', units: 'degrees'}),
function(coordinate) { return coordinate.reverse(); },
function(coordinate) { return coordinate.reverse(); }
);
you have to change that to
addCoordinateTransforms(
'EPSG:4326',
new Projection({code: 'latlong', units: 'degrees'}),
function(coordinate) { return coordinate.slice(0, 2).reverse() },
function(coordinate) { return coordinate.slice(0, 2).reverse() }
);
Replacement of string enums with union types
This change only affects users that were using the non-API string enums
- ol/OverlayPositioning
- ol/extent/Corner
- ol/format/FormatType
- ol/geom/GeometryType
- ol/source/State
- ol/source/WMSServerType
- ol/source/WMTSRequestEncoding
Instead of these, use the respective string
s, which are now typesafe by means of union types.
List of all changes
See below for a complete list of features and fixes.
- Base vector tile render tile grid on the source grid (by @mike-000 in #13832)
- ability to change the color of the scalebar (by @jipexu in #13834)
- Reduce canvas memory footprint for better iOS stability (by @ahocevar in #13823)
- Use union types instead of enums (by @ahocevar in #12696)
- remove XYZ-ESRI -4326-512 example (by @jipexu in #13817)
- Remove HERE Maps example (by @mike-000 in #13819)
- Checkcontenteditable (by @jipexu in #13787)
- Add null return type for TileGrid functions (by @EvertEt in #13674)
- Add setFill and setStroke to Shapes (by @theduckylittle in #13747)
- Include displacement and declutterMode in Icon style clone (by @mike-000 in #13803)
- Do not refresh use time for tiles when collecting used source tiles (by @M393 in #13799)
- Change WKB readFeature(s) return type to Feature (by @mike-000 in #13800)
- d3 version update (by @jipexu in #13784)
- Better fix for changing pointer ids on event target change (by @ahocevar in #13771)
- Fix source band calculation when configured with multiple sources (by @ahocevar in #13762)
- Clean up tracked pointers when the event target has changed (by @ahocevar in #13770)
- Fix modifying polygons with overlapping vertices (by @hargasinski in #13745)
- Support GML polygons with ring curves instead of linear rings (by @ahocevar in #13749)
- Fix typo in method names (by @MoonE in #13750)
- Load GeoTiff from Blob #13189 #13703 (by @m-mohr in #13724)
- improve text width calculation (by @IQGeo in #12106)
- Fix tile pyramid getData() (by @mike-000 in #13712)
- Improve icon-sprite-webgl example (by @MoonE in #13709)
- Fix hitdetection for icon with offset and pixelratio != 1 (by @MoonE in #13627)
- Wait for icons to be loaded before firing rendercomplete event (by @MoonE in #13626)
- Change typedef to boolean (by @mike-000 in #13702)
- #13690 VectorSource#getFeaturesInExtent add projection parameter (by @burleight in #13691)
- Update ESLint config and plugins (by @tschaub in #13701)
- Flip extent coordinates for projections with ne* axis order (by @ahocevar in #13688)
- Link interaction (by @tschaub in #13689)
- Test improvements (by @MoonE in #13676)
- Add null return type (by @ahocevar in #13673)
- fix currentClip == null (by @CNS-Solutions in #13672)
- Handle NaN nodata (by @tschaub in #13669)
- Fix for parcel error while building examples (by @arekgotfryd in #13656)
- Explicit data tile size (by @tschaub in #13648)
- Decluttering mode by style (by @CNS-Solutions in #13566)
- Output GeoTIFF tile load errors to console (by @mike-000 in #13645)
- Fix typos in upgrade notes (by @openlayers in #13641)
- Let transform function transform all dimensions it is capable of (by @ahocevar in #13637)
- Fix dependabot config (by @tschaub in #13614)
- Include GitHub actions in the dependabot config (by @turrisxyz in #13611)
- Do not reload data tiles if already loaded or loading (by @mike-000 in #13594)
- Limit permissions for GitHub actions (by @turrisxyz in #13607)
- Handle rotation with non-square tiles (by @tschaub in #13603)
- Properly document loadstart and loadend events (by @ahocevar in #13595)
- Update OSM Vector Tiles attribution (by @mike-000 in #13568)
- WebGLPointsLayer wrapX support - partially addressing #11131 (by @burleight in #13528)
- Add
justify
option for text style (by @rycgar in #13571) - Do not assert null projection (by @mike-000 in #13565)
- Improve Projection and Scale example calculations (by @mike-000 in #13496)
- Add geometryLayout property to Draw interaction (by @drnextgis in #13546)
- Updates for ol-mapbox-style v8 (by @ahocevar in #13552)
- NM symbol unit (by @jipexu in #13554)
- Update backgrounds when function returns a different color (by @ahocevar in #13550)
- Handle gutter in WebGL tile renderer (by @mike-000 in #13547)
- Do not add second interaction in Pinch Zoom example (by @mike-000 in #13551)
- Bugfix for GML parsing with multiple property elements with XML attributes (by @ejn in #12936)
- Fix small typo in docs (by @bartvde in #13536)
- Update type annotations for GMLBase (by @ahocevar in #13533)
- Add optional maxWidth for ScaleLine control (by @bartvde in #13531)
- Include tile gutter in offsets for getData() methods (by @mike-000 in #13521)
- Updates for the 6.14.1 release (by @openlayers in h...