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.
* Auto-pan settings currently only activate when the position of the
Overlay is set and the Overlay is already on a Map.
* The consequence of this is that creating an Overlay with position
set and then adding to a Map results in no auto-pan being performed -
it is necessary to first create the Overlay, then add to a Map and
finally set the position in order for the Map to auto-pan.
* This commit changes this behaviour so that the auto-pan settings are
also considered when the map property of the Overlay is set and not
only when the position property is set, leading to a more intuitive
behaviour.
* Fixes Issue #10843
* If panIntoView is an API method, it may now be called when the
position of the overlay has not yet been set.
* Adds a check for a set position to the panIntoView() method,
and removes the now unneccessary check in handlePositionChanged()
* Follow the suggestion from @ahocevar to use the existing
autoPan constructor option instead of creating a new autoPanOptions
option
* Internally also store the autoPanOptions in autoPan
This was introduced to `npm` recently and allows users of the ol
package to e.g. type `npm fund ol` and our opencollective page
opens in a browser. Just typing `npm fund` in a npm package will list
the funding options of the dependencies of the current project.
* animation and margin encapsulated in a single object to allow
easier extension in future
* Constructor options extended to allow single object for
autoPan; separate options still allowed but deprecated
* Protected fields for animation and margin replaced with single
field
Previously the expression was parsed in the fragment shader context, which
meant in case the expression used an attributes the resulting GLSL code
would be wrong.
Fragment shader context:
`float angle = v_heading; // we're using the varying: not OK`
Vertex shader context:
`float angle = a_heading; // we're using the attribute: OK`
No need to sort beforehand and therefore sorting can be done at last too.
Also forEach is just fine, no need for underscore.
This changes the navigation default order for modules to be after classes
when the name is the same.
Handle NaN latitude transform results at void centers of some projections (e.g. Pole LAEA).
Clamp latitudes to not go beyond the poles when calculating intervals.
Further improve polar projections by checking if extent contains max and min intersection coordinates when calculating max and min.
For some projections (e.g. polar) the maximum or minimum values may be at the center.
To improve the display for polar projections take validated center values into account when calculating max and min.
Use custom toLonLat transform to return wrapped longitudes for extents if view projection crosses the dateline.
Enhance the validation for center and extents to avoid proj4 errors.
Add optional extra stops to refine some non-parallel transforms
Refine extent transforms use by Gratucule by using 32 points (8 per side) instead of the standard corners only transform
Update Graticule class description with current limitations
Correct projection extent in Mollweide example and revise opening zoom level correspondingly
... to improve search speed.
Instead of marking all items as hidden, and then marking the matched
ones again, this keeps track of all matched items and only
removes those that no longer match and adds those that previously did
not match.
++++ Full match from start to end
+++ Full match between word boundaries
++ Begin matches at word boundary, multiple matches are better
+ Matches somewhere
Classes with (multiple) members matching at the beginning are
weighted higher.
Currently the search term is matched against the longname of members.
Because of this most members are matched when searching for a
class / module and also searching for 'mod' matches everything as
all longnames start with 'module:'
Write styles based on style objects appropriate for geometry.
Write fill and outline in PolyStyle if false (i.e. non-default)
Handle MultiLineString, MultiPoint and MultiPolygon within heterogenous MultiGeometry when writing features
Add getGeometriesArrayRecursive method to ol/geom/GeometryCollection to allow for nested MultiGeometry
Enhanced write GeometryCollection geometries test
A more rigorous write GeometryCollection geometries test including nested collections (the output is simplified to a single MultiGeomtry)
Add writeFeatures to outline and fill tests, setting geometry for geometry specific tests
Add <fill>0</fill> and <outline>0</outline> to some existing tests
Correct modify interaction at center and at drawn circle circumference
Correct snap interaction at drawn circle circumference
Test circle geometry in a user projection
2019-12-13 16:40:39 +00:00
1037 changed files with 78199 additions and 42452 deletions
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
@@ -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.
@@ -104,7 +103,7 @@ Please keep the header line short, no more than 50 characters.
### Be possible to merge automatically
Occasionally other changes to `master` might mean that your pull request cannot
Occasionally other changes to `main` might mean that your pull request cannot
be merged automatically. In this case you may need to rebase your branch on a
more recent `master`, resolve any conflicts, and `git push --force` to update
more recent `main`, resolve any conflicts, and `git push --force` to update
your branch so that it can be merged automatically.
@@ -41,14 +41,28 @@ See the following examples for more detail on bundling OpenLayers with your appl
* Using [Parcel](https://github.com/openlayers/ol-parcel)
* Using [Browserify](https://github.com/openlayers/ol-browserify)
## Sponsors
OpenLayers appreciates contributions of all kinds. We especially want to thank our fiscal sponsors who contribute to ongoing project maintenance.

> 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.
## 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:
```js
The ol package contains a src/ folder with JSDoc annotated sources. TypeScript can get type definitions from these sources with a [`jsconfig.json`](https://gist.github.com/ahocevar/9a7253cb4712e8bf38d75d8ac898e36c#file-jsconfig-json) (when authoring in JavaScript) or [`tsconfig.json`](https://gist.github.com/ahocevar/ad7b52a2fa0f6c5495193cd695ab3780#file-tsconfig-json) (when authoring in TypeScript) config file in the project root:
<details><summary>jsconfig.json</summary>
```json
{
"compilerOptions":{
"checkJs":true,
// Point to the JSDoc typed sources when using modules from the ol package
"baseUrl":"./",
"paths":{
"ol":["node_modules/ol/src"],
@@ -58,16 +72,52 @@ The `ol` package contains a `src/` folder with JSDoc annotated sources. TypeScri
"include":[
"**/*.js",
"node_modules/ol/**/*.js"
]
],
"typeAcquisition":{
"exclude":["ol"]
}
}
```
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.
</details>
<details><summary>tsconfig.json</summary>
```json
{
"compilerOptions":{
"allowJs":true,
"baseUrl":"./",
"paths":{
"ol":["node_modules/ol/src"],
"ol/*":["node_modules/ol/src/*"]
}
},
"include":[
"**/*.ts",
"node_modules/ol/**/*"
],
"typeAcquisition":{
"exclude":["ol"]
}
}
```
</details>
TypeScript users may want to use a [third-party types package](https://github.com/hanreev/types-ol) instead.
## 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](http://www.ecma-international.org/ecma-262/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/#feat=fetch): Available from [polyfill.io](https://polyfill.io/).
* [`requestAnimationFrame`](https://caniuse.com/#feat=requestanimationframe): Available from [polyfill.io](https://polyfill.io/).
* [`element.prototype.classList` (`add`/`remove`)](https://caniuse.com/#feat=classlist): Available from [polyfill.io](https://polyfill.io/).
* [`URL` API](https://caniuse.com/#feat=url): Available from [polyfill.io](https://polyfill.io/).
* [`TextDecoder`](https://caniuse.com/#feat=textencoder): Available from [polyfill.io](https://polyfill.io/).
* [Pointer events](https://caniuse.com/#feat=pointer): Use [elm-pep](https://npmjs.com/package/elm-pep) (lightweight) or [pepjs](https://npmjs.com/package/pepjs) (for really, really old browsers).
## Documentation
@@ -86,4 +136,4 @@ Please see our guide on [contributing](CONTRIBUTING.md) if you're interested in
- Need help? Find it on [Stack Overflow using the tag 'openlayers'](http://stackoverflow.com/questions/tagged/openlayers)
- Follow [@openlayers](https://twitter.com/openlayers) on Twitter
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
Previously, when an extent crossed the date line, vector source loaders were called with an extent with 540 degrees of longitude. Now, two loader calls with the visible extent on both sides of the projection extent are issued. This should not require any application code changes, but may affect custom loaders.
### v6.0.0
@@ -1426,7 +1463,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!
@@ -1448,7 +1485,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
@@ -1506,9 +1543,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 improvements. And good news for TypeScript users: OpenLayers now ships with type definitions in `.d.ts` files.
## New features and improvements
* Several improvements to the Graticule layer, like consistent labeling, no more missing graticule lines, and it now works for views that cross the date line.
* Better support for KML icon colors, as well as fills and outlines in PolyStyle
* Better `ol/Overlay` performance and support for panning off-screen overlays into view
* Most of the rendering code can now be run in web workers, e.g. to render to an OffscreenCanvas
* OpenLayers now works fine in web components with shadow root
* WebGL point layers now support rotation based on feature attributes
* [#10531](https://github.com/openlayers/openlayers/pull/10531) - Dynamically chose the number of subdivisions based on the size of the Image to reproject ([@pjsg](https://github.com/pjsg))
* [#10618](https://github.com/openlayers/openlayers/pull/10618) - Add apidoc-debug task to debug the apidoc generation process ([@MoonE](https://github.com/MoonE))
* [#10343](https://github.com/openlayers/openlayers/pull/10343) - Correct interactions with circle geometries when using user coordinates ([@mike-000](https://github.com/mike-000))
* [#10859](https://github.com/openlayers/openlayers/pull/10859) - Add an example of clipping layer based on a vector source ([@SDaron](https://github.com/SDaron))
* [#10850](https://github.com/openlayers/openlayers/pull/10850) - API docs for enums ([@ahocevar](https://github.com/ahocevar))
* [#10857](https://github.com/openlayers/openlayers/pull/10857) - Make OSM XML example work at dateline and replace Bing with MapTiler ([@mike-000](https://github.com/mike-000))
* [#10858](https://github.com/openlayers/openlayers/pull/10858) - Perform auto-pan when adding an Overlay to a Map ([@ejn](https://github.com/ejn))
* [#10646](https://github.com/openlayers/openlayers/pull/10646) - Write fill and outline in KML PolyStyle ([@mike-000](https://github.com/mike-000))
* [#10800](https://github.com/openlayers/openlayers/pull/10800) - Make Overlay.panIntoView an API method ([@ejn](https://github.com/ejn))
* [#10805](https://github.com/openlayers/openlayers/pull/10805) - make ImageSourceEventType available for consumers ([@regileeso](https://github.com/regileeso))
* [#10822](https://github.com/openlayers/openlayers/pull/10822) - parsing color from IconStyle in KML files ([@lysek](https://github.com/lysek))
* [#10848](https://github.com/openlayers/openlayers/pull/10848) - Speed up Overlay element positioning using CSS translate() ([@horsenit](https://github.com/horsenit))
* [#9590](https://github.com/openlayers/openlayers/pull/9590) - Calculate tile grid extent from extent of bottom-level tile matrix ([@mloskot](https://github.com/mloskot))
* [#10845](https://github.com/openlayers/openlayers/pull/10845) - Fix createHitDetectionImageData error for features with no size ([@gedaiu](https://github.com/gedaiu))
* [#10842](https://github.com/openlayers/openlayers/pull/10842) - Fix custom symbol example short description ([@mike-000](https://github.com/mike-000))
* [#10828](https://github.com/openlayers/openlayers/pull/10828) - Offscreen canvas example ([@ahocevar](https://github.com/ahocevar))
* [#10816](https://github.com/openlayers/openlayers/pull/10816) - Add 'funding' field to `package.json` ([@marcjansen](https://github.com/marcjansen))
* [#10813](https://github.com/openlayers/openlayers/pull/10813) - Add sponsors section to the readme ([@tschaub](https://github.com/tschaub))
* [#10474](https://github.com/openlayers/openlayers/pull/10474) - Fix for undefined source in Image layer ([@mike-000](https://github.com/mike-000))
* [#10787](https://github.com/openlayers/openlayers/pull/10787) - Improved projection extent in the "Reprojection with EPSG.io Search" example ([@mike-000](https://github.com/mike-000))
* [#10792](https://github.com/openlayers/openlayers/pull/10792) - Add support for EventListener Object ([@flexjoly](https://github.com/flexjoly))
* [#10777](https://github.com/openlayers/openlayers/pull/10777) - Keep the render loop running during simulation ([@ahocevar](https://github.com/ahocevar))
* [#10791](https://github.com/openlayers/openlayers/pull/10791) - iOS 12 touchmove: Prevent touchmove event default when no preceding pointer event ([@sosmo](https://github.com/sosmo))
* [#10786](https://github.com/openlayers/openlayers/pull/10786) - Resolve constraints when updating size ([@ahocevar](https://github.com/ahocevar))
* [#10788](https://github.com/openlayers/openlayers/pull/10788) - Add safeguard to handleTouchMove ([@sosmo](https://github.com/sosmo))
* [#10722](https://github.com/openlayers/openlayers/pull/10722) - fix: handle layer clear event in case clear(true) called ([@jellyedwards](https://github.com/jellyedwards))
* [#10723](https://github.com/openlayers/openlayers/pull/10723) - Improve the extent transforms used by Graticule and handle extents crossing the dateline ([@mike-000](https://github.com/mike-000))
* [#10744](https://github.com/openlayers/openlayers/pull/10744) - Ensure the Modify Features Test example opens at correct zoom ([@mike-000](https://github.com/mike-000))
* [#10767](https://github.com/openlayers/openlayers/pull/10767) - Replace Bing layer with MapTiler in examples ([@mike-000](https://github.com/mike-000))
* [#10751](https://github.com/openlayers/openlayers/pull/10751) - Sort events / observables in all cases ([@MoonE](https://github.com/MoonE))
* [#10763](https://github.com/openlayers/openlayers/pull/10763) - TypeScript: Fix inconsistent optionality in various APIs ([@jumpinjackie](https://github.com/jumpinjackie))
* [#10758](https://github.com/openlayers/openlayers/pull/10758) - Allow using feature attributes for symbol rotation in WebGL layers ([@jahow](https://github.com/jahow))
* [#10748](https://github.com/openlayers/openlayers/pull/10748) - Fix "Cannot read property 'anchor' of undefined" in ol/View ([@mike-000](https://github.com/mike-000))
* [#10746](https://github.com/openlayers/openlayers/pull/10746) - Fix building apidoc on windows ([@MoonE](https://github.com/MoonE))
* [#10743](https://github.com/openlayers/openlayers/pull/10743) - Ignore user provided tile cache size when too small ([@ahocevar](https://github.com/ahocevar))
* [#10736](https://github.com/openlayers/openlayers/pull/10736) - Allow cluster source to unlisten from its source ([@M393](https://github.com/M393))
* [#10739](https://github.com/openlayers/openlayers/pull/10739) - Fix typo in trackpad timeout ([@ahocevar](https://github.com/ahocevar))
* [#10740](https://github.com/openlayers/openlayers/pull/10740) - Document tabindex behavior for MouseWheelZoom and DragPan ([@matthias-ccri](https://github.com/matthias-ccri))
* [#10738](https://github.com/openlayers/openlayers/pull/10738) - Fix text background decluttering ([@ahocevar](https://github.com/ahocevar))
* [#10715](https://github.com/openlayers/openlayers/pull/10715) - Fix disappearing graticule labels when rotation returns to 0 ([@mike-000](https://github.com/mike-000))
* [#10713](https://github.com/openlayers/openlayers/pull/10713) - Draw graticule labels in a postrender function ([@mike-000](https://github.com/mike-000))
* [#10711](https://github.com/openlayers/openlayers/pull/10711) - Make sure that optional args are typed accordingly ([@ahocevar](https://github.com/ahocevar))
* [#10710](https://github.com/openlayers/openlayers/pull/10710) - Fix stylefunction return type ([@ahocevar](https://github.com/ahocevar))
* [#10709](https://github.com/openlayers/openlayers/pull/10709) - Fix type and documentation of style function ([@ahocevar](https://github.com/ahocevar))
* [#10707](https://github.com/openlayers/openlayers/pull/10707) - Get default projection for overview map from main map. ([@AugustusKling](https://github.com/AugustusKling))
* [#10699](https://github.com/openlayers/openlayers/pull/10699) - Make Select interaction work when there are multiple instances ([@ahocevar](https://github.com/ahocevar))
* [#10694](https://github.com/openlayers/openlayers/pull/10694) - Draw image with configured opacity ([@M393](https://github.com/M393))
* [#10703](https://github.com/openlayers/openlayers/pull/10703) - CI and test fixes ([@ahocevar](https://github.com/ahocevar))
* [#10688](https://github.com/openlayers/openlayers/pull/10688) - Publish type definition files ([@ahocevar](https://github.com/ahocevar))
* [#10691](https://github.com/openlayers/openlayers/pull/10691) - Do not exceed color range ([@ahocevar](https://github.com/ahocevar))
* [#10683](https://github.com/openlayers/openlayers/pull/10683) - Dispatch enterfullscreen and leavefullscreen from the FullScreen control ([@fredj](https://github.com/fredj))
* [#10676](https://github.com/openlayers/openlayers/pull/10676) - Document that overviewmap view must use same projection as main map ([@mike-000](https://github.com/mike-000))
* [#10678](https://github.com/openlayers/openlayers/pull/10678) - Add maxResolution option to ol/tilegrid.createXYZ() and ol/source/XYZ ([@mike-000](https://github.com/mike-000))
* [#10690](https://github.com/openlayers/openlayers/pull/10690) - Document minZoom and maxZoom options for all layers ([@mike-000](https://github.com/mike-000))
* [#10672](https://github.com/openlayers/openlayers/pull/10672) - Nicer mousewheel and trackpad zooming ([@ahocevar](https://github.com/ahocevar))
* [#10687](https://github.com/openlayers/openlayers/pull/10687) - Increase timeout in listenImage test ([@fredj](https://github.com/fredj))
* [#10684](https://github.com/openlayers/openlayers/pull/10684) - perf: only do expensive reload when texture changes ([@jellyedwards](https://github.com/jellyedwards))
* [#10669](https://github.com/openlayers/openlayers/pull/10669) - More browser compatible Export Map example ([@mike-000](https://github.com/mike-000))
* [#10667](https://github.com/openlayers/openlayers/pull/10667) - Do not render label with the current linedash ([@ahocevar](https://github.com/ahocevar))
* [#10666](https://github.com/openlayers/openlayers/pull/10666) - Load polyfill before example specific scripts in examples template ([@mike-000](https://github.com/mike-000))
* [#10657](https://github.com/openlayers/openlayers/pull/10657) - Changelog for v6.2.1 ([@openlayers](https://github.com/openlayers))
<details>
<summary>Dependency Updates</summary>
* [#10855](https://github.com/openlayers/openlayers/pull/10855) - Bump rollup from 2.1.0 to 2.3.0 ([@openlayers](https://github.com/openlayers))
* [#10854](https://github.com/openlayers/openlayers/pull/10854) - Bump ol-mapbox-style from 6.1.0 to 6.1.1 ([@openlayers](https://github.com/openlayers))
* [#10853](https://github.com/openlayers/openlayers/pull/10853) - Bump buble from 0.19.8 to 0.20.0 ([@openlayers](https://github.com/openlayers))
* [#10852](https://github.com/openlayers/openlayers/pull/10852) - Bump webpack from 4.42.0 to 4.42.1 ([@openlayers](https://github.com/openlayers))
* [#10837](https://github.com/openlayers/openlayers/pull/10837) - Bump ol-mapbox-style from 6.0.1 to 6.1.0 ([@openlayers](https://github.com/openlayers))
* [#10836](https://github.com/openlayers/openlayers/pull/10836) - Bump coveralls from 3.0.9 to 3.0.11 ([@openlayers](https://github.com/openlayers))
* [#10835](https://github.com/openlayers/openlayers/pull/10835) - Bump @babel/preset-env from 7.8.7 to 7.9.0 ([@openlayers](https://github.com/openlayers))
* [#10834](https://github.com/openlayers/openlayers/pull/10834) - Bump rollup from 1.32.1 to 2.1.0 ([@openlayers](https://github.com/openlayers))
* [#10833](https://github.com/openlayers/openlayers/pull/10833) - Bump fs-extra from 8.1.0 to 9.0.0 ([@openlayers](https://github.com/openlayers))
* [#10832](https://github.com/openlayers/openlayers/pull/10832) - Bump @babel/core from 7.8.7 to 7.9.0 ([@openlayers](https://github.com/openlayers))
* [#10831](https://github.com/openlayers/openlayers/pull/10831) - Bump babel-loader from 8.0.6 to 8.1.0 ([@openlayers](https://github.com/openlayers))
* [#10830](https://github.com/openlayers/openlayers/pull/10830) - Bump mocha from 7.1.0 to 7.1.1 ([@openlayers](https://github.com/openlayers))
* [#10829](https://github.com/openlayers/openlayers/pull/10829) - Bump marked from 0.8.0 to 0.8.2 ([@openlayers](https://github.com/openlayers))
* [#10811](https://github.com/openlayers/openlayers/pull/10811) - Bump sinon from 9.0.0 to 9.0.1 ([@openlayers](https://github.com/openlayers))
* [#10810](https://github.com/openlayers/openlayers/pull/10810) - Bump rollup-plugin-terser from 5.2.0 to 5.3.0 ([@openlayers](https://github.com/openlayers))
* [#10809](https://github.com/openlayers/openlayers/pull/10809) - Bump yargs from 15.3.0 to 15.3.1 ([@openlayers](https://github.com/openlayers))
* [#10806](https://github.com/openlayers/openlayers/pull/10806) - [Security] Bump acorn from 6.1.1 to 6.4.1 ([@openlayers](https://github.com/openlayers))
* [#10755](https://github.com/openlayers/openlayers/pull/10755) - Bump rollup from 1.31.1 to 1.32.0 ([@openlayers](https://github.com/openlayers))
* [#10754](https://github.com/openlayers/openlayers/pull/10754) - Bump @babel/preset-env from 7.8.4 to 7.8.6 ([@openlayers](https://github.com/openlayers))
* [#10753](https://github.com/openlayers/openlayers/pull/10753) - Bump mocha from 7.0.1 to 7.1.0 ([@openlayers](https://github.com/openlayers))
* [#10752](https://github.com/openlayers/openlayers/pull/10752) - Bump @babel/core from 7.8.4 to 7.8.6 ([@openlayers](https://github.com/openlayers))
* [#10725](https://github.com/openlayers/openlayers/pull/10725) - Bump elm-pep from 1.0.4 to 1.0.6 ([@openlayers](https://github.com/openlayers))
* [#10726](https://github.com/openlayers/openlayers/pull/10726) - Bump sinon from 8.1.1 to 9.0.0 ([@openlayers](https://github.com/openlayers))
* [#10680](https://github.com/openlayers/openlayers/pull/10680) - Bump terser-webpack-plugin from 2.3.4 to 2.3.5 ([@openlayers](https://github.com/openlayers))
* [#10682](https://github.com/openlayers/openlayers/pull/10682) - Bump webpack from 4.41.5 to 4.41.6 ([@openlayers](https://github.com/openlayers))
* [#10681](https://github.com/openlayers/openlayers/pull/10681) - Bump webpack-cli from 3.3.10 to 3.3.11 ([@openlayers](https://github.com/openlayers))
* [#10679](https://github.com/openlayers/openlayers/pull/10679) - Bump rollup from 1.31.0 to 1.31.1 ([@openlayers](https://github.com/openlayers))
This is a bugfix release which removes the auto-generated `.d.ts` TypeScript type files from the published package.
## List of all changes
* [#10877](https://github.com/openlayers/openlayers/pull/10877) - Remove .d.ts files from the package ([@ahocevar](https://github.com/ahocevar))
* [#10872](https://github.com/openlayers/openlayers/pull/10872) - Use TypeScript 3.9 for type generation for better enums ([@ahocevar](https://github.com/ahocevar))
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))
<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>
@@ -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 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>.
@@ -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](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 `fetch`, `requestAnimationFrame`, `Element.prototype.classList`, `URL` and `TextDecoder`.
The library is intended for use on both desktop/laptop and mobile devices, and supports pointer and touch interactions.
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.