Creating the cached canvases is expensive and they may never be used.
E. g. the hit detect canvas is not needed with the Immediate renderer
and if a feature is never in the viewport the image is not needed either.
- remove jitter when using RegularShape size in animation, size should
always be an integer
- canvas may have been too small for miter line join
- canvas was at least one stroke width too large for round line join
- reduce canvas size even more for bevel line join
Canvas now precisely fits the shape including stroke, The angle of the
shape is ignored for the calculation.
Fixes missing miter/bevel line join because path was not closed before
stroking.
Reduce canvas context calls, skip beginPath, and instead of drawing the
last point use closePath
Browsers already handle the scaling, no need to multiply this again.
This now also allows setting a moveTolerance of zero which was not
possible before. In the isMoving_ method the condition is
distance > tolerance so this will work.
The build process failed because webpack does not allow failed imports
when it is run as a module.
This detects modules with default exports and only generates import
statements for default exports where they are available.
When overflow is false and some of a MultiPolygon's polygons are
outside the rendered extent the coordinates and geometryWidths arrays are
not kept in sync. Therefore the width check will filter on wrong data and
some texts may not be rendered.
Openlayers classes use an underscore suffix convention to mark class
members as private. These are undocumented implementation details and
presumably unsafe for code outside the class to rely on.
Allowing javascript minimisation to change these names gives 5% bundle
size reduction to the library.
This makes it possible to pickup new examples and prevents compilation
errors when an example is removed. This is especially handy when switching
branches. Otherwise the dev server has to be restarted each time.
The button should not change its position when the collapsed state changes.
The overview map had a somewhat larger padding at the bottom due to being an
inline-block element and the configured line-height of 1.5.
Due to rounding the hitdetection may have been off by one pixel.
At map edge the pixel coordinate may exceed the map's dimensions if an
decimal pixel ratio is used, this is fixed by clamping to the canvas
dimensions.
- Pass click events on measure tooltips through to the map
- Put the tooltip for the currently drawn geometry on top
- Disable text selection in the tooltips so clicking to draw does not select
Removed test that asserted the cloned renderer would not reference the same object as the original.
Replaced tests that stringified the renderer function with tests that compare the original with the clone by reference.
Make predefined geometry functions compatible with removeLastPoint
Add undo to example
Make geometry function for Star compatible with use of removeLastPoint
Additional createRegularPolygon tests
Add a possibility to provide one specific bbox per feature type
on WFS writeGetFeature. This option results to one query node
per featureTypesBbox item. One query node, for one feature type,
will have a specific bbox filter and every query node will share
the same others filters (if a filter option is defined).
Copy LICENSE.md as well as README.md to build when preparing package.
These files are useful for tools that inspect node_modules for
dependency details.
Drag-and-Drop support for formats that read arraybuffer sources
Add TextDecoder to polyfills
Add custom Drag-and-Drop examples for KMZ and MVT
Add sample download and KML styles option to existing example
Test arraybuffer and constructed formats
When using ol.render.Feature there was a mandatory geometry transform.
With this change it is now easy to read features directly in the native tile projection.
Since there is no needed transform, there is no need either to define an extent and a world extent, for that use-case.
Fix nullpointer error when a matrixSet is not found in the matrixsetobj when matrix limits exist.
Also check for match by prepending matrixSetObj.Identifier which is supported by some wmts services.
Add rotation and rotateWithView to options and clone
Add rotation and rotateWithView to clone test
Also check that scale and displacement arrays are cloned
The test for the prerender and postrender events now uses a WebGLPointsLayer instead of a VectorLayer.
This is less confusing and probably closer to practical usage, too.
Use latest version of prism, add json formatter, copy to clipboard plugin,
and line-numbers.
Now the clipboard js is automatically loaded by prism it it not included
and the buttons are automatically initialized. Though I added some css to
match the previous style.
With bootstrap js always included there is no need to add own js to dismiss it.
Only generate the notice for experimental pages, no need to have js for that.
If a space character is at either end of the input string splitting it
procuces an empty string that matches everything.
Allow single character words as there are is a single character tag: `x`
Also use the `input` event instead of `keyup` and addEventlistener instead
of setting the onload / onchange properties.
And handle space character encoded as `+` in query string correctly.
add getScaleArray() method
test two dimension scale icons
test two dimension scale text
add example of icon and label scaling
use smaller icon and larger interval
test two dimensional scale icons
test two dimensional scale icons
Sometimes we may have the functionality to set scale/resolution provided by a user and it can be any number (so constrainResolution in View class is not useful), but we would like to have constrainResolution in mouse wheel zoom event.
The next step in debugging our periodic rendering test failures is to use a new cache key. This change also removes the less specific key, so we will no longer get partial cache restores. If we don't see test failures after this change, we may try adding the v2-dependencies- as a key.
This updates ESLint and our shared eslint-config-openlayers to use Prettier. Most formatting changes were automatically applied with this:
npm run lint -- --fix
A few manual changes were required:
* In `examples/offscreen-canvas.js`, the `//eslint-disable-line` comment needed to be moved to the appropriate line to disable the error about the `'worker-loader!./offscreen-canvas.worker.js'` import.
* In `examples/webpack/exapmle-builder.js`, spaces could not be added after a couple `function`s for some reason. While editing this, I reworked `ExampleBuilder` to be a class.
* In `src/ol/format/WMSGetFeatureInfo.js`, the `// @ts-ignore` comment needed to be moved down one line so it applied to the `parsersNS` argument.
with coordinates that are outside the source. Chrome appears to draw the
piece of the image that is within the area specified on the drawImage and within
the source. Safari bails and draws nothing if (I think) any of the corners are outside
the source.
Thanks for your interest in contributing to OpenLayers.
Thanks for your interest in contributing to OpenLayers. Please see the project's [Code of Conduct](https://github.com/openlayers/openlayers/blob/main/CODE_OF_CONDUCT.md) before proceeding.
## Asking Questions
Please ask questions about using the library on [Stack Overflow using the tag 'openlayers'](http://stackoverflow.com/questions/tagged/openlayers).
Please ask questions about using the library on [Stack Overflow using the tag 'openlayers'](https://stackoverflow.com/questions/tagged/openlayers).
When you want to get involved and discuss new features or changes, please use [the mailing list](https://groups.google.com/forum/#!forum/openlayers-dev).
@@ -21,7 +21,7 @@ Look for `readme.md` files! Several directories contain a `readme.md` file that
## Contributing Code
See [`DEVELOPING.md`](https://github.com/openlayers/openlayers/blob/master/DEVELOPING.md) to learn how to get started developing.
See [`DEVELOPING.md`](https://github.com/openlayers/openlayers/blob/main/DEVELOPING.md) to learn how to get started developing.
Our preferred means of receiving contributions is through [pull requests](https://help.github.com/articles/using-pull-requests). Make sure
that your pull request follows our pull request guidelines below before submitting it.
@@ -31,7 +31,7 @@ This page describes what you need to know to contribute code to OpenLayers as a
## Contributor License Agreement
Your contribution will be under our [license](https://raw.githubusercontent.com/openlayers/openlayers/master/LICENSE.md) as per [GitHub's terms of service](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license).
Your contribution will be under our [license](https://raw.githubusercontent.com/openlayers/openlayers/main/LICENSE.md) as per [GitHub's terms of service](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license).
## Pull request guidelines
@@ -42,8 +42,7 @@ Your pull request must:
* Follow OpenLayers's coding style.
* Pass the integration tests run automatically by the CircleCI Continuous
Integration system.
* Pass the integration tests run automatically by the Continuous Integration system.
* Address a single issue or add a single item of functionality.
@@ -69,12 +68,12 @@ easily-understandable chunks. Any individual commit should not add more than
one new class or one new function. Do not submit commits that change thousands
of lines or that contain more than one distinct logical change. Trivial
commits, e.g. to fix lint errors, should be merged into the commit that
introduced the error. See the [Atomic Commit Convention on Wikipedia](http://en.wikipedia.org/wiki/Atomic_commit#Atomic_Commit_Convention) for more detail.
introduced the error. See the [Atomic Commit Convention on Wikipedia](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_Commit_Convention) for more detail.
`git apply --patch` and `git rebase` can help you create a clean commit
> Pozi helps connect communities through spatial thinking.
> We love Openlayers and it forms a core part of our platform.
> https://pozi.com/ https://app.pozi.com/
See our [Open Collective](https://opencollective.com/openlayers/contribute/sponsors-214/checkout) page if you too are interested in becoming a regular sponsor.
<br>
## IntelliSense support and type checking for VS Code
The ol package contains a src/ folder with JSDoc annotated sources. TypeScript can get type definitions from these sources with a `jsconfig.json` config file in the project root:
> yey'maps is a scalable cloud GIS suite that is developed with the
> powerful Openlayers API and the GDAL library.
> https://www.yeymaps.io/
```json
{
"compilerOptions":{
"checkJs":true,
"baseUrl":"./",
"paths":{
"ol":["node_modules/ol/src"],
"ol/*":["node_modules/ol/src/*"]
}
},
"include":[
"**/*.js",
"node_modules/ol/**/*.js"
]
}
```
<br>
Project template with this configuration: https://gist.github.com/9a7253cb4712e8bf38d75d8ac898e36c.
Note that the above only works when authoring in plain JavaScript. For similar configurations with a `tsconfig.json` in TypeScript projects, your mileage may vary. You may want to use a [third-party types package](https://github.com/hanreev/types-ol) in this case.
> Your one-stop-shop for geospatial open source software.
> We develop leading Physical Security Information Management (PSIM) software.
> OpenLayers is the core of our map engine and we love it!
> https://elacompil.recruitee.com/
<br>
See our [GitHub sponsors page](https://github.com/sponsors/openlayers) or [Open Collective](https://opencollective.com/openlayers/contribute/sponsors-214/checkout) if you too are interested in becoming a regular sponsor.
## ES Modules
The `ol` package contains a `src/` folder with the sources, authored as [ES Modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules). To use these untranspiled sources, either import modules from `ol/src` instead of `ol`, or configure your bundler with an alias pointing to `ol/src` for the `ol` package.
## TypeScript support
The [ol package](https://npmjs.com/package/ol) includes auto-generated TypeScript declarations as `*.d.ts` files.
## Supported Browsers
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](http://www.ecma-international.org/ecma-262/5.1/). This includes Chrome, Firefox, Safari and Edge. For older browsers and platforms like Internet Explorer (down to version 9) and Android 4.x, [polyfills](http://polyfill.io) for `requestAnimationFrame` and `Element.prototype.classList` are required, and using the KML format requires a polyfill for `URL`.
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](https://262.ecma-international.org/5.1/). This includes Chrome, Firefox, Safari and Edge.
For older browsers and platforms (Internet Explorer, Android 4.x, iOS v12 and older, Safari v12 and older), polyfills may be needed for the following browser features:
* [`fetch`](https://caniuse.com/fetch): Available from [polyfill.io](https://polyfill.io/).
* [`requestAnimationFrame`](https://caniuse.com/requestanimationframe): Available from [polyfill.io](https://polyfill.io/).
* [`element.prototype.classList` (`add`/`remove`)](https://caniuse.com/classlist): Available from [polyfill.io](https://polyfill.io/).
* [`URL` API](https://caniuse.com/url): Available from [polyfill.io](https://polyfill.io/).
* [`TextDecoder`](https://caniuse.com/textencoder): Available from [polyfill.io](https://polyfill.io/).
* [`Number.isInteger`](https://caniuse.com/isInteger): Available from [polyfill.io](https://polyfill.io/).
* [Pointer events](https://caniuse.com/pointer): Use [elm-pep](https://npmjs.com/package/elm-pep) (lightweight) or [pepjs](https://npmjs.com/package/pepjs) (for really, really old browsers).
## Documentation
@@ -96,7 +116,7 @@ Please see our guide on [contributing](CONTRIBUTING.md) if you're interested in
## Community
- Need help? Find it on [Stack Overflow using the tag 'openlayers'](http://stackoverflow.com/questions/tagged/openlayers)
- Need help? Find it on [Stack Overflow using the tag 'openlayers'](https://stackoverflow.com/questions/tagged/openlayers)
- Follow [@openlayers](https://twitter.com/openlayers) on Twitter
The [ol package](https://npmjs.com/package/ol) 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.
```json
"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.
### v6.5.0
#### 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
```js
{hitTolerance:10/devicePixelRatio,}
```
you'll have to change that code to
```js
{hitTolerance:10,}
```
### v6.4.0
#### Pointer events polyfill removed
Now that all major browsers support Pointer events natively, we removed the [elm-pep](https://npmjs.com/package/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](https://npmjs.com/package/elm-pep) or [pepjs](https://www.npmjs.com/package/@openlayers/pepjs)) in your application.
### v6.3.2
#### Backwards incompatible changes
##### Geolocation no longer stop tracking after an error
Previously, when the Geolocation class encounter an error the tracking was stopped. It now continues to track.
To get the previous behavior, use the following code:
```js
geolocation.on('error',function(error){
geolocation.setTracking(false);
});
```
### v6.3.0
#### Vector source loading when extent crosses +/-180
@@ -1428,7 +1495,7 @@ now specify an `extent` instead of `widths`. These settings are used to restrict
});
```
See https://openlayers.org/en/master/examples/vector-layer.html for a real example.
See https://openlayers.org/en/latest/examples/vector-layer.html for a real example.
Note that you no longer need to set a `projection` on the source!
@@ -1450,7 +1517,7 @@ now specify an `extent` instead of `widths`. These settings are used to restrict
The above code uses jQuery to send an Ajax request, but you can obviously use any Ajax library.
See https://openlayers.org/en/master/examples/igc.html for a real example.
See https://openlayers.org/en/latest/examples/igc.html for a real example.
* Note about KML
@@ -1508,9 +1575,9 @@ now specify an `extent` instead of `widths`. These settings are used to restrict
});
```
See https://openlayers.org/en/master/examples/vector-osm.html for a real example.
See https://openlayers.org/en/latest/examples/vector-osm.html for a real example.
* The experimental `ol.loadingstrategy.createTile` function has been renamed to `ol.loadingstrategy.tile`. The signature of the function hasn't changed. See https://openlayers.org/en/master/examples/vector-osm.html for an example.
* The experimental `ol.loadingstrategy.createTile` function has been renamed to `ol.loadingstrategy.tile`. The signature of the function hasn't changed. See https://openlayers.org/en/latest/examples/vector-osm.html for an example.
@@ -53,7 +53,7 @@ The 3.5.0 release includes features and fixes from a whopping 129 pull requests
});
```
See https://openlayers.org/en/master/examples/vector-layer.html for a real example.
See https://openlayers.org/en/latest/examples/vector-layer.html for a real example.
Note that you no longer need to set a `projection` on the source!
@@ -75,7 +75,7 @@ The 3.5.0 release includes features and fixes from a whopping 129 pull requests
The above code uses jQuery to send an Ajax request, but you can obviously use any Ajax library.
See https://openlayers.org/en/master/examples/igc.html for a real example.
See https://openlayers.org/en/latest/examples/igc.html for a real example.
* Note about KML
@@ -133,9 +133,9 @@ The 3.5.0 release includes features and fixes from a whopping 129 pull requests
});
```
See https://openlayers.org/en/master/examples/vector-osm.html for a real example.
See https://openlayers.org/en/latest/examples/vector-osm.html for a real example.
* The experimental `ol.loadingstrategy.createTile` function has been renamed to `ol.loadingstrategy.tile`. The signature of the function hasn't changed. See https://openlayers.org/en/master/examples/vector-osm.html for an example.
* The experimental `ol.loadingstrategy.createTile` function has been renamed to `ol.loadingstrategy.tile`. The signature of the function hasn't changed. See https://openlayers.org/en/latest/examples/vector-osm.html for an example.
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 improvments. And good news for TypeScript users: OpenLayers now ships with type definitions in `.d.ts` files.
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.
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](https://npmjs.com/package/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](https://npmjs.com/package/elm-pep) or [pepjs](https://www.npmjs.com/package/@openlayers/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](https://github.com/openlayers/openlayers/pull/11322) - same dropdown hover than the site ([@jipexu](https://github.com/jipexu))
* [#11318](https://github.com/openlayers/openlayers/pull/11318) - Mark active nav item ([@ahocevar](https://github.com/ahocevar))
* [#11317](https://github.com/openlayers/openlayers/pull/11317) - Make header and menu navigation consistent with web site ([@ahocevar](https://github.com/ahocevar))
* [#11277](https://github.com/openlayers/openlayers/pull/11277) - Have high resolution regular shape ([@sbrunner](https://github.com/sbrunner))
* [#11313](https://github.com/openlayers/openlayers/pull/11313) - Add direct link to other examples to tags ([@MoonE](https://github.com/MoonE))
* [#11310](https://github.com/openlayers/openlayers/pull/11310) - Update bootstrap, cleanup css, make pages more responsive ([@ahocevar](https://github.com/ahocevar))
* [#11309](https://github.com/openlayers/openlayers/pull/11309) - Do not extract comments to avoid asset name conflicts ([@ahocevar](https://github.com/ahocevar))
* [#11306](https://github.com/openlayers/openlayers/pull/11306) - Replace/remove usage of tileserver.maptiler.com ([@petrsloup](https://github.com/petrsloup))
* [#11270](https://github.com/openlayers/openlayers/pull/11270) - Fix handling of events originating from overlayContainerStopEvent children ([@ahocevar](https://github.com/ahocevar))
* [#11269](https://github.com/openlayers/openlayers/pull/11269) - Register and unregister events in set target handler ([@ahocevar](https://github.com/ahocevar))
* [#11300](https://github.com/openlayers/openlayers/pull/11300) - Drag and Drop to update source and fire event only if features added ([@mike-000](https://github.com/mike-000))
* [#11286](https://github.com/openlayers/openlayers/pull/11286) - Allow line breaks before slashes in apidoc navigation ([@MoonE](https://github.com/MoonE))
* [#11287](https://github.com/openlayers/openlayers/pull/11287) - Examples index page fixes ([@MoonE](https://github.com/MoonE))
* [#11197](https://github.com/openlayers/openlayers/pull/11197) - Added '&&' logical operator to expressions ([@RydingM](https://github.com/RydingM))
* [#11283](https://github.com/openlayers/openlayers/pull/11283) - Remove update while interacting/animating from VectorImage ([@yonzmeer](https://github.com/yonzmeer))
* [#11267](https://github.com/openlayers/openlayers/pull/11267) - Fix upright labels on vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#11263](https://github.com/openlayers/openlayers/pull/11263) - Fix rotation reset in Mapbox-gl Layer example ([@mike-000](https://github.com/mike-000))
* [#11271](https://github.com/openlayers/openlayers/pull/11271) - Make style override CSS compatible with importing ol.css and with IE ([@mike-000](https://github.com/mike-000))
* [#11253](https://github.com/openlayers/openlayers/pull/11253) - Only clamp to source extent for safe transforms ([@ahocevar](https://github.com/ahocevar))
* [#11258](https://github.com/openlayers/openlayers/pull/11258) - Replace ol tag with openlayers ([@ahocevar](https://github.com/ahocevar))
* [#11256](https://github.com/openlayers/openlayers/pull/11256) - Add dispose API docs to raster source (#10856) ([@EvertEt](https://github.com/EvertEt))
* [#11226](https://github.com/openlayers/openlayers/pull/11226) - By modifying the common vertex, not all geometries were changed when … ([@michalzielanski](https://github.com/michalzielanski))
* [#11225](https://github.com/openlayers/openlayers/pull/11225) - Use 'source-over' to render reprojection edges ([@mike-000](https://github.com/mike-000))
* [#11224](https://github.com/openlayers/openlayers/pull/11224) - Quote . in RegExp ([@mohawk2](https://github.com/mohawk2))
* [#11219](https://github.com/openlayers/openlayers/pull/11219) - Make proj4 transforms behave like built-in transforms ([@ahocevar](https://github.com/ahocevar))
* [#11217](https://github.com/openlayers/openlayers/pull/11217) - Additional test coverage for serializing GeoJSON ([@tschaub](https://github.com/tschaub))
* [#11215](https://github.com/openlayers/openlayers/pull/11215) - Fix MVT multipolygons with featureClass: Feature ([@ahocevar](https://github.com/ahocevar))
* [#11193](https://github.com/openlayers/openlayers/pull/11193) - Fix VectorImage layer clipping with rotation ([@mike-000](https://github.com/mike-000))
* [#11195](https://github.com/openlayers/openlayers/pull/11195) - getExtent() to return getEmpty() if geometry is unprojectable ([@mike-000](https://github.com/mike-000))
* [#11188](https://github.com/openlayers/openlayers/pull/11188) - Late object initialization ([@michalzielanski](https://github.com/michalzielanski))
* [#11194](https://github.com/openlayers/openlayers/pull/11194) - ol/geom/LineString#getCoordinateAt() to return Z and M values if available ([@mike-000](https://github.com/mike-000))
* [#11198](https://github.com/openlayers/openlayers/pull/11198) - Add condition option to Extent interaction ([@mike-000](https://github.com/mike-000))
* [#11202](https://github.com/openlayers/openlayers/pull/11202) - Branch name changes ([@tschaub](https://github.com/tschaub))
* [#11192](https://github.com/openlayers/openlayers/pull/11192) - Use pepjs in examples to support more old/exotic browsers ([@ahocevar](https://github.com/ahocevar))
* [#11190](https://github.com/openlayers/openlayers/pull/11190) - Correct vector layer clipping with rotation ([@mike-000](https://github.com/mike-000))
* [#11037](https://github.com/openlayers/openlayers/pull/11037) - Allow icon and text styles to be scaled in two dimensions ([@mike-000](https://github.com/mike-000))
* [#11165](https://github.com/openlayers/openlayers/pull/11165) - Use drag-pan default condition with onFocusOnly ([@ahocevar](https://github.com/ahocevar))
* [#11172](https://github.com/openlayers/openlayers/pull/11172) - Use cross-browser find ([@ahocevar](https://github.com/ahocevar))
* [#11171](https://github.com/openlayers/openlayers/pull/11171) - Allow using un() for events registered with once() ([@ahocevar](https://github.com/ahocevar))
* [#11174](https://github.com/openlayers/openlayers/pull/11174) - Improve types and docs for getStyle/setStyle ([@ahocevar](https://github.com/ahocevar))
* [#11146](https://github.com/openlayers/openlayers/pull/11146) - Update JSTS example to use JSTS 2.3.0 ([@bjornharrtell](https://github.com/bjornharrtell))
* [#11135](https://github.com/openlayers/openlayers/pull/11135) - Re-enable onFocusOnly option for interaction defaults ([@ahocevar](https://github.com/ahocevar))
* [#11106](https://github.com/openlayers/openlayers/pull/11106) - Defer ZoomSlider initialization until its size is available ([@M393](https://github.com/M393))
* [#11116](https://github.com/openlayers/openlayers/pull/11116) - No search autocomplete ([@ahocevar](https://github.com/ahocevar))
* [#11088](https://github.com/openlayers/openlayers/pull/11088) - Transform without axis order in proj4 ([@ahocevar](https://github.com/ahocevar))
* [#11089](https://github.com/openlayers/openlayers/pull/11089) - Use assign function instead of Object.assign ([@ahocevar](https://github.com/ahocevar))
* [#11048](https://github.com/openlayers/openlayers/pull/11048) - Run tests as a GitHub CI workflow ([@openlayers](https://github.com/openlayers))
* [#11047](https://github.com/openlayers/openlayers/pull/11047) - Include processor from pixelworks and terminate workers before creating new ones ([@tschaub](https://github.com/tschaub))
* [#11044](https://github.com/openlayers/openlayers/pull/11044) - Remove personal Mapbox key ([@tschaub](https://github.com/tschaub))
* [#11042](https://github.com/openlayers/openlayers/pull/11042) - Fix legacy build by defining ol alias ([@ahocevar](https://github.com/ahocevar))
* [#11041](https://github.com/openlayers/openlayers/pull/11041) - Fix custom controls with user-provided element ([@ahocevar](https://github.com/ahocevar))
* [#11025](https://github.com/openlayers/openlayers/pull/11025) - Get rid of MapBrowserPointerEvent ([@ahocevar](https://github.com/ahocevar))
* [#11024](https://github.com/openlayers/openlayers/pull/11024) - Make events work when inside a web component ([@ahocevar](https://github.com/ahocevar))
* [#11019](https://github.com/openlayers/openlayers/pull/11019) - Option to disable image smoothing for Image layer sources ([@mike-000](https://github.com/mike-000))
* [#11023](https://github.com/openlayers/openlayers/pull/11023) - Add MapBrowserPointerEvent to apidoc ([@MoonE](https://github.com/MoonE))
* [#11017](https://github.com/openlayers/openlayers/pull/11017) - Don't stop geolocation tracking on error ([@fredj](https://github.com/fredj))
* [#11011](https://github.com/openlayers/openlayers/pull/11011) - Set background fill style for each declutter label ([@mike-000](https://github.com/mike-000))
* [#10977](https://github.com/openlayers/openlayers/pull/10977) - Only render vector tile when there are executor groups ([@ahocevar](https://github.com/ahocevar))
* [#10990](https://github.com/openlayers/openlayers/pull/10990) - Include context options in tile cache key ([@mike-000](https://github.com/mike-000))
* [#10987](https://github.com/openlayers/openlayers/pull/10987) - Use brokenDiagonalRendering reprojection processing if image smoothing is disabled ([@mike-000](https://github.com/mike-000))
* [#10981](https://github.com/openlayers/openlayers/pull/10981) - Calculate WMTS TileGrid extent using TileMatrixSetLimit when available ([@nielsmeijer](https://github.com/nielsmeijer))
* [#10993](https://github.com/openlayers/openlayers/pull/10993) - Do not rely on custom type overrides ([@ahocevar](https://github.com/ahocevar))
* [#10989](https://github.com/openlayers/openlayers/pull/10989) - Add log2 function to ol/math ([@mike-000](https://github.com/mike-000))
* [#10986](https://github.com/openlayers/openlayers/pull/10986) - Correct bold font tag closure in example description ([@mike-000](https://github.com/mike-000))
* [#10983](https://github.com/openlayers/openlayers/pull/10983) - Trying to fix CI ([@ahocevar](https://github.com/ahocevar))
* [#10976](https://github.com/openlayers/openlayers/pull/10976) - Apply projection.getMetersPerUnit() to calculated WMTS resolution ([@nielsmeijer](https://github.com/nielsmeijer))
* [#10960](https://github.com/openlayers/openlayers/pull/10960) - Improve Vector Clipping Layer example with a background layer and intersect ([@SDaron](https://github.com/SDaron))
* [#10956](https://github.com/openlayers/openlayers/pull/10956) - Add undefined check for navigator.userAgent ([@pmulholland42](https://github.com/pmulholland42))
* [#10936](https://github.com/openlayers/openlayers/pull/10936) - Set pointerEvents style programmatically instead of relying on ol.css ([@ahocevar](https://github.com/ahocevar))
* [#10941](https://github.com/openlayers/openlayers/pull/10941) - Always prevent default after handleDragEvent ([@ahocevar](https://github.com/ahocevar))
* [#10939](https://github.com/openlayers/openlayers/pull/10939) - Losen listener type ([@ahocevar](https://github.com/ahocevar))
* [#10935](https://github.com/openlayers/openlayers/pull/10935) - Fix calling Overlay.panIntoView with no options ([@ejn](https://github.com/ejn))
* [#10937](https://github.com/openlayers/openlayers/pull/10937) - Use the tile coordinate as a tile pseudo URL in geojson-vt example ([@mike-000](https://github.com/mike-000))
* [#10934](https://github.com/openlayers/openlayers/pull/10934) - Update TypeScript to v3.8 ([@ahocevar](https://github.com/ahocevar))
* [#10931](https://github.com/openlayers/openlayers/pull/10931) - Use a new cache key in hopes of fixing test failures ([@tschaub](https://github.com/tschaub))
* [#10930](https://github.com/openlayers/openlayers/pull/10930) - Better test for uniform colors ([@ahocevar](https://github.com/ahocevar))
* [#10929](https://github.com/openlayers/openlayers/pull/10929) - Fix typo in 6.3.0 release doc ([@nikolas](https://github.com/nikolas))
* [#10917](https://github.com/openlayers/openlayers/pull/10917) - Fix the IGN WMTS example dead links and attribution ([@sambakk](https://github.com/sambakk))
* [#10911](https://github.com/openlayers/openlayers/pull/10911) - Remove link for fullscreen event from navigation ([@MoonE](https://github.com/MoonE))
* [#10916](https://github.com/openlayers/openlayers/pull/10916) - Store additional artifacts to debug test failures ([@tschaub](https://github.com/tschaub))
* [#10902](https://github.com/openlayers/openlayers/pull/10902) - Move readFromDocument implementation to the base class ([@fredj](https://github.com/fredj))
* [#10899](https://github.com/openlayers/openlayers/pull/10899) - Do not scroll page during feature translation ([@ahocevar](https://github.com/ahocevar))
* [#10862](https://github.com/openlayers/openlayers/pull/10862) - Use prettier ([@tschaub](https://github.com/tschaub))
* [#10895](https://github.com/openlayers/openlayers/pull/10895) - Fix dependency source management for examples ([@ahocevar](https://github.com/ahocevar))
* [#10882](https://github.com/openlayers/openlayers/pull/10882) - Apidoc - Fix toggle state when there are no hidden members ([@MoonE](https://github.com/MoonE))
* [#10878](https://github.com/openlayers/openlayers/pull/10878) - Avoid page scrolling when freehand drawing on mobile ([@ahocevar](https://github.com/ahocevar))
* [#10879](https://github.com/openlayers/openlayers/pull/10879) - Do not append hit canvas to document body ([@ahocevar](https://github.com/ahocevar))
* [#10877](https://github.com/openlayers/openlayers/pull/10877) - Remove .d.ts files from the package ([@ahocevar](https://github.com/ahocevar))
* [#10874](https://github.com/openlayers/openlayers/pull/10874) - fix return type ([@mike-000](https://github.com/mike-000))
* [#10872](https://github.com/openlayers/openlayers/pull/10872) - Use TypeScript 3.9 for type generation for better enums ([@ahocevar](https://github.com/ahocevar))
* [#10537](https://github.com/openlayers/openlayers/pull/10537) - Correct resolution used for scale bar and add dpi option ([@mike-000](https://github.com/mike-000))
* [#10463](https://github.com/openlayers/openlayers/pull/10463) - Fix issue with reprojection and double drawing pixels. ([@pjsg](https://github.com/pjsg))
* [#10429](https://github.com/openlayers/openlayers/pull/10429) - Option to disable image smoothing for Tile layer sources (including reprojected sources) ([@mike-000](https://github.com/mike-000))
* [#10865](https://github.com/openlayers/openlayers/pull/10865) - View / avoid solving constraints related to map size during animation ([@jahow](https://github.com/jahow))
<details>
<summary>Dependency Updates</summary>
* [#11298](https://github.com/openlayers/openlayers/pull/11298) - Bump @babel/core from 7.10.4 to 7.10.5 ([@openlayers](https://github.com/openlayers))
* [#11297](https://github.com/openlayers/openlayers/pull/11297) - Bump puppeteer from 5.1.0 to 5.2.0 ([@openlayers](https://github.com/openlayers))
* [#11296](https://github.com/openlayers/openlayers/pull/11296) - Bump typescript from 3.9.6 to 3.9.7 ([@openlayers](https://github.com/openlayers))
* [#11295](https://github.com/openlayers/openlayers/pull/11295) - Bump eslint from 7.4.0 to 7.5.0 ([@openlayers](https://github.com/openlayers))
* [#11294](https://github.com/openlayers/openlayers/pull/11294) - Bump rollup from 2.21.0 to 2.22.1 ([@openlayers](https://github.com/openlayers))
* [#11293](https://github.com/openlayers/openlayers/pull/11293) - Bump terser-webpack-plugin from 3.0.6 to 3.0.7 ([@openlayers](https://github.com/openlayers))
* [#11292](https://github.com/openlayers/openlayers/pull/11292) - Bump url-polyfill from 1.1.9 to 1.1.10 ([@openlayers](https://github.com/openlayers))
* [#11291](https://github.com/openlayers/openlayers/pull/11291) - Bump marked from 1.1.0 to 1.1.1 ([@openlayers](https://github.com/openlayers))
* [#11288](https://github.com/openlayers/openlayers/pull/11288) - Bump lodash from 4.17.15 to 4.17.19 ([@openlayers](https://github.com/openlayers))
* [#11275](https://github.com/openlayers/openlayers/pull/11275) - Bump puppeteer from 5.0.0 to 5.1.0 ([@openlayers](https://github.com/openlayers))
* [#11274](https://github.com/openlayers/openlayers/pull/11274) - Bump rollup from 2.19.0 to 2.21.0 ([@openlayers](https://github.com/openlayers))
* [#11273](https://github.com/openlayers/openlayers/pull/11273) - Bump yargs from 15.4.0 to 15.4.1 ([@openlayers](https://github.com/openlayers))
* [#11244](https://github.com/openlayers/openlayers/pull/11244) - Bump rollup from 2.18.0 to 2.19.0 ([@openlayers](https://github.com/openlayers))
* [#11245](https://github.com/openlayers/openlayers/pull/11245) - Bump @babel/core from 7.10.3 to 7.10.4 ([@openlayers](https://github.com/openlayers))
* [#11243](https://github.com/openlayers/openlayers/pull/11243) - Bump pixelmatch from 5.2.0 to 5.2.1 ([@openlayers](https://github.com/openlayers))
* [#11248](https://github.com/openlayers/openlayers/pull/11248) - Bump eslint from 7.3.0 to 7.4.0 ([@openlayers](https://github.com/openlayers))
* [#11247](https://github.com/openlayers/openlayers/pull/11247) - Bump @babel/preset-env from 7.10.3 to 7.10.4 ([@openlayers](https://github.com/openlayers))
* [#11249](https://github.com/openlayers/openlayers/pull/11249) - Bump copy-webpack-plugin from 6.0.2 to 6.0.3 ([@openlayers](https://github.com/openlayers))
* [#11246](https://github.com/openlayers/openlayers/pull/11246) - Bump yargs from 15.3.1 to 15.4.0 ([@openlayers](https://github.com/openlayers))
* [#11242](https://github.com/openlayers/openlayers/pull/11242) - Bump typescript from 3.9.5 to 3.9.6 ([@openlayers](https://github.com/openlayers))
* [#11241](https://github.com/openlayers/openlayers/pull/11241) - Bump puppeteer from 4.0.0 to 5.0.0 ([@openlayers](https://github.com/openlayers))
* [#11210](https://github.com/openlayers/openlayers/pull/11210) - Bump puppeteer from 3.3.0 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#11209](https://github.com/openlayers/openlayers/pull/11209) - Bump rollup from 2.16.1 to 2.18.0 ([@openlayers](https://github.com/openlayers))
* [#11208](https://github.com/openlayers/openlayers/pull/11208) - Bump webpack-cli from 3.3.11 to 3.3.12 ([@openlayers](https://github.com/openlayers))
* [#11207](https://github.com/openlayers/openlayers/pull/11207) - Bump eslint from 7.2.0 to 7.3.0 ([@openlayers](https://github.com/openlayers))
* [#11206](https://github.com/openlayers/openlayers/pull/11206) - Bump @babel/preset-env from 7.10.2 to 7.10.3 ([@openlayers](https://github.com/openlayers))
* [#11205](https://github.com/openlayers/openlayers/pull/11205) - Bump terser-webpack-plugin from 3.0.4 to 3.0.6 ([@openlayers](https://github.com/openlayers))
* [#11204](https://github.com/openlayers/openlayers/pull/11204) - Bump @babel/core from 7.10.2 to 7.10.3 ([@openlayers](https://github.com/openlayers))
* [#11183](https://github.com/openlayers/openlayers/pull/11183) - Bump mocha from 7.2.0 to 8.0.1 ([@openlayers](https://github.com/openlayers))
* [#11181](https://github.com/openlayers/openlayers/pull/11181) - Bump terser-webpack-plugin from 3.0.3 to 3.0.4 ([@openlayers](https://github.com/openlayers))
* [#11182](https://github.com/openlayers/openlayers/pull/11182) - Bump rollup from 2.15.0 to 2.16.1 ([@openlayers](https://github.com/openlayers))
* [#11180](https://github.com/openlayers/openlayers/pull/11180) - Bump karma from 5.0.9 to 5.1.0 ([@openlayers](https://github.com/openlayers))
* [#11158](https://github.com/openlayers/openlayers/pull/11158) - Bump globby from 11.0.0 to 11.0.1 ([@openlayers](https://github.com/openlayers))
* [#11157](https://github.com/openlayers/openlayers/pull/11157) - Bump copy-webpack-plugin from 6.0.1 to 6.0.2 ([@openlayers](https://github.com/openlayers))
* [#11151](https://github.com/openlayers/openlayers/pull/11151) - Bump terser-webpack-plugin from 3.0.2 to 3.0.3 ([@openlayers](https://github.com/openlayers))
* [#11156](https://github.com/openlayers/openlayers/pull/11156) - Bump typescript from 3.9.3 to 3.9.5 ([@openlayers](https://github.com/openlayers))
* [#11155](https://github.com/openlayers/openlayers/pull/11155) - Bump fs-extra from 9.0.0 to 9.0.1 ([@openlayers](https://github.com/openlayers))
* [#11152](https://github.com/openlayers/openlayers/pull/11152) - Bump puppeteer from 3.2.0 to 3.3.0 ([@openlayers](https://github.com/openlayers))
* [#11153](https://github.com/openlayers/openlayers/pull/11153) - Bump eslint from 6.8.0 to 7.2.0 ([@openlayers](https://github.com/openlayers))
* [#11150](https://github.com/openlayers/openlayers/pull/11150) - Bump rollup from 2.12.0 to 2.15.0 ([@openlayers](https://github.com/openlayers))
* [#11154](https://github.com/openlayers/openlayers/pull/11154) - Bump ol-mapbox-style from 6.1.1 to 6.1.2 ([@openlayers](https://github.com/openlayers))
* [#11143](https://github.com/openlayers/openlayers/pull/11143) - [Security] Bump websocket-extensions from 0.1.3 to 0.1.4 ([@openlayers](https://github.com/openlayers))
* [#11123](https://github.com/openlayers/openlayers/pull/11123) - Bump @babel/core from 7.9.6 to 7.10.2 ([@openlayers](https://github.com/openlayers))
* [#11122](https://github.com/openlayers/openlayers/pull/11122) - Bump karma-coverage-istanbul-reporter from 3.0.2 to 3.0.3 ([@openlayers](https://github.com/openlayers))
* [#11125](https://github.com/openlayers/openlayers/pull/11125) - Bump terser-webpack-plugin from 3.0.1 to 3.0.2 ([@openlayers](https://github.com/openlayers))
* [#11126](https://github.com/openlayers/openlayers/pull/11126) - Bump front-matter from 4.0.0 to 4.0.2 ([@openlayers](https://github.com/openlayers))
* [#11124](https://github.com/openlayers/openlayers/pull/11124) - Bump rollup from 2.10.9 to 2.12.0 ([@openlayers](https://github.com/openlayers))
* [#11127](https://github.com/openlayers/openlayers/pull/11127) - Bump @babel/preset-env from 7.9.6 to 7.10.2 ([@openlayers](https://github.com/openlayers))
* [#11121](https://github.com/openlayers/openlayers/pull/11121) - Bump puppeteer from 3.1.0 to 3.2.0 ([@openlayers](https://github.com/openlayers))
* [#11096](https://github.com/openlayers/openlayers/pull/11096) - Bump rollup-plugin-terser from 5.3.0 to 6.1.0 ([@openlayers](https://github.com/openlayers))
* [#11095](https://github.com/openlayers/openlayers/pull/11095) - Bump front-matter from 3.2.1 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#11094](https://github.com/openlayers/openlayers/pull/11094) - Bump rollup from 2.10.2 to 2.10.9 ([@openlayers](https://github.com/openlayers))
* [#11099](https://github.com/openlayers/openlayers/pull/11099) - Bump mocha from 7.1.2 to 7.2.0 ([@openlayers](https://github.com/openlayers))
* [#11093](https://github.com/openlayers/openlayers/pull/11093) - Bump karma from 5.0.7 to 5.0.9 ([@openlayers](https://github.com/openlayers))
* [#11098](https://github.com/openlayers/openlayers/pull/11098) - Bump typescript from 3.9.2 to 3.9.3 ([@openlayers](https://github.com/openlayers))
* [#11097](https://github.com/openlayers/openlayers/pull/11097) - Bump puppeteer from 3.0.4 to 3.1.0 ([@openlayers](https://github.com/openlayers))
* [#11062](https://github.com/openlayers/openlayers/pull/11062) - Bump typescript from 3.8.3 to 3.9.2 ([@openlayers](https://github.com/openlayers))
* [#11057](https://github.com/openlayers/openlayers/pull/11057) - Bump copy-webpack-plugin from 5.1.1 to 6.0.1 ([@openlayers](https://github.com/openlayers))
* [#11060](https://github.com/openlayers/openlayers/pull/11060) - Bump karma from 5.0.5 to 5.0.7 ([@openlayers](https://github.com/openlayers))
* [#11059](https://github.com/openlayers/openlayers/pull/11059) - Bump rollup from 2.9.1 to 2.10.2 ([@openlayers](https://github.com/openlayers))
* [#11058](https://github.com/openlayers/openlayers/pull/11058) - Bump marked from 1.0.0 to 1.1.0 ([@openlayers](https://github.com/openlayers))
* [#11064](https://github.com/openlayers/openlayers/pull/11064) - Bump front-matter from 3.1.0 to 3.2.1 ([@openlayers](https://github.com/openlayers))
* [#11061](https://github.com/openlayers/openlayers/pull/11061) - Bump url-polyfill from 1.1.8 to 1.1.9 ([@openlayers](https://github.com/openlayers))
* [#11063](https://github.com/openlayers/openlayers/pull/11063) - Bump proj4 from 2.6.1 to 2.6.2 ([@openlayers](https://github.com/openlayers))
* [#11030](https://github.com/openlayers/openlayers/pull/11030) - Bump karma-coverage-istanbul-reporter from 3.0.0 to 3.0.2 ([@openlayers](https://github.com/openlayers))
* [#11031](https://github.com/openlayers/openlayers/pull/11031) - Bump karma from 5.0.4 to 5.0.5 ([@openlayers](https://github.com/openlayers))
* [#11032](https://github.com/openlayers/openlayers/pull/11032) - Bump puppeteer from 3.0.2 to 3.0.4 ([@openlayers](https://github.com/openlayers))
* [#11029](https://github.com/openlayers/openlayers/pull/11029) - Bump jquery from 3.5.0 to 3.5.1 ([@openlayers](https://github.com/openlayers))
* [#11028](https://github.com/openlayers/openlayers/pull/11028) - Bump rollup from 2.7.6 to 2.9.1 ([@openlayers](https://github.com/openlayers))
* [#11027](https://github.com/openlayers/openlayers/pull/11027) - Bump terser-webpack-plugin from 3.0.0 to 3.0.1 ([@openlayers](https://github.com/openlayers))
* [#11026](https://github.com/openlayers/openlayers/pull/11026) - Bump webpack-dev-server from 3.10.3 to 3.11.0 ([@openlayers](https://github.com/openlayers))
* [#11006](https://github.com/openlayers/openlayers/pull/11006) - Bump karma-mocha from 2.0.0 to 2.0.1 ([@openlayers](https://github.com/openlayers))
* [#11005](https://github.com/openlayers/openlayers/pull/11005) - Bump karma from 5.0.2 to 5.0.4 ([@openlayers](https://github.com/openlayers))
* [#11003](https://github.com/openlayers/openlayers/pull/11003) - Bump rollup from 2.7.2 to 2.7.6 ([@openlayers](https://github.com/openlayers))
* [#11002](https://github.com/openlayers/openlayers/pull/11002) - Bump puppeteer from 2.1.1 to 3.0.2 ([@openlayers](https://github.com/openlayers))
* [#10999](https://github.com/openlayers/openlayers/pull/10999) - Bump @babel/core from 7.9.0 to 7.9.6 ([@openlayers](https://github.com/openlayers))
* [#11004](https://github.com/openlayers/openlayers/pull/11004) - Bump @babel/preset-env from 7.9.5 to 7.9.6 ([@openlayers](https://github.com/openlayers))
* [#11001](https://github.com/openlayers/openlayers/pull/11001) - Bump karma-coverage-istanbul-reporter from 2.1.1 to 3.0.0 ([@openlayers](https://github.com/openlayers))
* [#11000](https://github.com/openlayers/openlayers/pull/11000) - Bump terser-webpack-plugin from 2.3.6 to 3.0.0 ([@openlayers](https://github.com/openlayers))
* [#10971](https://github.com/openlayers/openlayers/pull/10971) - Bump webpack from 4.42.1 to 4.43.0 ([@openlayers](https://github.com/openlayers))
* [#10972](https://github.com/openlayers/openlayers/pull/10972) - Bump marked from 0.8.2 to 1.0.0 ([@openlayers](https://github.com/openlayers))
* [#10970](https://github.com/openlayers/openlayers/pull/10970) - Bump mocha from 7.1.1 to 7.1.2 ([@openlayers](https://github.com/openlayers))
* [#10969](https://github.com/openlayers/openlayers/pull/10969) - Bump puppeteer from 3.0.0 to 3.0.1 ([@openlayers](https://github.com/openlayers))
* [#10968](https://github.com/openlayers/openlayers/pull/10968) - Bump coveralls from 3.0.11 to 3.1.0 ([@openlayers](https://github.com/openlayers))
* [#10967](https://github.com/openlayers/openlayers/pull/10967) - Bump terser-webpack-plugin from 2.3.5 to 2.3.6 ([@openlayers](https://github.com/openlayers))
* [#10966](https://github.com/openlayers/openlayers/pull/10966) - Bump rollup from 2.6.1 to 2.7.2 ([@openlayers](https://github.com/openlayers))
* [#10945](https://github.com/openlayers/openlayers/pull/10945) - Bump karma-mocha from 1.3.0 to 2.0.0 ([@openlayers](https://github.com/openlayers))
* [#10943](https://github.com/openlayers/openlayers/pull/10943) - Bump pngjs from 4.0.0 to 5.0.0 ([@openlayers](https://github.com/openlayers))
* [#10946](https://github.com/openlayers/openlayers/pull/10946) - Bump pixelmatch from 5.1.0 to 5.2.0 ([@openlayers](https://github.com/openlayers))
* [#10944](https://github.com/openlayers/openlayers/pull/10944) - Bump loglevelnext from 3.0.1 to 4.0.1 ([@openlayers](https://github.com/openlayers))
* [#10942](https://github.com/openlayers/openlayers/pull/10942) - Bump puppeteer from 2.1.1 to 3.0.0 ([@openlayers](https://github.com/openlayers))
* [#10947](https://github.com/openlayers/openlayers/pull/10947) - Bump karma from 5.0.1 to 5.0.2 ([@openlayers](https://github.com/openlayers))
* [#10918](https://github.com/openlayers/openlayers/pull/10918) - Bump @babel/preset-env from 7.9.0 to 7.9.5 ([@openlayers](https://github.com/openlayers))
* [#10921](https://github.com/openlayers/openlayers/pull/10921) - Bump pngjs from 3.4.0 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#10923](https://github.com/openlayers/openlayers/pull/10923) - Bump sinon from 9.0.1 to 9.0.2 ([@openlayers](https://github.com/openlayers))
* [#10922](https://github.com/openlayers/openlayers/pull/10922) - Bump karma from 4.4.1 to 5.0.1 ([@openlayers](https://github.com/openlayers))
* [#10920](https://github.com/openlayers/openlayers/pull/10920) - Bump jsdoc from 3.6.3 to 3.6.4 ([@openlayers](https://github.com/openlayers))
* [#10919](https://github.com/openlayers/openlayers/pull/10919) - Bump rollup from 2.3.3 to 2.6.1 ([@openlayers](https://github.com/openlayers))
* [#10924](https://github.com/openlayers/openlayers/pull/10924) - Bump jquery from 3.4.1 to 3.5.0 ([@openlayers](https://github.com/openlayers))
* [#10889](https://github.com/openlayers/openlayers/pull/10889) - Bump rollup from 2.3.0 to 2.3.3 ([@openlayers](https://github.com/openlayers))
* [#10891](https://github.com/openlayers/openlayers/pull/10891) - Bump handlebars from 4.7.4 to 4.7.6 ([@openlayers](https://github.com/openlayers))
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](https://github.com/openlayers/openlayers/pull/11346) - Fix text instruction flat coordinates when stride is not 2 ([@ahocevar](https://github.com/ahocevar))
* [#11348](https://github.com/openlayers/openlayers/pull/11348) - Add all layers to layer export ([@M393](https://github.com/M393))
* [#11337](https://github.com/openlayers/openlayers/pull/11337) - Do not rely on old value for target ([@ahocevar](https://github.com/ahocevar))
* [#11345](https://github.com/openlayers/openlayers/pull/11345) - Fix the popup in the geographic example ([@MoonE](https://github.com/MoonE))
* [#11336](https://github.com/openlayers/openlayers/pull/11336) - Hit detect with pixelRatio of 1 ([@ahocevar](https://github.com/ahocevar))
* [#11341](https://github.com/openlayers/openlayers/pull/11341) - update link to BS doc ([@jipexu](https://github.com/jipexu))
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](https://github.com/openlayers/openlayers/releases/tag/v6.4.0) for a complete list of changes and upgrade notes when upgrading from v6.3.x.
## List of all changes
* [#11364](https://github.com/openlayers/openlayers/pull/11364) - Load pointer events polyfill - before other polyfills ([@ahocevar](https://github.com/ahocevar))
* [#11365](https://github.com/openlayers/openlayers/pull/11365) - Revert to original method proposed in #11193 ([@mike-000](https://github.com/mike-000))
* [#11359](https://github.com/openlayers/openlayers/pull/11359) - check projection can wrap before getting width ([@mike-000](https://github.com/mike-000))
* [#11355](https://github.com/openlayers/openlayers/pull/11355) - Cloak API key with instructions where to get one ([@ahocevar](https://github.com/ahocevar))
* [#11354](https://github.com/openlayers/openlayers/pull/11354) - Fix line breaks in changelog ([@ahocevar](https://github.com/ahocevar))
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](https://github.com/openlayers/openlayers/releases/tag/v6.4.0) for a complete list of changes and upgrade notes when upgrading from v6.3.x.
## List of all changes
* [#11379](https://github.com/openlayers/openlayers/pull/11379) - tooltip bs on fullscreen ([@jipexu](https://github.com/jipexu))
* [#11378](https://github.com/openlayers/openlayers/pull/11378) - Fix imageSmoothing: false when ImageStatic is stretched to fit extent ([@mike-000](https://github.com/mike-000))
* [#11367](https://github.com/openlayers/openlayers/pull/11367) - Use https for mapbox tiles ([@MoonE](https://github.com/MoonE))
* [#11377](https://github.com/openlayers/openlayers/pull/11377) - Only include renderBuffer when decluttering ([@ahocevar](https://github.com/ahocevar))
* [#11376](https://github.com/openlayers/openlayers/pull/11376) - Overlay Eample - Show the popup in front of the other overlays ([@MoonE](https://github.com/MoonE))
<details>
<summary>Dependency Updates</summary>
* [#11381](https://github.com/openlayers/openlayers/pull/11381) - Bump karma from 5.1.0 to 5.1.1 ([@openlayers](https://github.com/openlayers))
* [#11383](https://github.com/openlayers/openlayers/pull/11383) - Bump worker-loader from 2.0.0 to 3.0.0 ([@openlayers](https://github.com/openlayers))
* [#11386](https://github.com/openlayers/openlayers/pull/11386) - Bump webpack from 4.44.0 to 4.44.1 ([@openlayers](https://github.com/openlayers))
* [#11384](https://github.com/openlayers/openlayers/pull/11384) - Bump @babel/core from 7.10.5 to 7.11.0 ([@openlayers](https://github.com/openlayers))
* [#11382](https://github.com/openlayers/openlayers/pull/11382) - Bump mocha from 8.0.1 to 8.1.0 ([@openlayers](https://github.com/openlayers))
* [#11385](https://github.com/openlayers/openlayers/pull/11385) - Bump @babel/preset-env from 7.10.4 to 7.11.0 ([@openlayers](https://github.com/openlayers))
* [#11387](https://github.com/openlayers/openlayers/pull/11387) - Bump eslint from 7.5.0 to 7.6.0 ([@openlayers](https://github.com/openlayers))
* [#11388](https://github.com/openlayers/openlayers/pull/11388) - Bump terser-webpack-plugin from 3.0.7 to 3.0.8 ([@openlayers](https://github.com/openlayers))
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
```js
{hitTolerance:10/devicePixelRatio,}
```
you'll have to change that code to
```js
{hitTolerance:10,}
```
## New features and improvements
* New scale option in `RegularShape` and `Circle` style constructors
* WFS 2.0.0 support
* Added `preRender` and `postRender` methods to `WebGLLayerRenderer`
* Added `className` constructor option in `ol/layer/Heatmap`
* Added load events for `ol/source/Vector`
* New `iconUrlFunction` option for `ol/format/KML`
* Added `transition` option to `OSM` and `CartoDB` sources
*`DragAndDrop` interaction support for formats that read ArrayBuffer sources
* New `padding` option for `ol/View`
* New `cancel` event for the `DragBox` interaction
* When using `hitTolerance`, detect closest features first
* Ability to draw `Circle` geometries with a custom renderer
## List of all changes
* [#11859](https://github.com/openlayers/openlayers/pull/11859) - Do not fire duplicate postrender events ([@MoonE](https://github.com/MoonE))
* [#11858](https://github.com/openlayers/openlayers/pull/11858) - Correct documented event names for VectorSourceEvent ([@MoonE](https://github.com/MoonE))
* [#11838](https://github.com/openlayers/openlayers/pull/11838) - Custom circle render ([@changqingom](https://github.com/changqingom))
* [#11811](https://github.com/openlayers/openlayers/pull/11811) - Better getPointResolution default when no transform available ([@mike-000](https://github.com/mike-000))
* [#11821](https://github.com/openlayers/openlayers/pull/11821) - Call the finishCondition when drawing points / circles ([@MoonE](https://github.com/MoonE))
* [#11824](https://github.com/openlayers/openlayers/pull/11824) - Add Units back to API docs ([@ahocevar](https://github.com/ahocevar))
* [#11817](https://github.com/openlayers/openlayers/pull/11817) - stopPropagation support for PluggableMap ([@greggian](https://github.com/greggian))
* [#11815](https://github.com/openlayers/openlayers/pull/11815) - Remove unnecessary line that breaks drawing with multi-touch ([@ahocevar](https://github.com/ahocevar))
* [#11800](https://github.com/openlayers/openlayers/pull/11800) - Fix removeLastPoint when removing last point ([@ahocevar](https://github.com/ahocevar))
* [#11783](https://github.com/openlayers/openlayers/pull/11783) - Cache hit detect indexes and check closest pixels first. ([@MoonE](https://github.com/MoonE))
* [#11791](https://github.com/openlayers/openlayers/pull/11791) - Now that pepjs was updated, we can point to the official package ([@ahocevar](https://github.com/ahocevar))
* [#11790](https://github.com/openlayers/openlayers/pull/11790) - Fix attributions links for WMS layers from swisstopo ([@openlayers](https://github.com/openlayers))
* [#11781](https://github.com/openlayers/openlayers/pull/11781) - Pass geometry to forEachFeatureAtPixel callback ([@ahocevar](https://github.com/ahocevar))
* [#11778](https://github.com/openlayers/openlayers/pull/11778) - No need to adjust hitTolerance for pixel ratio twice ([@ahocevar](https://github.com/ahocevar))
* [#11780](https://github.com/openlayers/openlayers/pull/11780) - Add a cancel event to the DragBox interaction ([@M393](https://github.com/M393))
* [#11779](https://github.com/openlayers/openlayers/pull/11779) - Restore Mode.CIRCLE in Draw interaction ([@mike-000](https://github.com/mike-000))
* [#11753](https://github.com/openlayers/openlayers/pull/11753) - Use Mode.LINE_STRING in Draw interaction for Circle geometries ([@mike-000](https://github.com/mike-000))
* [#11767](https://github.com/openlayers/openlayers/pull/11767) - Improve documentation of geometry rotation ([@mike-000](https://github.com/mike-000))
* [#11755](https://github.com/openlayers/openlayers/pull/11755) - Add padding option for View ([@ahocevar](https://github.com/ahocevar))
* [#11754](https://github.com/openlayers/openlayers/pull/11754) - Fix typo that prevents Rotate icon from indicating the view rotation ([@ahocevar](https://github.com/ahocevar))
* [#11719](https://github.com/openlayers/openlayers/pull/11719) - Clamp EPSG:3857 y to lowest/highest possible value instead of validity extent ([@ahocevar](https://github.com/ahocevar))
* [#11737](https://github.com/openlayers/openlayers/pull/11737) - Write the correct SRS code in EsriJSON ([@ahocevar](https://github.com/ahocevar))
* [#11749](https://github.com/openlayers/openlayers/pull/11749) - Document that snapTolerance must be greater than 0 ([@ahocevar](https://github.com/ahocevar))
* [#11750](https://github.com/openlayers/openlayers/pull/11750) - Update TMS tileUrlFunction example in ol/source/XYZ documentation ([@mike-000](https://github.com/mike-000))
* [#11739](https://github.com/openlayers/openlayers/pull/11739) - Fix: Check for layer extent in CanvasLayerRenderer.getDataAtPixel ([@boeckMt](https://github.com/boeckMt))
* [#11748](https://github.com/openlayers/openlayers/pull/11748) - Add fetch and TextDecoder to polyfill list in README ([@mike-000](https://github.com/mike-000))
* [#11740](https://github.com/openlayers/openlayers/pull/11740) - Wfs bbox per feature type ([@ger-benjamin](https://github.com/ger-benjamin))
* [#11722](https://github.com/openlayers/openlayers/pull/11722) - Correct meaning of 'start' and 'end' text align for LTR text ([@ahocevar](https://github.com/ahocevar))
* [#11741](https://github.com/openlayers/openlayers/pull/11741) - Include LICENSE.md in built package ([@bz2](https://github.com/bz2))
* [#11718](https://github.com/openlayers/openlayers/pull/11718) - Initialize sketch point on Draw#extend() ([@ahocevar](https://github.com/ahocevar))
* [#11732](https://github.com/openlayers/openlayers/pull/11732) - Replace readURI with readStyleURL for KML StyleURLs ([@mike-000](https://github.com/mike-000))
* [#11723](https://github.com/openlayers/openlayers/pull/11723) - Drag and Drop Interaction support for formats that read ArrayBuffer sources ([@mike-000](https://github.com/mike-000))
* [#11724](https://github.com/openlayers/openlayers/pull/11724) - Add transition option to OSM and CartoDB sources, document default ([@MoonE](https://github.com/MoonE))
* [#11721](https://github.com/openlayers/openlayers/pull/11721) - Handle empty Z coordinates in KML ([@mike-000](https://github.com/mike-000))
* [#11587](https://github.com/openlayers/openlayers/pull/11587) - Determine orientation by actual text start and end x ([@MoonE](https://github.com/MoonE))
* [#11720](https://github.com/openlayers/openlayers/pull/11720) - Return to simpler and less efficient winding order algorithm ([@ahocevar](https://github.com/ahocevar))
* [#11715](https://github.com/openlayers/openlayers/pull/11715) - Add all symbols to the legacy build ([@ahocevar](https://github.com/ahocevar))
* [#11716](https://github.com/openlayers/openlayers/pull/11716) - Treat svg as binary resource ([@mike-000](https://github.com/mike-000))
* [#11691](https://github.com/openlayers/openlayers/pull/11691) - Use Parcel v2 in copy/paste example code ([@ahocevar](https://github.com/ahocevar))
* [#11673](https://github.com/openlayers/openlayers/pull/11673) - Do not emulate dblclick and slingleclick on multi-touch ([@ahocevar](https://github.com/ahocevar))
* [#11676](https://github.com/openlayers/openlayers/pull/11676) - Fix countries.geojson Antarctica polygon so it wraps correctly ([@mike-000](https://github.com/mike-000))
* [#11646](https://github.com/openlayers/openlayers/pull/11646) - Ensure a unique tile key for each tile coordinate ([@ahocevar](https://github.com/ahocevar))
* [#11655](https://github.com/openlayers/openlayers/pull/11655) - Fix documentation of image render mode for vector tile layers ([@ahocevar](https://github.com/ahocevar))
* [#11668](https://github.com/openlayers/openlayers/pull/11668) - Don't try to get image data for zero sized images ([@tapioko](https://github.com/tapioko))
* [#11658](https://github.com/openlayers/openlayers/pull/11658) - Make webpack dev server run with current version ([@MoonE](https://github.com/MoonE))
* [#11590](https://github.com/openlayers/openlayers/pull/11590) - Export all the Event sub class ([@sbrunner](https://github.com/sbrunner))
* [#11594](https://github.com/openlayers/openlayers/pull/11594) - Display current OS copyright date in the Raster Reprojection example ([@mike-000](https://github.com/mike-000))
* [#11657](https://github.com/openlayers/openlayers/pull/11657) - Use https to avoid security warnings ([@mike-000](https://github.com/mike-000))
* [#11649](https://github.com/openlayers/openlayers/pull/11649) - Deal with undefined units from proj4 longlat projections ([@ahocevar](https://github.com/ahocevar))
* [#11403](https://github.com/openlayers/openlayers/pull/11403) - #11402 add CSS class name support for control buttons ([@cazacugmihai](https://github.com/cazacugmihai))
* [#11592](https://github.com/openlayers/openlayers/pull/11592) - New decluttering implementation ([@ahocevar](https://github.com/ahocevar))
* [#11618](https://github.com/openlayers/openlayers/pull/11618) - Update the Marker Animation example ([@mike-000](https://github.com/mike-000))
* [#11620](https://github.com/openlayers/openlayers/pull/11620) - Add charset to the examples html below the map ([@MoonE](https://github.com/MoonE))
* [#11613](https://github.com/openlayers/openlayers/pull/11613) - Allow mouse input if map is rendered in an other window ([@elnabo](https://github.com/elnabo))
* [#11597](https://github.com/openlayers/openlayers/pull/11597) - Improved performance when removing feature with only one Select ([@MoonE](https://github.com/MoonE))
* [#11607](https://github.com/openlayers/openlayers/pull/11607) - Reset attributions control to collapsible when no uncollapsible sources are visible ([@mike-000](https://github.com/mike-000))
* [#11609](https://github.com/openlayers/openlayers/pull/11609) - Modify interaction insert only one vertex ([@M393](https://github.com/M393))
* [#11605](https://github.com/openlayers/openlayers/pull/11605) - Remove context references when releasing tiles ([@ahocevar](https://github.com/ahocevar))
* [#11591](https://github.com/openlayers/openlayers/pull/11591) - Make permalink example less complex ([@kannes](https://github.com/kannes))
* [#11569](https://github.com/openlayers/openlayers/pull/11569) - Fix binary data exports to codesandbox in examples ([@mike-000](https://github.com/mike-000))
* [#11579](https://github.com/openlayers/openlayers/pull/11579) - Replace Animated GIF example globe gif ([@mike-000](https://github.com/mike-000))
* [#11565](https://github.com/openlayers/openlayers/pull/11565) - Animated GIF example ([@mike-000](https://github.com/mike-000))
* [#11571](https://github.com/openlayers/openlayers/pull/11571) - Replace countryflags.io with flagcdn.com in the Style Renderer example ([@mike-000](https://github.com/mike-000))
* [#11568](https://github.com/openlayers/openlayers/pull/11568) - Fix raster source crash bug when using multiple threads ([@rgroothuijsen](https://github.com/rgroothuijsen))
* [#11563](https://github.com/openlayers/openlayers/pull/11563) - Fix end world calculation if projection is not symmetric ([@MoonE](https://github.com/MoonE))
* [#11561](https://github.com/openlayers/openlayers/pull/11561) - Constrain resolution when fit called without duration ([@M393](https://github.com/M393))
* [#11559](https://github.com/openlayers/openlayers/pull/11559) - Only draw visible worlds ([@MoonE](https://github.com/MoonE))
* [#11519](https://github.com/openlayers/openlayers/pull/11519) - Do not draw multipoints outside render extent ([@MoonE](https://github.com/MoonE))
* [#11532](https://github.com/openlayers/openlayers/pull/11532) - Make TileGrid behave as documented with extent and sizes options ([@ahocevar](https://github.com/ahocevar))
* [#11545](https://github.com/openlayers/openlayers/pull/11545) - Use the className param in ol.layer.Heatmap ([@fredj](https://github.com/fredj))
* [#11548](https://github.com/openlayers/openlayers/pull/11548) - Bind tileUrlFunction before returning it from getTileUrlFunction ([@ahocevar](https://github.com/ahocevar))
* [#11549](https://github.com/openlayers/openlayers/pull/11549) - Only use elementFromPoint with ShadowRoot ([@ahocevar](https://github.com/ahocevar))
* [#11502](https://github.com/openlayers/openlayers/pull/11502) - Fix issue with WMS Capabilities containing a single layer ([@jbelien](https://github.com/jbelien))
* [#11540](https://github.com/openlayers/openlayers/pull/11540) - Avoid unnecessary transform in the MVT format ([@gberaudo](https://github.com/gberaudo))
* [#11537](https://github.com/openlayers/openlayers/pull/11537) - Add rotation and rotateWithView to ol/style/Circle clone method and options ([@mike-000](https://github.com/mike-000))
* [#11543](https://github.com/openlayers/openlayers/pull/11543) - wmts matrixset null pointer fix and improved handling of Identifier ([@sweco-dkjesh](https://github.com/sweco-dkjesh))
* [#11509](https://github.com/openlayers/openlayers/pull/11509) - Add urn:x-ogc:def:crs:EPSG:6.6:4326 as WGS84 proj identifier ([@fgravin](https://github.com/fgravin))
* [#11521](https://github.com/openlayers/openlayers/pull/11521) - Do not use fractional pixel ratio for rendering vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#11517](https://github.com/openlayers/openlayers/pull/11517) - Make clockwise check work when coordinates are duplicated ([@ahocevar](https://github.com/ahocevar))
* [#11501](https://github.com/openlayers/openlayers/pull/11501) - Empty this.canvas_ for all pixel ratios when render() is called ([@mike-000](https://github.com/mike-000))
* [#11471](https://github.com/openlayers/openlayers/pull/11471) - Feature: added preRender and postRender methods to WebGLLayerRenderer… ([@MichaelLangbein](https://github.com/MichaelLangbein))
* [#11488](https://github.com/openlayers/openlayers/pull/11488) - "Layer Z-Index" example bugfix ([@michalzielanski](https://github.com/michalzielanski))
* [#11486](https://github.com/openlayers/openlayers/pull/11486) - guard for null ([@davidiamaf](https://github.com/davidiamaf))
* [#11481](https://github.com/openlayers/openlayers/pull/11481) - Adding original properties to cloned geometry ([@michalzielanski](https://github.com/michalzielanski))
* [#11454](https://github.com/openlayers/openlayers/pull/11454) - VectorTile source projection has to match the view projection ([@ahocevar](https://github.com/ahocevar))
* [#11438](https://github.com/openlayers/openlayers/pull/11438) - Better scroll behaviour for apidocs ([@MoonE](https://github.com/MoonE))
* [#11446](https://github.com/openlayers/openlayers/pull/11446) - Checks before calling handleEvent on interactions ([@ahocevar](https://github.com/ahocevar))
* [#11305](https://github.com/openlayers/openlayers/pull/11305) - PluggableMap: avoid crash when multiple interactions are removed ([@megawac](https://github.com/megawac))
* [#11433](https://github.com/openlayers/openlayers/pull/11433) - Fix typo in module name ([@fredj](https://github.com/fredj))
* [#11419](https://github.com/openlayers/openlayers/pull/11419) - WFS 2.0.0 support ([@bjornharrtell](https://github.com/bjornharrtell))
* [#11418](https://github.com/openlayers/openlayers/pull/11418) - Icon color default to composite operation ([@MoonE](https://github.com/MoonE))
* [#11416](https://github.com/openlayers/openlayers/pull/11416) - Examples add labels to inputs ([@MoonE](https://github.com/MoonE))
* [#11417](https://github.com/openlayers/openlayers/pull/11417) - Fix sort order of examples search results ([@ahocevar](https://github.com/ahocevar))
* [#11413](https://github.com/openlayers/openlayers/pull/11413) - Include scale option in RegularShape and Circle style constructors ([@mike-000](https://github.com/mike-000))
* [#11401](https://github.com/openlayers/openlayers/pull/11401) - Ensure image extent is valid when scale is negative ([@mike-000](https://github.com/mike-000))
* [#11395](https://github.com/openlayers/openlayers/pull/11395) - Correct inchesPerMeter and add tests for ScaleBar text ([@mike-000](https://github.com/mike-000))
* [#11407](https://github.com/openlayers/openlayers/pull/11407) - Support deprecated coordinates element for GML3+ formats ([@bjornharrtell](https://github.com/bjornharrtell))
* [#11398](https://github.com/openlayers/openlayers/pull/11398) - Fix link to workshop / download ([@MoonE](https://github.com/MoonE))
* [#11391](https://github.com/openlayers/openlayers/pull/11391) - Simplify scale calculation used for WMS getLegendUrl() ([@mike-000](https://github.com/mike-000))
<details>
<summary>Dependency Updates</summary>
* [#11851](https://github.com/openlayers/openlayers/pull/11851) - Bump @babel/preset-env from 7.12.10 to 7.12.11 ([@openlayers](https://github.com/openlayers))
* [#11850](https://github.com/openlayers/openlayers/pull/11850) - Bump marked from 1.2.6 to 1.2.7 ([@openlayers](https://github.com/openlayers))
* [#11852](https://github.com/openlayers/openlayers/pull/11852) - Bump rollup from 2.35.0 to 2.35.1 ([@openlayers](https://github.com/openlayers))
* [#11853](https://github.com/openlayers/openlayers/pull/11853) - Bump copy-webpack-plugin from 6.4.0 to 6.4.1 ([@openlayers](https://github.com/openlayers))
* [#11849](https://github.com/openlayers/openlayers/pull/11849) - Bump eslint from 7.15.0 to 7.16.0 ([@openlayers](https://github.com/openlayers))
* [#11848](https://github.com/openlayers/openlayers/pull/11848) - Bump ol-mapbox-style from 6.2.1 to 6.3.0 ([@openlayers](https://github.com/openlayers))
* [#11828](https://github.com/openlayers/openlayers/pull/11828) - Bump ol-mapbox-style from 6.1.4 to 6.2.1 ([@openlayers](https://github.com/openlayers))
* [#11830](https://github.com/openlayers/openlayers/pull/11830) - Bump jsdoc-plugin-typescript from 2.0.5 to 2.0.6 ([@openlayers](https://github.com/openlayers))
* [#11829](https://github.com/openlayers/openlayers/pull/11829) - Bump typescript from 4.1.2 to 4.1.3 ([@openlayers](https://github.com/openlayers))
* [#11833](https://github.com/openlayers/openlayers/pull/11833) - Bump rollup from 2.34.2 to 2.35.0 ([@openlayers](https://github.com/openlayers))
* [#11834](https://github.com/openlayers/openlayers/pull/11834) - Bump copy-webpack-plugin from 6.3.2 to 6.4.0 ([@openlayers](https://github.com/openlayers))
* [#11832](https://github.com/openlayers/openlayers/pull/11832) - Bump @babel/preset-env from 7.12.7 to 7.12.10 ([@openlayers](https://github.com/openlayers))
* [#11835](https://github.com/openlayers/openlayers/pull/11835) - Bump sinon from 9.2.1 to 9.2.2 ([@openlayers](https://github.com/openlayers))
* [#11831](https://github.com/openlayers/openlayers/pull/11831) - Bump marked from 1.2.5 to 1.2.6 ([@openlayers](https://github.com/openlayers))
* [#11827](https://github.com/openlayers/openlayers/pull/11827) - Bump @babel/core from 7.12.9 to 7.12.10 ([@openlayers](https://github.com/openlayers))
* [#11820](https://github.com/openlayers/openlayers/pull/11820) - [Security] Bump ini from 1.3.5 to 1.3.7 ([@openlayers](https://github.com/openlayers))
* [#11809](https://github.com/openlayers/openlayers/pull/11809) - Bump yargs from 16.1.1 to 16.2.0 ([@openlayers](https://github.com/openlayers))
* [#11808](https://github.com/openlayers/openlayers/pull/11808) - Bump worker-loader from 3.0.5 to 3.0.6 ([@openlayers](https://github.com/openlayers))
* [#11807](https://github.com/openlayers/openlayers/pull/11807) - Bump eslint from 7.14.0 to 7.15.0 ([@openlayers](https://github.com/openlayers))
* [#11806](https://github.com/openlayers/openlayers/pull/11806) - Bump rollup from 2.34.0 to 2.34.2 ([@openlayers](https://github.com/openlayers))
* [#11786](https://github.com/openlayers/openlayers/pull/11786) - Bump rollup from 2.33.3 to 2.34.0 ([@openlayers](https://github.com/openlayers))
* [#11787](https://github.com/openlayers/openlayers/pull/11787) - Bump babel-loader from 8.2.1 to 8.2.2 ([@openlayers](https://github.com/openlayers))
* [#11785](https://github.com/openlayers/openlayers/pull/11785) - Bump @babel/core from 7.12.7 to 7.12.9 ([@openlayers](https://github.com/openlayers))
* [#11762](https://github.com/openlayers/openlayers/pull/11762) - Bump typescript from 4.0.5 to 4.1.2 ([@openlayers](https://github.com/openlayers))
* [#11764](https://github.com/openlayers/openlayers/pull/11764) - Bump copy-webpack-plugin from 6.3.1 to 6.3.2 ([@openlayers](https://github.com/openlayers))
* [#11758](https://github.com/openlayers/openlayers/pull/11758) - Bump rollup from 2.33.2 to 2.33.3 ([@openlayers](https://github.com/openlayers))
* [#11761](https://github.com/openlayers/openlayers/pull/11761) - Bump @babel/core from 7.12.3 to 7.12.7 ([@openlayers](https://github.com/openlayers))
* [#11760](https://github.com/openlayers/openlayers/pull/11760) - Bump proj4 from 2.6.2 to 2.6.3 ([@openlayers](https://github.com/openlayers))
* [#11763](https://github.com/openlayers/openlayers/pull/11763) - Bump eslint from 7.13.0 to 7.14.0 ([@openlayers](https://github.com/openlayers))
* [#11759](https://github.com/openlayers/openlayers/pull/11759) - Bump @babel/preset-env from 7.12.1 to 7.12.7 ([@openlayers](https://github.com/openlayers))
* [#11757](https://github.com/openlayers/openlayers/pull/11757) - Bump marked from 1.2.4 to 1.2.5 ([@openlayers](https://github.com/openlayers))
* [#11756](https://github.com/openlayers/openlayers/pull/11756) - Bump puppeteer from 5.4.1 to 5.5.0 ([@openlayers](https://github.com/openlayers))
* [#11747](https://github.com/openlayers/openlayers/pull/11747) - Bump rollup from 2.33.1 to 2.33.2 ([@openlayers](https://github.com/openlayers))
* [#11746](https://github.com/openlayers/openlayers/pull/11746) - Bump babel-loader from 8.1.0 to 8.2.1 ([@openlayers](https://github.com/openlayers))
* [#11745](https://github.com/openlayers/openlayers/pull/11745) - Bump yargs from 16.1.0 to 16.1.1 ([@openlayers](https://github.com/openlayers))
* [#11744](https://github.com/openlayers/openlayers/pull/11744) - Bump webpack-dev-middleware from 4.0.0 to 4.0.2 ([@openlayers](https://github.com/openlayers))
* [#11743](https://github.com/openlayers/openlayers/pull/11743) - Bump copy-webpack-plugin from 6.3.0 to 6.3.1 ([@openlayers](https://github.com/openlayers))
* [#11742](https://github.com/openlayers/openlayers/pull/11742) - Bump marked from 1.2.3 to 1.2.4 ([@openlayers](https://github.com/openlayers))
* [#11731](https://github.com/openlayers/openlayers/pull/11731) - Bump mocha from 8.2.0 to 8.2.1 ([@openlayers](https://github.com/openlayers))
* [#11730](https://github.com/openlayers/openlayers/pull/11730) - Bump marked from 1.2.2 to 1.2.3 ([@openlayers](https://github.com/openlayers))
* [#11729](https://github.com/openlayers/openlayers/pull/11729) - Bump eslint from 7.12.1 to 7.13.0 ([@openlayers](https://github.com/openlayers))
* [#11728](https://github.com/openlayers/openlayers/pull/11728) - Bump webpack-cli from 4.1.0 to 4.2.0 ([@openlayers](https://github.com/openlayers))
* [#11727](https://github.com/openlayers/openlayers/pull/11727) - Bump karma-firefox-launcher from 2.0.0 to 2.1.0 ([@openlayers](https://github.com/openlayers))
* [#11726](https://github.com/openlayers/openlayers/pull/11726) - Bump copy-webpack-plugin from 6.2.1 to 6.3.0 ([@openlayers](https://github.com/openlayers))
* [#11708](https://github.com/openlayers/openlayers/pull/11708) - Bump rollup from 2.32.1 to 2.33.1 ([@openlayers](https://github.com/openlayers))
* [#11705](https://github.com/openlayers/openlayers/pull/11705) - Bump webpack-dev-middleware from 3.7.2 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#11706](https://github.com/openlayers/openlayers/pull/11706) - Bump url-polyfill from 1.1.11 to 1.1.12 ([@openlayers](https://github.com/openlayers))
* [#11707](https://github.com/openlayers/openlayers/pull/11707) - Bump typescript from 4.0.3 to 4.0.5 ([@openlayers](https://github.com/openlayers))
* [#11709](https://github.com/openlayers/openlayers/pull/11709) - Bump sinon from 9.2.0 to 9.2.1 ([@openlayers](https://github.com/openlayers))
* [#11710](https://github.com/openlayers/openlayers/pull/11710) - Bump puppeteer from 5.4.0 to 5.4.1 ([@openlayers](https://github.com/openlayers))
* [#11711](https://github.com/openlayers/openlayers/pull/11711) - Bump eslint from 7.12.0 to 7.12.1 ([@openlayers](https://github.com/openlayers))
* [#11689](https://github.com/openlayers/openlayers/pull/11689) - Bump pngjs from 5.0.0 to 6.0.0 ([@openlayers](https://github.com/openlayers))
* [#11686](https://github.com/openlayers/openlayers/pull/11686) - Bump shx from 0.3.2 to 0.3.3 ([@openlayers](https://github.com/openlayers))
* [#11683](https://github.com/openlayers/openlayers/pull/11683) - Bump puppeteer from 5.3.1 to 5.4.0 ([@openlayers](https://github.com/openlayers))
* [#11682](https://github.com/openlayers/openlayers/pull/11682) - Bump karma-firefox-launcher from 1.3.0 to 2.0.0 ([@openlayers](https://github.com/openlayers))
* [#11684](https://github.com/openlayers/openlayers/pull/11684) - Bump marked from 1.2.0 to 1.2.2 ([@openlayers](https://github.com/openlayers))
* [#11685](https://github.com/openlayers/openlayers/pull/11685) - Bump rollup from 2.32.0 to 2.32.1 ([@openlayers](https://github.com/openlayers))
* [#11688](https://github.com/openlayers/openlayers/pull/11688) - Bump webpack-cli from 4.0.0 to 4.1.0 ([@openlayers](https://github.com/openlayers))
* [#11687](https://github.com/openlayers/openlayers/pull/11687) - Bump eslint from 7.11.0 to 7.12.0 ([@openlayers](https://github.com/openlayers))
* [#11666](https://github.com/openlayers/openlayers/pull/11666) - Bump worker-loader from 3.0.4 to 3.0.5 ([@openlayers](https://github.com/openlayers))
* [#11665](https://github.com/openlayers/openlayers/pull/11665) - Bump url-polyfill from 1.1.10 to 1.1.11 ([@openlayers](https://github.com/openlayers))
* [#11664](https://github.com/openlayers/openlayers/pull/11664) - Bump @babel/core from 7.11.6 to 7.12.3 ([@openlayers](https://github.com/openlayers))
* [#11663](https://github.com/openlayers/openlayers/pull/11663) - Bump yargs from 16.0.3 to 16.1.0 ([@openlayers](https://github.com/openlayers))
* [#11662](https://github.com/openlayers/openlayers/pull/11662) - Bump mocha from 8.1.3 to 8.2.0 ([@openlayers](https://github.com/openlayers))
* [#11661](https://github.com/openlayers/openlayers/pull/11661) - Bump rollup from 2.29.0 to 2.32.0 ([@openlayers](https://github.com/openlayers))
* [#11660](https://github.com/openlayers/openlayers/pull/11660) - Bump @babel/preset-env from 7.11.5 to 7.12.1 ([@openlayers](https://github.com/openlayers))
* [#11643](https://github.com/openlayers/openlayers/pull/11643) - Bump terser-webpack-plugin from 4.2.2 to 4.2.3 ([@openlayers](https://github.com/openlayers))
* [#11645](https://github.com/openlayers/openlayers/pull/11645) - Bump webpack-cli from 3.3.12 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#11644](https://github.com/openlayers/openlayers/pull/11644) - Bump copy-webpack-plugin from 6.2.0 to 6.2.1 ([@openlayers](https://github.com/openlayers))
* [#11642](https://github.com/openlayers/openlayers/pull/11642) - Bump sinon from 9.1.0 to 9.2.0 ([@openlayers](https://github.com/openlayers))
* [#11641](https://github.com/openlayers/openlayers/pull/11641) - Bump rollup from 2.28.2 to 2.29.0 ([@openlayers](https://github.com/openlayers))
* [#11640](https://github.com/openlayers/openlayers/pull/11640) - Bump worker-loader from 3.0.3 to 3.0.4 ([@openlayers](https://github.com/openlayers))
* [#11639](https://github.com/openlayers/openlayers/pull/11639) - Bump eslint from 7.10.0 to 7.11.0 ([@openlayers](https://github.com/openlayers))
* [#11622](https://github.com/openlayers/openlayers/pull/11622) - Bump sinon from 9.0.3 to 9.1.0 ([@openlayers](https://github.com/openlayers))
* [#11623](https://github.com/openlayers/openlayers/pull/11623) - Bump copy-webpack-plugin from 6.1.1 to 6.2.0 ([@openlayers](https://github.com/openlayers))
* [#11603](https://github.com/openlayers/openlayers/pull/11603) - Bump rollup from 2.28.1 to 2.28.2 ([@openlayers](https://github.com/openlayers))
* [#11602](https://github.com/openlayers/openlayers/pull/11602) - Bump marked from 1.1.1 to 1.2.0 ([@openlayers](https://github.com/openlayers))
* [#11601](https://github.com/openlayers/openlayers/pull/11601) - Bump puppeteer from 5.3.0 to 5.3.1 ([@openlayers](https://github.com/openlayers))
* [#11600](https://github.com/openlayers/openlayers/pull/11600) - Bump eslint from 7.9.0 to 7.10.0 ([@openlayers](https://github.com/openlayers))
* [#11599](https://github.com/openlayers/openlayers/pull/11599) - Bump worker-loader from 3.0.2 to 3.0.3 ([@openlayers](https://github.com/openlayers))
* [#11598](https://github.com/openlayers/openlayers/pull/11598) - Bump karma from 5.2.2 to 5.2.3 ([@openlayers](https://github.com/openlayers))
* [#11578](https://github.com/openlayers/openlayers/pull/11578) - Bump rollup from 2.26.11 to 2.28.1 ([@openlayers](https://github.com/openlayers))
* [#11576](https://github.com/openlayers/openlayers/pull/11576) - Bump terser-webpack-plugin from 4.2.0 to 4.2.2 ([@openlayers](https://github.com/openlayers))
* [#11575](https://github.com/openlayers/openlayers/pull/11575) - Bump typescript from 4.0.2 to 4.0.3 ([@openlayers](https://github.com/openlayers))
* [#11577](https://github.com/openlayers/openlayers/pull/11577) - Bump copy-webpack-plugin from 6.1.0 to 6.1.1 ([@openlayers](https://github.com/openlayers))
* [#11574](https://github.com/openlayers/openlayers/pull/11574) - Bump jsdoc from 3.6.5 to 3.6.6 ([@openlayers](https://github.com/openlayers))
* [#11573](https://github.com/openlayers/openlayers/pull/11573) - Bump webpack from 4.44.1 to 4.44.2 ([@openlayers](https://github.com/openlayers))
* [#11558](https://github.com/openlayers/openlayers/pull/11558) - Bump yargs from 15.4.1 to 16.0.3 ([@openlayers](https://github.com/openlayers))
* [#11557](https://github.com/openlayers/openlayers/pull/11557) - Bump eslint from 7.8.1 to 7.9.0 ([@openlayers](https://github.com/openlayers))
* [#11556](https://github.com/openlayers/openlayers/pull/11556) - Bump puppeteer from 5.2.1 to 5.3.0 ([@openlayers](https://github.com/openlayers))
* [#11555](https://github.com/openlayers/openlayers/pull/11555) - Bump karma from 5.2.1 to 5.2.2 ([@openlayers](https://github.com/openlayers))
* [#11554](https://github.com/openlayers/openlayers/pull/11554) - Bump terser-webpack-plugin from 4.1.0 to 4.2.0 ([@openlayers](https://github.com/openlayers))
* [#11553](https://github.com/openlayers/openlayers/pull/11553) - Bump rollup from 2.26.10 to 2.26.11 ([@openlayers](https://github.com/openlayers))
* [#11531](https://github.com/openlayers/openlayers/pull/11531) - Bump rollup from 2.26.8 to 2.26.10 ([@openlayers](https://github.com/openlayers))
* [#11530](https://github.com/openlayers/openlayers/pull/11530) - Bump @babel/preset-env from 7.11.0 to 7.11.5 ([@openlayers](https://github.com/openlayers))
* [#11529](https://github.com/openlayers/openlayers/pull/11529) - Bump rollup-plugin-terser from 7.0.1 to 7.0.2 ([@openlayers](https://github.com/openlayers))
* [#11528](https://github.com/openlayers/openlayers/pull/11528) - Bump @babel/core from 7.11.4 to 7.11.6 ([@openlayers](https://github.com/openlayers))
* [#11526](https://github.com/openlayers/openlayers/pull/11526) - Bump eslint from 7.7.0 to 7.8.1 ([@openlayers](https://github.com/openlayers))
* [#11527](https://github.com/openlayers/openlayers/pull/11527) - Bump karma from 5.1.1 to 5.2.1 ([@openlayers](https://github.com/openlayers))
* [#11525](https://github.com/openlayers/openlayers/pull/11525) - Bump copy-webpack-plugin from 6.0.4 to 6.1.0 ([@openlayers](https://github.com/openlayers))
* [#11515](https://github.com/openlayers/openlayers/pull/11515) - [Security] Bump http-proxy from 1.17.0 to 1.18.1 ([@openlayers](https://github.com/openlayers))
* [#11504](https://github.com/openlayers/openlayers/pull/11504) - [Security] Bump bl from 4.0.2 to 4.0.3 ([@openlayers](https://github.com/openlayers))
* [#11496](https://github.com/openlayers/openlayers/pull/11496) - Bump mocha from 8.1.1 to 8.1.3 ([@openlayers](https://github.com/openlayers))
* [#11495](https://github.com/openlayers/openlayers/pull/11495) - Bump rollup-plugin-terser from 7.0.0 to 7.0.1 ([@openlayers](https://github.com/openlayers))
* [#11494](https://github.com/openlayers/openlayers/pull/11494) - Bump copy-webpack-plugin from 6.0.3 to 6.0.4 ([@openlayers](https://github.com/openlayers))
* [#11493](https://github.com/openlayers/openlayers/pull/11493) - Bump rollup from 2.26.5 to 2.26.8 ([@openlayers](https://github.com/openlayers))
* [#11462](https://github.com/openlayers/openlayers/pull/11462) - Bump rollup from 2.26.3 to 2.26.5 ([@openlayers](https://github.com/openlayers))
* [#11460](https://github.com/openlayers/openlayers/pull/11460) - Bump karma-sourcemap-loader from 0.3.7 to 0.3.8 ([@openlayers](https://github.com/openlayers))
* [#11459](https://github.com/openlayers/openlayers/pull/11459) - Bump ol-mapbox-style from 6.1.3 to 6.1.4 ([@openlayers](https://github.com/openlayers))
* [#11458](https://github.com/openlayers/openlayers/pull/11458) - Bump worker-loader from 3.0.1 to 3.0.2 ([@openlayers](https://github.com/openlayers))
* [#11457](https://github.com/openlayers/openlayers/pull/11457) - Bump @babel/core from 7.11.1 to 7.11.4 ([@openlayers](https://github.com/openlayers))
* [#11443](https://github.com/openlayers/openlayers/pull/11443) - Bump eslint from 7.6.0 to 7.7.0 ([@openlayers](https://github.com/openlayers))
* [#11441](https://github.com/openlayers/openlayers/pull/11441) - Bump terser-webpack-plugin from 4.0.0 to 4.1.0 ([@openlayers](https://github.com/openlayers))
* [#11440](https://github.com/openlayers/openlayers/pull/11440) - Bump rollup from 2.23.1 to 2.26.3 ([@openlayers](https://github.com/openlayers))
* [#11439](https://github.com/openlayers/openlayers/pull/11439) - Bump sinon from 9.0.2 to 9.0.3 ([@openlayers](https://github.com/openlayers))
* [#11442](https://github.com/openlayers/openlayers/pull/11442) - Bump ol-mapbox-style from 6.1.2 to 6.1.3 ([@openlayers](https://github.com/openlayers))
* [#11426](https://github.com/openlayers/openlayers/pull/11426) - Bump @babel/core from 7.11.0 to 7.11.1 ([@openlayers](https://github.com/openlayers))
* [#11425](https://github.com/openlayers/openlayers/pull/11425) - Bump rollup from 2.23.0 to 2.23.1 ([@openlayers](https://github.com/openlayers))
* [#11424](https://github.com/openlayers/openlayers/pull/11424) - Bump rollup-plugin-terser from 6.1.0 to 7.0.0 ([@openlayers](https://github.com/openlayers))
* [#11423](https://github.com/openlayers/openlayers/pull/11423) - Bump worker-loader from 3.0.0 to 3.0.1 ([@openlayers](https://github.com/openlayers))
* [#11422](https://github.com/openlayers/openlayers/pull/11422) - Bump terser-webpack-plugin from 3.0.8 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#11421](https://github.com/openlayers/openlayers/pull/11421) - Bump mocha from 8.1.0 to 8.1.1 ([@openlayers](https://github.com/openlayers))
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](https://npmjs.com/package/ol) 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.
```json
"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](https://www.npmjs.com/package/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 the `MousePosition` control's output.
* TypeScript generated `.d.ts` files are now included in the [ol](https://npmjs.com/package/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](https://npmjs.com/package/ol) now uses `"type": "module"` in `package.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 the `Modify` interaction to control user experience when clicking a vertex far away from its center.
## List of all changes
* [#12442](https://github.com/openlayers/openlayers/pull/12442) - Fix layer render extent when it is not at all in view ([@MoonE](https://github.com/MoonE))
* [#12492](https://github.com/openlayers/openlayers/pull/12492) - Use create-ol-app to create a new app ([@tschaub](https://github.com/tschaub))
* [#12467](https://github.com/openlayers/openlayers/pull/12467) - Fixes / improvements for RegularShape ([@MoonE](https://github.com/MoonE))
* [#12491](https://github.com/openlayers/openlayers/pull/12491) - Add a new placeholder option and deprecate undefinedHTML for the mouse position control ([@tschaub](https://github.com/tschaub))
* [#12488](https://github.com/openlayers/openlayers/pull/12488) - MousePosition: allow rendering of empty string ([@JakobMiksch](https://github.com/JakobMiksch))
* [#12464](https://github.com/openlayers/openlayers/pull/12464) - Make zDirection option available for all tile sources ([@mike-000](https://github.com/mike-000))
* [#12489](https://github.com/openlayers/openlayers/pull/12489) - Update ol-mapbox-style to v6.4.0 ([@ahocevar](https://github.com/ahocevar))
* [#12484](https://github.com/openlayers/openlayers/pull/12484) - Add GeoSolutions as a monthly sponsor ([@tschaub](https://github.com/tschaub))
* [#12480](https://github.com/openlayers/openlayers/pull/12480) - Fix gap in tiles due to floating point math ([@MoonE](https://github.com/MoonE))
* [#12453](https://github.com/openlayers/openlayers/pull/12453) - Allow multiple LinearRings per innerBoundaryIs ([@MoonE](https://github.com/MoonE))
* [#12466](https://github.com/openlayers/openlayers/pull/12466) - Fix getVectorContext on TileLayer with pixelRatio != 1 ([@MoonE](https://github.com/MoonE))
* [#12459](https://github.com/openlayers/openlayers/pull/12459) - Fix documentation for GML class. ([@simonseyock](https://github.com/simonseyock))
* [#12455](https://github.com/openlayers/openlayers/pull/12455) - Consistent use of quotes in example description ([@mike-000](https://github.com/mike-000))
* [#12373](https://github.com/openlayers/openlayers/pull/12373) - Rework TileDebug to allow TMS coordinates and to fix reprojection ([@mike-000](https://github.com/mike-000))
* [#12441](https://github.com/openlayers/openlayers/pull/12441) - Style-based measure example ([@mike-000](https://github.com/mike-000))
* [#12431](https://github.com/openlayers/openlayers/pull/12431) - Add tsc-generated type definitions for opt-in ([@ahocevar](https://github.com/ahocevar))
* [#12417](https://github.com/openlayers/openlayers/pull/12417) - Use html2canvas instead of dom-to-image ([@ahocevar](https://github.com/ahocevar))
* [#12409](https://github.com/openlayers/openlayers/pull/12409) - Fix WMTS wrapX detection if WGS84BoundingBox is not set ([@M393](https://github.com/M393))
* [#12237](https://github.com/openlayers/openlayers/pull/12237) - Fix Modify interaction with hitDetection ([@M393](https://github.com/M393))
* [#12416](https://github.com/openlayers/openlayers/pull/12416) - Use generics to limit event types in on(), once() and un() ([@ahocevar](https://github.com/ahocevar))
* [#12408](https://github.com/openlayers/openlayers/pull/12408) - Do not fire modifystart when nothing is being modified ([@ahocevar](https://github.com/ahocevar))
* [#12414](https://github.com/openlayers/openlayers/pull/12414) - Replace getChangeEventType() with add/removeChangeListener methods ([@ahocevar](https://github.com/ahocevar))
* [#12194](https://github.com/openlayers/openlayers/pull/12194) - Respect pixel ratio with immediate render ([@MoonE](https://github.com/MoonE))
* [#12231](https://github.com/openlayers/openlayers/pull/12231) - Move tolerance should not increase with higher pixel ratio ([@MoonE](https://github.com/MoonE))
* [#12282](https://github.com/openlayers/openlayers/pull/12282) - Fix DragZoom with view padding ([@M393](https://github.com/M393))
* [#12223](https://github.com/openlayers/openlayers/pull/12223) - generic source parameters for options ([@simonseyock](https://github.com/simonseyock))
* [#12219](https://github.com/openlayers/openlayers/pull/12219) - Add 'properties' to Layer constructors ([@ahocevar](https://github.com/ahocevar))
* [#12284](https://github.com/openlayers/openlayers/pull/12284) - Layers should inherit group z-index ([@MoonE](https://github.com/MoonE))
* [#12304](https://github.com/openlayers/openlayers/pull/12304) - New example: Scale and Rotate using Modify Interaction ([@mike-000](https://github.com/mike-000))
* [#12378](https://github.com/openlayers/openlayers/pull/12378) - Correct .split() calls to only split numeric srid for ArcgisRest ([@mike-000](https://github.com/mike-000))
* [#12393](https://github.com/openlayers/openlayers/pull/12393) - Scale up static Image and round to nearest pixel to avoid rounding errors ([@mike-000](https://github.com/mike-000))
* [#12394](https://github.com/openlayers/openlayers/pull/12394) - Ensure VectorSource getUrl() corresponds to last setUrl() ([@mike-000](https://github.com/mike-000))
* [#12357](https://github.com/openlayers/openlayers/pull/12357) - Use calculateElevation function in Shaded Relief example ([@mike-000](https://github.com/mike-000))
* [#12375](https://github.com/openlayers/openlayers/pull/12375) - Fix Vector Tile Selection example on old browsers ([@mike-000](https://github.com/mike-000))
* [#12364](https://github.com/openlayers/openlayers/pull/12364) - Simpler and faster VectorTile loading ([@ahocevar](https://github.com/ahocevar))
* [#12359](https://github.com/openlayers/openlayers/pull/12359) - Fix broken link in docs ([@mike-000](https://github.com/mike-000))
* [#12330](https://github.com/openlayers/openlayers/pull/12330) - Do not require PointerEvent constructor ([@ahocevar](https://github.com/ahocevar))
* [#12355](https://github.com/openlayers/openlayers/pull/12355) - document descending order of resolutions array ([@simonseyock](https://github.com/simonseyock))
* [#12349](https://github.com/openlayers/openlayers/pull/12349) - Document the input to an attribution function ([@mike-000](https://github.com/mike-000))
* [#12340](https://github.com/openlayers/openlayers/pull/12340) - Fix raster example tooltips ([@MoonE](https://github.com/MoonE))
* [#12338](https://github.com/openlayers/openlayers/pull/12338) - Do not use __proto__ to restore instances after main thread - worker transfer ([@ahocevar](https://github.com/ahocevar))
* [#12339](https://github.com/openlayers/openlayers/pull/12339) - Fix confusing import in Mapbox Style example ([@mike-000](https://github.com/mike-000))
* [#12334](https://github.com/openlayers/openlayers/pull/12334) - More consistent example for ol/layer/MapboxVector ([@MoonE](https://github.com/MoonE))
* [#12297](https://github.com/openlayers/openlayers/pull/12297) - Add condition option to Translate interaction ([@mike-000](https://github.com/mike-000))
* [#12283](https://github.com/openlayers/openlayers/pull/12283) - Add link to yey'maps as a sponsor ([@tschaub](https://github.com/tschaub))
* [#12277](https://github.com/openlayers/openlayers/pull/12277) - Lint the index file after generating the legacy build ([@tschaub](https://github.com/tschaub))
* [#12273](https://github.com/openlayers/openlayers/pull/12273) - Use lowercase module names for modules without a default export ([@tschaub](https://github.com/tschaub))
* [#12264](https://github.com/openlayers/openlayers/pull/12264) - Run selected format tests in Node ([@tschaub](https://github.com/tschaub))
* [#12263](https://github.com/openlayers/openlayers/pull/12263) - Fix the next-dev-version.js script ([@tschaub](https://github.com/tschaub))
* [#12241](https://github.com/openlayers/openlayers/pull/12241) - Use modules everywhere ([@tschaub](https://github.com/tschaub))
* [#12250](https://github.com/openlayers/openlayers/pull/12250) - Do not set projection extent in WMTS optionsFromCapabilities ([@mike-000](https://github.com/mike-000))
* [#12259](https://github.com/openlayers/openlayers/pull/12259) - Make it clearer what fails in webgl point layer test ([@tschaub](https://github.com/tschaub))
* [#12258](https://github.com/openlayers/openlayers/pull/12258) - Following the recommendation to run on a merge commit ([@tschaub](https://github.com/tschaub))
* [#12251](https://github.com/openlayers/openlayers/pull/12251) - Test reorganization ([@tschaub](https://github.com/tschaub))
* [#12249](https://github.com/openlayers/openlayers/pull/12249) - Update the name of the build job ([@tschaub](https://github.com/tschaub))
* [#12248](https://github.com/openlayers/openlayers/pull/12248) - Avoid naming required checks with a changing version ([@tschaub](https://github.com/tschaub))
* [#12238](https://github.com/openlayers/openlayers/pull/12238) - Use proxy url as interim fix for mixed content in the MapGuide example ([@mike-000](https://github.com/mike-000))
* [#12239](https://github.com/openlayers/openlayers/pull/12239) - Add example showing how to Draw and Modify geodesic circles ([@mike-000](https://github.com/mike-000))
* [#12247](https://github.com/openlayers/openlayers/pull/12247) - Build on Node 16 and update dev dependencies ([@tschaub](https://github.com/tschaub))
* [#12230](https://github.com/openlayers/openlayers/pull/12230) - Fix @types/estree version and remove skipLibCheck: false from tsconfig ([@ahocevar](https://github.com/ahocevar))
* [#11952](https://github.com/openlayers/openlayers/pull/11952) - Draw 800km circles around both poles in Tissot example ([@mike-000](https://github.com/mike-000))
* [#12229](https://github.com/openlayers/openlayers/pull/12229) - Prevent TypeScript Compiler from erroring out due to lib checks ([@ahocevar](https://github.com/ahocevar))
* [#12224](https://github.com/openlayers/openlayers/pull/12224) - Use a better maintained loader for test coverage ([@ahocevar](https://github.com/ahocevar))
* [#12227](https://github.com/openlayers/openlayers/pull/12227) - Fix event handling for map in shadow root ([@MoonE](https://github.com/MoonE))
* [#12214](https://github.com/openlayers/openlayers/pull/12214) - Do not set invalid style ([@ahocevar](https://github.com/ahocevar))
* [#12217](https://github.com/openlayers/openlayers/pull/12217) - Fix building of examples with latest copy-webpack-plugin ([@MoonE](https://github.com/MoonE))
* [#12198](https://github.com/openlayers/openlayers/pull/12198) - Add attributionsCollapsible option to source/TileWMS and source/WMTS ([@sbx320](https://github.com/sbx320))
* [#12176](https://github.com/openlayers/openlayers/pull/12176) - Allow private class members to be mangled ([@bz2](https://github.com/bz2))
* [#12178](https://github.com/openlayers/openlayers/pull/12178) - Add WKB (Well-Known Binary) format ([@kikuchan](https://github.com/kikuchan))
* [#12180](https://github.com/openlayers/openlayers/pull/12180) - Fix rendering of MultiPolygon text styles ([@MoonE](https://github.com/MoonE))
* [#12185](https://github.com/openlayers/openlayers/pull/12185) - MapBrowserEvent#preventDefault() behaves the same as with native events ([@ahocevar](https://github.com/ahocevar))
* [#12181](https://github.com/openlayers/openlayers/pull/12181) - Build for ie11 again ([@MoonE](https://github.com/MoonE))
* [#12028](https://github.com/openlayers/openlayers/pull/12028) - Overview map no initial target ([@MoonE](https://github.com/MoonE))
* [#12175](https://github.com/openlayers/openlayers/pull/12175) - Refresh available examples before each compilation ([@MoonE](https://github.com/MoonE))
* [#12170](https://github.com/openlayers/openlayers/pull/12170) - Link to GitHub sponsors page ([@tschaub](https://github.com/tschaub))
* [#12168](https://github.com/openlayers/openlayers/pull/12168) - VectorSource#getFeatures() consistently returns a new array ([@ahocevar](https://github.com/ahocevar))
* [#12164](https://github.com/openlayers/openlayers/pull/12164) - Fix offscreen-canvas example ([@ahocevar](https://github.com/ahocevar))
* [#12163](https://github.com/openlayers/openlayers/pull/12163) - Fix how renderMode is derived from options ([@ahocevar](https://github.com/ahocevar))
* [#12137](https://github.com/openlayers/openlayers/pull/12137) - Load less tiles when low on frame budget ([@ahocevar](https://github.com/ahocevar))
* [#12143](https://github.com/openlayers/openlayers/pull/12143) - Fix singleclick and doubleclick events ([@ahocevar](https://github.com/ahocevar))
* [#12141](https://github.com/openlayers/openlayers/pull/12141) - call the success callback after the features are added ([@kikitte](https://github.com/kikitte))
* [#12089](https://github.com/openlayers/openlayers/pull/12089) - Fix common misspellings ([@marcjansen](https://github.com/marcjansen))
* [#12062](https://github.com/openlayers/openlayers/pull/12062) - Fix kml-timezone example tooltip ([@M393](https://github.com/M393))
* [#12088](https://github.com/openlayers/openlayers/pull/12088) - Fix broken url/description of ImageArcGISRest documentation ([@dbretschneider](https://github.com/dbretschneider))
* [#12083](https://github.com/openlayers/openlayers/pull/12083) - Simplify event handling for custom elements ([@ahocevar](https://github.com/ahocevar))
* [#12080](https://github.com/openlayers/openlayers/pull/12080) - Add a minimum distance config to the cluster source ([@MoonE](https://github.com/MoonE))
* [#12084](https://github.com/openlayers/openlayers/pull/12084) - Only preventDefault when event is cancelable ([@ahocevar](https://github.com/ahocevar))
* [#12079](https://github.com/openlayers/openlayers/pull/12079) - Change IGN WMTS example to use PLANIGNV2 layer ([@mike-000](https://github.com/mike-000))
* [#11845](https://github.com/openlayers/openlayers/pull/11845) - Call finishCondition for all types for Draw interaction ([@MoonE](https://github.com/MoonE))
* [#12066](https://github.com/openlayers/openlayers/pull/12066) - Always return Promise from getFeatures ([@M393](https://github.com/M393))
* [#12057](https://github.com/openlayers/openlayers/pull/12057) - TileQueue tests with events instead of setTimeout ([@ahocevar](https://github.com/ahocevar))
* [#12058](https://github.com/openlayers/openlayers/pull/12058) - Fix map loading for basemap.at and add attributions ([@M393](https://github.com/M393))
* [#12024](https://github.com/openlayers/openlayers/pull/12024) - Add a tile grid method for getting a tile range given a tile coord and zoom level ([@tschaub](https://github.com/tschaub))
* [#12023](https://github.com/openlayers/openlayers/pull/12023) - Avoid collisions between user variables and internal names in WebGL shaders ([@tschaub](https://github.com/tschaub))
* [#12021](https://github.com/openlayers/openlayers/pull/12021) - Allow source projection to be set after construction ([@tschaub](https://github.com/tschaub))
* [#12022](https://github.com/openlayers/openlayers/pull/12022) - Throw when WebGL style parsing encounters an unexpected type ([@tschaub](https://github.com/tschaub))
* [#12007](https://github.com/openlayers/openlayers/pull/12007) - Report all features being modified ([@ahocevar](https://github.com/ahocevar))
* [#11991](https://github.com/openlayers/openlayers/pull/11991) - Fix some typings in format and format/WKT ([@simonseyock](https://github.com/simonseyock))
* [#11992](https://github.com/openlayers/openlayers/pull/11992) - Improve measure example ux ([@MoonE](https://github.com/MoonE))
* [#11987](https://github.com/openlayers/openlayers/pull/11987) - Respect opacity for vector instructions ([@ahocevar](https://github.com/ahocevar))
* [#11989](https://github.com/openlayers/openlayers/pull/11989) - Correct pixel ratio descriptions ([@mike-000](https://github.com/mike-000))
* [#11988](https://github.com/openlayers/openlayers/pull/11988) - Warn when map container's width or height are zero ([@ahocevar](https://github.com/ahocevar))
* [#11967](https://github.com/openlayers/openlayers/pull/11967) - Simplify popup positioning in Icon Scale example ([@mike-000](https://github.com/mike-000))
* [#11954](https://github.com/openlayers/openlayers/pull/11954) - Simplify icon example ([@ahocevar](https://github.com/ahocevar))
* [#11965](https://github.com/openlayers/openlayers/pull/11965) - Handle view rotation in d3 Integration example ([@mike-000](https://github.com/mike-000))
* [#11950](https://github.com/openlayers/openlayers/pull/11950) - Make polygons in the GeoJSON example comply to GeoJSON specification ([@mike-000](https://github.com/mike-000))
* [#11955](https://github.com/openlayers/openlayers/pull/11955) - Fix URLs in ol/source/CartoDB pointing to CartoDB API docs ([@geraldo](https://github.com/geraldo))
* [#11947](https://github.com/openlayers/openlayers/pull/11947) - Demonstrates how to get the coordinates been clustered. ([@yukihiratype2](https://github.com/yukihiratype2))
* [#11938](https://github.com/openlayers/openlayers/pull/11938) - Take view padding into account for calculateExtent() ([@ahocevar](https://github.com/ahocevar))
* [#11941](https://github.com/openlayers/openlayers/pull/11941) - Fix loading flag for vector loading strategies ([@ahocevar](https://github.com/ahocevar))
* [#11925](https://github.com/openlayers/openlayers/pull/11925) - Mention unit of radius for Polygon.circular() ([@kannes](https://github.com/kannes))
* [#11914](https://github.com/openlayers/openlayers/pull/11914) - Fix image with text decluttering ([@ahocevar](https://github.com/ahocevar))
* [#11911](https://github.com/openlayers/openlayers/pull/11911) - Do not clip declutter executor groups ([@ahocevar](https://github.com/ahocevar))
* [#11856](https://github.com/openlayers/openlayers/pull/11856) - Use tilegrid extent as default attributionExtent for TileJSON ([@mike-000](https://github.com/mike-000))
* [#11900](https://github.com/openlayers/openlayers/pull/11900) - Update pratique key to choisirgeoportail in the IGN WMTS example ([@mike-000](https://github.com/mike-000))
* [#11913](https://github.com/openlayers/openlayers/pull/11913) - Handle null geometry in TopoJSON ([@mike-000](https://github.com/mike-000))
* [#11893](https://github.com/openlayers/openlayers/pull/11893) - Pass the renderer function to the cloned style ([@mjjurkoic](https://github.com/mjjurkoic))
* [#11901](https://github.com/openlayers/openlayers/pull/11901) - Fix handling of VectorTile renderBuffer ([@ahocevar](https://github.com/ahocevar))
* [#11899](https://github.com/openlayers/openlayers/pull/11899) - Update HERE Map Tile API example to use API key ([@mike-000](https://github.com/mike-000))
* [#11882](https://github.com/openlayers/openlayers/pull/11882) - Improved documentation for feature load events. ([@simonseyock](https://github.com/simonseyock))
* [#11886](https://github.com/openlayers/openlayers/pull/11886) - Throw an error if shaders fail to compile or program fails to link ([@tschaub](https://github.com/tschaub))
* [#11874](https://github.com/openlayers/openlayers/pull/11874) - Hit lines even if they are dashed ([@tschaub](https://github.com/tschaub))
* [#11873](https://github.com/openlayers/openlayers/pull/11873) - Update Mapbox-gl Layer example to mapbox-gl-js version 1.13.0 and add note about why an old version is used ([@mike-000](https://github.com/mike-000))
* [#11865](https://github.com/openlayers/openlayers/pull/11865) - Use ol/array#includes instead of Array.prototype.includes() ([@mike-000](https://github.com/mike-000))
* [#11872](https://github.com/openlayers/openlayers/pull/11872) - Legacy build for legacy browsers ([@ahocevar](https://github.com/ahocevar))
* [#11871](https://github.com/openlayers/openlayers/pull/11871) - Fix examples and build for ie11 ([@MoonE](https://github.com/MoonE))
<details>
<summary>Dependency Updates</summary>
* [#12470](https://github.com/openlayers/openlayers/pull/12470) - Bump loglevelnext from 4.0.1 to 5.0.5 ([@openlayers](https://github.com/openlayers))
* [#12472](https://github.com/openlayers/openlayers/pull/12472) - Bump eslint from 7.29.0 to 7.30.0 ([@openlayers](https://github.com/openlayers))
* [#12471](https://github.com/openlayers/openlayers/pull/12471) - Bump coveralls from 3.1.0 to 3.1.1 ([@openlayers](https://github.com/openlayers))
* [#12473](https://github.com/openlayers/openlayers/pull/12473) - Bump mocha from 9.0.1 to 9.0.2 ([@openlayers](https://github.com/openlayers))
* [#12476](https://github.com/openlayers/openlayers/pull/12476) - Bump @types/topojson-specification from 1.0.1 to 1.0.2 ([@openlayers](https://github.com/openlayers))
* [#12469](https://github.com/openlayers/openlayers/pull/12469) - Bump puppeteer from 10.0.0 to 10.1.0 ([@openlayers](https://github.com/openlayers))
* [#12474](https://github.com/openlayers/openlayers/pull/12474) - Bump typescript from 4.3.4 to 4.3.5 ([@openlayers](https://github.com/openlayers))
* [#12475](https://github.com/openlayers/openlayers/pull/12475) - Bump rollup from 2.52.3 to 2.52.7 ([@openlayers](https://github.com/openlayers))
* [#12468](https://github.com/openlayers/openlayers/pull/12468) - Bump webpack from 5.40.0 to 5.42.0 ([@openlayers](https://github.com/openlayers))
* [#12443](https://github.com/openlayers/openlayers/pull/12443) - Bump marked from 2.1.2 to 2.1.3 ([@openlayers](https://github.com/openlayers))
* [#12444](https://github.com/openlayers/openlayers/pull/12444) - Bump terser-webpack-plugin from 5.1.3 to 5.1.4 ([@openlayers](https://github.com/openlayers))
* [#12445](https://github.com/openlayers/openlayers/pull/12445) - Bump @babel/preset-env from 7.14.5 to 7.14.7 ([@openlayers](https://github.com/openlayers))
* [#12446](https://github.com/openlayers/openlayers/pull/12446) - Bump rollup from 2.52.2 to 2.52.3 ([@openlayers](https://github.com/openlayers))
* [#12447](https://github.com/openlayers/openlayers/pull/12447) - Bump eslint-config-openlayers from 15.0.0 to 15.1.0 ([@openlayers](https://github.com/openlayers))
* [#12448](https://github.com/openlayers/openlayers/pull/12448) - Bump copy-webpack-plugin from 9.0.0 to 9.0.1 ([@openlayers](https://github.com/openlayers))
* [#12449](https://github.com/openlayers/openlayers/pull/12449) - Bump @babel/eslint-parser from 7.14.5 to 7.14.7 ([@openlayers](https://github.com/openlayers))
* [#12423](https://github.com/openlayers/openlayers/pull/12423) - Bump globby from 11.0.3 to 11.0.4 ([@openlayers](https://github.com/openlayers))
* [#12435](https://github.com/openlayers/openlayers/pull/12435) - Bump marked from 2.0.7 to 2.1.2 ([@openlayers](https://github.com/openlayers))
* [#12426](https://github.com/openlayers/openlayers/pull/12426) - Bump @babel/core from 7.14.5 to 7.14.6 ([@openlayers](https://github.com/openlayers))
* [#12427](https://github.com/openlayers/openlayers/pull/12427) - Bump typescript from 4.3.2 to 4.3.4 ([@openlayers](https://github.com/openlayers))
* [#12421](https://github.com/openlayers/openlayers/pull/12421) - Bump eslint from 7.28.0 to 7.29.0 ([@openlayers](https://github.com/openlayers))
* [#12420](https://github.com/openlayers/openlayers/pull/12420) - Bump mocha from 9.0.0 to 9.0.1 ([@openlayers](https://github.com/openlayers))
* [#12425](https://github.com/openlayers/openlayers/pull/12425) - Bump rollup from 2.51.2 to 2.52.2 ([@openlayers](https://github.com/openlayers))
* [#12428](https://github.com/openlayers/openlayers/pull/12428) - Bump proj4 from 2.7.2 to 2.7.4 ([@openlayers](https://github.com/openlayers))
* [#12433](https://github.com/openlayers/openlayers/pull/12433) - Bump webpack from 5.38.1 to 5.40.0 ([@openlayers](https://github.com/openlayers))
* [#12397](https://github.com/openlayers/openlayers/pull/12397) - Bump @babel/eslint-parser from 7.14.4 to 7.14.5 ([@openlayers](https://github.com/openlayers))
* [#12398](https://github.com/openlayers/openlayers/pull/12398) - Bump karma from 6.3.3 to 6.3.4 ([@openlayers](https://github.com/openlayers))
* [#12400](https://github.com/openlayers/openlayers/pull/12400) - Bump webpack-cli from 4.7.0 to 4.7.2 ([@openlayers](https://github.com/openlayers))
* [#12401](https://github.com/openlayers/openlayers/pull/12401) - Bump @babel/preset-env from 7.14.4 to 7.14.5 ([@openlayers](https://github.com/openlayers))
* [#12402](https://github.com/openlayers/openlayers/pull/12402) - Bump rollup from 2.51.0 to 2.51.2 ([@openlayers](https://github.com/openlayers))
* [#12403](https://github.com/openlayers/openlayers/pull/12403) - Bump @babel/core from 7.14.3 to 7.14.5 ([@openlayers](https://github.com/openlayers))
* [#12399](https://github.com/openlayers/openlayers/pull/12399) - Bump mocha from 8.4.0 to 9.0.0 ([@openlayers](https://github.com/openlayers))
* [#12386](https://github.com/openlayers/openlayers/pull/12386) - Bump rollup from 2.50.5 to 2.51.0 ([@openlayers](https://github.com/openlayers))
* [#12384](https://github.com/openlayers/openlayers/pull/12384) - Bump karma-firefox-launcher from 2.1.0 to 2.1.1 ([@openlayers](https://github.com/openlayers))
* [#12385](https://github.com/openlayers/openlayers/pull/12385) - Bump marked from 2.0.6 to 2.0.7 ([@openlayers](https://github.com/openlayers))
* [#12383](https://github.com/openlayers/openlayers/pull/12383) - Bump webpack-dev-middleware from 4.3.0 to 5.0.0 ([@openlayers](https://github.com/openlayers))
* [#12379](https://github.com/openlayers/openlayers/pull/12379) - Bump karma from 6.3.2 to 6.3.3 ([@openlayers](https://github.com/openlayers))
* [#12381](https://github.com/openlayers/openlayers/pull/12381) - Bump terser-webpack-plugin from 5.1.2 to 5.1.3 ([@openlayers](https://github.com/openlayers))
* [#12382](https://github.com/openlayers/openlayers/pull/12382) - Bump eslint from 7.27.0 to 7.28.0 ([@openlayers](https://github.com/openlayers))
* [#12380](https://github.com/openlayers/openlayers/pull/12380) - Bump puppeteer from 9.1.1 to 10.0.0 ([@openlayers](https://github.com/openlayers))
* [#12368](https://github.com/openlayers/openlayers/pull/12368) - Bump typescript from 4.2.4 to 4.3.2 ([@openlayers](https://github.com/openlayers))
* [#12365](https://github.com/openlayers/openlayers/pull/12365) - Bump rollup from 2.49.0 to 2.50.5 ([@openlayers](https://github.com/openlayers))
* [#12371](https://github.com/openlayers/openlayers/pull/12371) - Bump marked from 2.0.5 to 2.0.6 ([@openlayers](https://github.com/openlayers))
* [#12366](https://github.com/openlayers/openlayers/pull/12366) - Bump @babel/eslint-parser from 7.14.3 to 7.14.4 ([@openlayers](https://github.com/openlayers))
* [#12367](https://github.com/openlayers/openlayers/pull/12367) - Bump @babel/preset-env from 7.14.2 to 7.14.4 ([@openlayers](https://github.com/openlayers))
* [#12369](https://github.com/openlayers/openlayers/pull/12369) - Bump webpack from 5.37.1 to 5.38.1 ([@openlayers](https://github.com/openlayers))
* [#12370](https://github.com/openlayers/openlayers/pull/12370) - Bump webpack-sources from 2.2.0 to 2.3.0 ([@openlayers](https://github.com/openlayers))
* [#12372](https://github.com/openlayers/openlayers/pull/12372) - Bump sinon from 10.0.0 to 11.1.1 ([@openlayers](https://github.com/openlayers))
* [#12341](https://github.com/openlayers/openlayers/pull/12341) - Bump webpack-dev-middleware from 4.2.0 to 4.3.0 ([@openlayers](https://github.com/openlayers))
* [#12321](https://github.com/openlayers/openlayers/pull/12321) - Bump webpack-dev-server from 4.0.0-beta.2 to 4.0.0-beta.3 ([@openlayers](https://github.com/openlayers))
* [#12345](https://github.com/openlayers/openlayers/pull/12345) - Bump eslint from 7.26.0 to 7.27.0 ([@openlayers](https://github.com/openlayers))
* [#12342](https://github.com/openlayers/openlayers/pull/12342) - Bump copy-webpack-plugin from 8.1.1 to 9.0.0 ([@openlayers](https://github.com/openlayers))
* [#12343](https://github.com/openlayers/openlayers/pull/12343) - Bump rollup from 2.48.0 to 2.49.0 ([@openlayers](https://github.com/openlayers))
* [#12344](https://github.com/openlayers/openlayers/pull/12344) - Bump marked from 2.0.3 to 2.0.5 ([@openlayers](https://github.com/openlayers))
* [#12346](https://github.com/openlayers/openlayers/pull/12346) - Bump @babel/core from 7.14.2 to 7.14.3 ([@openlayers](https://github.com/openlayers))
* [#12347](https://github.com/openlayers/openlayers/pull/12347) - Bump @babel/eslint-parser from 7.14.2 to 7.14.3 ([@openlayers](https://github.com/openlayers))
* [#12348](https://github.com/openlayers/openlayers/pull/12348) - Bump webpack from 5.37.0 to 5.37.1 ([@openlayers](https://github.com/openlayers))
* [#12326](https://github.com/openlayers/openlayers/pull/12326) - Bump webpack from 5.36.2 to 5.37.0 ([@openlayers](https://github.com/openlayers))
* [#12323](https://github.com/openlayers/openlayers/pull/12323) - Bump @babel/core from 7.14.0 to 7.14.2 ([@openlayers](https://github.com/openlayers))
* [#12322](https://github.com/openlayers/openlayers/pull/12322) - Bump jsdoc from 3.6.6 to 3.6.7 ([@openlayers](https://github.com/openlayers))
* [#12324](https://github.com/openlayers/openlayers/pull/12324) - Bump rollup from 2.47.0 to 2.48.0 ([@openlayers](https://github.com/openlayers))
* [#12325](https://github.com/openlayers/openlayers/pull/12325) - Bump terser-webpack-plugin from 5.1.1 to 5.1.2 ([@openlayers](https://github.com/openlayers))
* [#12327](https://github.com/openlayers/openlayers/pull/12327) - Bump @babel/eslint-parser from 7.13.14 to 7.14.2 ([@openlayers](https://github.com/openlayers))
* [#12328](https://github.com/openlayers/openlayers/pull/12328) - Bump @babel/preset-env from 7.14.0 to 7.14.2 ([@openlayers](https://github.com/openlayers))
* [#12320](https://github.com/openlayers/openlayers/pull/12320) - Bump webpack-dev-middleware from 4.1.0 to 4.2.0 ([@openlayers](https://github.com/openlayers))
* [#12288](https://github.com/openlayers/openlayers/pull/12288) - Bump @rollup/plugin-node-resolve from 11.2.1 to 13.0.0 ([@openlayers](https://github.com/openlayers))
* [#12286](https://github.com/openlayers/openlayers/pull/12286) - Bump fs-extra from 9.1.0 to 10.0.0 ([@openlayers](https://github.com/openlayers))
* [#12287](https://github.com/openlayers/openlayers/pull/12287) - Bump webpack-cli from 4.6.0 to 4.7.0 ([@openlayers](https://github.com/openlayers))
* [#12293](https://github.com/openlayers/openlayers/pull/12293) - Bump yargs from 17.0.0 to 17.0.1 ([@openlayers](https://github.com/openlayers))
* [#12289](https://github.com/openlayers/openlayers/pull/12289) - Bump @rollup/plugin-commonjs from 18.0.0 to 19.0.0 ([@openlayers](https://github.com/openlayers))
* [#12290](https://github.com/openlayers/openlayers/pull/12290) - Bump rollup from 2.46.0 to 2.47.0 ([@openlayers](https://github.com/openlayers))
* [#12291](https://github.com/openlayers/openlayers/pull/12291) - Bump puppeteer from 9.0.0 to 9.1.1 ([@openlayers](https://github.com/openlayers))
* [#12292](https://github.com/openlayers/openlayers/pull/12292) - Bump eslint from 7.25.0 to 7.26.0 ([@openlayers](https://github.com/openlayers))
* [#12294](https://github.com/openlayers/openlayers/pull/12294) - Bump mocha from 8.3.2 to 8.4.0 ([@openlayers](https://github.com/openlayers))
* [#12295](https://github.com/openlayers/openlayers/pull/12295) - Bump glob from 7.1.6 to 7.1.7 ([@openlayers](https://github.com/openlayers))
* [#12269](https://github.com/openlayers/openlayers/pull/12269) - Bump webpack from 5.36.1 to 5.36.2 ([@openlayers](https://github.com/openlayers))
* [#12268](https://github.com/openlayers/openlayers/pull/12268) - Bump rollup from 2.45.2 to 2.46.0 ([@openlayers](https://github.com/openlayers))
* [#12270](https://github.com/openlayers/openlayers/pull/12270) - Bump @babel/preset-env from 7.13.15 to 7.14.0 ([@openlayers](https://github.com/openlayers))
* [#12271](https://github.com/openlayers/openlayers/pull/12271) - Bump yargs from 16.2.0 to 17.0.0 ([@openlayers](https://github.com/openlayers))
* [#12272](https://github.com/openlayers/openlayers/pull/12272) - Bump @babel/core from 7.13.16 to 7.14.0 ([@openlayers](https://github.com/openlayers))
* [#12256](https://github.com/openlayers/openlayers/pull/12256) - Bump clean-css-cli from 5.2.2 to 5.3.0 ([@openlayers](https://github.com/openlayers))
* [#12255](https://github.com/openlayers/openlayers/pull/12255) - Bump webpack from 5.35.1 to 5.36.1 ([@openlayers](https://github.com/openlayers))
* [#12254](https://github.com/openlayers/openlayers/pull/12254) - Upgrade to GitHub-native Dependabot ([@openlayers](https://github.com/openlayers))
* [#12245](https://github.com/openlayers/openlayers/pull/12245) - Bump webpack from 5.33.2 to 5.35.1 ([@openlayers](https://github.com/openlayers))
* [#12244](https://github.com/openlayers/openlayers/pull/12244) - Bump @babel/core from 7.13.15 to 7.13.16 ([@openlayers](https://github.com/openlayers))
* [#12243](https://github.com/openlayers/openlayers/pull/12243) - Bump puppeteer from 8.0.0 to 9.0.0 ([@openlayers](https://github.com/openlayers))
* [#12242](https://github.com/openlayers/openlayers/pull/12242) - Bump eslint from 7.24.0 to 7.25.0 ([@openlayers](https://github.com/openlayers))
* [#12206](https://github.com/openlayers/openlayers/pull/12206) - Bump rollup from 2.44.0 to 2.45.1 ([@openlayers](https://github.com/openlayers))
* [#12205](https://github.com/openlayers/openlayers/pull/12205) - Bump typescript from 4.2.3 to 4.2.4 ([@openlayers](https://github.com/openlayers))
* [#12204](https://github.com/openlayers/openlayers/pull/12204) - Bump @babel/preset-env from 7.13.12 to 7.13.15 ([@openlayers](https://github.com/openlayers))
* [#12203](https://github.com/openlayers/openlayers/pull/12203) - Bump marked from 2.0.1 to 2.0.3 ([@openlayers](https://github.com/openlayers))
* [#12202](https://github.com/openlayers/openlayers/pull/12202) - Bump copy-webpack-plugin from 8.1.0 to 8.1.1 ([@openlayers](https://github.com/openlayers))
* [#12201](https://github.com/openlayers/openlayers/pull/12201) - Bump @babel/core from 7.13.14 to 7.13.15 ([@openlayers](https://github.com/openlayers))
* [#12200](https://github.com/openlayers/openlayers/pull/12200) - Bump webpack from 5.30.0 to 5.31.2 ([@openlayers](https://github.com/openlayers))
* [#12199](https://github.com/openlayers/openlayers/pull/12199) - Bump eslint from 7.23.0 to 7.24.0 ([@openlayers](https://github.com/openlayers))
* [#12184](https://github.com/openlayers/openlayers/pull/12184) - Bump karma from 6.3.1 to 6.3.2 ([@openlayers](https://github.com/openlayers))
* [#12183](https://github.com/openlayers/openlayers/pull/12183) - Bump @babel/core from 7.13.13 to 7.13.14 ([@openlayers](https://github.com/openlayers))
* [#12182](https://github.com/openlayers/openlayers/pull/12182) - Bump copy-webpack-plugin from 8.0.0 to 8.1.0 ([@openlayers](https://github.com/openlayers))
* [#12155](https://github.com/openlayers/openlayers/pull/12155) - Bump eslint from 7.22.0 to 7.23.0 ([@openlayers](https://github.com/openlayers))
* [#12158](https://github.com/openlayers/openlayers/pull/12158) - Bump @babel/preset-env from 7.13.10 to 7.13.12 ([@openlayers](https://github.com/openlayers))
* [#12156](https://github.com/openlayers/openlayers/pull/12156) - Bump @rollup/plugin-node-resolve from 11.2.0 to 11.2.1 ([@openlayers](https://github.com/openlayers))
* [#12159](https://github.com/openlayers/openlayers/pull/12159) - Bump @babel/core from 7.13.10 to 7.13.13 ([@openlayers](https://github.com/openlayers))
* [#12174](https://github.com/openlayers/openlayers/pull/12174) - Bump rollup from 2.42.3 to 2.44.0 ([@openlayers](https://github.com/openlayers))
* [#12157](https://github.com/openlayers/openlayers/pull/12157) - Bump karma from 6.2.0 to 6.3.1 ([@openlayers](https://github.com/openlayers))
* [#12173](https://github.com/openlayers/openlayers/pull/12173) - Bump webpack from 5.27.2 to 5.30.0 ([@openlayers](https://github.com/openlayers))
* [#12153](https://github.com/openlayers/openlayers/pull/12153) - Bump webpack-cli from 4.5.0 to 4.6.0 ([@openlayers](https://github.com/openlayers))
* [#12151](https://github.com/openlayers/openlayers/pull/12151) - Bump @rollup/plugin-commonjs from 17.1.0 to 18.0.0 ([@openlayers](https://github.com/openlayers))
* [#12150](https://github.com/openlayers/openlayers/pull/12150) - Bump sinon from 9.2.4 to 10.0.0 ([@openlayers](https://github.com/openlayers))
* [#12130](https://github.com/openlayers/openlayers/pull/12130) - Bump clean-css-cli from 5.2.1 to 5.2.2 ([@openlayers](https://github.com/openlayers))
* [#12131](https://github.com/openlayers/openlayers/pull/12131) - Bump rollup from 2.41.2 to 2.42.2 ([@openlayers](https://github.com/openlayers))
* [#12108](https://github.com/openlayers/openlayers/pull/12108) - Bump @babel/preset-env from 7.13.9 to 7.13.10 ([@openlayers](https://github.com/openlayers))
* [#12109](https://github.com/openlayers/openlayers/pull/12109) - Bump mocha from 8.3.1 to 8.3.2 ([@openlayers](https://github.com/openlayers))
* [#12110](https://github.com/openlayers/openlayers/pull/12110) - Bump rollup from 2.40.0 to 2.41.2 ([@openlayers](https://github.com/openlayers))
* [#12111](https://github.com/openlayers/openlayers/pull/12111) - Bump @babel/core from 7.13.8 to 7.13.10 ([@openlayers](https://github.com/openlayers))
* [#12107](https://github.com/openlayers/openlayers/pull/12107) - Bump eslint from 7.21.0 to 7.22.0 ([@openlayers](https://github.com/openlayers))
* [#12112](https://github.com/openlayers/openlayers/pull/12112) - Bump karma from 6.1.1 to 6.2.0 ([@openlayers](https://github.com/openlayers))
* [#12099](https://github.com/openlayers/openlayers/pull/12099) - [Security] Bump elliptic from 6.5.3 to 6.5.4 ([@openlayers](https://github.com/openlayers))
* [#12097](https://github.com/openlayers/openlayers/pull/12097) - Bump ol-mapbox-style from 6.3.1 to 6.3.2 ([@openlayers](https://github.com/openlayers))
* [#12096](https://github.com/openlayers/openlayers/pull/12096) - Bump @babel/preset-env from 7.13.8 to 7.13.9 ([@openlayers](https://github.com/openlayers))
* [#12095](https://github.com/openlayers/openlayers/pull/12095) - Bump clean-css-cli from 5.2.0 to 5.2.1 ([@openlayers](https://github.com/openlayers))
* [#12094](https://github.com/openlayers/openlayers/pull/12094) - Bump jquery from 3.5.1 to 3.6.0 ([@openlayers](https://github.com/openlayers))
* [#12093](https://github.com/openlayers/openlayers/pull/12093) - Bump typescript from 4.2.2 to 4.2.3 ([@openlayers](https://github.com/openlayers))
* [#12092](https://github.com/openlayers/openlayers/pull/12092) - Bump proj4 from 2.7.0 to 2.7.2 ([@openlayers](https://github.com/openlayers))
* [#12091](https://github.com/openlayers/openlayers/pull/12091) - Bump mocha from 8.3.0 to 8.3.1 ([@openlayers](https://github.com/openlayers))
* [#12077](https://github.com/openlayers/openlayers/pull/12077) - Bump rollup from 2.39.0 to 2.40.0 ([@openlayers](https://github.com/openlayers))
* [#12076](https://github.com/openlayers/openlayers/pull/12076) - Bump typescript from 4.1.5 to 4.2.2 ([@openlayers](https://github.com/openlayers))
* [#12075](https://github.com/openlayers/openlayers/pull/12075) - Bump eslint from 7.20.0 to 7.21.0 ([@openlayers](https://github.com/openlayers))
* [#12074](https://github.com/openlayers/openlayers/pull/12074) - Bump marked from 2.0.0 to 2.0.1 ([@openlayers](https://github.com/openlayers))
* [#12073](https://github.com/openlayers/openlayers/pull/12073) - Bump @babel/preset-env from 7.12.17 to 7.13.8 ([@openlayers](https://github.com/openlayers))
* [#12072](https://github.com/openlayers/openlayers/pull/12072) - Bump puppeteer from 7.1.0 to 8.0.0 ([@openlayers](https://github.com/openlayers))
* [#12071](https://github.com/openlayers/openlayers/pull/12071) - Bump @babel/core from 7.12.17 to 7.13.8 ([@openlayers](https://github.com/openlayers))
* [#12056](https://github.com/openlayers/openlayers/pull/12056) - Bump @babel/preset-env from 7.12.16 to 7.12.17 ([@openlayers](https://github.com/openlayers))
* [#12055](https://github.com/openlayers/openlayers/pull/12055) - Bump handlebars from 4.7.6 to 4.7.7 ([@openlayers](https://github.com/openlayers))
* [#12054](https://github.com/openlayers/openlayers/pull/12054) - Bump @babel/core from 7.12.16 to 7.12.17 ([@openlayers](https://github.com/openlayers))
* [#12053](https://github.com/openlayers/openlayers/pull/12053) - Bump clean-css-cli from 5.1.0 to 5.2.0 ([@openlayers](https://github.com/openlayers))
* [#12036](https://github.com/openlayers/openlayers/pull/12036) - Bump clean-css-cli from 4.3.0 to 5.1.0 ([@openlayers](https://github.com/openlayers))
* [#12035](https://github.com/openlayers/openlayers/pull/12035) - Bump karma from 6.1.0 to 6.1.1 ([@openlayers](https://github.com/openlayers))
* [#12031](https://github.com/openlayers/openlayers/pull/12031) - Bump puppeteer from 7.0.1 to 7.1.0 ([@openlayers](https://github.com/openlayers))
* [#12033](https://github.com/openlayers/openlayers/pull/12033) - Bump typescript from 4.1.3 to 4.1.5 ([@openlayers](https://github.com/openlayers))
* [#12030](https://github.com/openlayers/openlayers/pull/12030) - Bump worker-loader from 3.0.7 to 3.0.8 ([@openlayers](https://github.com/openlayers))
* [#12032](https://github.com/openlayers/openlayers/pull/12032) - Bump rollup from 2.38.5 to 2.39.0 ([@openlayers](https://github.com/openlayers))
* [#12034](https://github.com/openlayers/openlayers/pull/12034) - Bump eslint from 7.19.0 to 7.20.0 ([@openlayers](https://github.com/openlayers))
* [#12037](https://github.com/openlayers/openlayers/pull/12037) - Bump mocha from 8.2.1 to 8.3.0 ([@openlayers](https://github.com/openlayers))
* [#12038](https://github.com/openlayers/openlayers/pull/12038) - Bump @babel/core from 7.12.13 to 7.12.16 ([@openlayers](https://github.com/openlayers))
* [#12039](https://github.com/openlayers/openlayers/pull/12039) - Bump @babel/preset-env from 7.12.13 to 7.12.16 ([@openlayers](https://github.com/openlayers))
* [#12004](https://github.com/openlayers/openlayers/pull/12004) - Bump rollup from 2.38.3 to 2.38.5 ([@openlayers](https://github.com/openlayers))
* [#12001](https://github.com/openlayers/openlayers/pull/12001) - Bump karma from 6.0.3 to 6.1.0 ([@openlayers](https://github.com/openlayers))
* [#11999](https://github.com/openlayers/openlayers/pull/11999) - Bump @babel/preset-env from 7.12.11 to 7.12.13 ([@openlayers](https://github.com/openlayers))
* [#12000](https://github.com/openlayers/openlayers/pull/12000) - Bump @babel/core from 7.12.10 to 7.12.13 ([@openlayers](https://github.com/openlayers))
* [#12003](https://github.com/openlayers/openlayers/pull/12003) - Bump puppeteer from 5.5.0 to 7.0.1 ([@openlayers](https://github.com/openlayers))
* [#12005](https://github.com/openlayers/openlayers/pull/12005) - Bump webpack-cli from 4.4.0 to 4.5.0 ([@openlayers](https://github.com/openlayers))
* [#12002](https://github.com/openlayers/openlayers/pull/12002) - [Security] Bump marked from 1.2.8 to 2.0.0 ([@openlayers](https://github.com/openlayers))
* [#11971](https://github.com/openlayers/openlayers/pull/11971) - Bump marked from 1.2.7 to 1.2.8 ([@openlayers](https://github.com/openlayers))
* [#11970](https://github.com/openlayers/openlayers/pull/11970) - Bump eslint from 7.18.0 to 7.19.0 ([@openlayers](https://github.com/openlayers))
* [#11969](https://github.com/openlayers/openlayers/pull/11969) - Bump rollup from 2.38.0 to 2.38.3 ([@openlayers](https://github.com/openlayers))
* [#11968](https://github.com/openlayers/openlayers/pull/11968) - Bump karma from 6.0.1 to 6.0.3 ([@openlayers](https://github.com/openlayers))
* [#11943](https://github.com/openlayers/openlayers/pull/11943) - Bump fs-extra from 9.0.1 to 9.1.0 ([@openlayers](https://github.com/openlayers))
* [#11944](https://github.com/openlayers/openlayers/pull/11944) - Bump webpack-cli from 4.3.1 to 4.4.0 ([@openlayers](https://github.com/openlayers))
* [#11945](https://github.com/openlayers/openlayers/pull/11945) - Bump sinon from 9.2.3 to 9.2.4 ([@openlayers](https://github.com/openlayers))
* [#11942](https://github.com/openlayers/openlayers/pull/11942) - Bump rollup from 2.36.2 to 2.38.0 ([@openlayers](https://github.com/openlayers))
* [#11933](https://github.com/openlayers/openlayers/pull/11933) - Bump karma from 5.2.3 to 6.0.1 ([@openlayers](https://github.com/openlayers))
* [#11930](https://github.com/openlayers/openlayers/pull/11930) - [Security] Bump socket.io from 2.3.0 to 2.4.1 ([@openlayers](https://github.com/openlayers))
* [#11919](https://github.com/openlayers/openlayers/pull/11919) - Bump webpack-dev-server from 3.11.1 to 3.11.2 ([@openlayers](https://github.com/openlayers))
* [#11922](https://github.com/openlayers/openlayers/pull/11922) - Bump eslint from 7.17.0 to 7.18.0 ([@openlayers](https://github.com/openlayers))
* [#11921](https://github.com/openlayers/openlayers/pull/11921) - Bump rollup from 2.36.1 to 2.36.2 ([@openlayers](https://github.com/openlayers))
* [#11918](https://github.com/openlayers/openlayers/pull/11918) - Bump webpack from 4.45.0 to 4.46.0 ([@openlayers](https://github.com/openlayers))
* [#11915](https://github.com/openlayers/openlayers/pull/11915) - Bump webpack-dev-middleware from 4.0.2 to 4.1.0 ([@openlayers](https://github.com/openlayers))
* [#11920](https://github.com/openlayers/openlayers/pull/11920) - Bump proj4 from 2.6.3 to 2.7.0 ([@openlayers](https://github.com/openlayers))
* [#11916](https://github.com/openlayers/openlayers/pull/11916) - Bump ol-mapbox-style from 6.3.0 to 6.3.1 ([@openlayers](https://github.com/openlayers))
* [#11905](https://github.com/openlayers/openlayers/pull/11905) - Bump globby from 11.0.1 to 11.0.2 ([@openlayers](https://github.com/openlayers))
* [#11904](https://github.com/openlayers/openlayers/pull/11904) - Bump webpack from 4.44.2 to 4.45.0 ([@openlayers](https://github.com/openlayers))
* [#11903](https://github.com/openlayers/openlayers/pull/11903) - Bump rollup from 2.35.1 to 2.36.1 ([@openlayers](https://github.com/openlayers))
* [#11902](https://github.com/openlayers/openlayers/pull/11902) - Bump sinon from 9.2.2 to 9.2.3 ([@openlayers](https://github.com/openlayers))
* [#11877](https://github.com/openlayers/openlayers/pull/11877) - Bump webpack-cli from 4.3.0 to 4.3.1 ([@openlayers](https://github.com/openlayers))
* [#11878](https://github.com/openlayers/openlayers/pull/11878) - Bump webpack-dev-server from 3.11.0 to 3.11.1 ([@openlayers](https://github.com/openlayers))
* [#11879](https://github.com/openlayers/openlayers/pull/11879) - Bump eslint from 7.16.0 to 7.17.0 ([@openlayers](https://github.com/openlayers))
* [#11868](https://github.com/openlayers/openlayers/pull/11868) - Bump worker-loader from 3.0.6 to 3.0.7 ([@openlayers](https://github.com/openlayers))
* [#11867](https://github.com/openlayers/openlayers/pull/11867) - Bump webpack-cli from 4.2.0 to 4.3.0 ([@openlayers](https://github.com/openlayers))
This is a bugfix release which brings improvements to the included TypeScript types, and fixes two minor issues with the Draw interaction and hit detection of regular shape symbols.
## List of all changes
* [#12498](https://github.com/openlayers/openlayers/pull/12498) - CanvasLayerRenderer: Forward LayerType type parameter to LayerRenderer ([@bryantevans00](https://github.com/bryantevans00))
* [#12518](https://github.com/openlayers/openlayers/pull/12518) - VectorEventType: Add 'changefeature' in @typedef ([@DaniEll-AT](https://github.com/DaniEll-AT))
* [#12517](https://github.com/openlayers/openlayers/pull/12517) - Update ela-compil sponsors section of README ([@ela-compil](https://github.com/ela-compil))
* [#12511](https://github.com/openlayers/openlayers/pull/12511) - Add ela-compil to sponsors section of README ([@ahocevar](https://github.com/ahocevar))
* [#12513](https://github.com/openlayers/openlayers/pull/12513) - Draw a sketch point when adding a vertex programmatically ([@ahocevar](https://github.com/ahocevar))
* [#12507](https://github.com/openlayers/openlayers/pull/12507) - Fix regular shape hit detect transparent fill ([@MoonE](https://github.com/MoonE))
* [#12509](https://github.com/openlayers/openlayers/pull/12509) - Allow any return type from listener functions ([@ahocevar](https://github.com/ahocevar))
* [#12505](https://github.com/openlayers/openlayers/pull/12505) - Fix type of PluggableMap#setTarget() argument ([@ahocevar](https://github.com/ahocevar))
* [#12495](https://github.com/openlayers/openlayers/pull/12495) - Edits to the changelog ([@tschaub](https://github.com/tschaub))
<details>
<summary>Dependency Updates</summary>
* [#12503](https://github.com/openlayers/openlayers/pull/12503) - Bump webpack from 5.42.0 to 5.44.0 ([@openlayers](https://github.com/openlayers))
* [#12502](https://github.com/openlayers/openlayers/pull/12502) - Bump @types/geojson from 7946.0.7 to 7946.0.8 ([@openlayers](https://github.com/openlayers))
* [#12501](https://github.com/openlayers/openlayers/pull/12501) - Bump rollup from 2.52.7 to 2.53.1 ([@openlayers](https://github.com/openlayers))
* [#12500](https://github.com/openlayers/openlayers/pull/12500) - Bump @types/arcgis-rest-api from 10.4.4 to 10.4.5 ([@openlayers](https://github.com/openlayers))
<td><p>A <a href="module-ol_Map-Map.html">map</a> is made of <a href="module-ol_layer_Base-BaseLayer.html">layers</a>, a <a href="module-ol_View-View.html">view</a> to visualize them, <a href="module-ol_interaction_Interaction-Interaction.html">interactions</a> to modify map content and <a href="module-ol_control_Control-Control.html">controls</a> with UI components.</p>
<tr><td><p>All coordinates and extents need to be provided in view projection (default: EPSG:3857). To transform, use <a href="module-ol_proj.html#.transform">ol/proj#transform()</a> and <a href="module-ol_proj.html#.transformExtent">ol/proj#transformExtent()</a>.</p>
<a href="module-ol_proj.html">ol/proj</a></td>
<td><p>Changes to all <a href="module-ol_Object-BaseObject.html">ol/Object</a>s can be observed by calling the <a href="module-ol_Object-BaseObject.html#on">object.on('propertychange')</a> method. Listeners receive an <a href="module-ol_Object.ObjectEvent.html">ol/Object.ObjectEvent</a> with information on the changed property and old value.</p>
<p>A <a href="module-ol_Map-Map.html">map</a> is made of <a href="module-ol_layer_Base-BaseLayer.html">layers</a>, a <a href="module-ol_View-View.html">view</a> to visualize them, <a href="module-ol_interaction_Interaction-Interaction.html">interactions</a> to modify map content and <a href="module-ol_control_Control-Control.html">controls</a> with UI components.</p>
<p>All coordinates and extents need to be provided in view projection (default: EPSG:3857). To transform, use <a href="module-ol_proj.html#.transform">ol/proj#transform()</a> and <a href="module-ol_proj.html#.transformExtent">ol/proj#transformExtent()</a>.</p>
<a href="module-ol_proj.html">ol/proj</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Observable objects</h4>
<p>Changes to all <a href="module-ol_Object-BaseObject.html">ol/Object</a>s can be observed by calling the <a href="module-ol_Object-BaseObject.html#on">object.on('propertychange')</a> method. Listeners receive an <a href="module-ol_Object.ObjectEvent.html">ol/Object.ObjectEvent</a> with information on the changed property and old value.</p>
*names and signatures of instance methods and properties
*names and signatures of functions
* names of constants
Within a major release series, the API will not be changed. Any changes to the API will be accompanied by a new major release.
*Note*: The API change policy does not cover CSS class names that are used to style the OpenLayers UI. It also does not cover any typedefs and enums.
<ul>
<li>names and signatures of constructors</li>
<li>names and signatures of instance methods and properties</li>
<li>names and signatures of functions</li>
<li>names of constants</li>
</ul>
<p>Within a major release series, the API will not be changed. Any changes to the API will be accompanied by a new major release.</p>
<p class="text-danger">Note: The API change policy does not cover CSS class names that are used to style the OpenLayers UI. It also does not cover any typedefs and enums.</p>
This directory contains configuration (`conf.json`), static content (`index.md`), template (`template/`) and plugins (`plugins/`) for the [JSDoc3](http://usejsdoc.org/) API generator.
This directory contains configuration (`conf.json`), static content (`index.md`), template (`template/`) and plugins (`plugins/`) for the [JSDoc3](https://jsdoc.app/) API generator.
## Documenting the source code
@@ -24,7 +24,7 @@ The second line tells the Closure compiler the type of the argument.
The third line (`@api`) marks the method as part of the api and thus exportable. Without such an api annotation, the method will not be documented in the generated API documentation. Symbols without an api annotation will also not be exportable.
The `@api` annotation can be used in conjunction with the `@inheritDoc` annotation to export a symbol that is documented on a parent class (where the method may be abstract). In general, `@api` annotations should never be used on abstract methods (only on their implementations).
In general, `@api` annotations should never be used on abstract methods (only on their implementations).
This template is based on the [Jaguar](https://github.com/davidshimjs/jaguarjs/tree/master/docs/templates/jaguar) template. [JaguarJS](https://github.com/davidshimjs/jaguarjs) is licensed under the [LGPL license](https://github.com/davidshimjs/jaguarjs/tree/master/LICENSE).
The default template for JSDoc 3 uses: [the Taffy Database library](http://taffydb.com/) and the [Underscore Template library](http://documentcloud.github.com/underscore/#template).
The default template for JSDoc 3 uses: [the Taffy Database library](https://taffydb.com/) and the [Underscore Template library](https://underscorejs.org/#template).
This documentation is for OpenLayers v<span id="package-version"><?js= version ?></span>. The <a id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
</div>
<?js= content ?>
<!-- menu items that get hidden below 768px width -->
This documentation is for OpenLayers v<span id="package-version"><?js= version ?></span>. The <a id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
Certain questions arise more often than others when users ask for help. This
document tries to list some of the common questions that frequently get asked,
e.g. on [Stack Overflow](http://stackoverflow.com/questions/tagged/openlayers).
e.g. on [Stack Overflow](https://stackoverflow.com/questions/tagged/openlayers).
If you think a question (and naturally its answer) should be added here, feel
free to ping us or to send a pull request enhancing this document.
@@ -75,7 +75,7 @@ import {register} from 'ol/proj/proj4';
import{getasgetProjection}from'ol/proj';
// To use other projections, you have to register the projection in OpenLayers.
// This can easily be done with [https://proj4js.org](proj4)
// This can easily be done with [http://proj4js.org/](proj4)
//
// By default OpenLayers does not know about the EPSG:21781 (Swiss) projection.
// So we create a projection instance for EPSG:21781 and pass it to
@@ -198,8 +198,8 @@ for English, `en`, as a mnemonic: East before North.
So you want to center your map on a certain place on the earth and obviously you
need to have its coordinates for this. Let's assume you want your map centered
on Schladming, a beautiful place in Austria. Head over to the wikipedia
page for [Schladming](http://en.wikipedia.org/wiki/Schladming). In the top-right
corner there is a link to [GeoHack](http://tools.wmflabs.org/geohack/geohack.php?pagename=Schladming¶ms=47_23_39_N_13_41_21_E_type:city(4565)_region:AT-6),
page for [Schladming](https://en.wikipedia.org/wiki/Schladming). In the top-right
corner there is a link to [GeoHack](https://geohack.toolforge.org/geohack.php?pagename=Schladming¶ms=47_23_39_N_13_41_21_E_type:city(4565)_region:AT-6),
@@ -19,4 +19,4 @@ We have put together a document that lists [Frequently Asked Questions (FAQ)](fa
# More questions?
If you cannot find an answer in the documentation or the FAQ, you can search [Stack Overflow](http://stackoverflow.com/questions/tagged/openlayers). If you cannot find an answer there, ask a new question there, using the tag 'openlayers'.
If you cannot find an answer in the documentation or the FAQ, you can search [Stack Overflow](https://stackoverflow.com/questions/tagged/openlayers). If you cannot find an answer there, ask a new question there, using the tag 'openlayers'.
@@ -78,7 +78,7 @@ The first part is to include the JavaScript library. For the purpose of this tut
<div id="map" class="map"></div>
```
The map in the application is contained in a [`<div>` HTML element](http://en.wikipedia.org/wiki/Span_and_div). Through this `<div>` the map properties like width, height and border can be controlled through CSS. Here's the CSS element used to make the map 400 pixels high and as wide as the browser window.
The map in the application is contained in a [`<div>` HTML element](https://en.wikipedia.org/wiki/Span_and_div). Through this `<div>` the map properties like width, height and border can be controlled through CSS. Here's the CSS element used to make the map 400 pixels high and as wide as the browser window.
@@ -19,7 +19,7 @@ OpenLayers is available as [`ol` npm package](https://npmjs.com/package/ol), whi
By default, OpenLayers uses a performance optimized Canvas renderer.
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](http://www.ecma-international.org/ecma-262/5.1/). This includes Chrome, Firefox, Safari and Edge. For older browsers and platforms like Internet Explorer (down to version 9) and Android 4.x, [polyfills](http://polyfill.io), the application bundle needs to be transpiled (e.g. using [Babel](https://babeljs.io)) and bundled with polyfills for `requestAnimationFrame`, `Element.prototype.classList` and `URL`.
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](https://262.ecma-international.org/5.1/). This includes Chrome, Firefox, Safari and Edge. For older browsers and platforms like Internet Explorer (down to version 9) and Android 4.x, [polyfills](https://polyfill.io/), the application bundle needs to be transpiled (e.g. using [Babel](https://babeljs.io/)) and bundled with polyfills for `fetch`, `requestAnimationFrame`, `Element.prototype.classList`, `URL`, `TextDecoder` and `Number.isInteger`.
The library is intended for use on both desktop/laptop and mobile devices, and supports pointer and touch interactions.
@@ -9,92 +9,19 @@ Modern JavaScript works best when using and authoring modules. The recommended w
In this tutorial, we will be using [Parcel](https://parceljs.org) to bundle our application. There are several other options, some of which are linked from the [README](https://npmjs.com/package/ol).
## Initial steps
## Application setup
Create a new empty directory for your project and navigate to it by running `mkdir new-project && cd new-project`. Initialize your project with
npm init
npx create-ol-app
This will create a `package.json` file in your working directory. Add OpenLayers as dependency to your application with
This will install the `ol` package, set up a development environment with additional dependencies, and give you an `index.html` and `main.js` starting point for your application. By default, [Parcel](https://parceljs.org) will be used as a module loader and bundler. See the [`create-ol-app`](https://github.com/openlayers/create-ol-app) documentation for details on using another bundler.
npm install ol
At this point you can ask NPM to add required development dependencies by running
npm install --save-dev parcel-bundler
## Application code and index.html
Place your application code in `index.js`. Here is a simple starting point:
```js
import'ol/ol.css';
import{Map,View}from'ol';
importTileLayerfrom'ol/layer/Tile';
importOSMfrom'ol/source/OSM';
constmap=newMap({
target:'map',
layers:[
newTileLayer({
source:newOSM()
})
],
view:newView({
center:[0,0],
zoom:0
})
});
```
You will also need an `index.html` file that will use your bundle. Here is a simple example:
```html
<!DOCTYPE html>
<html>
<head>
<metacharset="utf-8">
<title>Using Parcel with OpenLayers</title>
<style>
#map{
width:400px;
height:250px;
}
</style>
</head>
<body>
<divid="map"></div>
<scriptsrc="./index.js"></script>
</body>
</html>
```
## Creating a bundle
With two additional lines in `package.json` you can introduce the commands `npm run build` and `npm start` to manually build your bundle and watch for changes, respectively. The final `package.json` with the two additional commands `"start"` and `"build"` should look like this:
```json
{
"name":"test",
"version":"1.0.0",
"description":"",
"main":"index.js",
"scripts":{
"test":"echo \"Error: no test specified\" && exit 1",
"start":"parcel index.html",
"build":"parcel build --public-url . index.html"
},
"author":"",
"license":"ISC"
}
```
That's it. Now to run your application, enter
To start the development server
npm start
in your console. To test your application, open http://localhost:1234/ in your browser. Whenever you change something, the page will reload automatically to show the result of your changes.
Note that a single JavaScript file with all your application code and all dependencies used in your application has been created. From the OpenLayers package, it only contains the required components.
You can now visit http://localhost:1234/ to view your application. Begin making changes to the `index.html` and `main.js` files to add additional functionality.
To create a production bundle of your application, simply type
projection:'EPSG:4326',//HERE IS THE DATA SOURCE PROJECTION
url:'http://demo.boundlessgeo.com/geoserver/wms',
url:'https://ahocevar.com/geoserver/wms',
params:{
'LAYERS':'ne:NE1_HR_LC_SR_W_DR'
}
@@ -39,10 +39,10 @@ var map = new Map({
If a source (based on `ol/source/TileImage` or `ol/source/Image`) has a projection different from the current `ol/View`’s projection then the reprojection happens automatically under the hood.
The easiest way to use a custom projection is to add the [Proj4js](http://proj4js.org/) library to your project and then define the projection using a proj4 definition string. It can be installed with
@@ -125,7 +125,7 @@ Although this is mathematically correct behavior of the inverse transformation,
A possible general solution would be to calculate the forward transformation for every vertex as well - but this would significantly decrease performance (especially for computationally expensive transformations).
Therefore a recommended workaround is to define a proper visibility extent on the `ol.layer.Tile` in the view projection.
Setting such a limit is demonstrated in the [reprojection demo example](https://openlayers.org/en/master/examples/reprojection.html).
Setting such a limit is demonstrated in the [reprojection demo example](https://openlayers.org/en/latest/examples/reprojection.html).
### Resolution calculation
When determining source tiles to load, the ideal source resolution needs to be calculated.
<p>When the Bing Maps tile service doesn't have tiles for a given resolution and region it returns "placeholder" tiles indicating that. Zoom the map beyond level 19 to see the "placeholder" tiles. If you want OpenLayers to display stretched tiles in place of "placeholder" tiles beyond zoom level 19 then set <code>maxZoom</code> to <code>19</code> in the options passed to <code>ol/source/BingMaps</code>.</p>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.