Compare commits

...

719 Commits

Author SHA1 Message Date
Andreas Hocevar
c914ac2a64 Changelog for v6.2.1 2020-02-13 20:52:10 +01:00
Andreas Hocevar
643552f13f Merge pull request #10656 from mike-000/patch-6
Fix for export PDF example compatibility issues, and layer opacity handling.
2020-02-13 20:06:44 +01:00
mike-000
0b893f11d3 Fix IE compatibility. Add opacity handling.
querySelectorAll().forEach() isn't supported by IE.
Add opacity to the vector layer and handle it in the output.
2020-02-13 18:13:07 +00:00
mike-000
f302b5883e Update jspdf version 2020-02-13 18:06:02 +00:00
Andreas Hocevar
8750cb0b1a Merge pull request #10653 from ahocevar/apidoc-nav
More reliable check for module content beyond classes
2020-02-13 14:30:26 +01:00
Andreas Hocevar
32238806a6 Merge pull request #10617 from MoonE/apidoc-performance
Improve apidoc generation performance
2020-02-13 11:03:02 +01:00
Andreas Hocevar
4e1ca0a986 More reliable check for module content beyond classes 2020-02-13 10:41:52 +01:00
Andreas Hocevar
8b6d5eb5c8 Merge pull request #10625 from MoonE/apidoc-cleanup-navigation
Apidoc cleanup navigation html
2020-02-13 10:04:36 +01:00
Andreas Hocevar
1d5f9ae369 Merge pull request #10649 from ahocevar/remove-circular-dependency
Remove circular dependency
2020-02-13 08:35:58 +01:00
Andreas Hocevar
262373a4b5 Remove circular dependency 2020-02-12 20:31:18 +01:00
Andreas Hocevar
8742d8fbc7 Merge pull request #10637 from openlayers/dev-6.2.1
Develop on 6.2.1
2020-02-11 16:41:47 +01:00
Andreas Hocevar
af18045fc8 Develop on 6.2.1 2020-02-11 16:29:51 +01:00
Andreas Hocevar
1d0f0f5205 Merge pull request #10636 from openlayers/release-v6.2.0
Release v6.2.0
2020-02-11 16:23:07 +01:00
Andreas Hocevar
edec77dafc Update package version to 6.2.0 2020-02-11 15:43:03 +01:00
Andreas Hocevar
ff6eb89b06 Changelog for v6.2.0 2020-02-11 15:43:03 +01:00
Andreas Hocevar
bb68da2a0a Merge pull request #10613 from mike-000/patch-1
Show KML name labels for Points in MultiGeometry
2020-02-11 15:08:51 +01:00
Olivier Guyot
d5c72f62d5 Merge pull request #10632 from jahow/draw-interaction-append-coords
Draw interaction: Append coordinates to polygons and lines (reworked)
2020-02-11 13:46:01 +01:00
Olivier Guyot
8d4c3b2887 Draw / clearer variable names 2020-02-11 11:19:55 +01:00
Olivier Guyot
6641832621 Improvements to the tracing example
* no embedded geojson
* better behaviour on draw end (no lingering preview line)
* clearer comments
* support for multi polygons to snap to
2020-02-11 11:03:38 +01:00
Andreas Hocevar
fe8f7c04ad Merge pull request #10629 from openlayers/dependabot/npm_and_yarn/ol-mapbox-style-6.0.1
Bump ol-mapbox-style from 6.0.0 to 6.0.1
2020-02-10 22:41:55 +01:00
Andreas Hocevar
07c2b360ce Merge pull request #10628 from openlayers/dependabot/npm_and_yarn/puppeteer-2.1.1
Bump puppeteer from 2.1.0 to 2.1.1
2020-02-10 22:40:23 +01:00
Andreas Hocevar
2ccd9bf6b9 Merge pull request #10627 from openlayers/dependabot/npm_and_yarn/handlebars-4.7.3
Bump handlebars from 4.7.2 to 4.7.3
2020-02-10 22:39:22 +01:00
Andreas Hocevar
0b70a7e165 Merge pull request #10626 from openlayers/dependabot/npm_and_yarn/webpack-dev-server-3.10.3
Bump webpack-dev-server from 3.10.2 to 3.10.3
2020-02-10 22:38:33 +01:00
Olivier Guyot
3c5d0f223e Draw / fix map object in addToDrawing method 2020-02-10 16:55:35 +01:00
Olivier Guyot
8722d16158 Rewrite the example showcasing DrawInteraction#appendCoordinates
The example is now focused on showing how a kind of "tracing" mode
can be achieved using the Draw interaction, making it easier
for the user to snap to an existing geometry while preserving
topology.
2020-02-10 16:48:12 +01:00
Otto Pellinen
02597229e3 Cleanup comments 2020-02-10 16:48:12 +01:00
Otto Pellinen
5ff681563f Update examples to demonstrate typical use case 2020-02-10 16:48:12 +01:00
Otto Pellinen
0b3bd0721e Add dedicated tests for appendCoordinates 2020-02-10 16:48:12 +01:00
Otto Pellinen
bc79d59811 Use private function addToDrawing_ in appendCoordinates 2020-02-10 16:48:12 +01:00
Otto Pellinen
f43bc8d122 Fix comment for appendCoordinates 2020-02-10 16:48:12 +01:00
Otto Pellinen
175695f877 Update function descriptions for clarity 2020-02-10 16:48:12 +01:00
Otto Pellinen
934ad5b882 Rename example files 2020-02-10 16:48:12 +01:00
Otto Pellinen
83c0a258e6 Separate appendCoordinates function from extend 2020-02-10 16:48:12 +01:00
Otto Pellinen
25a5e83910 Fix eslint errors 2020-02-10 16:48:12 +01:00
Otto Pellinen
00261dff54 Add example for using the Draw extend function 2020-02-10 16:48:12 +01:00
Otto Pellinen
12ce4cc82a Add support for extending linear coordinates when drawing Polygons 2020-02-10 16:48:12 +01:00
dependabot-preview[bot]
15800da498 Bump ol-mapbox-style from 6.0.0 to 6.0.1
Bumps [ol-mapbox-style](https://github.com/openlayers/ol-mapbox-style) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/openlayers/ol-mapbox-style/releases)
- [Changelog](https://github.com/openlayers/ol-mapbox-style/blob/master/CHANGELOG.md)
- [Commits](https://github.com/openlayers/ol-mapbox-style/compare/v6.0.0...v6.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 08:03:25 +00:00
dependabot-preview[bot]
acb8008644 Bump puppeteer from 2.1.0 to 2.1.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v2.1.0...v2.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 08:02:33 +00:00
dependabot-preview[bot]
34fe288c6b Bump handlebars from 4.7.2 to 4.7.3
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.2 to 4.7.3.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.2...v4.7.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 08:02:01 +00:00
dependabot-preview[bot]
b90ca8b521 Bump webpack-dev-server from 3.10.2 to 3.10.3
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.10.2 to 3.10.3.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.10.2...v3.10.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 08:01:14 +00:00
Maximilian Krög
300cc282e4 Generate valid html for the apidoc navigation
Only `<li>` can be a direct descendant of `<ul>` tags.
2020-02-10 00:10:05 +01:00
Maximilian Krög
5d922fc53b Cleanup navigation.tmpl and the generated html
- Add a function that is used to generate all four types of member lists.
- Only use one line per list item.
- Don't generate empty `class=""` attributes when item is stable.
- Remove closing `</li>` tag, as is allowed by the html 5 standard.

Overall this reduces the filesize for the generated html pages by ~33%.
2020-02-10 00:09:33 +01:00
Maximilian Krög
c0f058f5cf Variable should be reset on each loop but wasn't
The ancestors variable is always set once the first augmented doclet is found.
The incompleteDoclet variable is also not reset between loops.
2020-02-07 00:08:14 +01:00
Maximilian Krög
2e4f989d7b Store api members as object map instead of array. 2020-02-07 00:08:14 +01:00
Maximilian Krög
0c04293d5f Generate navigation html only once for all pages.
This reduces the time for apidoc generation by ~30%.
2020-02-07 00:08:07 +01:00
Andreas Hocevar
35569a8427 Merge pull request #9565 from dbrnz/v6.0.0-beta.7-branch
Make mousewheel zoom behave like trackpad zoom.
2020-02-06 15:54:34 +01:00
mike-000
47a4a63e3e Test name labels for points in MultiGeometry 2020-02-05 23:51:48 +00:00
mike-000
0fb4b62b9b Test name labels for points in MultiGeometry 2020-02-05 23:26:11 +00:00
mike-000
4ce3b3fed1 Show name labels for points in MultiGeometry 2020-02-05 23:18:54 +00:00
Andreas Hocevar
29a434314b Merge pull request #10580 from mike-000/patch-7
Fix KML Polystyle outline 0 conflict with Linestyle for linestrings
2020-02-05 23:22:52 +01:00
Andreas Hocevar
c320b15177 Merge pull request #10612 from ahocevar/ie11
Make examples work in Internet Explorer
2020-02-05 22:35:30 +01:00
mike-000
319b64ed65 Fix for #10611 2020-02-05 20:17:18 +00:00
Andreas Hocevar
65c1575dc9 Make examples work in Internet Explorer 2020-02-05 20:16:14 +01:00
Andreas Hocevar
cc21f92bdb Restore test coverage, fix tests 2020-02-05 13:03:21 +01:00
Andreas Hocevar
c8e340a623 Rename variables now that trackpads are not special any more 2020-02-05 12:58:21 +01:00
David Brooks
03fcf1ca70 Get all mouse wheel tests passing (#9564). 2020-02-05 11:27:10 +01:00
David Brooks
77658e5750 Ensure changes to zoom wheel handling pass tests. 2020-02-05 11:24:48 +01:00
David Brooks
54bae0168f Handle mouse wheel zoom events as if they've come from a trackpad. 2020-02-05 11:21:44 +01:00
Andreas Hocevar
97246daf66 Merge pull request #10587 from jeremy-smith-maco/larger-resolution-constraint
Adds option to View for using larger resolution value when clamping #10586
2020-02-05 11:10:43 +01:00
Jeremy Smith
3082972cce Updates the option to be called showFullExtent 2020-02-05 16:46:45 +10:00
Andreas Hocevar
9eb860f08c Merge pull request #10607 from ahocevar/elm-pep
Update elm-pep to fix builds for IE < 11
2020-02-04 09:03:53 +01:00
Frédéric Junod
062d043e6e Merge pull request #10600 from openlayers/dependabot/npm_and_yarn/puppeteer-2.1.0
Bump puppeteer from 2.0.0 to 2.1.0
2020-02-04 08:47:28 +01:00
Andreas Hocevar
e727a3fe23 Update elm-pep to fix builds for IE < 11 2020-02-04 08:11:29 +01:00
Andreas Hocevar
fe3603dee6 Merge pull request #10598 from ahocevar/refresh-no-inheritdoc
Remove inheritDoc to work around JSDoc issue
2020-02-03 22:32:52 +01:00
Frédéric Junod
2eb0072e8c Merge pull request #10606 from openlayers/dependabot/npm_and_yarn/babel/core-7.8.4
Bump @babel/core from 7.8.3 to 7.8.4
2020-02-03 09:42:55 +01:00
Frédéric Junod
bba2989859 Merge pull request #10605 from openlayers/dependabot/npm_and_yarn/webpack-dev-server-3.10.2
Bump webpack-dev-server from 3.10.1 to 3.10.2
2020-02-03 09:42:20 +01:00
Frédéric Junod
f63c02a57b Merge pull request #10604 from openlayers/dependabot/npm_and_yarn/rollup-1.31.0
Bump rollup from 1.29.1 to 1.31.0
2020-02-03 09:41:03 +01:00
Frédéric Junod
92a0558cf2 Merge pull request #10603 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.8.4
Bump @babel/preset-env from 7.8.3 to 7.8.4
2020-02-03 09:40:43 +01:00
Frederic Junod
a4915d0ef6 Update expected image for layer-vectortile-rotate-hidpi rendering test 2020-02-03 09:40:05 +01:00
Frédéric Junod
66d9c92f7d Merge pull request #10602 from openlayers/dependabot/npm_and_yarn/url-polyfill-1.1.8
Bump url-polyfill from 1.1.7 to 1.1.8
2020-02-03 09:39:15 +01:00
Frédéric Junod
511d8e8795 Merge pull request #10601 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-2.3.4
Bump terser-webpack-plugin from 2.3.2 to 2.3.4
2020-02-03 09:38:47 +01:00
dependabot-preview[bot]
6a5a1f7a72 Bump @babel/core from 7.8.3 to 7.8.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.3 to 7.8.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.3...v7.8.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-03 08:19:24 +00:00
dependabot-preview[bot]
c2bfe76ee5 Bump webpack-dev-server from 3.10.1 to 3.10.2
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.10.1 to 3.10.2.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.10.1...v3.10.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-03 08:18:51 +00:00
dependabot-preview[bot]
cf0b8af356 Bump rollup from 1.29.1 to 1.31.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.29.1 to 1.31.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.29.1...v1.31.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-03 08:17:49 +00:00
dependabot-preview[bot]
1e08750398 Bump @babel/preset-env from 7.8.3 to 7.8.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.3 to 7.8.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.3...v7.8.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-03 08:17:08 +00:00
dependabot-preview[bot]
f4ef2e15db Bump url-polyfill from 1.1.7 to 1.1.8
Bumps [url-polyfill](https://github.com/lifaon74/url-polyfill) from 1.1.7 to 1.1.8.
- [Release notes](https://github.com/lifaon74/url-polyfill/releases)
- [Commits](https://github.com/lifaon74/url-polyfill/compare/1.1.7...1.1.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-03 08:15:52 +00:00
dependabot-preview[bot]
cd3a205803 Bump terser-webpack-plugin from 2.3.2 to 2.3.4
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.3.2 to 2.3.4.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.3.2...v2.3.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-03 08:14:59 +00:00
dependabot-preview[bot]
564af3e4d5 Bump puppeteer from 2.0.0 to 2.1.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v2.0.0...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-03 08:14:11 +00:00
mike-000
3c2dfb511a Fix Polystyle outline 0 conflict with Linestyle
Return separate style objects for polygon geometries (including multipolygon and polygons in geometry collections) and other geometries if Polystyle outline is defined as 0
Rearrange code to reduce cloning of styles in createNameStyleFunction

Update Polystyle outline 0 tests
Check for separate style objects applying to LineString and Polygon geometries
Test LineString and Polygon geometries in a collection
2020-02-02 11:28:07 +00:00
Andreas Hocevar
f91ce5692f Remove apidoc annotation to show refresh for ol/source/Cluster 2020-02-01 21:44:10 +01:00
Andreas Hocevar
38abbcbdd6 Remove inheritDoc to work around JSDoc issue 2020-02-01 19:06:37 +01:00
Andreas Hocevar
902f3c2fba Merge pull request #10574 from ahocevar/text-background
Text rendering improvements
2020-01-30 15:57:04 +01:00
Andreas Hocevar
7266f37f85 Remove unused export and variable 2020-01-30 14:56:11 +01:00
Andreas Hocevar
93897d92d5 Merge pull request #10591 from ahocevar/sphere-license
Remove obsolete license notice
2020-01-30 14:03:57 +01:00
Andreas Hocevar
81d14fb636 Remove obsolete license notice 2020-01-30 10:47:53 +01:00
Andreas Hocevar
542b77eef8 Save and restore before rendering labels 2020-01-30 09:14:03 +01:00
Andreas Hocevar
a24c94487c Cache label instructions for better performance 2020-01-30 09:14:02 +01:00
Andreas Hocevar
d87f7b7d35 Merge pull request #10588 from ahocevar/apidoc
Sort doc navigation properly and add missing modules
2020-01-30 08:15:41 +01:00
Jeremy Smith
001cb98990 Updated test to use renamed option 2020-01-30 08:03:02 +10:00
Jeremy Smith
7805768942 Renamed option to constrainOneAxis 2020-01-30 07:40:28 +10:00
Andreas Hocevar
f8f7f83be7 Do not expose static render function of controls 2020-01-29 20:21:08 +01:00
Tim Schaub
af307eb606 Merge pull request #10581 from DanielRuf/ci/use-package-lock-checksum
Use package-lock.json for the checksum calculation
2020-01-29 07:35:51 -08:00
Andreas Hocevar
e3f9e250ab Sort doc navigation properly and add missing modules 2020-01-29 14:04:52 +01:00
Andreas Hocevar
c373a3eafd Merge pull request #10584 from MrSoUndso/dev
fixed issue with version throwing an error if it is null
2020-01-29 12:06:48 +01:00
Jeremy Smith
4151e86c0a Adds option to View for using larger resolution value when clamping 2020-01-29 15:35:48 +10:00
Jakob Gerstmayer
153bd7f5d1 fixed spacing after if 2020-01-28 17:48:45 +01:00
Jakob Gerstmayer
902bdbabdc fixed issue with version throwing an error if it is null 2020-01-28 17:39:21 +01:00
Daniel Ruf
02b1ab71f1 Use package-lock.json for the checksum calculation - closes #10069 2020-01-28 11:13:50 +01:00
Andreas Hocevar
2652c1a30d Merge pull request #10575 from mike-000/patch-8
Fix ol/layer/Graticule rendercomplete problem
2020-01-27 16:46:44 +01:00
Andreas Hocevar
29ea779f66 Merge pull request #10562 from crubier/master
Zoomify: Separate the service pixel ratio and the device pixel ratio
2020-01-27 15:46:11 +01:00
Frédéric Junod
9cf8fe9e05 Merge pull request #10578 from openlayers/dependabot/npm_and_yarn/sinon-8.1.1
Bump sinon from 8.1.0 to 8.1.1
2020-01-27 09:03:56 +01:00
Frédéric Junod
2f7e681c32 Merge pull request #10577 from openlayers/dependabot/npm_and_yarn/mocha-7.0.1
Bump mocha from 7.0.0 to 7.0.1
2020-01-27 09:03:36 +01:00
Frédéric Junod
e391be7de9 Merge pull request #10576 from openlayers/dependabot/npm_and_yarn/rollup-1.29.1
Bump rollup from 1.29.0 to 1.29.1
2020-01-27 09:03:10 +01:00
Frédéric Junod
f2d5b6b116 Merge pull request #10573 from mike-000/patch-7
Replace Bing layer with MapTiler in example
2020-01-27 08:47:25 +01:00
dependabot-preview[bot]
7f6d77d811 Bump sinon from 8.1.0 to 8.1.1
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.1.0 to 8.1.1.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v8.1.0...v8.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 07:47:19 +00:00
dependabot-preview[bot]
2205937b2d Bump mocha from 7.0.0 to 7.0.1
Bumps [mocha](https://github.com/mochajs/mocha) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v7.0.0...v7.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 07:46:34 +00:00
dependabot-preview[bot]
bf57a23940 Bump rollup from 1.29.0 to 1.29.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.29.0 to 1.29.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.29.0...v1.29.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 07:45:55 +00:00
mike-000
e820042748 Fix ol/layer/Graticule rendercomplete problem
fix typedef imports
2020-01-26 14:04:05 +00:00
mike-000
a7bdee43b3 Fix ol/layer/Graticule rendercomplete problem
Use custom loading strategy to avoid problems caused by calling removeLoadedExtent in the loader function
2020-01-26 13:51:11 +00:00
Andreas Hocevar
23d441f9f2 Handle tileSize and tilePixelRatio properly 2020-01-25 19:55:30 +01:00
Andreas Hocevar
91b9058582 Merge pull request #10570 from ahocevar/fix-vector-image-ratio
Use correct extent for the vector image
2020-01-24 19:30:45 +01:00
Andreas Hocevar
5ca4af125e Merge pull request #10572 from ahocevar/assert-no-duplicate-layers
Assert each layer is only added to the map once
2020-01-24 18:03:27 +01:00
Andreas Hocevar
1ee03decdd Assert each layer is only added to the map once 2020-01-24 17:52:13 +01:00
mike-000
96ebacca1f Replace Bing layer with MapTiler 2020-01-24 16:34:43 +00:00
mike-000
a9e738c919 Replace Bing layer with MapTiler 2020-01-24 16:33:34 +00:00
mike-000
c9c616bd6f Replace Bing layer with MapTiler 2020-01-24 16:31:08 +00:00
mike-000
1eac18f94a Replace Bing layer with MapTiler 2020-01-24 15:51:41 +00:00
mike-000
e11db6de44 Replace Bing layer with MapTiler 2020-01-24 15:49:08 +00:00
Vincent Lecrubier
8c89ddceca Revert #9489 and solves retina tiles on zoomify apparently. 2020-01-24 15:33:42 +00:00
Andreas Hocevar
89c5364b2f Use correct extent for the vector image 2020-01-24 13:50:02 +01:00
Andreas Hocevar
97cb0bbd77 Merge pull request #10563 from ahocevar/map-to-image
More compatible way of exporting a map as pdf
2020-01-23 12:19:56 +01:00
Vincent Lecrubier
3a5c8d637c Zoomify: Separate the service pixel ratio and the device pixel ratio 2020-01-22 09:32:11 +00:00
Andreas Hocevar
4db204698e More compatible way of exporting a map as pdf 2020-01-21 22:27:28 +01:00
Andreas Hocevar
d1b2dfb669 Merge pull request #10545 from mike-000/patch-7
Make KML point feature styles compatible with declutter
2020-01-20 13:45:52 +01:00
mike-000
5830a36131 Convert any html character codes in labels
fix typedef
2020-01-20 10:37:04 +00:00
mike-000
83d65b61e1 Convert any html character codes in labels
fix typedef
2020-01-20 10:30:44 +00:00
mike-000
c221cc7a46 Convert any html character codes in labels
reuse single textarea element
2020-01-20 10:24:57 +00:00
Andreas Hocevar
a25e10524b Merge pull request #10542 from mike-000/patch-6
Replace Bing layer with MapTiler in KML example
2020-01-20 09:35:29 +01:00
Andreas Hocevar
afba861ab5 Merge pull request #10543 from MoonE/jsdoc-api-mustnothavevalue
@api tag must not have a value.
2020-01-20 09:33:28 +01:00
Andreas Hocevar
d670eba5eb Merge pull request #10547 from MoonE/apidoc-remove-non-api-modules
Only generate module apidoc pages when it contains api tags
2020-01-20 09:22:33 +01:00
Andreas Hocevar
3dff4f73e2 Merge pull request #10551 from openlayers/dependabot/npm_and_yarn/handlebars-4.7.2
Bump handlebars from 4.7.1 to 4.7.2
2020-01-20 09:17:25 +01:00
Andreas Hocevar
f87a7656ce Merge pull request #10550 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.8.3
Bump @babel/preset-env from 7.8.2 to 7.8.3
2020-01-20 09:16:54 +01:00
Andreas Hocevar
8f7e5ce63c Merge pull request #10549 from openlayers/dependabot/npm_and_yarn/sinon-8.1.0
Bump sinon from 8.0.4 to 8.1.0
2020-01-20 09:16:20 +01:00
Andreas Hocevar
ca944c8ece Merge pull request #10548 from openlayers/dependabot/npm_and_yarn/babel/core-7.8.3
Bump @babel/core from 7.8.0 to 7.8.3
2020-01-20 09:15:44 +01:00
dependabot-preview[bot]
9ce0d6159c Bump handlebars from 4.7.1 to 4.7.2
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.1 to 4.7.2.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.1...v4.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-20 07:55:15 +00:00
dependabot-preview[bot]
f2ae509d07 Bump @babel/preset-env from 7.8.2 to 7.8.3
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.2 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.2...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-20 07:54:16 +00:00
dependabot-preview[bot]
e00cfeec06 Bump sinon from 8.0.4 to 8.1.0
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.0.4 to 8.1.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v8.0.4...v8.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-20 07:53:02 +00:00
dependabot-preview[bot]
fa9d4586a3 Bump @babel/core from 7.8.0 to 7.8.3
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.0 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-20 07:52:12 +00:00
Maximilian Krög
e2dc67546e Only generate module apidoc pages when it contains api tags 2020-01-19 15:51:48 +01:00
mike-000
e2b42c100f Include html character code in text style test 2020-01-19 12:02:16 +00:00
mike-000
bf23dca068 Include html character code in text style test 2020-01-19 11:42:59 +00:00
mike-000
23858dc09d Convert any html character codes in labels 2020-01-19 11:28:05 +00:00
mike-000
9493d68217 Make feature styles compatible with declutter
Remove type def relating to deleted line
2020-01-18 20:19:56 +00:00
mike-000
730008cfad Make feature styles compatible with declutter
Update expected result to single style object to reflect change
Remove duplicated test
2020-01-18 20:00:09 +00:00
mike-000
258bfeaecc Make feature styles compatible with declutter
Return a single style object for image and text for point features as concatenating two styles in an array is not compatible with decluttering
2020-01-18 19:37:18 +00:00
Maximilian Krög
9cc7ef4b96 Use correct config for tags which must not have a value. 2020-01-18 20:15:10 +01:00
mike-000
3ac33ee723 Replace Bing layer with MapTiler 2020-01-17 21:53:52 +00:00
mike-000
62cd0cbcc9 Replace Bing layer with MapTiler 2020-01-17 21:47:32 +00:00
Andreas Hocevar
2f094978ca Merge pull request #10502 from walkermatt/stopevent-removed-target
Stop events that originate with a removed target
2020-01-17 21:34:39 +01:00
Andreas Hocevar
de5cd5c664 Merge pull request #10527 from ahocevar/no-label-cache
Remove label cache, render text directly to target canvas
2020-01-16 09:23:41 +01:00
Tim Schaub
8e2adf9955 Merge pull request #10534 from wussup/patch-1
[GeoJSON] Read projection from CRS type EPSG
2020-01-15 15:21:28 -07:00
Andreas Hocevar
adbab7992e Merge pull request #10430 from Razi91/offset-RegularShape
Offset regular shape
2020-01-15 11:26:41 +01:00
jkonieczny
df710e4d6f fix example with displacement 2020-01-15 11:13:45 +01:00
jkonieczny
2112478b6b Added test + jsdoc 2020-01-15 11:13:45 +01:00
jkonieczny
78378f0253 refactor offset to displacement 2020-01-15 11:13:45 +01:00
jkonieczny
4c7f52c8a4 Offset for ImageStyle 2020-01-15 11:13:44 +01:00
jkonieczny
ee1b038714 add example to regularshape 2020-01-15 11:13:44 +01:00
jkonieczny
1506e13b60 use anchor for offsetting 2020-01-15 11:13:44 +01:00
jkonieczny
601bd7bae6 add offset option to RegularShape 2020-01-15 11:13:44 +01:00
wussup
cbdd63a38b Strings must have singlequotes
Strings must have singlequotes
2020-01-15 10:29:14 +01:00
wussup
bc6f34d691 Read projection from CRS type EPSG
CRS also may have type 'EPSG' and then the code is reading from property 'code' in object 'properties'
2020-01-15 10:13:18 +01:00
Andreas Hocevar
fd935bae53 Remove label cache, render text directly to target canvas 2020-01-13 22:12:53 +01:00
Matt Walker
eeec2b9e7d Lint: remove unused imports 2020-01-13 11:32:40 +00:00
Matt Walker
4e599a370b Use document.body to check if an event target is within the page
Some events will originate outside the map viewport such as keyboard
events which originate with the element specified by keyboardEventTarget
which could be document.body
2020-01-13 10:56:41 +00:00
Matt Walker
5ce532e3e4 Mock PointerEvent in tests to include target
The `target` Event property is readonly as it is set internally when an
event is dispatched. This change uses a plain object with the essential
properties that a PointerEvent has which is sufficent for map event handling
2020-01-13 10:46:40 +00:00
Frédéric Junod
56a6919d9a Merge pull request #10518 from openlayers/dependabot/npm_and_yarn/front-matter-3.1.0
Bump front-matter from 3.0.2 to 3.1.0
2020-01-13 10:02:48 +01:00
Frédéric Junod
c4eea624f4 Merge pull request #10516 from openlayers/dependabot/npm_and_yarn/handlebars-4.7.1
Bump handlebars from 4.5.3 to 4.7.1
2020-01-13 10:02:26 +01:00
Frédéric Junod
76e81bbc78 Merge pull request #10514 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-2.3.2
Bump terser-webpack-plugin from 2.3.1 to 2.3.2
2020-01-13 10:02:08 +01:00
Frédéric Junod
bbadfefc92 Merge pull request #10523 from openlayers/dependabot/npm_and_yarn/sinon-8.0.4
Bump sinon from 8.0.2 to 8.0.4
2020-01-13 09:34:43 +01:00
Frédéric Junod
e4c98c58bd Merge pull request #10513 from fgubler/fgubler/constrain-only-center-flag-fix-notes
fixed flag-name in upgrade notes
2020-01-13 09:34:21 +01:00
dependabot-preview[bot]
6d5602b569 Bump front-matter from 3.0.2 to 3.1.0
Bumps [front-matter](https://github.com/jxson/front-matter) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/jxson/front-matter/releases)
- [Commits](https://github.com/jxson/front-matter/compare/v3.0.2...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:33:08 +00:00
dependabot-preview[bot]
f79cc24ff3 Bump handlebars from 4.5.3 to 4.7.1
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.5.3 to 4.7.1.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/v4.7.1/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.5.3...v4.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:33:06 +00:00
Frédéric Junod
b2e81109b4 Merge pull request #10515 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.8.2
Bump @babel/preset-env from 7.7.7 to 7.8.2
2020-01-13 09:32:43 +01:00
Frédéric Junod
afe97ef04e Merge pull request #10517 from openlayers/dependabot/npm_and_yarn/karma-firefox-launcher-1.3.0
Bump karma-firefox-launcher from 1.2.0 to 1.3.0
2020-01-13 09:32:16 +01:00
Frédéric Junod
ab607eb02a Merge pull request #10519 from openlayers/dependabot/npm_and_yarn/babel/core-7.8.0
Bump @babel/core from 7.7.7 to 7.8.0
2020-01-13 09:31:50 +01:00
Frédéric Junod
86cef49368 Merge pull request #10520 from openlayers/dependabot/npm_and_yarn/globby-11.0.0
Bump globby from 10.0.1 to 11.0.0
2020-01-13 09:31:17 +01:00
Frédéric Junod
8e45a3378a Merge pull request #10521 from openlayers/dependabot/npm_and_yarn/rollup-plugin-terser-5.2.0
Bump rollup-plugin-terser from 5.1.3 to 5.2.0
2020-01-13 09:30:53 +01:00
Frédéric Junod
ec265a04c7 Merge pull request #10522 from openlayers/dependabot/npm_and_yarn/rollup-1.29.0
Bump rollup from 1.28.0 to 1.29.0
2020-01-13 09:30:34 +01:00
dependabot-preview[bot]
ea1070193e Bump sinon from 8.0.2 to 8.0.4
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.0.2 to 8.0.4.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v8.0.2...v8.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:10:42 +00:00
dependabot-preview[bot]
e9ab684ef3 Bump rollup from 1.28.0 to 1.29.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.28.0 to 1.29.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.28.0...v1.29.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:09:49 +00:00
dependabot-preview[bot]
87a953c4ec Bump rollup-plugin-terser from 5.1.3 to 5.2.0
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.1.3 to 5.2.0.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.1.3...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:09:06 +00:00
dependabot-preview[bot]
e05641b6b8 Bump globby from 10.0.1 to 11.0.0
Bumps [globby](https://github.com/sindresorhus/globby) from 10.0.1 to 11.0.0.
- [Release notes](https://github.com/sindresorhus/globby/releases)
- [Commits](https://github.com/sindresorhus/globby/compare/v10.0.1...v11.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:08:00 +00:00
dependabot-preview[bot]
bacc159fc6 Bump @babel/core from 7.7.7 to 7.8.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.7 to 7.8.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.7...v7.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:07:01 +00:00
dependabot-preview[bot]
8935cb509a Bump karma-firefox-launcher from 1.2.0 to 1.3.0
Bumps [karma-firefox-launcher](https://github.com/karma-runner/karma-firefox-launcher) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/karma-runner/karma-firefox-launcher/releases)
- [Changelog](https://github.com/karma-runner/karma-firefox-launcher/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma-firefox-launcher/compare/v1.2.0...v1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:05:32 +00:00
dependabot-preview[bot]
02931d54b5 Bump @babel/preset-env from 7.7.7 to 7.8.2
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.7 to 7.8.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.7...v7.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:03:35 +00:00
dependabot-preview[bot]
95a319a670 Bump terser-webpack-plugin from 2.3.1 to 2.3.2
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.3.1...v2.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 08:02:43 +00:00
Gubler, Florian
986e6d940c fixed flag-name in upgrade notes: "constrainOnlyCenter" instead of "constrainCenterOnly" 2020-01-13 08:45:29 +01:00
Andreas Hocevar
080ef7c56e Merge pull request #10504 from mike-000/patch-1
Fix for reset north when rotation is 360 degrees
2020-01-12 13:00:36 +01:00
Andreas Hocevar
810fab54ec Merge pull request #10510 from MoonE/clear-built-apidoc-before-running-jsdoc
Remove build/apidoc before running jsdoc again
2020-01-12 12:55:40 +01:00
Maximilian Krög
3bac2e49d1 Remove build/apidoc before running jsdoc again 2020-01-11 17:40:56 +01:00
mike-000
0512c690f8 Fix for reset north when rotation is 360 degrees
Animated reset north doesn't work and isn't needed if rotation is 360 degrees (or a multiple of 360)
2020-01-10 13:39:29 +00:00
Matt Walker
f3d94b3132 Fix lint error 2020-01-10 11:16:54 +00:00
Matt Walker
34dc538122 Stop events that originate with a removed target
As discussed in https://github.com/openlayers/openlayers/issues/6948#issuecomment-565375694

The check to see if the target is within the "page" uses the viewport as
the MapBrowserEventHandler instance adds it's listeners to the viewport.

Using Node.contains appears to have a slight performance benefit
over manually walking the DOM.
2020-01-10 10:48:15 +00:00
Andreas Hocevar
c851f6c6bf Merge pull request #10498 from gazza0/master
Fixing issue #10497 on behalf of LarryHuang
2020-01-09 14:10:53 +01:00
gazza0
88e3db4928 Merge pull request #1 from gazza0/gazza0-patch-1
Fixing issue #10497 on behalf of LarryHuang
2020-01-09 03:01:20 -08:00
gazza0
420e7d87ae Fixing issue #10497 on behalf of LarryHuang
Since Larry is not able to access github, i'm committing on behalf of him, explanation of the issue and he's original fix can be found https://github.com/openlayers/openlayers/issues/10497
2020-01-09 02:52:21 -08:00
Andreas Hocevar
44fab1000e Merge pull request #10496 from ahocevar/stopevent-dragging
Do not stop events when dragging
2020-01-09 09:52:57 +01:00
Andreas Hocevar
a4735e0700 Merge pull request #10478 from ahocevar/abort-without-dispose
Do not abort and dispose of tiles
2020-01-09 09:52:07 +01:00
Andreas Hocevar
b26f570cb7 Do not stop events when dragging 2020-01-08 21:39:29 +01:00
Andreas Hocevar
e2687da202 Merge pull request #10495 from danielklim/dlim/view-fit-typo
typo in view.fit
2020-01-08 12:57:40 +01:00
Andreas Hocevar
9f4dbd3c35 Reuse existing canvases from vector render tiles 2020-01-08 10:53:43 +01:00
Andreas Hocevar
5a8df1d4e2 We no longer need to increase the cache size 2020-01-08 10:53:42 +01:00
Andreas Hocevar
46d98201c3 Store source tiles on render tile instead of source 2020-01-08 10:53:42 +01:00
Dan Lim
21e9601d7b typo in view.fit 2020-01-07 16:12:06 -08:00
Tim Schaub
8125463e59 Merge pull request #10473 from mike-000/patch-1
Fix for undefined source in Vector layer
2020-01-06 18:25:11 -07:00
mike-000
cb665b7ea7 Simplify to return false if layer has no source 2020-01-06 17:31:38 +00:00
Frédéric Junod
c1c256040e Merge pull request #10484 from fredj/heatmap_gradient_update
Use a function to get the value of the gradient
2020-01-06 11:06:43 +01:00
Frederic Junod
5a1921d7bd Use a function to get the value of the gradient 2020-01-06 10:52:16 +01:00
Frédéric Junod
adea3b48dc Merge pull request #10480 from openlayers/dependabot/npm_and_yarn/mocha-7.0.0
Bump mocha from 6.2.2 to 7.0.0
2020-01-06 10:48:01 +01:00
Frédéric Junod
d60a153ca6 Merge pull request #10482 from openlayers/dependabot/npm_and_yarn/sinon-8.0.2
Bump sinon from 8.0.1 to 8.0.2
2020-01-06 10:47:19 +01:00
Frédéric Junod
d1ef920fab Merge pull request #10481 from openlayers/dependabot/npm_and_yarn/yargs-15.1.0
Bump yargs from 15.0.2 to 15.1.0
2020-01-06 10:46:59 +01:00
Frédéric Junod
ff2a33367d Merge pull request #10479 from openlayers/dependabot/npm_and_yarn/rollup-1.28.0
Bump rollup from 1.27.14 to 1.28.0
2020-01-06 10:46:28 +01:00
Olivier Guyot
6d092cf1a6 Merge pull request #10262 from bjornharrtell/lazy-dom-impl
Rework to make Document and XMLSerializer lazy and injectable
2020-01-06 09:37:17 +01:00
dependabot-preview[bot]
68de72d1cc Bump sinon from 8.0.1 to 8.0.2
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.0.1 to 8.0.2.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v8.0.1...v8.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-06 07:38:58 +00:00
dependabot-preview[bot]
780e4f5fbd Bump yargs from 15.0.2 to 15.1.0
Bumps [yargs](https://github.com/yargs/yargs) from 15.0.2 to 15.1.0.
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs/compare/v15.0.2...v15.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-06 07:38:20 +00:00
dependabot-preview[bot]
77c2c04ae6 Bump mocha from 6.2.2 to 7.0.0
Bumps [mocha](https://github.com/mochajs/mocha) from 6.2.2 to 7.0.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v6.2.2...v7.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-06 07:37:44 +00:00
dependabot-preview[bot]
c840d29f9f Bump rollup from 1.27.14 to 1.28.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.27.14 to 1.28.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.27.14...v1.28.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-06 07:36:59 +00:00
Björn Harrtell
05a5f162d4 Move logic from dom to xml module 2020-01-05 13:12:27 +01:00
Björn Harrtell
5b661ed84c Fix jsdoc 2020-01-05 13:00:44 +01:00
Björn Harrtell
bdc20e0293 Rework to register Document and add XMLSerializer 2020-01-05 13:00:44 +01:00
Björn Harrtell
fc46166821 Fix argument name mixup 2020-01-05 13:00:44 +01:00
Björn Harrtell
90d61033e0 Rework to make DOMImplementation lazy and injectable 2020-01-05 13:00:44 +01:00
Andreas Hocevar
2875685b3c Use TileCache instead of custom structure 2020-01-05 12:25:44 +01:00
Andreas Hocevar
ae1ee192f3 Avoid misleading bind argument 2020-01-05 12:09:46 +01:00
Andreas Hocevar
bec747e513 Remove unused argument and member 2020-01-05 12:08:43 +01:00
Andreas Hocevar
6affeb0beb Do not dispose VectorRenderTiles 2020-01-05 11:52:45 +01:00
Andreas Hocevar
da6eed850c Do not lock label cache entries 2020-01-05 11:24:46 +01:00
Andreas Hocevar
ae336f0a1b Remove disposeInternal of ImageTile and reproj/Tile 2020-01-05 00:13:05 +01:00
Andreas Hocevar
b91e1a893d Do not abort and dispose of tiles 2020-01-05 00:05:24 +01:00
mike-000
f48704cac4 Fix for undefined source in Vector layer
A source left or set undefined is equivalent to an empty source so treat it as such to prevent errors in prepareFrame
2020-01-01 21:04:12 +00:00
Tim Schaub
6063021792 Merge pull request #10461 from MoonE/apidocs-objecttypelink
Fix link in apidocs to ObjectEvent.
2019-12-31 00:27:27 -05:00
Tim Schaub
ada6ff7290 Merge pull request #10466 from openlayers/dependabot/npm_and_yarn/webpack-4.41.5
Bump webpack from 4.41.4 to 4.41.5
2019-12-31 00:25:10 -05:00
Tim Schaub
5b3338b6f7 Merge pull request #10467 from openlayers/dependabot/npm_and_yarn/sinon-8.0.1
Bump sinon from 8.0.0 to 8.0.1
2019-12-31 00:24:38 -05:00
dependabot-preview[bot]
e8a17376b6 Bump sinon from 8.0.0 to 8.0.1
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v8.0.0...v8.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-30 07:38:28 +00:00
dependabot-preview[bot]
58482c6c64 Bump webpack from 4.41.4 to 4.41.5
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.4 to 4.41.5.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.4...v4.41.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-30 07:37:37 +00:00
Maximilian Krög
9622a8ca93 Fix link in apidocs to ObjectEvent. 2019-12-27 23:35:19 +01:00
Olivier Guyot
e4ea272799 Merge pull request #10413 from MoonE/zoomsliderextent
Limit the ZoomSlider's range to the view's constrained resolution.
2019-12-23 14:59:19 +01:00
Olivier Guyot
b68d5e139d Merge pull request #10438 from jahow/prevent-layout-reflow
Avoid accessing the DOM to read the viewport size too often
2019-12-23 10:57:42 +01:00
Olivier Guyot
4440994ec8 Avoid recomputing the viewport size by reading the DOM everytime
Also clarify View#calculateExtent doc & remove the [data-view] attribute
on the viewport element (not needed anymore).
2019-12-23 10:47:54 +01:00
Andreas Hocevar
c66a19c9cc Merge pull request #10450 from openlayers/dependabot/npm_and_yarn/babel/core-7.7.7
Bump @babel/core from 7.7.5 to 7.7.7
2019-12-23 10:43:17 +01:00
Andreas Hocevar
7bcc8fc73e Merge pull request #10449 from openlayers/dependabot/npm_and_yarn/eslint-6.8.0
Bump eslint from 6.7.2 to 6.8.0
2019-12-23 10:42:44 +01:00
Andreas Hocevar
05bc7f00ca Merge pull request #10448 from openlayers/dependabot/npm_and_yarn/rollup-1.27.14
Bump rollup from 1.27.13 to 1.27.14
2019-12-23 10:42:00 +01:00
Olivier Guyot
0d9aec4b6b Merge pull request #10439 from jahow/webgl-add-rotation
WebGL points layer / add support for symbol rotation
2019-12-23 10:32:12 +01:00
dependabot-preview[bot]
3d3fe9f41b Bump rollup from 1.27.13 to 1.27.14
Bumps [rollup](https://github.com/rollup/rollup) from 1.27.13 to 1.27.14.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.27.13...v1.27.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 09:15:54 +00:00
Andreas Hocevar
daf8d0af6c Merge pull request #10447 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.7.7
Bump @babel/preset-env from 7.7.6 to 7.7.7
2019-12-23 10:14:33 +01:00
Andreas Hocevar
79232ea668 Merge pull request #10446 from openlayers/dependabot/npm_and_yarn/sinon-8.0.0
Bump sinon from 7.5.0 to 8.0.0
2019-12-23 10:13:58 +01:00
Andreas Hocevar
d7a331fc7c Merge pull request #10445 from openlayers/dependabot/npm_and_yarn/webpack-4.41.4
Bump webpack from 4.41.2 to 4.41.4
2019-12-23 09:50:26 +01:00
dependabot-preview[bot]
ada892322a Bump webpack from 4.41.2 to 4.41.4
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.2 to 4.41.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.2...v4.41.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 08:22:11 +00:00
Andreas Hocevar
c60fd4decd Merge pull request #10444 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-2.3.1
Bump terser-webpack-plugin from 2.3.0 to 2.3.1
2019-12-23 09:21:00 +01:00
Andreas Hocevar
739459f886 Merge pull request #10443 from openlayers/dependabot/npm_and_yarn/webpack-dev-server-3.10.1
Bump webpack-dev-server from 3.9.0 to 3.10.1
2019-12-23 09:20:20 +01:00
dependabot-preview[bot]
bcb78fe3a9 Bump @babel/core from 7.7.5 to 7.7.7
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.5 to 7.7.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.5...v7.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 07:54:01 +00:00
dependabot-preview[bot]
8496b5b4e0 Bump eslint from 6.7.2 to 6.8.0
Bumps [eslint](https://github.com/eslint/eslint) from 6.7.2 to 6.8.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.7.2...v6.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 07:53:34 +00:00
dependabot-preview[bot]
dd9643cc07 Bump @babel/preset-env from 7.7.6 to 7.7.7
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.6 to 7.7.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.6...v7.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 07:52:02 +00:00
dependabot-preview[bot]
28ae21e5dd Bump sinon from 7.5.0 to 8.0.0
Bumps [sinon](https://github.com/sinonjs/sinon) from 7.5.0 to 8.0.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v7.5.0...v8.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 07:51:13 +00:00
dependabot-preview[bot]
8838565629 Bump terser-webpack-plugin from 2.3.0 to 2.3.1
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.3.0...v2.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 07:49:51 +00:00
dependabot-preview[bot]
a4c3bce3b1 Bump webpack-dev-server from 3.9.0 to 3.10.1
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.9.0 to 3.10.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/v3.10.1/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.9.0...v3.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 07:49:09 +00:00
Maximilian Krög
33389969ce Limit the ZoomSlider's range to the view's constrained resolution. 2019-12-20 23:13:41 +01:00
Maximilian Krög
d7eaacf923 Small performance improvement by saving the calculated logarithm. 2019-12-20 23:13:19 +01:00
Olivier Guyot
33e24e9ce9 Updated webgl-points-layer example to add a style with rotation
Also made it so that the map re-renders continously, to be able to
use the ["time"] operator.
2019-12-20 21:54:06 +01:00
Olivier Guyot
6c46eb1dd0 Webgl / add support for a rotation parameter in LiteralStyle
The ShaderBuilder can now take a rotation expression.
2019-12-20 17:39:40 +01:00
Olivier Guyot
6f000e3155 Add missing documentation in ol/style/expressions 2019-12-20 17:13:15 +01:00
Andreas Hocevar
f08a2ab3d1 Merge pull request #10434 from mike-000/patch-6
Disable image smoothing for the DEM source in the Sea Level example
2019-12-19 09:39:58 +01:00
mike-000
caefe8c85b Disable image smoothing for the DEM source 2019-12-18 20:49:44 +00:00
mike-000
977b89c99d Disable image smoothing for the DEM source 2019-12-18 20:40:20 +00:00
Tim Schaub
2b45bc054e Merge pull request #10417 from mike-000/patch-3
Replace Bing layer with MapTiler
2019-12-16 19:43:12 -07:00
Frédéric Junod
23251947be Merge pull request #10425 from openlayers/dependabot/npm_and_yarn/elm-pep-1.0.3
Bump elm-pep from 1.0.2 to 1.0.3
2019-12-16 10:35:50 +01:00
Frédéric Junod
3da3339c03 Merge pull request #10427 from openlayers/dependabot/npm_and_yarn/webpack-cli-3.3.10
Bump webpack-cli from 3.3.2 to 3.3.10
2019-12-16 10:35:21 +01:00
Frédéric Junod
0632db0851 Merge pull request #10426 from openlayers/dependabot/npm_and_yarn/copy-webpack-plugin-5.1.1
Bump copy-webpack-plugin from 5.0.5 to 5.1.1
2019-12-16 10:35:05 +01:00
Frédéric Junod
21831fc098 Merge pull request #10424 from openlayers/dependabot/npm_and_yarn/eslint-6.7.2
Bump eslint from 6.7.1 to 6.7.2
2019-12-16 10:34:41 +01:00
Frédéric Junod
5bcfb9c10a Merge pull request #10423 from openlayers/dependabot/npm_and_yarn/marked-0.8.0
Bump marked from 0.7.0 to 0.8.0
2019-12-16 10:34:25 +01:00
Frédéric Junod
e74000fbc0 Merge pull request #10422 from openlayers/dependabot/npm_and_yarn/url-polyfill-1.1.7
Bump url-polyfill from 1.1.5 to 1.1.7
2019-12-16 10:34:00 +01:00
Frédéric Junod
1ab8445d29 Merge pull request #10421 from openlayers/dependabot/npm_and_yarn/rollup-plugin-terser-5.1.3
Bump rollup-plugin-terser from 5.1.2 to 5.1.3
2019-12-16 08:48:13 +01:00
Frédéric Junod
84c2743879 Merge pull request #10420 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-2.3.0
Bump terser-webpack-plugin from 2.2.2 to 2.3.0
2019-12-16 08:47:56 +01:00
Frédéric Junod
7649f2484a Merge pull request #10419 from openlayers/dependabot/npm_and_yarn/rollup-1.27.13
Bump rollup from 1.27.9 to 1.27.13
2019-12-16 08:46:40 +01:00
Frédéric Junod
b86ef23c99 Merge pull request #10418 from openlayers/dependabot/npm_and_yarn/babel-loader-8.0.6
Bump babel-loader from 8.0.5 to 8.0.6
2019-12-16 08:46:15 +01:00
dependabot-preview[bot]
1e2f3cbfbb Bump webpack-cli from 3.3.2 to 3.3.10
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.2 to 3.3.10.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.10/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.2...v3.3.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:43:39 +00:00
dependabot-preview[bot]
c04b234be4 Bump copy-webpack-plugin from 5.0.5 to 5.1.1
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 5.0.5 to 5.1.1.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v5.0.5...v5.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:42:53 +00:00
dependabot-preview[bot]
6113121d53 Bump elm-pep from 1.0.2 to 1.0.3
Bumps [elm-pep](https://github.com/ahocevar/elm-pep) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/ahocevar/elm-pep/releases)
- [Commits](https://github.com/ahocevar/elm-pep/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:42:11 +00:00
dependabot-preview[bot]
e9e6868b5c Bump eslint from 6.7.1 to 6.7.2
Bumps [eslint](https://github.com/eslint/eslint) from 6.7.1 to 6.7.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.7.1...v6.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:41:33 +00:00
dependabot-preview[bot]
21fbf29b67 Bump marked from 0.7.0 to 0.8.0
Bumps [marked](https://github.com/markedjs/marked) from 0.7.0 to 0.8.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.7.0...v0.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:40:44 +00:00
dependabot-preview[bot]
ac7a98933e Bump url-polyfill from 1.1.5 to 1.1.7
Bumps [url-polyfill](https://github.com/lifaon74/url-polyfill) from 1.1.5 to 1.1.7.
- [Release notes](https://github.com/lifaon74/url-polyfill/releases)
- [Commits](https://github.com/lifaon74/url-polyfill/commits/1.1.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:39:51 +00:00
dependabot-preview[bot]
67a8afd4ac Bump rollup-plugin-terser from 5.1.2 to 5.1.3
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.1.2 to 5.1.3.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.1.2...v5.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:39:02 +00:00
dependabot-preview[bot]
7d90b5ffb7 Bump terser-webpack-plugin from 2.2.2 to 2.3.0
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.2.2 to 2.3.0.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.2.2...v2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:38:09 +00:00
dependabot-preview[bot]
ad6247fc6a Bump rollup from 1.27.9 to 1.27.13
Bumps [rollup](https://github.com/rollup/rollup) from 1.27.9 to 1.27.13.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.27.9...v1.27.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:37:18 +00:00
dependabot-preview[bot]
b39cb7c00e Bump babel-loader from 8.0.5 to 8.0.6
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.0.5 to 8.0.6.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.0.5...v8.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 07:36:32 +00:00
mike-000
3bf1931f39 Replace Bing layer with MapTiler 2019-12-15 16:15:51 +00:00
mike-000
122140e9f0 Replace Bing layer with MapTiler 2019-12-15 16:04:46 +00:00
Andreas Hocevar
4c0bdda8b8 Merge pull request #10415 from mike-000/patch-1
Control button span element pointer events
2019-12-14 23:42:12 +01:00
mike-000
ab8e80fc98 Control button span element pointer events
Prevent pointer events on span elements within control buttons
2019-12-14 13:47:05 +00:00
Olivier Guyot
4a8a7619d5 Merge pull request #10409 from jahow/fix-heatmap-pixelratio
Improve viewport computation in WebGL Postprocessing
2019-12-13 12:13:17 +01:00
Olivier Guyot
cae32edb02 WebGL Postprocess / fix viewport computation with pixelratio != 1 2019-12-13 10:34:31 +01:00
Olivier Guyot
ca0ce4986d Merge pull request #10119 from mike-000/patch-8
Add crossOrigin option to ol/format/KML for icons
2019-12-13 09:26:56 +01:00
Olivier Guyot
6537fecc69 Merge pull request #10181 from roemhildtg/master
add tags to example docs
2019-12-13 09:25:50 +01:00
Gregg Roemhildt
f8b145f82a Using label classes on the anchor
Co-Authored-By: Olivier Guyot <olivier.guyot@camptocamp.com>
2019-12-12 20:03:21 -06:00
mike-000
6596a988c0 Add crossOrigin option for icons
Avoid unnecessary tests by using only one test for the default icon crossOrigin,.  In other cases ensure that the specified option is set.
2019-12-12 17:50:50 +00:00
mike-000
f13ebbee3f Add crossOrigin option for icons
Add  * @this {KML} to functions invoked using .call
2019-12-12 17:21:14 +00:00
Andreas Hocevar
6684bc221a Merge pull request #10407 from ahocevar/renderfeature-extent
Use render feature compatible extent check
2019-12-12 08:42:59 +01:00
Andreas Hocevar
c1857efd81 Use render feature compatible extent check 2019-12-11 22:21:15 +01:00
Andreas Hocevar
8e0a8114d7 Merge pull request #10340 from mike-000/patch-7
Draw circles and custom geometry in user coordinates
2019-12-11 10:07:12 +01:00
mike-000
2e544cb677 Circles and custom geometry in user coordinates
Pass the view projection to the geometry function so circles and other custom geometry can be given the expected shape/size in the view while being defined in user coordinates.

Add tests to draw circles in a user projection and along both axes
Draw regular polygon in a user projection
Draw box in a user projection
2019-12-10 19:47:37 +00:00
Andreas Hocevar
e361391503 Merge pull request #10393 from ahocevar/vectortile-getfeaturesinextent
getFeaturesInExtent function for ol/source/VectorTile
2019-12-10 15:24:54 +01:00
Andreas Hocevar
bbc1de280d getFeaturesInExtent() for VectorTile source 2019-12-10 14:07:37 +01:00
Andreas Hocevar
f460198850 Simpler tileLoadFunction for vector tiles 2019-12-10 13:50:35 +01:00
Andreas Hocevar
f52f72dd96 Merge pull request #10402 from ahocevar/no-preventdefault
Do not preventDefault on pointerdown
2019-12-10 13:40:53 +01:00
Andreas Hocevar
8911b96d3c Do not preventDefault on pointerdown 2019-12-10 12:25:23 +01:00
Andreas Hocevar
38b278339d Merge pull request #10269 from mike-000/patch-2
Replace the BNG layer source in the Raster Reprojection example
2019-12-10 09:20:50 +01:00
Andreas Hocevar
02b34a4c23 Merge pull request #10394 from ahocevar/cleanup-maprenderer
Remove map renderer element when disposing
2019-12-09 09:30:55 +01:00
Andreas Hocevar
ff02dd6653 Merge pull request #10391 from ahocevar/box-shadow
Use box-shadow css instead of filter
2019-12-09 09:29:47 +01:00
Andreas Hocevar
dc3e515c0e Merge pull request #10392 from ahocevar/interim-vectortiles
Fix interim tile handing for vector tiles
2019-12-09 09:29:01 +01:00
Frédéric Junod
9939f082d0 Merge pull request #10399 from openlayers/dependabot/npm_and_yarn/rollup-1.27.9
Bump rollup from 1.25.1 to 1.27.9
2019-12-09 08:57:31 +01:00
Frédéric Junod
36deaf9fd1 Merge pull request #10398 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-2.2.2
Bump terser-webpack-plugin from 2.2.1 to 2.2.2
2019-12-09 08:57:05 +01:00
Frédéric Junod
211368436f Merge pull request #10397 from openlayers/dependabot/npm_and_yarn/babel/core-7.7.5
Bump @babel/core from 7.7.4 to 7.7.5
2019-12-09 08:56:38 +01:00
Frédéric Junod
c3773c1419 Merge pull request #10396 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.7.6
Bump @babel/preset-env from 7.7.4 to 7.7.6
2019-12-09 08:56:10 +01:00
dependabot-preview[bot]
dcadbf374a Bump rollup from 1.25.1 to 1.27.9
Bumps [rollup](https://github.com/rollup/rollup) from 1.25.1 to 1.27.9.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.25.1...v1.27.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-09 07:33:33 +00:00
dependabot-preview[bot]
29d34b8694 Bump terser-webpack-plugin from 2.2.1 to 2.2.2
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.2.1...v2.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-09 07:32:31 +00:00
dependabot-preview[bot]
da2d743023 Bump @babel/core from 7.7.4 to 7.7.5
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.4 to 7.7.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.7.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-09 07:31:51 +00:00
dependabot-preview[bot]
c3d31c796f Bump @babel/preset-env from 7.7.4 to 7.7.6
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.4 to 7.7.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.7.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-09 07:30:48 +00:00
Andreas Hocevar
cefc57622b Remove map renderer element when disposing 2019-12-08 17:52:28 +01:00
Andreas Hocevar
5f6ea987a5 Merge pull request #10380 from mike-000/patch-5
Adjust examples for layer canvas pixel ratio and rotation
2019-12-07 16:52:26 +01:00
Andreas Hocevar
174dea3232 Fix interim tile handing for vector tiles 2019-12-07 15:18:18 +01:00
Andreas Hocevar
d86d4db813 Use boxe-shadow css instead of filter 2019-12-07 13:53:28 +01:00
Frédéric Junod
f9f8f9c7c5 Merge pull request #10384 from mike-000/patch-4
Include Transform typedef in API
2019-12-06 09:42:00 +01:00
Andreas Hocevar
29c55aacae Merge pull request #10385 from walkermatt/rbush
Import transpiled rbush
2019-12-05 17:06:24 +01:00
Matt Walker
a389903749 Import transpiled rbush. Resolves #10379 2019-12-05 12:09:42 +00:00
mike-000
35b2a92c10 Include Transform typedef in API 2019-12-05 12:06:03 +00:00
mike-000
2790d50660 Adjust for layer canvas rotation
replace missed lines
2019-12-04 23:47:12 +00:00
mike-000
b4ae4ab86f Adjust for layer canvas rotation 2019-12-04 23:08:29 +00:00
mike-000
aaae50e689 Adjust for layer canvas pixel ratio and rotation 2019-12-04 23:04:44 +00:00
mike-000
10f9a70d5f Adjust for layer canvas pixel ratio and rotation 2019-12-04 22:59:16 +00:00
Andreas Hocevar
fb73bbaa00 Merge pull request #10363 from ahocevar/svg-layer
Interactive SVG layer example
2019-12-03 14:51:37 +01:00
Andreas Hocevar
d3b492d175 Interactive SVG layer example 2019-12-03 14:39:44 +01:00
Olivier Guyot
3530b4cf12 Merge pull request #10120 from mike-000/patch-9
Resolve constraints using anchor if following a cancelled animation
2019-12-03 09:37:48 +01:00
Tim Schaub
b1ebd03244 Merge pull request #10365 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.7.4
Bump @babel/preset-env from 7.6.3 to 7.7.4
2019-12-02 14:37:57 -07:00
Tim Schaub
f6bb0a3ad6 Merge pull request #10366 from openlayers/dependabot/npm_and_yarn/karma-coverage-istanbul-reporter-2.1.1
Bump karma-coverage-istanbul-reporter from 2.1.0 to 2.1.1
2019-12-02 14:37:37 -07:00
Tim Schaub
b1b3544f4d Merge pull request #10367 from openlayers/dependabot/npm_and_yarn/coveralls-3.0.9
Bump coveralls from 3.0.7 to 3.0.9
2019-12-02 14:37:16 -07:00
Tim Schaub
3865a7c23a Merge pull request #10368 from openlayers/dependabot/npm_and_yarn/sinon-7.5.0
Bump sinon from 7.3.2 to 7.5.0
2019-12-02 14:36:48 -07:00
Tim Schaub
3f82a8be77 Merge pull request #10369 from openlayers/dependabot/npm_and_yarn/babel/core-7.7.4
Bump @babel/core from 7.7.2 to 7.7.4
2019-12-02 14:36:21 -07:00
Tim Schaub
611946aa6f Merge pull request #10370 from mike-000/patch-5
Replace Bing layer with MapTiler
2019-12-02 14:35:29 -07:00
mike-000
aaebab2831 Replace Bing layer with MapTiler 2019-12-02 16:40:16 +00:00
dependabot-preview[bot]
66c1112c84 Bump @babel/core from 7.7.2 to 7.7.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.2 to 7.7.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.2...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-02 07:31:50 +00:00
dependabot-preview[bot]
45d1e8f032 Bump sinon from 7.3.2 to 7.5.0
Bumps [sinon](https://github.com/sinonjs/sinon) from 7.3.2 to 7.5.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v7.3.2...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-02 07:31:23 +00:00
dependabot-preview[bot]
05169ccd1f Bump coveralls from 3.0.7 to 3.0.9
Bumps [coveralls](https://github.com/nickmerwin/node-coveralls) from 3.0.7 to 3.0.9.
- [Release notes](https://github.com/nickmerwin/node-coveralls/releases)
- [Commits](https://github.com/nickmerwin/node-coveralls/commits/3.0.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-02 07:30:40 +00:00
dependabot-preview[bot]
bcaf3b5a9b Bump karma-coverage-istanbul-reporter from 2.1.0 to 2.1.1
Bumps [karma-coverage-istanbul-reporter](https://github.com/mattlewis92/karma-coverage-istanbul-reporter) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/releases)
- [Changelog](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/compare/v2.1.0...v2.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-02 07:30:08 +00:00
dependabot-preview[bot]
8e9c8e8707 Bump @babel/preset-env from 7.6.3 to 7.7.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.3 to 7.7.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.3...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-02 07:29:21 +00:00
Andreas Hocevar
c70e385398 Merge pull request #10362 from ahocevar/leftover-from-10332
Remove line that was accidently added with #10332
2019-12-01 11:34:32 +01:00
Andreas Hocevar
2b6925dc1e Remove line that was accidently added with #10332 2019-11-30 18:16:54 +01:00
Andreas Hocevar
057650fe7d Merge pull request #10309 from ahocevar/vectortile-rendermode-vector
Bring back vector render mode for vector tile layers
2019-11-29 11:51:38 +01:00
Andreas Hocevar
10a6284b0b Merge pull request #10332 from ahocevar/no-touch-action-css
Conditional default prevention instead of touch-action: none
2019-11-29 09:52:29 +01:00
Andreas Hocevar
f0a32e11d5 Fix typo
Co-Authored-By: Frédéric Junod <frederic.junod@camptocamp.com>
2019-11-29 09:46:46 +01:00
Andreas Hocevar
0a319ea2a2 Merge pull request #10301 from ahocevar/getfeatures-fixes
Create hit detection data per layer and without requestAnimationFrame
2019-11-29 09:44:09 +01:00
Andreas Hocevar
75103e08ed Merge pull request #10347 from adube/utfgrid-source-handle-load-state-loaded
Set utfgrid tile as loaded after load instead of empty
2019-11-27 18:14:09 +01:00
Alexandre Dubé
d87caed50f Set utfgrid tile as loaded after load instead of empty 2019-11-27 11:37:52 -05:00
Andreas Hocevar
cda01cfeb9 Merge pull request #10344 from ahocevar/preemptive-tilejson
Fix lazy UTFGrid loading
2019-11-27 10:21:30 +01:00
Andreas Hocevar
79074d31c1 Fix lazy UTFGrid loading 2019-11-27 09:44:43 +01:00
Andreas Hocevar
e2c4670d6a Merge pull request #10321 from greggian/touch-dragbox
Support touch events for DragBox interaction
2019-11-26 18:34:28 +01:00
Andreas Hocevar
e881e4bb99 Merge pull request #10315 from mike-000/patch-5
Replace Bing sources in some examples
2019-11-26 18:32:44 +01:00
mike-000
28818e5b4e Replace Bing layers with MapTiler 2019-11-26 17:06:14 +00:00
Andreas Hocevar
a66734dd20 Merge pull request #10330 from greggian/modify-circle
Fix modifying circle geometries
2019-11-26 17:42:33 +01:00
Andreas Hocevar
7c4c4c47ec Merge pull request #10337 from openlayers/dependabot/npm_and_yarn/fs-extra-8.1.0
Bump fs-extra from 8.0.1 to 8.1.0
2019-11-25 10:23:14 +01:00
Andreas Hocevar
0e18a7007f Merge pull request #10336 from openlayers/dependabot/npm_and_yarn/eslint-6.7.1
Bump eslint from 6.6.0 to 6.7.1
2019-11-25 10:22:45 +01:00
dependabot-preview[bot]
ec7fc3e680 Bump eslint from 6.6.0 to 6.7.1
Bumps [eslint](https://github.com/eslint/eslint) from 6.6.0 to 6.7.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.6.0...v6.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-25 08:42:51 +00:00
Andreas Hocevar
354d9aea8b Merge pull request #10335 from openlayers/dependabot/npm_and_yarn/yargs-15.0.2
Bump yargs from 14.2.0 to 15.0.2
2019-11-25 09:40:44 +01:00
Andreas Hocevar
3e7d0650b1 Merge pull request #10334 from openlayers/dependabot/npm_and_yarn/webpack-dev-middleware-3.7.2
Bump webpack-dev-middleware from 3.6.2 to 3.7.2
2019-11-25 09:40:09 +01:00
Andreas Hocevar
36586ec4a1 Merge pull request #10333 from openlayers/dependabot/npm_and_yarn/copy-webpack-plugin-5.0.5
Bump copy-webpack-plugin from 5.0.4 to 5.0.5
2019-11-25 09:39:42 +01:00
dependabot-preview[bot]
46f32d2387 Bump fs-extra from 8.0.1 to 8.1.0
Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 8.0.1 to 8.1.0.
- [Release notes](https://github.com/jprichardson/node-fs-extra/releases)
- [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jprichardson/node-fs-extra/commits/8.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-25 07:33:37 +00:00
dependabot-preview[bot]
6e3fd19b89 Bump yargs from 14.2.0 to 15.0.2
Bumps [yargs](https://github.com/yargs/yargs) from 14.2.0 to 15.0.2.
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs/compare/v14.2.0...v15.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-25 07:32:19 +00:00
dependabot-preview[bot]
0d4bbd69fc Bump webpack-dev-middleware from 3.6.2 to 3.7.2
Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 3.6.2 to 3.7.2.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v3.6.2...v3.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-25 07:31:27 +00:00
dependabot-preview[bot]
6906784319 Bump copy-webpack-plugin from 5.0.4 to 5.0.5
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 5.0.4 to 5.0.5.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v5.0.4...v5.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-25 07:30:37 +00:00
Andreas Hocevar
88b8b2f7cb Conditional default prevention instead of touch-action: none 2019-11-25 01:09:05 +01:00
Greg Gianforcaro
6bada6ab98 Add test modifying circle with snap enabled 2019-11-23 16:11:27 -05:00
Greg Gianforcaro
93d3ddb033 Fix modifying circle geometries
The Snap interaction may have altered the event coordinate, so Modify
should use the event coordinate whenever available.

Resolves #10316
2019-11-23 00:36:42 -05:00
Greg Gianforcaro
d99c77b992 Update DragBox jsdoc
- update the typedef to change the condition default value to {@link ol/events/condition~mouseActionButton}
- remove 'This interaction is only supported for mouse devices' comment
2019-11-22 16:35:31 -05:00
Andreas Hocevar
0ed57b8b7c Merge pull request #10318 from ahocevar/elm-pep
Use a minimalist pointer events polyfill
2019-11-21 14:45:34 +01:00
Andreas Hocevar
a990b8e0bf Merge pull request #10322 from mike-000/patch-6
Update tile grid option descriptions
2019-11-21 00:10:27 +01:00
mike-000
8865f22020 Fix trailing space 2019-11-20 18:28:59 +00:00
mike-000
fb7060a4d0 Update tile grid option descriptions
In version 6 coordinate increase downwards.  Revise the description for "sizes" to better distinguish zoom level and overall grid extents.  Remove reference to the "widths" options which was deprecated over 4 years ago.
2019-11-20 18:15:31 +00:00
mike-000
c3153075b2 Update tile grid option descriptions
In version 6 coordinate increase downwards.  Add a description for "sizes"
2019-11-20 18:02:42 +00:00
Greg Gianforcaro
2df22af3ca Update DragBox to use only condition for filtering
- Remove mouseOnly and mouseActionButton hardcoded filters
- Default condition to mouseActionButton
2019-11-20 11:01:57 -05:00
Andreas Hocevar
ae1e8b662d Update package-lock.json 2019-11-20 07:59:32 +01:00
Andreas Hocevar
569deddd06 Use elm-pep instead of PEP as pointer events polyfill 2019-11-20 07:59:32 +01:00
Andreas Hocevar
3e31551962 Improved tests 2019-11-20 00:52:18 +01:00
Andreas Hocevar
9317ad850e Create hit detection data per layer and without requestAnimationFrame 2019-11-20 00:50:43 +01:00
Andreas Hocevar
32932a7fd3 Merge pull request #10308 from ahocevar/hitdetect-index
Fix feature lookup after removal of alpha
2019-11-19 08:46:55 +01:00
Olivier Guyot
5d61d556a0 Merge pull request #10310 from brianhelba/overview-rotation
Ensure that OverviewMap respects the initial rotation of attached Maps
2019-11-18 16:40:54 +01:00
Brian Helba
c5ad886d7c Ensure that OverviewMap respects the initial rotation of attached Maps 2019-11-18 05:33:28 -05:00
Andreas Hocevar
cf6cd09f58 Bring back vector render mode for vector tile layers 2019-11-18 10:40:05 +01:00
Andreas Hocevar
3f8164250c Merge pull request #10306 from openlayers/dependabot/npm_and_yarn/puppeteer-2.0.0
Bump puppeteer from 1.20.0 to 2.0.0
2019-11-18 10:33:25 +01:00
Andreas Hocevar
bb6c02ae57 Update reference images 2019-11-18 10:19:53 +01:00
dependabot-preview[bot]
e5f5177969 Bump puppeteer from 1.20.0 to 2.0.0
Bumps [puppeteer](https://github.com/GoogleChrome/puppeteer) from 1.20.0 to 2.0.0.
- [Release notes](https://github.com/GoogleChrome/puppeteer/releases)
- [Commits](https://github.com/GoogleChrome/puppeteer/compare/v1.20.0...v2.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-18 08:45:04 +00:00
Andreas Hocevar
b2e5098311 Merge pull request #10307 from openlayers/dependabot/npm_and_yarn/babel/core-7.7.2
Bump @babel/core from 7.6.4 to 7.7.2
2019-11-18 09:43:34 +01:00
Andreas Hocevar
31854fd882 Merge pull request #10305 from openlayers/dependabot/npm_and_yarn/proj4-2.6.0
Bump proj4 from 2.5.0 to 2.6.0
2019-11-18 09:43:03 +01:00
Andreas Hocevar
331dd7e1d7 Merge pull request #10304 from openlayers/dependabot/npm_and_yarn/handlebars-4.5.3
Bump handlebars from 4.4.5 to 4.5.3
2019-11-18 09:42:31 +01:00
Andreas Hocevar
ff17156c8f Merge pull request #10303 from openlayers/dependabot/npm_and_yarn/glob-7.1.6
Bump glob from 7.1.5 to 7.1.6
2019-11-18 09:42:04 +01:00
Andreas Hocevar
a75c18330d Merge pull request #10302 from ahocevar/sign
Do not use Math.sign() to support very old browsers
2019-11-18 08:58:35 +01:00
Andreas Hocevar
d0b4967ec0 Fix feature lookup after removal of alpha 2019-11-18 08:56:20 +01:00
dependabot-preview[bot]
b6185981c0 Bump @babel/core from 7.6.4 to 7.7.2
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.4 to 7.7.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.4...v7.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-18 07:38:30 +00:00
dependabot-preview[bot]
90bb31d81e Bump proj4 from 2.5.0 to 2.6.0
Bumps [proj4](https://github.com/proj4js/proj4js) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/proj4js/proj4js/releases)
- [Changelog](https://github.com/proj4js/proj4js/blob/master/changelog.md)
- [Commits](https://github.com/proj4js/proj4js/compare/2.5.0...2.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-18 07:37:19 +00:00
dependabot-preview[bot]
4aabfb694d Bump handlebars from 4.4.5 to 4.5.3
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.4.5 to 4.5.3.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.5...v4.5.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-18 07:36:47 +00:00
dependabot-preview[bot]
1641114c6a Bump glob from 7.1.5 to 7.1.6
Bumps [glob](https://github.com/isaacs/node-glob) from 7.1.5 to 7.1.6.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/master/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.1.5...v7.1.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-18 07:35:46 +00:00
Andreas Hocevar
3cca945002 Do not use Math.sign() to support very old browsers 2019-11-18 07:54:20 +01:00
Andreas Hocevar
f784fe6e42 Merge pull request #10295 from ahocevar/hitdetect-no-style
Do not fail when hit detecting  features without style
2019-11-14 16:03:13 +01:00
Andreas Hocevar
fcd98774a0 Do not fail when hit detecting features without style 2019-11-14 14:32:11 +01:00
Andreas Hocevar
54c86b1a04 Merge pull request #10293 from ahocevar/vectortile-getfeatures
Do not hit detect while tile is loading
2019-11-14 11:03:35 +01:00
Andreas Hocevar
818113e3ce Do not hit detect while tile is loading 2019-11-14 10:30:13 +01:00
Frédéric Junod
47216505de Merge pull request #10292 from jomue/patch-1
Fix typo in jsdoc in ol/source/WMTS
2019-11-14 09:11:21 +01:00
Andreas Hocevar
0a4c9edde7 Merge pull request #10291 from ahocevar/tabindex
tabindex without focus condition
2019-11-14 09:07:37 +01:00
Andreas Hocevar
30c4ce51b2 Merge pull request #10286 from ahocevar/passive
Use passive option to avoid Chrome warning
2019-11-14 09:06:50 +01:00
Jonas
5dbd1e4cbb Fix typo in jsdoc 2019-11-14 08:50:35 +01:00
Andreas Hocevar
643a3ad86b tabindex without focux condition 2019-11-13 23:24:53 +01:00
Andreas Hocevar
fab8a449c3 Use passive option to avoid Chrome warning 2019-11-13 11:08:44 +01:00
Tim Schaub
8b036ba96c Merge pull request #10285 from mike-000/patch-3
Fix WMS GetLegendGraphic example codesandbox error
2019-11-12 21:14:11 -07:00
mike-000
4fb301e3e5 Fix codesandbox error
src="" is not needed and causes an error when the example is opened in codesandbox
2019-11-12 16:38:14 +00:00
Frédéric Junod
9478cb1945 Merge pull request #10283 from fredj/targetNotEditable
Use the originalEvent in the targetNotEditable condition
2019-11-12 08:24:20 +01:00
Andreas Hocevar
86b2026f54 Merge pull request #10280 from openlayers/dependabot/npm_and_yarn/rollup-plugin-commonjs-10.1.0
Bump rollup-plugin-commonjs from 10.0.0 to 10.1.0
2019-11-11 20:13:40 +01:00
Andreas Hocevar
c7a0512397 Merge pull request #10279 from openlayers/dependabot/npm_and_yarn/rollup-plugin-terser-5.1.2
Bump rollup-plugin-terser from 5.0.0 to 5.1.2
2019-11-11 20:13:10 +01:00
Andreas Hocevar
e1f707145b Merge pull request #10278 from openlayers/dependabot/npm_and_yarn/eslint-6.6.0
Bump eslint from 6.0.0 to 6.6.0
2019-11-11 20:12:36 +01:00
Andreas Hocevar
434096ed9a Merge pull request #10277 from openlayers/dependabot/npm_and_yarn/karma-webpack-4.0.2
Bump karma-webpack from 4.0.0-rc.6 to 4.0.2
2019-11-11 20:11:59 +01:00
Andreas Hocevar
241e695f7f Merge pull request #10276 from openlayers/dependabot/npm_and_yarn/webpack-dev-server-3.9.0
Bump webpack-dev-server from 3.3.1 to 3.9.0
2019-11-11 20:11:25 +01:00
Frederic Junod
fc7cb5cd51 Use the originalEvent in the targetNotEditable condition 2019-11-11 14:41:39 +01:00
Frédéric Junod
79a3091ba4 Merge pull request #10282 from jansule/patch-1
Fix documentation of Stroke.lineDash default value
2019-11-11 12:41:40 +01:00
Jan Suleiman
2581252f88 Fix documentation of Stroke.lineDash default value
Documentation states that default value of lineDash is `undefined`, but it is `null` actually.
2019-11-11 11:39:26 +01:00
dependabot-preview[bot]
e016af83ee Bump rollup-plugin-commonjs from 10.0.0 to 10.1.0
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 10.0.0 to 10.1.0.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v10.0.0...v10.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 10:17:57 +00:00
dependabot-preview[bot]
b65249326f Bump rollup-plugin-terser from 5.0.0 to 5.1.2
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.0.0 to 5.1.2.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.0.0...v5.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 10:16:50 +00:00
dependabot-preview[bot]
5c24fc8514 Bump eslint from 6.0.0 to 6.6.0
Bumps [eslint](https://github.com/eslint/eslint) from 6.0.0 to 6.6.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.0.0...v6.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 10:15:53 +00:00
dependabot-preview[bot]
0c052bf67c Bump karma-webpack from 4.0.0-rc.6 to 4.0.2
Bumps [karma-webpack](https://github.com/webpack-contrib/karma-webpack) from 4.0.0-rc.6 to 4.0.2.
- [Release notes](https://github.com/webpack-contrib/karma-webpack/releases)
- [Changelog](https://github.com/webpack-contrib/karma-webpack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/karma-webpack/compare/v4.0.0-rc.6...v4.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 10:14:56 +00:00
dependabot-preview[bot]
ecb42824f2 Bump webpack-dev-server from 3.3.1 to 3.9.0
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.3.1 to 3.9.0.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.3.1...v3.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 10:13:46 +00:00
mike-000
cf72a649cc Replace BNG layer source
The MapTiler MiniScale source used for the BNG layer is no longer working.  The data continues to be available via ESRI UK https://www.arcgis.com/home/item.html?id=5b5ff94ca7414a26b75e0d337a023d38
2019-11-08 15:52:39 +00:00
Frédéric Junod
6fe5c88614 Merge pull request #10259 from fredj/abortDrawing
Remove all the sketch features in abortDrawing
2019-11-08 09:35:33 +01:00
Frédéric Junod
6f6551ad75 Merge pull request #10265 from fredj/update_operators_doc_in_example
Update operators doc in WebGL points layer example
2019-11-07 15:31:05 +01:00
Frederic Junod
59faeff1bf Update operators doc in WebGL points layer example
The text is a copy/paste from `ol/style/expressions`
2019-11-07 15:05:57 +01:00
Andreas Hocevar
366d548b91 Merge pull request #10256 from ahocevar/no-measuretextwidth-bypass
Do not bypass measureTextWidth
2019-11-07 10:30:52 +01:00
Frédéric Junod
222a344ae9 Merge pull request #10264 from fredj/webgl_var
Remove unused variable from vertex shader
2019-11-07 09:22:34 +01:00
Olivier Guyot
3d1cef9aa2 Merge pull request #10257 from brianhelba/patch-1
Allow View.adjust* methods to take a null opt_anchor
2019-11-07 09:10:11 +01:00
Olivier Guyot
3850bd1083 Merge pull request #10261 from jahow/webgl-fix-ff-warning
WebGL / do not throw error when shader compilation gives a warning
2019-11-07 09:09:46 +01:00
Frederic Junod
5c023adc08 Remove unused variable from vertex shader 2019-11-07 09:02:50 +01:00
Olivier Guyot
ae66471e78 Webgl renderer / hide shader compile errors
Turns out there are sometimes errors that will not prevent the
shader from functioning normally. As such, it is not possible
to simply throw when there are errors/warnings.

Since we are not logging to the console, these errors will have to stay hidden
unless the user requests them explicitly.
2019-11-06 21:40:39 +01:00
Frederic Junod
51c9b56254 Remove all the sketch features in abortDrawing 2019-11-06 14:18:55 +01:00
Brian Helba
d90a4569da Allow View.adjust* methods to take a null opt_anchor
The methods `View.adjustRotation`, `View.adjustZoom` and `View.adjustResolution`
optionally take an `opt_anchor` parameter. When `opt_anchor` is `undefined`, the
methods work properly. When it is `null`, they currently attempt to access the
`null` value as though it is a `Coordinate` object, and throw:
```
TypeError: Cannot read property '0' of null
```

This change allows `opt_anchor` to safely be `null`.

Existing code paths already expect this to be supported. For example, when
`MouseWheelZoom.useAnchor_` is `false`, then
[`MouseWheelZoom.lastAnchor_` remains `null`](77bc6897dd/src/ol/interaction/MouseWheelZoom.js (L166));
thus, this `null` value
[is passed to `View.adjustZoom` as `opt_anchor`](77bc6897dd/src/ol/interaction/MouseWheelZoom.js (L209)).
2019-11-05 21:30:17 -05:00
Andreas Hocevar
48ec398037 Do not bypass measureTextWidth 2019-11-05 21:08:48 +01:00
Frédéric Junod
77bc6897dd Merge pull request #10255 from fredj/handleMapBrowserEvent_element_type
Don't use instanceof HTMLElement in handleMapBrowserEvent
2019-11-05 13:55:22 +01:00
Frederic Junod
6978c69f20 Don't use instanceof HTMLElement in handleMapBrowserEvent
Because not all elements in the DOM are instance of `HTMLElement`.
For example, SVGs created with `document.createElementNS` are instances of `Element`.
2019-11-05 11:08:14 +01:00
Andreas Hocevar
146e38c7ef Merge pull request #10251 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.6.3
Bump @babel/preset-env from 7.4.4 to 7.6.3
2019-11-04 17:50:13 +01:00
Andreas Hocevar
17fa323f50 Merge pull request #10250 from openlayers/dependabot/npm_and_yarn/buble-0.19.8
Bump buble from 0.19.7 to 0.19.8
2019-11-04 17:49:44 +01:00
Andreas Hocevar
a053fac728 Merge pull request #10249 from openlayers/dependabot/npm_and_yarn/karma-firefox-launcher-1.2.0
Bump karma-firefox-launcher from 1.1.0 to 1.2.0
2019-11-04 17:48:37 +01:00
Andreas Hocevar
978d620191 Merge pull request #10248 from openlayers/dependabot/npm_and_yarn/html-to-image-0.1.1
Bump html-to-image from 0.1.0 to 0.1.1
2019-11-04 17:47:54 +01:00
Andreas Hocevar
4e0e34e26b Merge pull request #10247 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-2.2.1
Bump terser-webpack-plugin from 2.0.1 to 2.2.1
2019-11-04 17:46:59 +01:00
dependabot-preview[bot]
4f46d8ae32 Bump @babel/preset-env from 7.4.4 to 7.6.3
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.4 to 7.6.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-04 13:58:18 +00:00
dependabot-preview[bot]
7a2671650f Bump buble from 0.19.7 to 0.19.8
Bumps [buble](https://github.com/bublejs/buble) from 0.19.7 to 0.19.8.
- [Release notes](https://github.com/bublejs/buble/releases)
- [Changelog](https://github.com/bublejs/buble/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bublejs/buble/compare/v0.19.7...v0.19.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-04 13:57:39 +00:00
dependabot-preview[bot]
2e2fa241fc Bump karma-firefox-launcher from 1.1.0 to 1.2.0
Bumps [karma-firefox-launcher](https://github.com/karma-runner/karma-firefox-launcher) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/karma-runner/karma-firefox-launcher/releases)
- [Changelog](https://github.com/karma-runner/karma-firefox-launcher/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma-firefox-launcher/compare/v1.1.0...v1.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-04 13:57:02 +00:00
dependabot-preview[bot]
200763bf97 Bump html-to-image from 0.1.0 to 0.1.1
Bumps [html-to-image](https://github.com/bubkoo/html-to-image) from 0.1.0 to 0.1.1.
- [Release notes](https://github.com/bubkoo/html-to-image/releases)
- [Commits](https://github.com/bubkoo/html-to-image/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-04 13:56:21 +00:00
dependabot-preview[bot]
d11cb02af4 Bump terser-webpack-plugin from 2.0.1 to 2.2.1
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.0.1 to 2.2.1.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.0.1...v2.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-04 13:55:46 +00:00
Andreas Hocevar
e4be8309f7 Merge pull request #10246 from openlayers/release-v6.1.1
Release v6.1.1
2019-11-04 12:25:24 +01:00
Andreas Hocevar
39a5511073 Update package version to 6.1.1 2019-11-04 12:16:04 +01:00
Andreas Hocevar
396f07bea1 Changelog for v6.1.1 2019-11-04 12:14:09 +01:00
Olivier Guyot
33980d0ba8 Merge pull request #10235 from jahow/webgl-optimizations
Various optimizations and fixes for the WebGL points renderer
2019-11-04 10:10:20 +01:00
Olivier Guyot
7da86ae71f Webgl points renderer / slight improvements following review
Also fixes a lint error.
2019-11-04 09:55:54 +01:00
Olivier Guyot
af15cfb815 Icon webgl example / avoid doing hit detection when view is moving 2019-11-04 09:31:38 +01:00
Olivier Guyot
600e1a4647 Webgl points renderer / use a smaller canvas for hit detection render
The hit detection render is now done against a canvas with half the
width/height of the main render. This still provides sufficient precision
while requiring a much smaller memory allocation (especially for
retina devices).
2019-11-04 09:31:38 +01:00
Olivier Guyot
43010c8934 Webgl / return 0 if doing renderTarget.read outside of data width/height
This would happen when WebGLPointsLayerRenderer.forEachFeatureAtCoordinate
is called on "warped" worlds at -360/+360 degrees, and may produce false
positives.
2019-11-04 09:31:38 +01:00
jahow
f7b0f6750b Resolve memory leak when deleting a webgl layer
Various references were kept, preventing the layer and underlying
renderer and webgl context to be garbage collected.

Also, the Helper was simplified because it turns out deleting manually
all Webgl objects is useless: these objects will be released when
the context is garbage collected anyway.

Note: this touches the Layer and BaseLayer classes, as the following were
preventing the layer from being garbage collected:
* layer reference in the `state_` object in BaseLayer
* dangling listener for source change in Layer
2019-11-04 09:31:38 +01:00
Olivier Guyot
e5e03d46a0 Webgl points renderer / more optimizations
Simplify calls in the attributes callback, also less stress
on garbage collection.
2019-11-04 09:31:38 +01:00
Olivier Guyot
e78c14c061 Webgl points renderer / add a cache for features in the source
This allows quicker access to features as well as their geometries
and properties, reducing the time taken by a rebuildBuffers call.
2019-11-04 09:31:38 +01:00
Andreas Hocevar
21f99e01c3 Merge pull request #10244 from ahocevar/no-multi-assign
Update to new eslint config with no-multi-assign
2019-11-02 16:48:46 +01:00
Andreas Hocevar
8098572346 Update package-lock.json 2019-11-02 15:20:35 +01:00
Andreas Hocevar
ac50cc3460 New eslint config with no-multi-assign 2019-11-02 15:20:21 +01:00
Andreas Hocevar
06ae419db6 Merge pull request #10243 from ahocevar/fix-font-measure
Store correct font value
2019-11-02 14:08:03 +01:00
Andreas Hocevar
43d6247671 Add rendering test case 2019-11-01 22:23:34 +01:00
Andreas Hocevar
442213f85b Store correct font value 2019-11-01 22:06:00 +01:00
Andreas Hocevar
2a96b6a8e3 Merge pull request #10239 from ahocevar/simpler-container-reuse
Simpler container reuse
2019-11-01 19:14:05 +01:00
Frédéric Junod
89f92a53b4 Merge pull request #10237 from fredj/zIndex_falsy_value
Fix layer zIndex test with falsy values
2019-11-01 08:25:56 +01:00
Andreas Hocevar
9c26d9d7dd Merge pull request #10221 from Kai-W/source-undefined-bug
Fix for undefined Source
2019-10-31 22:21:45 +01:00
Andreas Hocevar
3de05c249b Fix container transform comparison 2019-10-31 20:29:20 +01:00
Andreas Hocevar
bb2bdb17aa Render vector tile layers to a single canvas 2019-10-31 20:29:19 +01:00
Frederic Junod
b8c70bcbe7 Fix layer zIndex test with falsy values 2019-10-31 15:58:36 +01:00
Frederic Junod
c23d59e3a8 Remove extra argument passed to RenderEvent constructor 2019-10-31 15:47:27 +01:00
Andreas Hocevar
5dec336f94 Merge pull request #10228 from ahocevar/vectortile-hitdetect-rendertile
Use render tiles instead of source tiles for hit detection
2019-10-31 10:44:52 +01:00
Andreas Hocevar
e3f83f3601 Merge pull request #10226 from ahocevar/reproj-tile-abort
ABORT reproj tiles properly
2019-10-30 16:55:35 +01:00
Andreas Hocevar
3d0f7e4af8 Update the vector-tile-selection example 2019-10-30 14:39:54 +01:00
Andreas Hocevar
4b13c6dae0 Speed up rendering by not using alpha 2019-10-30 14:36:23 +01:00
Andreas Hocevar
7097a4c6ba Use render tiles instead of source tiles for hit detection 2019-10-30 11:44:12 +01:00
Andreas Hocevar
79ea5bf9cd Set ABORT state in base class 2019-10-30 10:29:58 +01:00
Andreas Hocevar
97d0d277fb Merge pull request #10224 from ahocevar/hitdetect-vectortiles-fixes
Vector tile hit detection fixes
2019-10-29 22:33:53 +01:00
Andreas Hocevar
025b27bdec Use correct resolution for tile hit canvas 2019-10-29 22:11:46 +01:00
Andreas Hocevar
00af5a87be Only use source tile when it is available 2019-10-29 18:29:42 +01:00
kai.westerkamp
53f6359f8f Fix for undefined Source 2019-10-29 15:38:14 +01:00
Frédéric Junod
bac3a8e9d8 Merge pull request #10218 from fredj/doc_fixes_expression
Documentation fixes in ol/style/expressions
2019-10-29 11:17:27 +01:00
Andreas Hocevar
66eedbfed2 Merge pull request #10216 from ahocevar/changelog-dependabot
Update changelog script to recognize dependabot instead of greenkeeper
2019-10-29 10:56:16 +01:00
Frédéric Junod
7d7228d45c Update src/ol/style/expressions.js
Co-Authored-By: Olivier Guyot <olivier.guyot@camptocamp.com>
2019-10-29 10:50:14 +01:00
Andreas Hocevar
459efede60 Update package-lock.json 2019-10-29 10:47:58 +01:00
Frederic Junod
b0ed775bc6 Documentation fixes 2019-10-29 08:42:11 +01:00
Andreas Hocevar
43ebfc4653 Merge pull request #10215 from openlayers/release-v6.1.0
Release v6.1.0
2019-10-28 22:00:33 +01:00
Andreas Hocevar
49c1486e06 Update changelog script to recognize dependabot instead of greenkeeper 2019-10-28 21:49:18 +01:00
Andreas Hocevar
3902759595 Update package version to 6.1.0 2019-10-28 21:44:02 +01:00
Andreas Hocevar
d71c733d9b Changelog for v6.1.0 2019-10-28 21:44:01 +01:00
Andreas Hocevar
90e1819d76 Merge pull request #10214 from jahow/webgl-layer-boolean-operators
WebGL / Add 'case' operator for style expressions
2019-10-28 21:11:47 +01:00
Olivier Guyot
f84fae8f70 Merge pull request #10198 from jahow/fix-webgl-renderer-loading-extent
WebGL renderer / use the specified loading strategy for the vector data
2019-10-28 16:19:52 +01:00
Olivier Guyot
6c0dd6152d Modified the icon-sprite-webgl example to allow filtering on a string attribute 2019-10-28 15:55:15 +01:00
Olivier Guyot
b96e70e952 Expressions / renamed mod to % to be more in line with MB style spec 2019-10-28 15:55:15 +01:00
Olivier Guyot
501c90b0a2 Expressions / introduced the case operator
This operator is used for if/else control flow
2019-10-28 15:52:31 +01:00
Olivier Guyot
2a2783c086 ShaderBuilder / better handling of strings variables/attributes
Now values which are not mentioned in the style are still added to
the string literals mapping.

Also an error will be thrown if a style references a missing variable.
2019-10-28 15:21:44 +01:00
Olivier Guyot
2f49876180 Expressions / add != operator & slightly better doc 2019-10-28 15:13:43 +01:00
Frédéric Junod
c7161acb6a Merge pull request #10212 from fredj/dependabot_config
Add config file for dependabot
2019-10-28 13:53:07 +01:00
Andreas Hocevar
db6314b6b2 Merge pull request #10187 from ahocevar/tabindex-scrollover
Set touch-action to allow native touch gestures
2019-10-28 13:49:44 +01:00
Tim Schaub
65eb24da68 Merge pull request #10194 from MrSoUndso/dev
Added check to make sure extent array has four objects.
2019-10-28 06:39:11 -06:00
Jakob Gerstmayer
6652192647 fixed spacing issues (again) 2019-10-28 12:55:26 +01:00
Jakob Gerstmayer
bc34fe5b71 incorporated suggestions 2019-10-28 12:51:40 +01:00
Olivier Guyot
80b4473180 Simplify the heatmap example
Use a weight function instead of manually edditing the features.
2019-10-28 10:27:29 +01:00
Olivier Guyot
cd3b222467 Specify an actual extent when loading features in the Webgl points renderer
This means any specified loading strategy will be taken into account.

Also added some tests to make sure the interaction with the source is
correct.
2019-10-28 10:26:31 +01:00
Andreas Hocevar
6e4259359b Merge pull request #10208 from openlayers/dependabot/npm_and_yarn/pixelmatch-5.1.0
Bump pixelmatch from 5.0.2 to 5.1.0
2019-10-28 09:24:39 +01:00
Frederic Junod
a2e6119da1 Add config file for dependabot 2019-10-28 09:24:35 +01:00
dependabot-preview[bot]
c992cea9a4 Bump pixelmatch from 5.0.2 to 5.1.0
Bumps [pixelmatch](https://github.com/mapbox/pixelmatch) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/mapbox/pixelmatch/releases)
- [Commits](https://github.com/mapbox/pixelmatch/compare/v5.0.2...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-28 08:14:17 +00:00
Andreas Hocevar
ced327e9a0 Merge pull request #10210 from openlayers/dependabot/npm_and_yarn/glob-7.1.5
Bump glob from 7.1.4 to 7.1.5
2019-10-28 09:14:06 +01:00
Andreas Hocevar
df1fcc0d90 Merge pull request #10209 from openlayers/dependabot/npm_and_yarn/karma-4.4.1
Bump karma from 4.1.0 to 4.4.1
2019-10-28 09:13:19 +01:00
Andreas Hocevar
b13cbe8cb8 Merge pull request #10207 from openlayers/dependabot/npm_and_yarn/ol-mapbox-style-5.0.2
Bump ol-mapbox-style from 5.0.0-beta.3 to 5.0.2
2019-10-28 09:12:19 +01:00
dependabot-preview[bot]
2abc88d41c Bump glob from 7.1.4 to 7.1.5
Bumps [glob](https://github.com/isaacs/node-glob) from 7.1.4 to 7.1.5.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/master/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.1.4...v7.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-28 07:55:53 +00:00
dependabot-preview[bot]
3e0494aa9e Bump karma from 4.1.0 to 4.4.1
Bumps [karma](https://github.com/karma-runner/karma) from 4.1.0 to 4.4.1.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v4.1.0...v4.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-28 07:55:02 +00:00
dependabot-preview[bot]
aa5487b67b Bump ol-mapbox-style from 5.0.0-beta.3 to 5.0.2
Bumps [ol-mapbox-style](https://github.com/openlayers/ol-mapbox-style) from 5.0.0-beta.3 to 5.0.2.
- [Release notes](https://github.com/openlayers/ol-mapbox-style/releases)
- [Changelog](https://github.com/openlayers/ol-mapbox-style/blob/master/CHANGELOG.md)
- [Commits](https://github.com/openlayers/ol-mapbox-style/compare/v5.0.0-beta.3...v5.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-28 07:52:59 +00:00
Tim Schaub
76333f72ba Merge pull request #10204 from tschaub/doc-layout
Avoid scrolling over navigation
2019-10-27 17:05:39 -06:00
Tim Schaub
3ac08bcbef Merge pull request #10205 from tschaub/inline-default
Add the default to the type column
2019-10-27 17:04:17 -06:00
Andreas Hocevar
15a64e657d Merge pull request #10178 from TieSKey/master
Make ol/interaction/Select#handleEvent return always true.
2019-10-27 22:58:39 +01:00
TigerShark
4f0431edd5 Restore pointerMove in condition.js and example.
Wrongly removed on previous commit as pointed by @ahocevar.
2019-10-27 11:45:53 -03:00
Tim Schaub
0f87df0ade Add the default to the type column 2019-10-26 17:27:04 -06:00
Tim Schaub
1c21853269 Avoid scrolling over navigation 2019-10-26 16:56:14 -06:00
Tim Schaub
1cd9256771 Merge pull request #10203 from tschaub/exempt-milestones
Keep issues assigned to a milestone from going stale
2019-10-26 16:29:28 -06:00
Tim Schaub
fcb95ced5f Merge pull request #10200 from tschaub/carbon
Carbon add on API docs
2019-10-26 13:11:21 -06:00
Tim Schaub
ffab886964 Keep issues assigned to a milestone from going stale 2019-10-26 13:10:16 -06:00
Tim Schaub
27cbbaf97b Less jumpy 2019-10-26 12:30:38 -06:00
Tim Schaub
c0831cc64b Carbon add on API docs 2019-10-26 11:11:04 -06:00
Olivier Guyot
c40263c38b Merge pull request #10196 from jahow/webgl-add-string-operators
Webgl / add support for string and arrays in style expressions
2019-10-25 17:27:39 +02:00
Frederic Junod
daaf9695ff Add assertNumbers function in ol/style/expressions 2019-10-25 15:46:49 +02:00
Andreas Hocevar
5d358a7367 Merge pull request #10197 from ahocevar/restore-node8-compatibility
Restore node v8 compatibility
2019-10-25 15:21:23 +02:00
Andreas Hocevar
80abb8fb15 Merge pull request #10195 from mike-000/patch-2
Treat hsl/hsla as named colors
2019-10-25 15:17:30 +02:00
Olivier Guyot
e63bb45e6f Webgl points layer / allow disabling hit detection
Having hit detection enabled has an overhead as it means
continously generating additional render instructions and rendering
to an offscreen canvas
2019-10-25 15:11:37 +02:00
Andreas Hocevar
edc02dbde2 Restore node v8 compatibility 2019-10-25 15:11:11 +02:00
Olivier Guyot
4462608991 Expressions / adds color and array conversion operators
Also fixes existing error throwingtests which were essentially doing nothing.
2019-10-25 14:55:44 +02:00
Olivier Guyot
ff3cc9b4d0 Expressions / renamed operator pow to ^
To be more in line with Mapbox style spec
2019-10-25 14:55:44 +02:00
Olivier Guyot
a844691d7b Added new example styles in the webgl points layer example 2019-10-25 14:55:44 +02:00
Olivier Guyot
acf973751b Webgl / added time and resolution as default uniforms
Also added the `zoom` and `resolution` style operators
2019-10-25 14:55:44 +02:00
Olivier Guyot
e843b2cfc0 Expressions / adaptation and cleanup after stretch operator removal
The examples have been fixed as well.
2019-10-25 14:55:44 +02:00
Olivier Guyot
719495587c Expressions / rework the interpolate operator
This operator is now able to map numbers to output ranges as well as colors,
making the stretch operator unnecessary. Also allows giving multiple stops,
like in Mapbox style spec.
2019-10-25 14:55:44 +02:00
Olivier Guyot
9e010631c1 Expressions / refactor operators to avoid linting errors
Previously the utilities used the Operators dict before its definition.
2019-10-25 14:55:44 +02:00
Olivier Guyot
a64f2eb720 Update the icon-sprite-webgl example to use a WebGLPoints layer 2019-10-25 14:55:44 +02:00
Olivier Guyot
d643951a74 Shader Builder / add option to generate hit detection shaders 2019-10-25 14:55:44 +02:00
Olivier Guyot
a39f751981 Shader Builder / adapt logic & test to the new expression types
Also fixes a sneaky bug where the two last texture coordinates were inverted.
2019-10-25 14:55:44 +02:00
Olivier Guyot
fc98704bcb Expressions / adds a test for a complex combination of operators 2019-10-25 14:55:44 +02:00
Olivier Guyot
27c530ec64 Expressions / introduce the match operator
This operator allows mapping from input values to output values of different
kinds and handles variable arguments count.
2019-10-25 14:55:44 +02:00
Olivier Guyot
e3f7d29bb2 Expressions / add utilities for using strings in GLSL & more type checking
It is now possible to specify a type hint when parsing an expression, which
helps determine the output value type.

When no single output type can be inferred, an error is thrown.

For strings, every literal value will be replaced by a number and a map of
these associations will be kept in the parsing context, which is passed
recursively.
2019-10-25 14:55:44 +02:00
Olivier Guyot
44347a9ed3 Adapt the icon-sprite-webgl example to the new expressions module 2019-10-25 14:55:44 +02:00
Olivier Guyot
31dae929f5 ShaderBuilder / adapt logic & tests to new expressions module 2019-10-25 14:55:44 +02:00
Olivier Guyot
5712792772 Expressions / add more tests for conversion to GLSL 2019-10-25 14:55:44 +02:00
Olivier Guyot
bcf7649b9a Expressions / store the variables & attributes in the context 2019-10-25 14:55:44 +02:00
Olivier Guyot
7e4119d580 Expressions / restored the parsing logic with better type checking
Converting expressions to GLSL is now done in ol/style/expressions, with the
same logic as before in ol/webgl/ShaderBuilder.
2019-10-25 14:55:44 +02:00
Olivier Guyot
72903d6454 Expressions / added operator declarations & type checking logic 2019-10-25 14:55:44 +02:00
Olivier Guyot
35af80b433 Style / add an ol/style/expressions module
This module will contain the utilities and operator declarations
for literal style expressions, boh for type checking and parsing
2019-10-25 14:55:44 +02:00
mike-000
ad6d91b9ae Treat hsl/hsla as named colors
hsl/hsla values produce an assertion error in fromStringInternal_  This simplest solution is to treat them as named colors.
2019-10-25 13:31:18 +01:00
Jakob Gerstmayer
37cbb8e43e fixed spacing issues 2019-10-25 12:06:15 +02:00
Jakob Gerstmayer
e0329febc4 Added check to make sure extent array has four objects. 2019-10-25 11:43:18 +02:00
Andreas Hocevar
cff00f1c3b Merge pull request #10188 from ahocevar/renderevent-docs
Document that map render events do not have a context set
2019-10-24 17:14:40 +02:00
Andreas Hocevar
61c4fa8cd6 Document that map render events do not have a context set 2019-10-24 16:32:04 +02:00
Andreas Hocevar
cc24ec1be6 Set touch-action to allow page scrolling 2019-10-24 16:18:40 +02:00
Frédéric Junod
2b0256140e Merge pull request #10184 from fredj/heatmap_weight
Clamp the weight value between 0 and 1
2019-10-24 15:34:17 +02:00
Frederic Junod
88bbb8c1ae Clamp the weight value between 0 and 1 2019-10-24 13:52:59 +02:00
mike-000
f47fa8b407 Add crossOrigin option for icons
Make the crossOrigin setting for icons configurable to avoid errors when KML files reference images when are not CORS enabled
Pass scope in readPlacemark_
and to handle IconStyle in a placemark style map

Test crossOrigin option for icons
Add tests for IconStyle in style maps and shared styles
2019-10-24 11:04:47 +01:00
roemhildtg
9908433cfd add tags to example docs
#10022
2019-10-23 22:06:46 -05:00
TigerShark
e60dc93e0e Make ol/interaction/Select#handleEvent return always true.
Previously it was returning true only if the event was a pointerMove
which prevented multiple Select objects with other event types from
working.
2019-10-23 17:30:56 -03:00
Tim Schaub
599835e818 Merge pull request #10175 from tschaub/untagged
Remove description from type tag
2019-10-23 13:57:15 -06:00
Tim Schaub
afa688273b Merge pull request #10176 from tschaub/toggle
Avoid toggling when clicking the title
2019-10-23 13:56:58 -06:00
Tim Schaub
6b4e00e6ac Remove description from type tag 2019-10-23 10:27:56 -06:00
Tim Schaub
10379920d2 Avoid toggling when clicking the title 2019-10-23 10:26:21 -06:00
Andreas Hocevar
ebae0386bd Merge pull request #10172 from ahocevar/apidoc-geometry-inherited
Ensure inherited docs are shown
2019-10-23 15:40:08 +02:00
Andreas Hocevar
bf7af07657 Ensure inherited docs are shown 2019-10-23 14:40:27 +02:00
Andreas Hocevar
327fe11344 Merge pull request #10171 from mike-000/patch-1
Open default attributions links in a new tab or window
2019-10-23 13:48:05 +02:00
Andreas Hocevar
319efedb14 Merge pull request #10047 from KaiVolland/apidoc-changes
Apidoc changes
2019-10-23 13:41:03 +02:00
Andreas Hocevar
4fe16d0281 Tidy up navigation 2019-10-23 13:26:56 +02:00
mike-000
ce8b63a67e Open default attributions links in new tab/window 2019-10-23 12:10:55 +01:00
mike-000
6b25f713cd Open default attributions links in new tab/window 2019-10-23 12:08:40 +01:00
mike-000
4b79818797 Open default attributions links in new tab/window 2019-10-23 12:03:01 +01:00
Andreas Hocevar
062614388c Merge pull request #10161 from ahocevar/vectorimage-getfeatures
Implement getFeatures() for ol/layer/VectorImage
2019-10-23 11:26:08 +02:00
Olivier Guyot
8c5be52462 Merge pull request #10168 from jahow/webgl-style-add-filter
Webgl / Add support for filtering and color interpolation in style expressions
2019-10-23 09:45:16 +02:00
Frédéric Junod
b6d694050e Merge pull request #10170 from openlayers/select-feature_html
Add back html from select-features example
2019-10-23 09:24:43 +02:00
Olivier Guyot
fc555241ea ShaderBuilder / simplify check/parse code a bit 2019-10-23 09:22:12 +02:00
Frederic Junod
33b0f88771 Add back html from select-features example
The example was removed and added back in 38124d770b but the html file was missing
2019-10-23 09:03:19 +02:00
Olivier Guyot
1fe5a68e16 Fix the triangles style in the wbegl-points-layer example 2019-10-22 23:27:26 +02:00
Olivier Guyot
948003ff27 Rewrite to filter-points-webgl example to use a Webgl points layer
The demonstrated features have been recreated using a literal
style (filtering, pulse animation).
2019-10-22 23:17:00 +02:00
Olivier Guyot
d837166a1b Literal Style / add new math operators 2019-10-22 23:17:00 +02:00
Olivier Guyot
c659c05de8 ShaderBuilder / fix stretch operator GLSL expression 2019-10-22 23:17:00 +02:00
Olivier Guyot
485ade42b5 Literal Style / add support for color interpolation 2019-10-22 23:17:00 +02:00
Olivier Guyot
85c3aae454 ShaderBuilder / add support for color interpolation in parse 2019-10-22 23:17:00 +02:00
Olivier Guyot
a29fc016f5 ShaderBuilder / formatColor/Array utilities now output vecX(...) 2019-10-22 23:17:00 +02:00
Olivier Guyot
19eadaea24 Shader Builder / add type checking in expressions parsing
All expressions will now be type checked before actually being parsed.
2019-10-22 23:17:00 +02:00
Olivier Guyot
b8e8d30df0 Shader Builder / add utilities for checking an expression type
Type checking is done either against a literal value (number, string...)
or against the operator in case of an expression.

Sometimes it is not possible to infer only one type, for example
the value 'transparent' could either be a color or a string. This
is covered by the fact that all operators expect exactly one type
for their arguments.
2019-10-22 23:17:00 +02:00
Olivier Guyot
f43637cc33 Shader Builder / support strings in formatColor 2019-10-22 23:17:00 +02:00
Olivier Guyot
56faf4c3ad Color / add an isStringColor utility function 2019-10-22 23:17:30 +02:00
Olivier Guyot
a0b271a812 Literal Style / add support for variables in the style
These variables are accessed using the `var` operator, and are meant
to be mutated directly in the style object. When doing so,
the new value will always be used for the render.

This is intended to be used for modifying the style through external
parameters such as an input field, a slider, mouse position etc.
2019-10-22 23:17:00 +02:00
Olivier Guyot
a1c00744d1 Webgl points renderer / throw if shader compilation fails
This should only happen if providing handcrafted shaders to the renderer.
2019-10-22 23:17:00 +02:00
Olivier Guyot
94b8cf6af3 Webgl / add support for a time operator in literal styles
This required adding `u_time` as one of the default uniforms provided by the
webgl helper.
2019-10-22 23:17:23 +02:00
Olivier Guyot
0c0c8c5d56 Literal Style / add support for a filter property 2019-10-22 23:17:00 +02:00
Andreas Hocevar
fef4d4e9b7 Merge pull request #10093 from mike-000/patch-3
Set label text for Graticule option styles
2019-10-22 15:23:01 +02:00
Tim Schaub
8e4fbe3e74 Merge pull request #10160 from ejn/minor/improve-test-10158
Improve test in case of async call
2019-10-22 07:06:36 -06:00
mike-000
110c17cf9e Remove label style caches 2019-10-22 12:04:06 +01:00
Olivier Guyot
e38250ee14 ShaderBuilder / add fragment discard expression in shader params 2019-10-22 11:39:30 +02:00
Andreas Hocevar
39012a58f8 Implement getFeatures() for ol/layer/VectorImage 2019-10-22 11:27:26 +02:00
Olivier Guyot
7b66b294a8 ShaderBuilder / attempt to clarify the way attributes are handled in parseSymbolStyle 2019-10-22 11:18:39 +02:00
Olivier Guyot
9ee93cd2cf ShaderBuilder / refactoring to use an actual builder pattern
There is now a ShaderBuilder class with chainable methods
to specify more easily the contents of the final shaders.
This is to avoid passing around large objects to different functions,
and allow for a richer API.

The documentation has also been corrected and clarified.
2019-10-22 11:12:06 +02:00
Edward Nash
ed18310136 Improve test in case of async call 2019-10-22 10:21:52 +02:00
Andreas Hocevar
a3c137cff1 Merge pull request #10159 from ejn/bugfix/10158-target-name-collision
Fix target name collision in event.Target and Control
2019-10-22 09:53:19 +02:00
Edward Nash
9eb4816b27 Fix property name collision target_ with Control
* As described in #10158, Control uses the property target_ for
   a custom parent HTMLElement, leading to Events on the Control being
   dispatched with that as the target and not the Control itself.

 * Solved by renaming the target_ property on Target to eventTarget_
2019-10-22 09:37:05 +02:00
Edward Nash
ee653a8e0d Add regression test for event target on Control
* Check possible name collision of target element with EventTarget
2019-10-22 09:37:05 +02:00
mike-000
7edd10d66f Test that label text is set in styles 2019-10-21 16:00:54 +01:00
Frédéric Junod
e0cab3d3ba Merge pull request #10157 from openlayers/dependabot/npm_and_yarn/karma-coverage-istanbul-reporter-2.1.0
Bump karma-coverage-istanbul-reporter from 2.0.5 to 2.1.0
2019-10-21 16:01:30 +02:00
Frédéric Junod
34ed3c684e Merge pull request #10155 from openlayers/dependabot/npm_and_yarn/types/pbf-3.0.2
Bump @types/pbf from 3.0.1 to 3.0.2
2019-10-21 15:42:55 +02:00
Frédéric Junod
d0811ea286 Merge pull request #10153 from openlayers/dependabot/npm_and_yarn/yargs-14.2.0
Bump yargs from 14.0.0 to 14.2.0
2019-10-21 15:42:37 +02:00
Frédéric Junod
54c5330203 Merge pull request #10154 from openlayers/dependabot/npm_and_yarn/babel/core-7.6.4
Bump @babel/core from 7.4.4 to 7.6.4
2019-10-21 15:42:03 +02:00
dependabot-preview[bot]
09768c6634 Bump karma-coverage-istanbul-reporter from 2.0.5 to 2.1.0
Bumps [karma-coverage-istanbul-reporter](https://github.com/mattlewis92/karma-coverage-istanbul-reporter) from 2.0.5 to 2.1.0.
- [Release notes](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/releases)
- [Changelog](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/compare/v2.0.5...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 13:33:34 +00:00
dependabot-preview[bot]
dfdb498d0d Bump @types/pbf from 3.0.1 to 3.0.2
Bumps [@types/pbf](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pbf) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pbf)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 13:32:16 +00:00
dependabot-preview[bot]
d1aec83ca2 Bump @babel/core from 7.4.4 to 7.6.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.4 to 7.6.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.6.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 13:31:44 +00:00
dependabot-preview[bot]
2937513cb3 Bump yargs from 14.0.0 to 14.2.0
Bumps [yargs](https://github.com/yargs/yargs) from 14.0.0 to 14.2.0.
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs/compare/v14.0.0...v14.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 13:31:06 +00:00
Frédéric Junod
b46e985af0 Merge pull request #10151 from openlayers/dependabot/npm_and_yarn/rollup-plugin-babel-4.3.3
Bump rollup-plugin-babel from 4.3.2 to 4.3.3
2019-10-21 15:05:07 +02:00
dependabot-preview[bot]
e50662f0a1 Bump rollup-plugin-babel from 4.3.2 to 4.3.3
Bumps [rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel) from 4.3.2 to 4.3.3.
- [Release notes](https://github.com/rollup/rollup-plugin-babel/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-babel/compare/v4.3.2...v4.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 12:22:12 +00:00
Frédéric Junod
bcdb191de2 Merge pull request #10148 from openlayers/dependabot/npm_and_yarn/rollup-plugin-node-resolve-5.2.0
Bump rollup-plugin-node-resolve from 5.0.0 to 5.2.0
2019-10-21 14:19:56 +02:00
dependabot-preview[bot]
775bf82631 Bump rollup-plugin-node-resolve from 5.0.0 to 5.2.0
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 5.0.0 to 5.2.0.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v5.0.0...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 12:06:29 +00:00
Frédéric Junod
fc9123947d Merge pull request #10150 from openlayers/dependabot/npm_and_yarn/copy-webpack-plugin-5.0.4
Bump copy-webpack-plugin from 5.0.3 to 5.0.4
2019-10-21 14:06:22 +02:00
Frédéric Junod
636c65da69 Merge pull request #10149 from openlayers/dependabot/npm_and_yarn/rbush-3.0.1
Bump rbush from 3.0.0 to 3.0.1
2019-10-21 14:05:08 +02:00
Frédéric Junod
adcbd0bb50 Merge pull request #10147 from openlayers/dependabot/npm_and_yarn/rollup-1.25.1
Bump rollup from 1.12.0 to 1.25.1
2019-10-21 14:04:18 +02:00
dependabot-preview[bot]
89c0eaef8d Bump copy-webpack-plugin from 5.0.3 to 5.0.4
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 5.0.3 to 5.0.4.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v5.0.3...v5.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 11:55:42 +00:00
dependabot-preview[bot]
889eef66c1 Bump rbush from 3.0.0 to 3.0.1
Bumps [rbush](https://github.com/mourner/rbush) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/mourner/rbush/releases)
- [Commits](https://github.com/mourner/rbush/compare/v3.0.0...v3.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 11:55:03 +00:00
dependabot-preview[bot]
de851e9b29 Bump rollup from 1.12.0 to 1.25.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.12.0 to 1.25.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.12.0...v1.25.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 11:53:47 +00:00
Andreas Hocevar
cb6b716b98 Merge pull request #10145 from openlayers/greenkeeper/handlebars-4.4.5
Greenkeeper/handlebars 4.4.5
2019-10-21 12:02:35 +02:00
greenkeeper[bot]
2980a0a168 chore(package): update lockfile package-lock.json 2019-10-20 21:11:28 +00:00
greenkeeper[bot]
829aac1860 chore(package): update handlebars to version 4.4.5
Closes #10081
2019-10-20 21:11:23 +00:00
Andreas Hocevar
3d351a53e6 Merge pull request #10142 from ahocevar/fix-tilechange-events
Fix tilechange events
2019-10-19 09:06:12 +02:00
Tim Schaub
a0ceebfb2f Merge pull request #10132 from openlayers/greenkeeper/webpack-4.41.2
Update webpack to the latest version 🚀
2019-10-18 21:46:42 -06:00
Tim Schaub
a9d93fe151 Merge pull request #10143 from openlayers/greenkeeper/mocha-6.2.2
Update mocha to the latest version 🚀
2019-10-18 21:46:17 -06:00
greenkeeper[bot]
b4257779f1 chore(package): update lockfile package-lock.json 2019-10-18 21:17:40 +00:00
greenkeeper[bot]
0f3778ce00 chore(package): update mocha to version 6.2.2 2019-10-18 21:17:31 +00:00
Andreas Hocevar
36a366bfeb Do not stop event propagation in prepareTile 2019-10-18 20:50:01 +02:00
Olivier Guyot
95bcb574b7 Merge pull request #10138 from wirdehall/master
Should be able to ovveride defaultvalue of style in selection.
2019-10-18 09:57:55 +02:00
wirdehall
bd5510b62a Updated docs for Select style.
Updated docs for Select style with new option of false.
2019-10-18 00:20:05 +02:00
wirdehall
a34e7ddd99 Should be able to ovveride defaultvalue of style in selection.
null or false should be able to prevent overriding the style.
As discussed here: https://github.com/openlayers/openlayers/issues/10131
2019-10-17 15:05:30 +02:00
Tim Schaub
1de0d09acb Merge pull request #10135 from mike-000/patch-1
Revise the description of applyTransform for geometries
2019-10-16 12:54:32 -06:00
mike-000
2b1417df3f Revise the description of applyTransform
Revise the description of applyTransform and transformFn (loosely based on that used in ol/extent) to avoid any misunderstanding that the function is called inside a forEach method.
2019-10-16 13:59:38 +01:00
Andreas Hocevar
cfac31799b Merge pull request #10133 from ahocevar/unlisten-source-change
Properly unregister source tile change listeners
2019-10-15 23:16:18 +02:00
Andreas Hocevar
61fc71c30f Properly unregister source tile change listeners 2019-10-15 21:23:37 +02:00
greenkeeper[bot]
9f3052211b chore(package): update lockfile package-lock.json 2019-10-15 13:46:36 +00:00
greenkeeper[bot]
4450981b0d chore(package): update webpack to version 4.41.2 2019-10-15 13:46:30 +00:00
Andreas Hocevar
54884314ee Merge pull request #10094 from ahocevar/immediate-hitdetection
New Layer#getFeatures method with fast hit detection
2019-10-14 22:21:08 +02:00
Frédéric Junod
a75ea2cc6b Merge pull request #10117 from openlayers/greenkeeper/pbf-3.2.1
Update pbf to the latest version 🚀
2019-10-14 15:35:22 +02:00
Frédéric Junod
aba93e7b9c Merge pull request #10104 from openlayers/attribution_font_size
Remove font sizing from the attribution control
2019-10-14 15:28:02 +02:00
Andreas Hocevar
90d6a6f441 Move hit detection to its own module 2019-10-14 14:40:06 +02:00
Andreas Hocevar
7454df0c2f Resolve empty when tile not loaded yet 2019-10-14 14:13:57 +02:00
Frederic Junod
a126702e95 Add back max-width for the attribution control in examples 2019-10-14 09:24:18 +02:00
Tim Schaub
dd788b406c Merge pull request #10114 from openlayers/greenkeeper/coveralls-3.0.7
Update coveralls to the latest version 🚀
2019-10-13 08:02:53 -06:00
Tim Schaub
c97a26ae26 Merge pull request #10116 from openlayers/greenkeeper/webpack-4.41.1
Update webpack to the latest version 🚀
2019-10-13 08:02:06 -06:00
mike-000
937f7f613e Resolve constraints using anchor
Resolve constraints using anchor if view state is the result of cancelling an animation with anchor
2019-10-12 21:13:34 +01:00
Tim Schaub
f475387d39 Merge pull request #10108 from notnotse/issue/9814-fix-documentation-for-handlemoveevent
Fix documentation for handleMoveEvent
2019-10-12 08:14:39 -06:00
Tim Schaub
5af4dfa623 Merge pull request #10118 from mike-000/patch-7
Document the OSM crossOrigin default
2019-10-12 08:13:17 -06:00
Andreas Hocevar
e3666f18da Merge pull request #10112 from ahocevar/rendertile-no-error
No ERROR state for render tiles
2019-10-11 21:52:12 +02:00
mike-000
046b78cca7 Document the OSM crossOrigin default 2019-10-11 18:16:19 +01:00
greenkeeper[bot]
b349058c58 chore(package): update lockfile package-lock.json 2019-10-11 14:50:07 +00:00
greenkeeper[bot]
8a53947f44 fix(package): update pbf to version 3.2.1 2019-10-11 14:50:02 +00:00
Olivier Guyot
9acba8f82a Merge pull request #10115 from jahow/improve-heatmap-test
Improve Heatmap hit detection test
2019-10-11 16:40:07 +02:00
Andreas Hocevar
0cb9d73848 No ERROR state for render tiles 2019-10-11 14:58:22 +02:00
greenkeeper[bot]
7069e2688d chore(package): update lockfile package-lock.json 2019-10-11 12:26:52 +00:00
greenkeeper[bot]
0c72fce1ff chore(package): update webpack to version 4.41.1 2019-10-11 12:26:47 +00:00
Olivier Guyot
87414256e2 Heatmap / use worker events instead of timeout for test 2019-10-11 14:06:27 +02:00
greenkeeper[bot]
9e7e15ed5c chore(package): update lockfile package-lock.json 2019-10-10 23:19:36 +00:00
greenkeeper[bot]
68850c7ddc chore(package): update coveralls to version 3.0.7 2019-10-10 23:19:29 +00:00
Frédéric Junod
f277206631 Merge pull request #10111 from mike-000/patch-6
Correct the defaulting of ol/source/VectorTile maxZoom
2019-10-10 16:05:51 +02:00
mike-000
2a2cc40d42 Correct the defaulting of maxZoom
Only default if undefined as maxZoom: 0 should be valid as it is for all other tile sources
2019-10-10 14:08:10 +01:00
Bobo Häggström
395b59c01e Fix documentation for handleMoveEvent
This fixes #9814
2019-10-10 10:40:47 +02:00
Frédéric Junod
58b4b6eeea Merge pull request #10102 from KlausBenndorf/type-fixes
Cosmetic type fixes
2019-10-10 09:43:53 +02:00
Simon Seyock
5b1106ac23 some type corrections 2019-10-10 09:07:35 +02:00
Frédéric Junod
2483fbd26b Merge pull request #10107 from mike-000/patch-5
Update Vector Tile Info example test for no features
2019-10-10 08:47:40 +02:00
Frédéric Junod
736ef88473 Merge pull request #10097 from fredj/text-align
Align layer canvas to the left
2019-10-10 08:31:36 +02:00
Andreas Hocevar
873999ec7d Merge pull request #10105 from openlayers/greenkeeper/jsdoc-plugin-typescript-2.0.4
Update jsdoc-plugin-typescript to the latest version 🚀
2019-10-09 20:19:51 +02:00
mike-000
cbf0ecfd75 Update test for no features 2019-10-09 18:25:04 +01:00
Frederic Junod
97ded06ee4 Remove attribution control custom style in examples 2019-10-09 16:48:19 +02:00
greenkeeper[bot]
782ff6e9f5 chore(package): update lockfile package-lock.json 2019-10-09 14:45:37 +00:00
greenkeeper[bot]
dc2137b622 chore(package): update jsdoc-plugin-typescript to version 2.0.4 2019-10-09 14:45:32 +00:00
Frederic Junod
c5eb80e610 Remove font sizing from the attribution control 2019-10-09 14:19:24 +02:00
Olivier Guyot
d1ee300968 Merge pull request #10101 from jahow/add-heatmap-hit-detection
Add hit detection support on the Heatmap layer
2019-10-08 14:45:53 +02:00
Olivier Guyot
b44a6ab26a Heatmap / add hit detection shaders 2019-10-08 13:27:31 +02:00
Kai Volland
3cb0aae796 Removes modulelink 2019-10-08 10:12:29 +02:00
Kai Volland
490bef8d40 Readds modules without classes to navigation 2019-10-08 10:12:12 +02:00
Andreas Hocevar
f477fc18f2 Add tests 2019-10-08 08:23:38 +02:00
Andreas Hocevar
3c243b0236 getFeature() for VectorTile layer 2019-10-08 08:23:38 +02:00
Andreas Hocevar
e9785317eb Move hit detection code to Immediate.js 2019-10-08 08:23:38 +02:00
Andreas Hocevar
315695eeb8 New Layer#getFeatures method with fast hit detection for VectorLayer 2019-10-08 08:23:38 +02:00
Frederic Junod
f20db28901 Align layer canvas to the left
So that the position is not affected by the `text-align` css rule.
2019-10-07 13:48:32 +02:00
Frederic Junod
2ce14a50a1 Add a rendering test case for text-align css property 2019-10-07 13:25:04 +02:00
Andreas Hocevar
057cc92716 Merge pull request #10087 from petrsloup/vector-tiles-4326-example
Add example showing vector tiles in EPSG:4326
2019-10-07 10:07:30 +02:00
Kai Volland
5786121cd5 Adapts linktext to module 2019-10-07 09:50:14 +02:00
mike-000
b727e4f45e Set label text for option styles
Set label text for lonLabelStyle and latLabelStyle options
2019-10-04 22:00:20 +01:00
Andreas Hocevar
fb9673465a Simpler way to use EPSG:4326 as projection 2019-10-04 14:07:13 +02:00
Andreas Hocevar
babdce4819 Merge pull request #10086 from petrsloup/update-mapbox-style-example
Update mapbox-style example
2019-10-03 20:39:47 +02:00
Petr Sloup
684e305bc8 Minor mapbox-style example docs update 2019-10-03 19:16:19 +02:00
Olivier Guyot
deb541791a Merge pull request #10083 from MoonE/example-webgl
webgl points layer example fixes
2019-10-03 17:43:22 +02:00
Maximilian Krög
db49842f63 Display error message instead of 'style not valid yet...' 2019-10-03 17:06:39 +02:00
Maximilian Krög
8fe8302dc2 Remove duplicate type definition for style 2019-10-03 15:45:35 +02:00
Maximilian Krög
b1a9f765fc Parse the style in the constructor.
This detects errors earlier and allows the caller to handle the thrown exception.
Remove assertion 65 as it should no longer be needed.
2019-10-03 14:36:48 +02:00
Petr Sloup
db583be0f9 Add example showing vector tiles in EPSG:4326 2019-10-03 13:00:47 +02:00
Maximilian Krög
d0cd1064ff Also check predefined styles for validity. 2019-10-03 03:02:58 +02:00
Maximilian Krög
b4a996e760 Catch errors in style definition
Do not replace the layer if the style is invalid.
Thrown errors are caught and the layer will not be changed.
2019-10-03 01:59:42 +02:00
Maximilian Krög
dee114d4c4 Guard against JSON.parse errors.
Also show successful style parse status after a style error was corrected
but it is the same style as previously.
2019-10-03 01:59:42 +02:00
Maximilian Krög
db34a338d6 Reset status message when selecting from select element. 2019-10-03 01:59:21 +02:00
Maximilian Krög
0eac5007e8 Reserve the height for the style parse messages. 2019-10-03 01:59:00 +02:00
Maximilian Krög
c1921a6b16 Preselect the 'circles' style in the select input
The text in the editor element already is from the circles style..
2019-10-03 01:57:49 +02:00
Maximilian Krög
dc28590cff Remove invalid option from style select
When this option was selected the text field contained 'undefined'
as it is not one of the predefined styles.
2019-10-03 01:48:45 +02:00
Frédéric Junod
3ab32ff744 Merge pull request #10076 from fredj/rm_typecast
Remove unnecessary typecast
2019-10-02 14:57:55 +02:00
Frederic Junod
daaaff5ac7 Remove unnecessary typecast
Remove typecast where typescript is able to correctly deduce the type.
2019-10-02 10:44:06 +02:00
Tim Schaub
fa0258a323 Merge pull request #10074 from mike-000/patch-2
Remove offsets from mouse position calculation
2019-10-01 09:29:47 -06:00
mike-000
4f83392b76 Remove offsets from mouse position calculation
and remove space
2019-10-01 15:55:30 +01:00
mike-000
8a04f5059d Remove offsets from mouse position calculation
Fixes #10073

Remove unneeded offsets from mouse position calculation as box position was centered in #9919
2019-10-01 15:47:36 +01:00
Frédéric Junod
92f70c225f Merge pull request #10072 from fredj/better_typing
Better typing
2019-10-01 15:27:27 +02:00
Frederic Junod
41b7893523 Mark properties as nullable 2019-10-01 10:47:07 +02:00
Frederic Junod
89becd4c6d Remove unused variables 2019-10-01 08:34:00 +02:00
Tim Schaub
7eb60fae23 Merge pull request #10070 from openlayers/release-v6.0.1
Changes for 6.0.1
2019-09-30 12:44:56 -06:00
Kai Volland
d08c0baff9 Introduces apidoc changes
- Removes modules from the apidoc navigation
- Adds a weight paramater to the search to be
more accurate on searchresults
2019-09-27 17:25:01 +02:00
Kai Volland
b045e4ee5b Removes unused *.less files 2019-09-27 17:19:19 +02:00
280 changed files with 17111 additions and 4933 deletions

View File

@@ -11,7 +11,7 @@ jobs:
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
- v1-dependencies-{{ checksum "package-lock.json" }}
- v1-dependencies-
- run:
@@ -21,7 +21,7 @@ jobs:
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package.json" }}
key: v1-dependencies-{{ checksum "package-lock.json" }}
- run:
name: Run Tests

7
.dependabot/config.yml Normal file
View File

@@ -0,0 +1,7 @@
# See https://dependabot.com/docs/config-file/
version: 1
update_configs:
- package_manager: "javascript"
directory: "/"
update_schedule: "weekly"
version_requirement_updates: "increase_versions_if_necessary"

2
.github/stale.yml vendored
View File

@@ -8,6 +8,8 @@ exemptLabels:
- regression
- bug
- 'pull request accepted'
# Issues assigned to a milestone will not go stale
exemptMilestones: true
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable

View File

@@ -1,5 +1,9 @@
## Upgrade notes
### v6.2.0
### v6.1.0
### v6.0.0
#### Backwards incompatible changes
@@ -77,7 +81,7 @@ Generally, the responsibility of applying center/rotation/resolutions constraint
##### The view `extent` option now applies to the whole viewport
Previously, this options only constrained the view *center*. This behaviour can still be obtained by specifying `constrainCenterOnly` in the view options.
Previously, this options only constrained the view *center*. This behaviour can still be obtained by specifying `constrainOnlyCenter` in the view options.
As a side effect, the view `rotate` method is gone and has been replaced with `adjustRotation` which takes a delta as input.

View File

@@ -83,7 +83,7 @@ Generally, the responsibility of applying center/rotation/resolutions constraint
##### The view `extent` option now applies to the whole viewport
Previously, this options only constrained the view *center*. This behaviour can still be obtained by specifying `constrainCenterOnly` in the view options.
Previously, this options only constrained the view *center*. This behaviour can still be obtained by specifying `constrainOnlyCenter` in the view options.
As a side effect, the view `rotate` method is gone and has been replaced with `adjustRotation` which takes a delta as input.

86
changelog/v6.1.0.md Normal file
View File

@@ -0,0 +1,86 @@
# 6.1.0
With 47 pull requests, this release keeps up the momentum of the v6.x effort and brings several bug fixes, performance improvements and new features. In addition to that, we added some missing documentation to our API docs and gave them some usability improvements.
## New features
* A new, performance optimized hit detection API on the layer level, `Layer#getFeatures(pixel)` has been introduced. At this point it is implemented for vector, vector tile and image vector layers, and is recommended when performance is critical, e.g. for hit detection on mouseover.
* For the WebGLPoints layer, we made several additions to the style expressions system. This includes a `case` operator, support for array and string types, and type checking.
## List of all changes
* [#10214](https://github.com/openlayers/openlayers/pull/10214) - WebGL / Add 'case' operator for style expressions ([@jahow](https://github.com/jahow))
* [#10198](https://github.com/openlayers/openlayers/pull/10198) - WebGL renderer / use the specified loading strategy for the vector data ([@jahow](https://github.com/jahow))
* [#10212](https://github.com/openlayers/openlayers/pull/10212) - Add config file for dependabot ([@fredj](https://github.com/fredj))
* [#10187](https://github.com/openlayers/openlayers/pull/10187) - Set touch-action to allow native touch gestures ([@ahocevar](https://github.com/ahocevar))
* [#10194](https://github.com/openlayers/openlayers/pull/10194) - Added check to make sure extent array has four objects. ([@MrSoUndso](https://github.com/MrSoUndso))
* [#10204](https://github.com/openlayers/openlayers/pull/10204) - Avoid scrolling over navigation ([@tschaub](https://github.com/tschaub))
* [#10205](https://github.com/openlayers/openlayers/pull/10205) - Add the default to the type column ([@tschaub](https://github.com/tschaub))
* [#10178](https://github.com/openlayers/openlayers/pull/10178) - Make ol/interaction/Select#handleEvent return always true. ([@TieSKey](https://github.com/TieSKey))
* [#10203](https://github.com/openlayers/openlayers/pull/10203) - Keep issues assigned to a milestone from going stale ([@tschaub](https://github.com/tschaub))
* [#10200](https://github.com/openlayers/openlayers/pull/10200) - Carbon add on API docs ([@tschaub](https://github.com/tschaub))
* [#10196](https://github.com/openlayers/openlayers/pull/10196) - Webgl / add support for string and arrays in style expressions ([@jahow](https://github.com/jahow))
* [#10197](https://github.com/openlayers/openlayers/pull/10197) - Restore node v8 compatibility ([@ahocevar](https://github.com/ahocevar))
* [#10195](https://github.com/openlayers/openlayers/pull/10195) - Treat hsl/hsla as named colors ([@mike-000](https://github.com/mike-000))
* [#10188](https://github.com/openlayers/openlayers/pull/10188) - Document that map render events do not have a context set ([@ahocevar](https://github.com/ahocevar))
* [#10184](https://github.com/openlayers/openlayers/pull/10184) - Clamp the weight value between 0 and 1 ([@fredj](https://github.com/fredj))
* [#10175](https://github.com/openlayers/openlayers/pull/10175) - Remove description from type tag ([@tschaub](https://github.com/tschaub))
* [#10176](https://github.com/openlayers/openlayers/pull/10176) - Avoid toggling when clicking the title ([@tschaub](https://github.com/tschaub))
* [#10172](https://github.com/openlayers/openlayers/pull/10172) - Ensure inherited docs are shown ([@ahocevar](https://github.com/ahocevar))
* [#10171](https://github.com/openlayers/openlayers/pull/10171) - Open default attributions links in a new tab or window ([@mike-000](https://github.com/mike-000))
* [#10047](https://github.com/openlayers/openlayers/pull/10047) - Apidoc changes ([@KaiVolland](https://github.com/KaiVolland))
* [#10161](https://github.com/openlayers/openlayers/pull/10161) - Implement getFeatures() for ol/layer/VectorImage ([@ahocevar](https://github.com/ahocevar))
* [#10168](https://github.com/openlayers/openlayers/pull/10168) - Webgl / Add support for filtering and color interpolation in style expressions ([@jahow](https://github.com/jahow))
* [#10170](https://github.com/openlayers/openlayers/pull/10170) - Add back html from select-features example ([@openlayers](https://github.com/openlayers))
* [#10093](https://github.com/openlayers/openlayers/pull/10093) - Set label text for Graticule option styles ([@mike-000](https://github.com/mike-000))
* [#10160](https://github.com/openlayers/openlayers/pull/10160) - Improve test in case of async call ([@ejn](https://github.com/ejn))
* [#10159](https://github.com/openlayers/openlayers/pull/10159) - Fix target name collision in event.Target and Control ([@ejn](https://github.com/ejn))
* [#10142](https://github.com/openlayers/openlayers/pull/10142) - Fix tilechange events ([@ahocevar](https://github.com/ahocevar))
* [#10138](https://github.com/openlayers/openlayers/pull/10138) - Should be able to ovveride defaultvalue of style in selection. ([@wirdehall](https://github.com/wirdehall))
* [#10135](https://github.com/openlayers/openlayers/pull/10135) - Revise the description of applyTransform for geometries ([@mike-000](https://github.com/mike-000))
* [#10133](https://github.com/openlayers/openlayers/pull/10133) - Properly unregister source tile change listeners ([@ahocevar](https://github.com/ahocevar))
* [#10094](https://github.com/openlayers/openlayers/pull/10094) - New Layer#getFeatures method with fast hit detection ([@ahocevar](https://github.com/ahocevar))
* [#10104](https://github.com/openlayers/openlayers/pull/10104) - Remove font sizing from the attribution control ([@openlayers](https://github.com/openlayers))
* [#10108](https://github.com/openlayers/openlayers/pull/10108) - Fix documentation for handleMoveEvent ([@notnotse](https://github.com/notnotse))
* [#10118](https://github.com/openlayers/openlayers/pull/10118) - Document the OSM crossOrigin default ([@mike-000](https://github.com/mike-000))
* [#10112](https://github.com/openlayers/openlayers/pull/10112) - No ERROR state for render tiles ([@ahocevar](https://github.com/ahocevar))
* [#10115](https://github.com/openlayers/openlayers/pull/10115) - Improve Heatmap hit detection test ([@jahow](https://github.com/jahow))
* [#10111](https://github.com/openlayers/openlayers/pull/10111) - Correct the defaulting of ol/source/VectorTile maxZoom ([@mike-000](https://github.com/mike-000))
* [#10102](https://github.com/openlayers/openlayers/pull/10102) - Cosmetic type fixes ([@KlausBenndorf](https://github.com/KlausBenndorf))
* [#10107](https://github.com/openlayers/openlayers/pull/10107) - Update Vector Tile Info example test for no features ([@mike-000](https://github.com/mike-000))
* [#10097](https://github.com/openlayers/openlayers/pull/10097) - Align layer canvas to the left ([@fredj](https://github.com/fredj))
* [#10101](https://github.com/openlayers/openlayers/pull/10101) - Add hit detection support on the Heatmap layer ([@jahow](https://github.com/jahow))
* [#10087](https://github.com/openlayers/openlayers/pull/10087) - Add example showing vector tiles in EPSG:4326 ([@petrsloup](https://github.com/petrsloup))
* [#10086](https://github.com/openlayers/openlayers/pull/10086) - Update mapbox-style example ([@petrsloup](https://github.com/petrsloup))
* [#10083](https://github.com/openlayers/openlayers/pull/10083) - webgl points layer example fixes ([@MoonE](https://github.com/MoonE))
* [#10076](https://github.com/openlayers/openlayers/pull/10076) - Remove unnecessary typecast ([@fredj](https://github.com/fredj))
* [#10074](https://github.com/openlayers/openlayers/pull/10074) - Remove offsets from mouse position calculation ([@mike-000](https://github.com/mike-000))
* [#10072](https://github.com/openlayers/openlayers/pull/10072) - Better typing ([@fredj](https://github.com/fredj))
<details>
<summary>Dependency Updates</summary>
* [#10208](https://github.com/openlayers/openlayers/pull/10208) - Bump pixelmatch from 5.0.2 to 5.1.0 ([@openlayers](https://github.com/openlayers))
* [#10210](https://github.com/openlayers/openlayers/pull/10210) - Bump glob from 7.1.4 to 7.1.5 ([@openlayers](https://github.com/openlayers))
* [#10209](https://github.com/openlayers/openlayers/pull/10209) - Bump karma from 4.1.0 to 4.4.1 ([@openlayers](https://github.com/openlayers))
* [#10207](https://github.com/openlayers/openlayers/pull/10207) - Bump ol-mapbox-style from 5.0.0-beta.3 to 5.0.2 ([@openlayers](https://github.com/openlayers))
* [#10157](https://github.com/openlayers/openlayers/pull/10157) - Bump karma-coverage-istanbul-reporter from 2.0.5 to 2.1.0 ([@openlayers](https://github.com/openlayers))
* [#10155](https://github.com/openlayers/openlayers/pull/10155) - Bump @types/pbf from 3.0.1 to 3.0.2 ([@openlayers](https://github.com/openlayers))
* [#10153](https://github.com/openlayers/openlayers/pull/10153) - Bump yargs from 14.0.0 to 14.2.0 ([@openlayers](https://github.com/openlayers))
* [#10154](https://github.com/openlayers/openlayers/pull/10154) - Bump @babel/core from 7.4.4 to 7.6.4 ([@openlayers](https://github.com/openlayers))
* [#10151](https://github.com/openlayers/openlayers/pull/10151) - Bump rollup-plugin-babel from 4.3.2 to 4.3.3 ([@openlayers](https://github.com/openlayers))
* [#10148](https://github.com/openlayers/openlayers/pull/10148) - Bump rollup-plugin-node-resolve from 5.0.0 to 5.2.0 ([@openlayers](https://github.com/openlayers))
* [#10150](https://github.com/openlayers/openlayers/pull/10150) - Bump copy-webpack-plugin from 5.0.3 to 5.0.4 ([@openlayers](https://github.com/openlayers))
* [#10149](https://github.com/openlayers/openlayers/pull/10149) - Bump rbush from 3.0.0 to 3.0.1 ([@openlayers](https://github.com/openlayers))
* [#10147](https://github.com/openlayers/openlayers/pull/10147) - Bump rollup from 1.12.0 to 1.25.1 ([@openlayers](https://github.com/openlayers))
* [#10145](https://github.com/openlayers/openlayers/pull/10145) - Greenkeeper/handlebars 4.4.5 ([@openlayers](https://github.com/openlayers))
* [#10132](https://github.com/openlayers/openlayers/pull/10132) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#10143](https://github.com/openlayers/openlayers/pull/10143) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#10117](https://github.com/openlayers/openlayers/pull/10117) - Update pbf to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#10114](https://github.com/openlayers/openlayers/pull/10114) - Update coveralls to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#10116](https://github.com/openlayers/openlayers/pull/10116) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#10105](https://github.com/openlayers/openlayers/pull/10105) - Update jsdoc-plugin-typescript to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
</details>

17
changelog/v6.1.1.md Normal file
View File

@@ -0,0 +1,17 @@
# 6.1.1
Hot on the heels of OpenLayers 6.x, this patch release includes a few fixes for existing functionality. There should be nothing special needed to upgrade an application from 6.x to 6.1.1. See the 6.0.0 release notes for details on upgrading from an older version.
## Changes
* [#10235](https://github.com/openlayers/openlayers/pull/10235) - Various optimizations and fixes for the WebGL points renderer ([@jahow](https://github.com/jahow))
* [#10244](https://github.com/openlayers/openlayers/pull/10244) - Update to new eslint config with no-multi-assign ([@ahocevar](https://github.com/ahocevar))
* [#10243](https://github.com/openlayers/openlayers/pull/10243) - Store correct font value ([@ahocevar](https://github.com/ahocevar))
* [#10239](https://github.com/openlayers/openlayers/pull/10239) - Simpler container reuse ([@ahocevar](https://github.com/ahocevar))
* [#10237](https://github.com/openlayers/openlayers/pull/10237) - Fix layer zIndex test with falsy values ([@fredj](https://github.com/fredj))
* [#10221](https://github.com/openlayers/openlayers/pull/10221) - Fix for undefined Source ([@Kai-W](https://github.com/Kai-W))
* [#10228](https://github.com/openlayers/openlayers/pull/10228) - Use render tiles instead of source tiles for hit detection ([@ahocevar](https://github.com/ahocevar))
* [#10226](https://github.com/openlayers/openlayers/pull/10226) - ABORT reproj tiles properly ([@ahocevar](https://github.com/ahocevar))
* [#10224](https://github.com/openlayers/openlayers/pull/10224) - Vector tile hit detection fixes ([@ahocevar](https://github.com/ahocevar))
* [#10218](https://github.com/openlayers/openlayers/pull/10218) - Documentation fixes in ol/style/expressions ([@fredj](https://github.com/fredj))
* [#10216](https://github.com/openlayers/openlayers/pull/10216) - Update changelog script to recognize dependabot instead of greenkeeper ([@ahocevar](https://github.com/ahocevar))

196
changelog/v6.2.0.md Normal file
View File

@@ -0,0 +1,196 @@
# 6.2.0
With almost 90 pull requests, this release brings several new features, performance improvements and bug fixes. In addition to that, we once again improved the API documentation and the example pages.
## New features and improvements
* Mousewheel zooming now brings the same user experience as trackpad zooming. One click on the wheel no longer means a jump of a whole zoom level. Instead, depending on the speed of moving the wheel, the user has fine-grained control over zoom increments/decrements.
* Users now have better control over the initial map viewport when the aspect ratio of the map is different from a specified initial extent.
* Text rendering has been optimized for decluttering and improved for rotated views. This means lower memory footprint and no more blurry text when the map is rotated. **Note:** Whit this change, the label cache has been deprecated.
* A new `displacement` option for icon, circle and regular shape styles makes positioning of point symbolizers more flexible.
* Several improvements have been made to the KML parser for reading styles, bringing the rendered result much closer to Google Earth.
* OpenLayers is now less aggressive on stopping events and preventing event default behavior. This means that users have more control over events, making it easier to use interactive SVGs as layers and to embed maps on scrollable pages.
* Vector tile layers now have a `vector` render mode, which brings improved zooming experience for sources with not too much data.
* We replaced the previous pointer events polyfill to elm-pep, which should work better in web components.
## List of all changes
* [#10613](https://github.com/openlayers/openlayers/pull/10613) - Show KML name labels for Points in MultiGeometry ([@mike-000](https://github.com/mike-000))
* [#10632](https://github.com/openlayers/openlayers/pull/10632) - Draw interaction: Append coordinates to polygons and lines (reworked) ([@jahow](https://github.com/jahow))
* [#9565](https://github.com/openlayers/openlayers/pull/9565) - Make mousewheel zoom behave like trackpad zoom. ([@dbrnz](https://github.com/dbrnz))
* [#10580](https://github.com/openlayers/openlayers/pull/10580) - Fix KML Polystyle outline 0 conflict with Linestyle for linestrings ([@mike-000](https://github.com/mike-000))
* [#10612](https://github.com/openlayers/openlayers/pull/10612) - Make examples work in Internet Explorer ([@ahocevar](https://github.com/ahocevar))
* [#10587](https://github.com/openlayers/openlayers/pull/10587) - Adds option to View for using larger resolution value when clamping #10586 ([@jeremy-smith-maco](https://github.com/jeremy-smith-maco))
* [#10607](https://github.com/openlayers/openlayers/pull/10607) - Update elm-pep to fix builds for IE < 11 ([@ahocevar](https://github.com/ahocevar))
* [#10598](https://github.com/openlayers/openlayers/pull/10598) - Remove inheritDoc to work around JSDoc issue ([@ahocevar](https://github.com/ahocevar))
* [#10574](https://github.com/openlayers/openlayers/pull/10574) - Text rendering improvements ([@ahocevar](https://github.com/ahocevar))
* [#10591](https://github.com/openlayers/openlayers/pull/10591) - Remove obsolete license notice ([@ahocevar](https://github.com/ahocevar))
* [#10588](https://github.com/openlayers/openlayers/pull/10588) - Sort doc navigation properly and add missing modules ([@ahocevar](https://github.com/ahocevar))
* [#10581](https://github.com/openlayers/openlayers/pull/10581) - Use package-lock.json for the checksum calculation ([@DanielRuf](https://github.com/DanielRuf))
* [#10584](https://github.com/openlayers/openlayers/pull/10584) - fixed issue with version throwing an error if it is null ([@MrSoUndso](https://github.com/MrSoUndso))
* [#10575](https://github.com/openlayers/openlayers/pull/10575) - Fix ol/layer/Graticule rendercomplete problem ([@mike-000](https://github.com/mike-000))
* [#10562](https://github.com/openlayers/openlayers/pull/10562) - Zoomify: Separate the service pixel ratio and the device pixel ratio ([@crubier](https://github.com/crubier))
* [#10573](https://github.com/openlayers/openlayers/pull/10573) - Replace Bing layer with MapTiler in example ([@mike-000](https://github.com/mike-000))
* [#10570](https://github.com/openlayers/openlayers/pull/10570) - Use correct extent for the vector image ([@ahocevar](https://github.com/ahocevar))
* [#10572](https://github.com/openlayers/openlayers/pull/10572) - Assert each layer is only added to the map once ([@ahocevar](https://github.com/ahocevar))
* [#10563](https://github.com/openlayers/openlayers/pull/10563) - More compatible way of exporting a map as pdf ([@ahocevar](https://github.com/ahocevar))
* [#10545](https://github.com/openlayers/openlayers/pull/10545) - Make KML point feature styles compatible with declutter ([@mike-000](https://github.com/mike-000))
* [#10542](https://github.com/openlayers/openlayers/pull/10542) - Replace Bing layer with MapTiler in KML example ([@mike-000](https://github.com/mike-000))
* [#10543](https://github.com/openlayers/openlayers/pull/10543) - @api tag must not have a value. ([@MoonE](https://github.com/MoonE))
* [#10547](https://github.com/openlayers/openlayers/pull/10547) - Only generate module apidoc pages when it contains api tags ([@MoonE](https://github.com/MoonE))
* [#10502](https://github.com/openlayers/openlayers/pull/10502) - Stop events that originate with a removed target ([@walkermatt](https://github.com/walkermatt))
* [#10527](https://github.com/openlayers/openlayers/pull/10527) - Remove label cache, render text directly to target canvas ([@ahocevar](https://github.com/ahocevar))
* [#10534](https://github.com/openlayers/openlayers/pull/10534) - [GeoJSON] Read projection from CRS type EPSG ([@wussup](https://github.com/wussup))
* [#10430](https://github.com/openlayers/openlayers/pull/10430) - Offset regular shape ([@Razi91](https://github.com/Razi91))
* [#10513](https://github.com/openlayers/openlayers/pull/10513) - fixed flag-name in upgrade notes ([@fgubler](https://github.com/fgubler))
* [#10504](https://github.com/openlayers/openlayers/pull/10504) - Fix for reset north when rotation is 360 degrees ([@mike-000](https://github.com/mike-000))
* [#10510](https://github.com/openlayers/openlayers/pull/10510) - Remove build/apidoc before running jsdoc again ([@MoonE](https://github.com/MoonE))
* [#10498](https://github.com/openlayers/openlayers/pull/10498) - Fixing issue #10497 on behalf of LarryHuang ([@gazza0](https://github.com/gazza0))
* [#10496](https://github.com/openlayers/openlayers/pull/10496) - Do not stop events when dragging ([@ahocevar](https://github.com/ahocevar))
* [#10478](https://github.com/openlayers/openlayers/pull/10478) - Do not abort and dispose of tiles ([@ahocevar](https://github.com/ahocevar))
* [#10495](https://github.com/openlayers/openlayers/pull/10495) - typo in view.fit ([@danielklim](https://github.com/danielklim))
* [#10473](https://github.com/openlayers/openlayers/pull/10473) - Fix for undefined source in Vector layer ([@mike-000](https://github.com/mike-000))
* [#10484](https://github.com/openlayers/openlayers/pull/10484) - Use a function to get the value of the gradient ([@fredj](https://github.com/fredj))
* [#10262](https://github.com/openlayers/openlayers/pull/10262) - Rework to make Document and XMLSerializer lazy and injectable ([@bjornharrtell](https://github.com/bjornharrtell))
* [#10461](https://github.com/openlayers/openlayers/pull/10461) - Fix link in apidocs to ObjectEvent. ([@MoonE](https://github.com/MoonE))
* [#10413](https://github.com/openlayers/openlayers/pull/10413) - Limit the ZoomSlider's range to the view's constrained resolution. ([@MoonE](https://github.com/MoonE))
* [#10438](https://github.com/openlayers/openlayers/pull/10438) - Avoid accessing the DOM to read the viewport size too often ([@jahow](https://github.com/jahow))
* [#10439](https://github.com/openlayers/openlayers/pull/10439) - WebGL points layer / add support for symbol rotation ([@jahow](https://github.com/jahow))
* [#10434](https://github.com/openlayers/openlayers/pull/10434) - Disable image smoothing for the DEM source in the Sea Level example ([@mike-000](https://github.com/mike-000))
* [#10417](https://github.com/openlayers/openlayers/pull/10417) - Replace Bing layer with MapTiler ([@mike-000](https://github.com/mike-000))
* [#10415](https://github.com/openlayers/openlayers/pull/10415) - Control button span element pointer events ([@mike-000](https://github.com/mike-000))
* [#10409](https://github.com/openlayers/openlayers/pull/10409) - Improve viewport computation in WebGL Postprocessing ([@jahow](https://github.com/jahow))
* [#10119](https://github.com/openlayers/openlayers/pull/10119) - Add crossOrigin option to ol/format/KML for icons ([@mike-000](https://github.com/mike-000))
* [#10181](https://github.com/openlayers/openlayers/pull/10181) - add tags to example docs ([@roemhildtg](https://github.com/roemhildtg))
* [#10407](https://github.com/openlayers/openlayers/pull/10407) - Use render feature compatible extent check ([@ahocevar](https://github.com/ahocevar))
* [#10340](https://github.com/openlayers/openlayers/pull/10340) - Draw circles and custom geometry in user coordinates ([@mike-000](https://github.com/mike-000))
* [#10393](https://github.com/openlayers/openlayers/pull/10393) - getFeaturesInExtent function for ol/source/VectorTile ([@ahocevar](https://github.com/ahocevar))
* [#10402](https://github.com/openlayers/openlayers/pull/10402) - Do not preventDefault on pointerdown ([@ahocevar](https://github.com/ahocevar))
* [#10269](https://github.com/openlayers/openlayers/pull/10269) - Replace the BNG layer source in the Raster Reprojection example ([@mike-000](https://github.com/mike-000))
* [#10394](https://github.com/openlayers/openlayers/pull/10394) - Remove map renderer element when disposing ([@ahocevar](https://github.com/ahocevar))
* [#10391](https://github.com/openlayers/openlayers/pull/10391) - Use box-shadow css instead of filter ([@ahocevar](https://github.com/ahocevar))
* [#10392](https://github.com/openlayers/openlayers/pull/10392) - Fix interim tile handing for vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#10380](https://github.com/openlayers/openlayers/pull/10380) - Adjust examples for layer canvas pixel ratio and rotation ([@mike-000](https://github.com/mike-000))
* [#10384](https://github.com/openlayers/openlayers/pull/10384) - Include Transform typedef in API ([@mike-000](https://github.com/mike-000))
* [#10385](https://github.com/openlayers/openlayers/pull/10385) - Import transpiled rbush ([@walkermatt](https://github.com/walkermatt))
* [#10363](https://github.com/openlayers/openlayers/pull/10363) - Interactive SVG layer example ([@ahocevar](https://github.com/ahocevar))
* [#10120](https://github.com/openlayers/openlayers/pull/10120) - Resolve constraints using anchor if following a cancelled animation ([@mike-000](https://github.com/mike-000))
* [#10370](https://github.com/openlayers/openlayers/pull/10370) - Replace Bing layer with MapTiler ([@mike-000](https://github.com/mike-000))
* [#10362](https://github.com/openlayers/openlayers/pull/10362) - Remove line that was accidently added with #10332 ([@ahocevar](https://github.com/ahocevar))
* [#10309](https://github.com/openlayers/openlayers/pull/10309) - Bring back vector render mode for vector tile layers ([@ahocevar](https://github.com/ahocevar))
* [#10332](https://github.com/openlayers/openlayers/pull/10332) - Conditional default prevention instead of touch-action: none ([@ahocevar](https://github.com/ahocevar))
* [#10301](https://github.com/openlayers/openlayers/pull/10301) - Create hit detection data per layer and without requestAnimationFrame ([@ahocevar](https://github.com/ahocevar))
* [#10347](https://github.com/openlayers/openlayers/pull/10347) - Set utfgrid tile as loaded after load instead of empty ([@adube](https://github.com/adube))
* [#10344](https://github.com/openlayers/openlayers/pull/10344) - Fix lazy UTFGrid loading ([@ahocevar](https://github.com/ahocevar))
* [#10321](https://github.com/openlayers/openlayers/pull/10321) - Support touch events for DragBox interaction ([@greggian](https://github.com/greggian))
* [#10315](https://github.com/openlayers/openlayers/pull/10315) - Replace Bing sources in some examples ([@mike-000](https://github.com/mike-000))
* [#10330](https://github.com/openlayers/openlayers/pull/10330) - Fix modifying circle geometries ([@greggian](https://github.com/greggian))
* [#10318](https://github.com/openlayers/openlayers/pull/10318) - Use a minimalist pointer events polyfill ([@ahocevar](https://github.com/ahocevar))
* [#10322](https://github.com/openlayers/openlayers/pull/10322) - Update tile grid option descriptions ([@mike-000](https://github.com/mike-000))
* [#10308](https://github.com/openlayers/openlayers/pull/10308) - Fix feature lookup after removal of alpha ([@ahocevar](https://github.com/ahocevar))
* [#10310](https://github.com/openlayers/openlayers/pull/10310) - Ensure that OverviewMap respects the initial rotation of attached Maps ([@brianhelba](https://github.com/brianhelba))
* [#10302](https://github.com/openlayers/openlayers/pull/10302) - Do not use Math.sign() to support very old browsers ([@ahocevar](https://github.com/ahocevar))
* [#10295](https://github.com/openlayers/openlayers/pull/10295) - Do not fail when hit detecting features without style ([@ahocevar](https://github.com/ahocevar))
* [#10293](https://github.com/openlayers/openlayers/pull/10293) - Do not hit detect while tile is loading ([@ahocevar](https://github.com/ahocevar))
* [#10292](https://github.com/openlayers/openlayers/pull/10292) - Fix typo in jsdoc in ol/source/WMTS ([@jomue](https://github.com/jomue))
* [#10291](https://github.com/openlayers/openlayers/pull/10291) - tabindex without focus condition ([@ahocevar](https://github.com/ahocevar))
* [#10286](https://github.com/openlayers/openlayers/pull/10286) - Use passive option to avoid Chrome warning ([@ahocevar](https://github.com/ahocevar))
* [#10285](https://github.com/openlayers/openlayers/pull/10285) - Fix WMS GetLegendGraphic example codesandbox error ([@mike-000](https://github.com/mike-000))
* [#10283](https://github.com/openlayers/openlayers/pull/10283) - Use the originalEvent in the targetNotEditable condition ([@fredj](https://github.com/fredj))
* [#10282](https://github.com/openlayers/openlayers/pull/10282) - Fix documentation of Stroke.lineDash default value ([@jansule](https://github.com/jansule))
* [#10259](https://github.com/openlayers/openlayers/pull/10259) - Remove all the sketch features in abortDrawing ([@fredj](https://github.com/fredj))
* [#10265](https://github.com/openlayers/openlayers/pull/10265) - Update operators doc in WebGL points layer example ([@fredj](https://github.com/fredj))
* [#10256](https://github.com/openlayers/openlayers/pull/10256) - Do not bypass measureTextWidth ([@ahocevar](https://github.com/ahocevar))
* [#10264](https://github.com/openlayers/openlayers/pull/10264) - Remove unused variable from vertex shader ([@fredj](https://github.com/fredj))
* [#10257](https://github.com/openlayers/openlayers/pull/10257) - Allow View.adjust* methods to take a null opt_anchor ([@brianhelba](https://github.com/brianhelba))
* [#10261](https://github.com/openlayers/openlayers/pull/10261) - WebGL / do not throw error when shader compilation gives a warning ([@jahow](https://github.com/jahow))
* [#10255](https://github.com/openlayers/openlayers/pull/10255) - Don't use instanceof HTMLElement in handleMapBrowserEvent ([@fredj](https://github.com/fredj))
<details>
<summary>Dependency Updates</summary>
* [#10629](https://github.com/openlayers/openlayers/pull/10629) - Bump ol-mapbox-style from 6.0.0 to 6.0.1 ([@openlayers](https://github.com/openlayers))
* [#10628](https://github.com/openlayers/openlayers/pull/10628) - Bump puppeteer from 2.1.0 to 2.1.1 ([@openlayers](https://github.com/openlayers))
* [#10627](https://github.com/openlayers/openlayers/pull/10627) - Bump handlebars from 4.7.2 to 4.7.3 ([@openlayers](https://github.com/openlayers))
* [#10626](https://github.com/openlayers/openlayers/pull/10626) - Bump webpack-dev-server from 3.10.2 to 3.10.3 ([@openlayers](https://github.com/openlayers))
* [#10600](https://github.com/openlayers/openlayers/pull/10600) - Bump puppeteer from 2.0.0 to 2.1.0 ([@openlayers](https://github.com/openlayers))
* [#10606](https://github.com/openlayers/openlayers/pull/10606) - Bump @babel/core from 7.8.3 to 7.8.4 ([@openlayers](https://github.com/openlayers))
* [#10605](https://github.com/openlayers/openlayers/pull/10605) - Bump webpack-dev-server from 3.10.1 to 3.10.2 ([@openlayers](https://github.com/openlayers))
* [#10604](https://github.com/openlayers/openlayers/pull/10604) - Bump rollup from 1.29.1 to 1.31.0 ([@openlayers](https://github.com/openlayers))
* [#10603](https://github.com/openlayers/openlayers/pull/10603) - Bump @babel/preset-env from 7.8.3 to 7.8.4 ([@openlayers](https://github.com/openlayers))
* [#10602](https://github.com/openlayers/openlayers/pull/10602) - Bump url-polyfill from 1.1.7 to 1.1.8 ([@openlayers](https://github.com/openlayers))
* [#10601](https://github.com/openlayers/openlayers/pull/10601) - Bump terser-webpack-plugin from 2.3.2 to 2.3.4 ([@openlayers](https://github.com/openlayers))
* [#10578](https://github.com/openlayers/openlayers/pull/10578) - Bump sinon from 8.1.0 to 8.1.1 ([@openlayers](https://github.com/openlayers))
* [#10577](https://github.com/openlayers/openlayers/pull/10577) - Bump mocha from 7.0.0 to 7.0.1 ([@openlayers](https://github.com/openlayers))
* [#10576](https://github.com/openlayers/openlayers/pull/10576) - Bump rollup from 1.29.0 to 1.29.1 ([@openlayers](https://github.com/openlayers))
* [#10551](https://github.com/openlayers/openlayers/pull/10551) - Bump handlebars from 4.7.1 to 4.7.2 ([@openlayers](https://github.com/openlayers))
* [#10550](https://github.com/openlayers/openlayers/pull/10550) - Bump @babel/preset-env from 7.8.2 to 7.8.3 ([@openlayers](https://github.com/openlayers))
* [#10549](https://github.com/openlayers/openlayers/pull/10549) - Bump sinon from 8.0.4 to 8.1.0 ([@openlayers](https://github.com/openlayers))
* [#10548](https://github.com/openlayers/openlayers/pull/10548) - Bump @babel/core from 7.8.0 to 7.8.3 ([@openlayers](https://github.com/openlayers))
* [#10518](https://github.com/openlayers/openlayers/pull/10518) - Bump front-matter from 3.0.2 to 3.1.0 ([@openlayers](https://github.com/openlayers))
* [#10516](https://github.com/openlayers/openlayers/pull/10516) - Bump handlebars from 4.5.3 to 4.7.1 ([@openlayers](https://github.com/openlayers))
* [#10514](https://github.com/openlayers/openlayers/pull/10514) - Bump terser-webpack-plugin from 2.3.1 to 2.3.2 ([@openlayers](https://github.com/openlayers))
* [#10523](https://github.com/openlayers/openlayers/pull/10523) - Bump sinon from 8.0.2 to 8.0.4 ([@openlayers](https://github.com/openlayers))
* [#10515](https://github.com/openlayers/openlayers/pull/10515) - Bump @babel/preset-env from 7.7.7 to 7.8.2 ([@openlayers](https://github.com/openlayers))
* [#10517](https://github.com/openlayers/openlayers/pull/10517) - Bump karma-firefox-launcher from 1.2.0 to 1.3.0 ([@openlayers](https://github.com/openlayers))
* [#10519](https://github.com/openlayers/openlayers/pull/10519) - Bump @babel/core from 7.7.7 to 7.8.0 ([@openlayers](https://github.com/openlayers))
* [#10520](https://github.com/openlayers/openlayers/pull/10520) - Bump globby from 10.0.1 to 11.0.0 ([@openlayers](https://github.com/openlayers))
* [#10521](https://github.com/openlayers/openlayers/pull/10521) - Bump rollup-plugin-terser from 5.1.3 to 5.2.0 ([@openlayers](https://github.com/openlayers))
* [#10522](https://github.com/openlayers/openlayers/pull/10522) - Bump rollup from 1.28.0 to 1.29.0 ([@openlayers](https://github.com/openlayers))
* [#10480](https://github.com/openlayers/openlayers/pull/10480) - Bump mocha from 6.2.2 to 7.0.0 ([@openlayers](https://github.com/openlayers))
* [#10482](https://github.com/openlayers/openlayers/pull/10482) - Bump sinon from 8.0.1 to 8.0.2 ([@openlayers](https://github.com/openlayers))
* [#10481](https://github.com/openlayers/openlayers/pull/10481) - Bump yargs from 15.0.2 to 15.1.0 ([@openlayers](https://github.com/openlayers))
* [#10479](https://github.com/openlayers/openlayers/pull/10479) - Bump rollup from 1.27.14 to 1.28.0 ([@openlayers](https://github.com/openlayers))
* [#10466](https://github.com/openlayers/openlayers/pull/10466) - Bump webpack from 4.41.4 to 4.41.5 ([@openlayers](https://github.com/openlayers))
* [#10467](https://github.com/openlayers/openlayers/pull/10467) - Bump sinon from 8.0.0 to 8.0.1 ([@openlayers](https://github.com/openlayers))
* [#10450](https://github.com/openlayers/openlayers/pull/10450) - Bump @babel/core from 7.7.5 to 7.7.7 ([@openlayers](https://github.com/openlayers))
* [#10449](https://github.com/openlayers/openlayers/pull/10449) - Bump eslint from 6.7.2 to 6.8.0 ([@openlayers](https://github.com/openlayers))
* [#10448](https://github.com/openlayers/openlayers/pull/10448) - Bump rollup from 1.27.13 to 1.27.14 ([@openlayers](https://github.com/openlayers))
* [#10447](https://github.com/openlayers/openlayers/pull/10447) - Bump @babel/preset-env from 7.7.6 to 7.7.7 ([@openlayers](https://github.com/openlayers))
* [#10446](https://github.com/openlayers/openlayers/pull/10446) - Bump sinon from 7.5.0 to 8.0.0 ([@openlayers](https://github.com/openlayers))
* [#10445](https://github.com/openlayers/openlayers/pull/10445) - Bump webpack from 4.41.2 to 4.41.4 ([@openlayers](https://github.com/openlayers))
* [#10444](https://github.com/openlayers/openlayers/pull/10444) - Bump terser-webpack-plugin from 2.3.0 to 2.3.1 ([@openlayers](https://github.com/openlayers))
* [#10443](https://github.com/openlayers/openlayers/pull/10443) - Bump webpack-dev-server from 3.9.0 to 3.10.1 ([@openlayers](https://github.com/openlayers))
* [#10425](https://github.com/openlayers/openlayers/pull/10425) - Bump elm-pep from 1.0.2 to 1.0.3 ([@openlayers](https://github.com/openlayers))
* [#10427](https://github.com/openlayers/openlayers/pull/10427) - Bump webpack-cli from 3.3.2 to 3.3.10 ([@openlayers](https://github.com/openlayers))
* [#10426](https://github.com/openlayers/openlayers/pull/10426) - Bump copy-webpack-plugin from 5.0.5 to 5.1.1 ([@openlayers](https://github.com/openlayers))
* [#10424](https://github.com/openlayers/openlayers/pull/10424) - Bump eslint from 6.7.1 to 6.7.2 ([@openlayers](https://github.com/openlayers))
* [#10423](https://github.com/openlayers/openlayers/pull/10423) - Bump marked from 0.7.0 to 0.8.0 ([@openlayers](https://github.com/openlayers))
* [#10422](https://github.com/openlayers/openlayers/pull/10422) - Bump url-polyfill from 1.1.5 to 1.1.7 ([@openlayers](https://github.com/openlayers))
* [#10421](https://github.com/openlayers/openlayers/pull/10421) - Bump rollup-plugin-terser from 5.1.2 to 5.1.3 ([@openlayers](https://github.com/openlayers))
* [#10420](https://github.com/openlayers/openlayers/pull/10420) - Bump terser-webpack-plugin from 2.2.2 to 2.3.0 ([@openlayers](https://github.com/openlayers))
* [#10419](https://github.com/openlayers/openlayers/pull/10419) - Bump rollup from 1.27.9 to 1.27.13 ([@openlayers](https://github.com/openlayers))
* [#10418](https://github.com/openlayers/openlayers/pull/10418) - Bump babel-loader from 8.0.5 to 8.0.6 ([@openlayers](https://github.com/openlayers))
* [#10399](https://github.com/openlayers/openlayers/pull/10399) - Bump rollup from 1.25.1 to 1.27.9 ([@openlayers](https://github.com/openlayers))
* [#10398](https://github.com/openlayers/openlayers/pull/10398) - Bump terser-webpack-plugin from 2.2.1 to 2.2.2 ([@openlayers](https://github.com/openlayers))
* [#10397](https://github.com/openlayers/openlayers/pull/10397) - Bump @babel/core from 7.7.4 to 7.7.5 ([@openlayers](https://github.com/openlayers))
* [#10396](https://github.com/openlayers/openlayers/pull/10396) - Bump @babel/preset-env from 7.7.4 to 7.7.6 ([@openlayers](https://github.com/openlayers))
* [#10365](https://github.com/openlayers/openlayers/pull/10365) - Bump @babel/preset-env from 7.6.3 to 7.7.4 ([@openlayers](https://github.com/openlayers))
* [#10366](https://github.com/openlayers/openlayers/pull/10366) - Bump karma-coverage-istanbul-reporter from 2.1.0 to 2.1.1 ([@openlayers](https://github.com/openlayers))
* [#10367](https://github.com/openlayers/openlayers/pull/10367) - Bump coveralls from 3.0.7 to 3.0.9 ([@openlayers](https://github.com/openlayers))
* [#10368](https://github.com/openlayers/openlayers/pull/10368) - Bump sinon from 7.3.2 to 7.5.0 ([@openlayers](https://github.com/openlayers))
* [#10369](https://github.com/openlayers/openlayers/pull/10369) - Bump @babel/core from 7.7.2 to 7.7.4 ([@openlayers](https://github.com/openlayers))
* [#10337](https://github.com/openlayers/openlayers/pull/10337) - Bump fs-extra from 8.0.1 to 8.1.0 ([@openlayers](https://github.com/openlayers))
* [#10336](https://github.com/openlayers/openlayers/pull/10336) - Bump eslint from 6.6.0 to 6.7.1 ([@openlayers](https://github.com/openlayers))
* [#10335](https://github.com/openlayers/openlayers/pull/10335) - Bump yargs from 14.2.0 to 15.0.2 ([@openlayers](https://github.com/openlayers))
* [#10334](https://github.com/openlayers/openlayers/pull/10334) - Bump webpack-dev-middleware from 3.6.2 to 3.7.2 ([@openlayers](https://github.com/openlayers))
* [#10333](https://github.com/openlayers/openlayers/pull/10333) - Bump copy-webpack-plugin from 5.0.4 to 5.0.5 ([@openlayers](https://github.com/openlayers))
* [#10306](https://github.com/openlayers/openlayers/pull/10306) - Bump puppeteer from 1.20.0 to 2.0.0 ([@openlayers](https://github.com/openlayers))
* [#10307](https://github.com/openlayers/openlayers/pull/10307) - Bump @babel/core from 7.6.4 to 7.7.2 ([@openlayers](https://github.com/openlayers))
* [#10305](https://github.com/openlayers/openlayers/pull/10305) - Bump proj4 from 2.5.0 to 2.6.0 ([@openlayers](https://github.com/openlayers))
* [#10304](https://github.com/openlayers/openlayers/pull/10304) - Bump handlebars from 4.4.5 to 4.5.3 ([@openlayers](https://github.com/openlayers))
* [#10303](https://github.com/openlayers/openlayers/pull/10303) - Bump glob from 7.1.5 to 7.1.6 ([@openlayers](https://github.com/openlayers))
* [#10280](https://github.com/openlayers/openlayers/pull/10280) - Bump rollup-plugin-commonjs from 10.0.0 to 10.1.0 ([@openlayers](https://github.com/openlayers))
* [#10279](https://github.com/openlayers/openlayers/pull/10279) - Bump rollup-plugin-terser from 5.0.0 to 5.1.2 ([@openlayers](https://github.com/openlayers))
* [#10278](https://github.com/openlayers/openlayers/pull/10278) - Bump eslint from 6.0.0 to 6.6.0 ([@openlayers](https://github.com/openlayers))
* [#10277](https://github.com/openlayers/openlayers/pull/10277) - Bump karma-webpack from 4.0.0-rc.6 to 4.0.2 ([@openlayers](https://github.com/openlayers))
* [#10276](https://github.com/openlayers/openlayers/pull/10276) - Bump webpack-dev-server from 3.3.1 to 3.9.0 ([@openlayers](https://github.com/openlayers))
* [#10251](https://github.com/openlayers/openlayers/pull/10251) - Bump @babel/preset-env from 7.4.4 to 7.6.3 ([@openlayers](https://github.com/openlayers))
* [#10250](https://github.com/openlayers/openlayers/pull/10250) - Bump buble from 0.19.7 to 0.19.8 ([@openlayers](https://github.com/openlayers))
* [#10249](https://github.com/openlayers/openlayers/pull/10249) - Bump karma-firefox-launcher from 1.1.0 to 1.2.0 ([@openlayers](https://github.com/openlayers))
* [#10248](https://github.com/openlayers/openlayers/pull/10248) - Bump html-to-image from 0.1.0 to 0.1.1 ([@openlayers](https://github.com/openlayers))
* [#10247](https://github.com/openlayers/openlayers/pull/10247) - Bump terser-webpack-plugin from 2.0.1 to 2.2.1 ([@openlayers](https://github.com/openlayers))
</details>

13
changelog/v6.2.1.md Normal file
View File

@@ -0,0 +1,13 @@
# 6.2.1
This is a bugfix release which resolves bundler issues due to a circular dependency, and brings a few documentation and example fixes.
## List of all changes
* [#10656](https://github.com/openlayers/openlayers/pull/10656) - Fix for export PDF example compatibility issues, and layer opacity handling. ([@mike-000](https://github.com/mike-000))
* [#10653](https://github.com/openlayers/openlayers/pull/10653) - More reliable check for module content beyond classes ([@ahocevar](https://github.com/ahocevar))
* [#10617](https://github.com/openlayers/openlayers/pull/10617) - Improve apidoc generation performance ([@MoonE](https://github.com/MoonE))
* [#10625](https://github.com/openlayers/openlayers/pull/10625) - Apidoc cleanup navigation html ([@MoonE](https://github.com/MoonE))
* [#10649](https://github.com/openlayers/openlayers/pull/10649) - Remove circular dependency ([@ahocevar](https://github.com/ahocevar))
* [#10637](https://github.com/openlayers/openlayers/pull/10637) - Develop on 6.2.1 ([@openlayers](https://github.com/openlayers))

View File

@@ -34,7 +34,7 @@ Interactions for <a href="module-ol_Feature-Feature.html">vector features</a>
<tr><th>Projections</th><th>Observable objects</th><th>Other components</th></tr>
<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>
<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>
<td>
<a href="module-ol_Geolocation.html">ol/Geolocation</a><br>
<a href="module-ol_Overlay-Overlay.html">ol/Overlay</a><br></td>

View File

@@ -4,7 +4,7 @@
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('api', {
mustHaveValue: false,
mustNotHaveValue: true,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
@@ -21,15 +21,11 @@ exports.defineTags = function(dictionary) {
* from the documentation.
*/
const api = [];
const api = {};
const classes = {};
const types = {};
const modules = {};
function hasApiMembers(doclet) {
return doclet.longname.split('#')[0] == this.longname;
}
function includeAugments(doclet) {
// Make sure that `observables` and `fires` are taken from an already processed `class` doclet.
// This is necessary because JSDoc generates multiple doclets with the same longname.
@@ -116,10 +112,9 @@ exports.handlers = {
const doclet = e.doclet;
if (doclet.stability) {
modules[doclet.longname.split(/[~\.]/).shift()] = true;
api.push(doclet);
api[doclet.longname.split('#')[0]] = true;
}
if (doclet.kind == 'class') {
modules[doclet.longname.split(/[~\.]/).shift()] = true;
if (!(doclet.longname in classes)) {
classes[doclet.longname] = doclet;
} else if ('augments' in doclet) {
@@ -160,7 +155,7 @@ exports.handlers = {
if (doclet.isEnum || doclet.kind == 'typedef') {
continue;
}
if (doclet.kind == 'class' && api.some(hasApiMembers, doclet)) {
if (doclet.kind == 'class' && doclet.longname in api) {
// Mark undocumented classes with documented members as unexported.
// This is used in ../template/tmpl/container.tmpl to hide the
// constructor from the docs.

View File

@@ -5,7 +5,7 @@
exports.defineTags = function(dictionary) {
dictionary.defineTag('inheritDoc', {
mustHaveValue: false,
mustNotHaveValue: true,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
@@ -42,62 +42,62 @@ exports.handlers = {
parseComplete: function(e) {
let ancestors, candidate, candidates, doclet, i, j, k, l, key;
let incompleteDoclet, stability, incomplete, incompletes;
let stability, incomplete, incompletes;
const doclets = e.doclets;
for (i = doclets.length - 1; i >= 0; --i) {
doclet = doclets[i];
if (doclet.augments) {
ancestors = [].concat(doclet.augments);
}
incompletes = incompleteByClass[doclet.longname];
if (ancestors && incompletes) {
// collect ancestors from the whole hierarchy
for (j = 0; j < ancestors.length; ++j) {
candidates = lookup[ancestors[j]];
if (candidates) {
for (k = candidates.length - 1; k >= 0; --k) {
candidate = candidates[k];
if (candidate.augments) {
ancestors = ancestors.concat(candidate.augments);
}
if (!doclet.augments || !incompletes) {
continue;
}
ancestors = doclet.augments.slice();
// collect ancestors from the whole hierarchy
for (j = 0; j < ancestors.length; ++j) {
candidates = lookup[ancestors[j]];
if (candidates) {
for (k = candidates.length - 1; k >= 0; --k) {
candidate = candidates[k];
if (candidate.augments) {
Array.prototype.push.apply(ancestors, candidate.augments);
}
}
}
// walk through all inheritDoc members
for (j = incompletes.length - 1; j >= 0; --j) {
incomplete = incompletes[j];
candidates = lookup[doclet.longname + '#' + incomplete];
if (candidates) {
// get the incomplete doclet that needs to be augmented
for (k = candidates.length - 1; k >= 0; --k) {
incompleteDoclet = candidates[k];
if (incompleteDoclet.inheritdoc) {
break;
}
}
// walk through all inheritDoc members
let incompleteDoclet;
for (j = incompletes.length - 1; j >= 0; --j) {
incomplete = incompletes[j];
candidates = lookup[doclet.longname + '#' + incomplete];
if (candidates) {
// get the incomplete doclet that needs to be augmented
for (k = candidates.length - 1; k >= 0; --k) {
incompleteDoclet = candidates[k];
if (incompleteDoclet.inheritdoc) {
break;
}
}
// find the documented ancestor
for (k = ancestors.length - 1; k >= 0; --k) {
candidates = lookup[ancestors[k] + '#' + incomplete];
if (candidates) {
for (l = candidates.length - 1; l >= 0; --l) {
candidate = candidates[l];
if (candidate && !candidate.inheritdoc) {
stability = candidate.stability || incompleteDoclet.stability;
if (stability) {
incompleteDoclet.stability = stability;
for (key in candidate) {
if (candidate.hasOwnProperty(key) &&
keepKeys.indexOf(key) == -1) {
incompleteDoclet[key] = candidate[key];
}
}
// find the documented ancestor
for (k = ancestors.length - 1; k >= 0; --k) {
candidates = lookup[ancestors[k] + '#' + incomplete];
if (candidates) {
for (l = candidates.length - 1; l >= 0; --l) {
candidate = candidates[l];
if (candidate && !candidate.inheritdoc) {
stability = candidate.stability || incompleteDoclet.stability;
if (stability) {
incompleteDoclet.stability = stability;
for (key in candidate) {
if (candidate.hasOwnProperty(key) &&
keepKeys.indexOf(key) == -1) {
incompleteDoclet[key] = candidate[key];
}
// We have found a matching parent doc and applied it so we
// don't want to ignore this doclet anymore.
incompleteDoclet.ignore = false;
// We found a match so we can stop break
break;
}
// We have found a matching parent doc and applied it so we
// don't want to ignore this doclet anymore.
incompleteDoclet.ignore = false;
// We found a match so we can stop break
break;
}
}
}

View File

@@ -1,9 +0,0 @@
@navWidth: 250px;
@colorSubtitle: rgb(119, 156, 52);
@colorRed: rgb(238, 125, 125);
@colorLink: #2a6496;
@colorBgNavi: #2a2a2a;
.font-description () {
font-family: "freight-text-pro",Georgia,Cambria,"Times New Roman",Times,serif
}

View File

@@ -1,10 +0,0 @@
@import "common.less";
footer {
margin: 15px 0;
padding-top: 15px;
border-top: 1px solid #e1e1e1;
.font-description();
font-size: 0.8em;
color: gray;
}

View File

@@ -1,22 +0,0 @@
@import "common.less";
// normalize
html, body {
font: 1em "jaf-bernino-sans","Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;
background-color: #fff;
}
ul, ol {
margin: 0;
padding: 0;
}
li {
list-style-type: none;
}
#wrap {
position: relative;
}
@import "navigation.less";
@import "main.less";
@import "footer.less";

View File

@@ -1,288 +0,0 @@
@import "common.less";
.main {
padding: 20px 20px;
margin-left: @navWidth;
.page-title {
display: none;
}
h1 {
font-weight: bold;
font-size: 1.6em;
margin: 0;
}
h2 {
font-weight: bold;
font-size: 1.5em;
margin: 0;
}
h3 {
font-weight: bold;
font-size: 12px;
margin: 5px 0;
}
h4 {
font-weight: bold;
font-size: 1em;
}
h5 {
font-weight: bold;
font-size: 12px;
}
dd {
font-size: 12px;
}
h4.name {
span.type-signature {
display: inline-block;
border-radius: 3px;
background-color: gray;
color: #fff;
font-size: 0.7em;
padding: 2px 4px;
}
span.type {
margin-left: 5px;
}
span.glyphicon {
display: inline-block;
vertical-align: middle;
color: #e1e1e1;
margin-left: 7px;
}
span.returnType {
margin-left: 3px;
background-color: transparent!important;
color: gray!important;
}
}
span.static {
display: inline-block;
border-radius: 3px;
background-color: @colorSubtitle!important;
color: #fff;
font-size: 0.7em;
padding: 2px 4px;
margin-right: 8px;
}
span.number {
background-color: #ccc!important;
color: #2fa2b1!important;
}
span.string {
background-color: #ccc!important;
color: #2fa2b1!important;
}
span.object {
background-color: #ccc!important;
color: #2fa2b1!important;
}
span.array {
background-color: #ccc!important;
color: #2fa2b1!important;
}
span.boolean {
background-color: #ccc!important;
color: #2fa2b1!important;
}
.subsection-title {
font-size: 14px;
margin-top: 30px;
color: @colorSubtitle;
}
.description {
margin-top: 10px;
// .font-description();
font-size: 13px;
p {
font-size: 13px;
}
}
.tag-source {
font-size: 12px;
}
dt.tag-source {
margin-top: 5px;
}
dt.tag-todo {
font-size: 10px;
display: inline-block;
background-color: @colorLink;
color: #fff;
padding: 2px 4px;
border-radius: 5px;
}
.type-signature {
font-size: 12px;
}
.tag-deprecated {
display: inline-block;
font-size: 10px;
}
.important {
background-color: @colorRed;
color: #fff;
padding: 2px 4px;
border-radius: 5px;
}
.nameContainer {
position: relative;
margin-top: 20px;
padding-top: 5px;
border-top: 1px solid #e1e1e1;
.inherited {
display: inline-block;
border-radius: 3px;
background-color: #888!important;
font-size: 0.7em;
padding: 2px 4px;
margin-right: 5px;
a {
color: #fff;
}
}
.tag-source {
position: absolute;
top: 17px;
right: 0;
font-size: 10px;
a {
color: gray;
}
}
&.inherited {
color: gray;
}
h4 {
margin-right: 150px;
line-height: 1.3;
.signature {
font-size: 13px;
font-weight: normal;
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
}
}
}
pre {
font-size: 11px;
}
table {
width: 100%;
margin-bottom: 15px;
th {
padding: 3px 3px;
}
td {
vertical-align: top;
padding: 5px 3px;
}
.name {
width: 110px;
}
.type {
width: 60px;
color: #aaa;
font-size: 11px;
}
.attributes {
width: 80px;
color: #aaa;
font-size: 11px;
}
.description {
font-size: 12px;
p {
margin: 0;
}
}
.optional {
float: left;
border-radius: 3px;
background-color: #ddd!important;
font-size: 0.7em;
padding: 2px 4px;
margin-right: 5px;
color: gray;
}
}
.readme {
p {
margin-top: 15px;
line-height: 1.2;
font-size: 0.85em;
}
h1 {
font-size: 1.7em;
}
h2 {
margin-top: 30px;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #e1e1e1;
}
li {
font-size: 0.9em;
margin-bottom: 10px;
}
}
article {
ol, ul {
margin-left: 25px;
}
ol > li {
list-style-type: decimal;
margin-bottom: 5px;
}
ul > li {
margin-bottom: 5px;
list-style-type: disc;
}
}
}

View File

@@ -1,103 +0,0 @@
@import "common.less";
::-webkit-scrollbar {
width: 8px;
background-color: transparent;
}
::-webkit-scrollbar-thumb {
background-color: gray;
border-radius: 4px;
}
.navigation {
position: fixed;
float: left;
width: @navWidth;
height: 100%;
background-color: @colorBgNavi;
.applicationName {
margin: 0;
margin-top: 15px;
padding: 10px 15px;
font: bold 1.25em Helvetica;
color: #fff;
a {
color: #fff;
}
}
.search {
padding: 10px 15px;
input {
background-color: #333;
color: #fff;
border-color: #555;
}
}
.list {
padding: 10px 15px 0 15px;
position: relative;
overflow: auto;
width: 100%;
}
li.item {
margin-bottom: 8px;
padding-bottom: 8px;
border-bottom: 1px solid #333;
a {
color: #bbb;
&:hover {
color: #fff;
}
}
.title {
cursor: pointer;
position: relative;
a {
color: #e1e1e1;
&:hover {
color: #fff;
}
}
display: block;
font-size: 0.8em;
.static {
display: block;
border-radius: 3px;
background-color: @colorSubtitle;
color: #000;
font-size: 0.7em;
padding: 2px 4px;
float: right;
}
}
.subtitle {
margin-top: 10px;
font: bold 0.65em Helvetica;
color: @colorSubtitle;
display: block;
}
ul {
& > li {
font-size: 0.7em;
padding-left: 8px;
margin-top: 2px;
}
}
.itemMembers {
display: none;
}
}
}

View File

@@ -188,6 +188,12 @@ function attachModuleSymbols(doclets, modules) {
});
}
function getPrettyName(longname) {
return longname
.split('~')[0]
.replace('module:', '');
}
/**
* Create the navigation sidebar.
* @param {object} members The members that will be used to create the sidebar.
@@ -206,47 +212,82 @@ function buildNav(members) {
// merge namespaces and classes, then sort
const merged = members.modules.concat(members.classes);
merged.sort(function(a, b) {
if (a.longname > b.longname) {
const prettyNameA = getPrettyName(a.longname).toLowerCase();
const prettyNameB = getPrettyName(b.longname).toLowerCase();
if (prettyNameA > prettyNameB) {
return 1;
}
if (a.longname < b.longname) {
if (prettyNameA < prettyNameB) {
return -1;
}
return 0;
});
function createEntry(type, v) {
return {
type: type,
longname: v.longname,
name: v.name,
classes: find({
kind: 'class',
memberof: v.longname
}).map(createEntry.bind(this, 'class')),
members: find({
kind: 'member',
memberof: v.longname
}),
methods: find({
kind: 'function',
memberof: v.longname
}),
typedefs: find({
kind: 'typedef',
memberof: v.longname
}),
events: find({
kind: 'event',
memberof: v.longname
})
};
}
_.each(merged, function(v) {
// exclude interfaces from sidebar
if (v.interface !== true) {
if (v.kind == 'module') {
nav.push(createEntry('module', v));
if (v.interface !== true && v.kind === 'class') {
nav.push({
type: 'class',
longname: v.longname,
prettyname: getPrettyName(v.longname),
name: v.name,
module: find({
kind: 'module',
longname: v.memberof
})[0],
members: find({
kind: 'member',
memberof: v.longname
}),
methods: find({
kind: 'function',
memberof: v.longname
}),
typedefs: find({
kind: 'typedef',
memberof: v.longname
}),
fires: v.fires,
events: find({
kind: 'event',
memberof: v.longname
})
});
} else if (v.kind == 'module') {
const classes = find({
kind: 'class',
memberof: v.longname
});
const members = find({
kind: 'member',
memberof: v.longname
});
const methods = find({
kind: 'function',
memberof: v.longname
});
const typedefs = find({
kind: 'typedef',
memberof: v.longname
});
const events = find({
kind: 'event',
memberof: v.longname
});
// Only add modules that contain more than just classes with their
// associated Options typedef
if (typedefs.length > classes.length || members.length + methods.length > 0) {
nav.push({
type: 'module',
longname: v.longname,
prettyname: getPrettyName(v.longname),
name: v.name,
members: members,
methods: methods,
typedefs: typedefs,
fires: v.fires,
events: events
});
}
}
});
@@ -436,6 +477,7 @@ exports.publish = function(taffyData, opts, tutorials) {
// index page displays information from package.json and lists files
const files = find({kind: 'file'});
view.navigationHtml = helper.resolveLinks(view.partial('navigation.tmpl'));
generate('Index',
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}].concat(files),
indexUrl);

View File

@@ -1,121 +1,158 @@
$(function () {
// Search Items
$('#search').on('keyup', function (e) {
var value = $(this).val();
var $el = $('.navigation');
// Search Items
$('#include_modules').change(function (e) {
console.log('change');
if ($(this).is(':checked')) {
if (value) {
var regexp = new RegExp(value, 'i');
$el.find('li, .itemMembers').hide();
} else {
$el.find('li').each(function (i, v) {
var $item = $(v);
}
});
if ($item.data('name') && regexp.test($item.data('name'))) {
const container = $item.parent().parent().parent();
container.show();
container.closest('.itemMembers').show();
container.closest('.item').show();
$item.show();
$item.closest('.itemMembers').show();
$item.closest('.item').show();
}
});
} else {
$el.find('.item, .itemMembers').hide();
$('.navigation>ul>li').show();
var getSearchWeight = function (searchTerm, $matchedItem) {
let weight = 0;
// We could get smarter on the weight here
if ($matchedItem.data('shortname')
&& $matchedItem.data('shortname').toLowerCase() === searchTerm.toLowerCase()) {
weight++;
}
return weight;
};
// sort function callback
var weightSorter = function (a, b) {
var aW = $(a).data('weight') || 0;
var bW = $(b).data('weight') || 0;
return bW - aW;
};
// Search Items
$('#search').on('keyup', function (e) {
var value = $(this).val();
var $el = $('.navigation');
if (value && value.length > 1) {
var regexp = new RegExp(value, 'i');
$el.find('li, .member-list').hide();
$el.find('li').each(function (i, v) {
const $item = $(v);
const name = $item.data('name');
if (name && regexp.test(name)) {
const $classEntry = $item.closest('.item');
const $members = $item.closest('.member-list');
// Do the weight thing
$classEntry.removeData('weight');
$classEntry.show();
const weight = getSearchWeight(value, $classEntry);
$classEntry.data('weight', weight);
$members.show();
$classEntry.show();
$item.show();
}
});
$el.find('.list').scrollTop(0);
});
$(".navigation ul.list li.item:visible")
.sort(weightSorter) // sort elements
.appendTo(".navigation ul.list"); // append again to the list
// Toggle when click an item element
$('.navigation').on('click', '.title', function (e) {
$(this).parent().find('.itemMembers').toggle();
});
// Show an item related a current documentation automatically
var filename = $('.page-title').data('filename')
.replace(/\.[a-z]+$/, '')
.replace('module-', 'module:')
.replace(/_/g, '/')
.replace(/-/g, '~');
var $currentItem = $('.navigation .item[data-name*="' + filename + '"]:eq(0)');
if ($currentItem.length) {
$currentItem
.remove()
.prependTo('.navigation .list')
.show()
.find('.itemMembers')
.show();
} else {
$el.find('.item, .member-list').show();
}
// Auto resizing on navigation
var _onResize = function () {
var height = $(window).height();
var $el = $('.navigation');
$el.find('.list').scrollTop(0);
});
$el.height(height).find('.list').height(height - 133);
};
// Toggle when click an item element
$('.navigation').on('click', '.toggle', function (e) {
$(this).parent().parent().find('.member-list').toggle();
});
$(window).on('resize', _onResize);
_onResize();
// Show an item related a current documentation automatically
var filename = $('.page-title').data('filename')
.replace(/\.[a-z]+$/, '')
.replace('module-', 'module:')
.replace(/_/g, '/')
.replace(/-/g, '~');
var $currentItem = $('.navigation .item[data-name*="' + filename + '"]:eq(0)');
var currentVersion = document.getElementById('package-version').innerHTML;
if ($currentItem.length) {
$currentItem
.remove()
.prependTo('.navigation .list')
.show()
.find('.member-list')
.show();
}
// warn about outdated version
var packageUrl = 'https://raw.githubusercontent.com/openlayers/openlayers.github.io/build/package.json';
fetch(packageUrl).then(function(response) {
return response.json();
}).then(function(json) {
var latestVersion = json.version;
document.getElementById('latest-version').innerHTML = latestVersion;
var url = window.location.href;
var branchSearch = url.match(/\/([^\/]*)\/apidoc\//);
var cookieText = 'dismissed=-' + latestVersion + '-';
var dismissed = document.cookie.indexOf(cookieText) != -1;
if (!dismissed && /^v[0-9\.]*$/.test(branchSearch[1]) && currentVersion != latestVersion) {
var link = url.replace(branchSearch[0], '/latest/apidoc/');
fetch(link, {method: 'head'}).then(function(response) {
var a = document.getElementById('latest-link');
a.href = response.status == 200 ? link : '../../latest/apidoc/';
});
var latestCheck = document.getElementById('latest-check');
latestCheck.style.display = '';
document.getElementById('latest-dismiss').onclick = function() {
latestCheck.style.display = 'none';
document.cookie = cookieText;
}
// Auto resizing on navigation
var _onResize = function () {
var height = $(window).height();
var $el = $('.navigation');
$el.height(height).find('.list').height(height - 133);
};
$(window).on('resize', _onResize);
_onResize();
var currentVersion = document.getElementById('package-version').innerHTML;
// warn about outdated version
var packageUrl = 'https://raw.githubusercontent.com/openlayers/openlayers.github.io/build/package.json';
fetch(packageUrl).then(function(response) {
return response.json();
}).then(function(json) {
var latestVersion = json.version;
document.getElementById('latest-version').innerHTML = latestVersion;
var url = window.location.href;
var branchSearch = url.match(/\/([^\/]*)\/apidoc\//);
var cookieText = 'dismissed=-' + latestVersion + '-';
var dismissed = document.cookie.indexOf(cookieText) != -1;
if (branchSearch && !dismissed && /^v[0-9\.]*$/.test(branchSearch[1]) && currentVersion != latestVersion) {
var link = url.replace(branchSearch[0], '/latest/apidoc/');
fetch(link, {method: 'head'}).then(function(response) {
var a = document.getElementById('latest-link');
a.href = response.status == 200 ? link : '../../latest/apidoc/';
});
var latestCheck = document.getElementById('latest-check');
latestCheck.style.display = '';
document.getElementById('latest-dismiss').onclick = function() {
latestCheck.style.display = 'none';
document.cookie = cookieText;
}
});
}
});
// create source code links to github
var srcLinks = $('div.tag-source');
srcLinks.each(function(i, el) {
var textParts = el.innerHTML.trim().split(', ');
var link = 'https://github.com/openlayers/openlayers/blob/v' + currentVersion + '/src/ol/' +
textParts[0];
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
'<a href="' + link + textParts[1].replace('line ', '#L') + '">' +
textParts[1] + '</a>';
});
// create source code links to github
var srcLinks = $('div.tag-source');
srcLinks.each(function(i, el) {
var textParts = el.innerHTML.trim().split(', ');
var link = 'https://github.com/openlayers/openlayers/blob/v' + currentVersion + '/src/ol/' +
textParts[0];
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
'<a href="' + link + textParts[1].replace('line ', '#L') + '">' +
textParts[1] + '</a>';
});
// Highlighting current anchor
// Highlighting current anchor
var anchors = $('.anchor');
var _onHashChange = function () {
var activeHash = window.document.location.hash
.replace(/\./g, '\\.') // Escape dot in element id
.replace(/\~/g, '\\~'); // Escape tilde in element id
var anchors = $('.anchor');
var _onHashChange = function () {
var activeHash = window.document.location.hash
.replace(/\./g, '\\.') // Escape dot in element id
.replace(/\~/g, '\\~'); // Escape tilde in element id
anchors.removeClass('highlighted');
anchors.removeClass('highlighted');
if (activeHash.length > 0) {
anchors.filter(activeHash).addClass('highlighted');
}
};
if (activeHash.length > 0) {
anchors.filter(activeHash).addClass('highlighted');
}
};
$(window).on('hashchange', _onHashChange);
_onHashChange();
$(window).on('hashchange', _onHashChange);
_onHashChange();
});

View File

@@ -36,7 +36,7 @@
.navbar-inverse .navbar-nav>li>a:hover,
.navbar-inverse .navbar-nav>li>a:focus,
.navbar-inverse .navbar-nav>li>a.active
{
{
outline:0;
color: #fff;
background-color: #268591;
@@ -106,6 +106,15 @@ li {
.navigation .applicationName a {
color: #fff;
}
.navigation .include-modules {
color: #e1e1e1;
float: right;
font-size: 0.75em;
padding: 5px 15px;
}
.navigation .include-modules input {
vertical-align: text-bottom;
}
.navigation .search {
padding: 10px 15px;
}
@@ -125,6 +134,11 @@ li {
padding-bottom: 8px;
border-bottom: 1px solid #333;
}
.navigation li.perfect-match {
border: 5px solid orange;
}
.navigation li.item a {
color: #bbb;
}
@@ -158,13 +172,20 @@ li {
color: #1F6B75;
display: block;
}
.navigation li.item .modulelink {
position: relative;
font-size: 0.75em;
padding-left: 5px;
top: -5px;
}
.navigation li.item ul > li {
font-size: 0.75em;
padding-left: 8px;
margin-top: 2px;
}
.navigation li.item .itemMembers {
.navigation li.item .member-list {
display: none;
padding-left: 8px;
}
.main {
padding: 20px 20px;

View File

@@ -0,0 +1,81 @@
/* Carbon adds (see https://sell.buysellads.com) */
#ad {
margin-left: 1em;
float: right;
width: 330px;
min-height: 125px;
}
#carbonads {
font-family: "Quattrocento Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
}
#carbonads {
display: flex;
}
#carbonads a {
color: inherit;
text-decoration: none;
}
#carbonads a:hover {
color: inherit;
}
#carbonads span {
position: relative;
display: block;
overflow: hidden;
}
#carbonads .carbon-wrap {
display: flex;
}
.carbon-img {
display: block;
margin: 0;
line-height: 1;
}
.carbon-img img {
display: block;
}
.carbon-text {
font-size: 13px;
padding: 10px;
line-height: 1.5;
text-align: left;
}
.carbon-poweredby {
display: block;
padding: 8px 10px;
text-align: center;
text-transform: uppercase;
letter-spacing: .5px;
font-weight: 600;
font-size: 9px;
line-height: 1;
}
#carbonads a.carbon-poweredby {
color: #aaa;
}
/* Clear the float after the advertisement. */
.container-overview {
clear: both;
}
pre.source {
clear: both;
}
section.content {
overflow-y: auto;
}

View File

@@ -9,7 +9,7 @@
<?js= self.partial('source.tmpl', doc) ?>
<?js } else { ?>
<section>
<section class="content">
<header>
<h2><?js if (doc.ancestors && doc.ancestors.length) { ?>
@@ -41,6 +41,9 @@
<pre class="prettyprint source"><code>import <?js= doc.name ?> from '<?js= importPath ?>';</code></pre>
<?js } ?>
<?js } ?>
<div id="ad">
<script async type="text/javascript" src="https://cdn.carbonads.com/carbon.js?serve=CE7DV53U&placement=openlayersorg" id="_carbonads_js"></script>
</div>
<?js if (doc.classdesc) { ?>
<div class="class-description"><?js= doc.classdesc ?></div>
<?js } ?>

View File

@@ -73,6 +73,7 @@ var version = obj.packageInfo.version;
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/bootstrap.min.css">
<link type="text/css" rel="stylesheet" href="styles/jaguar.css">
<link type="text/css" rel="stylesheet" href="styles/site.css">
</head>
<body>
@@ -91,7 +92,7 @@ var version = obj.packageInfo.version;
</div>
<div id="wrap" class="clearfix">
<?js= this.partial('navigation.tmpl', this) ?>
<?js= this.navigationHtml ?>
<div class="main">
<h1 class="page-title" data-filename="<?js= filename ?>"><?js= title ?></h1>
<div id="latest-check" class="alert alert-warning alert-dismissible" role="alert" style="display:none">

View File

@@ -1,103 +1,59 @@
<?js
var self = this;
function toShortName(name) {
return name.indexOf('module:') === 0 ? name.split('/').pop() : name;
return name.indexOf('module:') === 0 ? name.split('/').pop() : name;
}
function getItemCssClass(type) {
if (type === 'module') {
return 'glyphicon-plus';
} else if (type === 'class') {
return 'glyphicon-chevron-right';
}
return '';
}
const printList = v => { ?>
<li data-name="<?js= v.longname ?>"><?js
}
const printListWithStability = v => {
const cls = v.stability && v.stability !== 'stable' ? ' class="unstable"' : ''; ?>
<li data-name="<?js= v.longname ?>"<?js= cls ?>><?js
}
function listContent(item, title, listItemPrinter) {
const type = title.toLowerCase();
if (item[type] && item[type].length) { ?>
<div class="member-list">
<span class="subtitle"><?js= title ?></span>
<ul><?js
item[type].forEach(function (v) {
listItemPrinter(v); ?><?js= self.linkto(v.longname, toShortName(v.name)) ?><?js
}); ?>
</ul>
</div><?js
}
}
?>
<div class="navigation">
<div class="search">
<input id="search" type="text" class="form-control input-sm" placeholder="Search Documentation">
</div>
<ul class="list">
<?js
let navbuilder;
this.nav.forEach(navbuilder = function (item) {
?>
<li class="item" data-name="<?js= item.longname ?>">
<ul class="list"><?js
this.nav.forEach(function (item) { ?>
<li class="item" data-name="<?js= item.longname ?>" data-shortname="<?js= item.name.toLowerCase() ?>">
<span class="title">
<?js= self.linkto(item.longname, item.type === 'module' ? item.longname.replace('module:', '') : item.name) ?>
<?js if (item.type === 'namespace' &&
(item.members.length + item.typedefs.length + item.methods.length +
item.events.length > 0)) { ?>
<?js } ?>
</span>
<ul class="members itemMembers">
<?js
if (item.classes.length) {
?>
<span class="subtitle">Classes</span>
<?js
item.classes.forEach(function (v) {
navbuilder(v);
});
}
?>
</ul>
<ul class="members itemMembers">
<?js
if (item.members.length) {
?>
<span class="subtitle">Members</span>
<?js
item.members.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, toShortName(v.name)) ?></li>
<?js
});
}
?>
</ul>
<ul class="typedefs itemMembers">
<?js
if (item.typedefs.length) {
?>
<span class="subtitle">Typedefs</span>
<?js
item.typedefs.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability !== 'stable') ? 'unstable' : ''?>">
<?js= self.linkto(v.longname, toShortName(v.name)) ?>
</li>
<?js
});
}
?>
</ul>
<ul class="methods itemMembers">
<?js
if (item.methods.length) {
?>
<span class="subtitle">Methods</span>
<?js
item.methods.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability !== 'stable') ? 'unstable' : ''?>">
<?js= self.linkto(v.longname, toShortName(v.name)) ?>
</li>
<?js
});
}
?>
</ul>
<ul class="fires itemMembers">
<?js
if (item.fires && item.fires.length) {
?>
<span class="subtitle">Fires</span>
<?js
item.fires.forEach(function (v) {
v = self.find({longname: v})[0] || {longname: v, name: v.split(/#?event:/)[1]};
?>
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability != 'stable') ? 'unstable' : '' ?>">
<?js= self.linkto(v.longname, toShortName(v.name)) ?>
</li>
<?js
});
}
?>
</ul>
</li>
<?js }); ?>
<span class="glyphicon <?js= getItemCssClass(item.type) ?> toggle"></span>
<?js= self.linkto(item.longname, item.prettyname) ?>
</span><?js
listContent(item, 'Members', printList);
listContent(item, 'Typedefs', printListWithStability);
listContent(item, 'Methods', printListWithStability);
if (item.fires) {
const fires = item.fires.map(v => self.find({longname: v})[0] || {longname: v, name: v.split(/#?event:/)[1]});
listContent({fires: fires}, 'Fires', printListWithStability)
}
}); ?>
</ul>
</div>

View File

@@ -8,7 +8,7 @@
<th>Name</th>
<th>Type</th>
<th>Settable</th>
<th><a href="module-ol_Object-ObjectEvent.html">ol/Object.ObjectEvent</a> type</th>
<th><a href="module-ol_Object.ObjectEvent.html">ol/Object.ObjectEvent</a> type</th>
<th class="last">Description</th>
</tr>
</thead>

View File

@@ -16,9 +16,8 @@
}
});
/* determine if we need extra columns, "attributes" and "default" */
/* determine if we need extra "attributes" column */
params.hasAttributes = false;
params.hasDefault = false;
params.hasName = false;
var colspan = 2;
@@ -40,10 +39,6 @@
params.hasName = true;
}
if (typeof param.defaultvalue !== 'undefined') {
++colspan;
params.hasDefault = true;
}
});
?>
@@ -56,10 +51,6 @@
<th>Type</th>
<?js if (params.hasDefault) {?>
<th>Default</th>
<?js } ?>
<th class="last">Description</th>
</tr>
</thead>
@@ -80,18 +71,14 @@
<td class="type">
<?js if (param.type && param.type.names) {?>
<?js= self.partial('type.tmpl', param.type.names) ?>
<?js if (typeof param.defaultvalue !== 'undefined') { ?>
(defaults to <?js= self.htmlsafe(param.defaultvalue) ?>)
<?js } ?>
<?js } ?>
</td>
<?js if (params.hasDefault) {?>
<td class="default">
<?js if (typeof param.defaultvalue !== 'undefined') { ?>
<?js= self.htmlsafe(param.defaultvalue) ?>
<?js } ?>
</td>
<?js } ?>
<?js } ?>
<td<?js= (param.subparams ? ' colspan=' + colspan : ' ') ?> class="description last">
<?js if (param.stability) { ?>
<?js= self.partial('stability.tmpl', param) ?>

View File

@@ -6,7 +6,7 @@ exports.defineTags = function(dictionary) {
const classTag = dictionary.lookUp('class');
dictionary.defineTag('interface', {
mustHaveValue: false,
mustNotHaveValue: true,
onTagged: function(doclet, tag) {
classTag.onTagged.apply(this, arguments);
doclet.virtual = true;

View File

@@ -111,7 +111,7 @@ Features for `updates` must have an id set by the feature reader or `ol.Feature#
### 28
`renderMode` must be `'image'` or `'hybrid'`.
`renderMode` must be `'image'`, `'hybrid'` or `'vector'`.
### 29
@@ -241,11 +241,11 @@ Support for the `OES_element_index_uint` WebGL extension is mandatory for WebGL
Layer opacity must be a number.
### 65
A symbol literal representation must be defined on the style supplied to a `WebGLPointsLayer` instance.
### 66
`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled.
This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`.
### 67
A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both.

5188
examples/data/world.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

@@ -4,10 +4,10 @@ title: Drag-and-Drop Image Vector
shortdesc: Example of using the drag-and-drop interaction with image vector rendering.
docs: >
Example of using the drag-and-drop interaction with an `ol/layer/VectorImage` layer. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. Each file is rendered to an image on the client.
tags: "drag-and-drop-image-vector, gpx, geojson, igc, kml, topojson, vector, image"
tags: "drag-and-drop-image-vector, gpx, geojson, igc, kml, topojson, maptiler, vector, image"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -3,7 +3,7 @@ import View from '../src/ol/View.js';
import {GPX, GeoJSON, IGC, KML, TopoJSON} from '../src/ol/format.js';
import {defaults as defaultInteractions, DragAndDrop} from '../src/ol/interaction.js';
import {VectorImage as VectorImageLayer, Tile as TileLayer} from '../src/ol/layer.js';
import {BingMaps, Vector as VectorSource} from '../src/ol/source.js';
import {XYZ, Vector as VectorSource} from '../src/ol/source.js';
const dragAndDropInteraction = new DragAndDrop({
formatConstructors: [
@@ -15,13 +15,18 @@ const dragAndDropInteraction = new DragAndDrop({
]
});
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const map = new Map({
interactions: defaultInteractions().extend([dragAndDropInteraction]),
layers: [
new TileLayer({
source: new BingMaps({
imagerySet: 'Aerial',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
})
],

View File

@@ -4,10 +4,10 @@ title: Drag-and-Drop
shortdesc: Example of using the drag-and-drop interaction.
docs: >
Example of using the drag-and-drop interaction. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. There is no projection transform support, so this will only work with data in EPSG:4326 and EPSG:3857.
tags: "drag-and-drop, gpx, geojson, igc, kml, topojson"
tags: "drag-and-drop, gpx, geojson, igc, kml, topojson, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -3,7 +3,7 @@ import View from '../src/ol/View.js';
import {GPX, GeoJSON, IGC, KML, TopoJSON} from '../src/ol/format.js';
import {defaults as defaultInteractions, DragAndDrop} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {BingMaps, Vector as VectorSource} from '../src/ol/source.js';
import {XYZ, Vector as VectorSource} from '../src/ol/source.js';
const dragAndDropInteraction = new DragAndDrop({
formatConstructors: [
@@ -15,13 +15,18 @@ const dragAndDropInteraction = new DragAndDrop({
]
});
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const map = new Map({
interactions: defaultInteractions().extend([dragAndDropInteraction]),
layers: [
new TileLayer({
source: new BingMaps({
imagerySet: 'Aerial',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
})
],

View File

@@ -6,7 +6,7 @@ docs: >
Example of exporting a map as a PDF using the <a href="https://github.com/MrRio/jsPDF" target="_blank">jsPDF</a> library.
tags: "export, pdf, openstreetmap"
resources:
- https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js
- https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.min.js
---
<div class="row-fluid">
<div class="span12">

View File

@@ -4,8 +4,6 @@ import WKT from '../src/ol/format/WKT.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {toJpeg} from 'html-to-image';
const raster = new TileLayer({
source: new OSM()
});
@@ -20,7 +18,8 @@ feature.getGeometry().transform('EPSG:4326', 'EPSG:3857');
const vector = new VectorLayer({
source: new VectorSource({
features: [feature]
})
}),
opacity: 0.5
});
@@ -44,14 +43,6 @@ const dims = {
};
// export options for html-to-image.
// See: https://github.com/bubkoo/html-to-image#options
const exportOptions = {
filter: function(element) {
return element.className.indexOf('ol-control') === -1;
}
};
const exportButton = document.getElementById('export-pdf');
exportButton.addEventListener('click', function() {
@@ -68,18 +59,30 @@ exportButton.addEventListener('click', function() {
const viewResolution = map.getView().getResolution();
map.once('rendercomplete', function() {
exportOptions.width = width;
exportOptions.height = height;
toJpeg(map.getViewport(), exportOptions).then(function(dataUrl) {
const pdf = new jsPDF('landscape', undefined, format);
pdf.addImage(dataUrl, 'JPEG', 0, 0, dim[0], dim[1]);
pdf.save('map.pdf');
// Reset original map size
map.setSize(size);
map.getView().setResolution(viewResolution);
exportButton.disabled = false;
document.body.style.cursor = 'auto';
const mapCanvas = document.createElement('canvas');
mapCanvas.width = width;
mapCanvas.height = height;
const mapContext = mapCanvas.getContext('2d');
Array.prototype.forEach.call(document.querySelectorAll('.ol-layer canvas'), function(canvas) {
if (canvas.width > 0) {
const opacity = canvas.parentNode.style.opacity;
mapContext.globalAlpha = opacity === '' ? 1 : Number(opacity);
const transform = canvas.style.transform;
// Get the transform parameters from the style's transform matrix
const matrix = transform.match(/^matrix\(([^\(]*)\)$/)[1].split(',').map(Number);
// Apply the transform to the export map context
CanvasRenderingContext2D.prototype.setTransform.apply(mapContext, matrix);
mapContext.drawImage(canvas, 0, 0);
}
});
const pdf = new jsPDF('landscape', undefined, format);
pdf.addImage(mapCanvas.toDataURL('image/jpeg'), 'JPEG', 0, 0, dim[0], dim[1]);
pdf.save('map.pdf');
// Reset original map size
map.setSize(size);
map.getView().setResolution(viewResolution);
exportButton.disabled = false;
document.body.style.cursor = 'auto';
});
// Set print size

View File

@@ -6,10 +6,10 @@ docs: >
This example shows how to use <b>postrender</b> events and a <b>vector context</b> to
animate a marker feature along a line. In this example an encoded polyline
is being used.
tags: "animation, feature, postrender, polyline"
tags: "animation, feature, postrender, polyline, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>
<label for="speed">

View File

@@ -4,7 +4,7 @@ import View from '../src/ol/View.js';
import Polyline from '../src/ol/format/Polyline.js';
import Point from '../src/ol/geom/Point.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
import VectorSource from '../src/ol/source/Vector.js';
import {Circle as CircleStyle, Fill, Icon, Stroke, Style} from '../src/ol/style.js';
import {getVectorContext} from '../src/ol/render.js';
@@ -121,6 +121,10 @@ const vectorLayer = new VectorLayer({
}
});
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const center = [-5639523.95, -3501274.52];
const map = new Map({
target: document.getElementById('map'),
@@ -132,9 +136,10 @@ const map = new Map({
}),
layers: [
new TileLayer({
source: new BingMaps({
imagerySet: 'AerialWithLabelsOnDemand',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/maps/hybrid/{z}/{x}/{y}.jpg?key=' + key,
tileSize: 512
})
}),
vectorLayer

View File

@@ -3,14 +3,14 @@ layout: example.html
title: Filtering features with WebGL
shortdesc: Using WebGL to filter large quantities of features
docs: >
This example shows how to use `ol/renderer/webgl/PointsLayer` to dynamically filter a large amount
This example shows how to use `ol/layer/WebGLPoints` with a literal style to dynamically filter a large amount
of point geometries. The above map is based on a dataset from the NASA containing 45k recorded meteorite
landing sites. Each meteorite is marked by a circle on the map (the bigger the circle, the heavier
the object). A pulse effect has been added, which is slightly offset by the year of the impact.
Adjusting the sliders causes the objects outside of the date range to be filtered out of the map. This is done using
a custom fragment shader on the layer renderer, and by using the `v_opacity` attribute of the rendered objects
to store the year of impact.
Adjusting the sliders causes the objects outside of the date range to be filtered out of the map. This is done
by mutating the variables in the `style` object provided to the WebGL layer. Also note that the last snippet
of code is necessary to make sure the map refreshes itself every frame.
tags: "webgl, icon, sprite, filter, feature"
experimental: true

View File

@@ -3,162 +3,115 @@ import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import Feature from '../src/ol/Feature.js';
import Point from '../src/ol/geom/Point.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {Vector} from '../src/ol/source.js';
import {fromLonLat} from '../src/ol/proj.js';
import WebGLPointsLayerRenderer from '../src/ol/renderer/webgl/PointsLayer.js';
import {clamp} from '../src/ol/math.js';
import Stamen from '../src/ol/source/Stamen.js';
import {formatColor} from '../src/ol/webgl/ShaderBuilder.js';
import WebGLPointsLayer from '../src/ol/layer/WebGLPoints.js';
const vectorSource = new Vector({
attributions: 'NASA'
});
const oldColor = [180, 140, 140];
const newColor = [255, 80, 80];
const oldColor = 'rgba(242,56,22,0.61)';
const newColor = '#ffe52c';
const period = 12; // animation period in seconds
const animRatio =
['^',
['/',
['%',
['+',
['time'],
[
'interpolate',
['linear'],
['get', 'year'],
1850, 0,
2015, period
]
],
period
],
period
],
0.5
];
const startTime = Date.now() * 0.001;
const style = {
variables: {
minYear: 1850,
maxYear: 2015
},
filter: ['between', ['get', 'year'], ['var', 'minYear'], ['var', 'maxYear']],
symbol: {
symbolType: 'circle',
size: ['*',
['interpolate', ['linear'], ['get', 'mass'], 0, 8, 200000, 26],
['-', 1.75, ['*', animRatio, 0.75]]
],
color: ['interpolate',
['linear'],
animRatio,
0, newColor,
1, oldColor
],
opacity: ['-', 1.0, ['*', animRatio, 0.75]]
}
};
// hanle input values & events
// handle input values & events
const minYearInput = document.getElementById('min-year');
const maxYearInput = document.getElementById('max-year');
function updateMinYear() {
style.variables.minYear = parseInt(minYearInput.value);
updateStatusText();
}
function updateMaxYear() {
style.variables.maxYear = parseInt(maxYearInput.value);
updateStatusText();
}
function updateStatusText() {
const div = document.getElementById('status');
div.querySelector('span.min-year').textContent = minYearInput.value;
div.querySelector('span.max-year').textContent = maxYearInput.value;
}
minYearInput.addEventListener('input', updateStatusText);
minYearInput.addEventListener('change', updateStatusText);
maxYearInput.addEventListener('input', updateStatusText);
maxYearInput.addEventListener('change', updateStatusText);
minYearInput.addEventListener('input', updateMinYear);
minYearInput.addEventListener('change', updateMinYear);
maxYearInput.addEventListener('input', updateMaxYear);
maxYearInput.addEventListener('change', updateMaxYear);
updateStatusText();
class WebglPointsLayer extends VectorLayer {
createRenderer() {
return new WebGLPointsLayerRenderer(this, {
attributes: [
{
name: 'size',
callback: function(feature) {
return 18 * clamp(feature.get('mass') / 200000, 0, 1) + 8;
}
},
{
name: 'year',
callback: function(feature) {
return feature.get('year');
}
}
],
vertexShader: [
'precision mediump float;',
// load data
const client = new XMLHttpRequest();
client.open('GET', 'data/csv/meteorite_landings.csv');
client.onload = function() {
const csv = client.responseText;
const features = [];
'uniform mat4 u_projectionMatrix;',
'uniform mat4 u_offsetScaleMatrix;',
'uniform mat4 u_offsetRotateMatrix;',
'attribute vec2 a_position;',
'attribute float a_index;',
'attribute float a_size;',
'attribute float a_year;',
'varying vec2 v_texCoord;',
'varying float v_year;',
let prevIndex = csv.indexOf('\n') + 1; // scan past the header line
'void main(void) {',
' mat4 offsetMatrix = u_offsetScaleMatrix;',
' float offsetX = a_index == 0.0 || a_index == 3.0 ? -a_size / 2.0 : a_size / 2.0;',
' float offsetY = a_index == 0.0 || a_index == 1.0 ? -a_size / 2.0 : a_size / 2.0;',
' vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);',
' gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;',
' float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;',
' float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;',
' v_texCoord = vec2(u, v);',
' v_year = a_year;',
'}'
].join(' '),
fragmentShader: [
'precision mediump float;',
let curIndex;
while ((curIndex = csv.indexOf('\n', prevIndex)) != -1) {
const line = csv.substr(prevIndex, curIndex - prevIndex).split(',');
prevIndex = curIndex + 1;
'uniform float u_time;',
'uniform float u_minYear;',
'uniform float u_maxYear;',
'varying vec2 v_texCoord;',
'varying float v_year;',
'void main(void) {',
// filter out pixels if the year is outside of the given range
' if (v_year < u_minYear || v_year > u_maxYear) {',
' discard;',
' }',
' vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);',
' float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;',
' float value = 2.0 * (1.0 - sqRadius);',
' float alpha = smoothstep(0.0, 1.0, value);',
// color is interpolated based on year
' float ratio = clamp((v_year - 1800.0) / (2013.0 - 1800.0), 0.0, 1.1);',
' vec3 color = mix(vec3(' + formatColor(oldColor) + '),',
' vec3(' + formatColor(newColor) + '), ratio);',
' float period = 8.0;',
' color.g *= 2.0 * (1.0 - sqrt(mod(u_time + v_year * 0.025, period) / period));',
' gl_FragColor = vec4(color, 1.0);',
' gl_FragColor.a *= alpha;',
' gl_FragColor.rgb *= gl_FragColor.a;',
'}'
].join(' '),
uniforms: {
u_time: function() {
return Date.now() * 0.001 - startTime;
},
u_minYear: function() {
return parseInt(minYearInput.value);
},
u_maxYear: function() {
return parseInt(maxYearInput.value);
}
}
});
}
}
function loadData() {
const client = new XMLHttpRequest();
client.open('GET', 'data/csv/meteorite_landings.csv');
client.onload = function() {
const csv = client.responseText;
const features = [];
let prevIndex = csv.indexOf('\n') + 1; // scan past the header line
let curIndex;
while ((curIndex = csv.indexOf('\n', prevIndex)) != -1) {
const line = csv.substr(prevIndex, curIndex - prevIndex).split(',');
prevIndex = curIndex + 1;
const coords = fromLonLat([parseFloat(line[4]), parseFloat(line[3])]);
if (isNaN(coords[0]) || isNaN(coords[1])) {
// guard against bad data
continue;
}
features.push(new Feature({
mass: parseFloat(line[1]) || 0,
year: parseInt(line[2]) || 0,
geometry: new Point(coords)
}));
const coords = fromLonLat([parseFloat(line[4]), parseFloat(line[3])]);
if (isNaN(coords[0]) || isNaN(coords[1])) {
// guard against bad data
continue;
}
vectorSource.addFeatures(features);
};
client.send();
}
features.push(new Feature({
mass: parseFloat(line[1]) || 0,
year: parseInt(line[2]) || 0,
geometry: new Point(coords)
}));
}
loadData();
vectorSource.addFeatures(features);
};
client.send();
const map = new Map({
layers: [
@@ -167,8 +120,10 @@ const map = new Map({
layer: 'toner'
})
}),
new WebglPointsLayer({
source: vectorSource
new WebGLPointsLayer({
style: style,
source: vectorSource,
disableHitDetection: true
})
],
target: document.getElementById('map'),

View File

@@ -5,9 +5,9 @@ shortdesc: Example of drag rotate and zoom control with full screen effect.
docs: >
<p>Hold down <code>Shift+Drag</code> to rotate and zoom. Click the button in the top right corner to go full screen. Then do the <code>Shift+Drag</code> thing again.</p>
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
tags: "full-screen, drag, rotate, zoom, bing, bing-maps"
tags: "full-screen, drag, rotate, zoom, xyz, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>

View File

@@ -3,9 +3,13 @@ import View from '../src/ol/View.js';
import {defaults as defaultControls, FullScreen} from '../src/ol/control.js';
import {defaults as defaultInteractions, DragRotateAndZoom} from '../src/ol/interaction.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const map = new Map({
controls: defaultControls().extend([
new FullScreen()
@@ -15,13 +19,13 @@ const map = new Map({
]),
layers: [
new TileLayer({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'Aerial'
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
})
],
// Use the canvas renderer because it's currently the fastest
target: 'map',
view: new View({
center: [-33519607, 5616436],

View File

@@ -5,9 +5,9 @@ shortdesc: Example of a full screen control.
docs: >
<p>Click the control in the top right corner to go full screen. Click it again to exit full screen.</p>
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
tags: "full-screen, bing, bing-maps"
tags: "full-screen, xyz, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>

View File

@@ -2,7 +2,7 @@ import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls, FullScreen} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
const view = new View({
@@ -10,15 +10,20 @@ const view = new View({
zoom: 14
});
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const map = new Map({
controls: defaultControls().extend([
new FullScreen()
]),
layers: [
new TileLayer({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'Aerial'
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
})
],

View File

@@ -4,10 +4,10 @@ title: GPX Data
shortdesc: Example of using the GPX source.
docs: >
Example of using the GPX source.
tags: "GPX"
tags: "GPX, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -2,14 +2,19 @@ import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import GPX from '../src/ol/format/GPX.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
import VectorSource from '../src/ol/source/Vector.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const raster = new TileLayer({
source: new BingMaps({
imagerySet: 'Aerial',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
});

View File

@@ -16,16 +16,15 @@ const vector = new HeatmapLayer({
})
}),
blur: parseInt(blur.value, 10),
radius: parseInt(radius.value, 10)
});
vector.getSource().on('addfeature', function(event) {
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
// standards-violating <magnitude> tag in each Placemark. We extract it from
// the Placemark's name instead.
const name = event.feature.get('name');
const magnitude = parseFloat(name.substr(2));
event.feature.set('weight', magnitude - 5);
radius: parseInt(radius.value, 10),
weight: function(feature) {
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
// standards-violating <magnitude> tag in each Placemark. We extract it from
// the Placemark's name instead.
const name = feature.get('name');
const magnitude = parseFloat(name.substr(2));
return magnitude - 5;
}
});
const raster = new TileLayer({
@@ -34,7 +33,7 @@ const raster = new TileLayer({
})
});
const map = new Map({
new Map({
layers: [raster, vector],
target: 'map',
view: new View({

View File

@@ -0,0 +1,15 @@
---
layout: example.html
title: Vector Layer Hit Detection
shortdesc: Example of hit detection on a countries vector layer with country information.
docs: >
The countries are loaded from a GeoJSON file. Information about countries is
on hover and click is retrieved using the layer's `getFeatures()` method. For
vector layers, this function resolves with an array of only the topmost
feature. It uses a very efficient hit detection algorithm, at the cost of
accuracy. For pixel exact hit detection, when performance is not a concern,
use the map's `getFeaturesAtPixel()` or `forEachFeatureAtPixel()` methods.
tags: "vector, geojson, click, hover, hit detection"
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -0,0 +1,113 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import VectorSource from '../src/ol/source/Vector.js';
import {Fill, Stroke, Style, Text} from '../src/ol/style.js';
const style = new Style({
fill: new Fill({
color: 'rgba(255, 255, 255, 0.6)'
}),
stroke: new Stroke({
color: '#319FD3',
width: 1
}),
text: new Text({
font: '12px Calibri,sans-serif',
fill: new Fill({
color: '#000'
}),
stroke: new Stroke({
color: '#fff',
width: 3
})
})
});
const vectorLayer = new VectorLayer({
source: new VectorSource({
url: 'data/geojson/countries.geojson',
format: new GeoJSON()
}),
style: function(feature) {
style.getText().setText(feature.get('name'));
return style;
}
});
const map = new Map({
layers: [vectorLayer],
target: 'map',
view: new View({
center: [0, 0],
zoom: 1
})
});
const highlightStyle = new Style({
stroke: new Stroke({
color: '#f00',
width: 1
}),
fill: new Fill({
color: 'rgba(255,0,0,0.1)'
}),
text: new Text({
font: '12px Calibri,sans-serif',
fill: new Fill({
color: '#000'
}),
stroke: new Stroke({
color: '#f00',
width: 3
})
})
});
const featureOverlay = new VectorLayer({
source: new VectorSource(),
map: map,
style: function(feature) {
highlightStyle.getText().setText(feature.get('name'));
return highlightStyle;
}
});
let highlight;
const displayFeatureInfo = function(pixel) {
vectorLayer.getFeatures(pixel).then(function(features) {
const feature = features.length ? features[0] : undefined;
const info = document.getElementById('info');
if (features.length) {
info.innerHTML = feature.getId() + ': ' + feature.get('name');
} else {
info.innerHTML = '&nbsp;';
}
if (feature !== highlight) {
if (highlight) {
featureOverlay.getSource().removeFeature(highlight);
}
if (feature) {
featureOverlay.getSource().addFeature(feature);
}
highlight = feature;
}
});
};
map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
const pixel = map.getEventPixel(evt.originalEvent);
displayFeatureInfo(pixel);
});
map.on('click', function(evt) {
displayFeatureInfo(evt.pixel);
});

View File

@@ -3,13 +3,13 @@ layout: example.html
title: Icon Sprites with WebGL
shortdesc: Rendering many icons with WebGL
docs: >
This example shows how to use `ol/renderer/webgl/PointsLayer` to render
This example shows how to use `ol/layer/WebGLPoints` to render
a very large amount of sprites. The above map is based on a dataset from the National UFO Reporting Center: each
icon marks a UFO sighting according to its reported shape (disk, light, fireball...). The older the sighting, the redder
the icon.
A very simple sprite atlas is used in the form of a PNG file containing all icons on a grid. Then, the `texCoordCallback`
option of the `ol/renderer/webgl/PointsLayer` constructor is used to specify which sprite to use according to the sighting shape.
A very simple sprite atlas is used in the form of a PNG file containing all icons on a grid. Then, the `style` object
given to the `ol/layer/WebGLPoints` constructor is used to specify which sprite to use according to the sighting shape.
The dataset contains around 80k points and can be found here: https://www.kaggle.com/NUFORC/ufo-sightings
tags: "webgl, icon, sprite, point, ufo"
@@ -20,3 +20,7 @@ cloak:
---
<div id="map" class="map"></div>
<div>Current sighting: <span id="info"></span></div>
<div>
Filter by UFO shape:
<select id="shape-filter"></select>
</div>

View File

@@ -4,211 +4,12 @@ import TileLayer from '../src/ol/layer/Tile.js';
import TileJSON from '../src/ol/source/TileJSON.js';
import Feature from '../src/ol/Feature.js';
import Point from '../src/ol/geom/Point.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {Vector} from '../src/ol/source.js';
import {fromLonLat} from '../src/ol/proj.js';
import WebGLPointsLayerRenderer from '../src/ol/renderer/webgl/PointsLayer.js';
import {formatColor, formatNumber} from '../src/ol/webgl/ShaderBuilder.js';
import WebGLPointsLayer from '../src/ol/layer/WebGLPoints.js';
const key = 'pk.eyJ1IjoidHNjaGF1YiIsImEiOiJjaW5zYW5lNHkxMTNmdWttM3JyOHZtMmNtIn0.CDIBD8H-G2Gf-cPkIuWtRg';
const vectorSource = new Vector({
features: [],
attributions: 'National UFO Reporting Center'
});
const texture = new Image();
texture.src = 'data/ufo_shapes.png';
// This describes the content of the associated sprite sheet
// coords are u0, v0 for a given shape (all icons have a size of 0.25 x 0.5)
const shapeTextureCoords = {
'light': [0, 0],
'sphere': [0.25, 0],
'circle': [0.25, 0],
'disc': [0.5, 0],
'oval': [0.5, 0],
'triangle': [0.75, 0],
'fireball': [0, 0.5],
'default': [0.75, 0.5]
};
const oldColor = [255, 160, 110];
const newColor = [180, 255, 200];
const size = 16;
class WebglPointsLayer extends VectorLayer {
createRenderer() {
return new WebGLPointsLayerRenderer(this, {
attributes: [
{
name: 'year',
callback: function(feature) {
return feature.get('year');
}
},
{
name: 'texCoordU',
callback: function(feature) {
let coords = shapeTextureCoords[feature.get('shape')];
if (!coords) {
coords = shapeTextureCoords['default'];
}
return coords[0];
}
},
{
name: 'texCoordV',
callback: function(feature) {
let coords = shapeTextureCoords[feature.get('shape')];
if (!coords) {
coords = shapeTextureCoords['default'];
}
return coords[1];
}
}
],
uniforms: {
u_texture: texture
},
vertexShader: [
'precision mediump float;',
'uniform mat4 u_projectionMatrix;',
'uniform mat4 u_offsetScaleMatrix;',
'uniform mat4 u_offsetRotateMatrix;',
'attribute vec2 a_position;',
'attribute float a_index;',
'attribute float a_year;',
'attribute float a_texCoordU;',
'attribute float a_texCoordV;',
'varying vec2 v_texCoord;',
'varying float v_year;',
'void main(void) {',
' mat4 offsetMatrix = u_offsetScaleMatrix;',
' float offsetX = a_index == 0.0 || a_index == 3.0 ? ',
' ' + formatNumber(-size / 2) + ' : ' + formatNumber(size / 2) + ';',
' float offsetY = a_index == 0.0 || a_index == 1.0 ? ',
' ' + formatNumber(-size / 2) + ' : ' + formatNumber(size / 2) + ';',
' vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);',
' gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;',
' float u = a_index == 0.0 || a_index == 3.0 ? a_texCoordU : a_texCoordU + 0.25;',
' float v = a_index == 2.0 || a_index == 3.0 ? a_texCoordV : a_texCoordV + 0.5;',
' v_texCoord = vec2(u, v);',
' v_year = a_year;',
'}'
].join(' '),
fragmentShader: [
'precision mediump float;',
'uniform float u_time;',
'uniform float u_minYear;',
'uniform float u_maxYear;',
'uniform sampler2D u_texture;',
'varying vec2 v_texCoord;',
'varying float v_year;',
'void main(void) {',
' vec4 textureColor = texture2D(u_texture, v_texCoord);',
' if (textureColor.a < 0.1) {',
' discard;',
' }',
// color is interpolated based on year
' float ratio = clamp((v_year - 1950.0) / (2013.0 - 1950.0), 0.0, 1.1);',
' vec3 color = mix(vec3(' + formatColor(oldColor) + '),',
' vec3(' + formatColor(newColor) + '), ratio);',
' gl_FragColor = vec4(color, 1.0) * textureColor;',
' gl_FragColor.rgb *= gl_FragColor.a;',
'}'
].join(' '),
hitVertexShader: [
'precision mediump float;',
'uniform mat4 u_projectionMatrix;',
'uniform mat4 u_offsetScaleMatrix;',
'uniform mat4 u_offsetRotateMatrix;',
'attribute vec2 a_position;',
'attribute float a_index;',
'attribute vec4 a_hitColor;',
'attribute float a_texCoordU;',
'attribute float a_texCoordV;',
'varying vec2 v_texCoord;',
'varying vec4 v_hitColor;',
'void main(void) {',
' mat4 offsetMatrix = u_offsetScaleMatrix;',
' float offsetX = a_index == 0.0 || a_index == 3.0 ? ',
' ' + formatNumber(-size / 2) + ' : ' + formatNumber(size / 2) + ';',
' float offsetY = a_index == 0.0 || a_index == 1.0 ? ',
' ' + formatNumber(-size / 2) + ' : ' + formatNumber(size / 2) + ';',
' vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);',
' gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;',
' float u = a_index == 0.0 || a_index == 3.0 ? a_texCoordU : a_texCoordU + 0.25;',
' float v = a_index == 2.0 || a_index == 3.0 ? a_texCoordV : a_texCoordV + 0.5;',
' v_texCoord = vec2(u, v);',
' v_hitColor = a_hitColor;',
'}'
].join(' '),
hitFragmentShader: [
'precision mediump float;',
'uniform sampler2D u_texture;',
'varying vec2 v_texCoord;',
'varying vec4 v_hitColor;',
'void main(void) {',
' vec4 textureColor = texture2D(u_texture, v_texCoord);',
' if (textureColor.a < 0.1) {',
' discard;',
' }',
' gl_FragColor = v_hitColor;',
'}'
].join(' ')
});
}
}
function loadData() {
const client = new XMLHttpRequest();
client.open('GET', 'data/csv/ufo_sighting_data.csv');
client.onload = function() {
const csv = client.responseText;
const features = [];
let prevIndex = csv.indexOf('\n') + 1; // scan past the header line
let curIndex;
while ((curIndex = csv.indexOf('\n', prevIndex)) != -1) {
const line = csv.substr(prevIndex, curIndex - prevIndex).split(',');
prevIndex = curIndex + 1;
const coords = fromLonLat([parseFloat(line[5]), parseFloat(line[4])]);
// only keep valid points
if (isNaN(coords[0]) || isNaN(coords[1])) {
continue;
}
features.push(new Feature({
datetime: line[0],
year: parseInt(/[0-9]{4}/.exec(line[0])[0]), // extract the year as int
shape: line[2],
duration: line[3],
geometry: new Point(coords)
}));
}
vectorSource.addFeatures(features);
};
client.send();
}
loadData();
const map = new Map({
layers: [
new TileLayer({
@@ -216,9 +17,6 @@ const map = new Map({
url: 'https://api.tiles.mapbox.com/v4/mapbox.world-dark.json?secure&access_token=' + key,
crossOrigin: 'anonymous'
})
}),
new WebglPointsLayer({
source: vectorSource
})
],
target: document.getElementById('map'),
@@ -228,9 +26,125 @@ const map = new Map({
})
});
const vectorSource = new Vector({
features: [],
attributions: 'National UFO Reporting Center'
});
const oldColor = [255, 160, 110];
const newColor = [180, 255, 200];
const size = 16;
const style = {
variables: {
filterShape: 'all'
},
filter: [
'case',
['!=', ['var', 'filterShape'], 'all'],
['==', ['get', 'shape'], ['var', 'filterShape']],
true
],
symbol: {
symbolType: 'image',
src: 'data/ufo_shapes.png',
size: size,
color: [
'interpolate',
['linear'],
['get', 'year'],
1950, oldColor,
2013, newColor
],
rotateWithView: false,
offset: [
0,
0
],
textureCoord: [
'match',
['get', 'shape'],
'light', [0, 0, 0.25, 0.5],
'sphere', [0.25, 0, 0.5, 0.5],
'circle', [0.25, 0, 0.5, 0.5],
'disc', [0.5, 0, 0.75, 0.5],
'oval', [0.5, 0, 0.75, 0.5],
'triangle', [0.75, 0, 1, 0.5],
'fireball', [0, 0.5, 0.25, 1],
[0.75, 0.5, 1, 1]
]
}
};
// key is shape name, value is sightings count
const shapeTypes = {
all: 0
};
const shapeSelect = document.getElementById('shape-filter');
shapeSelect.addEventListener('input', function() {
style.variables.filterShape = shapeSelect.options[shapeSelect.selectedIndex].value;
map.render();
});
function fillShapeSelect() {
Object.keys(shapeTypes)
.sort(function(a, b) {
return shapeTypes[b] - shapeTypes[a];
})
.forEach(function(shape) {
const option = document.createElement('option');
option.text = `${shape} (${shapeTypes[shape]} sightings)`;
option.value = shape;
shapeSelect.appendChild(option);
});
}
const client = new XMLHttpRequest();
client.open('GET', 'data/csv/ufo_sighting_data.csv');
client.onload = function() {
const csv = client.responseText;
const features = [];
let prevIndex = csv.indexOf('\n') + 1; // scan past the header line
let curIndex;
while ((curIndex = csv.indexOf('\n', prevIndex)) != -1) {
const line = csv.substr(prevIndex, curIndex - prevIndex).split(',');
prevIndex = curIndex + 1;
const coords = fromLonLat([parseFloat(line[5]), parseFloat(line[4])]);
// only keep valid points
if (isNaN(coords[0]) || isNaN(coords[1])) {
continue;
}
const shape = line[2];
shapeTypes[shape] = (shapeTypes[shape] ? shapeTypes[shape] : 0) + 1;
shapeTypes['all']++;
features.push(new Feature({
datetime: line[0],
year: parseInt(/[0-9]{4}/.exec(line[0])[0]), // extract the year as int
shape: shape,
duration: line[3],
geometry: new Point(coords)
}));
}
vectorSource.addFeatures(features);
fillShapeSelect();
};
client.send();
map.addLayer(
new WebGLPointsLayer({
source: vectorSource,
style: style
})
);
const info = document.getElementById('info');
map.on('pointermove', function(evt) {
if (map.getView().getInteracting()) {
if (map.getView().getInteracting() || map.getView().getAnimating()) {
return;
}
const pixel = evt.pixel;
@@ -242,7 +156,3 @@ map.on('pointermove', function(evt) {
info.innerText = 'On ' + datetime + ', lasted ' + duration + ' seconds and had a "' + shape + '" shape.';
});
});
texture.addEventListener('load', function() {
map.render();
});

View File

@@ -6,10 +6,10 @@ docs: >
<p>Layer rendering can be manipulated in <code>prerender</code> and <code>postrender</code> event listeners.
These listeners get an event with a reference to the Canvas rendering context.
In this example, the <code>postrender</code> listener applies a filter to the image data.</p>
tags: "filter, image manipulation"
tags: "filter, image manipulation, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>
<select id="kernel" name="kernel">

View File

@@ -2,12 +2,19 @@ import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {fromLonLat} from '../src/ol/proj.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
const key = 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const imagery = new TileLayer({
source: new BingMaps({key: key, imagerySet: 'Aerial'})
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20,
crossOrigin: ''
})
});
const map = new Map({

View File

@@ -56,35 +56,32 @@ const featureOverlay = new VectorLayer({
let highlight;
const displayFeatureInfo = function(pixel) {
const feature = map.forEachFeatureAtPixel(pixel, function(feature) {
return feature;
});
map.getLayers().item(0).getFeatures(pixel).then(function(features) {
const feature = features.length > 0 ? features[0] : undefined;
const info = document.getElementById('info');
if (feature) {
info.innerHTML = feature.getId() + ': ' + feature.get('name');
} else {
info.innerHTML = '&nbsp;';
}
if (feature !== highlight) {
if (highlight) {
featureOverlay.getSource().removeFeature(highlight);
}
const info = document.getElementById('info');
if (feature) {
featureOverlay.getSource().addFeature(feature);
info.innerHTML = feature.getId() + ': ' + feature.get('name');
} else {
info.innerHTML = '&nbsp;';
}
highlight = feature;
}
if (feature !== highlight) {
if (highlight) {
featureOverlay.getSource().removeFeature(highlight);
}
if (feature) {
featureOverlay.getSource().addFeature(feature);
}
highlight = feature;
}
});
};
map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
if (!evt.dragging) {
displayFeatureInfo(evt.pixel);
}
const pixel = map.getEventPixel(evt.originalEvent);
displayFeatureInfo(pixel);
});
map.on('click', function(evt) {

View File

@@ -1,14 +0,0 @@
---
layout: example.html
title: Interaction Options
shortdesc: Shows interaction options for custom scroll and zoom behavior.
docs: >
This example uses a custom `ol/interaction/defaults` configuration:
by default, wheel/trackpad zoom and drag panning is always active, which
can be unexpected on pages with a lot of scrollable content and an embedded
map. To perform wheel/trackpad zoom and drag-pan actions only when the map
has the focus, set `onFocusOnly: true` as option. This requires a map div
with a `tabindex` attribute set.
tags: "trackpad, mousewheel, zoom, scroll, interaction, fractional"
---
<div tabindex="1" id="map" class="map"></div>

View File

@@ -4,10 +4,10 @@ title: KML
shortdesc: Rendering KML with a vector source.
docs: >
This example uses the <code>ol/format/KML</code> to parse KML for rendering with a vector source.
tags: "KML"
tags: "KML, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -2,13 +2,18 @@ import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import KML from '../src/ol/format/KML.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
import VectorSource from '../src/ol/source/Vector.js';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const raster = new TileLayer({
source: new BingMaps({
imagerySet: 'Aerial',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
});

View File

@@ -18,11 +18,17 @@ const map = new Map({
osm.on('prerender', function(event) {
const ctx = event.context;
// calculate the pixel ratio and rotation of the canvas
const matrix = event.inversePixelTransform;
const canvasPixelRatio = Math.sqrt(matrix[0] * matrix[0] + matrix[1] * matrix[1]);
const canvasRotation = -Math.atan2(matrix[1], matrix[0]);
ctx.save();
const pixelRatio = event.frameState.pixelRatio;
const size = map.getSize();
ctx.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
ctx.scale(3 * pixelRatio, 3 * pixelRatio);
// center the canvas and remove rotation to position clipping
ctx.translate(ctx.canvas.width / 2, ctx.canvas.height / 2);
ctx.rotate(-canvasRotation);
ctx.scale(3 * canvasPixelRatio, 3 * canvasPixelRatio);
ctx.translate(-75, -80);
ctx.beginPath();
ctx.moveTo(75, 40);
@@ -34,8 +40,11 @@ osm.on('prerender', function(event) {
ctx.bezierCurveTo(85, 25, 75, 37, 75, 40);
ctx.clip();
ctx.translate(75, 80);
ctx.scale(1 / 3 / pixelRatio, 1 / 3 / pixelRatio);
ctx.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
ctx.scale(1 / 3 / canvasPixelRatio, 1 / 3 / canvasPixelRatio);
// reapply canvas rotation and position
ctx.rotate(canvasRotation);
ctx.translate(-ctx.canvas.width / 2, -ctx.canvas.height / 2);
});
osm.on('postrender', function(event) {

View File

@@ -8,9 +8,9 @@ docs: >
In this example, the <code>prerender</code> listener sets a clipping mask around the most
recent mouse position, giving you a spyglass effect for viewing one layer over another.</p>
<p>Move around the map to see the effect. Use the ↑ up and ↓ down arrow keys to adjust the spyglass size.</p>
tags: "spy, image manipulation"
tags: "spy, image manipulation, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>

View File

@@ -2,16 +2,28 @@ import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {fromLonLat} from '../src/ol/proj.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
import {getRenderPixel} from '../src/ol/render.js';
const key = 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const roads = new TileLayer({
source: new BingMaps({key: key, imagerySet: 'RoadOnDemand'})
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key=' + key,
tileSize: 512,
maxZoom: 22
})
});
const imagery = new TileLayer({
source: new BingMaps({key: key, imagerySet: 'Aerial'})
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
});
const container = document.getElementById('map');
@@ -54,14 +66,15 @@ container.addEventListener('mouseout', function() {
// before rendering the layer, do some clipping
imagery.on('prerender', function(event) {
const ctx = event.context;
const pixelRatio = event.frameState.pixelRatio;
ctx.save();
ctx.beginPath();
if (mousePosition) {
// only show a circle around the mouse
ctx.arc(mousePosition[0] * pixelRatio, mousePosition[1] * pixelRatio,
radius * pixelRatio, 0, 2 * Math.PI);
ctx.lineWidth = 5 * pixelRatio;
const pixel = getRenderPixel(event, mousePosition);
const offset = getRenderPixel(event, [mousePosition[0] + radius, mousePosition[1]]);
const canvasRadius = Math.sqrt(Math.pow(offset[0] - pixel[0], 2) + Math.pow(offset[1] - pixel[1], 2));
ctx.arc(pixel[0], pixel[1], canvasRadius, 0, 2 * Math.PI);
ctx.lineWidth = 5 * canvasRadius / radius;
ctx.strokeStyle = 'rgba(0,0,0,0.5)';
ctx.stroke();
}

View File

@@ -4,10 +4,10 @@ title: Layer Swipe
shortdesc: Example of a Layer swipe map.
docs: >
Example of a Layer swipe map.
tags: "swipe, openstreetmap"
tags: "swipe, openstreetmap, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>
<input id="swipe" type="range" style="width: 100%">

View File

@@ -1,21 +1,28 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import OSM from '../src/ol/source/OSM.js';
import XYZ from '../src/ol/source/XYZ.js';
import {getRenderPixel} from '../src/ol/render.js';
const osm = new TileLayer({
source: new OSM()
});
const bing = new TileLayer({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'Aerial'
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const aerial = new TileLayer({
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
});
const map = new Map({
layers: [osm, bing],
layers: [osm, aerial],
target: 'map',
view: new View({
center: [0, 0],
@@ -25,17 +32,26 @@ const map = new Map({
const swipe = document.getElementById('swipe');
bing.on('prerender', function(event) {
aerial.on('prerender', function(event) {
const ctx = event.context;
const width = ctx.canvas.width * (swipe.value / 100);
const mapSize = map.getSize();
const width = mapSize[0] * (swipe.value / 100);
const tl = getRenderPixel(event, [width, 0]);
const tr = getRenderPixel(event, [mapSize[0], 0]);
const bl = getRenderPixel(event, [width, mapSize[1]]);
const br = getRenderPixel(event, mapSize);
ctx.save();
ctx.beginPath();
ctx.rect(width, 0, ctx.canvas.width - width, ctx.canvas.height);
ctx.moveTo(tl[0], tl[1]);
ctx.lineTo(bl[0], bl[1]);
ctx.lineTo(br[0], br[1]);
ctx.lineTo(tr[0], tr[1]);
ctx.closePath();
ctx.clip();
});
bing.on('postrender', function(event) {
aerial.on('postrender', function(event) {
const ctx = event.context;
ctx.restore();
});

View File

@@ -6,9 +6,9 @@ docs: >
<p>This example makes use of the <code>postrender</code> event listener to
oversample imagery in a circle around the pointer location. Listeners for this event have access to the Canvas context and can manipulate image data.</p>
<p>Move around the map to see the effect. Use the ↑ up and ↓ down arrow keys to adjust the magnified circle size.</p>
tags: "magnify, image manipulation"
tags: "magnify, image manipulation, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>

View File

@@ -2,13 +2,20 @@ import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {fromLonLat} from '../src/ol/proj.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
import {getRenderPixel} from '../src/ol/render.js';
const key = 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const imagery = new TileLayer({
source: new BingMaps({key: key, imagerySet: 'Aerial'})
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20,
crossOrigin: ''
})
});
const container = document.getElementById('map');

View File

@@ -1,7 +1,10 @@
---
layout: example-verbatim.html
title: Vector tiles created from a Mapbox Style object
shortdesc: Example of using ol-mapbox-style with tiles from tilehosting.com.
shortdesc: Example of using ol-mapbox-style with tiles from maptiler.com.
docs: >
Example of using `ol-mapbox-style` with tiles from maptiler.com.
**Note**: Make sure to get your own API key at https://www.maptiler.com/cloud/ when using this example. No map will be visible when the API key has expired.
tags: "vector tiles, mapbox style, ol-mapbox-style, maptiler"
cloak:
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
@@ -15,6 +18,7 @@ cloak:
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>Mapbox Style objects with ol-mapbox-style</title>
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,String.prototype.startsWith,Object.assign"></script>
<style type="text/css">
html, body, .map {
margin: 0;

10
examples/page-scroll.html Normal file
View File

@@ -0,0 +1,10 @@
---
layout: example.html
title: Page Scrolling
shortdesc: Shows a map that does not interrupt page scrolling.
docs: >
To perform wheel/trackpad zoom and drag-pan actions only when the map
has the focus, configure your map div with a `tabindex` attribute.
tags: "trackpad, mousewheel, zoom, scroll, page"
---
<div tabindex="1" id="map" class="map"></div>

View File

@@ -1,14 +1,10 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultInteractions} from '../src/ol/interaction.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
const map = new Map({
interactions: defaultInteractions({
onFocusOnly: true
}),
layers: [
new TileLayer({
source: new OSM()

View File

@@ -1,8 +1,7 @@
.ol-popup {
position: absolute;
background-color: white;
-webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
box-shadow: 0 1px 4px rgba(0,0,0,0.2);
padding: 15px;
border-radius: 10px;
border: 1px solid #cccccc;

View File

@@ -18,12 +18,12 @@ docs: >
those pixels based on a threshold value (values above the
threshold are green and those below are transparent).
</p>
tags: "raster, pixel"
tags: "raster, pixel, maptiler"
resources:
- https://unpkg.com/d3@4.12.0/build/d3.js
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div class="rel">
<div id="map" class="map"></div>

View File

@@ -1,7 +1,7 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {Image as ImageLayer, Tile as TileLayer} from '../src/ol/layer.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
import RasterSource from '../src/ol/source/Raster.js';
const minVgi = 0;
@@ -46,9 +46,16 @@ function summarize(value, counts) {
/**
* Use aerial imagery as the input data for the raster source.
*/
const bing = new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'Aerial'
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const aerial = new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20,
crossOrigin: ''
});
@@ -57,7 +64,7 @@ const bing = new BingMaps({
* be colored green.
*/
const raster = new RasterSource({
sources: [bing],
sources: [aerial],
/**
* Run calculations on pixel data.
* @param {Array} pixels List of pixels (one per source).
@@ -110,7 +117,7 @@ raster.on('afteroperations', function(event) {
const map = new Map({
layers: [
new TileLayer({
source: bing
source: aerial
}),
new ImageLayer({
source: raster

View File

@@ -23,10 +23,10 @@ docs: >
This example also shows how an additional function can be made available
to the operation.
</p>
tags: "raster, region growing"
tags: "raster, region growing, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map" style="cursor: pointer"></div>
<table class="controls">

View File

@@ -2,7 +2,7 @@ import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {Image as ImageLayer, Tile as TileLayer} from '../src/ol/layer.js';
import {fromLonLat} from '../src/ol/proj.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
import RasterSource from '../src/ol/source/Raster.js';
function growRegion(inputs, data) {
@@ -72,10 +72,17 @@ function next4Edges(edge) {
];
}
const key = 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const imagery = new TileLayer({
source: new BingMaps({key: key, imagerySet: 'Aerial'})
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20,
crossOrigin: ''
})
});
const raster = new RasterSource({

View File

@@ -5,7 +5,9 @@ shortdesc: Example of some Regular Shape styles.
docs: >
This example shows how several regular shapes
or symbols (representing `x`, `cross`, `star`,
`triangle` and `square`) can be created.
`triangle`, `square` and `stacked`) can be created.
Style `stacked` represents possility to stack multiple shapes with offset
tags: "vector, symbol, regularshape, style, square, cross, star, triangle, x"
---
<div id="map" class="map"></div>

View File

@@ -59,18 +59,39 @@ const styles = {
radius2: 0,
angle: Math.PI / 4
})
})
}),
'stacked': [
new Style({
image: new RegularShape({
fill: fill,
stroke: stroke,
points: 4,
radius: 5,
angle: Math.PI / 4,
displacement: [0, 10]
})
}),
new Style({
image: new RegularShape({
fill: fill,
stroke: stroke,
points: 4,
radius: 10,
angle: Math.PI / 4
})
})
]
};
const styleKeys = ['x', 'cross', 'star', 'triangle', 'square'];
const styleKeys = ['x', 'cross', 'star', 'triangle', 'square', 'stacked'];
const count = 250;
const features = new Array(count);
const e = 4500000;
for (let i = 0; i < count; ++i) {
const coordinates = [2 * e * Math.random() - e, 2 * e * Math.random() - e];
features[i] = new Feature(new Point(coordinates));
features[i].setStyle(styles[styleKeys[Math.floor(Math.random() * 5)]]);
features[i].setStyle(styles[styleKeys[Math.floor(Math.random() * 6)]]);
}
const source = new VectorSource({

View File

@@ -55,15 +55,6 @@ proj54009.setExtent([-18e6, -9e6, 18e6, 9e6]);
const layers = {};
layers['bng'] = new TileLayer({
source: new XYZ({
projection: 'EPSG:27700',
url: 'https://tileserver.maptiler.com/miniscale/{z}/{x}/{y}.png',
crossOrigin: '',
maxZoom: 6
})
});
layers['osm'] = new TileLayer({
source: new OSM()
});
@@ -95,9 +86,11 @@ layers['wms21781'] = new TileLayer({
});
const parser = new WMTSCapabilities();
const url = 'https://map1.vis.earthdata.nasa.gov/wmts-arctic/' +
layers['wmts3413'] = new TileLayer();
const urlA = 'https://map1.vis.earthdata.nasa.gov/wmts-arctic/' +
'wmts.cgi?SERVICE=WMTS&request=GetCapabilities';
fetch(url).then(function(response) {
fetch(urlA).then(function(response) {
return response.text();
}).then(function(text) {
const result = parser.read(text);
@@ -108,9 +101,23 @@ fetch(url).then(function(response) {
options.crossOrigin = '';
options.projection = 'EPSG:3413';
options.wrapX = false;
layers['wmts3413'] = new TileLayer({
source: new WMTS(options)
layers['wmts3413'].setSource(new WMTS(options));
});
layers['bng'] = new TileLayer();
const urlB = 'https://tiles.arcgis.com/tiles/qHLhLQrcvEnxjtPr/arcgis/rest/services/OS_Open_Raster/MapServer/WMTS';
fetch(urlB).then(function(response) {
return response.text();
}).then(function(text) {
const result = parser.read(text);
const options = optionsFromCapabilities(result, {
layer: 'OS_Open_Raster'
});
options.attributions = 'Contains OS data © Crown Copyright and database right 2019';
options.crossOrigin = '';
options.projection = 'EPSG:27700';
options.wrapX = false;
layers['bng'].setSource(new WMTS(options));
});
layers['grandcanyon'] = new TileLayer({

View File

@@ -74,13 +74,9 @@ ol.inline>li {
.ol-attribution.ol-logo-only,
.ol-attribution.ol-uncollapsible {
max-width: calc(100% - 3em);
height: 1.5em;
}
.ol-attribution ul {
font-size: 1rem;
}
.ol-control button, .ol-attribution, .ol-scale-line-inner {
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
font-size: 14px;
}
.iframe-info iframe {
width: 100%;

View File

@@ -8,6 +8,11 @@ docs: >
<a href="https://www.mapbox.com/blog/terrain-rgb/">Mapbox Terrain-RGB tiles</a>
to "flood" areas below the elevation shown on the sea level slider.
</p>
<p>
<code>ol/source/Raster</code> can take either a tile source or layer.
In this case a layer is used to allow disabling at the <code>prerender</code> event
of image smoothing which would change the precise elevation values set in the pixels.
</p>
tags: "raster, pixel operation, flood"
cloak:
- key: pk.eyJ1IjoidHNjaGF1YiIsImEiOiJjaW5zYW5lNHkxMTNmdWttM3JyOHZtMmNtIn0.CDIBD8H-G2Gf-cPkIuWtRg

View File

@@ -22,9 +22,15 @@ function flood(pixels, data) {
}
const key = 'pk.eyJ1IjoidHNjaGF1YiIsImEiOiJjaW5zYW5lNHkxMTNmdWttM3JyOHZtMmNtIn0.CDIBD8H-G2Gf-cPkIuWtRg';
const elevation = new XYZ({
url: 'https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=' + key,
crossOrigin: 'anonymous'
const elevation = new TileLayer({
source: new XYZ({
url: 'https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=' + key,
crossOrigin: 'anonymous'
})
});
elevation.on('prerender', function(evt) {
evt.context.imageSmoothingEnabled = false;
evt.context.msImageSmoothingEnabled = false;
});
const raster = new RasterSource({

View File

@@ -0,0 +1,22 @@
---
layout: example.html
title: Select Features
shortdesc: Example of using the Select interaction.
docs: >
Choose between <code>Single-click</code>, <code>Click</code>, <code>Hover</code> and <code>Alt+Click</code> as the event type for selection in the combobox below. When using <code>Single-click</code> or <code>Click</code> you can hold do <code>Shift</code> key to toggle the feature in the selection.</p>
<p>Note: when <code>Single-click</code> is used double-clicks won't select features. This in contrast to <code>Click</code>, where a double-click will both select the feature and zoom the map (because of the <code>DoubleClickZoom</code> interaction). Note that <code>Single-click</code> is less responsive than <code>Click</code> because of the delay it uses to detect double-clicks.</p>
<p>In this example, a listener is registered for the Select interaction's <code>select</code> event in order to update the selection status above.
tags: "select, vector"
---
<div id="map" class="map"></div>
<form class="form-inline">
<label>Action type &nbsp;</label>
<select id="type" class="form-control">
<option value="click" selected>Click</option>
<option value="singleclick">Single-click</option>
<option value="pointermove">Hover</option>
<option value="altclick">Alt+Click</option>
<option value="none">None</option>
</select>
<span id="status">&nbsp;0 selected features</span>
</form>

View File

@@ -4,10 +4,10 @@ title: Shared Views
shortdesc: Two maps share view properties
docs: >
Two maps (one Road, one Aerial) share the same center, resolution and rotation.
tags: "side-by-side, bing, bing-maps"
tags: "side-by-side, xyz, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div class="wrapper">
<div class="half">

View File

@@ -1,21 +1,26 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const roadLayer = new TileLayer({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'RoadOnDemand',
maxZoom: 19
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key=' + key,
tileSize: 512,
maxZoom: 22
})
});
const aerialLayer = new TileLayer({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'Aerial',
maxZoom: 19
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
});

View File

@@ -4,9 +4,9 @@ title: Street Labels
shortdesc: Render street names.
docs: >
Example showing the use of a text style with `placement: 'line'` to render text along a path.
tags: "vector, label, streets"
tags: "vector, label, streets, maptiler"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>

View File

@@ -3,7 +3,7 @@ import View from '../src/ol/View.js';
import {getCenter} from '../src/ol/extent.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import XYZ from '../src/ol/source/XYZ.js';
import VectorSource from '../src/ol/source/Vector.js';
import {Fill, Style, Text} from '../src/ol/style.js';
@@ -17,12 +17,17 @@ const style = new Style({
})
});
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
'<a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>';
const viewExtent = [1817379, 6139595, 1827851, 6143616];
const map = new Map({
layers: [new TileLayer({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'Aerial'
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
}), new VectorLayer({
declutter: true,

7
examples/svg-layer.css Normal file
View File

@@ -0,0 +1,7 @@
#map {
background: black;
}
.svg-layer path:hover {
opacity: 0.4;
}

9
examples/svg-layer.html Normal file
View File

@@ -0,0 +1,9 @@
---
layout: example.html
title: SVG Layer
shortdesc: Example of a map with an interactive svg layer.
docs: >
With a plain `ol/Layer` and a `render` function, we can use an interactive svg as layer. Hover over countries to see the interactivity that is defined purely with a css `:hover` pseudo-class.
tags: "svg, layer, render, transform"
---
<div id="map" class="map"></div>

48
examples/svg-layer.js Normal file
View File

@@ -0,0 +1,48 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import Layer from '../src/ol/layer/Layer.js';
import {composeCssTransform} from '../src/ol/transform.js';
const map = new Map({
target: 'map',
view: new View({
center: [0, 0],
extent: [-180, -90, 180, 90],
projection: 'EPSG:4326',
zoom: 2
})
});
const svgContainer = document.createElement('div');
const xhr = new XMLHttpRequest();
xhr.open('GET', 'data/world.svg');
xhr.addEventListener('load', function() {
const svg = xhr.responseXML.documentElement;
svgContainer.ownerDocument.importNode(svg);
svgContainer.appendChild(svg);
});
xhr.send();
const width = 2560;
const height = 1280;
const svgResolution = 360 / width;
svgContainer.style.width = width + 'px';
svgContainer.style.height = height + 'px';
svgContainer.style.transformOrigin = 'top left';
svgContainer.className = 'svg-layer';
map.addLayer(new Layer({
render: function(frameState) {
const scale = svgResolution / frameState.viewState.resolution;
const center = frameState.viewState.center;
const size = frameState.size;
const cssTransform = composeCssTransform(
size[0] / 2, size[1] / 2,
scale, scale,
frameState.viewState.rotation,
-center[0] / svgResolution - width / 2, center[1] / svgResolution - height / 2);
svgContainer.style.transform = cssTransform;
svgContainer.style.opacity = this.getOpacity();
return svgContainer;
}
}));

View File

@@ -108,7 +108,14 @@
<div class="row-fluid">
<a class="codepen-button pull-right"><i class="fa fa-codepen"></i> Edit</a>
<div class="span12">
<h4 id="title">{{ title }}</h4>
<h4 id="title">
{{ title }}
</h4>
<p class="tags">
{{#each tags}}
<a href="./index.html?q={{.}}" class="label label-primary">{{.}}</a>
{{/each}}
</p>
{{{ contents }}}
</div>
<form method="POST" id="codepen-form" target="_blank" action="https://codesandbox.io/api/v1/sandboxes/define">
@@ -132,7 +139,7 @@
&lt;head&gt;
&lt;title&gt;{{ title }}&lt;/title&gt;
&lt;!-- The line below is only needed for old environments like Internet Explorer and Android 4.x --&gt;
&lt;script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"&gt;&lt;/script&gt;{{#if extraHead.remote}}
&lt;script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,requestAnimationFrame,Element.prototype.classList,URL"&gt;&lt;/script&gt;{{#if extraHead.remote}}
{{ indent extraHead.remote spaces=4 }}{{/if}}
&lt;style&gt;
.map {

22
examples/tracing.html Normal file
View File

@@ -0,0 +1,22 @@
---
layout: example.html
title: Tracing around a polygon
shortdesc: Example of setting up a draw interaction to easily snap to an existing feature.
docs: >
This example showcases how the draw interaction API can be set up to make snapping along
an existing geometry easier while preserving topology, which is sometimes called "tracing".
When the user clicks on two different points on the Idaho state border,
the part of the border comprised between these two points is added to
the currently drawn feature.
This leverages the `appendCoordinates` method of the `ol/interaction/Draw` interaction.
tags: "draw, trace, snap, vector, topology"
---
<div id="map" class="map"></div>
<form class="form-inline">
<label>Geometry type &nbsp;</label>
<select id="type">
<option value="Polygon">Polygon</option>
<option value="LineString">LineString</option>
<option value="None">None</option>
</select>
</form>

253
examples/tracing.js Normal file
View File

@@ -0,0 +1,253 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import Draw from '../src/ol/interaction/Draw.js';
import Snap from '../src/ol/interaction/Snap.js';
import Style from '../src/ol/style/Style.js';
import Stroke from '../src/ol/style/Stroke.js';
import Fill from '../src/ol/style/Fill.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import LineString from '../src/ol/geom/LineString.js';
import Feature from '../src/ol/Feature.js';
// math utilities
// coordinates; will return the length of the [a, b] segment
function length(a, b) {
return Math.sqrt((b[0] - a[0]) * (b[0] - a[0]) + (b[1] - a[1]) * (b[1] - a[1]));
}
// coordinates; will return true if c is on the [a, b] segment
function isOnSegment(c, a, b) {
const lengthAc = length(a, c);
const lengthAb = length(a, b);
const dot = ((c[0] - a[0]) * (b[0] - a[0]) + (c[1] - a[1]) * (b[1] - a[1])) / lengthAb;
return Math.abs(lengthAc - dot) < 1e-6 && lengthAc < lengthAb;
}
// modulo for negative values, eg: mod(-1, 4) returns 3
function mod(a, b) {
return ((a % b) + b) % b;
}
// returns a coordinates array which contains the segments of the feature's
// outer ring between the start and end points
// Note: this assumes the base feature is a single polygon
function getPartialRingCoords(feature, startPoint, endPoint) {
let polygon = feature.getGeometry();
if (polygon.getType() === 'MultiPolygon') {
polygon = polygon.getPolygon(0);
}
const ringCoords = polygon.getLinearRing().getCoordinates();
let i, pointA, pointB, startSegmentIndex = -1;
for (i = 0; i < ringCoords.length; i++) {
pointA = ringCoords[i];
pointB = ringCoords[mod(i + 1, ringCoords.length)];
// check if this is the start segment dot product
if (isOnSegment(startPoint, pointA, pointB)) {
startSegmentIndex = i;
break;
}
}
const cwCoordinates = [];
let cwLength = 0;
const ccwCoordinates = [];
let ccwLength = 0;
// build clockwise coordinates
for (i = 0; i < ringCoords.length; i++) {
pointA = i === 0 ? startPoint : ringCoords[mod(i + startSegmentIndex, ringCoords.length)];
pointB = ringCoords[mod(i + startSegmentIndex + 1, ringCoords.length)];
cwCoordinates.push(pointA);
if (isOnSegment(endPoint, pointA, pointB)) {
cwCoordinates.push(endPoint);
cwLength += length(pointA, endPoint);
break;
} else {
cwLength += length(pointA, pointB);
}
}
// build counter-clockwise coordinates
for (i = 0; i < ringCoords.length; i++) {
pointA = ringCoords[mod(startSegmentIndex - i, ringCoords.length)];
pointB = i === 0 ? startPoint : ringCoords[mod(startSegmentIndex - i + 1, ringCoords.length)];
ccwCoordinates.push(pointB);
if (isOnSegment(endPoint, pointA, pointB)) {
ccwCoordinates.push(endPoint);
ccwLength += length(endPoint, pointB);
break;
} else {
ccwLength += length(pointA, pointB);
}
}
// keep the shortest path
return ccwLength < cwLength ? ccwCoordinates : cwCoordinates;
}
// layers definition
const raster = new TileLayer({
source: new OSM()
});
// features in this layer will be snapped to
const baseVector = new VectorLayer({
source: new VectorSource({
format: new GeoJSON(),
url: 'https://ahocevar.com/geoserver/wfs?service=wfs&request=getfeature&typename=topp:states&cql_filter=STATE_NAME=\'Idaho\'&outputformat=application/json'
})
});
// this is were the drawn features go
const drawVector = new VectorLayer({
source: new VectorSource(),
style: new Style({
stroke: new Stroke({
color: 'rgba(100, 255, 0, 1)',
width: 2
}),
fill: new Fill({
color: 'rgba(100, 255, 0, 0.3)'
})
})
});
// this line only appears when we're tracing a feature outer ring
const previewLine = new Feature({
geometry: new LineString([])
});
const previewVector = new VectorLayer({
source: new VectorSource({
features: [previewLine]
}),
style: new Style({
stroke: new Stroke({
color: 'rgba(255, 0, 0, 1)',
width: 2
})
})
});
const map = new Map({
layers: [raster, baseVector, drawVector, previewVector],
target: 'map',
view: new View({
center: [-12986427, 5678422],
zoom: 5
})
});
let drawInteraction, tracingFeature, startPoint, endPoint;
let drawing = false;
const getFeatureOptions = {
hitTolerance: 10,
layerFilter: (layer) => {
return layer === baseVector;
}
};
// the click event is used to start/end tracing around a feature
map.on('click', (event) => {
if (!drawing) {
return;
}
let hit = false;
map.forEachFeatureAtPixel(
event.pixel,
(feature) => {
if (tracingFeature && feature !== tracingFeature) {
return;
}
hit = true;
const coord = map.getCoordinateFromPixel(event.pixel);
// second click on the tracing feature: append the ring coordinates
if (feature === tracingFeature) {
endPoint = tracingFeature.getGeometry().getClosestPoint(coord);
const appendCoords = getPartialRingCoords(tracingFeature, startPoint, endPoint);
drawInteraction.removeLastPoint();
drawInteraction.appendCoordinates(appendCoords);
tracingFeature = null;
}
// start tracing on the feature ring
tracingFeature = feature;
startPoint = tracingFeature.getGeometry().getClosestPoint(coord);
},
getFeatureOptions
);
if (!hit) {
// clear current tracing feature & preview
previewLine.getGeometry().setCoordinates([]);
tracingFeature = null;
}
});
// the pointermove event is used to show a preview of the result of the tracing
map.on('pointermove', (event) => {
if (tracingFeature && drawing) {
let coord = null;
map.forEachFeatureAtPixel(
event.pixel,
(feature) => {
if (tracingFeature === feature) {
coord = map.getCoordinateFromPixel(event.pixel);
}
},
getFeatureOptions
);
let previewCoords = [];
if (coord) {
endPoint = tracingFeature.getGeometry().getClosestPoint(coord);
previewCoords = getPartialRingCoords(tracingFeature, startPoint, endPoint);
}
previewLine.getGeometry().setCoordinates(previewCoords);
}
});
const snapInteraction = new Snap({
source: baseVector.getSource()
});
const typeSelect = document.getElementById('type');
function addInteraction() {
const value = typeSelect.value;
if (value !== 'None') {
drawInteraction = new Draw({
source: drawVector.getSource(),
type: typeSelect.value
});
drawInteraction.on('drawstart', () => {
drawing = true;
});
drawInteraction.on('drawend', () => {
drawing = false;
previewLine.getGeometry().setCoordinates([]);
tracingFeature = null;
});
map.addInteraction(drawInteraction);
map.addInteraction(snapInteraction);
}
}
typeSelect.onchange = function() {
map.removeInteraction(drawInteraction);
map.removeInteraction(snapInteraction);
addInteraction();
};
addInteraction();

View File

@@ -0,0 +1,12 @@
---
layout: example.html
title: Panning and page scrolling
shortdesc: Shows a map that allows page scrolling unless two fingers or Cmd/Ctrl are used to pan the map.
docs: >
This example shows a common behavior for page scrolling: on touch devices, when one finger
is placed on the map, it can be used to scroll the page. Only two fingers will perform drag pan.
For mouse or trackpad devices, the platform modifier key (Cmd or Ctrl) will enable drag pan on
the map, otherwise the page will scroll.
tags: "trackpad, mousewheel, zoom, scroll, page"
---
<div id="map" class="map"></div>

View File

@@ -0,0 +1,29 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
import {defaults, DragPan, MouseWheelZoom} from '../src/ol/interaction.js';
import {platformModifierKeyOnly} from '../src/ol/events/condition.js';
const map = new Map({
interactions: defaults({dragPan: false, mouseWheelZoom: false}).extend([
new DragPan({
condition: function(event) {
return this.getPointerCount() === 2 || platformModifierKeyOnly(event);
}
}),
new MouseWheelZoom({
condition: platformModifierKeyOnly
})
]),
layers: [
new TileLayer({
source: new OSM()
})
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
});

View File

@@ -23,7 +23,7 @@ map.on('pointermove', showInfo);
const info = document.getElementById('info');
function showInfo(event) {
const features = map.getFeaturesAtPixel(event.pixel);
if (!features) {
if (features.length == 0) {
info.innerText = '';
info.style.opacity = 0;
return;

View File

@@ -5,7 +5,11 @@ shortdesc: Select features from vector tiles.
docs: >
<p>
Click a rendered vector-tile feature to highlight it on the map. Click on an empty spot (ocean) to reset the selection.
By changing the action type to "Multi Select" you can select multiple features at a time.
By changing the action type to "Multi Select" you can select multiple features at a time. With "Single Select on hover",
features will be higlighted when the pointer is above them.
</p><p>
The selection layer is configured with `renderMode: 'vector'` for better performance on frequent redraws,
i.e. when 'Single select on hover' is selected.
</p>
tags: "vector tiles, selection"
---
@@ -15,5 +19,6 @@ tags: "vector tiles, selection"
<select id="type" class="form-control">
<option value="singleselect" selected>Single Select</option>
<option value="multiselect">Multi Select</option>
<option value="singleselect-hover">Single Select on hover</option>
</select>
</form>

View File

@@ -7,28 +7,37 @@ import {Fill, Stroke, Style} from '../src/ol/style.js';
// lookup for selection objects
let selection = {};
// feature property to act as identifier
const idProp = 'iso_a3';
const country = new Style({
stroke: new Stroke({
color: 'gray',
width: 1
}),
fill: new Fill({
color: 'rgba(20,20,20,0.9)'
})
});
const selectedCountry = new Style({
stroke: new Stroke({
color: 'rgba(200,20,20,0.8)',
width: 2
}),
fill: new Fill({
color: 'rgba(200,20,20,0.4)'
})
});
const vtLayer = new VectorTileLayer({
declutter: true,
source: new VectorTileSource({
format: new MVT(),
maxZoom: 15,
format: new MVT({
idProperty: 'iso_a3'
}),
url: 'https://ahocevar.com/geoserver/gwc/service/tms/1.0.0/' +
'ne:ne_10m_admin_0_countries@EPSG%3A900913@pbf/{z}/{x}/{-y}.pbf'
}),
style: function(feature) {
const selected = !!selection[feature.get(idProp)];
return new Style({
stroke: new Stroke({
color: selected ? 'rgba(200,20,20,0.8)' : 'gray',
width: selected ? 2 : 1
}),
fill: new Fill({
color: selected ? 'rgba(200,20,20,0.2)' : 'rgba(20,20,20,0.9)'
})
});
}
style: country
});
const map = new Map({
@@ -38,33 +47,48 @@ const map = new Map({
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
zoom: 2,
multiWorld: true
})
});
// Selection
const selectionLayer = new VectorTileLayer({
map: map,
renderMode: 'vector',
source: vtLayer.getSource(),
style: function(feature) {
if (feature.getId() in selection) {
return selectedCountry;
}
}
});
const selectElement = document.getElementById('type');
map.on('click', function(event) {
const features = map.getFeaturesAtPixel(event.pixel);
if (!features) {
selection = {};
// force redraw of layer style
vtLayer.setStyle(vtLayer.getStyle());
return;
}
const feature = features[0];
if (!feature) {
map.on(['click', 'pointermove'], function(event) {
if (selectElement.value === 'singleselect-hover' && event.type !== 'pointermove' ||
selectElement.value !== 'singleselect-hover' && event.type === 'pointermove') {
return;
}
vtLayer.getFeatures(event.pixel).then(function(features) {
if (!features.length) {
selection = {};
selectionLayer.changed();
return;
}
const feature = features[0];
if (!feature) {
return;
}
const fid = feature.getId();
const fid = feature.get(idProp);
if (selectElement.value.startsWith('singleselect')) {
selection = {};
}
// add selected feature to lookup
selection[fid] = feature;
if (selectElement.value === 'singleselect') {
selection = {};
}
// add selected feature to lookup
selection[fid] = feature;
// force redraw of layer style
vtLayer.setStyle(vtLayer.getStyle());
selectionLayer.changed();
});
});

View File

@@ -0,0 +1,15 @@
---
layout: example.html
title: Vector tiles in EPSG:4326
shortdesc: Example showing vector tiles in EPSG:4326 (styled using ol-mapbox-style)
docs: >
Example showing vector tiles in EPSG:4326 (styled using `ol-mapbox-style`) loaded from maptiler.com.
**Note**: Make sure to get your own API key at https://www.maptiler.com/cloud/ when using this example. No map will be visible when the API key has expired.
tags: "vector tiles, epsg4326, mapbox style, ol-mapbox-style, maptiler"
resources:
- https://cdn.polyfill.io/v2/polyfill.min.js?features=String.prototype.startsWith,Object.assign"
cloak:
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map" style="background:none;"></div>

View File

@@ -0,0 +1,50 @@
import View from '../src/ol/View.js';
import MVT from '../src/ol/format/MVT.js';
import VectorTileSource from '../src/ol/source/VectorTile.js';
import TileGrid from '../src/ol/tilegrid/TileGrid.js';
import olms from 'ol-mapbox-style';
import {defaultResolutions} from 'ol-mapbox-style/dist/util.js';
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
// Match the server resolutions
const maxResolution = 360 / 512;
defaultResolutions.length = 14;
for (let i = 0; i < 14; ++i) {
defaultResolutions[i] = maxResolution / Math.pow(2, i + 1);
}
olms('map', 'https://api.maptiler.com/maps/basic-4326/style.json?key=' + key).then(function(map) {
// Custom tile grid for the EPSG:4326 projection
const tileGrid = new TileGrid({
extent: [-180, -90, 180, 90],
tileSize: 512,
resolutions: defaultResolutions
});
const mapboxStyle = map.get('mapbox-style');
// Replace the source with a EPSG:4326 projection source for each vector tile layer
map.getLayers().forEach(function(layer) {
const mapboxSource = layer.get('mapbox-source');
if (mapboxSource && mapboxStyle.sources[mapboxSource].type === 'vector') {
const source = layer.getSource();
layer.setSource(new VectorTileSource({
format: new MVT(),
projection: 'EPSG:4326',
urls: source.getUrls(),
tileGrid: tileGrid
}));
}
});
// Configure the map with a view with EPSG:4326 projection
map.setView(new View({
projection: 'EPSG:4326',
zoom: mapboxStyle.zoom,
center: mapboxStyle.center
}));
});

View File

@@ -3,19 +3,67 @@ layout: example.html
title: WebGL points layer
shortdesc: Using a WebGL-optimized layer to render a large quantities of points
docs: >
<p>This example shows how to use a <code>WebGLPointsLayer</code> to show a large amount of points on the map.</p>
<p>The layer is given a style in JSON format which allows a certain level of customization of the final reprensentation.</p>
<p>
The following operators can be used for numerical values:
<ul>
<li><code>["get", "attributeName"]</code> fetches a numeric attribute value for each feature</li>
<li><code>["+", value, value]</code> adds two values (which an either be numeric, or the result of another operator)</li>
<li><code>["*", value, value]</code> multiplies two values</li>
<li><code>["clamp", value, min, max]</code> outputs a value between <code>min</code> and <code>max</code></li>
<li><code>["stretch", value, low1, high1, low2, high2]</code> outputs a value which has been mapped from the
<code>low1..high1</code> range to the <code>low2..high2</code> range</li>
</ul>
</p>
This example shows how to use a `WebGLPointsLayer` to show a large amount of points on the map.
The layer is given a style in JSON format which allows a certain level of customization of the final reprensentation.
The following operators can be used:
* Reading operators:
* `['get', 'attributeName']` fetches a feature attribute (it will be prefixed by `a_` in the shader)
Note: those will be taken from the attributes provided to the renderer
* `['var', 'varName']` fetches a value from the style variables, or 0 if undefined
* `['time']` returns the time in seconds since the creation of the layer
* `['zoom']` returns the current zoom level
* `['resolution']` returns the current resolution
* Math operators:
* `['*', value1, value2]` multiplies `value1` by `value2`
* `['/', value1, value2]` divides `value1` by `value2`
* `['+', value1, value2]` adds `value1` and `value2`
* `['-', value1, value2]` subtracts `value2` from `value1`
* `['clamp', value, low, high]` clamps `value` between `low` and `high`
* `['%', value1, value2]` returns the result of `value1 % value2` (modulo)
* `['^', value1, value2]` returns the value of `value1` raised to the `value2` power
* Transform operators:
* `['case', condition1, output1, ...conditionN, outputN, fallback]` selects the first output whose corresponding
condition evaluates to `true`. If no match is found, returns the `fallback` value.
All conditions should be `boolean`, output and fallback can be any kind.
* `['match', input, match1, output1, ...matchN, outputN, fallback]` compares the `input` value against all
provided `matchX` values, returning the output associated with the first valid match. If no match is found,
returns the `fallback` value.
`input` and `matchX` values must all be of the same type, and can be `number` or `string`. `outputX` and
`fallback` values must be of the same type, and can be of any kind.
* `['interpolate', interpolation, input, stop1, output1, ...stopN, outputN]` returns a value by interpolating between
pairs of inputs and outputs; `interpolation` can either be `['linear']` or `['exponential', base]` where `base` is
the rate of increase from stop A to stop B (i.e. power to which the interpolation ratio is raised); a value
of 1 is equivalent to `['linear']`.
`input` and `stopX` values must all be of type `number`. `outputX` values can be `number` or `color` values.
Note: `input` will be clamped between `stop1` and `stopN`, meaning that all output values will be comprised
between `output1` and `outputN`.
* Logical operators:
* `['<', value1, value2]` returns `true` if `value1` is strictly lower than `value2`, or `false` otherwise.
* `['<=', value1, value2]` returns `true` if `value1` is lower than or equals `value2`, or `false` otherwise.
* `['>', value1, value2]` returns `true` if `value1` is strictly greater than `value2`, or `false` otherwise.
* `['>=', value1, value2]` returns `true` if `value1` is greater than or equals `value2`, or `false` otherwise.
* `['==', value1, value2]` returns `true` if `value1` equals `value2`, or `false` otherwise.
* `['!=', value1, value2]` returns `true` if `value1` does not equal `value2`, or `false` otherwise.
* `['!', value1]` returns `false` if `value1` is `true` or greater than `0`, or `true` otherwise.
* `['between', value1, value2, value3]` returns `true` if `value1` is contained between `value2` and `value3`
(inclusively), or `false` otherwise.
* Conversion operators:
* `['array', value1, ...valueN]` creates a numerical array from `number` values; please note that the amount of
values can currently only be 2, 3 or 4.
* `['color', red, green, blue, alpha]` creates a `color` value from `number` values; the `alpha` parameter is
optional; if not specified, it will be set to 1.
Note: `red`, `green` and `blue` components must be values between 0 and 255; `alpha` between 0 and 1.
Values can either be literals or another operator, as they will be evaluated recursively.
Literal values can be of the following types:
* `boolean`
* `number`
* `string`
tags: "webgl, point, layer, feature"
experimental: true
@@ -24,15 +72,16 @@ experimental: true
<div id="map" class="map"></div>
<label>Choose a predefined style from the list below or edit it as JSON manually.</label><br>
<select id="style-select">
<option>Predefined styles</option>
<option value="icons">Icons</option>
<option value="triangles">Triangles, color related to population</option>
<option value="triangles-latitude">Triangles, color related to latitude</option>
<option value="circles">Circles, size related to population</option>
<option value="circles-zoom">Circles, size related to zoom</option>
<option value="rotating-bars">Rotating bars</option>
</select>
<textarea style="width: 100%; height: 20rem; font-family: monospace; font-size: small;" id="style-editor"></textarea>
<small id="style-valid" style="display: none; color: forestgreen">
✓ style is valid
</small>
<small id="style-invalid" style="display: none; color: grey">
✗ style not yet valid...
<small>
<span id="style-valid" style="display: none; color: forestgreen">✓ style is valid</span>
<span id="style-invalid" style="display: none; color: grey"><span>style not yet valid...</span></span>
&nbsp;
</small>

View File

@@ -27,27 +27,105 @@ const predefinedStyles = {
symbolType: 'triangle',
size: 18,
color: [
['stretch', ['get', 'population'], 20000, 300000, 0.1, 1.0],
['stretch', ['get', 'population'], 20000, 300000, 0.6, 0.3],
0.6,
1.0
'interpolate',
['linear'],
['get', 'population'],
20000, '#5aca5b',
300000, '#ff6a19'
],
rotateWithView: true
}
},
'triangles-latitude': {
symbol: {
symbolType: 'triangle',
size: [
'interpolate',
['linear'],
['get', 'population'],
40000, 12,
2000000, 24
],
color: [
'interpolate',
['linear'],
['get', 'latitude'],
-60, '#ff14c3',
-20, '#ff621d',
20, '#ffed02',
60, '#00ff67'
],
offset: [0, 0],
opacity: 0.95
}
},
'circles': {
symbol: {
symbolType: 'circle',
size: ['stretch', ['get', 'population'], 40000, 2000000, 8, 28],
size: [
'interpolate',
['linear'],
['get', 'population'],
40000, 8,
2000000, 28
],
color: '#006688',
rotateWithView: false,
offset: [0, 0],
opacity: ['stretch', ['get', 'population'], 40000, 2000000, 0.6, 0.92]
opacity: [
'interpolate',
['linear'],
['get', 'population'],
40000, 0.6,
2000000, 0.92
]
}
},
'circles-zoom': {
symbol: {
symbolType: 'circle',
size: [
'interpolate',
['exponential', 2.5],
['zoom'],
2, 1,
14, 32
],
color: '#240572',
offset: [0, 0],
opacity: 0.95
}
},
'rotating-bars': {
symbol: {
symbolType: 'square',
rotation: ['*', [
'time'
], 0.1],
size: ['array', 4, [
'interpolate',
['linear'],
['get', 'population'],
20000, 4,
300000, 28]
],
color: [
'interpolate',
['linear'],
['get', 'population'],
20000, '#ffdc00',
300000, '#ff5b19'
],
offset: ['array', 0, [
'interpolate',
['linear'],
['get', 'population'],
20000, 2,
300000, 14]
]
}
}
};
let literalStyle = predefinedStyles['circles'];
let pointsLayer;
const map = new Map({
layers: [
@@ -62,45 +140,66 @@ const map = new Map({
})
});
const editor = document.getElementById('style-editor');
editor.value = JSON.stringify(literalStyle, null, 2);
function refreshLayer() {
if (pointsLayer) {
map.removeLayer(pointsLayer);
}
let literalStyle;
let pointsLayer;
function refreshLayer(newStyle) {
const previousLayer = pointsLayer;
pointsLayer = new WebGLPointsLayer({
source: vectorSource,
style: literalStyle
style: newStyle,
disableHitDetection: true
});
map.addLayer(pointsLayer);
if (previousLayer) {
map.removeLayer(previousLayer);
previousLayer.dispose();
}
literalStyle = newStyle;
}
function setStyleStatus(valid) {
document.getElementById('style-valid').style.display = valid ? 'initial' : 'none';
document.getElementById('style-invalid').style.display = !valid ? 'initial' : 'none';
const spanValid = document.getElementById('style-valid');
const spanInvalid = document.getElementById('style-invalid');
function setStyleStatus(errorMsg) {
const isError = typeof errorMsg === 'string';
spanValid.style.display = errorMsg === null ? 'initial' : 'none';
spanInvalid.firstElementChild.innerText = isError ? errorMsg : '';
spanInvalid.style.display = isError ? 'initial' : 'none';
}
const editor = document.getElementById('style-editor');
editor.addEventListener('input', function() {
const textStyle = editor.value;
if (JSON.stringify(JSON.parse(textStyle)) === JSON.stringify(literalStyle)) {
return;
}
try {
literalStyle = JSON.parse(textStyle);
refreshLayer();
setStyleStatus(true);
const newLiteralStyle = JSON.parse(textStyle);
if (JSON.stringify(newLiteralStyle) !== JSON.stringify(literalStyle)) {
refreshLayer(newLiteralStyle);
}
setStyleStatus(null);
} catch (e) {
setStyleStatus(false);
setStyleStatus(e.message);
}
});
refreshLayer();
const select = document.getElementById('style-select');
select.addEventListener('change', function() {
select.value = 'circles';
function onSelectChange() {
const style = select.value;
literalStyle = predefinedStyles[style];
editor.value = JSON.stringify(literalStyle, null, 2);
refreshLayer();
});
const newLiteralStyle = predefinedStyles[style];
editor.value = JSON.stringify(newLiteralStyle, null, 2);
try {
refreshLayer(newLiteralStyle);
setStyleStatus();
} catch (e) {
setStyleStatus(e.message);
}
}
onSelectChange();
select.addEventListener('change', onSelectChange);
// animate the map
function animate() {
map.render();
window.requestAnimationFrame(animate);
}
animate();

View File

@@ -138,9 +138,13 @@ ExampleBuilder.prototype.apply = function(compiler) {
.filter(chunk => chunk.names[0] !== this.common);
const exampleData = [];
const uniqueTags = new Set();
const promises = chunks.map(async chunk => {
const [assets, data] = await this.render(compiler.context, chunk);
// collect tags for main page... TODO: implement index tag links
data.tags.forEach(tag => uniqueTags.add(tag));
exampleData.push({
link: data.filename,
example: data.filename,
@@ -158,7 +162,8 @@ ExampleBuilder.prototype.apply = function(compiler) {
const info = {
examples: exampleData,
index: createWordIndex(exampleData)
index: createWordIndex(exampleData),
tags: Array.from(uniqueTags)
};
const indexSource = `var info = ${JSON.stringify(info)}`;
@@ -182,6 +187,13 @@ ExampleBuilder.prototype.render = async function(dir, chunk) {
data.olVersion = pkg.version;
data.filename = htmlName;
// process tags
if (data.tags) {
data.tags = data.tags.replace(/[\s"]+/g, '').split(',');
} else {
data.tags = [];
}
// add in script tag
const jsName = `${name}.js`;
let jsSource = getJsSource(chunk, path.join('.', jsName));

View File

@@ -12,4 +12,4 @@ tags: "GetLegendGraphic, getLegendUrl, WMS"
---
<div id="map" class="map"></div>
Legend:
<div><img id="legend" src=""/></div>
<div><img id="legend"/></div>

View File

@@ -4,9 +4,9 @@ title: Constrained Zoom
shortdesc: Example of a zoom constrained view.
docs: >
This map has a view that is constrained between zoom levels 9 and 13. This is done using the `minZoom` and `maxZoom` view options.
tags: "bing, zoom, minZoom, maxZoom"
tags: "maptiler, zoom, minZoom, maxZoom"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div id="map" class="map"></div>

Some files were not shown because too many files have changed in this diff Show More