Releases: openlayers/openlayers
v6.6.0
With more than 160 pull requests from 14 contributors, this release brings improved support for using OpenLayers in Node.js environments, a new WKB (well known binary) format, TypeScript declarations in the ol package, and more efficient vector tile rendering. In addition, several examples were added or improved, and many bugs were fixed.
Upgrade notes
Included TypeScript declarations
The ol package now includes TypeScript declarations as *.d.ts
files.
If desired, e.g. when you don't want to adjust your code after upgrading from a previous version where you used @types/ol
, you can opt out of the included types and use third-party types by specifying aliases in the compilerOptions
section of tsconfig.json
, e.g.
"baseUrl": "./",
"paths": {
"ol": ["node_modules/@types/ol"],
"ol/*": ["node_modules/@types/ol/*"]
},
Deprecation of undefinedHTML
option for the MousePosition control
The undefinedHTML
option for the MousePosition control has been deprecated and will be removed in a future release. Use the new placeholder
option instead.
New placeholder
option for the MousePosition control
When the mouse position is not available, the control renders a non-breaking space. To render something else instead,
set the placeholder
option. If you want to retain the last position when the mouse leaves the viewport, set
placeholder: false
. This will be the default behavior in a future release.
The placeholder
option has no effect if the deprecated undefinedHTML
option is also used. You should use the placeholder
option instead of undefinedHTML
.
Deprecation of image
render mode for vector tile layers
renderMode: 'image'
for vector tile layers has been deprecated. Applications continue to work, but a warning will be issued to the console. To get rid of the warning, simply remove the renderMode
option.
New features and improvements
- New create-ol-app package to create a new app with an OpenLayers map.
- Improved rendering quality of regular shapes and circles.
- New
placeholder
option for better control of theMousePosition
control's output. - TypeScript generated
.d.ts
files are now included in the ol package. - Improved
zDirection
option on tile sources to control when the tile z changes on fractional zoom levels. - Template mode for the
TileDebug
source for better debugging of tile coordinate issues. - More efficient vector tile rendering to save battery on mobile devices and memory.
- New 'properties' option on layers for easier use of arbitrary properties in typed environments.
- Hit detection support when using OffscreenCanvas and workers for rendering.
- The ol package now uses
"type": "module"
inpackage.json
for easier use of OpenLayers in Node.js. - New WKB (Well-Known Binary) format parser and serializer.
- Console warning when map container's width or height are zero.
- New
snapToPointer
option on theModify
interaction to control user experience when clicking a vertex far away from its center.
List of all changes
- #12442 - Fix layer render extent when it is not at all in view (@MoonE)
- #12492 - Use create-ol-app to create a new app (@tschaub)
- #12467 - Fixes / improvements for RegularShape (@MoonE)
- #12491 - Add a new placeholder option and deprecate undefinedHTML for the mouse position control (@tschaub)
- #12430 - Event listener typing (@simonseyock)
- #12488 - MousePosition: allow rendering of empty string (@JakobMiksch)
- #12464 - Make zDirection option available for all tile sources (@mike-000)
- #12489 - Update ol-mapbox-style to v6.4.0 (@ahocevar)
- #12484 - Add GeoSolutions as a monthly sponsor (@tschaub)
- #12480 - Fix gap in tiles due to floating point math (@MoonE)
- #12453 - Allow multiple LinearRings per innerBoundaryIs (@MoonE)
- #12466 - Fix getVectorContext on TileLayer with pixelRatio != 1 (@MoonE)
- #12463 - Improve animation examples (@MoonE)
- #12459 - Fix documentation for GML class. (@simonseyock)
- #12455 - Consistent use of quotes in example description (@mike-000)
- #12373 - Rework TileDebug to allow TMS coordinates and to fix reprojection (@mike-000)
- #12441 - Style-based measure example (@mike-000)
- #12438 - typo (@jipexu)
- #12431 - Add tsc-generated type definitions for opt-in (@ahocevar)
- #12417 - Use html2canvas instead of dom-to-image (@ahocevar)
- #12413 - Fix hitdetection image invalidation (@MoonE)
- #12405 - VectorTile getSourceTiles behaviour with loading source tiles (@ahocevar)
- #12212 - Ignore empty gx:coord elements in KML files (@voegelas)
- #12418 - Fix icon tinting with pixelRatio < 1 (@MoonE)
- #12409 - Fix WMTS wrapX detection if WGS84BoundingBox is not set (@M393)
- #12237 - Fix Modify interaction with hitDetection (@M393)
- #12416 - Use generics to limit event types in on(), once() and un() (@ahocevar)
- #12408 - Do not fire modifystart when nothing is being modified (@ahocevar)
- #12414 - Replace getChangeEventType() with add/removeChangeListener methods (@ahocevar)
- #12194 - Respect pixel ratio with immediate render (@MoonE)
- #12298 - Fix JSDoc generated links (@tschaub)
- #12231 - Move tolerance should not increase with higher pixel ratio (@MoonE)
- #12282 - Fix DragZoom with view padding (@M393)
- #12223 - generic source parameters for options (@simonseyock)
- #12219 - Add 'properties' to Layer constructors (@ahocevar)
- #12284 - Layers should inherit group z-index (@MoonE)
- #12304 - New example: Scale and Rotate using Modify Interaction (@mike-000)
- #12378 - Correct .split() calls to only split numeric srid for ArcgisRest (@mike-000)
- #12393 - Scale up static Image and round to nearest pixel to avoid rounding errors (@mike-000)
- #12394 - Ensure VectorSource getUrl() corresponds to last setUrl() (@mike-000)
- #12357 - Use calculateElevation function in Shaded Relief example (@mike-000)
- #12375 - Fix Vector Tile Selection example on old browsers (@mike-000)
- #12364 - Simpler and faster VectorTile loading (@ahocevar)
- [#12359](https://githu...
v6.5.0
6.5.0
With more than 110 pull requests, this release not only brings WFS 2.0 support and improved touch support for drawing geometries and querying features. In addition to that, several improvements, many bugs fixes, and nicer API docs and examples have found their way into the 6.5.0 release.
Upgrade notes
Units of the hitTolerance
option fixed
Previously, the hitTolerance
option of the map's getFeaturesAtPixel()
, forEachFeatureAtPixel()
and hasFeatureAtPixel()
methods behaved differently depending on the devicePixelRatio
(or the pixelRatio
of the map), because the original value was internally multiplied by the device pixel ratio twice instead of just once. Now this is fixed. Note: The hitTolerance
's units are css pixels. The documentation was updated to reflect this.
If your application adjusts for that with code like
{ hitTolerance: 10 / devicePixelRatio, }
you'll have to change that code to
{ hitTolerance: 10, }
New features and improvements
- New scale option in
RegularShape
andCircle
style constructors - WFS 2.0.0 support
- Added
preRender
andpostRender
methods toWebGLLayerRenderer
- Added
className
constructor option inol/layer/Heatmap
- Added load events for
ol/source/Vector
- New
iconUrlFunction
option forol/format/KML
- Added
transition
option toOSM
andCartoDB
sources DragAndDrop
interaction support for formats that read ArrayBuffer sources- New
padding
option forol/View
- New
cancel
event for theDragBox
interaction - When using
hitTolerance
, detect closest features first - Ability to draw
Circle
geometries with a custom renderer
List of all changes
- #11859 - Do not fire duplicate postrender events (@MoonE)
- #11858 - Correct documented event names for VectorSourceEvent (@MoonE)
- #11844 - Fix Style expressions error message (@MoonE)
- #11838 - Custom circle render (@changqingom)
- #11811 - Better getPointResolution default when no transform available (@mike-000)
- #11821 - Call the finishCondition when drawing points / circles (@MoonE)
- #11824 - Add Units back to API docs (@ahocevar)
- #11817 - stopPropagation support for PluggableMap (@greggian)
- #11815 - Remove unnecessary line that breaks drawing with multi-touch (@ahocevar)
- #11800 - Fix removeLastPoint when removing last point (@ahocevar)
- #11769 - Modify interaction developer experience improvements (@ahocevar)
- #11803 - Modify fix vertex insertion (@MoonE)
- #11783 - Cache hit detect indexes and check closest pixels first. (@MoonE)
- #11791 - Now that pepjs was updated, we can point to the official package (@ahocevar)
- #11790 - Fix attributions links for WMS layers from swisstopo (@openlayers)
- #11781 - Pass geometry to forEachFeatureAtPixel callback (@ahocevar)
- #11778 - No need to adjust hitTolerance for pixel ratio twice (@ahocevar)
- #11780 - Add a cancel event to the DragBox interaction (@M393)
- #11779 - Restore Mode.CIRCLE in Draw interaction (@mike-000)
- #11753 - Use Mode.LINE_STRING in Draw interaction for Circle geometries (@mike-000)
- #11767 - Improve documentation of geometry rotation (@mike-000)
- #11755 - Add padding option for View (@ahocevar)
- #11754 - Fix typo that prevents Rotate icon from indicating the view rotation (@ahocevar)
- #11719 - Clamp EPSG:3857 y to lowest/highest possible value instead of validity extent (@ahocevar)
- #11737 - Write the correct SRS code in EsriJSON (@ahocevar)
- #11749 - Document that snapTolerance must be greater than 0 (@ahocevar)
- #11750 - Update TMS tileUrlFunction example in ol/source/XYZ documentation (@mike-000)
- #11739 - Fix: Check for layer extent in CanvasLayerRenderer.getDataAtPixel (@boeckMt)
- #11748 - Add fetch and TextDecoder to polyfill list in README (@mike-000)
- #11740 - Wfs bbox per feature type (@ger-benjamin)
- #11722 - Correct meaning of 'start' and 'end' text align for LTR text (@ahocevar)
- #11741 - Include LICENSE.md in built package (@bz2)
- #11718 - Initialize sketch point on Draw#extend() (@ahocevar)
- #11732 - Replace readURI with readStyleURL for KML StyleURLs (@mike-000)
- #11723 - Drag and Drop Interaction support for formats that read ArrayBuffer sources (@mike-000)
- #11724 - Add transition option to OSM and CartoDB sources, document default (@MoonE)
- #11721 - Handle empty Z coordinates in KML (@mike-000)
- #11587 - Determine orientation by actual text start and end x (@MoonE)
- #11720 - Return to simpler and less efficient winding order algorithm (@ahocevar)
- #11715 - Add all symbols to the legacy build (@ahocevar)
- #11716 - Treat svg as binary resource (@mike-000)
- #11698 - Draw pointer improvements (@ahocevar)
- #11490 - iconUrlFunction option for ol/format/KML (@mike-000)
- #11628 - VectorSource load events (@simonseyock)
- #11691 - Use Parcel v2 in copy/paste example code (@ahocevar)
- #11673 - Do not emulate dblclick and slingleclick on multi-touch (@ahocevar)
- #11676 - Fix countries.geojson Antarctica polygon so it wraps correctly (@mike-000)
- #11646 - Ensure a unique tile key for each tile coordinate (@ahocevar)
- #11655 - Fix documentation of image render mode for vector tile layers (@ahocevar)
- #11668 - Don't try to get image data for zero sized images (@tapioko)
- #11648 - Dwithin filter (@virtualcitySYSTEMS)
- #11658 - Make webpack dev server run with current version (@MoonE)
- [#11590](https://github.c...
v6.4.3
This is a bugfix release which fixes a performance regression, a rendering issue, and adds improvements to a few examples.
See the v6.4.0 release notes for a complete list of changes and upgrade notes when upgrading from v6.3.x.
List of all changes
- #11379 - tooltip bs on fullscreen (@jipexu)
- #11378 - Fix imageSmoothing: false when ImageStatic is stretched to fit extent (@mike-000)
- #11367 - Use https for mapbox tiles (@MoonE)
- #11377 - Only include renderBuffer when decluttering (@ahocevar)
- #11376 - Overlay Eample - Show the popup in front of the other overlays (@MoonE)
Dependency Updates
- #11381 - Bump karma from 5.1.0 to 5.1.1 (@openlayers)
- #11383 - Bump worker-loader from 2.0.0 to 3.0.0 (@openlayers)
- #11386 - Bump webpack from 4.44.0 to 4.44.1 (@openlayers)
- #11384 - Bump @babel/core from 7.10.5 to 7.11.0 (@openlayers)
- #11382 - Bump mocha from 8.0.1 to 8.1.0 (@openlayers)
- #11385 - Bump @babel/preset-env from 7.10.4 to 7.11.0 (@openlayers)
- #11387 - Bump eslint from 7.5.0 to 7.6.0 (@openlayers)
- #11388 - Bump terser-webpack-plugin from 3.0.7 to 3.0.8 (@openlayers)
v6.4.2
This is a bugfix release which removes a few regressions that were introduced by v6.4.0, and fixes a few issues in examples.
See the v6.4.0 release notes for a complete list of changes and upgrade notes when upgrading from v6.3.x.
List of all changes
- #11364 - Load pointer events polyfill - before other polyfills (@ahocevar)
- #11365 - Revert to original method proposed in #11193 (@mike-000)
- #11359 - check projection can wrap before getting width (@mike-000)
- #11355 - Cloak API key with instructions where to get one (@ahocevar)
- #11354 - Fix line breaks in changelog (@ahocevar)
v6.4.1
6.4.1
This is a bugfix release which removes a few regressions that were introduced by v6.4.0, and fixes a few issues in examples caused by the website facelift.
List of all changes
- #11346 - Fix text instruction flat coordinates when stride is not 2 (@ahocevar)
- #11348 - Add all layers to layer export (@M393)
- #11337 - Do not rely on old value for target (@ahocevar)
- #11345 - Fix the popup in the geographic example (@MoonE)
- #11336 - Hit detect with pixelRatio of 1 (@ahocevar)
- #11341 - update link to BS doc (@jipexu)
- #11340 - Examples fix / improvement (@MoonE)
- #11339 - Use bootstrap 4.5.0 in all examples (@MoonE)
- #11327 - Fix Internet Explorer issues (@ahocevar)
- #11315 - Examples fix html (@MoonE)
Dependency Updates
- #11330 - Bump rollup from 2.22.1 to 2.23.0 (@openlayers)
- #11332 - Bump jsdoc from 3.6.4 to 3.6.5 (@openlayers)
- #11329 - Bump puppeteer from 5.2.0 to 5.2.1 (@openlayers)
- #11328 - Bump webpack from 4.43.0 to 4.44.0 (@openlayers)
v6.4.0
With more than 120 pull requests, this release brings a facelift of the website, as well as many bug fixes and several exciting new features.
Upgrade notes
Pointer events polyfill removed
Now that all major browsers support Pointer events natively, we removed the elm-pep dependency. If you are targeting older browsers that do not support Pointer events, you now need to include a pointer events polyfill (elm-pep or pepjs) in your application.
New features and improvements
- Several event handling fixes and improvements for seamless integration into scrollable web pages and improved support for maps in web components.
- Map interactions work again when
ol.css
is not included in the build. - More stable map views with decluttered labels during panning.
- Image smoothing can be disabled, so raster cells can have sharp edges in image layers now.
- Better cache management for tile layers.
- Retina/HiDPI support for regular shape and svg icon styles.
List of all changes
- #11322 - same dropdown hover than the site (@jipexu)
- #11321 - dropdown margin bottom (@jipexu)
- #11320 - margin bottom for dropdown (@jipexu)
- #11319 - dropdown margin bottom (@jipexu)
- #11318 - Mark active nav item (@ahocevar)
- #11317 - Make header and menu navigation consistent with web site (@ahocevar)
- #11277 - Have high resolution regular shape (@sbrunner)
- #11313 - Add direct link to other examples to tags (@MoonE)
- #11310 - Update bootstrap, cleanup css, make pages more responsive (@ahocevar)
- #11304 - Reuse empty canvas (@ahocevar)
- #11309 - Do not extract comments to avoid asset name conflicts (@ahocevar)
- #11306 - Replace/remove usage of tileserver.maptiler.com (@petrsloup)
- #11270 - Fix handling of events originating from overlayContainerStopEvent children (@ahocevar)
- #11269 - Register and unregister events in set target handler (@ahocevar)
- #11300 - Drag and Drop to update source and fire event only if features added (@mike-000)
- #11286 - Allow line breaks before slashes in apidoc navigation (@MoonE)
- #11287 - Examples index page fixes (@MoonE)
- #11197 - Added '&&' logical operator to expressions (@RydingM)
- #11283 - Remove update while interacting/animating from VectorImage (@yonzmeer)
- #11267 - Fix upright labels on vector tiles (@ahocevar)
- #11263 - Fix rotation reset in Mapbox-gl Layer example (@mike-000)
- #11268 - Cache size (@ahocevar)
- #11271 - Make style override CSS compatible with importing ol.css and with IE (@mike-000)
- #11253 - Only clamp to source extent for safe transforms (@ahocevar)
- #11258 - Replace ol tag with openlayers (@ahocevar)
- #11256 - Add dispose API docs to raster source (#10856) (@EvertEt)
- #11255 - GetDataAtPixel performance improvement (@Shekenix)
- #11252 - Add missing SimpleGeometry export (@jmacura)
- #11226 - By modifying the common vertex, not all geometries were changed when … (@michalzielanski)
- #11225 - Use 'source-over' to render reprojection edges (@mike-000)
- #11224 - Quote . in RegExp (@mohawk2)
- #11219 - Make proj4 transforms behave like built-in transforms (@ahocevar)
- #11218 - getFeatures() uses wrong transforms after resetting rotation (@ahocevar)
- #11217 - Additional test coverage for serializing GeoJSON (@tschaub)
- #11215 - Fix MVT multipolygons with featureClass: Feature (@ahocevar)
- #11193 - Fix VectorImage layer clipping with rotation (@mike-000)
- #11195 - getExtent() to return getEmpty() if geometry is unprojectable (@mike-000)
- #11188 - Late object initialization (@michalzielanski)
- #11194 - ol/geom/LineString#getCoordinateAt() to return Z and M values if available (@mike-000)
- #11198 - Add condition option to Extent interaction (@mike-000)
- #11202 - Branch name changes (@tschaub)
- #11192 - Use pepjs in examples to support more old/exotic browsers (@ahocevar)
- #11190 - Correct vector layer clipping with rotation (@mike-000)
- #11037 - Allow icon and text styles to be scaled in two dimensions (@mike-000)
- #11165 - Use drag-pan default condition with onFocusOnly (@ahocevar)
- #11172 - Use cross-browser find (@ahocevar)
- #11171 - Allow using un() for events registered with once() (@ahocevar)
- #11148 - Vectortile label flicker (@ahocevar)
- #11174 - Improve types and docs for getStyle/setStyle (@ahocevar)
- #11173 - Remove elm-pep dependency (@ahocevar)
- #11146 - Update JSTS example to use JSTS 2.3.0 (@bjornharrtell)
- #11135 - Re-enable onFocusOnly option for interaction defaults (@ahocevar)
- #11106 - Defer ZoomSlider initialization until its size is available (@M393)
- #11120 - correct scalebar box sizing (@mike-000)
- #11116 - No search autocomplete (@ahocevar)
- #11088 - Transform without axis order in proj4 (@ahocevar)
- #11089 - Use assign function instead of Object.assign (@ahocevar)
- #11082 - Fix outs...
v6.3.1
v6.3.0
With more than 70 pull requests, this release not only brings significant improvements to the API documentation. It also fixes some old bugs and brings frequently requested improvements. And good news for TypeScript users: OpenLayers now ships with type definitions in .d.ts
files.
New features and improvements
- Several improvements to the Graticule layer, like consistent labeling, no more missing graticule lines, and it now works for views that cross the date line.
- Better support for KML icon colors, as well as fills and outlines in PolyStyle
- Better
ol/Overlay
performance and support for panning off-screen overlays into view - Most of the rendering code can now be run in web workers, e.g. to render to an OffscreenCanvas
- OpenLayers now works fine in web components with shadow root
- WebGL point layers now support rotation based on feature attributes
List of all changes
- #10490 - Select style multiple select interactions removed (@bepremeg)
- #10531 - Dynamically chose the number of subdivisions based on the size of the Image to reproject (@pjsg)
- #10618 - Add apidoc-debug task to debug the apidoc generation process (@MoonE)
- #10343 - Correct interactions with circle geometries when using user coordinates (@mike-000)
- #10864 - Update dependencies (@ahocevar)
- #10859 - Add an example of clipping layer based on a vector source (@SDaron)
- #10850 - API docs for enums (@ahocevar)
- #10857 - Make OSM XML example work at dateline and replace Bing with MapTiler (@mike-000)
- #10858 - Perform auto-pan when adding an Overlay to a Map (@ejn)
- #10646 - Write fill and outline in KML PolyStyle (@mike-000)
- #10800 - Make Overlay.panIntoView an API method (@ejn)
- #10807 - Handle Graticule wrapX without calculating excess meridians (@mike-000)
- #10795 - Show graticule labels in wrapped worlds (@mike-000)
- #10824 - Fix drawing svg icon with color option in ie11 (@MoonE)
- #10802 - Apidoc add default-exported enums (@MoonE)
- #10805 - make ImageSourceEventType available for consumers (@regileeso)
- #10822 - parsing color from IconStyle in KML files (@lysek)
- #10848 - Speed up Overlay element positioning using CSS translate() (@horsenit)
- #9590 - Calculate tile grid extent from extent of bottom-level tile matrix (@mloskot)
- #10845 - Fix createHitDetectionImageData error for features with no size (@gedaiu)
- #10842 - Fix custom symbol example short description (@mike-000)
- #10828 - Offscreen canvas example (@ahocevar)
- #10816 - Add 'funding' field to
package.json
(@marcjansen) - #10813 - Add sponsors section to the readme (@tschaub)
- #10474 - Fix for undefined source in Image layer (@mike-000)
- #10785 - Detect Zoomify server-side retina tiles (@ahocevar)
- #10787 - Improved projection extent in the "Reprojection with EPSG.io Search" example (@mike-000)
- #10792 - Add support for EventListener Object (@flexjoly)
- #10777 - Keep the render loop running during simulation (@ahocevar)
- #10791 - iOS 12 touchmove: Prevent touchmove event default when no preceding pointer event (@sosmo)
- #10786 - Resolve constraints when updating size (@ahocevar)
- #10788 - Add safeguard to handleTouchMove (@sosmo)
- #10722 - fix: handle layer clear event in case clear(true) called (@jellyedwards)
- #10723 - Improve the extent transforms used by Graticule and handle extents crossing the dateline (@mike-000)
- #10744 - Ensure the Modify Features Test example opens at correct zoom (@mike-000)
- #10767 - Replace Bing layer with MapTiler in examples (@mike-000)
- #10751 - Sort events / observables in all cases (@MoonE)
- #10763 - TypeScript: Fix inconsistent optionality in various APIs (@jumpinjackie)
- #10758 - Allow using feature attributes for symbol rotation in WebGL layers (@jahow)
- #10748 - Fix "Cannot read property 'anchor' of undefined" in ol/View (@mike-000)
- #10746 - Fix building apidoc on windows (@MoonE)
- #10720 - Apidoc better search (@MoonE)
- #10743 - Ignore user provided tile cache size when too small (@ahocevar)
- #10736 - Allow cluster source to unlisten from its source (@M393)
- #10739 - Fix typo in trackpad timeout (@ahocevar)
- #10740 - Document tabindex behavior for MouseWheelZoom and DragPan (@matthias-ccri)
- #10738 - Fix text background decluttering (@ahocevar)
- #10715 - Fix disappearing graticule labels when rotation returns to 0 (@mike-000)
- #10713 - Draw graticule labels in a postrender function (@mike-000)
- #10711 - Make sure that optional args are typed accordingly (@ahocevar)
- #10710 - Fix stylefunction return type (@ahocevar)
- #10709 - Fix type and documentation of style function (@ahocevar)
- #10708 - Handle Select interactions with falsey select style (@ahocevar)
- #10707 - Get default projection for overview map from main map. (@AugustusKling)
- #10699 - Make Select interaction work when there are multiple instances (@ahocevar)
- #10694 - Draw image with configured opacity (@M393)
- #10703 - CI and test fixes (@ahocevar)
- [#10698](#1...
v6.2.1
This is a bugfix release which resolves bundler issues due to a circular dependency, and brings a few documentation and example fixes.
List of all changes
- #10656 - Fix for export PDF example compatibility issues, and layer opacity handling. (@mike-000)
- #10653 - More reliable check for module content beyond classes (@ahocevar)
- #10617 - Improve apidoc generation performance (@MoonE)
- #10625 - Apidoc cleanup navigation html (@MoonE)
- #10649 - Remove circular dependency (@ahocevar)
- #10637 - Develop on 6.2.1 (@openlayers)
v6.2.0
With almost 90 pull requests, this release brings several new features, performance improvements and bug fixes. In addition to that, we once again improved the API documentation and the example pages.
New features and improvements
- Mousewheel zooming now brings the same user experience as trackpad zooming. One click on the wheel no longer means a jump of a whole zoom level. Instead, depending on the speed of moving the wheel, the user has fine-grained control over zoom increments/decrements.
- Users now have better control over the initial map viewport when the aspect ratio of the map is different from a specified initial extent.
- Text rendering has been optimized for decluttering and improved for rotated views. This means lower memory footprint and no more blurry text when the map is rotated. Note: Whit this change, the label cache has been deprecated.
- A new
displacement
option for icon, circle and regular shape styles makes positioning of point symbolizers more flexible. - Several improvements have been made to the KML parser for reading styles, bringing the rendered result much closer to Google Earth.
- OpenLayers is now less aggressive on stopping events and preventing event default behavior. This means that users have more control over events, making it easier to use interactive SVGs as layers and to embed maps on scrollable pages.
- Vector tile layers now have a
vector
render mode, which brings improved zooming experience for sources with not too much data. - We replaced the previous pointer events polyfill to elm-pep, which should work better in web components.
List of all changes
- #10613 - Show KML name labels for Points in MultiGeometry (@mike-000)
- #10632 - Draw interaction: Append coordinates to polygons and lines (reworked) (@jahow)
- #9565 - Make mousewheel zoom behave like trackpad zoom. (@dbrnz)
- #10580 - Fix KML Polystyle outline 0 conflict with Linestyle for linestrings (@mike-000)
- #10612 - Make examples work in Internet Explorer (@ahocevar)
- #10587 - Adds option to View for using larger resolution value when clamping #10586 (@jeremy-smith-maco)
- #10607 - Update elm-pep to fix builds for IE < 11 (@ahocevar)
- #10598 - Remove inheritDoc to work around JSDoc issue (@ahocevar)
- #10574 - Text rendering improvements (@ahocevar)
- #10591 - Remove obsolete license notice (@ahocevar)
- #10588 - Sort doc navigation properly and add missing modules (@ahocevar)
- #10581 - Use package-lock.json for the checksum calculation (@DanielRuf)
- #10584 - fixed issue with version throwing an error if it is null (@MrSoUndso)
- #10575 - Fix ol/layer/Graticule rendercomplete problem (@mike-000)
- #10562 - Zoomify: Separate the service pixel ratio and the device pixel ratio (@crubier)
- #10573 - Replace Bing layer with MapTiler in example (@mike-000)
- #10570 - Use correct extent for the vector image (@ahocevar)
- #10572 - Assert each layer is only added to the map once (@ahocevar)
- #10563 - More compatible way of exporting a map as pdf (@ahocevar)
- #10545 - Make KML point feature styles compatible with declutter (@mike-000)
- #10542 - Replace Bing layer with MapTiler in KML example (@mike-000)
- #10543 - @api tag must not have a value. (@MoonE)
- #10547 - Only generate module apidoc pages when it contains api tags (@MoonE)
- #10502 - Stop events that originate with a removed target (@walkermatt)
- #10527 - Remove label cache, render text directly to target canvas (@ahocevar)
- #10534 - [GeoJSON] Read projection from CRS type EPSG (@wussup)
- #10430 - Offset regular shape (@Razi91)
- #10513 - fixed flag-name in upgrade notes (@fgubler)
- #10504 - Fix for reset north when rotation is 360 degrees (@mike-000)
- #10510 - Remove build/apidoc before running jsdoc again (@MoonE)
- #10498 - Fixing issue #10497 on behalf of LarryHuang (@gazza0)
- #10496 - Do not stop events when dragging (@ahocevar)
- #10478 - Do not abort and dispose of tiles (@ahocevar)
- #10495 - typo in view.fit (@danielklim)
- #10473 - Fix for undefined source in Vector layer (@mike-000)
- #10484 - Use a function to get the value of the gradient (@fredj)
- #10262 - Rework to make Document and XMLSerializer lazy and injectable (@bjornharrtell)
- #10461 - Fix link in apidocs to ObjectEvent. (@MoonE)
- #10413 - Limit the ZoomSlider's range to the view's constrained resolution. (@MoonE)
- #10438 - Avoid accessing the DOM to read the viewport size too often (@jahow)
- #10439 - WebGL points layer / add support for symbol rotation (@jahow)
- #10434 - Disable image smoothing for the DEM source in the Sea Level example (@mike-000)
- #10417 - Replace Bing layer with MapTiler (@mike-000)
- #10415 - Control button span element pointer events (@mike-000)
- #10409 - Improve viewport computation in WebGL Postprocessing (@jahow)
- #10119 - Add crossOrigin option to ol/format/KML for icons (@mike-000)
- #10181 - add tags to example docs (@roemhildtg)
- #10407 - Use render feature compatible extent check (@ahocevar)
- #10340 - Draw circles and custom geometry in user coordinates (@mike-000)
- #10393 - getFeaturesInExtent function for ol/source/VectorTile (@ahocevar)
- #10402 - Do not preventDefault on pointerdown (@ahocevar)
- #10269 - Replace the BNG layer source in the Raster Reprojection example (@mike-000)
- #10394 - Remove map renderer element when disposing ([@ahocevar](https://github.com/ahocev...