Compare commits

...

1012 Commits

Author SHA1 Message Date
Andreas Hocevar
b1c2d639bf Update package version to 6.4.0 2020-07-26 20:36:43 +02:00
Andreas Hocevar
0a77e1d19e Changelog for v6.4.0 2020-07-26 20:32:44 +02:00
Andreas Hocevar
07a7031d48 Merge pull request #11322 from jipexu/master
same dropdown hover than the site
2020-07-26 19:12:26 +02:00
Andreas Hocevar
4439b35f14 Merge pull request #11321 from jipexu/patch-3
dropdown margin bottom
2020-07-26 19:11:57 +02:00
Andreas Hocevar
06f8aea1d1 Merge pull request #11320 from jipexu/patch-2
margin bottom for dropdown
2020-07-26 19:11:27 +02:00
Andreas Hocevar
7c0e9f5070 Merge pull request #11319 from jipexu/patch-1
dropdown margin bottom
2020-07-26 19:10:52 +02:00
jeanpierre
7dcddf4ec7 Update layout.css 2020-07-26 18:41:42 +02:00
jipexu
f71af085fe dropdown margin bottom 2020-07-26 18:09:17 +02:00
jipexu
50ec168a1b margin bottom for dropdown 2020-07-26 18:04:47 +02:00
jipexu
4b6e440610 dropdown margin bottom 2020-07-26 18:02:24 +02:00
Andreas Hocevar
6b24a378a3 Merge pull request #11318 from ahocevar/active-nav-item
Mark active nav item
2020-07-26 17:49:42 +02:00
Andreas Hocevar
2b23052d23 Mark active nav item 2020-07-26 17:41:16 +02:00
Andreas Hocevar
9c737a036e Merge pull request #11317 from ahocevar/doc-nav
Make header and menu navigation consistent with web site
2020-07-26 17:25:17 +02:00
Andreas Hocevar
f70374e453 Make header and menu navigation consistent with web site 2020-07-26 17:15:49 +02:00
Andreas Hocevar
5b84b2470c Merge pull request #11277 from sbrunner/hires-regularshape-master
Have high resolution regular shape
2020-07-26 12:39:44 +02:00
Andreas Hocevar
f018f4d5e8 Merge pull request #11313 from MoonE/examples-add-tag-count
Add direct link to other examples to tags
2020-07-26 12:20:20 +02:00
Andreas Hocevar
c144c7265e Example doc and color changes 2020-07-26 12:13:16 +02:00
Andreas Hocevar
2e781afd56 Use static test context for tainted canvas 2020-07-26 12:12:57 +02:00
Maximilian Krög
9093478016 Add modal to tag count with direct links to other examples 2020-07-25 20:40:20 +02:00
Maximilian Krög
50404ca409 Add number of occurence to tags
It can be a bit frustrating to click on a tag only to realise it was the
only example with that tag.
2020-07-25 14:00:53 +02:00
jipexu
a90cee57e5 Merge pull request #1 from openlayers/main
update
2020-07-25 10:18:27 +02:00
Andreas Hocevar
aa0a895212 Merge pull request #11310 from ahocevar/bootstrap-update
Update bootstrap, cleanup css, make pages more responsive
2020-07-23 12:46:27 +02:00
Andreas Hocevar
db3af0d503 Merge pull request #11304 from ahocevar/reuse-empty-canvas
Reuse empty canvas
2020-07-23 12:35:16 +02:00
Andreas Hocevar
0dafe6adbd Remove unused fonts 2020-07-23 12:32:27 +02:00
jeanpierre
9616dee9f7 Update bootstrap, cleanup css, make pages more responsive 2020-07-23 12:32:27 +02:00
Andreas Hocevar
4eab8ecd40 Merge pull request #11309 from ahocevar/fix-example-build
Do not extract comments to avoid asset name conflicts
2020-07-23 12:31:53 +02:00
Andreas Hocevar
3a269045f2 Do not extract comments to avoid asset name conflicts 2020-07-22 21:53:38 +02:00
Andreas Hocevar
8231ac42f3 Merge pull request #11306 from petrsloup/replace-tileserver.maptiler.com
Replace/remove usage of tileserver.maptiler.com
2020-07-22 14:45:07 +02:00
Petr Sloup
84ae3d16a6 Replace/remove usage of tileserver.maptiler.com 2020-07-22 09:55:27 +02:00
Andreas Hocevar
2de96d5c84 Merge pull request #11270 from ahocevar/control-events
Fix handling of events originating from overlayContainerStopEvent children
2020-07-22 09:48:26 +02:00
Andreas Hocevar
00c928f1f5 Merge pull request #11269 from ahocevar/settarget-events
Register and unregister events in set target handler
2020-07-22 09:47:22 +02:00
Andreas Hocevar
8efb1eea43 Reuse empty canvas 2020-07-21 22:35:48 +02:00
Andreas Hocevar
f763df8c0a Merge pull request #11300 from mike-000/patch-2
Drag and Drop to update source and fire event only if features added
2020-07-21 11:56:07 +02:00
mike-000
926d740a8e fix syntax of return with typecast 2020-07-20 19:24:56 +01:00
mike-000
f9f90ea766 move type cast to tryReadFeatures_ 2020-07-20 19:16:49 +01:00
mike-000
9fb45aa2d2 fix prettier 2020-07-20 17:06:52 +01:00
mike-000
21f4d4998b type casting 2020-07-20 17:02:38 +01:00
mike-000
1812ce8b28 update source and fire event only if features added 2020-07-20 16:08:00 +01:00
Andreas Hocevar
c2376455ad Merge pull request #11298 from openlayers/dependabot/npm_and_yarn/babel/core-7.10.5
Bump @babel/core from 7.10.4 to 7.10.5
2020-07-20 11:47:18 +02:00
Andreas Hocevar
121cc0d827 Merge pull request #11297 from openlayers/dependabot/npm_and_yarn/puppeteer-5.2.0
Bump puppeteer from 5.1.0 to 5.2.0
2020-07-20 11:46:52 +02:00
Andreas Hocevar
eab628e7aa Merge pull request #11296 from openlayers/dependabot/npm_and_yarn/typescript-3.9.7
Bump typescript from 3.9.6 to 3.9.7
2020-07-20 11:46:28 +02:00
Andreas Hocevar
57fb401512 Merge pull request #11295 from openlayers/dependabot/npm_and_yarn/eslint-7.5.0
Bump eslint from 7.4.0 to 7.5.0
2020-07-20 11:46:01 +02:00
Andreas Hocevar
c2cddc1289 Merge pull request #11294 from openlayers/dependabot/npm_and_yarn/rollup-2.22.1
Bump rollup from 2.21.0 to 2.22.1
2020-07-20 11:45:30 +02:00
Andreas Hocevar
6310377e0d Merge pull request #11293 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-3.0.7
Bump terser-webpack-plugin from 3.0.6 to 3.0.7
2020-07-20 11:44:59 +02:00
Andreas Hocevar
a784b8e207 Merge pull request #11292 from openlayers/dependabot/npm_and_yarn/url-polyfill-1.1.10
Bump url-polyfill from 1.1.9 to 1.1.10
2020-07-20 11:44:22 +02:00
Andreas Hocevar
dacf6fd281 Merge pull request #11291 from openlayers/dependabot/npm_and_yarn/marked-1.1.1
Bump marked from 1.1.0 to 1.1.1
2020-07-20 11:43:53 +02:00
dependabot-preview[bot]
3d68d5ca0a Bump @babel/core from 7.10.4 to 7.10.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.4 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 09:22:23 +00:00
dependabot-preview[bot]
d3ba7e9cfe Bump puppeteer from 5.1.0 to 5.2.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v5.1.0...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 09:20:54 +00:00
dependabot-preview[bot]
55ed134216 Bump typescript from 3.9.6 to 3.9.7
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.6 to 3.9.7.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.6...v3.9.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 09:19:46 +00:00
dependabot-preview[bot]
ef785c342a Bump eslint from 7.4.0 to 7.5.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.4.0 to 7.5.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/v7.4.0...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 09:18:54 +00:00
dependabot-preview[bot]
1f6e2a6b92 Bump rollup from 2.21.0 to 2.22.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.21.0 to 2.22.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/v2.21.0...v2.22.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 09:17:32 +00:00
dependabot-preview[bot]
3344b71511 Bump terser-webpack-plugin from 3.0.6 to 3.0.7
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 3.0.6 to 3.0.7.
- [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/v3.0.6...v3.0.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 09:16:42 +00:00
dependabot-preview[bot]
0b86747ee1 Bump url-polyfill from 1.1.9 to 1.1.10
Bumps [url-polyfill](https://github.com/lifaon74/url-polyfill) from 1.1.9 to 1.1.10.
- [Release notes](https://github.com/lifaon74/url-polyfill/releases)
- [Commits](https://github.com/lifaon74/url-polyfill/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 09:15:40 +00:00
dependabot-preview[bot]
ca3e9f3a74 Bump marked from 1.1.0 to 1.1.1
Bumps [marked](https://github.com/markedjs/marked) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v1.1.0...v1.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 09:14:56 +00:00
Andreas Hocevar
56db05772c Register and unregister events in set target handler 2020-07-19 19:24:51 +02:00
Andreas Hocevar
57f4867aba Merge pull request #11286 from MoonE/apidoc-navigation-split-at-slash
Allow line breaks before slashes in apidoc navigation
2020-07-18 09:41:47 +02:00
Andreas Hocevar
4d8613644e Merge pull request #11287 from MoonE/examples-search2
Examples index page fixes
2020-07-18 09:33:36 +02:00
Andreas Hocevar
dc548fe8b8 Merge pull request #11288 from openlayers/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-07-18 09:31:23 +02:00
dependabot[bot]
b5e03cd270 Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-18 00:11:02 +00:00
Maximilian Krög
217f648608 Fix quotes in tags yaml 2020-07-17 21:52:35 +02:00
Maximilian Krög
557563f331 Update scoring / indexing code
Add dict / word as parameters to updateScore function so it
does not need to be created in each loop, and shorten it a bit.
2020-07-17 21:52:35 +02:00
Maximilian Krög
b6404fb766 Remove unnecessary space at end of bing key 2020-07-17 21:52:35 +02:00
Maximilian Krög
856830b834 No empty string words / allow 1 character search
If a  space character is at either end of the input string splitting it
procuces an empty string that matches everything.

Allow single character words as there are is a single character tag: `x`
2020-07-17 21:52:34 +02:00
Maximilian Krög
b41a43cb7f Simplify sorting of the examples by precalculating the score / words 2020-07-17 21:52:34 +02:00
Maximilian Krög
687795ba24 Skip listing all examples if query param is set.
Also use the `input` event instead of `keyup` and addEventlistener instead
of setting the onload / onchange properties.
And handle space character encoded as `+` in query string correctly.
2020-07-17 21:52:34 +02:00
Maximilian Krög
84463c3030 Make example builds repeatable 2020-07-17 21:52:27 +02:00
Maximilian Krög
292ff812fe Split searching and listing 2020-07-17 21:18:53 +02:00
Maximilian Krög
dc05cacefa Prettier code
This also fixes two undeclared variables and the regex is only created once per word
2020-07-17 21:18:53 +02:00
Maximilian Krög
681fc155a7 Move js code into separate file to benefit from code analysis 2020-07-17 21:18:47 +02:00
MoonE
353de14624 Update config/jsdoc/api/template/tmpl/navigation.tmpl
Co-authored-by: Andreas Hocevar <andreas.hocevar@gmail.com>
2020-07-17 16:17:07 +02:00
Olivier Guyot
15553f7aec Merge pull request #11197 from RydingM/master
Added '&&' logical operator to expressions
2020-07-17 14:37:12 +02:00
Stéphane Brunner
f6061f0589 Don't creates too many canvas 2020-07-17 11:22:29 +02:00
Maximilian Krög
434ac3141f Allow line breaks before slashes in apidoc navigation 2020-07-16 21:51:29 +02:00
michael ryding
b25d7bc58a Added all and any operator 2020-07-16 09:03:00 +01:00
Andreas Hocevar
f8732cd0a8 Merge pull request #11283 from yonzmeer/remove-update-while-from-vector-image
Remove update while interacting/animating from VectorImage
2020-07-16 08:11:28 +02:00
yonzmeer
4001b0c0b9 Remove update while interacting/animating from VectorImage
as described in issue 11250
2020-07-15 20:15:22 +03:00
Stéphane Brunner
bf24288f09 Fix for not integer pixel ratio 2020-07-15 16:37:40 +02:00
Stéphane Brunner
fd1effa992 High resolution icon 2020-07-15 16:30:24 +02:00
Stéphane Brunner
f2fe6e5957 Have high resolution regular shape 2020-07-15 10:53:20 +02:00
Andreas Hocevar
2dd9342a98 Merge pull request #11267 from ahocevar/vectortile-label-rotation
Fix upright labels on vector tiles
2020-07-13 18:18:24 +02:00
Olivier Guyot
f9e639c960 Merge pull request #11263 from mike-000/patch-19
Fix rotation reset in Mapbox-gl Layer example
2020-07-13 13:30:59 +02:00
Andreas Hocevar
aca3d49550 Merge pull request #11275 from openlayers/dependabot/npm_and_yarn/puppeteer-5.1.0
Bump puppeteer from 5.0.0 to 5.1.0
2020-07-13 13:27:26 +02:00
Andreas Hocevar
f3a67e8182 Merge pull request #11268 from ahocevar/cache-size
Cache size
2020-07-13 11:57:49 +02:00
Andreas Hocevar
b9d6ae4fca Merge pull request #11274 from openlayers/dependabot/npm_and_yarn/rollup-2.21.0
Bump rollup from 2.19.0 to 2.21.0
2020-07-13 11:57:06 +02:00
dependabot-preview[bot]
6bc789641d Bump puppeteer from 5.0.0 to 5.1.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v5.0.0...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 09:53:10 +00:00
dependabot-preview[bot]
cafa2d2bd6 Bump rollup from 2.19.0 to 2.21.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.19.0 to 2.21.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/v2.19.0...v2.21.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 09:53:02 +00:00
Andreas Hocevar
17091bf5d4 Merge pull request #11273 from openlayers/dependabot/npm_and_yarn/yargs-15.4.1
Bump yargs from 15.4.0 to 15.4.1
2020-07-13 11:50:52 +02:00
mike-000
b896fd0010 specify font family 2020-07-13 10:47:03 +01:00
mike-000
49a4344446 reinsert experimental: tag 2020-07-13 10:43:21 +01:00
dependabot-preview[bot]
7da490c2ac Bump yargs from 15.4.0 to 15.4.1
Bumps [yargs](https://github.com/yargs/yargs) from 15.4.0 to 15.4.1.
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 09:07:20 +00:00
Andreas Hocevar
d97edd28e5 Merge pull request #11271 from mike-000/patch-20
Make style override CSS compatible with importing ol.css and with IE
2020-07-12 16:09:55 +02:00
mike-000
8321cc6fbf remove dependence on container div 2020-07-12 14:15:49 +01:00
mike-000
54fc7439b4 make style override consistent with other examples 2020-07-12 13:47:02 +01:00
mike-000
30d48573a7 make compatible with ol.css import 2020-07-12 13:04:34 +01:00
mike-000
635f380a9d make compatible with ol.css import 2020-07-12 12:57:25 +01:00
mike-000
6ea784ae1b make compatible with ol.css import 2020-07-12 12:54:14 +01:00
mike-000
d8a440ba4a make compatible with ol.css import and with IE 2020-07-12 12:45:22 +01:00
mike-000
942b306a97 make compatible with ol.css import and with IE 2020-07-12 12:45:14 +01:00
mike-000
2bc3f2ed73 remove dependence on container div 2020-07-12 12:28:41 +01:00
mike-000
896352bd8b remove container div 2020-07-12 12:21:05 +01:00
Andreas Hocevar
14b7b1d993 Fix handling of events originating from overlayContainerStopEvent children 2020-07-12 13:15:11 +02:00
Andreas Hocevar
18d96a2205 Auto-grow tile cache from zero 2020-07-11 20:32:54 +02:00
Andreas Hocevar
0167c2760e Grow cache size dynamically 2020-07-11 18:04:07 +02:00
Andreas Hocevar
6ec49d5ee0 Fix upright labels on vector tiles 2020-07-11 17:55:34 +02:00
mike-000
bee05bbd24 update to latest mapbox gl version 2020-07-10 21:47:31 +01:00
mike-000
233269d56c add missing import 2020-07-10 18:27:35 +01:00
mike-000
960fad2fc7 Fix rotation reset and add attributions 2020-07-10 18:16:32 +01:00
mike-000
63135dadf6 Reset font size changed by Mapbox CSS 2020-07-10 17:58:17 +01:00
mike-000
5461a1dafd Add files via upload 2020-07-10 17:53:44 +01:00
mike-000
d99f58d7ff update mapbox gl version 2020-07-10 17:45:25 +01:00
Andreas Hocevar
5096b73816 Merge pull request #11253 from ahocevar/fix-safe-transform
Only clamp to source extent for safe transforms
2020-07-10 13:32:39 +02:00
Andreas Hocevar
13aecd40ca Merge pull request #11258 from ahocevar/package-tag
Replace ol tag with openlayers
2020-07-10 07:35:14 +02:00
Andreas Hocevar
1e22bf142d Replace ol tag with openlayers 2020-07-09 09:36:16 +02:00
Andreas Hocevar
5cd102af10 Merge pull request #11256 from EvertEt/rastersource-dispose-docs
Add dispose API docs to raster source (#10856)
2020-07-08 16:11:42 +02:00
EvertE
27983a8f8d Add dispose API docs to raster source (#10856) 2020-07-08 09:57:07 +02:00
Andreas Hocevar
a2727ffe8f Merge pull request #11255 from Shekenix/getDataAtPixel-improvement
GetDataAtPixel performance improvement
2020-07-07 23:40:04 +02:00
Andreas Hocevar
a9b3a5bcc9 Only clamp to source projection extent 2020-07-07 10:12:47 +02:00
Andreas Hocevar
8baf91bc0e Merge pull request #11252 from jmacura/ol/geom-exports
Add missing SimpleGeometry export
2020-07-06 22:36:39 +02:00
jmacura
ec381a1986 Add missing SimpleGeometry export
Add SimpleGeometry as a named export from ol/geom.
Sort exports alphabetically.

closes #11233
2020-07-06 20:01:50 +02:00
Andreas Hocevar
98daf5d63f Merge pull request #11244 from openlayers/dependabot/npm_and_yarn/rollup-2.19.0
Bump rollup from 2.18.0 to 2.19.0
2020-07-06 11:53:18 +02:00
Andreas Hocevar
c72b7b3502 Merge pull request #11245 from openlayers/dependabot/npm_and_yarn/babel/core-7.10.4
Bump @babel/core from 7.10.3 to 7.10.4
2020-07-06 11:52:46 +02:00
Andreas Hocevar
63e63f35f5 Merge pull request #11243 from openlayers/dependabot/npm_and_yarn/pixelmatch-5.2.1
Bump pixelmatch from 5.2.0 to 5.2.1
2020-07-06 11:51:47 +02:00
Andreas Hocevar
aa643619d6 Merge pull request #11248 from openlayers/dependabot/npm_and_yarn/eslint-7.4.0
Bump eslint from 7.3.0 to 7.4.0
2020-07-06 11:50:40 +02:00
Andreas Hocevar
01d0902a52 Merge pull request #11247 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.10.4
Bump @babel/preset-env from 7.10.3 to 7.10.4
2020-07-06 11:46:33 +02:00
Andreas Hocevar
2f78621b65 Merge pull request #11249 from openlayers/dependabot/npm_and_yarn/copy-webpack-plugin-6.0.3
Bump copy-webpack-plugin from 6.0.2 to 6.0.3
2020-07-06 11:45:30 +02:00
dependabot-preview[bot]
b3ffa4a7d8 Bump rollup from 2.18.0 to 2.19.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.18.0 to 2.19.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/v2.18.0...v2.19.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:43:53 +00:00
Andreas Hocevar
06f8a08b32 Merge pull request #11246 from openlayers/dependabot/npm_and_yarn/yargs-15.4.0
Bump yargs from 15.3.1 to 15.4.0
2020-07-06 11:43:53 +02:00
dependabot-preview[bot]
c132449517 Bump pixelmatch from 5.2.0 to 5.2.1
Bumps [pixelmatch](https://github.com/mapbox/pixelmatch) from 5.2.0 to 5.2.1.
- [Release notes](https://github.com/mapbox/pixelmatch/releases)
- [Commits](https://github.com/mapbox/pixelmatch/compare/v5.2.0...v5.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:43:51 +00:00
Andreas Hocevar
298524160f Merge pull request #11242 from openlayers/dependabot/npm_and_yarn/typescript-3.9.6
Bump typescript from 3.9.5 to 3.9.6
2020-07-06 11:42:10 +02:00
Andreas Hocevar
9b4ba4d460 Merge pull request #11241 from openlayers/dependabot/npm_and_yarn/puppeteer-5.0.0
Bump puppeteer from 4.0.0 to 5.0.0
2020-07-06 11:41:35 +02:00
dependabot-preview[bot]
f642edcdfe Bump copy-webpack-plugin from 6.0.2 to 6.0.3
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 6.0.2 to 6.0.3.
- [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/v6.0.2...v6.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:17:34 +00:00
dependabot-preview[bot]
38037f3ce0 Bump eslint from 7.3.0 to 7.4.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.3.0 to 7.4.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/v7.3.0...v7.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:17:02 +00:00
dependabot-preview[bot]
3828f76db5 Bump @babel/preset-env from 7.10.3 to 7.10.4
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.10.3 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-preset-env)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:15:43 +00:00
dependabot-preview[bot]
316393de7f Bump yargs from 15.3.1 to 15.4.0
Bumps [yargs](https://github.com/yargs/yargs) from 15.3.1 to 15.4.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.3.1...v15.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:14:45 +00:00
dependabot-preview[bot]
f247f4ad5c Bump @babel/core from 7.10.3 to 7.10.4
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.3 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:14:13 +00:00
dependabot-preview[bot]
69a04876a2 Bump typescript from 3.9.5 to 3.9.6
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.5 to 3.9.6.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:10:54 +00:00
dependabot-preview[bot]
5f16463a1a Bump puppeteer from 4.0.0 to 5.0.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 4.0.0 to 5.0.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v4.0.0...v5.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 09:10:06 +00:00
Kamil
a151d1b7a5 #11235
GetDataAtPixel performance improvement
2020-07-05 17:52:51 +02:00
Tim Schaub
4727208e6e Merge pull request #11226 from michalzielanski/modify-geometry-collection-bugfix
By modifying the common vertex, not all geometries were changed when …
2020-06-29 08:23:24 -06:00
Andreas Hocevar
f62d22fab9 Merge pull request #11225 from mike-000/patch-18
Use 'source-over' to render reprojection edges
2020-06-29 15:30:21 +02:00
Michał Zielański
3d9dfe2654 By modifying the common vertex, not all geometries were changed when the geometries were aggregated in the collection 2020-06-29 10:48:17 +02:00
mike-000
75ae8634f7 use 'source-over' to render edges 2020-06-28 14:51:36 +01:00
Andreas Hocevar
4621496d44 Merge pull request #11224 from mohawk2/patch-1
Quote . in RegExp
2020-06-28 00:17:53 +02:00
Andreas Hocevar
a07118a302 Merge pull request #11219 from ahocevar/safe-proj4
Make proj4 transforms behave like built-in transforms
2020-06-27 10:25:05 +02:00
mohawk2
2a9e109528 Quote . in regex, use literal not RegExp 2020-06-27 05:42:21 +01:00
Andreas Hocevar
04598d0641 Consider all corners for min/max x/y check 2020-06-26 19:29:51 +02:00
Andreas Hocevar
36a57ce6cc Remove redundant check 2020-06-26 19:29:36 +02:00
Andreas Hocevar
f41776cbb7 Also clamp x when transform failed 2020-06-26 17:36:17 +02:00
Andreas Hocevar
7b4b77433b Only clamp to dest extent when transform failed 2020-06-26 17:27:51 +02:00
Andreas Hocevar
fef349120b Avoid extra extent width calculation 2020-06-26 17:26:41 +02:00
Andreas Hocevar
39f4627b8c Improve readability and efficiency 2020-06-26 10:29:43 +02:00
Andreas Hocevar
bef4d8a494 Make proj4 transforms behave like built-in transforms 2020-06-26 00:16:52 +02:00
Andreas Hocevar
4758b533d0 Merge pull request #11218 from ahocevar/getfeature-rotated
getFeatures() uses wrong transforms after resetting rotation
2020-06-25 08:08:30 +02:00
Tim Schaub
09a458bed1 Merge pull request #11217 from tschaub/more-geosjon-tests
Additional test coverage for serializing GeoJSON
2020-06-24 15:20:26 -06:00
Andreas Hocevar
18a8961d79 Fix getFeatures after rotation reset for VectorImage 2020-06-24 21:37:25 +02:00
Andreas Hocevar
ac14f6df62 Fix getFeatures after rotation reset for Vector 2020-06-24 21:37:13 +02:00
Andreas Hocevar
e4303c7b26 Merge pull request #11215 from ahocevar/flat-multipolygon
Fix MVT multipolygons with featureClass: Feature
2020-06-24 19:36:38 +02:00
Tim Schaub
45d90cde72 Additional test coverage for serializing GeoJSON 2020-06-24 10:43:15 -06:00
Andreas Hocevar
9460b167e4 Merge pull request #11193 from mike-000/patch-14
Fix VectorImage layer clipping with rotation
2020-06-24 17:23:43 +02:00
mike-000
6c5a0674ec revert previous commit 2020-06-24 15:57:39 +01:00
mike-000
658bc0a729 correct clipping of the vector rendering 2020-06-24 15:51:41 +01:00
Andreas Hocevar
4ce1cb89c6 Merge pull request #11195 from mike-000/patch-16
getExtent() to return getEmpty() if geometry is unprojectable
2020-06-24 15:01:00 +02:00
mike-000
4c7a1817fa optimise check for NaN in extent 2020-06-24 12:46:02 +01:00
Andreas Hocevar
cfe763e469 Merge pull request #11188 from michalzielanski/late-obj-init
Late object initialization
2020-06-24 10:21:43 +02:00
Michał Zielański
e706a5cd67 Restore {Object <...>} instead of {? Object <...>} 2020-06-24 10:05:41 +02:00
Michał Zielański
235babfd7f Adaptation of previous changes to the change from 61241e7 (null instead of undefined as the initial value) 2020-06-24 09:54:56 +02:00
Andreas Hocevar
18e2044b58 Add rendering tests for MVT, comparing with GeoJSON 2020-06-23 23:53:35 +02:00
Andreas Hocevar
f139edcdae Merge pull request #11194 from mike-000/patch-15
ol/geom/LineString#getCoordinateAt() to return Z and M values if available
2020-06-23 23:51:01 +02:00
Andreas Hocevar
61241e7f90 Do nut use name annotation and avoid changing types 2020-06-23 23:07:35 +02:00
Andreas Hocevar
79c318d262 Make test polygons squares 2020-06-23 22:01:06 +02:00
Andreas Hocevar
40ab8405c1 Do not use a separate isClockwise check 2020-06-23 21:17:59 +02:00
songyumeng
b606878d57 fixes #8148
judge whether it is multiPolygon or Polygon:https://github.com/mapbox/vector-tile-js/blob/a9a9102/lib/vectortilefeature.js#L195-L223
2020-06-23 20:15:52 +02:00
Andreas Hocevar
c490745ff0 Faster clockwise check and better documentation 2020-06-23 19:56:12 +02:00
Andreas Hocevar
3349f74a04 Merge pull request #11210 from openlayers/dependabot/npm_and_yarn/puppeteer-4.0.0
Bump puppeteer from 3.3.0 to 4.0.0
2020-06-22 14:36:57 +02:00
Andreas Hocevar
7c718a854e Merge pull request #11209 from openlayers/dependabot/npm_and_yarn/rollup-2.18.0
Bump rollup from 2.16.1 to 2.18.0
2020-06-22 14:36:11 +02:00
Andreas Hocevar
a8c02312a9 Merge pull request #11208 from openlayers/dependabot/npm_and_yarn/webpack-cli-3.3.12
Bump webpack-cli from 3.3.11 to 3.3.12
2020-06-22 14:35:31 +02:00
Andreas Hocevar
d68cfcb84b Merge pull request #11207 from openlayers/dependabot/npm_and_yarn/eslint-7.3.0
Bump eslint from 7.2.0 to 7.3.0
2020-06-22 13:01:47 +02:00
Andreas Hocevar
719d84939d Merge pull request #11206 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.10.3
Bump @babel/preset-env from 7.10.2 to 7.10.3
2020-06-22 12:13:21 +02:00
dependabot-preview[bot]
bd9f4b243e Bump @babel/preset-env from 7.10.2 to 7.10.3
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.10.2 to 7.10.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.3/packages/babel-preset-env)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 10:05:10 +00:00
Andreas Hocevar
c88c233574 Merge pull request #11205 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-3.0.6
Bump terser-webpack-plugin from 3.0.4 to 3.0.6
2020-06-22 12:04:03 +02:00
Andreas Hocevar
c7fc28f70a Merge pull request #11204 from openlayers/dependabot/npm_and_yarn/babel/core-7.10.3
Bump @babel/core from 7.10.2 to 7.10.3
2020-06-22 12:02:46 +02:00
dependabot-preview[bot]
12445a5dc8 Bump puppeteer from 3.3.0 to 4.0.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 3.3.0 to 4.0.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v3.3.0...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 09:23:53 +00:00
dependabot-preview[bot]
6a9ded7dde Bump rollup from 2.16.1 to 2.18.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.16.1 to 2.18.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/v2.16.1...v2.18.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 09:22:50 +00:00
dependabot-preview[bot]
4beafd250d Bump webpack-cli from 3.3.11 to 3.3.12
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.11 to 3.3.12.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.12/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.11...v3.3.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 09:21:45 +00:00
dependabot-preview[bot]
7b894ef300 Bump eslint from 7.2.0 to 7.3.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.2.0 to 7.3.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/v7.2.0...v7.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 09:20:59 +00:00
dependabot-preview[bot]
d925bca7ff Bump terser-webpack-plugin from 3.0.4 to 3.0.6
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 3.0.4 to 3.0.6.
- [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/v3.0.4...v3.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 09:18:55 +00:00
dependabot-preview[bot]
155003fc35 Bump @babel/core from 7.10.2 to 7.10.3
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.2 to 7.10.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.3/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 09:18:50 +00:00
Andreas Hocevar
d3909715bc Merge pull request #11198 from mike-000/patch-17
Add condition option to Extent interaction
2020-06-21 09:13:26 +02:00
Tim Schaub
2fc5b7a8f7 Merge pull request #11202 from tschaub/branch-names
Branch name changes
2020-06-20 13:43:12 -06:00
Tim Schaub
9f6939cfd8 Publish dev releases for pushes to main 2020-06-20 13:18:57 -06:00
Tim Schaub
96712ae51d Link to latest instead of main 2020-06-20 13:09:31 -06:00
Tim Schaub
139b048197 Prepare for a new default branch name 2020-06-19 10:25:03 -06:00
mike-000
342b69fe92 fix prettier 2020-06-18 15:42:48 +01:00
mike-000
64167a5d7e Use condition instead of setActive and listeners 2020-06-18 15:31:33 +01:00
mike-000
3acb0b28de Add condition option 2020-06-18 15:17:55 +01:00
mike-000
74b74e2478 fix pettier 2020-06-17 16:59:56 +01:00
mike-000
1685913a55 getExtent() return getEmpty() for invalid extents 2020-06-17 16:46:24 +01:00
mike-000
136936979f test getCoordinateAt returns Z and M values 2020-06-17 15:56:36 +01:00
Andreas Hocevar
a396ca62d1 Merge pull request #11192 from ahocevar/jquery-pep
Use pepjs in examples to support more old/exotic browsers
2020-06-17 16:48:54 +02:00
mike-000
19f3c6b94a getCoordinateAt return Z and M values if available 2020-06-17 15:46:28 +01:00
mike-000
f5d85ab4f9 interpolatePoint optionally returns Z and M values 2020-06-17 15:24:41 +01:00
mike-000
365b757856 test clipping with rotation 2020-06-17 12:15:39 +01:00
mike-000
272ae55345 test clipping with rotation 2020-06-17 11:31:10 +01:00
mike-000
a27e3486c6 test clipping with rotation 2020-06-17 11:20:29 +01:00
mike-000
1c725c8cfc do not clip the vector rendering 2020-06-17 11:13:33 +01:00
mike-000
091584a120 do not clip rendering for VectorImage layers 2020-06-17 11:11:19 +01:00
Andreas Hocevar
f3d5bfc1d3 Use pepjs in examples to support more old/exotic browsers 2020-06-17 08:49:54 +02:00
Tim Schaub
1742f18eec Merge pull request #11190 from mike-000/patch-13
Correct vector layer clipping with rotation
2020-06-16 23:00:55 -06:00
mike-000
e3a89a2e55 test clipping with rotation 2020-06-16 13:24:52 +01:00
mike-000
0747f44e4a test clipping with rotation 2020-06-16 12:29:15 +01:00
mike-000
014f17d14b correct clipping with rotation 2020-06-16 12:20:50 +01:00
Michał Zielański
517c9e6b52 Late object initialization in Target class 2020-06-15 19:06:36 +02:00
Michał Zielański
0e8f0034ab Creating an object that stores properties only when needed in BaseObject class 2020-06-15 18:26:28 +02:00
Tim Schaub
2d978f57aa Merge pull request #11183 from openlayers/dependabot/npm_and_yarn/mocha-8.0.1
Bump mocha from 7.2.0 to 8.0.1
2020-06-15 08:10:57 -06:00
Tim Schaub
b35e35c976 Merge pull request #11181 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-3.0.4
Bump terser-webpack-plugin from 3.0.3 to 3.0.4
2020-06-15 08:08:54 -06:00
Tim Schaub
2e72a59c7b Merge pull request #11182 from openlayers/dependabot/npm_and_yarn/rollup-2.16.1
Bump rollup from 2.15.0 to 2.16.1
2020-06-15 08:08:16 -06:00
Tim Schaub
42332df60a Merge pull request #11180 from openlayers/dependabot/npm_and_yarn/karma-5.1.0
Bump karma from 5.0.9 to 5.1.0
2020-06-15 08:07:14 -06:00
dependabot-preview[bot]
f0f360b138 Bump mocha from 7.2.0 to 8.0.1
Bumps [mocha](https://github.com/mochajs/mocha) from 7.2.0 to 8.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.2.0...v8.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 09:23:57 +00:00
dependabot-preview[bot]
33d726fb83 Bump rollup from 2.15.0 to 2.16.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.15.0 to 2.16.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/v2.15.0...v2.16.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 09:22:25 +00:00
dependabot-preview[bot]
8cebe69f49 Bump terser-webpack-plugin from 3.0.3 to 3.0.4
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 3.0.3 to 3.0.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/v3.0.3...v3.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 09:21:16 +00:00
dependabot-preview[bot]
473b813698 Bump karma from 5.0.9 to 5.1.0
Bumps [karma](https://github.com/karma-runner/karma) from 5.0.9 to 5.1.0.
- [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/v5.0.9...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 09:20:09 +00:00
Andreas Hocevar
323a472fbb Merge pull request #11037 from mike-000/patch-11
Allow icon and text styles to be scaled in two dimensions
2020-06-13 10:00:06 +02:00
Andreas Hocevar
47538da54d Merge pull request #11165 from ahocevar/dragrotate-defaultcondition
Use drag-pan default condition with onFocusOnly
2020-06-13 09:56:44 +02:00
Andreas Hocevar
dbe080d362 Rename chain function to all 2020-06-13 08:40:00 +02:00
Andreas Hocevar
3de2ea0624 More convenience with condition chaining 2020-06-13 08:39:59 +02:00
Andreas Hocevar
aa5de5db60 Use drag-pan default condition with onFocusOnly 2020-06-13 08:39:59 +02:00
Andreas Hocevar
8110ff3200 Merge pull request #11172 from ahocevar/find
Use cross-browser find
2020-06-13 08:38:15 +02:00
Andreas Hocevar
8b592f3ec6 Merge pull request #11171 from ahocevar/un-once
Allow using un() for events registered with once()
2020-06-13 08:29:14 +02:00
Andreas Hocevar
00dc86c8c6 Merge pull request #11148 from ahocevar/vectortile-label-flicker
Vectortile label flicker
2020-06-13 08:28:22 +02:00
Andreas Hocevar
e6fe0fc5ad Merge pull request #11174 from ahocevar/set-get-style-types-docs
Improve types and docs for getStyle/setStyle
2020-06-11 17:31:06 +02:00
Andreas Hocevar
9689355c8e Merge pull request #11173 from ahocevar/no-pep
Remove elm-pep dependency
2020-06-11 14:08:06 +02:00
Andreas Hocevar
04bc9ff0df Improve types and docs for getStyle/setStyle 2020-06-11 13:53:59 +02:00
Andreas Hocevar
886ca26c6a Remove elm-pep dependency 2020-06-11 13:11:28 +02:00
Andreas Hocevar
66de2cfd81 Use cross-browser find 2020-06-11 12:15:36 +02:00
Andreas Hocevar
852fe2a3fe Allow using un() for events registered with once() 2020-06-11 12:14:32 +02:00
Andreas Hocevar
e3c2142cab Do not add empty arrays to the frameState's declutterItems 2020-06-09 10:18:59 +02:00
Andreas Hocevar
a7d824a44f Update reference image 2020-06-09 09:44:10 +02:00
Andreas Hocevar
1504cd942a Fix multigeometry decluttering 2020-06-09 09:43:55 +02:00
Andreas Hocevar
4d1f65f2db Restore functionality whennot decluttering 2020-06-08 23:21:43 +02:00
Andreas Hocevar
f289979cbf Keep original renderBuffer for hit detection 2020-06-08 22:55:26 +02:00
Andreas Hocevar
686c665c71 No empty declutter instructions, but with individual box 2020-06-08 22:43:38 +02:00
Andreas Hocevar
ff980077ee Consider area around viewport for decluttering 2020-06-08 22:40:26 +02:00
Andreas Hocevar
1ef103ed66 Merge pull request #11158 from openlayers/dependabot/npm_and_yarn/globby-11.0.1
Bump globby from 11.0.0 to 11.0.1
2020-06-08 12:25:23 +02:00
Andreas Hocevar
0f9de15448 Less declutter flicker by respecting renderBuffer 2020-06-08 11:39:02 +02:00
dependabot-preview[bot]
31180234cd Bump globby from 11.0.0 to 11.0.1
Bumps [globby](https://github.com/sindresorhus/globby) from 11.0.0 to 11.0.1.
- [Release notes](https://github.com/sindresorhus/globby/releases)
- [Commits](https://github.com/sindresorhus/globby/compare/v11.0.0...v11.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:38:46 +00:00
Andreas Hocevar
35fdcb9565 Merge pull request #11157 from openlayers/dependabot/npm_and_yarn/copy-webpack-plugin-6.0.2
Bump copy-webpack-plugin from 6.0.1 to 6.0.2
2020-06-08 11:36:28 +02:00
Andreas Hocevar
47cb349db1 Merge pull request #11151 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-3.0.3
Bump terser-webpack-plugin from 3.0.2 to 3.0.3
2020-06-08 11:30:31 +02:00
dependabot-preview[bot]
57ee8c2c53 Bump copy-webpack-plugin from 6.0.1 to 6.0.2
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 6.0.1 to 6.0.2.
- [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/v6.0.1...v6.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:29:41 +00:00
Andreas Hocevar
ea74a549b1 Merge pull request #11156 from openlayers/dependabot/npm_and_yarn/typescript-3.9.5
Bump typescript from 3.9.3 to 3.9.5
2020-06-08 11:28:55 +02:00
Andreas Hocevar
7c92ec2210 Merge pull request #11155 from openlayers/dependabot/npm_and_yarn/fs-extra-9.0.1
Bump fs-extra from 9.0.0 to 9.0.1
2020-06-08 11:28:23 +02:00
Andreas Hocevar
3f6e95e60a Merge pull request #11152 from openlayers/dependabot/npm_and_yarn/puppeteer-3.3.0
Bump puppeteer from 3.2.0 to 3.3.0
2020-06-08 11:27:56 +02:00
Andreas Hocevar
31b490bfb6 Merge pull request #11153 from openlayers/dependabot/npm_and_yarn/eslint-7.2.0
Bump eslint from 6.8.0 to 7.2.0
2020-06-08 11:27:21 +02:00
Andreas Hocevar
514b74ac49 Merge pull request #11150 from openlayers/dependabot/npm_and_yarn/rollup-2.15.0
Bump rollup from 2.12.0 to 2.15.0
2020-06-08 11:26:10 +02:00
Andreas Hocevar
49a53010ef Merge pull request #11154 from openlayers/dependabot/npm_and_yarn/ol-mapbox-style-6.1.2
Bump ol-mapbox-style from 6.1.1 to 6.1.2
2020-06-08 11:25:18 +02:00
dependabot-preview[bot]
65a83a223c Bump typescript from 3.9.3 to 3.9.5
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.3 to 3.9.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.3...v3.9.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:24:27 +00:00
dependabot-preview[bot]
14bc768439 Bump fs-extra from 9.0.0 to 9.0.1
Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 9.0.0 to 9.0.1.
- [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/compare/9.0.0...9.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:23:14 +00:00
dependabot-preview[bot]
4eb77e5950 Bump ol-mapbox-style from 6.1.1 to 6.1.2
Bumps [ol-mapbox-style](https://github.com/openlayers/ol-mapbox-style) from 6.1.1 to 6.1.2.
- [Release notes](https://github.com/openlayers/ol-mapbox-style/releases)
- [Changelog](https://github.com/openlayers/ol-mapbox-style/blob/v6.1.2/CHANGELOG.md)
- [Commits](https://github.com/openlayers/ol-mapbox-style/compare/v6.1.1...v6.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:22:00 +00:00
dependabot-preview[bot]
05e72a6a0a Bump eslint from 6.8.0 to 7.2.0
Bumps [eslint](https://github.com/eslint/eslint) from 6.8.0 to 7.2.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.8.0...v7.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:21:15 +00:00
dependabot-preview[bot]
6e3c005318 Bump puppeteer from 3.2.0 to 3.3.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v3.2.0...v3.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:19:51 +00:00
dependabot-preview[bot]
04192037eb Bump terser-webpack-plugin from 3.0.2 to 3.0.3
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 3.0.2 to 3.0.3.
- [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/v3.0.2...v3.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:18:46 +00:00
dependabot-preview[bot]
a7a7ed828a Bump rollup from 2.12.0 to 2.15.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.12.0 to 2.15.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/v2.12.0...v2.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 09:18:03 +00:00
Tim Schaub
db08e0562f Merge pull request #11146 from bjornharrtell/patch-2
Update JSTS example to use JSTS 2.3.0
2020-06-07 07:52:52 -06:00
Björn Harrtell
aa6ee5b74a Update JSTS example to use JSTS 2.3.0 2020-06-06 21:18:32 +02:00
Tim Schaub
8a9943b48d Merge pull request #11143 from openlayers/dependabot/npm_and_yarn/websocket-extensions-0.1.4
[Security] Bump websocket-extensions from 0.1.3 to 0.1.4
2020-06-06 09:02:28 -06:00
dependabot-preview[bot]
4fb2aa76db [Security] Bump websocket-extensions from 0.1.3 to 0.1.4
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. **This update includes a security fix.**
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-05 16:43:21 +00:00
Andreas Hocevar
e21725888f Merge pull request #11135 from ahocevar/focus
Re-enable onFocusOnly option for interaction defaults
2020-06-03 14:21:56 +02:00
Andreas Hocevar
2cac6c4f39 Re-enable onFocusOnly option for interaction defaults 2020-06-03 13:13:59 +02:00
Frédéric Junod
e86caee477 Merge pull request #11123 from openlayers/dependabot/npm_and_yarn/babel/core-7.10.2
Bump @babel/core from 7.9.6 to 7.10.2
2020-06-02 13:25:21 +02:00
Frédéric Junod
7cbb17728d Merge pull request #11122 from openlayers/dependabot/npm_and_yarn/karma-coverage-istanbul-reporter-3.0.3
Bump karma-coverage-istanbul-reporter from 3.0.2 to 3.0.3
2020-06-02 13:24:44 +02:00
Tim Schaub
f7b4f756e8 Merge pull request #11125 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-3.0.2
Bump terser-webpack-plugin from 3.0.1 to 3.0.2
2020-06-01 21:05:04 -06:00
Tim Schaub
cb11fb3827 Merge pull request #11126 from openlayers/dependabot/npm_and_yarn/front-matter-4.0.2
Bump front-matter from 4.0.0 to 4.0.2
2020-06-01 21:04:25 -06:00
Tim Schaub
2ec8fcbf9f Merge pull request #11124 from openlayers/dependabot/npm_and_yarn/rollup-2.12.0
Bump rollup from 2.10.9 to 2.12.0
2020-06-01 21:03:24 -06:00
Tim Schaub
c02e022887 Merge pull request #11127 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.10.2
Bump @babel/preset-env from 7.9.6 to 7.10.2
2020-06-01 21:00:14 -06:00
dependabot-preview[bot]
5531242dab Bump rollup from 2.10.9 to 2.12.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.10.9 to 2.12.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/v2.10.9...v2.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 13:28:16 +00:00
Tim Schaub
a5f5eaf366 Merge pull request #11121 from openlayers/dependabot/npm_and_yarn/puppeteer-3.2.0
Bump puppeteer from 3.1.0 to 3.2.0
2020-06-01 07:25:56 -06:00
dependabot-preview[bot]
01c5973397 Bump @babel/preset-env from 7.9.6 to 7.10.2
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.9.6 to 7.10.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/commits/v7.10.2/packages/babel-preset-env)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 09:23:03 +00:00
dependabot-preview[bot]
ec8d10c9ff Bump front-matter from 4.0.0 to 4.0.2
Bumps [front-matter](https://github.com/jxson/front-matter) from 4.0.0 to 4.0.2.
- [Release notes](https://github.com/jxson/front-matter/releases)
- [Commits](https://github.com/jxson/front-matter/compare/v4.0.0...v4.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 09:22:19 +00:00
dependabot-preview[bot]
b2095a321c Bump terser-webpack-plugin from 3.0.1 to 3.0.2
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 3.0.1 to 3.0.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/v3.0.1...v3.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 09:21:36 +00:00
dependabot-preview[bot]
9c49f19168 Bump @babel/core from 7.9.6 to 7.10.2
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.9.6 to 7.10.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/commits/v7.10.2/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 09:19:57 +00:00
dependabot-preview[bot]
8b990d72c3 Bump karma-coverage-istanbul-reporter from 3.0.2 to 3.0.3
Bumps [karma-coverage-istanbul-reporter](https://github.com/mattlewis92/karma-coverage-istanbul-reporter) from 3.0.2 to 3.0.3.
- [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/v3.0.2...v3.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 09:19:24 +00:00
dependabot-preview[bot]
f239221cab Bump puppeteer from 3.1.0 to 3.2.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v3.1.0...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 09:18:53 +00:00
Andreas Hocevar
cc781a84b4 Merge pull request #11106 from M393/zoomslider-init
Defer ZoomSlider initialization until its size is available
2020-05-31 19:08:27 +02:00
Andreas Hocevar
9e96702a05 Merge pull request #11096 from openlayers/dependabot/npm_and_yarn/rollup-plugin-terser-6.1.0
Bump rollup-plugin-terser from 5.3.0 to 6.1.0
2020-05-31 19:01:47 +02:00
Andreas Hocevar
cdb4e977e8 Merge pull request #11095 from openlayers/dependabot/npm_and_yarn/front-matter-4.0.0
Bump front-matter from 3.2.1 to 4.0.0
2020-05-31 19:01:04 +02:00
Andreas Hocevar
7e19fa313c Merge pull request #11120 from mike-000/patch-12
correct scalebar box sizing
2020-05-30 20:40:57 +02:00
mike-000
db074a27e6 correct scalebar box sizing 2020-05-30 12:26:12 +01:00
Andreas Hocevar
346e9fadff Merge pull request #11116 from ahocevar/no-search-autocomplete
No search autocomplete
2020-05-29 11:52:13 +02:00
Andreas Hocevar
7bce841fba No autocomplete for example search field 2020-05-29 08:52:14 +02:00
Andreas Hocevar
5fdf50c1de No autocomplete for api search field 2020-05-29 08:51:59 +02:00
Maximilian Krög
c4c790a2be Defer ZoomSlider initialization until its size is available 2020-05-26 09:20:09 +02:00
Tim Schaub
4d014be3c1 Merge pull request #11094 from openlayers/dependabot/npm_and_yarn/rollup-2.10.9
Bump rollup from 2.10.2 to 2.10.9
2020-05-25 04:41:16 -06:00
Tim Schaub
bf814ee7dd Merge pull request #11099 from openlayers/dependabot/npm_and_yarn/mocha-7.2.0
Bump mocha from 7.1.2 to 7.2.0
2020-05-25 04:37:11 -06:00
dependabot-preview[bot]
ff5e310c8e Bump rollup from 2.10.2 to 2.10.9
Bumps [rollup](https://github.com/rollup/rollup) from 2.10.2 to 2.10.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/v2.10.2...v2.10.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 10:36:55 +00:00
Tim Schaub
b8a49f5e9d Merge pull request #11093 from openlayers/dependabot/npm_and_yarn/karma-5.0.9
Bump karma from 5.0.7 to 5.0.9
2020-05-25 04:36:31 -06:00
Tim Schaub
3f352d093b Merge pull request #11098 from openlayers/dependabot/npm_and_yarn/typescript-3.9.3
Bump typescript from 3.9.2 to 3.9.3
2020-05-25 04:35:54 -06:00
Tim Schaub
84580bfab1 Merge pull request #11097 from openlayers/dependabot/npm_and_yarn/puppeteer-3.1.0
Bump puppeteer from 3.0.4 to 3.1.0
2020-05-25 04:34:38 -06:00
dependabot-preview[bot]
91a789ae5a Bump mocha from 7.1.2 to 7.2.0
Bumps [mocha](https://github.com/mochajs/mocha) from 7.1.2 to 7.2.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/v7.1.2...v7.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 09:38:36 +00:00
dependabot-preview[bot]
fd57313fc2 Bump typescript from 3.9.2 to 3.9.3
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.2 to 3.9.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.2...v3.9.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 09:37:36 +00:00
dependabot-preview[bot]
c970869005 Bump puppeteer from 3.0.4 to 3.1.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 3.0.4 to 3.1.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v3.0.4...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 09:36:37 +00:00
dependabot-preview[bot]
7eea6bd087 Bump rollup-plugin-terser from 5.3.0 to 6.1.0
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.3.0 to 6.1.0.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.3.0...v6.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 09:35:18 +00:00
dependabot-preview[bot]
bdc958d8d3 Bump front-matter from 3.2.1 to 4.0.0
Bumps [front-matter](https://github.com/jxson/front-matter) from 3.2.1 to 4.0.0.
- [Release notes](https://github.com/jxson/front-matter/releases)
- [Commits](https://github.com/jxson/front-matter/compare/v3.2.1...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 09:35:04 +00:00
dependabot-preview[bot]
1340077272 Bump karma from 5.0.7 to 5.0.9
Bumps [karma](https://github.com/karma-runner/karma) from 5.0.7 to 5.0.9.
- [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/v5.0.7...v5.0.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 09:31:33 +00:00
Andreas Hocevar
19272724b1 Merge pull request #11088 from ahocevar/reset-proj4-axis
Transform without axis order in proj4
2020-05-24 17:48:11 +02:00
Andreas Hocevar
a869dafe58 Merge pull request #11089 from ahocevar/object-assign
Use assign function instead of Object.assign
2020-05-24 17:47:47 +02:00
Andreas Hocevar
4ded0983cb Merge pull request #11082 from ahocevar/fix-drag-away
Fix outside window dragging
2020-05-24 17:47:28 +02:00
Andreas Hocevar
50107e115a Use assign function instead of Object.assign 2020-05-23 21:22:02 +02:00
Andreas Hocevar
49658709c7 Transform without axis order in proj4 2020-05-23 20:59:08 +02:00
Andreas Hocevar
6c09fa5c44 Handle out of shadow dom dragging and explain logic better 2020-05-22 09:49:27 +02:00
Andreas Hocevar
12b2269265 Fix outside window dragging 2020-05-22 09:18:50 +02:00
mike-000
cf0e650435 allow scale to be two dimensional
add getScaleArray() method

test two dimension scale icons
test two dimension scale text

add example of icon and label scaling
use smaller icon and larger interval
test two dimensional scale icons
test two dimensional scale icons
2020-05-20 09:54:47 +01:00
Tim Schaub
6802fb7e34 Merge pull request #11062 from openlayers/dependabot/npm_and_yarn/typescript-3.9.2
Bump typescript from 3.8.3 to 3.9.2
2020-05-18 17:15:50 -06:00
Tim Schaub
bfee5c00c9 Update function return types 2020-05-18 17:11:13 -06:00
Tim Schaub
eb1d30f424 Merge pull request #11066 from tschaub/coc
Move code of conduct to the root
2020-05-18 15:57:37 -06:00
dependabot-preview[bot]
dbca64d224 Bump typescript from 3.8.3 to 3.9.2
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.8.3 to 3.9.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.8.3...v3.9.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 16:31:38 +00:00
Tim Schaub
2876c41930 Merge pull request #11057 from openlayers/dependabot/npm_and_yarn/copy-webpack-plugin-6.0.1
Bump copy-webpack-plugin from 5.1.1 to 6.0.1
2020-05-18 10:29:06 -06:00
Tim Schaub
4520dac565 Move code of conduct to the root 2020-05-18 10:21:44 -06:00
Tim Schaub
7f8a1b64bd Update usage of copy-webpack-plugin 2020-05-18 10:16:15 -06:00
dependabot-preview[bot]
315e0095a1 Bump copy-webpack-plugin from 5.1.1 to 6.0.1
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 5.1.1 to 6.0.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.1.1...v6.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 10:16:15 -06:00
Tim Schaub
b53b49eeb3 Merge pull request #11065 from tschaub/remove-circle
Remove CircleCI integration
2020-05-18 10:10:06 -06:00
Tim Schaub
a8d351d9ad Merge pull request #11054 from openlayers/add-code-of-conduct
Add a code of conduct
2020-05-18 09:56:07 -06:00
Tim Schaub
497a97e49d Remove CircleCI integration 2020-05-18 09:54:51 -06:00
Tim Schaub
f719113d6e Adds a code of conduct 2020-05-18 09:50:11 -06:00
Tim Schaub
fa604b1e16 Merge pull request #11060 from openlayers/dependabot/npm_and_yarn/karma-5.0.7
Bump karma from 5.0.5 to 5.0.7
2020-05-18 07:35:57 -06:00
Tim Schaub
2c818830c9 Merge pull request #11059 from openlayers/dependabot/npm_and_yarn/rollup-2.10.2
Bump rollup from 2.9.1 to 2.10.2
2020-05-18 07:32:00 -06:00
dependabot-preview[bot]
254c6534e0 Bump karma from 5.0.5 to 5.0.7
Bumps [karma](https://github.com/karma-runner/karma) from 5.0.5 to 5.0.7.
- [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/v5.0.5...v5.0.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 13:29:29 +00:00
Tim Schaub
58ae8cde7b Merge pull request #11058 from openlayers/dependabot/npm_and_yarn/marked-1.1.0
Bump marked from 1.0.0 to 1.1.0
2020-05-18 07:27:15 -06:00
dependabot-preview[bot]
445ec8f416 Bump rollup from 2.9.1 to 2.10.2
Bumps [rollup](https://github.com/rollup/rollup) from 2.9.1 to 2.10.2.
- [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/v2.9.1...v2.10.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 13:26:36 +00:00
Tim Schaub
3318c0fd68 Merge pull request #11064 from openlayers/dependabot/npm_and_yarn/front-matter-3.2.1
Bump front-matter from 3.1.0 to 3.2.1
2020-05-18 07:26:24 -06:00
Tim Schaub
de2850313c Merge pull request #11061 from openlayers/dependabot/npm_and_yarn/url-polyfill-1.1.9
Bump url-polyfill from 1.1.8 to 1.1.9
2020-05-18 07:25:21 -06:00
Tim Schaub
60f93ee349 Merge pull request #11063 from openlayers/dependabot/npm_and_yarn/proj4-2.6.2
Bump proj4 from 2.6.1 to 2.6.2
2020-05-18 07:24:30 -06:00
dependabot-preview[bot]
d4a925feb6 Bump marked from 1.0.0 to 1.1.0
Bumps [marked](https://github.com/markedjs/marked) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v1.0.0...v1.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 13:22:01 +00:00
dependabot-preview[bot]
28f057ad5a Bump url-polyfill from 1.1.8 to 1.1.9
Bumps [url-polyfill](https://github.com/lifaon74/url-polyfill) from 1.1.8 to 1.1.9.
- [Release notes](https://github.com/lifaon74/url-polyfill/releases)
- [Commits](https://github.com/lifaon74/url-polyfill/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 13:20:04 +00:00
dependabot-preview[bot]
286aee0f1a Bump proj4 from 2.6.1 to 2.6.2
Bumps [proj4](https://github.com/proj4js/proj4js) from 2.6.1 to 2.6.2.
- [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.6.1...2.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 13:19:03 +00:00
dependabot-preview[bot]
8c2f9e508b Bump front-matter from 3.1.0 to 3.2.1
Bumps [front-matter](https://github.com/jxson/front-matter) from 3.1.0 to 3.2.1.
- [Release notes](https://github.com/jxson/front-matter/releases)
- [Commits](https://github.com/jxson/front-matter/compare/v3.1.0...v3.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 13:18:42 +00:00
Tim Schaub
84e0e13993 Merge pull request #11053 from tschaub/build-site
Build examples and API docs
2020-05-18 07:12:45 -06:00
Tim Schaub
cdb91af896 Build examples and API docs 2020-05-17 17:22:14 -06:00
Tim Schaub
4b7bf2c8dc Merge pull request #11050 from tschaub/parallel-test-jobs
Run rendering and spec tests in parallel
2020-05-17 16:28:52 -06:00
Tim Schaub
254306496c Merge pull request #11051 from tschaub/dispose
Clear event listeners when disposing a raster source.
2020-05-17 12:43:29 -06:00
Tim Schaub
fc896eb8c7 Call disposeInternal on the super 2020-05-17 12:17:42 -06:00
Tim Schaub
cb1c25374b Only store actual.png from rendering tests 2020-05-17 11:17:08 -06:00
Tim Schaub
2352a9f545 Run rendering and spec tests in parallel 2020-05-17 10:46:06 -06:00
Andreas Hocevar
567d2be816 Merge pull request #11046 from pjsg/fix-reprojection
Reprojection: Just draw everything on pixel boundaries (always)
2020-05-17 15:44:40 +02:00
Andreas Hocevar
92a47b5e57 Make formatting prettier 2020-05-17 15:35:28 +02:00
Andreas Hocevar
30bda9a1f3 Merge pull request #11049 from alexisig/fix-tile-opaque
Fix tile opaque
2020-05-17 15:32:31 +02:00
Alexis
b57c0ad631 docs: standardize opaque's jsdoc comment to say 'Whether the layer is oqaque'
-
2020-05-17 15:04:25 +02:00
Alexis
2f03706e80 docs: fix opaque's jsdoc default value to false
fix #10964
2020-05-17 14:54:45 +02:00
Tim Schaub
83cf2cb705 Merge pull request #11048 from openlayers/test-action
Run tests as a GitHub CI workflow
2020-05-17 05:17:42 -06:00
Tim Schaub
84b335f130 Merge pull request #11047 from tschaub/raster
Include processor from pixelworks and terminate workers before creating new ones
2020-05-17 05:16:08 -06:00
Tim Schaub
ef5ef1b0b2 Store rendering test output 2020-05-16 23:47:02 -06:00
Tim Schaub
7b0a87f77e Only build docs and examples on CircleCI 2020-05-16 23:38:02 -06:00
Tim Schaub
2e6dd3b251 Run tests as a GitHub CI workflow 2020-05-16 23:37:25 -06:00
Tim Schaub
d7012502e9 Merge pull request #11030 from openlayers/dependabot/npm_and_yarn/karma-coverage-istanbul-reporter-3.0.2
Bump karma-coverage-istanbul-reporter from 3.0.0 to 3.0.2
2020-05-16 22:22:05 -06:00
Tim Schaub
b16c2e0062 Include pixelworks and terminate workers before creating new ones 2020-05-16 22:19:40 -06:00
dependabot-preview[bot]
1db5f73bef Bump karma-coverage-istanbul-reporter from 3.0.0 to 3.0.2
Bumps [karma-coverage-istanbul-reporter](https://github.com/mattlewis92/karma-coverage-istanbul-reporter) from 3.0.0 to 3.0.2.
- [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/v3.0.0...v3.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-17 03:59:18 +00:00
Tim Schaub
bfc035415e Merge pull request #11045 from tschaub/headless-chrome-dependencies
Install headless Chrome dependencies
2020-05-16 20:36:21 -06:00
philip
c1949a28f0 Just draw everything on pixel boundaries. Browsers just get the
difficult cases wrong.
2020-05-17 00:13:40 +00:00
Tim Schaub
a4a1c25f2e Merge pull request #11044 from tschaub/remove-mapbox-key
Remove personal Mapbox key
2020-05-16 13:42:56 -06:00
Tim Schaub
31245382ae Install headless Chrome dependencies 2020-05-16 13:34:56 -06:00
Tim Schaub
19c5dd1ff6 Remove personal Mapbox key 2020-05-16 13:25:29 -06:00
Andreas Hocevar
088a7a1e3b Merge pull request #11042 from ahocevar/fix-legacy-build
Fix legacy build by defining ol alias
2020-05-16 10:29:12 +02:00
Andreas Hocevar
15397c50fa Merge pull request #11041 from ahocevar/control-pointer-events
Fix custom controls with user-provided element
2020-05-16 10:27:15 +02:00
Andreas Hocevar
ce31dfd4a6 Fix legacy build by defining ol alias 2020-05-15 21:30:15 +02:00
Andreas Hocevar
e5167f4e12 Fix custom controls with user-provided element 2020-05-15 17:50:44 +02:00
Tim Schaub
455d0beb52 Merge pull request #11031 from openlayers/dependabot/npm_and_yarn/karma-5.0.5
Bump karma from 5.0.4 to 5.0.5
2020-05-11 22:52:54 -06:00
dependabot-preview[bot]
98a8c46f8f Bump karma from 5.0.4 to 5.0.5
Bumps [karma](https://github.com/karma-runner/karma) from 5.0.4 to 5.0.5.
- [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/v5.0.4...v5.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-11 19:32:56 +00:00
Tim Schaub
19b2e791c0 Merge pull request #11032 from openlayers/dependabot/npm_and_yarn/puppeteer-3.0.4
Bump puppeteer from 3.0.2 to 3.0.4
2020-05-11 13:28:16 -06:00
Tim Schaub
dba34bdf37 Merge pull request #11029 from openlayers/dependabot/npm_and_yarn/jquery-3.5.1
Bump jquery from 3.5.0 to 3.5.1
2020-05-11 07:15:41 -06:00
Andreas Hocevar
fde4ab5f23 Merge pull request #11028 from openlayers/dependabot/npm_and_yarn/rollup-2.9.1
Bump rollup from 2.7.6 to 2.9.1
2020-05-11 12:15:45 +02:00
Andreas Hocevar
a137ea1469 Merge pull request #11027 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-3.0.1
Bump terser-webpack-plugin from 3.0.0 to 3.0.1
2020-05-11 12:15:03 +02:00
Andreas Hocevar
11c8847276 Merge pull request #11026 from openlayers/dependabot/npm_and_yarn/webpack-dev-server-3.11.0
Bump webpack-dev-server from 3.10.3 to 3.11.0
2020-05-11 12:14:33 +02:00
dependabot-preview[bot]
722875f372 Bump puppeteer from 3.0.2 to 3.0.4
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 3.0.2 to 3.0.4.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v3.0.2...v3.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-11 09:18:57 +00:00
dependabot-preview[bot]
ece4050334 Bump jquery from 3.5.0 to 3.5.1
Bumps [jquery](https://github.com/jquery/jquery) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.5.0...3.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-11 09:15:53 +00:00
dependabot-preview[bot]
f5e554b30a Bump rollup from 2.7.6 to 2.9.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.7.6 to 2.9.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/v2.7.6...v2.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-11 09:14:37 +00:00
dependabot-preview[bot]
8177b0a5cf Bump terser-webpack-plugin from 3.0.0 to 3.0.1
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 3.0.0 to 3.0.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/v3.0.0...v3.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-11 09:13:29 +00:00
dependabot-preview[bot]
7a0c9edfb1 Bump webpack-dev-server from 3.10.3 to 3.11.0
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.10.3 to 3.11.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.10.3...v3.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-11 09:12:42 +00:00
Andreas Hocevar
1a2b4bd479 Merge pull request #11025 from ahocevar/no-more-mapbrowser-pointer-event
Get rid of MapBrowserPointerEvent
2020-05-11 09:11:00 +02:00
Andreas Hocevar
653c4db24c Merge pull request #11024 from ahocevar/webcomponent-improvements
Make events work when inside a web component
2020-05-11 09:07:55 +02:00
Andreas Hocevar
0ed64ae747 Merge pull request #11019 from mike-000/patch-10
Option to disable image smoothing for Image layer sources
2020-05-10 18:23:06 +02:00
Andreas Hocevar
c6341bbcd9 Fix types for events 2020-05-10 18:19:45 +02:00
Andreas Hocevar
33ce206bab Get rid of MapBrowserPointerEvent 2020-05-10 16:54:34 +02:00
Tim Schaub
f16602d07b Merge pull request #11023 from MoonE/apidoc-add-mapbrowserpointerevent
Add MapBrowserPointerEvent to apidoc
2020-05-10 08:03:52 -06:00
Andreas Hocevar
12b5a829d9 Make events work when inside a web component 2020-05-10 08:40:47 +02:00
Maximilian Krög
b6b17ea202 Add MapBrowserPointerEvent to apidoc 2020-05-09 16:23:11 +02:00
mike-000
9a8b9d8ade add Image source imageSmoothing option
Add Image smoothing checkbox to example

Test imageSmoothing option
2020-05-09 10:41:20 +01:00
Frédéric Junod
e74832b13b Merge pull request #11017 from fredj/geoloc_stop_tracking
Don't stop geolocation tracking on error
2020-05-07 15:07:25 +02:00
Frederic Junod
7e248bb8e5 Don't stop geolocation tracking on error 2020-05-07 14:34:13 +02:00
Andreas Hocevar
24c453c6b8 Merge pull request #11011 from mike-000/patch-3
Set background fill style for each declutter label
2020-05-06 16:20:54 +02:00
mike-000
7f99ce46bb set background fill style for each label
add check for declutter
2020-05-05 16:22:58 +01:00
mike-000
d72c7fdc13 set background fill style for each label 2020-05-05 13:04:25 +01:00
Andreas Hocevar
c60a1dedeb Merge pull request #10977 from ahocevar/no-fail-when-no-executor-group
Only render vector tile when there are executor groups
2020-05-05 09:27:32 +02:00
Andreas Hocevar
7139c0fdcc Merge pull request #10990 from mike-000/patch-9
Include context options in tile cache key
2020-05-04 18:46:48 +02:00
mike-000
960abdbec1 Revert dummy parameter change
fix typo
2020-05-04 17:14:57 +01:00
mike-000
e0047139e1 Revert dummy parameter change 2020-05-04 17:11:16 +01:00
mike-000
c0577c3293 Include context options in reprojection cache key
fix prettier
2020-05-04 16:45:29 +01:00
mike-000
76d2d6e737 Include context options in reprojection cache key
override the inherited getKey() method
2020-05-04 16:27:27 +01:00
Tim Schaub
8ea2fe1298 Merge pull request #10996 from tschaub/mapbox-vector-layer
Mapbox vector layer
2020-05-04 08:01:15 -06:00
Tim Schaub
f4470cad25 Merge pull request #10998 from tschaub/example-source
Show the main.js right below the map
2020-05-04 07:49:08 -06:00
Tim Schaub
6f9bc6684e Merge pull request #10997 from tschaub/update-shelljs
Update shelljs
2020-05-04 07:48:18 -06:00
mike-000
9e160e75f9 Include context options in reprojection cache key
use reprojection tileCoordKey instead of source key
2020-05-04 14:31:46 +01:00
mike-000
9bf037947c Include context options in reprojection cache key
fix prettier
2020-05-04 12:53:24 +01:00
mike-000
b2a1540ee0 Include context options in reprojection cache key 2020-05-04 12:47:15 +01:00
Andreas Hocevar
cdf3c32940 Merge pull request #11006 from openlayers/dependabot/npm_and_yarn/karma-mocha-2.0.1
Bump karma-mocha from 2.0.0 to 2.0.1
2020-05-04 13:07:53 +02:00
Andreas Hocevar
3f2a4bc791 Merge pull request #11005 from openlayers/dependabot/npm_and_yarn/karma-5.0.4
Bump karma from 5.0.2 to 5.0.4
2020-05-04 13:07:23 +02:00
Andreas Hocevar
00583fcb33 Merge pull request #11003 from openlayers/dependabot/npm_and_yarn/rollup-2.7.6
Bump rollup from 2.7.2 to 2.7.6
2020-05-04 12:51:21 +02:00
Andreas Hocevar
0288a78fdb Merge pull request #11002 from openlayers/dependabot/npm_and_yarn/puppeteer-3.0.2
Bump puppeteer from 2.1.1 to 3.0.2
2020-05-04 12:50:28 +02:00
Andreas Hocevar
fb1cf83e8b Merge pull request #10999 from openlayers/dependabot/npm_and_yarn/babel/core-7.9.6
Bump @babel/core from 7.9.0 to 7.9.6
2020-05-04 11:22:18 +02:00
Andreas Hocevar
d740361f4d Merge pull request #11004 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.9.6
Bump @babel/preset-env from 7.9.5 to 7.9.6
2020-05-04 11:18:33 +02:00
dependabot-preview[bot]
b6f476ca5c Bump karma-mocha from 2.0.0 to 2.0.1
Bumps [karma-mocha](https://github.com/karma-runner/karma-mocha) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/karma-runner/karma-mocha/releases)
- [Changelog](https://github.com/karma-runner/karma-mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma-mocha/compare/v2.0.0...v2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 09:16:59 +00:00
dependabot-preview[bot]
a26f3f1c2f Bump karma from 5.0.2 to 5.0.4
Bumps [karma](https://github.com/karma-runner/karma) from 5.0.2 to 5.0.4.
- [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/v5.0.2...v5.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 09:16:59 +00:00
dependabot-preview[bot]
023da30f8d Bump puppeteer from 2.1.1 to 3.0.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 2.1.1 to 3.0.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v2.1.1...v3.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 09:15:59 +00:00
Andreas Hocevar
8594296d80 Merge pull request #11001 from openlayers/dependabot/npm_and_yarn/karma-coverage-istanbul-reporter-3.0.0
Bump karma-coverage-istanbul-reporter from 2.1.1 to 3.0.0
2020-05-04 11:14:39 +02:00
Andreas Hocevar
68129d7ef3 Merge pull request #11000 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-3.0.0
Bump terser-webpack-plugin from 2.3.6 to 3.0.0
2020-05-04 11:13:37 +02:00
dependabot-preview[bot]
6181aaac45 Bump @babel/preset-env from 7.9.5 to 7.9.6
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.9.5 to 7.9.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.9.5...v7.9.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 08:53:12 +00:00
dependabot-preview[bot]
6efbaf0990 Bump rollup from 2.7.2 to 2.7.6
Bumps [rollup](https://github.com/rollup/rollup) from 2.7.2 to 2.7.6.
- [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/v2.7.2...v2.7.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 08:52:36 +00:00
dependabot-preview[bot]
6a492ace8e Bump karma-coverage-istanbul-reporter from 2.1.1 to 3.0.0
Bumps [karma-coverage-istanbul-reporter](https://github.com/mattlewis92/karma-coverage-istanbul-reporter) from 2.1.1 to 3.0.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.1.1...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 08:51:04 +00:00
dependabot-preview[bot]
21c2c4b70a Bump terser-webpack-plugin from 2.3.6 to 3.0.0
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.3.6 to 3.0.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.3.6...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 08:50:07 +00:00
dependabot-preview[bot]
8d10f9c474 Bump @babel/core from 7.9.0 to 7.9.6
Bumps [@babel/core](https://github.com/babel/babel) from 7.9.0 to 7.9.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.9.0...v7.9.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 08:49:31 +00:00
Tim Schaub
cd27a13a42 Show the main.js right below the map 2020-05-03 16:27:51 -06:00
Tim Schaub
4d9975754f Mapbox vector layer 2020-05-03 16:07:27 -06:00
Tim Schaub
1ae286e628 Update shelljs 2020-05-03 15:47:42 -06:00
Andreas Hocevar
fcc9163494 Merge pull request #10987 from mike-000/patch-3
Use brokenDiagonalRendering reprojection processing if image smoothing is disabled
2020-05-03 16:30:13 +02:00
Andreas Hocevar
9fccf0f25d Merge pull request #10948 from wussup/patch-3
Add constrainResolution option
2020-05-03 16:27:24 +02:00
Andreas Hocevar
29eb314ce9 Fix isDrawableTile for vector render mode 2020-05-03 16:05:17 +02:00
Andreas Hocevar
5c20e86e40 Merge pull request #10981 from nielsmeijer/issue-wmts-bbox
Calculate WMTS TileGrid extent using TileMatrixSetLimit when available
2020-05-03 12:14:27 +02:00
Niels Meijer
63d03f4fcc Split test WMTS capabilities 2020-05-03 10:54:01 +02:00
Andreas Hocevar
26feba1bb5 Merge pull request #10993 from ahocevar/no-custom-types
Do not rely on custom type overrides
2020-05-02 18:45:49 +02:00
Andreas Hocevar
2d38390e58 Do not rely on custom type overrides 2020-05-02 17:03:12 +02:00
mike-000
62f150176a add dummy parameter to url to avoid shared cache
fix prettier
2020-05-01 12:28:07 +01:00
mike-000
7a46b3a61a add dummy parameter to url to avoid shared cache 2020-05-01 12:06:38 +01:00
mike-000
bf77f59656 revert change to IMAGE_SMOOTHING_DISABLED 2020-04-30 21:33:00 +01:00
Marc Jansen
309c2a1090 Merge pull request #10989 from mike-000/patch-4
Add log2 function to ol/math
2020-04-30 21:15:49 +02:00
mike-000
8415627731 Test log2 function
use string to test NaN
2020-04-30 19:39:33 +01:00
mike-000
f91e51c28b Test log2 function
fix typo
2020-04-30 19:11:41 +01:00
mike-000
d3507e5c5e replace Math.log2 with log2 from ol/math 2020-04-30 19:07:20 +01:00
mike-000
bce9730644 Test log2 function 2020-04-30 19:03:37 +01:00
mike-000
8076a5126d Add log2 function 2020-04-30 18:44:49 +01:00
mike-000
48e938e235 Define browser specific IMAGE_SMOOTHING_DISABLED
fix prettier
2020-04-30 16:56:02 +01:00
mike-000
3c1e00a3ec Define browser specific IMAGE_SMOOTHING_DISABLED
Avoid msImageSmoothingEnabled if the browser does not need it
2020-04-30 16:49:05 +01:00
mike-000
c515183bad Use explicit test for image smoothing disabled
fix prettier
2020-04-30 16:27:43 +01:00
mike-000
fc2fe25e69 Use explicit test for smoothing disabled 2020-04-30 16:23:39 +01:00
mike-000
3643f9ec98 Use BrokenDiagonalRendering with contextOptions
Apply the BrokenDiagonalRendering processing if opt_contextOptions is set to avoid color distortion along reprojection edges
2020-04-30 13:04:30 +01:00
Andreas Hocevar
8a303dc28a Merge pull request #10986 from mike-000/patch-2
Correct bold font tag closure in example description
2020-04-30 12:53:29 +02:00
mike-000
51ad3824e3 correctly close bold font tag 2020-04-30 10:24:59 +01:00
Andreas Hocevar
74c90919db Merge pull request #10982 from ahocevar/replay-scale
Handle scaled output canvas correctly
2020-04-30 08:44:10 +02:00
Andreas Hocevar
781a5443cf Handle scaled output canvas correctly 2020-04-29 20:19:42 +02:00
Andreas Hocevar
0549951e9e Merge pull request #10983 from ahocevar/fix-ci
Trying to fix CI
2020-04-29 20:08:10 +02:00
Andreas Hocevar
aa2da203f7 Trying to fix CI 2020-04-29 18:08:20 +02:00
Niels Meijer
9cab1215c0 Use TileMatrixSetLimit for extent calculation when available. 2020-04-29 16:35:36 +02:00
Niels Meijer
88ffc559cc Change XY based on projection.getAxisOrientation(), not only for EPSG:4326 2020-04-29 13:50:08 +02:00
Andreas Hocevar
5e08bccf99 Merge pull request #10976 from nielsmeijer/master
Apply projection.getMetersPerUnit() to calculated WMTS resolution
2020-04-29 09:36:53 +02:00
Andreas Hocevar
96802ba645 Remove lint 2020-04-29 09:23:10 +02:00
Niels Meijer
d395b54605 Apply projection.getMetersPerUnit() to calculated resolution 2020-04-28 21:43:59 +02:00
Andreas Hocevar
5740c81c32 Merge pull request #10960 from SDaron/clipping-layer
Improve Vector Clipping Layer example with a background layer and intersect
2020-04-27 23:13:45 +02:00
Simon Daron
74901efc59 Set base layer extent 2020-04-27 16:41:58 +02:00
Andreas Hocevar
ad130db963 Merge pull request #10971 from openlayers/dependabot/npm_and_yarn/webpack-4.43.0
Bump webpack from 4.42.1 to 4.43.0
2020-04-27 13:39:48 +02:00
dependabot-preview[bot]
333c313e3f Bump webpack from 4.42.1 to 4.43.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.42.1 to 4.43.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.42.1...v4.43.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-27 11:28:18 +00:00
Andreas Hocevar
bb0fb141aa Merge pull request #10972 from openlayers/dependabot/npm_and_yarn/marked-1.0.0
Bump marked from 0.8.2 to 1.0.0
2020-04-27 13:25:59 +02:00
dependabot-preview[bot]
f90d274112 Bump marked from 0.8.2 to 1.0.0
Bumps [marked](https://github.com/markedjs/marked) from 0.8.2 to 1.0.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.8.2...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-27 11:16:02 +00:00
Andreas Hocevar
a6e390aa3d Merge pull request #10970 from openlayers/dependabot/npm_and_yarn/mocha-7.1.2
Bump mocha from 7.1.1 to 7.1.2
2020-04-27 13:13:51 +02:00
Andreas Hocevar
177faac6b4 Merge pull request #10969 from openlayers/dependabot/npm_and_yarn/puppeteer-3.0.1
Bump puppeteer from 3.0.0 to 3.0.1
2020-04-27 13:13:27 +02:00
Andreas Hocevar
88a1bb9290 Merge pull request #10968 from openlayers/dependabot/npm_and_yarn/coveralls-3.1.0
Bump coveralls from 3.0.11 to 3.1.0
2020-04-27 13:09:32 +02:00
Andreas Hocevar
9c84383d58 Merge pull request #10967 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-2.3.6
Bump terser-webpack-plugin from 2.3.5 to 2.3.6
2020-04-27 12:55:08 +02:00
Andreas Hocevar
12ff85c7cd Merge pull request #10966 from openlayers/dependabot/npm_and_yarn/rollup-2.7.2
Bump rollup from 2.6.1 to 2.7.2
2020-04-27 12:54:22 +02:00
dependabot-preview[bot]
86cf40e402 Bump mocha from 7.1.1 to 7.1.2
Bumps [mocha](https://github.com/mochajs/mocha) from 7.1.1 to 7.1.2.
- [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.1.1...v7.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-27 09:25:55 +00:00
dependabot-preview[bot]
13cf1c9a5a Bump puppeteer from 3.0.0 to 3.0.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v3.0.0...v3.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-27 09:24:51 +00:00
dependabot-preview[bot]
78e366b59a Bump coveralls from 3.0.11 to 3.1.0
Bumps [coveralls](https://github.com/nickmerwin/node-coveralls) from 3.0.11 to 3.1.0.
- [Release notes](https://github.com/nickmerwin/node-coveralls/releases)
- [Commits](https://github.com/nickmerwin/node-coveralls/compare/3.0.11...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-27 09:23:33 +00:00
dependabot-preview[bot]
9cf9431128 Bump terser-webpack-plugin from 2.3.5 to 2.3.6
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.3.5 to 2.3.6.
- [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.5...v2.3.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-27 09:22:16 +00:00
dependabot-preview[bot]
9dea34f227 Bump rollup from 2.6.1 to 2.7.2
Bumps [rollup](https://github.com/rollup/rollup) from 2.6.1 to 2.7.2.
- [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/v2.6.1...v2.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-27 09:21:09 +00:00
Simon Daron
8cfe994ff0 Improve example with a background layer, intersect and comments 2020-04-26 13:27:27 +02:00
Simon Daron
71f056c75c Use prerender and postrender events on Vector Clipping Layer example for better readability 2020-04-25 06:54:09 +02:00
Andreas Hocevar
937d953fbd Merge pull request #10956 from pmulholland42/master
Add undefined check for navigator.userAgent
2020-04-24 00:33:43 +02:00
Peter Mulholland
58ba114cb7 Fix whitespace formatting 2020-04-23 17:01:22 -04:00
Peter Mulholland
6008449e07 Add undefined check for navigator.userAgent 2020-04-23 16:08:48 -04:00
wussup
7e1305eab2 Update MouseWheelZoom.js 2020-04-20 16:01:51 +02:00
wussup
b6fc2bf2fe Update MouseWheelZoom.js 2020-04-20 15:58:42 +02:00
wussup
020b387649 Update MouseWheelZoom.js 2020-04-20 15:56:05 +02:00
wussup
ce7be53970 Update MouseWheelZoom.js 2020-04-20 15:51:27 +02:00
wussup
aca8e0880c Update MouseWheelZoom.js 2020-04-20 15:39:36 +02:00
wussup
fc4ec899ca Add constrainResolution option
Sometimes we may have the functionality to set scale/resolution provided by a user and it can be any number (so constrainResolution in View class is not useful), but we would like to have constrainResolution in mouse wheel zoom event.
2020-04-20 15:36:19 +02:00
Tim Schaub
e7968bcc1a Merge pull request #10945 from openlayers/dependabot/npm_and_yarn/karma-mocha-2.0.0
Bump karma-mocha from 1.3.0 to 2.0.0
2020-04-20 07:16:55 -06:00
Tim Schaub
90eef7a7f9 Merge pull request #10943 from openlayers/dependabot/npm_and_yarn/pngjs-5.0.0
Bump pngjs from 4.0.0 to 5.0.0
2020-04-20 06:55:23 -06:00
Tim Schaub
113a553c75 Merge pull request #10946 from openlayers/dependabot/npm_and_yarn/pixelmatch-5.2.0
Bump pixelmatch from 5.1.0 to 5.2.0
2020-04-20 06:54:52 -06:00
dependabot-preview[bot]
733f787e1d Bump karma-mocha from 1.3.0 to 2.0.0
Bumps [karma-mocha](https://github.com/karma-runner/karma-mocha) from 1.3.0 to 2.0.0.
- [Release notes](https://github.com/karma-runner/karma-mocha/releases)
- [Changelog](https://github.com/karma-runner/karma-mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma-mocha/compare/v1.3.0...v2.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-20 12:43:37 +00:00
Tim Schaub
614a7f3900 Merge pull request #10944 from openlayers/dependabot/npm_and_yarn/loglevelnext-4.0.1
Bump loglevelnext from 3.0.1 to 4.0.1
2020-04-20 06:41:21 -06:00
dependabot-preview[bot]
91f73366da Bump pixelmatch from 5.1.0 to 5.2.0
Bumps [pixelmatch](https://github.com/mapbox/pixelmatch) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/mapbox/pixelmatch/releases)
- [Commits](https://github.com/mapbox/pixelmatch/compare/v5.1.0...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-20 12:37:55 +00:00
dependabot-preview[bot]
33dae92c50 Bump pngjs from 4.0.0 to 5.0.0
Bumps [pngjs](https://github.com/lukeapage/pngjs) from 4.0.0 to 5.0.0.
- [Release notes](https://github.com/lukeapage/pngjs/releases)
- [Commits](https://github.com/lukeapage/pngjs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-20 12:37:52 +00:00
Tim Schaub
724d6d3d8e Merge pull request #10942 from openlayers/dependabot/npm_and_yarn/puppeteer-3.0.0
Bump puppeteer from 2.1.1 to 3.0.0
2020-04-20 06:35:39 -06:00
Tim Schaub
a9b8482054 Merge pull request #10947 from openlayers/dependabot/npm_and_yarn/karma-5.0.2
Bump karma from 5.0.1 to 5.0.2
2020-04-20 06:34:02 -06:00
dependabot-preview[bot]
82ee124677 Bump karma from 5.0.1 to 5.0.2
Bumps [karma](https://github.com/karma-runner/karma) from 5.0.1 to 5.0.2.
- [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/v5.0.1...v5.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-20 09:39:18 +00:00
dependabot-preview[bot]
0df2bbf088 Bump loglevelnext from 3.0.1 to 4.0.1
Bumps [loglevelnext](https://github.com/shellscape/loglevelnext) from 3.0.1 to 4.0.1.
- [Release notes](https://github.com/shellscape/loglevelnext/releases)
- [Commits](https://github.com/shellscape/loglevelnext/compare/v3.0.1...v4.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-20 09:35:02 +00:00
dependabot-preview[bot]
db75ca316b Bump puppeteer from 2.1.1 to 3.0.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 2.1.1 to 3.0.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v2.1.1...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-20 09:33:08 +00:00
Andreas Hocevar
2760b0dafb Merge pull request #10936 from ahocevar/css-optional
Set pointerEvents style programmatically instead of relying on ol.css
2020-04-18 17:31:36 +02:00
Andreas Hocevar
c020389551 Merge pull request #10941 from ahocevar/prevent-scroll-on-drag
Always prevent default after handleDragEvent
2020-04-18 17:31:00 +02:00
Andreas Hocevar
51194c69eb Always prevent default after handleDragEvent 2020-04-17 22:47:09 +02:00
Andreas Hocevar
c2f4443df8 Merge pull request #10939 from ahocevar/event-type
Losen listener type
2020-04-17 14:46:57 +02:00
Andreas Hocevar
9b1f8fa1d1 Losen listener type 2020-04-17 11:28:33 +02:00
Andreas Hocevar
2b0cd742d6 Merge pull request #10935 from ejn/fix-panIntoView-no-options
Fix calling Overlay.panIntoView with no options
2020-04-17 11:13:22 +02:00
Edward Nash
b543e4dedd Correct notation for optional argument 2020-04-17 10:54:44 +02:00
Andreas Hocevar
f58bfa4438 Merge pull request #10937 from mike-000/patch-12
Use the tile coordinate as a tile pseudo URL in geojson-vt example
2020-04-17 10:51:42 +02:00
Edward Nash
17a8017e1e Fix calling Overlay.panIntoView with no options
* API-doc said undefined is OK, code assumed an object
2020-04-17 07:26:28 +02:00
mike-000
6519b54647 fix prettier 2020-04-17 00:08:11 +01:00
mike-000
71b866947f read and set features in custom tileLoadFunction 2020-04-17 00:01:28 +01:00
mike-000
7d2e367fd0 fix prettier 2020-04-16 22:18:40 +01:00
mike-000
25b0cce8ed fix prettier 2020-04-16 22:13:12 +01:00
mike-000
3bac7acb48 Use the tile coordinate as a pseudo URL
Use the unique tile coordinate as a pseudo tile URL instead of a GeoJSON data URL which may not be unique
2020-04-16 21:40:38 +01:00
Andreas Hocevar
7f6258dd0d Set pointerEvents style programmatically instead of relying on ol.css 2020-04-16 17:34:40 +02:00
Andreas Hocevar
12043e147c Merge pull request #10934 from ahocevar/type-fixes
Update TypeScript to v3.8
2020-04-15 22:52:51 +02:00
Andreas Hocevar
fee9340e24 Remove lint 2020-04-15 22:44:05 +02:00
Andreas Hocevar
45d01f4bfe Update README 2020-04-15 22:29:12 +02:00
Tim Schaub
f882980194 Merge pull request #10931 from tschaub/bust-cache
Use a new cache key in hopes of fixing test failures
2020-04-15 07:48:02 -06:00
Andreas Hocevar
5f4446b3b2 Update TypeScript 2020-04-15 10:53:27 +02:00
Andreas Hocevar
29ce0bb223 Fix private scope issues in source/UrlTile and subclasses 2020-04-15 10:53:26 +02:00
Andreas Hocevar
793ccbd411 Properly export enum 2020-04-15 10:53:26 +02:00
Andreas Hocevar
bcc94baf22 Fix layer renderer scope issues 2020-04-15 10:53:26 +02:00
Andreas Hocevar
6426cd10dc Fix render/Feature scope issue 2020-04-15 10:53:25 +02:00
Andreas Hocevar
b0393a098a Fix WebGLPoints layer scope issue 2020-04-15 10:53:25 +02:00
Andreas Hocevar
8ba051add3 Fix private scope issues in ol/interaction/* 2020-04-15 10:53:25 +02:00
Andreas Hocevar
e14e41bcfb Remove private and protected scope from GML methods and members 2020-04-15 10:53:25 +02:00
Andreas Hocevar
a2ae18d89a Fix private scope type issues in format/KML 2020-04-15 10:53:24 +02:00
Andreas Hocevar
f4d64700ef Fix private scope type issues in controls 2020-04-15 10:53:24 +02:00
Andreas Hocevar
b0f20d6bd6 Use imports for enum types 2020-04-15 10:53:23 +02:00
Andreas Hocevar
c8d5fc418c Merge pull request #10930 from ahocevar/uniform-color-test
Better test for uniform colors
2020-04-15 00:34:07 +02:00
Tim Schaub
f10717b1fb Use a new cache key in hopes of fixing test failures
The next step in debugging our periodic rendering test failures is to use a new cache key.  This change also removes the less specific key, so we will no longer get partial cache restores.  If we don't see test failures after this change, we may try adding the v2-dependencies- as a key.
2020-04-14 15:32:38 -06:00
Tim Schaub
adad51bf3a Merge pull request #10929 from nikolas/patch-1
Fix typo in 6.3.0 release doc
2020-04-14 15:20:53 -06:00
Andreas Hocevar
2fd8a556e1 Better test for uniform colors 2020-04-14 20:25:27 +02:00
nikolas
6688d5aba9 Fix typo in 6.3.0 release doc
improvments -> improvements
2020-04-14 10:08:49 -04:00
Tim Schaub
c18500e4f2 Merge pull request #10918 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.9.5
Bump @babel/preset-env from 7.9.0 to 7.9.5
2020-04-13 11:29:27 -06:00
Tim Schaub
e81b87a4ec Merge pull request #10921 from openlayers/dependabot/npm_and_yarn/pngjs-4.0.0
Bump pngjs from 3.4.0 to 4.0.0
2020-04-13 11:29:02 -06:00
Tim Schaub
af971ef92b Merge pull request #10923 from openlayers/dependabot/npm_and_yarn/sinon-9.0.2
Bump sinon from 9.0.1 to 9.0.2
2020-04-13 11:28:38 -06:00
Tim Schaub
32cb49e10b Merge pull request #10922 from openlayers/dependabot/npm_and_yarn/karma-5.0.1
Bump karma from 4.4.1 to 5.0.1
2020-04-13 10:58:03 -06:00
dependabot-preview[bot]
0ca58c58c2 Bump karma from 4.4.1 to 5.0.1
Bumps [karma](https://github.com/karma-runner/karma) from 4.4.1 to 5.0.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.4.1...v5.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 15:29:11 +00:00
Tim Schaub
ea62aac59a Merge pull request #10920 from openlayers/dependabot/npm_and_yarn/jsdoc-3.6.4
Bump jsdoc from 3.6.3 to 3.6.4
2020-04-13 09:26:53 -06:00
dependabot-preview[bot]
769c7e1db0 Bump jsdoc from 3.6.3 to 3.6.4
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 3.6.3 to 3.6.4.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/3.6.4/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/3.6.3...3.6.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 14:01:23 +00:00
Tim Schaub
f23e5c035e Merge pull request #10919 from openlayers/dependabot/npm_and_yarn/rollup-2.6.1
Bump rollup from 2.3.3 to 2.6.1
2020-04-13 08:00:18 -06:00
Tim Schaub
f01ffeb189 Merge pull request #10924 from openlayers/dependabot/npm_and_yarn/jquery-3.5.0
Bump jquery from 3.4.1 to 3.5.0
2020-04-13 07:59:04 -06:00
dependabot-preview[bot]
4f2cea3581 Bump jquery from 3.4.1 to 3.5.0
Bumps [jquery](https://github.com/jquery/jquery) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.4.1...3.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 08:51:26 +00:00
dependabot-preview[bot]
f720a3eb23 Bump sinon from 9.0.1 to 9.0.2
Bumps [sinon](https://github.com/sinonjs/sinon) from 9.0.1 to 9.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/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 08:50:48 +00:00
dependabot-preview[bot]
c785c38d8e Bump pngjs from 3.4.0 to 4.0.0
Bumps [pngjs](https://github.com/lukeapage/pngjs2) from 3.4.0 to 4.0.0.
- [Release notes](https://github.com/lukeapage/pngjs2/releases)
- [Commits](https://github.com/lukeapage/pngjs2/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 08:49:12 +00:00
dependabot-preview[bot]
33939ff26c Bump rollup from 2.3.3 to 2.6.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.3.3 to 2.6.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/v2.3.3...v2.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 08:47:21 +00:00
dependabot-preview[bot]
841a7a92f8 Bump @babel/preset-env from 7.9.0 to 7.9.5
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.9.0 to 7.9.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.9.0...v7.9.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 08:46:21 +00:00
Tim Schaub
6acbbd8e90 Merge pull request #10917 from sambakk/master
Fix the IGN WMTS example dead links and attribution
2020-04-12 16:36:06 -06:00
sambakk
c9b765c243 Correct the attribution with the right link, icon and icon title 2020-04-12 15:46:14 +01:00
sambakk
2451a75238 Replace the dead links of the Géoportail API web page & Descriptif technique des web services du Géoportail 2020-04-12 15:24:46 +01:00
Andreas Hocevar
7f89aa3285 Merge pull request #10911 from MoonE/apidoc-fullscreen-events
Remove link for fullscreen event from navigation
2020-04-12 12:14:05 +02:00
Tim Schaub
6c0da44141 Merge pull request #10916 from tschaub/debug-test-failures
Store additional artifacts to debug test failures
2020-04-11 14:03:53 -06:00
Tim Schaub
5e12fe9dc1 Store additional artifacts to debug test failures 2020-04-11 12:41:30 -06:00
Maximilian Krög
b07f96e558 Remove link for fullscreen event from navigation 2020-04-10 19:07:25 +02:00
Frédéric Junod
4bd191755f Merge pull request #10902 from fredj/readFromDocument
Move readFromDocument implementation to the base class
2020-04-09 10:20:51 +02:00
Andreas Hocevar
28d1e5c1ee Merge pull request #10899 from ahocevar/fix-translate-drag
Do not scroll page during feature translation
2020-04-07 10:05:27 +02:00
Andreas Hocevar
cb8fb147ec Do not scroll page during feature translation 2020-04-07 08:53:54 +02:00
Frederic Junod
484f45fc1b Move readFromDocument implementation to the base class
All the child classes have the same code; move to the base class
2020-04-07 07:26:38 +02:00
Tim Schaub
3014b68254 Merge pull request #10862 from tschaub/prettier
Use prettier
2020-04-06 13:05:56 -06:00
Tim Schaub
054af09032 Make code prettier
This updates ESLint and our shared eslint-config-openlayers to use Prettier.  Most formatting changes were automatically applied with this:

    npm run lint -- --fix

A few manual changes were required:

 * In `examples/offscreen-canvas.js`, the `//eslint-disable-line` comment needed to be moved to the appropriate line to disable the error about the `'worker-loader!./offscreen-canvas.worker.js'` import.
 * In `examples/webpack/exapmle-builder.js`, spaces could not be added after a couple `function`s for some reason.  While editing this, I reworked `ExampleBuilder` to be a class.
 * In `src/ol/format/WMSGetFeatureInfo.js`, the `// @ts-ignore` comment needed to be moved down one line so it applied to the `parsersNS` argument.
2020-04-06 12:54:09 -06:00
Andreas Hocevar
53b48baf62 Merge pull request #10895 from ahocevar/example-dependencies
Fix dependency source management for examples
2020-04-06 19:00:04 +02:00
Tim Schaub
6eccf21543 Merge pull request #10882 from MoonE/apidoc-fix-toggle-state
Apidoc - Fix toggle state when there are no hidden members
2020-04-06 10:30:17 -06:00
Andreas Hocevar
e951a3c7d5 Fix dependency source management for examples 2020-04-06 16:51:22 +02:00
Andreas Hocevar
5b4a4b20aa Merge pull request #10893 from ahocevar/fix-focus-condition
Fix focus condition
2020-04-06 15:30:39 +02:00
Tim Schaub
c8fd78c5b3 Merge pull request #10889 from openlayers/dependabot/npm_and_yarn/rollup-2.3.3
Bump rollup from 2.3.0 to 2.3.3
2020-04-06 07:07:32 -06:00
Tim Schaub
81ef29a51b Merge pull request #10891 from openlayers/dependabot/npm_and_yarn/handlebars-4.7.6
Bump handlebars from 4.7.4 to 4.7.6
2020-04-06 07:06:52 -06:00
Andreas Hocevar
4330697ed2 Fix focus condition 2020-04-06 11:57:10 +02:00
dependabot-preview[bot]
00d6b8272c Bump handlebars from 4.7.4 to 4.7.6
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.4 to 4.7.6.
- [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.4...v4.7.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-06 09:09:50 +00:00
dependabot-preview[bot]
c9d27e29d6 Bump rollup from 2.3.0 to 2.3.3
Bumps [rollup](https://github.com/rollup/rollup) from 2.3.0 to 2.3.3.
- [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/v2.3.0...v2.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-06 09:08:08 +00:00
Andreas Hocevar
ced59f5592 Merge pull request #10887 from openlayers/release-v6.3.1
Release v6.3.1
2020-04-06 09:29:18 +02:00
Andreas Hocevar
347159d5fd Develop on 6.3.2-dev 2020-04-06 09:20:14 +02:00
Andreas Hocevar
af9f26b9d3 Update package version for 6.3.1 2020-04-06 09:15:48 +02:00
Andreas Hocevar
6704cf3ace Changelog for v6.3.1 2020-04-06 09:11:58 +02:00
Andreas Hocevar
afa96df55d Merge pull request #10877 from ahocevar/no-dts
Remove .d.ts files from the package
2020-04-06 09:02:46 +02:00
Andreas Hocevar
a21470f6b4 Merge pull request #10872 from ahocevar/fix-type-generation
Use TypeScript 3.9 for type generation for better enums
2020-04-06 09:00:46 +02:00
Andreas Hocevar
4a5e8528f9 Merge pull request #10878 from ahocevar/fix-freehand
Avoid page scrolling when freehand drawing on mobile
2020-04-05 22:30:54 +02:00
Andreas Hocevar
7dd6d72093 Avoid page scrolling when freehand drawing on mobile 2020-04-05 22:02:19 +02:00
Andreas Hocevar
0171e914f7 Merge pull request #10879 from ahocevar/no-append
Do not append hit canvas to document body
2020-04-05 15:45:18 +02:00
Maximilian Krög
a7a21aab08 Fix toggle state when there are no hidden members 2020-04-05 15:23:41 +02:00
Andreas Hocevar
79ccef7bf6 Do not append hit canvas to document body 2020-04-05 09:55:09 +02:00
Andreas Hocevar
4cd7b97f11 Merge pull request #10877 from ahocevar/no-dts
Remove .d.ts files from the package
2020-04-05 08:37:27 +02:00
Andreas Hocevar
ad9c444975 Remove .d.ts files from the package 2020-04-04 20:20:10 +02:00
Tim Schaub
61b3fb7111 Merge pull request #10874 from mike-000/patch-11
fix return type
2020-04-04 09:12:38 -06:00
mike-000
a1dd9cacf7 fix return type 2020-04-04 14:00:20 +01:00
Frédéric Junod
d8cbda18a7 Merge pull request #10840 from fredj/remove_inheritDoc
Remove inherit doc
2020-04-04 14:06:43 +02:00
Tim Schaub
0a6468d7ae Remove plugin for @inheritDoc 2020-04-04 13:57:48 +02:00
Andreas Hocevar
6595bf2327 Merge pull request #10872 from ahocevar/fix-type-generation
Use TypeScript 3.9 for type generation for better enums
2020-04-04 10:55:43 +02:00
Andreas Hocevar
3528149c5b Use TypeScript 3.9 for type generation for better enums 2020-04-04 09:57:30 +02:00
Andreas Hocevar
77763991dc Merge pull request #10537 from mike-000/patch-3
Correct resolution used for scale bar and add dpi option
2020-04-04 09:53:54 +02:00
Andreas Hocevar
58b92aca6f Merge pull request #10463 from pjsg/fix_triangulation
Fix issue with reprojection and double drawing pixels.
2020-04-04 09:44:28 +02:00
philip
4e81cf02ee Remove the unused import 2020-04-03 21:58:51 +00:00
philip
665a8275f6 It appears that Safari and Chrome behave differently when doing a drawImage
with coordinates that are outside the source. Chrome appears to draw the
piece of the image that is within the area specified on the drawImage and within
the source. Safari bails and draws nothing if (I think) any of the corners are outside
the source.
2020-04-03 21:54:42 +00:00
mike-000
fb84426411 use constant for default dpi 2020-04-03 17:17:11 +01:00
mike-000
6aa953b571 base minWidth on default dpi & remove setMinWidth 2020-04-03 17:11:25 +01:00
mike-000
6006fb2c03 base minWidth on default dpi & remove setMinWidth 2020-04-03 17:11:20 +01:00
Andreas Hocevar
b80e3a3a41 Merge pull request #10429 from mike-000/patch-4
Option to disable image smoothing for Tile layer sources (including reprojected sources)
2020-04-03 15:41:51 +02:00
Olivier Guyot
22c02e7f35 Merge pull request #10865 from jahow/view-animate-updatesize-fix
View / avoid solving constraints related to map size during animation
2020-04-03 13:55:54 +02:00
Frederic Junod
dda7342ea7 Remove all inheritDoc tags from src/ol/renderer 2020-04-03 09:08:09 +02:00
Frederic Junod
9e862c1111 Remove all inheritDoc tags from src/ol/ 2020-04-03 08:20:49 +02:00
Frederic Junod
d15ec1c12c Remove all inheritDoc tags from disposeInternal functions 2020-04-03 08:10:41 +02:00
Frederic Junod
a695ce8616 Remove all inheritDoc tags from src/ol/render 2020-04-03 07:56:58 +02:00
Frederic Junod
15d36a22f0 Remove all inheritDoc tags from src/ol/layer 2020-04-03 07:56:58 +02:00
Frederic Junod
506aa7aae7 Remove all inheritDoc tags from src/ol/style 2020-04-03 07:56:58 +02:00
Frederic Junod
615ae71a8f Remove all inheritDoc tags from src/ol/source 2020-04-03 07:56:58 +02:00
Frederic Junod
da8ef43db7 Remove all inheritDoc tags from src/ol/interaction 2020-04-03 07:52:51 +02:00
Frederic Junod
706dd3c87c Remove all inheritDoc tags from src/ol/control 2020-04-03 07:52:51 +02:00
Frederic Junod
6522e6a17f Pass the id field name as a new param 2020-04-03 07:52:51 +02:00
Frederic Junod
d7c83e4651 Remove all inheritDoc tags from src/ol/format 2020-04-03 07:52:51 +02:00
Frederic Junod
f392f6b6bb Remove all inheritDoc tags from src/ol/geom 2020-04-03 07:52:51 +02:00
philip
6e2d8cc266 Add test for the reprojection being able to handle translucent layers 2020-04-03 01:46:03 +00:00
philip
a308e9ee13 Merge remote-tracking branch 'origin/master' into fix_triangulation 2020-04-02 22:58:59 +00:00
mike-000
362df3439e update description 2020-04-02 23:51:36 +01:00
mike-000
74ba208c22 test imageSmoothing: false without reprojection 2020-04-02 23:18:10 +01:00
mike-000
dd95d60c2e test imageSmoothing: false without reprojection 2020-04-02 23:17:10 +01:00
mike-000
dfcc649c59 Merge branch 'master' into patch-4 2020-04-02 22:37:36 +01:00
mike-000
f4a3a3bc70 remove prerender context setting 2020-04-02 22:32:30 +01:00
mike-000
5ad788194e remove prerender context setting 2020-04-02 22:30:08 +01:00
mike-000
b866a447c2 assign tile source context options to context 2020-04-02 22:28:09 +01:00
Andreas Hocevar
6909416e9a Merge pull request #10867 from openlayers/release-v6.3.0
Release v6.3.0
2020-04-02 23:03:43 +02:00
Andreas Hocevar
b71e8ebb73 Develop on 6.3.1-dev 2020-04-02 22:24:08 +02:00
Andreas Hocevar
bdf969cc95 Update package version to 6.3.0 2020-04-02 22:04:52 +02:00
Andreas Hocevar
5357b4fced Changelog for v6.3.0 2020-04-02 22:03:53 +02:00
mike-000
5c848ac1b9 make context options available to renderer 2020-04-02 20:10:07 +01:00
mike-000
0ba659b6af make context options available to renderer 2020-04-02 20:09:58 +01:00
Andreas Hocevar
e683c0a0c5 Merge pull request #10490 from bepremeg/CK-240_RemoveSelectEventHandler
Select style multiple select interactions removed
2020-04-02 20:26:52 +02:00
Geert Premereur
ad77143417 Experiment with test impact further (3) 2020-04-02 20:05:15 +02:00
Geert Premereur
cf1191505e Experiment with test impact further (2) 2020-04-02 20:05:15 +02:00
Geert Premereur
3909938a70 Experiment with test impact further 2020-04-02 20:05:15 +02:00
Geert Premereur
e9e75cd8af temporarily disable test to observe impact 2020-04-02 20:05:14 +02:00
Geert Premereur
2d7e55e26a Small code cleanup
drop superfluous if.
2020-04-02 20:05:14 +02:00
Geert Premereur
dc957ec104 CK-240: fix lint errors 2020-04-02 20:05:14 +02:00
Geert Premereur
a30a92a963 CK-240: fix multiple select interactions on map
event handlers have to be (de)activated when the interaction is added or removed to the map, not when constructed

added unit test
2020-04-02 20:05:14 +02:00
Geert Premereur
10c7f08fa4 Select style multiple select interactions removed
This fixes issue 10486 by removing the event listeners when an
interaction is removed from a map.
2020-04-02 20:00:37 +02:00
Tim Schaub
c196f2f7b0 Merge pull request #10531 from pjsg/fix_image_reproj
Dynamically chose the number of subdivisions based on the size of the Image to reproject
2020-04-02 11:50:30 -06:00
mike-000
1cd4d37c45 change option name to imageSmoothing 2020-04-02 18:44:07 +01:00
Tim Schaub
0034d6f206 Merge pull request #10618 from MoonE/apidoc-debug-task
Add apidoc-debug task to debug the apidoc generation process
2020-04-02 11:27:38 -06:00
Tim Schaub
b4e51ed841 Merge pull request #10343 from mike-000/patch-10
Correct interactions with circle geometries when using user coordinates
2020-04-02 11:06:48 -06:00
philip
72907566bb Add comment to explain calculation. 2020-04-02 14:14:13 +00:00
mike-000
23fe5463fa use dom-to-image-more 2020-04-02 14:59:58 +01:00
mike-000
ab006abf25 use dom-to-image-more 2020-04-02 14:59:57 +01:00
mike-000
b56ca954d5 avoid classname conflict with example template 2020-04-02 14:59:55 +01:00
mike-000
e6658aec1e add domtoimage 2020-04-02 14:59:54 +01:00
mike-000
e2ac566c05 Correct resolution used for scale. Add dpi option.
Also add setDpi and setMinWidth methods

Add Print to scale example
2020-04-02 14:59:54 +01:00
Olivier Guyot
32321e381c View / avoid solving constraints related to map size change during anim 2020-04-02 14:22:47 +02:00
Andreas Hocevar
612910bcd2 Merge pull request #10864 from ahocevar/dependency-updates
Update dependencies
2020-04-02 14:12:55 +02:00
Andreas Hocevar
8e6b5ce0bf Update dependencies 2020-04-02 13:50:12 +02:00
Tim Schaub
a073c5ab1e Merge pull request #10859 from SDaron/clipping-layer
Add an example of clipping layer based on a vector source
2020-04-01 03:59:58 -06:00
Andreas Hocevar
5e8102bbd1 Merge pull request #10850 from ahocevar/enum-docs
API docs for enums
2020-04-01 11:47:55 +02:00
Simon Daron
23c2e1062c Add an example of clipping layer based on a vector source 2020-04-01 10:08:37 +02:00
Andreas Hocevar
7dd42ef19f Key update 2020-04-01 09:07:07 +02:00
Andreas Hocevar
061ccb987b Key update 2020-04-01 08:43:52 +02:00
Andreas Hocevar
001128c98e Merge pull request #10857 from mike-000/patch-9
Make OSM XML example work at dateline and replace Bing with MapTiler
2020-04-01 08:33:34 +02:00
Andreas Hocevar
27169c2942 Merge pull request #10858 from ejn/overlay-autopan-on-set-map-10843
Perform auto-pan when adding an Overlay to a Map
2020-04-01 08:13:56 +02:00
Edward Nash
2b863793d0 Perform auto-pan when adding an Overlay to a Map
* Auto-pan settings currently only activate when the position of the
   Overlay is set and the Overlay is already on a Map.

 * The consequence of this is that creating an Overlay with position
   set and then adding to a Map results in no auto-pan being performed -
   it is necessary to first create the Overlay, then add to a Map and
   finally set the position in order for the Map to auto-pan.

 * This commit changes this behaviour so that the auto-pan settings are
   also considered when the map property of the Overlay is set and not
   only when the position property is set, leading to a more intuitive
   behaviour.

 * Fixes Issue #10843
2020-04-01 06:50:01 +02:00
mike-000
82dd764d13 Replace Bing layer with MapTiler 2020-03-31 22:37:51 +01:00
mike-000
7b55fe381e Replace Bing layer with MapTiler 2020-03-31 22:36:07 +01:00
mike-000
3c0ff15414 Cap Longitudes and replace Bing with MapTiler 2020-03-31 22:32:02 +01:00
Andreas Hocevar
2401e0af00 Merge pull request #10646 from mike-000/patch-1
Write fill and outline in KML PolyStyle
2020-03-31 23:22:15 +02:00
Andreas Hocevar
f66b44068c Merge pull request #10800 from ejn/overlay-pan-into-view-10741
Make Overlay.panIntoView an API method
2020-03-31 23:19:38 +02:00
Andreas Hocevar
25fcc6b604 Merge pull request #10855 from openlayers/dependabot/npm_and_yarn/rollup-2.3.0
Bump rollup from 2.1.0 to 2.3.0
2020-03-31 23:00:56 +02:00
Andreas Hocevar
820984d0eb Merge pull request #10854 from openlayers/dependabot/npm_and_yarn/ol-mapbox-style-6.1.1
Bump ol-mapbox-style from 6.1.0 to 6.1.1
2020-03-31 22:59:34 +02:00
Andreas Hocevar
ea12f7945f Merge pull request #10853 from openlayers/dependabot/npm_and_yarn/buble-0.20.0
Bump buble from 0.19.8 to 0.20.0
2020-03-31 22:46:58 +02:00
Andreas Hocevar
7334951056 Merge pull request #10852 from openlayers/dependabot/npm_and_yarn/webpack-4.42.1
Bump webpack from 4.42.0 to 4.42.1
2020-03-31 22:44:46 +02:00
Andreas Hocevar
78202c78b9 Merge pull request #10807 from mike-000/patch-2
Handle Graticule wrapX without calculating excess meridians
2020-03-31 21:02:16 +02:00
mike-000
bfca3cf713 change loader check back to equal extents 2020-03-31 17:00:12 +01:00
mike-000
929b9f4068 change loader check back to equal extents 2020-03-31 16:55:23 +01:00
mike-000
149ca7efad return previous extent if extents are approx equal 2020-03-31 16:26:30 +01:00
Andreas Hocevar
9af1e223af More tests and docs for extent and coordinate wrapX 2020-03-31 16:11:06 +02:00
Andreas Hocevar
cdafc4fa05 Add approximatelyEquals function for comparing extents 2020-03-31 16:11:06 +02:00
mike-000
2c7f58dbed remove unused import 2020-03-31 16:03:14 +02:00
mike-000
6013763480 replace containsExtent with equals in strategy 2020-03-31 16:03:14 +02:00
mike-000
99a1641afe remove duplication 2020-03-31 16:03:13 +02:00
mike-000
e3ad05f805 Include center at right edge in calculations 2020-03-31 16:03:13 +02:00
mike-000
660845f5b8 Include center at right edge in calculations 2020-03-31 16:03:13 +02:00
Andreas Hocevar
098885a006 New wrapX functions for coordinate and extent 2020-03-31 16:03:12 +02:00
mike-000
48b79cf7d1 only use one extent if two are passed 2020-03-31 16:03:12 +02:00
Andreas Hocevar
a35794ae97 Load two extents for views that cross the date line 2020-03-31 16:03:12 +02:00
mike-000
3d8495742b Simplify following renderer changes 2020-03-31 16:03:11 +02:00
Andreas Hocevar
190cd202a1 Always use load extent with real world center 2020-03-31 16:03:11 +02:00
mike-000
0c9324f398 Test extents passed to loader 2020-03-31 16:03:10 +02:00
mike-000
67c37c2163 Test extents passed to loader 2020-03-31 16:03:10 +02:00
mike-000
3b760dc308 Use getLoadWrapX() to determine extent to load 2020-03-31 16:03:10 +02:00
mike-000
b560dab513 Set loadWrapX: false in source 2020-03-31 16:03:09 +02:00
mike-000
f6bbf414a8 Add loadWrapX option and getter 2020-03-31 16:03:09 +02:00
mike-000
f6ede1a9c0 handle wrapX without calculating excess meridians
override extent validation only if the extent includes parts of two worlds
2020-03-31 16:03:08 +02:00
mike-000
516a75ae22 Always load frameState extent for graticule layers
reorder and comment
2020-03-31 16:03:08 +02:00
mike-000
bad0ff38ca handle wrapX without calculating excess meridians
avoid calculating more meridians or longer parallels than necessary when viewport extent includes a wrapped world
2020-03-31 16:03:08 +02:00
mike-000
772741cd0e Always load frameState extent for graticule layers
do not call graticule loader with wrapped projection extent
2020-03-31 16:03:06 +02:00
dependabot-preview[bot]
c92f72ac3f Bump rollup from 2.1.0 to 2.3.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.1.0 to 2.3.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/v2.1.0...v2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-30 08:59:06 +00:00
dependabot-preview[bot]
e583e0775d Bump ol-mapbox-style from 6.1.0 to 6.1.1
Bumps [ol-mapbox-style](https://github.com/openlayers/ol-mapbox-style) from 6.1.0 to 6.1.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.1.0...v6.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-30 08:57:39 +00:00
dependabot-preview[bot]
6ca6c70aac Bump buble from 0.19.8 to 0.20.0
Bumps [buble](https://github.com/bublejs/buble) from 0.19.8 to 0.20.0.
- [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.8...v0.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-30 08:56:40 +00:00
dependabot-preview[bot]
8222118fb1 Bump webpack from 4.42.0 to 4.42.1
Bumps [webpack](https://github.com/webpack/webpack) from 4.42.0 to 4.42.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.42.0...v4.42.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-30 08:55:08 +00:00
Edward Nash
2537da690a Add check that Position is set in panIntoView()
* If panIntoView is an API method, it may now be called when the
   position of the overlay has not yet been set.

 * Adds a check for a set position to the panIntoView() method,
   and removes the now unneccessary check in handlePositionChanged()
2020-03-30 07:15:03 +02:00
Edward Nash
b1b01cf943 Allow pan options supplied as autoPan
* Follow the suggestion from @ahocevar to use the existing
   autoPan constructor option instead of creating a new autoPanOptions
   option

 * Internally also store the autoPanOptions in autoPan
2020-03-30 07:12:52 +02:00
Andreas Hocevar
0a7f7db817 Merge pull request #10795 from mike-000/patch-6
Show graticule labels in wrapped worlds
2020-03-28 14:46:54 +01:00
Andreas Hocevar
b39e12406a Merge pull request #10824 from MoonE/icon-color-ie11
Fix drawing svg icon with color option in ie11
2020-03-28 14:26:10 +01:00
Andreas Hocevar
dd44ecf185 Only document enums when they have API properties 2020-03-28 14:17:56 +01:00
Andreas Hocevar
a6a5b72c57 Only mark items as api, not enums 2020-03-27 12:33:54 +01:00
Maximilian Krög
1020c384bb Fix two missing apidoc links
Add IconAnchorUnits and IconOrigin to the api.
2020-03-27 12:33:54 +01:00
Andreas Hocevar
f89b32de66 Merge pull request #10802 from MoonE/apidoc-add-default-export-enums
Apidoc add default-exported enums
2020-03-27 12:07:12 +01:00
Andreas Hocevar
f24ecf7b2c Merge pull request #10805 from regileeso/master
make ImageSourceEventType available for consumers
2020-03-27 11:35:30 +01:00
Andreas Hocevar
0366bca7c1 Merge pull request #10822 from lysek/master
parsing color from IconStyle in KML files
2020-03-27 11:31:49 +01:00
Andreas Hocevar
597e3a6bca Merge pull request #10848 from horsenit/master
Speed up Overlay element positioning using CSS translate()
2020-03-27 10:08:21 +01:00
horsenit
03ea8911f6 Fix type checking for IE9 style.msTransform 2020-03-27 03:03:21 -04:00
horsenit
83a5cd63c6 Speed up Overlay element positioning using CSS translate() 2020-03-27 02:26:01 -04:00
Andreas Hocevar
2d8782b1da Merge pull request #9590 from mloskot/ml/wmts-augment-tms-extent
Calculate tile grid extent from extent of bottom-level tile matrix
2020-03-26 23:23:54 +01:00
Andreas Hocevar
f50ae44150 Merge pull request #10845 from gedaiu/master
Fix createHitDetectionImageData error for features with no size
2020-03-26 23:20:43 +01:00
Szabo Bogdan
6aa398cbec Fix hit detection for images with missing size 2020-03-26 21:23:23 +01:00
Szabo Bogdan
fbe7b0bd78 Fix test typo 2020-03-26 21:22:08 +01:00
Mateusz Łoskot
98e8bec370 Calculate tile grid extent from extent of bottom-level tile matrix
Prefers extent derived from the tile matrix set in the capabilities
over default projection extent.
2020-03-26 19:17:32 +01:00
Andreas Hocevar
8f46bb563b Merge pull request #10842 from mike-000/patch-8
Fix custom symbol example short description
2020-03-25 14:36:01 +01:00
mike-000
c3d9ac6265 Fix description 2020-03-25 12:55:57 +00:00
Andreas Hocevar
60dd85fa08 Merge pull request #10828 from ahocevar/offscreen-canvas
Offscreen canvas example
2020-03-24 21:45:06 +01:00
Andreas Hocevar
d70b3aa3d5 Move catch-up logic to main thread
This avoids requestAnimationFrame in the worker.
2020-03-24 12:14:31 +01:00
Andreas Hocevar
576f50331b Add attribution 2020-03-23 20:30:58 +01:00
Andreas Hocevar
5113d70701 Rename example 2020-03-23 19:37:13 +01:00
Andreas Hocevar
0e1af6836f Example cleanup 2020-03-23 12:47:27 +01:00
Andreas Hocevar
828becf68e Position rotate control in the bottom left 2020-03-23 12:47:26 +01:00
Andreas Hocevar
941df3b270 Fix issues with TypeScript's built-in webworker lib 2020-03-23 12:47:26 +01:00
Andreas Hocevar
28f390828d Use same data as in mapbox-style example 2020-03-23 12:47:26 +01:00
Andreas Hocevar
ade9ac8857 Make mapbox-style example fullscreen on demand 2020-03-23 12:47:25 +01:00
Andreas Hocevar
bc1be50cbc Add worker support to examples 2020-03-23 12:47:25 +01:00
Andreas Hocevar
30ac91c4ae Simpler feature check 2020-03-23 12:47:25 +01:00
Andreas Hocevar
b9bfe45d86 Update ol-mapbox-style 2020-03-23 12:47:25 +01:00
Andreas Hocevar
3f7f999db0 Avoid try/catch, DOM and workers 2020-03-23 12:46:24 +01:00
Andreas Hocevar
6dcc54bfb8 'action' instead of 'type' as message identifier 2020-03-23 12:46:24 +01:00
Andreas Hocevar
f80c175263 Do not transform rotated views 2020-03-23 12:46:23 +01:00
Andreas Hocevar
3217bf1316 Add style handling 2020-03-23 12:46:23 +01:00
Andreas Hocevar
10c3330580 Use correct transorms at the right time 2020-03-23 12:46:23 +01:00
Andreas Hocevar
06f6ba13c8 Make font loading work in workers 2020-03-23 12:46:22 +01:00
Andreas Hocevar
bb1ca76bcc Make Executor work in workers 2020-03-23 12:46:22 +01:00
Andreas Hocevar
a93edb338b Instant UI feedback 2020-03-23 12:46:21 +01:00
Andreas Hocevar
56edbb2d73 Make createTransformToString a standalone function 2020-03-23 12:46:21 +01:00
Andreas Hocevar
3f5022630b Create a basic example for OffscreenCanvas rendering 2020-03-23 12:46:20 +01:00
Andreas Hocevar
8b76f52652 Make createTransformString work in non-window context 2020-03-23 12:46:20 +01:00
Andreas Hocevar
717b8ad0cf Make createCanvasContext2D work in non-window context 2020-03-23 12:46:19 +01:00
Andreas Hocevar
f896d9fb03 Move tile priority function to the TileQueue module 2020-03-23 12:46:18 +01:00
Andreas Hocevar
3944a5a038 Make DEVICE_PIXEL_RATIO work in non-window context 2020-03-23 12:46:18 +01:00
Andreas Hocevar
c7f2399e7f Merge pull request #10837 from openlayers/dependabot/npm_and_yarn/ol-mapbox-style-6.1.0
Bump ol-mapbox-style from 6.0.1 to 6.1.0
2020-03-23 11:48:01 +01:00
Andreas Hocevar
306a773e61 Merge pull request #10836 from openlayers/dependabot/npm_and_yarn/coveralls-3.0.11
Bump coveralls from 3.0.9 to 3.0.11
2020-03-23 11:24:05 +01:00
Andreas Hocevar
6e4351f119 Merge pull request #10835 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.9.0
Bump @babel/preset-env from 7.8.7 to 7.9.0
2020-03-23 11:04:38 +01:00
Andreas Hocevar
7c23c501c3 Merge pull request #10834 from openlayers/dependabot/npm_and_yarn/rollup-2.1.0
Bump rollup from 1.32.1 to 2.1.0
2020-03-23 11:03:41 +01:00
Andreas Hocevar
98ddf7a147 Merge pull request #10833 from openlayers/dependabot/npm_and_yarn/fs-extra-9.0.0
Bump fs-extra from 8.1.0 to 9.0.0
2020-03-23 11:00:21 +01:00
Andreas Hocevar
6969ee6275 Merge pull request #10832 from openlayers/dependabot/npm_and_yarn/babel/core-7.9.0
Bump @babel/core from 7.8.7 to 7.9.0
2020-03-23 10:58:32 +01:00
Andreas Hocevar
1331131e04 Merge pull request #10831 from openlayers/dependabot/npm_and_yarn/babel-loader-8.1.0
Bump babel-loader from 8.0.6 to 8.1.0
2020-03-23 10:44:09 +01:00
dependabot-preview[bot]
b70c9a70f8 Bump ol-mapbox-style from 6.0.1 to 6.1.0
Bumps [ol-mapbox-style](https://github.com/openlayers/ol-mapbox-style) from 6.0.1 to 6.1.0.
- [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.1...v6.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 09:44:03 +00:00
Andreas Hocevar
0fdfed439c Merge pull request #10830 from openlayers/dependabot/npm_and_yarn/mocha-7.1.1
Bump mocha from 7.1.0 to 7.1.1
2020-03-23 10:41:41 +01:00
dependabot-preview[bot]
3512638900 Bump mocha from 7.1.0 to 7.1.1
Bumps [mocha](https://github.com/mochajs/mocha) from 7.1.0 to 7.1.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.1.0...v7.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 09:18:35 +00:00
Andreas Hocevar
124d00daf2 Merge pull request #10829 from openlayers/dependabot/npm_and_yarn/marked-0.8.2
Bump marked from 0.8.0 to 0.8.2
2020-03-23 10:16:07 +01:00
Jiri Lysek
2b6e767840 encoding color into KML 2020-03-23 10:10:12 +01:00
dependabot-preview[bot]
d61da37191 Bump coveralls from 3.0.9 to 3.0.11
Bumps [coveralls](https://github.com/nickmerwin/node-coveralls) from 3.0.9 to 3.0.11.
- [Release notes](https://github.com/nickmerwin/node-coveralls/releases)
- [Commits](https://github.com/nickmerwin/node-coveralls/compare/3.0.9...3.0.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 09:01:54 +00:00
dependabot-preview[bot]
7dd6bb7c1b Bump @babel/preset-env from 7.8.7 to 7.9.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.7 to 7.9.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.8.7...v7.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 09:01:12 +00:00
dependabot-preview[bot]
274135db2e Bump rollup from 1.32.1 to 2.1.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.32.1 to 2.1.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.32.1...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 09:00:00 +00:00
dependabot-preview[bot]
5ab7f5dacf Bump fs-extra from 8.1.0 to 9.0.0
Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 8.1.0 to 9.0.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/compare/8.1.0...9.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 08:59:43 +00:00
dependabot-preview[bot]
d8b2e452d5 Bump @babel/core from 7.8.7 to 7.9.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.7 to 7.9.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.8.7...v7.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 08:58:20 +00:00
dependabot-preview[bot]
bbc8870832 Bump babel-loader from 8.0.6 to 8.1.0
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.0.6 to 8.1.0.
- [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.6...v8.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 08:57:18 +00:00
dependabot-preview[bot]
52d840b35d Bump marked from 0.8.0 to 0.8.2
Bumps [marked](https://github.com/markedjs/marked) from 0.8.0 to 0.8.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.8.0...v0.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 08:55:33 +00:00
Maximilian Krög
24f9e1c6ac Update comment for the IconImage replaceColor_ method 2020-03-22 13:29:29 +01:00
Maximilian Krög
fbb0364ea5 Make Icon's color attribute work in ie11 2020-03-21 00:33:41 +01:00
Maximilian Krög
f942c482d8 Svg icon needs imgSize to display in ie11 2020-03-21 00:15:49 +01:00
Jiri Lysek
7bf44078e1 fixed type comment 2020-03-19 13:32:02 +01:00
Jiri Lysek
d5b3d27e62 parsing color from IconStyle in KML files 2020-03-19 13:02:53 +01:00
Marc Jansen
3674ec5481 Merge pull request #10816 from marcjansen/npm-funding-field
Add 'funding' field to `package.json`
2020-03-18 10:51:45 +01:00
Marc Jansen
0af85f7396 Add 'funding' field to package.json
This was introduced to `npm` recently and allows users of the ol
package to e.g. type `npm fund ol` and our opencollective page
opens in a browser. Just typing `npm fund` in a npm package will list
the funding options of the dependencies of the current project.
2020-03-18 10:15:31 +01:00
Tim Schaub
9fe84e4dba Merge pull request #10813 from tschaub/sponsor
Add sponsors section to the readme
2020-03-17 05:18:03 -06:00
Tim Schaub
dca694ccc9 Add sponsors section to the readme 2020-03-16 17:10:49 -06:00
Andreas Hocevar
ca6288a800 Merge pull request #10811 from openlayers/dependabot/npm_and_yarn/sinon-9.0.1
Bump sinon from 9.0.0 to 9.0.1
2020-03-16 18:47:32 +01:00
Andreas Hocevar
d85b5065f5 Merge pull request #10810 from openlayers/dependabot/npm_and_yarn/rollup-plugin-terser-5.3.0
Bump rollup-plugin-terser from 5.2.0 to 5.3.0
2020-03-16 18:47:03 +01:00
Andreas Hocevar
bb0c6635a2 Merge pull request #10809 from openlayers/dependabot/npm_and_yarn/yargs-15.3.1
Bump yargs from 15.3.0 to 15.3.1
2020-03-16 18:46:29 +01:00
dependabot-preview[bot]
21b2d8aa48 Bump sinon from 9.0.0 to 9.0.1
Bumps [sinon](https://github.com/sinonjs/sinon) from 9.0.0 to 9.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/v9.0.0...v9.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-16 08:21:07 +00:00
dependabot-preview[bot]
7bc7affccc Bump rollup-plugin-terser from 5.2.0 to 5.3.0
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.2.0...v5.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-16 08:20:12 +00:00
dependabot-preview[bot]
47ce1490f8 Bump yargs from 15.3.0 to 15.3.1
Bumps [yargs](https://github.com/yargs/yargs) from 15.3.0 to 15.3.1.
- [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.3.0...v15.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-16 08:19:01 +00:00
Frédéric Junod
e5131f811f Merge pull request #10806 from openlayers/dependabot/npm_and_yarn/acorn-6.4.1
[Security] Bump acorn from 6.1.1 to 6.4.1
2020-03-14 07:28:36 +01:00
dependabot-preview[bot]
3c1ad1fc1d [Security] Bump acorn from 6.1.1 to 6.4.1
Bumps [acorn](https://github.com/acornjs/acorn) from 6.1.1 to 6.4.1. **This update includes a security fix.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.1.1...6.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-13 21:23:16 +00:00
regileeso
406c38403b make ImageSourceEventType available for consumers 2020-03-13 11:36:20 +00:00
Edward Nash
859bf338a2 Use Object for options to Overlay panIntoView
* animation and margin encapsulated in a single object to allow
   easier extension in future

 * Constructor options extended to allow single object for
   autoPan; separate options still allowed but deprecated

 * Protected fields for animation and margin replaced with single
   field
2020-03-13 10:12:14 +01:00
Maximilian Krög
873cccc4f3 Add default exported enums to apidoc 2020-03-12 22:29:46 +01:00
Maximilian Krög
f2477622c3 Remove redundant check if doclet kind is typedef 2020-03-12 22:29:34 +01:00
Maximilian Krög
058ca59233 Also correctly detect default exports without an identifier 2020-03-12 21:36:19 +01:00
Edward Nash
022caae848 Document default margin in Overlay.panIntoView 2020-03-12 09:37:40 +01:00
Edward Nash
092a199757 Make Overlay.panIntoView an API method
* Add parameters for custom animation parameters and margin

 * Add protected wrapper method for previous autoPan functionality

See #10741
2020-03-12 08:57:32 +01:00
mike-000
874b850d76 Merge branch 'master' into patch-4 2020-03-11 17:10:03 +00:00
Andreas Hocevar
0b7b979c89 Merge pull request #10474 from mike-000/patch-2
Fix for undefined source in Image layer
2020-03-11 18:05:29 +01:00
mike-000
4ca966bd92 show labels in wrapped worlds
test labels in wrapped world
2020-03-11 16:06:31 +00:00
Andreas Hocevar
f448d7179a Merge pull request #10785 from ahocevar/zoomify-retina
Detect Zoomify server-side retina tiles
2020-03-11 11:05:57 +01:00
Tim Schaub
7299c0dd04 Merge pull request #10787 from mike-000/patch-7
Improved projection extent in the "Reprojection with EPSG.io Search" example
2020-03-10 16:56:08 -06:00
Andreas Hocevar
2f35a3be75 Merge pull request #10792 from flexjoly/native-javascript-eventListener.handleEvent
Add support for EventListener Object
2020-03-10 19:17:22 +01:00
Andreas Hocevar
5f283496ed Merge pull request #10777 from ahocevar/geolocation-example
Keep the render loop running during simulation
2020-03-10 16:11:14 +01:00
Andreas Hocevar
e59aa02a15 Remove duplicated for loop 2020-03-10 14:20:20 +01:00
Andreas Hocevar
4fa454f2b3 Fix types 2020-03-10 14:20:12 +01:00
Andreas Hocevar
ed10ac168b Merge pull request #10791 from sosmo/fix-ios-pointermove-2
iOS 12 touchmove: Prevent touchmove event default when no preceding pointer event
2020-03-10 13:40:59 +01:00
Andreas Hocevar
5e51e397bb Merge pull request #10786 from ahocevar/resolve-contraints-on-updatesize
Resolve constraints when updating size
2020-03-10 13:05:29 +01:00
Lydia de Jongh
e099257461 Add support for EventListener Object
See: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

Support for native javascript eventListener.handleEvent()

Typedef not correct yet.
2020-03-10 12:51:05 +01:00
Sampo Osmonen
dd480feda1 Prevent touchmove event default when no preceding pointer event
Prevents zooming the page instead of the map on the first interaction
2020-03-10 12:56:15 +02:00
Andreas Hocevar
9f76ec197a Merge pull request #10788 from sosmo/fix-ios-pointermove
Add safeguard to handleTouchMove
2020-03-10 09:49:42 +01:00
Andreas Hocevar
a1386e3a1f Update comment 2020-03-10 09:36:10 +01:00
Olivier Guyot
7b4e522e8f Merge pull request #10722 from jellyedwards/master
fix: handle layer clear event in case clear(true) called
2020-03-10 09:27:15 +01:00
John Leonard
e6a2d4b235 fix: handle layer clear event in case clear(true) called
and individual delete feature events aren't generated
2020-03-09 18:36:12 +00:00
Sampo Osmonen
85d84a0c40 Add safeguard to handleTouchMove 2020-03-09 19:37:21 +02:00
mike-000
7c22b5a238 Improve the calculation of projection extent
fix quotes
2020-03-09 16:09:07 +00:00
mike-000
230c6b011e Improve the calculation of projection extent
Add show graticule option
2020-03-09 15:24:01 +00:00
Andreas Hocevar
c5fd013e31 Resolve constraints when updating size 2020-03-09 16:20:21 +01:00
mike-000
6019a61cca Add show graticule option 2020-03-09 14:54:24 +00:00
dependabot-preview[bot]
831c5f8c69 Merge pull request #10783 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.8.7 2020-03-09 14:53:23 +00:00
dependabot-preview[bot]
ed748bf173 Merge pull request #10780 from openlayers/dependabot/npm_and_yarn/babel/core-7.8.7 2020-03-09 14:33:09 +00:00
dependabot-preview[bot]
51b4ee3137 Merge pull request #10784 from openlayers/dependabot/npm_and_yarn/rollup-plugin-babel-4.4.0 2020-03-09 14:32:29 +00:00
Andreas Hocevar
686b4dbdc8 Merge pull request #10723 from mike-000/patch-6
Improve the extent transforms used by Graticule and handle extents crossing the dateline
2020-03-09 15:26:52 +01:00
dependabot-preview[bot]
c1f40b4d98 Merge pull request #10782 from openlayers/dependabot/npm_and_yarn/webpack-4.42.0 2020-03-09 14:26:26 +00:00
Andreas Hocevar
5424e3eae2 Keep the render loop running during simulation 2020-03-09 15:25:49 +01:00
Andreas Hocevar
ad476f6086 Detect Zoomify server-side retina tiles 2020-03-09 15:22:43 +01:00
dependabot-preview[bot]
9ef220d5de Merge pull request #10781 from openlayers/dependabot/npm_and_yarn/yargs-15.3.0 2020-03-09 14:04:09 +00:00
dependabot-preview[bot]
d4b76299e7 Merge pull request #10779 from openlayers/dependabot/npm_and_yarn/rollup-1.32.1 2020-03-09 14:02:32 +00:00
dependabot-preview[bot]
2123d19926 Bump rollup-plugin-babel from 4.3.3 to 4.4.0
Bumps [rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel) from 4.3.3 to 4.4.0.
- [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.3...v4.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 08:38:41 +00:00
dependabot-preview[bot]
0613444f12 Bump @babel/preset-env from 7.8.6 to 7.8.7
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.6 to 7.8.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.8.6...v7.8.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 08:37:51 +00:00
dependabot-preview[bot]
80c36b298d Bump webpack from 4.41.6 to 4.42.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.6 to 4.42.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.6...v4.42.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 08:37:17 +00:00
dependabot-preview[bot]
365e14148a Bump yargs from 15.1.0 to 15.3.0
Bumps [yargs](https://github.com/yargs/yargs) from 15.1.0 to 15.3.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.1.0...v15.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 08:36:16 +00:00
dependabot-preview[bot]
a8dcadbd99 Bump @babel/core from 7.8.6 to 7.8.7
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.6 to 7.8.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.8.6...v7.8.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 08:35:54 +00:00
dependabot-preview[bot]
601023acf4 Bump rollup from 1.32.0 to 1.32.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.32.0 to 1.32.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.32.0...v1.32.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 08:34:28 +00:00
Andreas Hocevar
1d4744b730 Merge pull request #10744 from mike-000/patch-7
Ensure the Modify Features Test example opens at correct zoom
2020-03-08 23:44:43 +01:00
Andreas Hocevar
2d57e795e7 Merge pull request #10767 from mike-000/patch-8
Replace Bing layer with MapTiler in examples
2020-03-08 14:24:20 +01:00
Andreas Hocevar
8c3da1167c Merge pull request #10751 from MoonE/apidoc-sort-events
Sort events / observables in all cases
2020-03-07 23:25:22 +01:00
mike-000
9d0b139432 Ensure example opens at correct zoom
wrapX: false not needed for consistency with OL5
2020-03-05 17:41:33 +00:00
mike-000
408eac2524 Replace Bing layer with MapTiler 2020-03-05 15:27:18 +00:00
mike-000
737c30fedc Replace Bing layer with MapTiler 2020-03-05 15:25:48 +00:00
mike-000
c4d864ed45 Replace Bing layer with MapTiler 2020-03-05 15:21:11 +00:00
mike-000
315db526c9 Replace Bing layer with MapTiler 2020-03-05 15:17:34 +00:00
Tim Schaub
a34b22f1d9 Merge pull request #10763 from jumpinjackie/bug/fix-types
TypeScript: Fix inconsistent optionality in various APIs
2020-03-04 07:41:00 -07:00
Jackie Ng
6d16fe8405 Make arg2 of GeometryFunction also optional as it comes after an optional arg1 2020-03-05 01:01:03 +11:00
Jackie Ng
21fcb4621b Ensure consistent optionality for options.projection for all ImageSource-derived constructor options 2020-03-04 23:38:54 +11:00
Olivier Guyot
29387a2cbb Merge pull request #10758 from jahow/webgl-rotation-fix-attribute
Allow using feature attributes for symbol rotation in WebGL layers
2020-03-03 12:55:25 +01:00
Olivier Guyot
40d44db85e Shader Builder / use vertex context to parse the symbol rotation expression
Previously the expression was parsed in the fragment shader context, which
meant in case the expression used an attributes the resulting GLSL code
would be wrong.

Fragment shader context:
`float angle = v_heading; // we're using the varying: not OK`

Vertex shader context:
`float angle = a_heading; // we're using the attribute: OK`
2020-03-03 10:09:39 +01:00
Frédéric Junod
7a37231a87 Merge pull request #10755 from openlayers/dependabot/npm_and_yarn/rollup-1.32.0
Bump rollup from 1.31.1 to 1.32.0
2020-03-02 14:00:35 +01:00
Frédéric Junod
d2b26e198b Merge pull request #10754 from openlayers/dependabot/npm_and_yarn/babel/preset-env-7.8.6
Bump @babel/preset-env from 7.8.4 to 7.8.6
2020-03-02 14:00:04 +01:00
Frédéric Junod
24b252bb1d Merge pull request #10753 from openlayers/dependabot/npm_and_yarn/mocha-7.1.0
Bump mocha from 7.0.1 to 7.1.0
2020-03-02 13:59:39 +01:00
Frédéric Junod
6384b83cc1 Merge pull request #10752 from openlayers/dependabot/npm_and_yarn/babel/core-7.8.6
Bump @babel/core from 7.8.4 to 7.8.6
2020-03-02 13:59:00 +01:00
dependabot-preview[bot]
88f958286b Bump rollup from 1.31.1 to 1.32.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.31.1 to 1.32.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.31.1...v1.32.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 08:45:52 +00:00
dependabot-preview[bot]
f59f4e2d56 Bump @babel/preset-env from 7.8.4 to 7.8.6
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.4 to 7.8.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.8.4...v7.8.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 08:44:52 +00:00
dependabot-preview[bot]
9f6b021000 Bump mocha from 7.0.1 to 7.1.0
Bumps [mocha](https://github.com/mochajs/mocha) from 7.0.1 to 7.1.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/v7.0.1...v7.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 08:44:00 +00:00
dependabot-preview[bot]
3014df1677 Bump @babel/core from 7.8.4 to 7.8.6
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.4 to 7.8.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.8.4...v7.8.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 08:42:59 +00:00
Maximilian Krög
1d7d7a7eef Sort events / observables in all cases
Right now this only changes the order of events of the UrlTile class.
2020-03-01 00:25:11 +01:00
Tim Schaub
457e7216b4 Merge pull request #10748 from mike-000/patch-8
Fix "Cannot read property 'anchor' of undefined" in ol/View
2020-02-29 07:18:03 -07:00
mike-000
ce6d7bd55c Fix "Cannot read property 'anchor' of undefined"
replace unnecessary filter with for loop and break
2020-02-29 10:12:48 +00:00
Andreas Hocevar
730a0dbe09 Merge pull request #10746 from MoonE/apidoc-fix-windows-build
Fix building apidoc on windows
2020-02-28 22:47:48 +01:00
mike-000
5ba978311e Fix "Cannot read property 'anchor' of undefined" 2020-02-28 21:47:22 +00:00
Maximilian Krög
d28be3c160 Fix building apidoc on windows 2020-02-28 21:44:06 +01:00
Andreas Hocevar
6370175b28 Merge pull request #10720 from MoonE/apidoc-better-search
Apidoc better search
2020-02-28 14:27:20 +01:00
mike-000
7af9697b40 Merge branch 'master' into patch-4 2020-02-28 12:20:06 +00:00
Maximilian Krög
e484eca1a1 Some more cleanup
No need to sort beforehand and therefore sorting can be done at last too.
Also forEach is just fine, no need for underscore.

This changes the navigation default order for modules to be after classes
when the name is the same.
2020-02-27 23:47:22 +01:00
Maximilian Krög
bc8499472c Current item may be undefined
Worked fine before, but better safe than sorry.
2020-02-27 22:58:07 +01:00
Maximilian Krög
47ed2963c4 Default exported classes have same prettyname as modules 2020-02-27 22:57:55 +01:00
mike-000
203f557883 Ensure example opens at correct zoom
Set multiWorld: true so view opens at zoom 2 on wide displays
Set wrapX false on source
2020-02-27 20:53:58 +00:00
mike-000
b8e34ef5bf rename some variables and add comments 2020-02-27 19:12:40 +00:00
Andreas Hocevar
0fd336daa5 Merge pull request #10743 from ahocevar/ignore-cache-size-when-too-small
Ignore user provided tile cache size when too small
2020-02-27 14:52:33 +01:00
Andreas Hocevar
e235ad0708 Merge pull request #10736 from M393/clustersource-setsource
Allow cluster source to unlisten from its source
2020-02-27 14:00:38 +01:00
Andreas Hocevar
a072e3acea Ignore user provided tile cache size when too small 2020-02-27 13:41:21 +01:00
mike-000
ac2b58c554 test using extra stops for extent transform
correct coordinate order
2020-02-27 12:19:31 +00:00
mike-000
633396e7df test using extra stops for extent transform 2020-02-27 12:12:57 +00:00
Maximilian Kroeg
ba84cfad61 Do requeseted changes 3/3 2020-02-27 10:28:26 +01:00
Maximilian Kroeg
f18b78d2da Do requested changes 2/3 to cluster source 2020-02-27 10:01:20 +01:00
Andreas Hocevar
df1d0ac4a0 Merge pull request #10739 from ahocevar/timeout-typo
Fix typo in trackpad timeout
2020-02-27 07:49:09 +01:00
Tim Schaub
a651667f24 Merge pull request #10740 from matthias-ccri/tabindex
Document tabindex behavior for MouseWheelZoom and DragPan
2020-02-26 22:45:00 -07:00
Matthias
b695320dcf Update DragPan.js 2020-02-26 20:37:51 -05:00
Matthias
10a624db3c Update MouseWheelZoom.js 2020-02-26 20:36:07 -05:00
mike-000
591e5ce01b More validation. Handle voids in some projections.
Handle NaN latitude transform results at void centers of some projections (e.g. Pole LAEA).
Clamp latitudes to not go beyond the poles when calculating intervals.
Further improve polar projections by checking if extent contains max and min intersection coordinates when calculating max and min.
2020-02-26 22:17:49 +00:00
Andreas Hocevar
e9227a9bc1 Fix typo in trackpad timeout 2020-02-26 19:27:20 +01:00
Andreas Hocevar
59f14eaa2e Merge pull request #10738 from ahocevar/textbackground-declutter
Fix text background decluttering
2020-02-26 14:47:25 +01:00
Andreas Hocevar
a03cfa35ed Store copies of background points for decluttering 2020-02-26 13:30:00 +01:00
mike-000
adcf57ef20 Better validation to handle polar projections
For some projections (e.g. polar) the maximum or minimum values may be at the center.
To improve the display for polar projections take validated center values into account when calculating max and min.
2020-02-25 13:47:02 +00:00
Maximilian Kroeg
b25fc6741e Add tests for ol/source/Cluster~Cluster#setSource 2020-02-25 11:15:56 +01:00
Maximilian Kroeg
01b3f9a97b Allow cluster source to unlisten from its source
This adds a setSource method to change or remove the cluster source's source.
2020-02-25 10:33:02 +01:00
mike-000
9039e2629b fix trailing space 2020-02-24 21:57:22 +00:00
mike-000
737f3a5066 Handle view projections crossing dateline
Use custom toLonLat transform to return wrapped longitudes for extents if view projection crosses the dateline.
Enhance the validation for center and extents to avoid proj4 errors.
2020-02-24 21:53:53 +00:00
Andreas Hocevar
e02ede8f76 Merge pull request #10725 from openlayers/dependabot/npm_and_yarn/elm-pep-1.0.6
Bump elm-pep from 1.0.4 to 1.0.6
2020-02-24 11:45:51 +01:00
Frédéric Junod
58ef1ab166 Merge pull request #10726 from openlayers/dependabot/npm_and_yarn/sinon-9.0.0
Bump sinon from 8.1.1 to 9.0.0
2020-02-24 09:17:30 +01:00
dependabot-preview[bot]
89b5adc601 Bump sinon from 8.1.1 to 9.0.0
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.1.1 to 9.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/v8.1.1...v9.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-24 08:07:24 +00:00
dependabot-preview[bot]
c987b1f1b0 Bump elm-pep from 1.0.4 to 1.0.6
Bumps [elm-pep](https://github.com/ahocevar/elm-pep) from 1.0.4 to 1.0.6.
- [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>
2020-02-24 08:06:23 +00:00
mike-000
6ae6d0b835 Optional extra stops to refine extent transforms
Add optional extra stops to refine some non-parallel transforms

Refine extent transforms use by Gratucule by using 32 points (8 per side) instead of the standard corners only transform
Update Graticule class description with current limitations

Correct projection extent in Mollweide example and revise opening zoom level correspondingly
2020-02-23 19:13:06 +00:00
Maximilian Krög
c2505f938e Remove measuring code 2020-02-22 14:30:44 +01:00
Maximilian Krög
6b9a35b7b9 Always sort top level matches before member matches 2020-02-22 14:30:25 +01:00
Maximilian Krög
df8c0f3e6f Avoid deprecated jquery :eq selector 2020-02-22 01:07:43 +01:00
Maximilian Krög
bf2a7bd21a Allow toggel on whole title, add toggle transition 2020-02-22 01:07:41 +01:00
Maximilian Krög
ee8ec6f03a Shorter css paths in navigation 2020-02-21 22:58:05 +01:00
Maximilian Krög
b46b250d75 On toggle when searching show unfiltered instead of hiding all 2020-02-21 22:58:05 +01:00
Maximilian Krög
2dec296aae Use css to show / hide items; track matched items
... to improve search speed.

Instead of marking all items as hidden, and then marking the matched
ones again, this keeps track of all matched items and only
removes those that no longer match and adds those that previously did
not match.
2020-02-21 22:57:53 +01:00
Maximilian Krög
646ecfd405 Weight function prefer classes over modules 2020-02-21 22:56:54 +01:00
Maximilian Krög
99d9a9ff86 Use strict mode 2020-02-21 22:56:54 +01:00
Maximilian Krög
15beb1f2c6 Put more weight on the base name 2020-02-21 22:56:53 +01:00
Maximilian Krög
b613e8e77f Fix regex dot escape 2020-02-21 22:56:53 +01:00
Maximilian Krög
ccafb4b91d Improved weight function.
++++ Full match from start to end
+++  Full match between word boundaries
++   Begin matches at word boundary, multiple matches are better
+    Matches somewhere

Classes with (multiple) members matching at the beginning are
weighted higher.
2020-02-21 22:56:51 +01:00
Maximilian Krög
1b4ed08bc5 Indent line-wrapped class names 2020-02-21 22:55:32 +01:00
Maximilian Krög
cc561dab8e Allow word wrap before '.' and '~' in class names 2020-02-21 22:55:32 +01:00
Maximilian Krög
8b857eed26 Change prettyname of classes
Now also includes the class name if it is different than its module name.
`ol/source/Vector` -> `ol/source/Vector~VectorSource`.
2020-02-21 22:55:32 +01:00
Maximilian Krög
7640bcd163 Only match the displayed name of items when searching
Currently the search term is matched against the longname of members.
Because of this most members are matched when searching for a
class / module and also searching for 'mod' matches everything as
all longnames start with 'module:'
2020-02-21 22:55:32 +01:00
Maximilian Krög
d3b9b25429 Search if the search input is not empty after page loads
Firefox remembers input on the same page if a normal reload is performed.
In this case the results for the search term should be shown automatically.
2020-02-21 22:55:32 +01:00
Maximilian Krög
f7871d6103 Store search data in lowercase and compare in lowercase
This way we can do the search case-sensitive after only converting
the search term to lowercase.
2020-02-21 22:55:32 +01:00
Maximilian Krög
b9455bfad9 Remove unnecessary / duplicate code. 2020-02-21 22:55:31 +01:00
Maximilian Krög
2b8582fcad Catch errors when search term is an invalid regular expression
On error search escape special characters, with only '.' matching
any characters.
2020-02-21 22:50:57 +01:00
Maximilian Krög
d56513b722 Add code to measure search function speed 2020-02-21 22:50:57 +01:00
Maximilian Krög
99ecce2a87 Provide the searchTerm as argument to doSearch function 2020-02-21 22:50:57 +01:00
Maximilian Krög
b919074aa3 Skip searches when typing fast / slow cpu. 2020-02-21 22:50:57 +01:00
Maximilian Krög
6187118166 Hide member-lists, show current item when clearing input 2020-02-21 22:50:57 +01:00
Maximilian Krög
f5a996a64e Highlight current anchor with css instead of js.
The `:target` selector is supported by all browsers.
2020-02-21 22:50:57 +01:00
Andreas Hocevar
05d3386995 Merge pull request #10715 from mike-000/patch-8
Fix disappearing graticule labels when rotation returns to 0
2020-02-20 21:21:17 +01:00
mike-000
e731574e06 Fix disappearing labels when rotation returns to 0 2020-02-20 17:49:05 +00:00
Andreas Hocevar
c20e5bf58a Merge pull request #10713 from mike-000/patch-7
Draw graticule labels in a postrender function
2020-02-20 17:10:08 +01:00
mike-000
59142f800c Draw labels in a postrender function 2020-02-20 15:50:10 +00:00
mike-000
bc2c49165e Draw labels in a postrender function 2020-02-20 15:39:08 +00:00
mike-000
00275f1a67 Draw labels in a postrender function 2020-02-20 15:25:32 +00:00
mike-000
3558dbe235 Draw labels in a postrender function 2020-02-20 14:43:48 +00:00
mike-000
a74d33dafb Draw labels in a postrender function 2020-02-20 14:12:37 +00:00
mike-000
c28793ae04 Draw labels in a postrender function
Position labels relative to the viewport when view is rotated
2020-02-20 13:31:41 +00:00
Andreas Hocevar
4a11bcccbb Merge pull request #10711 from ahocevar/optional-args
Make sure that optional args are typed accordingly
2020-02-20 12:50:48 +01:00
Andreas Hocevar
608d515f1f Make sure that optional args are typed accordingly 2020-02-20 12:39:31 +01:00
Andreas Hocevar
ef63644211 Merge pull request #10710 from ahocevar/fix-stylefunction-type
Fix stylefunction return type
2020-02-20 12:35:52 +01:00
Andreas Hocevar
6b9791eeed Fix stylefunction return type 2020-02-20 11:47:42 +01:00
Andreas Hocevar
d6eb66f083 Merge pull request #10709 from ahocevar/stylefunction-type
Fix type and documentation of style function
2020-02-20 11:25:43 +01:00
Andreas Hocevar
13713bab51 Fix type and documentation of style function 2020-02-20 11:09:12 +01:00
Andreas Hocevar
74d26f04fa Merge pull request #10708 from ahocevar/falsey-select-style
Handle Select interactions with falsey select style
2020-02-20 08:46:44 +01:00
Tim Schaub
f154a854c3 Merge pull request #10707 from AugustusKling/circle-ci-test
Get default projection for overview map from main map.
2020-02-19 19:38:25 -07:00
Andreas Hocevar
c73034fe7d Handle Select interactions with falsey select style 2020-02-20 00:36:33 +01:00
Augustus Kling
da7f51c085 Get default projection for overview map from main map.
Changes OverviewMap such that it will use whatever projection the
hosting map is using unless a view was specified explicitly.

Fixes #2998 #5188 #10670
2020-02-19 23:10:15 +01:00
Andreas Hocevar
3a92a8091a Merge pull request #10699 from ahocevar/select
Make Select interaction work when there are multiple instances
2020-02-19 15:33:00 +01:00
Tim Schaub
d7aa47eedc Merge pull request #10694 from M393/image-opacity
Draw image with configured opacity
2020-02-19 06:59:33 -07:00
Andreas Hocevar
cac903c837 Merge pull request #10703 from ahocevar/tests
CI and test fixes
2020-02-19 14:55:31 +01:00
Andreas Hocevar
bdeab6ab49 Update coverage reporter 2020-02-19 14:23:29 +01:00
Andreas Hocevar
2c213f805c Try a different cicleci image 2020-02-19 14:23:06 +01:00
Andreas Hocevar
502bb8a169 Merge pull request #10698 from ahocevar/shadow-root
Shadow root
2020-02-19 13:45:45 +01:00
Andreas Hocevar
f98f66c529 Make Select interaction work when there are multiple instances 2020-02-19 11:52:12 +01:00
Andreas Hocevar
575ef48b3a Merge pull request #10688 from ahocevar/generate-d-ts
Publish type definition files
2020-02-19 10:57:31 +01:00
Andreas Hocevar
7fa4b2cb24 Publish type definition files 2020-02-19 10:42:54 +01:00
Tim Schaub
341e482f30 Add rendering test for image style opacity 2020-02-18 18:31:57 -07:00
Andreas Hocevar
7fee85734a Add custom element example 2020-02-18 21:32:31 +01:00
Andreas Hocevar
b6abe036ce Make events work in shadow dom 2020-02-18 21:32:09 +01:00
Maximilian Krög
6f18350eda Add regression test for image opacity 2020-02-18 16:30:38 +01:00
Maximilian Krög
ab9d7cdc70 Draw image with configured opacity 2020-02-18 14:09:36 +01:00
Andreas Hocevar
5ea0b52ba8 Merge pull request #10691 from ahocevar/hitdetect-color-range
Do not exceed color range
2020-02-18 10:04:00 +01:00
Frédéric Junod
1481ec7d85 Merge pull request #10683 from fredj/fs_events
Dispatch enterfullscreen and leavefullscreen from the FullScreen control
2020-02-18 08:26:44 +01:00
Tim Schaub
7c394c6a1b Merge pull request #10676 from mike-000/patch-6
Document that overviewmap view must use same projection as main map
2020-02-17 20:17:22 -07:00
Andreas Hocevar
07b02fe947 Do not exceed color range 2020-02-17 21:58:45 +01:00
Andreas Hocevar
8f9552e78c Merge pull request #10678 from mike-000/patch-7
Add maxResolution option to ol/tilegrid.createXYZ() and ol/source/XYZ
2020-02-17 19:54:55 +01:00
mike-000
1416e30127 Add maxResolution option to createXYZ()
include maxResolution in options test
2020-02-17 18:20:50 +00:00
Andreas Hocevar
d5f249f0ef Merge pull request #10690 from mike-000/patch-8
Document minZoom and maxZoom options for all layers
2020-02-17 18:29:21 +01:00
Andreas Hocevar
eebb2cb9ae Merge pull request #10672 from ahocevar/mousewheel
Nicer mousewheel and trackpad zooming
2020-02-17 18:27:03 +01:00
mike-000
fa4fcf3886 add minZoom and maxZoom options 2020-02-17 16:59:40 +00:00
mike-000
4cf093ab75 add minZoom and maxZoom options 2020-02-17 16:58:46 +00:00
mike-000
c5885cc649 add minZoom and maxZoom options 2020-02-17 16:57:00 +00:00
mike-000
d0e439ee80 add minZoom and maxZoom options 2020-02-17 16:55:15 +00:00
mike-000
edb94af314 add minZoom and maxZoom options 2020-02-17 16:53:57 +00:00
mike-000
501546bc44 add minZoom and maxZoom options 2020-02-17 16:52:59 +00:00
mike-000
d102f561f9 add minZoom and maxZoom options 2020-02-17 16:52:12 +00:00
mike-000
265eb5421d add minZoom and maxZoom options 2020-02-17 16:51:08 +00:00
mike-000
fbaa4da153 add minZoom and maxZoom options 2020-02-17 16:49:47 +00:00
mike-000
3dc4e546bf add minZoom and maxZoom options 2020-02-17 16:47:55 +00:00
Frédéric Junod
3df7c4a1da Merge pull request #10687 from fredj/win_failing_img_test
Increase timeout in listenImage test
2020-02-17 15:42:03 +01:00
Frederic Junod
09689e547c Increase timeout in listenImage test
Fixes failing test with Chrome 80 on Windows 10
2020-02-17 13:27:23 +01:00
Olivier Guyot
bf38796ec7 Merge pull request #10684 from jellyedwards/master
perf: only do expensive reload when texture changes
2020-02-17 13:26:46 +01:00
Frédéric Junod
e81721cada Merge pull request #10680 from openlayers/dependabot/npm_and_yarn/terser-webpack-plugin-2.3.5
Bump terser-webpack-plugin from 2.3.4 to 2.3.5
2020-02-17 13:08:49 +01:00
Frédéric Junod
c4231a25e3 Merge pull request #10682 from openlayers/dependabot/npm_and_yarn/webpack-4.41.6
Bump webpack from 4.41.5 to 4.41.6
2020-02-17 11:31:37 +01:00
dependabot-preview[bot]
058d1c2e51 Bump webpack from 4.41.5 to 4.41.6
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.5 to 4.41.6.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.5...v4.41.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-17 09:54:23 +00:00
Frédéric Junod
4b508185b3 Merge pull request #10681 from openlayers/dependabot/npm_and_yarn/webpack-cli-3.3.11
Bump webpack-cli from 3.3.10 to 3.3.11
2020-02-17 10:52:17 +01:00
Frédéric Junod
14e22e6bc9 Merge pull request #10679 from openlayers/dependabot/npm_and_yarn/rollup-1.31.1
Bump rollup from 1.31.0 to 1.31.1
2020-02-17 10:51:53 +01:00
Frederic Junod
9a03ca8417 Dispatch enterfullscreen and leavefullscreen from the FullScreen control 2020-02-17 10:48:29 +01:00
dependabot-preview[bot]
5b7d2d15e9 Bump webpack-cli from 3.3.10 to 3.3.11
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.10 to 3.3.11.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/next/CHANGELOG_v3.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.10...v3.3.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-17 08:05:05 +00:00
dependabot-preview[bot]
88fbdff322 Bump terser-webpack-plugin from 2.3.4 to 2.3.5
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.3.4 to 2.3.5.
- [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.4...v2.3.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-17 08:03:59 +00:00
dependabot-preview[bot]
533b38a3c1 Bump rollup from 1.31.0 to 1.31.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.31.0 to 1.31.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.31.0...v1.31.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-17 08:03:25 +00:00
mike-000
2e1e0dba54 document that views must use same projection 2020-02-16 11:11:37 +00:00
Andreas Hocevar
d93073f8d0 No trackpad mode for constrained resolutions 2020-02-16 10:05:32 +01:00
Andreas Hocevar
5150378983 Improve trackpad rebound behavior 2020-02-16 09:08:27 +01:00
Andreas Hocevar
a6c195e528 Merge pull request #10675 from jipexu/patch-1
typo
2020-02-16 07:51:59 +01:00
jipexu
bed2b6e222 typo 2020-02-15 22:10:41 +01:00
Andreas Hocevar
f3ce8e23b4 Fractional zoom changes in WHEEL mode 2020-02-15 13:53:14 +01:00
Andreas Hocevar
804c307fa9 Merge pull request #10669 from mike-000/patch-6
More browser compatible Export Map example
2020-02-14 22:41:08 +01:00
mike-000
f48a1a5f26 remove overlay and html-to-image 2020-02-14 19:49:17 +00:00
Andreas Hocevar
2c7c639f4b Merge pull request #10667 from ahocevar/label-linedash
Do not render label with the current linedash
2020-02-14 14:31:43 +01:00
Andreas Hocevar
0471b6e650 Do not render label with the current linedash 2020-02-14 13:50:03 +01:00
Andreas Hocevar
003e415382 Merge pull request #10666 from mike-000/patch-6
Load polyfill before example specific scripts in examples template
2020-02-14 13:34:15 +01:00
mike-000
16e46ea2c0 load polyfill before example specific scripts 2020-02-14 12:15:52 +00:00
John Leonard
8fe71bbbff perf: only do expensive reload when texture changes 2020-02-14 11:39:54 +00:00
Andreas Hocevar
ea5c91e19e Revert "Merge pull request #9565 from dbrnz/v6.0.0-beta.7-branch"
This reverts commit 35569a8427, reversing
changes made to 29a434314b.
2020-02-14 11:46:57 +01:00
Frédéric Junod
cc86719388 Merge pull request #6526 from tchandelle/draw-abort
Draw interaction: add abortDrawing method and drawabort event
2020-02-14 09:05:22 +01:00
Andreas Hocevar
0e9b43ed93 Merge pull request #10657 from openlayers/release-v6.2.1
Changelog for v6.2.1
2020-02-13 21:11:49 +01:00
Andreas Hocevar
9c21bda88e Develop on 6.2.2 2020-02-13 21:04:45 +01:00
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
Thomas Chandelle
33a8466913 Add API method abortDrawing and dispatch a DRAWABORT event 2020-02-13 17:22:39 +01: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
mike-000
7a77793d69 Write fill and outline in PolyStyle
Write styles based on style objects appropriate for geometry.
Write fill and outline in PolyStyle if false (i.e. non-default)
Handle MultiLineString, MultiPoint and MultiPolygon within heterogenous MultiGeometry when writing features

Add getGeometriesArrayRecursive method to ol/geom/GeometryCollection to allow for nested MultiGeometry

Enhanced write GeometryCollection geometries test

A more rigorous write GeometryCollection geometries test including nested collections (the output is simplified to a single MultiGeomtry)

Add writeFeatures to outline and fill tests, setting geometry for geometry specific tests

Add <fill>0</fill> and <outline>0</outline> to some existing tests
2020-02-12 21:18:57 +00: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
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
0057144b52 Add apidoc-debug task to debug the apidoc generation process 2020-02-07 00:25:04 +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
philip
76b926420c Only draw the piece of the source canvas that is required. I.e. take the clip
region into account.
2020-01-14 23:52:54 +00:00
philip
ccf3532eb2 Fix the parameter name to have the opt_ prefix. 2020-01-14 13:48:23 +00:00
philip
d2b0599177 Dynamically chose the number of subdivisions based on the size of the Image. 2020-01-14 13:39:52 +00:00
philip
1772c8198b Added comment pointing to an area of improvement 2020-01-11 18:07:09 +00:00
philip
6666014721 Merge remote-tracking branch 'origin/master' into fix_triangulation
Conflicts:
	src/ol/TileCache.js
2020-01-11 17:36:40 +00:00
philip
852f6552c7 Fix pixel rounding 2020-01-11 17:29:26 +00:00
philip
902ed53999 Add detection of browsers which cannot render correctly with diagonal
clipping regions. In this case, modify the shape of the clip region
so that it has (a number) of horizontal and vertical edges.
2020-01-06 02:23:58 +00:00
mike-000
5b1df4438d Fix for undefined source in Image layer
Prevent error if layer does not have a source.  Also clear any existing image if source is set to null or undefined by setSource.
2020-01-01 22:04:10 +00:00
philip
e35795c5a3 Rework code to pass eslint 2019-12-30 16:46:20 +00:00
philip
89ed757273 Fix indentation 2019-12-30 16:22:44 +00:00
philip
f457093baf Handle the zoomed out case where the source extent is infinite. This
does raise the question of whether an Infinite extent intersects a
finite extent. It appears not to, but maybe it should.
2019-12-28 22:31:30 +00:00
philip
4040d03ae6 Fix problem with zero size canvas drawing 2019-12-28 18:09:07 +00:00
philip
a6b1df3574 Fix missing corners of the world 2019-12-28 17:47:53 +00:00
philip
b71b87d7bb Fix issue with reprojection and double drawing pixels. 2019-12-28 03:40:10 +00:00
mike-000
560931e976 Set reprojection canvas context options
Add example of disabling image smoothing

Add test for reprojection context options
2019-12-20 11:41:42 +00:00
mike-000
9d8609dd08 Modify and snap to circle in user coordinates
Correct modify interaction at center and at drawn circle circumference
Correct snap interaction at drawn circle circumference

Test circle geometry in a user projection
2019-12-13 16:40:39 +00:00
941 changed files with 66073 additions and 39898 deletions

View File

@@ -1,52 +0,0 @@
version: 2
jobs:
build:
docker:
- image: circleci/node:latest-browsers
working_directory: ~/repo
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package-lock.json" }}
- v1-dependencies-
- run:
name: Install Dependencies
command: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package-lock.json" }}
- run:
name: Run Tests
command: npm test
- store_artifacts:
path: coverage/
destination: coverage
- store_artifacts:
path: rendering/cases/
destination: rendering
- run:
name: Build Examples
command: npm run build-examples
- store_artifacts:
path: build/examples
destination: examples
- run:
name: Build API Docs
command: npm run apidoc
- store_artifacts:
path: build/apidoc
destination: apidoc

View File

@@ -3,7 +3,7 @@ name: Publish
on:
push:
branches:
- master
- main
jobs:
publish-npm:

140
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,140 @@
name: Test
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
CI: true
jobs:
pretest:
name: Pre-Test (Node ${{ matrix.node }} / ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
node:
- 14
steps:
- name: Clone Repository
uses: actions/checkout@v2
- name: Set Node.js Version
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}
- name: Determine Cache Directory
id: npm-cache
run: |
echo "::set-output name=dir::$(npm config get cache)"
- name: Configure Job Cache
uses: actions/cache@v1
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Dependencies
run: npm ci
- name: Run Tests
run: npm run pretest
spec:
name: Spec (Node ${{ matrix.node }} / ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
node:
- 14
steps:
- name: Clone Repository
uses: actions/checkout@v2
- name: Set Node.js Version
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}
- name: Determine Cache Directory
id: npm-cache
run: |
echo "::set-output name=dir::$(npm config get cache)"
- name: Configure Job Cache
uses: actions/cache@v1
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Dependencies
run: npm ci
- name: Run Tests
run: npm run test-spec
rendering:
name: Rendering (Node ${{ matrix.node }} / ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
node:
- 14
steps:
- name: Clone Repository
uses: actions/checkout@v2
- name: Set Node.js Version
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}
- name: Determine Cache Directory
id: npm-cache
run: |
echo "::set-output name=dir::$(npm config get cache)"
- name: Configure Job Cache
uses: actions/cache@v1
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Dependencies
run: npm ci
- name: Run Tests
run: npm run test-rendering
- name: Store Rendering Test Artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v2
with:
name: rendering-tests
path: rendering/cases/**/actual.png

76
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at openlayers-psc@lists.osgeo.org. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

View File

@@ -1,6 +1,6 @@
# Contributing to OpenLayers
Thanks for your interest in contributing to OpenLayers.
Thanks for your interest in contributing to OpenLayers. Please see the project's [Code of Conduct](https://github.com/openlayers/openlayers/blob/main/CODE_OF_CONDUCT.md) before proceeding.
## Asking Questions
@@ -21,7 +21,7 @@ Look for `readme.md` files! Several directories contain a `readme.md` file that
## Contributing Code
See [`DEVELOPING.md`](https://github.com/openlayers/openlayers/blob/master/DEVELOPING.md) to learn how to get started developing.
See [`DEVELOPING.md`](https://github.com/openlayers/openlayers/blob/main/DEVELOPING.md) to learn how to get started developing.
Our preferred means of receiving contributions is through [pull requests](https://help.github.com/articles/using-pull-requests). Make sure
that your pull request follows our pull request guidelines below before submitting it.
@@ -31,7 +31,7 @@ This page describes what you need to know to contribute code to OpenLayers as a
## Contributor License Agreement
Your contribution will be under our [license](https://raw.githubusercontent.com/openlayers/openlayers/master/LICENSE.md) as per [GitHub's terms of service](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license).
Your contribution will be under our [license](https://raw.githubusercontent.com/openlayers/openlayers/main/LICENSE.md) as per [GitHub's terms of service](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license).
## Pull request guidelines
@@ -42,8 +42,7 @@ Your pull request must:
* Follow OpenLayers's coding style.
* Pass the integration tests run automatically by the CircleCI Continuous
Integration system.
* Pass the integration tests run automatically by the Continuous Integration system.
* Address a single issue or add a single item of functionality.
@@ -104,7 +103,7 @@ Please keep the header line short, no more than 50 characters.
### Be possible to merge automatically
Occasionally other changes to `master` might mean that your pull request cannot
Occasionally other changes to `main` might mean that your pull request cannot
be merged automatically. In this case you may need to rebase your branch on a
more recent `master`, resolve any conflicts, and `git push --force` to update
more recent `main`, resolve any conflicts, and `git push --force` to update
your branch so that it can be merged automatically.

View File

@@ -5,12 +5,6 @@
You will obviously start by
[forking](https://github.com/openlayers/openlayers/fork) the OpenLayers repository.
### CircleCI
The CircleCI hook is enabled on the Github repository. This means every pull request
is run through a full test suite to ensure it compiles and passes the tests. Failing
pull requests will not be merged.
### Development dependencies
The minimum requirements are:

View File

@@ -41,14 +41,28 @@ See the following examples for more detail on bundling OpenLayers with your appl
* Using [Parcel](https://github.com/openlayers/ol-parcel)
* Using [Browserify](https://github.com/openlayers/ol-browserify)
## Sponsors
OpenLayers appreciates contributions of all kinds. We especially want to thank our fiscal sponsors who contribute to ongoing project maintenance.
![Pozi logo](./sponsor-logos/pozi.png)
> Pozi helps connect communities through spatial thinking.
> We love Openlayers and it forms a core part of our platform.
> https://pozi.com/ https://app.pozi.com/
See our [Open Collective](https://opencollective.com/openlayers/contribute/sponsors-214/checkout) page if you too are interested in becoming a regular sponsor.
## IntelliSense support and type checking for VS Code
The `ol` package contains a `src/` folder with JSDoc annotated sources. TypeScript can get type definitions from these sources with a `jsconfig.json` config file in the project root:
```js
The ol package contains a src/ folder with JSDoc annotated sources. TypeScript can get type definitions from these sources with a [`jsconfig.json`](https://gist.github.com/ahocevar/9a7253cb4712e8bf38d75d8ac898e36c#file-jsconfig-json) (when authoring in JavaScript) or [`tsconfig.json`](https://gist.github.com/ahocevar/ad7b52a2fa0f6c5495193cd695ab3780#file-tsconfig-json) (when authoring in TypeScript) config file in the project root:
<details><summary>jsconfig.json</summary>
```json
{
"compilerOptions": {
"checkJs": true,
// Point to the JSDoc typed sources when using modules from the ol package
"baseUrl": "./",
"paths": {
"ol": ["node_modules/ol/src"],
@@ -58,16 +72,50 @@ The `ol` package contains a `src/` folder with JSDoc annotated sources. TypeScri
"include": [
"**/*.js",
"node_modules/ol/**/*.js"
]
],
"typeAcquisition": {
"exclude": ["ol"]
}
}
```
Project template with this configuration: https://gist.github.com/9a7253cb4712e8bf38d75d8ac898e36c.
Note that the above only works when authoring in plain JavaScript. For similar configurations with a `tsconfig.json` in TypeScript projects, your mileage may vary.
</details>
<details><summary>tsconfig.json</summary>
```json
{
"compilerOptions": {
"allowJs": true,
"baseUrl": "./",
"paths": {
"ol": ["node_modules/ol/src"],
"ol/*": ["node_modules/ol/src/*"]
}
},
"include": [
"**/*.ts",
"node_modules/ol/**/*"
],
"typeAcquisition": {
"exclude": ["ol"]
}
}
```
</details>
TypeScript users may want to use a [third-party types package](https://github.com/hanreev/types-ol) instead.
## Supported Browsers
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](http://www.ecma-international.org/ecma-262/5.1/). This includes Chrome, Firefox, Safari and Edge. For older browsers and platforms like Internet Explorer (down to version 9) and Android 4.x, [polyfills](http://polyfill.io) for `requestAnimationFrame` and `Element.prototype.classList` are required, and using the KML format requires a polyfill for `URL`.
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](http://www.ecma-international.org/ecma-262/5.1/). This includes Chrome, Firefox, Safari and Edge.
For older browsers and platforms (Internet Explorer, Android 4.x, iOS v12 and older, Safari v12 and older), polyfills may be needed for the following browser features:
* [`requestAnimationFrame`](https://caniuse.com/#feat=requestanimationframe): Available from [polyfill.io](https://polyfill.io/).
* [`element.prototype.classList` (`add`/`remove`)](https://caniuse.com/#feat=classlist): Available from [polyfill.io](https://polyfill.io/).
* [`URL` API](https://caniuse.com/#feat=url): Available from [polyfill.io](https://polyfill.io/).
* [Pointer events](https://caniuse.com/#feat=pointer): Use [elm-pep](https://npmjs.com/package/elm-pep) (lightweight) or [@openlayers/pepjs](https://npmjs.com/package/pepjs) (for really, really old browsers).
## Documentation
@@ -86,4 +134,4 @@ Please see our guide on [contributing](CONTRIBUTING.md) if you're interested in
- Need help? Find it on [Stack Overflow using the tag 'openlayers'](http://stackoverflow.com/questions/tagged/openlayers)
- Follow [@openlayers](https://twitter.com/openlayers) on Twitter
[![CircleCI](https://circleci.com/gh/openlayers/openlayers/tree/master.svg?style=svg)](https://circleci.com/gh/openlayers/openlayers/tree/master)
![Test Status](https://github.com/openlayers/openlayers/workflows/Test/badge.svg)

View File

@@ -1,5 +1,31 @@
## Upgrade notes
### v6.4.0
#### Pointer events polyfill removed
Now that all major browsers support Pointer events natively, we removed the [elm-pep](https://npmjs.com/package/elm-pep) dependency. If you are targeting older browsers that do not support Pointer events, you now need to include a pointer events polyfill ([elm-pep](https://npmjs.com/package/elm-pep) or [pepjs](https://www.npmjs.com/package/@openlayers/pepjs)) in your application.
### v6.3.2
#### Backwards incompatible changes
##### Geolocation no longer stop tracking after an error
Previously, when the Geolocation class encounter an error the tracking was stopped. It now continues to track.
To get the previous behavior, use the following code:
```js
geolocation.on('error', function (error) {
geolocation.setTracking(false);
});
```
### v6.3.0
#### Vector source loading when extent crosses +/-180
Previously, when an extent crossed the date line, vector source loaders were called with an extent with 540 degrees of longitude. Now, two loader calls with the visible extent on both sides of the projection extent are issued. This should not require any application code changes, but may affect custom loaders.
### v6.0.0
#### Backwards incompatible changes
@@ -1422,7 +1448,7 @@ now specify an `extent` instead of `widths`. These settings are used to restrict
});
```
See https://openlayers.org/en/master/examples/vector-layer.html for a real example.
See https://openlayers.org/en/latest/examples/vector-layer.html for a real example.
Note that you no longer need to set a `projection` on the source!
@@ -1444,7 +1470,7 @@ now specify an `extent` instead of `widths`. These settings are used to restrict
The above code uses jQuery to send an Ajax request, but you can obviously use any Ajax library.
See https://openlayers.org/en/master/examples/igc.html for a real example.
See https://openlayers.org/en/latest/examples/igc.html for a real example.
* Note about KML
@@ -1502,9 +1528,9 @@ now specify an `extent` instead of `widths`. These settings are used to restrict
});
```
See https://openlayers.org/en/master/examples/vector-osm.html for a real example.
See https://openlayers.org/en/latest/examples/vector-osm.html for a real example.
* The experimental `ol.loadingstrategy.createTile` function has been renamed to `ol.loadingstrategy.tile`. The signature of the function hasn't changed. See https://openlayers.org/en/master/examples/vector-osm.html for an example.
* The experimental `ol.loadingstrategy.createTile` function has been renamed to `ol.loadingstrategy.tile`. The signature of the function hasn't changed. See https://openlayers.org/en/latest/examples/vector-osm.html for an example.
#### Change to `ol.style.Icon`

View File

@@ -53,7 +53,7 @@ The 3.5.0 release includes features and fixes from a whopping 129 pull requests
});
```
See https://openlayers.org/en/master/examples/vector-layer.html for a real example.
See https://openlayers.org/en/latest/examples/vector-layer.html for a real example.
Note that you no longer need to set a `projection` on the source!
@@ -75,7 +75,7 @@ The 3.5.0 release includes features and fixes from a whopping 129 pull requests
The above code uses jQuery to send an Ajax request, but you can obviously use any Ajax library.
See https://openlayers.org/en/master/examples/igc.html for a real example.
See https://openlayers.org/en/latest/examples/igc.html for a real example.
* Note about KML
@@ -133,9 +133,9 @@ The 3.5.0 release includes features and fixes from a whopping 129 pull requests
});
```
See https://openlayers.org/en/master/examples/vector-osm.html for a real example.
See https://openlayers.org/en/latest/examples/vector-osm.html for a real example.
* The experimental `ol.loadingstrategy.createTile` function has been renamed to `ol.loadingstrategy.tile`. The signature of the function hasn't changed. See https://openlayers.org/en/master/examples/vector-osm.html for an example.
* The experimental `ol.loadingstrategy.createTile` function has been renamed to `ol.loadingstrategy.tile`. The signature of the function hasn't changed. See https://openlayers.org/en/latest/examples/vector-osm.html for an example.
### Change to `ol.style.Icon`

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))

123
changelog/v6.3.0.md Normal file
View File

@@ -0,0 +1,123 @@
# 6.3.0
With more than 70 pull requests, this release not only brings significant improvements to the API documentation. It also fixes some old bugs and brings frequently requested improvements. And good news for TypeScript users: OpenLayers now ships with type definitions in `.d.ts` files.
## New features and improvements
* Several improvements to the Graticule layer, like consistent labeling, no more missing graticule lines, and it now works for views that cross the date line.
* Better support for KML icon colors, as well as fills and outlines in PolyStyle
* Better `ol/Overlay` performance and support for panning off-screen overlays into view
* Most of the rendering code can now be run in web workers, e.g. to render to an OffscreenCanvas
* OpenLayers now works fine in web components with shadow root
* WebGL point layers now support rotation based on feature attributes
## List of all changes
* [#10490](https://github.com/openlayers/openlayers/pull/10490) - Select style multiple select interactions removed ([@bepremeg](https://github.com/bepremeg))
* [#10531](https://github.com/openlayers/openlayers/pull/10531) - Dynamically chose the number of subdivisions based on the size of the Image to reproject ([@pjsg](https://github.com/pjsg))
* [#10618](https://github.com/openlayers/openlayers/pull/10618) - Add apidoc-debug task to debug the apidoc generation process ([@MoonE](https://github.com/MoonE))
* [#10343](https://github.com/openlayers/openlayers/pull/10343) - Correct interactions with circle geometries when using user coordinates ([@mike-000](https://github.com/mike-000))
* [#10864](https://github.com/openlayers/openlayers/pull/10864) - Update dependencies ([@ahocevar](https://github.com/ahocevar))
* [#10859](https://github.com/openlayers/openlayers/pull/10859) - Add an example of clipping layer based on a vector source ([@SDaron](https://github.com/SDaron))
* [#10850](https://github.com/openlayers/openlayers/pull/10850) - API docs for enums ([@ahocevar](https://github.com/ahocevar))
* [#10857](https://github.com/openlayers/openlayers/pull/10857) - Make OSM XML example work at dateline and replace Bing with MapTiler ([@mike-000](https://github.com/mike-000))
* [#10858](https://github.com/openlayers/openlayers/pull/10858) - Perform auto-pan when adding an Overlay to a Map ([@ejn](https://github.com/ejn))
* [#10646](https://github.com/openlayers/openlayers/pull/10646) - Write fill and outline in KML PolyStyle ([@mike-000](https://github.com/mike-000))
* [#10800](https://github.com/openlayers/openlayers/pull/10800) - Make Overlay.panIntoView an API method ([@ejn](https://github.com/ejn))
* [#10807](https://github.com/openlayers/openlayers/pull/10807) - Handle Graticule wrapX without calculating excess meridians ([@mike-000](https://github.com/mike-000))
* [#10795](https://github.com/openlayers/openlayers/pull/10795) - Show graticule labels in wrapped worlds ([@mike-000](https://github.com/mike-000))
* [#10824](https://github.com/openlayers/openlayers/pull/10824) - Fix drawing svg icon with color option in ie11 ([@MoonE](https://github.com/MoonE))
* [#10802](https://github.com/openlayers/openlayers/pull/10802) - Apidoc add default-exported enums ([@MoonE](https://github.com/MoonE))
* [#10805](https://github.com/openlayers/openlayers/pull/10805) - make ImageSourceEventType available for consumers ([@regileeso](https://github.com/regileeso))
* [#10822](https://github.com/openlayers/openlayers/pull/10822) - parsing color from IconStyle in KML files ([@lysek](https://github.com/lysek))
* [#10848](https://github.com/openlayers/openlayers/pull/10848) - Speed up Overlay element positioning using CSS translate() ([@horsenit](https://github.com/horsenit))
* [#9590](https://github.com/openlayers/openlayers/pull/9590) - Calculate tile grid extent from extent of bottom-level tile matrix ([@mloskot](https://github.com/mloskot))
* [#10845](https://github.com/openlayers/openlayers/pull/10845) - Fix createHitDetectionImageData error for features with no size ([@gedaiu](https://github.com/gedaiu))
* [#10842](https://github.com/openlayers/openlayers/pull/10842) - Fix custom symbol example short description ([@mike-000](https://github.com/mike-000))
* [#10828](https://github.com/openlayers/openlayers/pull/10828) - Offscreen canvas example ([@ahocevar](https://github.com/ahocevar))
* [#10816](https://github.com/openlayers/openlayers/pull/10816) - Add 'funding' field to `package.json` ([@marcjansen](https://github.com/marcjansen))
* [#10813](https://github.com/openlayers/openlayers/pull/10813) - Add sponsors section to the readme ([@tschaub](https://github.com/tschaub))
* [#10474](https://github.com/openlayers/openlayers/pull/10474) - Fix for undefined source in Image layer ([@mike-000](https://github.com/mike-000))
* [#10785](https://github.com/openlayers/openlayers/pull/10785) - Detect Zoomify server-side retina tiles ([@ahocevar](https://github.com/ahocevar))
* [#10787](https://github.com/openlayers/openlayers/pull/10787) - Improved projection extent in the "Reprojection with EPSG.io Search" example ([@mike-000](https://github.com/mike-000))
* [#10792](https://github.com/openlayers/openlayers/pull/10792) - Add support for EventListener Object ([@flexjoly](https://github.com/flexjoly))
* [#10777](https://github.com/openlayers/openlayers/pull/10777) - Keep the render loop running during simulation ([@ahocevar](https://github.com/ahocevar))
* [#10791](https://github.com/openlayers/openlayers/pull/10791) - iOS 12 touchmove: Prevent touchmove event default when no preceding pointer event ([@sosmo](https://github.com/sosmo))
* [#10786](https://github.com/openlayers/openlayers/pull/10786) - Resolve constraints when updating size ([@ahocevar](https://github.com/ahocevar))
* [#10788](https://github.com/openlayers/openlayers/pull/10788) - Add safeguard to handleTouchMove ([@sosmo](https://github.com/sosmo))
* [#10722](https://github.com/openlayers/openlayers/pull/10722) - fix: handle layer clear event in case clear(true) called ([@jellyedwards](https://github.com/jellyedwards))
* [#10723](https://github.com/openlayers/openlayers/pull/10723) - Improve the extent transforms used by Graticule and handle extents crossing the dateline ([@mike-000](https://github.com/mike-000))
* [#10744](https://github.com/openlayers/openlayers/pull/10744) - Ensure the Modify Features Test example opens at correct zoom ([@mike-000](https://github.com/mike-000))
* [#10767](https://github.com/openlayers/openlayers/pull/10767) - Replace Bing layer with MapTiler in examples ([@mike-000](https://github.com/mike-000))
* [#10751](https://github.com/openlayers/openlayers/pull/10751) - Sort events / observables in all cases ([@MoonE](https://github.com/MoonE))
* [#10763](https://github.com/openlayers/openlayers/pull/10763) - TypeScript: Fix inconsistent optionality in various APIs ([@jumpinjackie](https://github.com/jumpinjackie))
* [#10758](https://github.com/openlayers/openlayers/pull/10758) - Allow using feature attributes for symbol rotation in WebGL layers ([@jahow](https://github.com/jahow))
* [#10748](https://github.com/openlayers/openlayers/pull/10748) - Fix "Cannot read property 'anchor' of undefined" in ol/View ([@mike-000](https://github.com/mike-000))
* [#10746](https://github.com/openlayers/openlayers/pull/10746) - Fix building apidoc on windows ([@MoonE](https://github.com/MoonE))
* [#10720](https://github.com/openlayers/openlayers/pull/10720) - Apidoc better search ([@MoonE](https://github.com/MoonE))
* [#10743](https://github.com/openlayers/openlayers/pull/10743) - Ignore user provided tile cache size when too small ([@ahocevar](https://github.com/ahocevar))
* [#10736](https://github.com/openlayers/openlayers/pull/10736) - Allow cluster source to unlisten from its source ([@M393](https://github.com/M393))
* [#10739](https://github.com/openlayers/openlayers/pull/10739) - Fix typo in trackpad timeout ([@ahocevar](https://github.com/ahocevar))
* [#10740](https://github.com/openlayers/openlayers/pull/10740) - Document tabindex behavior for MouseWheelZoom and DragPan ([@matthias-ccri](https://github.com/matthias-ccri))
* [#10738](https://github.com/openlayers/openlayers/pull/10738) - Fix text background decluttering ([@ahocevar](https://github.com/ahocevar))
* [#10715](https://github.com/openlayers/openlayers/pull/10715) - Fix disappearing graticule labels when rotation returns to 0 ([@mike-000](https://github.com/mike-000))
* [#10713](https://github.com/openlayers/openlayers/pull/10713) - Draw graticule labels in a postrender function ([@mike-000](https://github.com/mike-000))
* [#10711](https://github.com/openlayers/openlayers/pull/10711) - Make sure that optional args are typed accordingly ([@ahocevar](https://github.com/ahocevar))
* [#10710](https://github.com/openlayers/openlayers/pull/10710) - Fix stylefunction return type ([@ahocevar](https://github.com/ahocevar))
* [#10709](https://github.com/openlayers/openlayers/pull/10709) - Fix type and documentation of style function ([@ahocevar](https://github.com/ahocevar))
* [#10708](https://github.com/openlayers/openlayers/pull/10708) - Handle Select interactions with falsey select style ([@ahocevar](https://github.com/ahocevar))
* [#10707](https://github.com/openlayers/openlayers/pull/10707) - Get default projection for overview map from main map. ([@AugustusKling](https://github.com/AugustusKling))
* [#10699](https://github.com/openlayers/openlayers/pull/10699) - Make Select interaction work when there are multiple instances ([@ahocevar](https://github.com/ahocevar))
* [#10694](https://github.com/openlayers/openlayers/pull/10694) - Draw image with configured opacity ([@M393](https://github.com/M393))
* [#10703](https://github.com/openlayers/openlayers/pull/10703) - CI and test fixes ([@ahocevar](https://github.com/ahocevar))
* [#10698](https://github.com/openlayers/openlayers/pull/10698) - Shadow root ([@ahocevar](https://github.com/ahocevar))
* [#10688](https://github.com/openlayers/openlayers/pull/10688) - Publish type definition files ([@ahocevar](https://github.com/ahocevar))
* [#10691](https://github.com/openlayers/openlayers/pull/10691) - Do not exceed color range ([@ahocevar](https://github.com/ahocevar))
* [#10683](https://github.com/openlayers/openlayers/pull/10683) - Dispatch enterfullscreen and leavefullscreen from the FullScreen control ([@fredj](https://github.com/fredj))
* [#10676](https://github.com/openlayers/openlayers/pull/10676) - Document that overviewmap view must use same projection as main map ([@mike-000](https://github.com/mike-000))
* [#10678](https://github.com/openlayers/openlayers/pull/10678) - Add maxResolution option to ol/tilegrid.createXYZ() and ol/source/XYZ ([@mike-000](https://github.com/mike-000))
* [#10690](https://github.com/openlayers/openlayers/pull/10690) - Document minZoom and maxZoom options for all layers ([@mike-000](https://github.com/mike-000))
* [#10672](https://github.com/openlayers/openlayers/pull/10672) - Nicer mousewheel and trackpad zooming ([@ahocevar](https://github.com/ahocevar))
* [#10687](https://github.com/openlayers/openlayers/pull/10687) - Increase timeout in listenImage test ([@fredj](https://github.com/fredj))
* [#10684](https://github.com/openlayers/openlayers/pull/10684) - perf: only do expensive reload when texture changes ([@jellyedwards](https://github.com/jellyedwards))
* [#10675](https://github.com/openlayers/openlayers/pull/10675) - typo ([@jipexu](https://github.com/jipexu))
* [#10669](https://github.com/openlayers/openlayers/pull/10669) - More browser compatible Export Map example ([@mike-000](https://github.com/mike-000))
* [#10667](https://github.com/openlayers/openlayers/pull/10667) - Do not render label with the current linedash ([@ahocevar](https://github.com/ahocevar))
* [#10666](https://github.com/openlayers/openlayers/pull/10666) - Load polyfill before example specific scripts in examples template ([@mike-000](https://github.com/mike-000))
* [#6526](https://github.com/openlayers/openlayers/pull/6526) - Draw interaction: add abortDrawing method and drawabort event ([@tchandelle](https://github.com/tchandelle))
* [#10657](https://github.com/openlayers/openlayers/pull/10657) - Changelog for v6.2.1 ([@openlayers](https://github.com/openlayers))
<details>
<summary>Dependency Updates</summary>
* [#10855](https://github.com/openlayers/openlayers/pull/10855) - Bump rollup from 2.1.0 to 2.3.0 ([@openlayers](https://github.com/openlayers))
* [#10854](https://github.com/openlayers/openlayers/pull/10854) - Bump ol-mapbox-style from 6.1.0 to 6.1.1 ([@openlayers](https://github.com/openlayers))
* [#10853](https://github.com/openlayers/openlayers/pull/10853) - Bump buble from 0.19.8 to 0.20.0 ([@openlayers](https://github.com/openlayers))
* [#10852](https://github.com/openlayers/openlayers/pull/10852) - Bump webpack from 4.42.0 to 4.42.1 ([@openlayers](https://github.com/openlayers))
* [#10837](https://github.com/openlayers/openlayers/pull/10837) - Bump ol-mapbox-style from 6.0.1 to 6.1.0 ([@openlayers](https://github.com/openlayers))
* [#10836](https://github.com/openlayers/openlayers/pull/10836) - Bump coveralls from 3.0.9 to 3.0.11 ([@openlayers](https://github.com/openlayers))
* [#10835](https://github.com/openlayers/openlayers/pull/10835) - Bump @babel/preset-env from 7.8.7 to 7.9.0 ([@openlayers](https://github.com/openlayers))
* [#10834](https://github.com/openlayers/openlayers/pull/10834) - Bump rollup from 1.32.1 to 2.1.0 ([@openlayers](https://github.com/openlayers))
* [#10833](https://github.com/openlayers/openlayers/pull/10833) - Bump fs-extra from 8.1.0 to 9.0.0 ([@openlayers](https://github.com/openlayers))
* [#10832](https://github.com/openlayers/openlayers/pull/10832) - Bump @babel/core from 7.8.7 to 7.9.0 ([@openlayers](https://github.com/openlayers))
* [#10831](https://github.com/openlayers/openlayers/pull/10831) - Bump babel-loader from 8.0.6 to 8.1.0 ([@openlayers](https://github.com/openlayers))
* [#10830](https://github.com/openlayers/openlayers/pull/10830) - Bump mocha from 7.1.0 to 7.1.1 ([@openlayers](https://github.com/openlayers))
* [#10829](https://github.com/openlayers/openlayers/pull/10829) - Bump marked from 0.8.0 to 0.8.2 ([@openlayers](https://github.com/openlayers))
* [#10811](https://github.com/openlayers/openlayers/pull/10811) - Bump sinon from 9.0.0 to 9.0.1 ([@openlayers](https://github.com/openlayers))
* [#10810](https://github.com/openlayers/openlayers/pull/10810) - Bump rollup-plugin-terser from 5.2.0 to 5.3.0 ([@openlayers](https://github.com/openlayers))
* [#10809](https://github.com/openlayers/openlayers/pull/10809) - Bump yargs from 15.3.0 to 15.3.1 ([@openlayers](https://github.com/openlayers))
* [#10806](https://github.com/openlayers/openlayers/pull/10806) - [Security] Bump acorn from 6.1.1 to 6.4.1 ([@openlayers](https://github.com/openlayers))
* [#10755](https://github.com/openlayers/openlayers/pull/10755) - Bump rollup from 1.31.1 to 1.32.0 ([@openlayers](https://github.com/openlayers))
* [#10754](https://github.com/openlayers/openlayers/pull/10754) - Bump @babel/preset-env from 7.8.4 to 7.8.6 ([@openlayers](https://github.com/openlayers))
* [#10753](https://github.com/openlayers/openlayers/pull/10753) - Bump mocha from 7.0.1 to 7.1.0 ([@openlayers](https://github.com/openlayers))
* [#10752](https://github.com/openlayers/openlayers/pull/10752) - Bump @babel/core from 7.8.4 to 7.8.6 ([@openlayers](https://github.com/openlayers))
* [#10725](https://github.com/openlayers/openlayers/pull/10725) - Bump elm-pep from 1.0.4 to 1.0.6 ([@openlayers](https://github.com/openlayers))
* [#10726](https://github.com/openlayers/openlayers/pull/10726) - Bump sinon from 8.1.1 to 9.0.0 ([@openlayers](https://github.com/openlayers))
* [#10680](https://github.com/openlayers/openlayers/pull/10680) - Bump terser-webpack-plugin from 2.3.4 to 2.3.5 ([@openlayers](https://github.com/openlayers))
* [#10682](https://github.com/openlayers/openlayers/pull/10682) - Bump webpack from 4.41.5 to 4.41.6 ([@openlayers](https://github.com/openlayers))
* [#10681](https://github.com/openlayers/openlayers/pull/10681) - Bump webpack-cli from 3.3.10 to 3.3.11 ([@openlayers](https://github.com/openlayers))
* [#10679](https://github.com/openlayers/openlayers/pull/10679) - Bump rollup from 1.31.0 to 1.31.1 ([@openlayers](https://github.com/openlayers))
</details>

9
changelog/v6.3.1.md Normal file
View File

@@ -0,0 +1,9 @@
# 6.3.1
This is a bugfix release which removes the auto-generated `.d.ts` TypeScript type files from the published package.
## List of all changes
* [#10877](https://github.com/openlayers/openlayers/pull/10877) - Remove .d.ts files from the package ([@ahocevar](https://github.com/ahocevar))
* [#10872](https://github.com/openlayers/openlayers/pull/10872) - Use TypeScript 3.9 for type generation for better enums ([@ahocevar](https://github.com/ahocevar))

252
changelog/v6.4.0.md Normal file
View File

@@ -0,0 +1,252 @@
# 6.4.0
With more than 120 pull requests, this release brings a facelift of the website, as well as many bug fixes and several exciting new features.
## Upgrade notes
### Pointer events polyfill removed
Now that all major browsers support Pointer events natively, we removed the [elm-pep](https://npmjs.com/package/elm-pep) dependency. If you are targeting older browsers that do not support Pointer events, you now need to include a pointer events polyfill ([elm-pep](https://npmjs.com/package/elm-pep) or [pepjs](https://www.npmjs.com/package/@openlayers/pepjs)) in your application.
## New features and improvements
* Several event handling fixes and improvements for seamless integration into scrollable web pages and improved support for maps in web components.
* Map interactions work again when `ol.css` is not included in the build.
* More stable map views with decluttered labels during panning.
* Image smoothing can be disabled, so raster cells can have sharp edges in image layers now.
* Better cache management for tile layers.
* Retina/HiDPI support for regular shape and svg icon styles.
## List of all changes
* [#11322](https://github.com/openlayers/openlayers/pull/11322) - same dropdown hover than the site ([@jipexu](https://github.com/jipexu))
* [#11321](https://github.com/openlayers/openlayers/pull/11321) - dropdown margin bottom ([@jipexu](https://github.com/jipexu))
* [#11320](https://github.com/openlayers/openlayers/pull/11320) - margin bottom for dropdown ([@jipexu](https://github.com/jipexu))
* [#11319](https://github.com/openlayers/openlayers/pull/11319) - dropdown margin bottom ([@jipexu](https://github.com/jipexu))
* [#11318](https://github.com/openlayers/openlayers/pull/11318) - Mark active nav item ([@ahocevar](https://github.com/ahocevar))
* [#11317](https://github.com/openlayers/openlayers/pull/11317) - Make header and menu navigation consistent with web site ([@ahocevar](https://github.com/ahocevar))
* [#11277](https://github.com/openlayers/openlayers/pull/11277) - Have high resolution regular shape ([@sbrunner](https://github.com/sbrunner))
* [#11313](https://github.com/openlayers/openlayers/pull/11313) - Add direct link to other examples to tags ([@MoonE](https://github.com/MoonE))
* [#11310](https://github.com/openlayers/openlayers/pull/11310) - Update bootstrap, cleanup css, make pages more responsive ([@ahocevar](https://github.com/ahocevar))
* [#11304](https://github.com/openlayers/openlayers/pull/11304) - Reuse empty canvas ([@ahocevar](https://github.com/ahocevar))
* [#11309](https://github.com/openlayers/openlayers/pull/11309) - Do not extract comments to avoid asset name conflicts ([@ahocevar](https://github.com/ahocevar))
* [#11306](https://github.com/openlayers/openlayers/pull/11306) - Replace/remove usage of tileserver.maptiler.com ([@petrsloup](https://github.com/petrsloup))
* [#11270](https://github.com/openlayers/openlayers/pull/11270) - Fix handling of events originating from overlayContainerStopEvent children ([@ahocevar](https://github.com/ahocevar))
* [#11269](https://github.com/openlayers/openlayers/pull/11269) - Register and unregister events in set target handler ([@ahocevar](https://github.com/ahocevar))
* [#11300](https://github.com/openlayers/openlayers/pull/11300) - Drag and Drop to update source and fire event only if features added ([@mike-000](https://github.com/mike-000))
* [#11286](https://github.com/openlayers/openlayers/pull/11286) - Allow line breaks before slashes in apidoc navigation ([@MoonE](https://github.com/MoonE))
* [#11287](https://github.com/openlayers/openlayers/pull/11287) - Examples index page fixes ([@MoonE](https://github.com/MoonE))
* [#11197](https://github.com/openlayers/openlayers/pull/11197) - Added '&&' logical operator to expressions ([@RydingM](https://github.com/RydingM))
* [#11283](https://github.com/openlayers/openlayers/pull/11283) - Remove update while interacting/animating from VectorImage ([@yonzmeer](https://github.com/yonzmeer))
* [#11267](https://github.com/openlayers/openlayers/pull/11267) - Fix upright labels on vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#11263](https://github.com/openlayers/openlayers/pull/11263) - Fix rotation reset in Mapbox-gl Layer example ([@mike-000](https://github.com/mike-000))
* [#11268](https://github.com/openlayers/openlayers/pull/11268) - Cache size ([@ahocevar](https://github.com/ahocevar))
* [#11271](https://github.com/openlayers/openlayers/pull/11271) - Make style override CSS compatible with importing ol.css and with IE ([@mike-000](https://github.com/mike-000))
* [#11253](https://github.com/openlayers/openlayers/pull/11253) - Only clamp to source extent for safe transforms ([@ahocevar](https://github.com/ahocevar))
* [#11258](https://github.com/openlayers/openlayers/pull/11258) - Replace ol tag with openlayers ([@ahocevar](https://github.com/ahocevar))
* [#11256](https://github.com/openlayers/openlayers/pull/11256) - Add dispose API docs to raster source (#10856) ([@EvertEt](https://github.com/EvertEt))
* [#11255](https://github.com/openlayers/openlayers/pull/11255) - GetDataAtPixel performance improvement ([@Shekenix](https://github.com/Shekenix))
* [#11252](https://github.com/openlayers/openlayers/pull/11252) - Add missing SimpleGeometry export ([@jmacura](https://github.com/jmacura))
* [#11226](https://github.com/openlayers/openlayers/pull/11226) - By modifying the common vertex, not all geometries were changed when … ([@michalzielanski](https://github.com/michalzielanski))
* [#11225](https://github.com/openlayers/openlayers/pull/11225) - Use 'source-over' to render reprojection edges ([@mike-000](https://github.com/mike-000))
* [#11224](https://github.com/openlayers/openlayers/pull/11224) - Quote . in RegExp ([@mohawk2](https://github.com/mohawk2))
* [#11219](https://github.com/openlayers/openlayers/pull/11219) - Make proj4 transforms behave like built-in transforms ([@ahocevar](https://github.com/ahocevar))
* [#11218](https://github.com/openlayers/openlayers/pull/11218) - getFeatures() uses wrong transforms after resetting rotation ([@ahocevar](https://github.com/ahocevar))
* [#11217](https://github.com/openlayers/openlayers/pull/11217) - Additional test coverage for serializing GeoJSON ([@tschaub](https://github.com/tschaub))
* [#11215](https://github.com/openlayers/openlayers/pull/11215) - Fix MVT multipolygons with featureClass: Feature ([@ahocevar](https://github.com/ahocevar))
* [#11193](https://github.com/openlayers/openlayers/pull/11193) - Fix VectorImage layer clipping with rotation ([@mike-000](https://github.com/mike-000))
* [#11195](https://github.com/openlayers/openlayers/pull/11195) - getExtent() to return getEmpty() if geometry is unprojectable ([@mike-000](https://github.com/mike-000))
* [#11188](https://github.com/openlayers/openlayers/pull/11188) - Late object initialization ([@michalzielanski](https://github.com/michalzielanski))
* [#11194](https://github.com/openlayers/openlayers/pull/11194) - ol/geom/LineString#getCoordinateAt() to return Z and M values if available ([@mike-000](https://github.com/mike-000))
* [#11198](https://github.com/openlayers/openlayers/pull/11198) - Add condition option to Extent interaction ([@mike-000](https://github.com/mike-000))
* [#11202](https://github.com/openlayers/openlayers/pull/11202) - Branch name changes ([@tschaub](https://github.com/tschaub))
* [#11192](https://github.com/openlayers/openlayers/pull/11192) - Use pepjs in examples to support more old/exotic browsers ([@ahocevar](https://github.com/ahocevar))
* [#11190](https://github.com/openlayers/openlayers/pull/11190) - Correct vector layer clipping with rotation ([@mike-000](https://github.com/mike-000))
* [#11037](https://github.com/openlayers/openlayers/pull/11037) - Allow icon and text styles to be scaled in two dimensions ([@mike-000](https://github.com/mike-000))
* [#11165](https://github.com/openlayers/openlayers/pull/11165) - Use drag-pan default condition with onFocusOnly ([@ahocevar](https://github.com/ahocevar))
* [#11172](https://github.com/openlayers/openlayers/pull/11172) - Use cross-browser find ([@ahocevar](https://github.com/ahocevar))
* [#11171](https://github.com/openlayers/openlayers/pull/11171) - Allow using un() for events registered with once() ([@ahocevar](https://github.com/ahocevar))
* [#11148](https://github.com/openlayers/openlayers/pull/11148) - Vectortile label flicker ([@ahocevar](https://github.com/ahocevar))
* [#11174](https://github.com/openlayers/openlayers/pull/11174) - Improve types and docs for getStyle/setStyle ([@ahocevar](https://github.com/ahocevar))
* [#11173](https://github.com/openlayers/openlayers/pull/11173) - Remove elm-pep dependency ([@ahocevar](https://github.com/ahocevar))
* [#11146](https://github.com/openlayers/openlayers/pull/11146) - Update JSTS example to use JSTS 2.3.0 ([@bjornharrtell](https://github.com/bjornharrtell))
* [#11135](https://github.com/openlayers/openlayers/pull/11135) - Re-enable onFocusOnly option for interaction defaults ([@ahocevar](https://github.com/ahocevar))
* [#11106](https://github.com/openlayers/openlayers/pull/11106) - Defer ZoomSlider initialization until its size is available ([@M393](https://github.com/M393))
* [#11120](https://github.com/openlayers/openlayers/pull/11120) - correct scalebar box sizing ([@mike-000](https://github.com/mike-000))
* [#11116](https://github.com/openlayers/openlayers/pull/11116) - No search autocomplete ([@ahocevar](https://github.com/ahocevar))
* [#11088](https://github.com/openlayers/openlayers/pull/11088) - Transform without axis order in proj4 ([@ahocevar](https://github.com/ahocevar))
* [#11089](https://github.com/openlayers/openlayers/pull/11089) - Use assign function instead of Object.assign ([@ahocevar](https://github.com/ahocevar))
* [#11082](https://github.com/openlayers/openlayers/pull/11082) - Fix outside window dragging ([@ahocevar](https://github.com/ahocevar))
* [#11066](https://github.com/openlayers/openlayers/pull/11066) - Move code of conduct to the root ([@tschaub](https://github.com/tschaub))
* [#11065](https://github.com/openlayers/openlayers/pull/11065) - Remove CircleCI integration ([@tschaub](https://github.com/tschaub))
* [#11054](https://github.com/openlayers/openlayers/pull/11054) - Add a code of conduct ([@openlayers](https://github.com/openlayers))
* [#11053](https://github.com/openlayers/openlayers/pull/11053) - Build examples and API docs ([@tschaub](https://github.com/tschaub))
* [#11050](https://github.com/openlayers/openlayers/pull/11050) - Run rendering and spec tests in parallel ([@tschaub](https://github.com/tschaub))
* [#11051](https://github.com/openlayers/openlayers/pull/11051) - Clear event listeners when disposing a raster source. ([@tschaub](https://github.com/tschaub))
* [#11046](https://github.com/openlayers/openlayers/pull/11046) - Reprojection: Just draw everything on pixel boundaries (always) ([@pjsg](https://github.com/pjsg))
* [#11049](https://github.com/openlayers/openlayers/pull/11049) - Fix tile opaque ([@alexisig](https://github.com/alexisig))
* [#11048](https://github.com/openlayers/openlayers/pull/11048) - Run tests as a GitHub CI workflow ([@openlayers](https://github.com/openlayers))
* [#11047](https://github.com/openlayers/openlayers/pull/11047) - Include processor from pixelworks and terminate workers before creating new ones ([@tschaub](https://github.com/tschaub))
* [#11045](https://github.com/openlayers/openlayers/pull/11045) - Install headless Chrome dependencies ([@tschaub](https://github.com/tschaub))
* [#11044](https://github.com/openlayers/openlayers/pull/11044) - Remove personal Mapbox key ([@tschaub](https://github.com/tschaub))
* [#11042](https://github.com/openlayers/openlayers/pull/11042) - Fix legacy build by defining ol alias ([@ahocevar](https://github.com/ahocevar))
* [#11041](https://github.com/openlayers/openlayers/pull/11041) - Fix custom controls with user-provided element ([@ahocevar](https://github.com/ahocevar))
* [#11025](https://github.com/openlayers/openlayers/pull/11025) - Get rid of MapBrowserPointerEvent ([@ahocevar](https://github.com/ahocevar))
* [#11024](https://github.com/openlayers/openlayers/pull/11024) - Make events work when inside a web component ([@ahocevar](https://github.com/ahocevar))
* [#11019](https://github.com/openlayers/openlayers/pull/11019) - Option to disable image smoothing for Image layer sources ([@mike-000](https://github.com/mike-000))
* [#11023](https://github.com/openlayers/openlayers/pull/11023) - Add MapBrowserPointerEvent to apidoc ([@MoonE](https://github.com/MoonE))
* [#11017](https://github.com/openlayers/openlayers/pull/11017) - Don't stop geolocation tracking on error ([@fredj](https://github.com/fredj))
* [#11011](https://github.com/openlayers/openlayers/pull/11011) - Set background fill style for each declutter label ([@mike-000](https://github.com/mike-000))
* [#10977](https://github.com/openlayers/openlayers/pull/10977) - Only render vector tile when there are executor groups ([@ahocevar](https://github.com/ahocevar))
* [#10990](https://github.com/openlayers/openlayers/pull/10990) - Include context options in tile cache key ([@mike-000](https://github.com/mike-000))
* [#10996](https://github.com/openlayers/openlayers/pull/10996) - Mapbox vector layer ([@tschaub](https://github.com/tschaub))
* [#10998](https://github.com/openlayers/openlayers/pull/10998) - Show the main.js right below the map ([@tschaub](https://github.com/tschaub))
* [#10997](https://github.com/openlayers/openlayers/pull/10997) - Update shelljs ([@tschaub](https://github.com/tschaub))
* [#10987](https://github.com/openlayers/openlayers/pull/10987) - Use brokenDiagonalRendering reprojection processing if image smoothing is disabled ([@mike-000](https://github.com/mike-000))
* [#10948](https://github.com/openlayers/openlayers/pull/10948) - Add constrainResolution option ([@wussup](https://github.com/wussup))
* [#10981](https://github.com/openlayers/openlayers/pull/10981) - Calculate WMTS TileGrid extent using TileMatrixSetLimit when available ([@nielsmeijer](https://github.com/nielsmeijer))
* [#10993](https://github.com/openlayers/openlayers/pull/10993) - Do not rely on custom type overrides ([@ahocevar](https://github.com/ahocevar))
* [#10989](https://github.com/openlayers/openlayers/pull/10989) - Add log2 function to ol/math ([@mike-000](https://github.com/mike-000))
* [#10986](https://github.com/openlayers/openlayers/pull/10986) - Correct bold font tag closure in example description ([@mike-000](https://github.com/mike-000))
* [#10982](https://github.com/openlayers/openlayers/pull/10982) - Handle scaled output canvas correctly ([@ahocevar](https://github.com/ahocevar))
* [#10983](https://github.com/openlayers/openlayers/pull/10983) - Trying to fix CI ([@ahocevar](https://github.com/ahocevar))
* [#10976](https://github.com/openlayers/openlayers/pull/10976) - Apply projection.getMetersPerUnit() to calculated WMTS resolution ([@nielsmeijer](https://github.com/nielsmeijer))
* [#10960](https://github.com/openlayers/openlayers/pull/10960) - Improve Vector Clipping Layer example with a background layer and intersect ([@SDaron](https://github.com/SDaron))
* [#10956](https://github.com/openlayers/openlayers/pull/10956) - Add undefined check for navigator.userAgent ([@pmulholland42](https://github.com/pmulholland42))
* [#10936](https://github.com/openlayers/openlayers/pull/10936) - Set pointerEvents style programmatically instead of relying on ol.css ([@ahocevar](https://github.com/ahocevar))
* [#10941](https://github.com/openlayers/openlayers/pull/10941) - Always prevent default after handleDragEvent ([@ahocevar](https://github.com/ahocevar))
* [#10939](https://github.com/openlayers/openlayers/pull/10939) - Losen listener type ([@ahocevar](https://github.com/ahocevar))
* [#10935](https://github.com/openlayers/openlayers/pull/10935) - Fix calling Overlay.panIntoView with no options ([@ejn](https://github.com/ejn))
* [#10937](https://github.com/openlayers/openlayers/pull/10937) - Use the tile coordinate as a tile pseudo URL in geojson-vt example ([@mike-000](https://github.com/mike-000))
* [#10934](https://github.com/openlayers/openlayers/pull/10934) - Update TypeScript to v3.8 ([@ahocevar](https://github.com/ahocevar))
* [#10931](https://github.com/openlayers/openlayers/pull/10931) - Use a new cache key in hopes of fixing test failures ([@tschaub](https://github.com/tschaub))
* [#10930](https://github.com/openlayers/openlayers/pull/10930) - Better test for uniform colors ([@ahocevar](https://github.com/ahocevar))
* [#10929](https://github.com/openlayers/openlayers/pull/10929) - Fix typo in 6.3.0 release doc ([@nikolas](https://github.com/nikolas))
* [#10917](https://github.com/openlayers/openlayers/pull/10917) - Fix the IGN WMTS example dead links and attribution ([@sambakk](https://github.com/sambakk))
* [#10911](https://github.com/openlayers/openlayers/pull/10911) - Remove link for fullscreen event from navigation ([@MoonE](https://github.com/MoonE))
* [#10916](https://github.com/openlayers/openlayers/pull/10916) - Store additional artifacts to debug test failures ([@tschaub](https://github.com/tschaub))
* [#10902](https://github.com/openlayers/openlayers/pull/10902) - Move readFromDocument implementation to the base class ([@fredj](https://github.com/fredj))
* [#10899](https://github.com/openlayers/openlayers/pull/10899) - Do not scroll page during feature translation ([@ahocevar](https://github.com/ahocevar))
* [#10862](https://github.com/openlayers/openlayers/pull/10862) - Use prettier ([@tschaub](https://github.com/tschaub))
* [#10895](https://github.com/openlayers/openlayers/pull/10895) - Fix dependency source management for examples ([@ahocevar](https://github.com/ahocevar))
* [#10882](https://github.com/openlayers/openlayers/pull/10882) - Apidoc - Fix toggle state when there are no hidden members ([@MoonE](https://github.com/MoonE))
* [#10893](https://github.com/openlayers/openlayers/pull/10893) - Fix focus condition ([@ahocevar](https://github.com/ahocevar))
* [#10878](https://github.com/openlayers/openlayers/pull/10878) - Avoid page scrolling when freehand drawing on mobile ([@ahocevar](https://github.com/ahocevar))
* [#10879](https://github.com/openlayers/openlayers/pull/10879) - Do not append hit canvas to document body ([@ahocevar](https://github.com/ahocevar))
* [#10877](https://github.com/openlayers/openlayers/pull/10877) - Remove .d.ts files from the package ([@ahocevar](https://github.com/ahocevar))
* [#10874](https://github.com/openlayers/openlayers/pull/10874) - fix return type ([@mike-000](https://github.com/mike-000))
* [#10840](https://github.com/openlayers/openlayers/pull/10840) - Remove inherit doc ([@fredj](https://github.com/fredj))
* [#10872](https://github.com/openlayers/openlayers/pull/10872) - Use TypeScript 3.9 for type generation for better enums ([@ahocevar](https://github.com/ahocevar))
* [#10537](https://github.com/openlayers/openlayers/pull/10537) - Correct resolution used for scale bar and add dpi option ([@mike-000](https://github.com/mike-000))
* [#10463](https://github.com/openlayers/openlayers/pull/10463) - Fix issue with reprojection and double drawing pixels. ([@pjsg](https://github.com/pjsg))
* [#10429](https://github.com/openlayers/openlayers/pull/10429) - Option to disable image smoothing for Tile layer sources (including reprojected sources) ([@mike-000](https://github.com/mike-000))
* [#10865](https://github.com/openlayers/openlayers/pull/10865) - View / avoid solving constraints related to map size during animation ([@jahow](https://github.com/jahow))
<details>
<summary>Dependency Updates</summary>
* [#11298](https://github.com/openlayers/openlayers/pull/11298) - Bump @babel/core from 7.10.4 to 7.10.5 ([@openlayers](https://github.com/openlayers))
* [#11297](https://github.com/openlayers/openlayers/pull/11297) - Bump puppeteer from 5.1.0 to 5.2.0 ([@openlayers](https://github.com/openlayers))
* [#11296](https://github.com/openlayers/openlayers/pull/11296) - Bump typescript from 3.9.6 to 3.9.7 ([@openlayers](https://github.com/openlayers))
* [#11295](https://github.com/openlayers/openlayers/pull/11295) - Bump eslint from 7.4.0 to 7.5.0 ([@openlayers](https://github.com/openlayers))
* [#11294](https://github.com/openlayers/openlayers/pull/11294) - Bump rollup from 2.21.0 to 2.22.1 ([@openlayers](https://github.com/openlayers))
* [#11293](https://github.com/openlayers/openlayers/pull/11293) - Bump terser-webpack-plugin from 3.0.6 to 3.0.7 ([@openlayers](https://github.com/openlayers))
* [#11292](https://github.com/openlayers/openlayers/pull/11292) - Bump url-polyfill from 1.1.9 to 1.1.10 ([@openlayers](https://github.com/openlayers))
* [#11291](https://github.com/openlayers/openlayers/pull/11291) - Bump marked from 1.1.0 to 1.1.1 ([@openlayers](https://github.com/openlayers))
* [#11288](https://github.com/openlayers/openlayers/pull/11288) - Bump lodash from 4.17.15 to 4.17.19 ([@openlayers](https://github.com/openlayers))
* [#11275](https://github.com/openlayers/openlayers/pull/11275) - Bump puppeteer from 5.0.0 to 5.1.0 ([@openlayers](https://github.com/openlayers))
* [#11274](https://github.com/openlayers/openlayers/pull/11274) - Bump rollup from 2.19.0 to 2.21.0 ([@openlayers](https://github.com/openlayers))
* [#11273](https://github.com/openlayers/openlayers/pull/11273) - Bump yargs from 15.4.0 to 15.4.1 ([@openlayers](https://github.com/openlayers))
* [#11244](https://github.com/openlayers/openlayers/pull/11244) - Bump rollup from 2.18.0 to 2.19.0 ([@openlayers](https://github.com/openlayers))
* [#11245](https://github.com/openlayers/openlayers/pull/11245) - Bump @babel/core from 7.10.3 to 7.10.4 ([@openlayers](https://github.com/openlayers))
* [#11243](https://github.com/openlayers/openlayers/pull/11243) - Bump pixelmatch from 5.2.0 to 5.2.1 ([@openlayers](https://github.com/openlayers))
* [#11248](https://github.com/openlayers/openlayers/pull/11248) - Bump eslint from 7.3.0 to 7.4.0 ([@openlayers](https://github.com/openlayers))
* [#11247](https://github.com/openlayers/openlayers/pull/11247) - Bump @babel/preset-env from 7.10.3 to 7.10.4 ([@openlayers](https://github.com/openlayers))
* [#11249](https://github.com/openlayers/openlayers/pull/11249) - Bump copy-webpack-plugin from 6.0.2 to 6.0.3 ([@openlayers](https://github.com/openlayers))
* [#11246](https://github.com/openlayers/openlayers/pull/11246) - Bump yargs from 15.3.1 to 15.4.0 ([@openlayers](https://github.com/openlayers))
* [#11242](https://github.com/openlayers/openlayers/pull/11242) - Bump typescript from 3.9.5 to 3.9.6 ([@openlayers](https://github.com/openlayers))
* [#11241](https://github.com/openlayers/openlayers/pull/11241) - Bump puppeteer from 4.0.0 to 5.0.0 ([@openlayers](https://github.com/openlayers))
* [#11210](https://github.com/openlayers/openlayers/pull/11210) - Bump puppeteer from 3.3.0 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#11209](https://github.com/openlayers/openlayers/pull/11209) - Bump rollup from 2.16.1 to 2.18.0 ([@openlayers](https://github.com/openlayers))
* [#11208](https://github.com/openlayers/openlayers/pull/11208) - Bump webpack-cli from 3.3.11 to 3.3.12 ([@openlayers](https://github.com/openlayers))
* [#11207](https://github.com/openlayers/openlayers/pull/11207) - Bump eslint from 7.2.0 to 7.3.0 ([@openlayers](https://github.com/openlayers))
* [#11206](https://github.com/openlayers/openlayers/pull/11206) - Bump @babel/preset-env from 7.10.2 to 7.10.3 ([@openlayers](https://github.com/openlayers))
* [#11205](https://github.com/openlayers/openlayers/pull/11205) - Bump terser-webpack-plugin from 3.0.4 to 3.0.6 ([@openlayers](https://github.com/openlayers))
* [#11204](https://github.com/openlayers/openlayers/pull/11204) - Bump @babel/core from 7.10.2 to 7.10.3 ([@openlayers](https://github.com/openlayers))
* [#11183](https://github.com/openlayers/openlayers/pull/11183) - Bump mocha from 7.2.0 to 8.0.1 ([@openlayers](https://github.com/openlayers))
* [#11181](https://github.com/openlayers/openlayers/pull/11181) - Bump terser-webpack-plugin from 3.0.3 to 3.0.4 ([@openlayers](https://github.com/openlayers))
* [#11182](https://github.com/openlayers/openlayers/pull/11182) - Bump rollup from 2.15.0 to 2.16.1 ([@openlayers](https://github.com/openlayers))
* [#11180](https://github.com/openlayers/openlayers/pull/11180) - Bump karma from 5.0.9 to 5.1.0 ([@openlayers](https://github.com/openlayers))
* [#11158](https://github.com/openlayers/openlayers/pull/11158) - Bump globby from 11.0.0 to 11.0.1 ([@openlayers](https://github.com/openlayers))
* [#11157](https://github.com/openlayers/openlayers/pull/11157) - Bump copy-webpack-plugin from 6.0.1 to 6.0.2 ([@openlayers](https://github.com/openlayers))
* [#11151](https://github.com/openlayers/openlayers/pull/11151) - Bump terser-webpack-plugin from 3.0.2 to 3.0.3 ([@openlayers](https://github.com/openlayers))
* [#11156](https://github.com/openlayers/openlayers/pull/11156) - Bump typescript from 3.9.3 to 3.9.5 ([@openlayers](https://github.com/openlayers))
* [#11155](https://github.com/openlayers/openlayers/pull/11155) - Bump fs-extra from 9.0.0 to 9.0.1 ([@openlayers](https://github.com/openlayers))
* [#11152](https://github.com/openlayers/openlayers/pull/11152) - Bump puppeteer from 3.2.0 to 3.3.0 ([@openlayers](https://github.com/openlayers))
* [#11153](https://github.com/openlayers/openlayers/pull/11153) - Bump eslint from 6.8.0 to 7.2.0 ([@openlayers](https://github.com/openlayers))
* [#11150](https://github.com/openlayers/openlayers/pull/11150) - Bump rollup from 2.12.0 to 2.15.0 ([@openlayers](https://github.com/openlayers))
* [#11154](https://github.com/openlayers/openlayers/pull/11154) - Bump ol-mapbox-style from 6.1.1 to 6.1.2 ([@openlayers](https://github.com/openlayers))
* [#11143](https://github.com/openlayers/openlayers/pull/11143) - [Security] Bump websocket-extensions from 0.1.3 to 0.1.4 ([@openlayers](https://github.com/openlayers))
* [#11123](https://github.com/openlayers/openlayers/pull/11123) - Bump @babel/core from 7.9.6 to 7.10.2 ([@openlayers](https://github.com/openlayers))
* [#11122](https://github.com/openlayers/openlayers/pull/11122) - Bump karma-coverage-istanbul-reporter from 3.0.2 to 3.0.3 ([@openlayers](https://github.com/openlayers))
* [#11125](https://github.com/openlayers/openlayers/pull/11125) - Bump terser-webpack-plugin from 3.0.1 to 3.0.2 ([@openlayers](https://github.com/openlayers))
* [#11126](https://github.com/openlayers/openlayers/pull/11126) - Bump front-matter from 4.0.0 to 4.0.2 ([@openlayers](https://github.com/openlayers))
* [#11124](https://github.com/openlayers/openlayers/pull/11124) - Bump rollup from 2.10.9 to 2.12.0 ([@openlayers](https://github.com/openlayers))
* [#11127](https://github.com/openlayers/openlayers/pull/11127) - Bump @babel/preset-env from 7.9.6 to 7.10.2 ([@openlayers](https://github.com/openlayers))
* [#11121](https://github.com/openlayers/openlayers/pull/11121) - Bump puppeteer from 3.1.0 to 3.2.0 ([@openlayers](https://github.com/openlayers))
* [#11096](https://github.com/openlayers/openlayers/pull/11096) - Bump rollup-plugin-terser from 5.3.0 to 6.1.0 ([@openlayers](https://github.com/openlayers))
* [#11095](https://github.com/openlayers/openlayers/pull/11095) - Bump front-matter from 3.2.1 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#11094](https://github.com/openlayers/openlayers/pull/11094) - Bump rollup from 2.10.2 to 2.10.9 ([@openlayers](https://github.com/openlayers))
* [#11099](https://github.com/openlayers/openlayers/pull/11099) - Bump mocha from 7.1.2 to 7.2.0 ([@openlayers](https://github.com/openlayers))
* [#11093](https://github.com/openlayers/openlayers/pull/11093) - Bump karma from 5.0.7 to 5.0.9 ([@openlayers](https://github.com/openlayers))
* [#11098](https://github.com/openlayers/openlayers/pull/11098) - Bump typescript from 3.9.2 to 3.9.3 ([@openlayers](https://github.com/openlayers))
* [#11097](https://github.com/openlayers/openlayers/pull/11097) - Bump puppeteer from 3.0.4 to 3.1.0 ([@openlayers](https://github.com/openlayers))
* [#11062](https://github.com/openlayers/openlayers/pull/11062) - Bump typescript from 3.8.3 to 3.9.2 ([@openlayers](https://github.com/openlayers))
* [#11057](https://github.com/openlayers/openlayers/pull/11057) - Bump copy-webpack-plugin from 5.1.1 to 6.0.1 ([@openlayers](https://github.com/openlayers))
* [#11060](https://github.com/openlayers/openlayers/pull/11060) - Bump karma from 5.0.5 to 5.0.7 ([@openlayers](https://github.com/openlayers))
* [#11059](https://github.com/openlayers/openlayers/pull/11059) - Bump rollup from 2.9.1 to 2.10.2 ([@openlayers](https://github.com/openlayers))
* [#11058](https://github.com/openlayers/openlayers/pull/11058) - Bump marked from 1.0.0 to 1.1.0 ([@openlayers](https://github.com/openlayers))
* [#11064](https://github.com/openlayers/openlayers/pull/11064) - Bump front-matter from 3.1.0 to 3.2.1 ([@openlayers](https://github.com/openlayers))
* [#11061](https://github.com/openlayers/openlayers/pull/11061) - Bump url-polyfill from 1.1.8 to 1.1.9 ([@openlayers](https://github.com/openlayers))
* [#11063](https://github.com/openlayers/openlayers/pull/11063) - Bump proj4 from 2.6.1 to 2.6.2 ([@openlayers](https://github.com/openlayers))
* [#11030](https://github.com/openlayers/openlayers/pull/11030) - Bump karma-coverage-istanbul-reporter from 3.0.0 to 3.0.2 ([@openlayers](https://github.com/openlayers))
* [#11031](https://github.com/openlayers/openlayers/pull/11031) - Bump karma from 5.0.4 to 5.0.5 ([@openlayers](https://github.com/openlayers))
* [#11032](https://github.com/openlayers/openlayers/pull/11032) - Bump puppeteer from 3.0.2 to 3.0.4 ([@openlayers](https://github.com/openlayers))
* [#11029](https://github.com/openlayers/openlayers/pull/11029) - Bump jquery from 3.5.0 to 3.5.1 ([@openlayers](https://github.com/openlayers))
* [#11028](https://github.com/openlayers/openlayers/pull/11028) - Bump rollup from 2.7.6 to 2.9.1 ([@openlayers](https://github.com/openlayers))
* [#11027](https://github.com/openlayers/openlayers/pull/11027) - Bump terser-webpack-plugin from 3.0.0 to 3.0.1 ([@openlayers](https://github.com/openlayers))
* [#11026](https://github.com/openlayers/openlayers/pull/11026) - Bump webpack-dev-server from 3.10.3 to 3.11.0 ([@openlayers](https://github.com/openlayers))
* [#11006](https://github.com/openlayers/openlayers/pull/11006) - Bump karma-mocha from 2.0.0 to 2.0.1 ([@openlayers](https://github.com/openlayers))
* [#11005](https://github.com/openlayers/openlayers/pull/11005) - Bump karma from 5.0.2 to 5.0.4 ([@openlayers](https://github.com/openlayers))
* [#11003](https://github.com/openlayers/openlayers/pull/11003) - Bump rollup from 2.7.2 to 2.7.6 ([@openlayers](https://github.com/openlayers))
* [#11002](https://github.com/openlayers/openlayers/pull/11002) - Bump puppeteer from 2.1.1 to 3.0.2 ([@openlayers](https://github.com/openlayers))
* [#10999](https://github.com/openlayers/openlayers/pull/10999) - Bump @babel/core from 7.9.0 to 7.9.6 ([@openlayers](https://github.com/openlayers))
* [#11004](https://github.com/openlayers/openlayers/pull/11004) - Bump @babel/preset-env from 7.9.5 to 7.9.6 ([@openlayers](https://github.com/openlayers))
* [#11001](https://github.com/openlayers/openlayers/pull/11001) - Bump karma-coverage-istanbul-reporter from 2.1.1 to 3.0.0 ([@openlayers](https://github.com/openlayers))
* [#11000](https://github.com/openlayers/openlayers/pull/11000) - Bump terser-webpack-plugin from 2.3.6 to 3.0.0 ([@openlayers](https://github.com/openlayers))
* [#10971](https://github.com/openlayers/openlayers/pull/10971) - Bump webpack from 4.42.1 to 4.43.0 ([@openlayers](https://github.com/openlayers))
* [#10972](https://github.com/openlayers/openlayers/pull/10972) - Bump marked from 0.8.2 to 1.0.0 ([@openlayers](https://github.com/openlayers))
* [#10970](https://github.com/openlayers/openlayers/pull/10970) - Bump mocha from 7.1.1 to 7.1.2 ([@openlayers](https://github.com/openlayers))
* [#10969](https://github.com/openlayers/openlayers/pull/10969) - Bump puppeteer from 3.0.0 to 3.0.1 ([@openlayers](https://github.com/openlayers))
* [#10968](https://github.com/openlayers/openlayers/pull/10968) - Bump coveralls from 3.0.11 to 3.1.0 ([@openlayers](https://github.com/openlayers))
* [#10967](https://github.com/openlayers/openlayers/pull/10967) - Bump terser-webpack-plugin from 2.3.5 to 2.3.6 ([@openlayers](https://github.com/openlayers))
* [#10966](https://github.com/openlayers/openlayers/pull/10966) - Bump rollup from 2.6.1 to 2.7.2 ([@openlayers](https://github.com/openlayers))
* [#10945](https://github.com/openlayers/openlayers/pull/10945) - Bump karma-mocha from 1.3.0 to 2.0.0 ([@openlayers](https://github.com/openlayers))
* [#10943](https://github.com/openlayers/openlayers/pull/10943) - Bump pngjs from 4.0.0 to 5.0.0 ([@openlayers](https://github.com/openlayers))
* [#10946](https://github.com/openlayers/openlayers/pull/10946) - Bump pixelmatch from 5.1.0 to 5.2.0 ([@openlayers](https://github.com/openlayers))
* [#10944](https://github.com/openlayers/openlayers/pull/10944) - Bump loglevelnext from 3.0.1 to 4.0.1 ([@openlayers](https://github.com/openlayers))
* [#10942](https://github.com/openlayers/openlayers/pull/10942) - Bump puppeteer from 2.1.1 to 3.0.0 ([@openlayers](https://github.com/openlayers))
* [#10947](https://github.com/openlayers/openlayers/pull/10947) - Bump karma from 5.0.1 to 5.0.2 ([@openlayers](https://github.com/openlayers))
* [#10918](https://github.com/openlayers/openlayers/pull/10918) - Bump @babel/preset-env from 7.9.0 to 7.9.5 ([@openlayers](https://github.com/openlayers))
* [#10921](https://github.com/openlayers/openlayers/pull/10921) - Bump pngjs from 3.4.0 to 4.0.0 ([@openlayers](https://github.com/openlayers))
* [#10923](https://github.com/openlayers/openlayers/pull/10923) - Bump sinon from 9.0.1 to 9.0.2 ([@openlayers](https://github.com/openlayers))
* [#10922](https://github.com/openlayers/openlayers/pull/10922) - Bump karma from 4.4.1 to 5.0.1 ([@openlayers](https://github.com/openlayers))
* [#10920](https://github.com/openlayers/openlayers/pull/10920) - Bump jsdoc from 3.6.3 to 3.6.4 ([@openlayers](https://github.com/openlayers))
* [#10919](https://github.com/openlayers/openlayers/pull/10919) - Bump rollup from 2.3.3 to 2.6.1 ([@openlayers](https://github.com/openlayers))
* [#10924](https://github.com/openlayers/openlayers/pull/10924) - Bump jquery from 3.4.1 to 3.5.0 ([@openlayers](https://github.com/openlayers))
* [#10889](https://github.com/openlayers/openlayers/pull/10889) - Bump rollup from 2.3.0 to 2.3.3 ([@openlayers](https://github.com/openlayers))
* [#10891](https://github.com/openlayers/openlayers/pull/10891) - Bump handlebars from 4.7.4 to 4.7.6 ([@openlayers](https://github.com/openlayers))
</details>

View File

@@ -17,7 +17,6 @@
"config/jsdoc/api/plugins/markdown",
"jsdoc-plugin-typescript",
"config/jsdoc/api/plugins/inline-options",
"config/jsdoc/api/plugins/inheritdoc",
"config/jsdoc/api/plugins/events",
"config/jsdoc/api/plugins/observable",
"config/jsdoc/api/plugins/api"

View File

@@ -1,55 +1,107 @@
<table><tr>
<th width="33.3%">Map</th><th width="33.3%">View</th><th width="33.3%">Layers</th>
</tr><tr>
<td><p>A <a href="module-ol_Map-Map.html">map</a> is made of <a href="module-ol_layer_Base-BaseLayer.html">layers</a>, a <a href="module-ol_View-View.html">view</a> to visualize them, <a href="module-ol_interaction_Interaction-Interaction.html">interactions</a> to modify map content and <a href="module-ol_control_Control-Control.html">controls</a> with UI components.</p>
<a href="module-ol_Map-Map.html">Overview</a><br>
<a href="module-ol_Map-Map.html#Map">Creation</a><br>
<a href="module-ol_MapBrowserEvent-MapBrowserEvent.html">Events</a></td>
<td><p>The view manages the visual parameters of the map view, like resolution or rotation.</p>
<a href="module-ol_View-View.html">View</a> with center, projection, resolution and rotation</td>
<td><p>Layers are lightweight containers that get their data from <a href="module-ol_source_Source-Source.html">sources</a>.</p>
<a href="module-ol_layer_Tile-TileLayer.html">ol/layer/Tile</a><br>
<a href="module-ol_layer_Image-ImageLayer.html">ol/layer/Image</a><br>
<a href="module-ol_layer_Vector-VectorLayer.html">ol/layer/Vector</a><br>
<a href="module-ol_layer_VectorTile-VectorTileLayer.html">ol/layer/VectorTile</a></td>
</tr><tr>
<th>Controls</th><th>Interactions</th><th>Sources and formats</th>
</tr><tr>
<td><a href="module-ol_control.html#.defaults">Map default controls</a><br>
<a href="module-ol_control_Control-Control.html">All controls</a>
</td>
<td>
<a href="module-ol_interaction.html#~defaults">Map default interactions</a><br>
Interactions for <a href="module-ol_Feature-Feature.html">vector features</a>
<ul><li><a href="module-ol_interaction_Select-Select.html">ol/interaction/Select</a></li>
<li><a href="module-ol_interaction_Draw-Draw.html">ol/interaction/Draw</a></li>
<li><a href="module-ol_interaction_Modify-Modify.html">ol/interaction/Modify</a></li></ul>
<a href="module-ol_interaction_Interaction-Interaction.html">All interactions</a></td>
<td><a href="module-ol_source_Tile-TileSource.html">Tile sources</a> for <a href="module-ol_layer_Tile-TileLayer.html">ol/layer/Tile</a>
<br><a href="module-ol_source_Image-ImageSource.html">Image sources</a> for <a href="module-ol_layer_Image-ImageLayer.html">ol/layer/Image</a>
<br><a href="module-ol_source_Vector-VectorSource.html">Vector sources</a> for <a href="module-ol_layer_Vector-VectorLayer.html">ol/layer/Vector</a>
<br><a href="module-ol_source_VectorTile-VectorTile.html">Vector tile sources</a> for <a href="module-ol_layer_VectorTile-VectorTileLayer.html">ol/layer/VectorTile</a>
<br><a href="module-ol_format_Feature-FeatureFormat.html">Formats</a> for reading/writing vector data
<br><a href="module-ol_format_WMSCapabilities-WMSCapabilities.html">ol/format/WMSCapabilities</a></td></tr>
<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>
<a href="module-ol_Geolocation.html">ol/Geolocation</a><br>
<a href="module-ol_Overlay-Overlay.html">ol/Overlay</a><br></td>
</tr></table>
&nbsp;
#### API change policy
<div class="row mb-3">
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Map</h4>
<p>A <a href="module-ol_Map-Map.html">map</a> is made of <a href="module-ol_layer_Base-BaseLayer.html">layers</a>, a <a href="module-ol_View-View.html">view</a> to visualize them, <a href="module-ol_interaction_Interaction-Interaction.html">interactions</a> to modify map content and <a href="module-ol_control_Control-Control.html">controls</a> with UI components.</p>
<a href="module-ol_Map-Map.html">Overview</a><br>
<a href="module-ol_Map-Map.html#Map">Creation</a><br>
<a href="module-ol_MapBrowserEvent-MapBrowserEvent.html">Events</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">View</h4>
<p>The view manages the visual parameters of the map view, like resolution or rotation.</p>
<a href="module-ol_View-View.html">View</a> with center, projection, resolution and rotation
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Layers</h4>
<p>Layers are lightweight containers that get their data from <a href="module-ol_source_Source-Source.html">sources</a>.</p>
<a href="module-ol_layer_Tile-TileLayer.html">ol/layer/Tile</a><br>
<a href="module-ol_layer_Image-ImageLayer.html">ol/layer/Image</a><br>
<a href="module-ol_layer_Vector-VectorLayer.html">ol/layer/Vector</a><br>
<a href="module-ol_layer_VectorTile-VectorTileLayer.html">ol/layer/VectorTile</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Controls</h4>
<a href="module-ol_control.html#.defaults">Map default controls</a><br>
<a href="module-ol_control_Control-Control.html">All controls</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Interactions</h4>
<a href="module-ol_interaction.html#~defaults">Map default interactions</a><br>
Interactions for <a href="module-ol_Feature-Feature.html">vector features</a>
<ul><li><a href="module-ol_interaction_Select-Select.html">ol/interaction/Select</a></li>
<li><a href="module-ol_interaction_Draw-Draw.html">ol/interaction/Draw</a></li>
<li><a href="module-ol_interaction_Modify-Modify.html">ol/interaction/Modify</a></li>
</ul>
<a href="module-ol_interaction_Interaction-Interaction.html">All interactions</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Sources and formats</h4>
<a href="module-ol_source_Tile-TileSource.html">Tile sources</a> for <a href="module-ol_layer_Tile-TileLayer.html">ol/layer/Tile</a>
<br><a href="module-ol_source_Image-ImageSource.html">Image sources</a> for <a href="module-ol_layer_Image-ImageLayer.html">ol/layer/Image</a>
<br><a href="module-ol_source_Vector-VectorSource.html">Vector sources</a> for <a href="module-ol_layer_Vector-VectorLayer.html">ol/layer/Vector</a>
<br><a href="module-ol_source_VectorTile-VectorTile.html">Vector tile sources</a> for <a href="module-ol_layer_VectorTile-VectorTileLayer.html">ol/layer/VectorTile</a>
<br><a href="module-ol_format_Feature-FeatureFormat.html">Formats</a> for reading/writing vector data
<br><a href="module-ol_format_WMSCapabilities-WMSCapabilities.html">ol/format/WMSCapabilities</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Projections</h4>
<p>All coordinates and extents need to be provided in view projection (default: EPSG:3857). To transform, use <a href="module-ol_proj.html#.transform">ol/proj#transform()</a> and <a href="module-ol_proj.html#.transformExtent">ol/proj#transformExtent()</a>.</p>
<a href="module-ol_proj.html">ol/proj</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Observable objects</h4>
<p>Changes to all <a href="module-ol_Object-BaseObject.html">ol/Object</a>s can be observed by calling the <a href="module-ol_Object-BaseObject.html#on">object.on('propertychange')</a> method. Listeners receive an <a href="module-ol_Object.ObjectEvent.html">ol/Object.ObjectEvent</a> with information on the changed property and old value.</p>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 py-3">
<div class="card h-100 bg-light">
<div class="card-body">
<h4 class="card-title">Other components</h4>
<a href="module-ol_Geolocation.html">ol/Geolocation</a><br>
<a href="module-ol_Overlay-Overlay.html">ol/Overlay</a><br>
</div>
</div>
</div>
</div>
<h3 class="mb-3">API change policy</h3>
The OpenLayers API consists of
* names and signatures of constructors
* names and signatures of instance methods and properties
* names and signatures of functions
* names of constants
Within a major release series, the API will not be changed. Any changes to the API will be accompanied by a new major release.
*Note*: The API change policy does not cover CSS class names that are used to style the OpenLayers UI. It also does not cover any typedefs and enums.
<ul>
<li>names and signatures of constructors</li>
<li>names and signatures of instance methods and properties</li>
<li>names and signatures of functions</li>
<li>names of constants</li>
</ul>
<p>Within a major release series, the API will not be changed. Any changes to the API will be accompanied by a new major release.</p>
<p class="text-danger">Note: The API change policy does not cover CSS class names that are used to style the OpenLayers UI. It also does not cover any typedefs and enums.</p>

View File

@@ -2,34 +2,29 @@
* Define an @api tag
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
exports.defineTags = function (dictionary) {
dictionary.defineTag('api', {
mustNotHaveValue: true,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
onTagged: function (doclet, tag) {
includeTypes(doclet);
doclet.stability = 'stable';
}
},
});
};
/*
* Based on @api annotations, and assuming that items with no @api annotation
* should not be documented, this plugin removes undocumented symbols
* 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.
@@ -60,7 +55,7 @@ function includeAugments(doclet) {
if (!doclet.fires) {
doclet.fires = [];
}
cls.fires.forEach(function(f) {
cls.fires.forEach(function (f) {
if (doclet.fires.indexOf(f) == -1) {
doclet.fires.push(f);
}
@@ -70,23 +65,20 @@ function includeAugments(doclet) {
if (!doclet.observables) {
doclet.observables = [];
}
cls.observables.forEach(function(f) {
cls.observables.forEach(function (f) {
if (doclet.observables.indexOf(f) == -1) {
doclet.observables.push(f);
}
});
}
cls._hideConstructor = true;
if (!cls.undocumented) {
cls._documented = true;
}
}
}
}
}
function extractTypes(item) {
item.type.names.forEach(function(type) {
item.type.names.forEach(function (type) {
const match = type.match(/^(.*<)?([^>]*)>?$/);
if (match) {
modules[match[2]] = true;
@@ -110,13 +102,45 @@ function includeTypes(doclet) {
}
}
exports.handlers = {
const defaultExports = {};
const path = require('path');
const moduleRoot = path.join(process.cwd(), 'src');
newDoclet: function(e) {
// Tag default exported Identifiers because their name should be the same as the module name.
exports.astNodeVisitor = {
visitNode: function (node, e, parser, currentSourceName) {
if (node.parent && node.parent.type === 'ExportDefaultDeclaration') {
const modulePath = path
.relative(moduleRoot, currentSourceName)
.replace(/\.js$/, '');
const exportName =
'module:' +
modulePath.replace(/\\/g, '/') +
(node.name ? '~' + node.name : '');
defaultExports[exportName] = true;
}
},
};
function sortOtherMembers(doclet) {
if (doclet.fires) {
doclet.fires.sort(function (a, b) {
return a.split(/#?event:/)[1] < b.split(/#?event:/)[1] ? -1 : 1;
});
}
if (doclet.observables) {
doclet.observables.sort(function (a, b) {
return a.name < b.name ? -1 : 1;
});
}
}
exports.handlers = {
newDoclet: function (e) {
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') {
if (!(doclet.longname in classes)) {
@@ -131,24 +155,16 @@ exports.handlers = {
}
},
parseComplete: function(e) {
parseComplete: function (e) {
const doclets = e.doclets;
const byLongname = doclets.index.longname;
for (let i = doclets.length - 1; i >= 0; --i) {
const doclet = doclets[i];
if (doclet.stability) {
if (doclet.kind == 'class') {
includeAugments(doclet);
}
if (doclet.fires) {
doclet.fires.sort(function(a, b) {
return a.split(/#?event:/)[1] < b.split(/#?event:/)[1] ? -1 : 1;
});
}
if (doclet.observables) {
doclet.observables.sort(function(a, b) {
return a.name < b.name ? -1 : 1;
});
}
sortOtherMembers(doclet);
// Always document namespaces and items with stability annotation
continue;
}
@@ -159,20 +175,39 @@ 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.
doclet._hideConstructor = true;
includeAugments(doclet);
} else if (!doclet._hideConstructor && !(doclet.kind == 'typedef' && doclet.longname in types)) {
sortOtherMembers(doclet);
} else if (!doclet._hideConstructor) {
// Remove all other undocumented symbols
doclet.undocumented = true;
}
if (doclet._documented) {
delete doclet.undocumented;
if (
doclet.memberof &&
byLongname[doclet.memberof] &&
byLongname[doclet.memberof][0].isEnum &&
!byLongname[doclet.memberof][0].properties.some((p) => p.stability)
) {
byLongname[doclet.memberof][0].undocumented = true;
}
}
}
},
processingComplete(e) {
const byLongname = e.doclets.index.longname;
for (const name in defaultExports) {
if (!(name in byLongname)) {
throw new Error(
`missing ${name} in doclet index, did you forget a @module tag?`
);
}
byLongname[name].forEach(function (doclet) {
doclet.isDefaultExport = true;
});
}
},
};

View File

@@ -1,8 +1,7 @@
const events = {};
exports.handlers = {
newDoclet: function(e) {
newDoclet: function (e) {
const doclet = e.doclet;
if (doclet.kind !== 'event') {
return;
@@ -15,7 +14,7 @@ exports.handlers = {
events[cls].push(doclet.longname);
},
parseComplete: function(e) {
parseComplete: function (e) {
const doclets = e.doclets;
for (let i = 0, ii = doclets.length - 1; i < ii; ++i) {
const doclet = doclets[i];
@@ -34,6 +33,5 @@ exports.handlers = {
}
}
}
}
},
};

View File

@@ -1,110 +0,0 @@
/*
* This is a hack to prevent inheritDoc tags from entirely removing
* documentation of the method that inherits the documentation.
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('inheritDoc', {
mustNotHaveValue: true,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
doclet.inheritdoc = true;
}
});
};
const lookup = {};
const incompleteByClass = {};
const keepKeys = ['comment', 'meta', 'name', 'memberof', 'longname', 'augment',
'stability'];
exports.handlers = {
newDoclet: function(e) {
const doclet = e.doclet;
let incompletes;
if (!(doclet.longname in lookup)) {
lookup[doclet.longname] = [];
}
lookup[doclet.longname].push(doclet);
if (doclet.inheritdoc) {
if (!(doclet.memberof in incompleteByClass)) {
incompleteByClass[doclet.memberof] = [];
}
incompletes = incompleteByClass[doclet.memberof];
if (incompletes.indexOf(doclet.name) == -1) {
incompletes.push(doclet.name);
}
}
},
parseComplete: function(e) {
let ancestors, candidate, candidates, doclet, i, j, k, l, key;
let incompleteDoclet, 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);
}
}
}
}
// 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;
}
}
}
// 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;
}
}
}
}
}
}
}
}
}
};

View File

@@ -6,12 +6,11 @@
const properties = {};
exports.handlers = {
/**
* Collects all typedefs, keyed by longname
* @param {Object} e Event object.
*/
newDoclet: function(e) {
newDoclet: function (e) {
if (e.doclet.kind == 'typedef' && e.doclet.properties) {
properties[e.doclet.longname] = e.doclet.properties;
}
@@ -22,7 +21,7 @@ exports.handlers = {
* collected typedefs.
* @param {Object} e Event object.
*/
parseComplete: function(e) {
parseComplete: function (e) {
const doclets = e.doclets;
for (let i = 0, ii = doclets.length; i < ii; ++i) {
const doclet = doclets[i];
@@ -34,16 +33,18 @@ exports.handlers = {
const type = param.type.names[0];
if (type in properties) {
param.type.names[0] = type;
params.push.apply(params, properties[type].map(p => {
const property = Object.assign({}, p);
property.name = `${param.name}.${property.name}`;
return property;
}));
params.push.apply(
params,
properties[type].map((p) => {
const property = Object.assign({}, p);
property.name = `${param.name}.${property.name}`;
return property;
})
);
}
}
}
}
}
}
},
};

View File

@@ -19,7 +19,7 @@ const tags = [
'properties',
'returns',
'see',
'summary'
'summary',
];
const hasOwnProp = Object.prototype.hasOwnProperty;
@@ -27,32 +27,32 @@ const hasOwnProp = Object.prototype.hasOwnProperty;
const markedRenderer = new marked.Renderer();
// Allow prettyprint to work on inline code samples
markedRenderer.code = function(code, language) {
markedRenderer.code = function (code, language) {
const langClass = language ? ' lang-' + language : '';
return format('<pre class="prettyprint source%s"><code>%s</code></pre>',
langClass, escapeCode(code));
return format(
'<pre class="prettyprint source%s"><code>%s</code></pre>',
langClass,
escapeCode(code)
);
};
function escapeCode(source) {
return source.replace(/</g, '&lt;')
return source
.replace(/</g, '&lt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#39;');
}
function escapeUnderscoresAndTildes(source) {
return source.replace(/\{@[^}\r\n]+\}/g, function(wholeMatch) {
return wholeMatch
.replace(/(^|[^\\])_/g, '$1\\_')
.replace('~', '&tilde;');
return source.replace(/\{@[^}\r\n]+\}/g, function (wholeMatch) {
return wholeMatch.replace(/(^|[^\\])_/g, '$1\\_').replace('~', '&tilde;');
});
}
function unencodeQuotesAndTildes(source) {
return source.replace(/\{@[^}\r\n]+\}/g, function(wholeMatch) {
return wholeMatch
.replace(/&quot;/g, '"')
.replace(/&tilde;/g, '~');
return source.replace(/\{@[^}\r\n]+\}/g, function (wholeMatch) {
return wholeMatch.replace(/&quot;/g, '"').replace(/&tilde;/g, '~');
});
}
@@ -63,7 +63,7 @@ function parse(source) {
result = marked(source, {renderer: markedRenderer})
.replace(/\s+$/, '')
.replace(/&#39;/g, '\'');
.replace(/&#39;/g, "'");
result = unencodeQuotesAndTildes(result);
@@ -82,15 +82,18 @@ function shouldProcessString(tagName, text) {
}
function process(doclet) {
tags.forEach(function(tag) {
tags.forEach(function (tag) {
if (!hasOwnProp.call(doclet, tag)) {
return;
}
if (typeof doclet[tag] === 'string' && shouldProcessString(tag, doclet[tag])) {
if (
typeof doclet[tag] === 'string' &&
shouldProcessString(tag, doclet[tag])
) {
doclet[tag] = parse(doclet[tag]);
} else if (Array.isArray(doclet[tag])) {
doclet[tag].forEach(function(value, index, original) {
doclet[tag].forEach(function (value, index, original) {
const inner = {};
inner[tag] = value;
@@ -103,9 +106,8 @@ function process(doclet) {
});
}
exports.handlers = {
newDoclet: function(e) {
newDoclet: function (e) {
process(e.doclet);
}
},
};

View File

@@ -2,15 +2,14 @@ const classes = {};
const observables = {};
exports.handlers = {
newDoclet: function(e) {
newDoclet: function (e) {
const doclet = e.doclet;
if (doclet.kind == 'class' && !(doclet.longname in classes)) {
classes[doclet.longname] = doclet;
}
},
parseComplete: function(e) {
parseComplete: function (e) {
const doclets = e.doclets;
let cls, doclet, event, i, ii, observable;
for (i = 0, ii = doclets.length - 1; i < ii; ++i) {
@@ -26,8 +25,8 @@ exports.handlers = {
}
observable = observables[key];
observable.name = name;
observable.readonly = typeof observable.readonly == 'boolean' ?
observable.readonly : true;
observable.readonly =
typeof observable.readonly == 'boolean' ? observable.readonly : true;
if (doclet.name.indexOf('get') === 0) {
observable.type = doclet.returns[0].type;
observable.description = doclet.returns[0].description;
@@ -53,17 +52,16 @@ exports.handlers = {
}
}
}
}
},
};
exports.defineTags = function(dictionary) {
exports.defineTags = function (dictionary) {
dictionary.defineTag('observable', {
mustNotHaveValue: true,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
onTagged: function (doclet, tag) {
doclet.observable = '';
}
},
});
};

View File

@@ -24,7 +24,7 @@ The second line tells the Closure compiler the type of the argument.
The third line (`@api`) marks the method as part of the api and thus exportable. Without such an api annotation, the method will not be documented in the generated API documentation. Symbols without an api annotation will also not be exportable.
The `@api` annotation can be used in conjunction with the `@inheritDoc` annotation to export a symbol that is documented on a parent class (where the method may be abstract). In general, `@api` annotations should never be used on abstract methods (only on their implementations).
In general, `@api` annotations should never be used on abstract methods (only on their implementations).
### Events

View File

@@ -4,7 +4,7 @@ const hasOwnProp = Object.prototype.hasOwnProperty;
// Work around an issue with hasOwnProperty in JSDoc's templateHelper.js.
//TODO Fix in JSDoc.
Object.prototype.hasOwnProperty = function(property) {
Object.prototype.hasOwnProperty = function (property) {
return property in this;
};
@@ -14,7 +14,6 @@ const path = require('jsdoc/lib/jsdoc/path');
const taffy = require('taffydb').taffy;
const handle = require('jsdoc/lib/jsdoc/util/error').handle;
const helper = require('jsdoc/lib/jsdoc/util/templateHelper');
const _ = require('underscore');
const htmlsafe = helper.htmlsafe;
const linkto = helper.linkto;
const resolveAuthorLinks = helper.resolveAuthorLinks;
@@ -32,7 +31,11 @@ function find(spec) {
}
function tutoriallink(tutorial) {
return helper.toTutorial(tutorial, null, {tag: 'em', classname: 'disabled', prefix: 'Tutorial: '});
return helper.toTutorial(tutorial, null, {
tag: 'em',
classname: 'disabled',
prefix: 'Tutorial: ',
});
}
function getAncestorLinks(doclet) {
@@ -56,8 +59,12 @@ function needsSignature(doclet) {
// function and class definitions always get a signature
if (doclet.kind === 'function' || doclet.kind === 'class') {
needsSig = true;
} else if (doclet.kind === 'typedef' && doclet.type && doclet.type.names &&
doclet.type.names.length) {
} else if (
doclet.kind === 'typedef' &&
doclet.type &&
doclet.type.names &&
doclet.type.names.length
) {
// typedefs that contain functions get a signature, too
for (let i = 0, l = doclet.type.names.length; i < l; i++) {
if (doclet.type.names[i].toLowerCase() === 'function') {
@@ -82,22 +89,30 @@ function addSignatureReturns(f) {
f.signature = '<span class="signature">' + (f.signature || '') + '</span>';
if (returnTypes.length) {
f.signature += '<span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">' + (returnTypes.length ? '{' + returnTypes.join('|') + '}' : '') + '</span>';
f.signature +=
'<span class="fa fa-arrow-circle-right"></span><span class="type-signature returnType">' +
(returnTypes.length ? '{' + returnTypes.join('|') + '}' : '') +
'</span>';
}
}
function addSignatureTypes(f) {
const types = helper.getSignatureTypes(f);
f.signature = (f.signature || '') + '<span class="type-signature">' + (types.length ? ' :' + types.join('|') : '') + ' </span>';
f.signature =
(f.signature || '') +
'<span class="type-signature">' +
(types.length ? ' :' + types.join('|') : '') +
' </span>';
}
function shortenPaths(files, commonPrefix) {
// always use forward slashes
const regexp = new RegExp('\\\\', 'g');
Object.keys(files).forEach(function(file) {
files[file].shortened = files[file].resolved.replace(commonPrefix, '')
Object.keys(files).forEach(function (file) {
files[file].shortened = files[file].resolved
.replace(commonPrefix, '')
.replace(regexp, '/');
});
@@ -113,9 +128,10 @@ function getPathFromDoclet(doclet) {
return;
}
const filepath = doclet.meta.path && doclet.meta.path !== 'null' ?
doclet.meta.path + '/' + doclet.meta.filename.split(/[\/\\]/).pop() :
doclet.meta.filename;
const filepath =
doclet.meta.path && doclet.meta.path !== 'null'
? doclet.meta.path + '/' + doclet.meta.filename.split(/[\/\\]/).pop()
: doclet.meta.filename;
return filepath;
}
@@ -127,7 +143,7 @@ function generate(title, docs, filename, resolveLinks) {
filename: filename,
title: title,
docs: docs,
packageInfo: (find({kind: 'package'}) || []) [0]
packageInfo: (find({kind: 'package'}) || [])[0],
};
const outpath = path.join(outdir, filename);
@@ -141,7 +157,7 @@ function generate(title, docs, filename, resolveLinks) {
}
function generateSourceFiles(sourceFiles) {
Object.keys(sourceFiles).forEach(function(file) {
Object.keys(sourceFiles).forEach(function (file) {
let source;
// links are keyed to the shortened path in each doclet's `meta.filename` property
const sourceOutfile = helper.getUniqueFilename(sourceFiles[file].shortened);
@@ -150,14 +166,20 @@ function generateSourceFiles(sourceFiles) {
try {
source = {
kind: 'source',
code: helper.htmlsafe(fs.readFileSync(sourceFiles[file].resolved, 'utf8'))
code: helper.htmlsafe(
fs.readFileSync(sourceFiles[file].resolved, 'utf8')
),
};
} catch (e) {
handle(e);
}
generate('Source: ' + sourceFiles[file].shortened, [source], sourceOutfile,
false);
generate(
'Source: ' + sourceFiles[file].shortened,
[source],
sourceOutfile,
false
);
});
}
@@ -176,22 +198,25 @@ function attachModuleSymbols(doclets, modules) {
const symbols = {};
// build a lookup table
doclets.forEach(function(symbol) {
doclets.forEach(function (symbol) {
symbols[symbol.longname] = symbol;
});
modules.forEach(function(module) {
modules.forEach(function (module) {
if (symbols[module.longname]) {
module.module = symbols[module.longname];
module.module.name = module.module.name.replace('module:', 'require("') + '")';
module.module.name =
module.module.name.replace('module:', 'require("') + '")';
}
});
}
function getPrettyName(longname) {
return longname
.split('~')[0]
.replace('module:', '');
function getPrettyName(doclet) {
const fullname = doclet.longname.replace('module:', '');
if (doclet.isDefaultExport) {
return fullname.split('~')[0];
}
return fullname;
}
/**
@@ -209,11 +234,82 @@ function getPrettyName(longname) {
*/
function buildNav(members) {
const nav = [];
// merge namespaces and classes, then sort
const merged = members.modules.concat(members.classes);
merged.sort(function(a, b) {
const prettyNameA = getPrettyName(a.longname).toLowerCase();
const prettyNameB = getPrettyName(b.longname).toLowerCase();
members.classes.forEach(function (v) {
// exclude interfaces from sidebar
if (v.interface !== true) {
nav.push({
type: 'class',
longname: v.longname,
prettyname: getPrettyName(v),
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,
}),
});
}
});
members.modules.forEach(function (v) {
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),
name: v.name,
members: members,
methods: methods,
typedefs: typedefs,
fires: v.fires,
events: events,
});
}
});
nav.sort(function (a, b) {
const prettyNameA = a.prettyname.toLowerCase();
const prettyNameB = b.prettyname.toLowerCase();
if (prettyNameA > prettyNameB) {
return 1;
}
@@ -222,85 +318,15 @@ function buildNav(members) {
}
return 0;
});
_.each(merged, function(v) {
// exclude interfaces from sidebar
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 have more to show than just classes
const numItems = classes.length - 1 + members.length + methods.length + typedefs.length + events.length;
if (!classes.length || (numItems > 0 && numItems !== classes.length)) {
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
});
}
}
});
return nav;
}
/**
* @param {Object} taffyData See <http://taffydb.com/>.
* @param {Object} opts Options.
* @param {Object} tutorials Tutorials.
*/
exports.publish = function(taffyData, opts, tutorials) {
exports.publish = function (taffyData, opts, tutorials) {
data = taffyData;
const conf = env.conf.templates || {};
@@ -329,26 +355,30 @@ exports.publish = function(taffyData, opts, tutorials) {
let sourceFiles = {};
const sourceFilePaths = [];
data().each(function(doclet) {
data().each(function (doclet) {
doclet.attribs = '';
if (doclet.examples) {
doclet.examples = doclet.examples.map(function(example) {
doclet.examples = doclet.examples.map(function (example) {
let caption, code;
if (example.match(/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) {
if (
example.match(
/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i
)
) {
caption = RegExp.$1;
code = RegExp.$3;
}
return {
caption: caption || '',
code: code || example
code: code || example,
};
});
}
if (doclet.see) {
doclet.see.forEach(function(seeItem, i) {
doclet.see.forEach(function (seeItem, i) {
doclet.see[i] = hashToLink(doclet, seeItem);
});
}
@@ -361,7 +391,7 @@ exports.publish = function(taffyData, opts, tutorials) {
resolvedSourcePath = resolveSourcePath(sourcePath);
sourceFiles[sourcePath] = {
resolved: resolvedSourcePath,
shortened: null
shortened: null,
};
sourceFilePaths.push(resolvedSourcePath);
}
@@ -373,7 +403,7 @@ exports.publish = function(taffyData, opts, tutorials) {
const fromDir = path.join(templatePath, 'static');
const staticFiles = fs.ls(fromDir, 3);
staticFiles.forEach(function(fileName) {
staticFiles.forEach(function (fileName) {
const toDir = fs.toDir(fileName.replace(fromDir, outdir));
fs.mkPath(toDir);
fs.copyFileSync(fileName, toDir);
@@ -385,15 +415,22 @@ exports.publish = function(taffyData, opts, tutorials) {
let staticFileScanner;
if (conf['default'].staticFiles) {
staticFilePaths = conf['default'].staticFiles.paths || [];
staticFileFilter = new (require('jsdoc/lib/jsdoc/src/filter')).Filter(conf['default'].staticFiles);
staticFileScanner = new (require('jsdoc/lib/jsdoc/src/scanner')).Scanner();
staticFileFilter = new (require('jsdoc/lib/jsdoc/src/filter').Filter)(
conf['default'].staticFiles
);
staticFileScanner = new (require('jsdoc/lib/jsdoc/src/scanner').Scanner)();
staticFilePaths.forEach(function(filePath) {
const extraStaticFiles = staticFileScanner.scan([filePath], 10, staticFileFilter);
staticFilePaths.forEach(function (filePath) {
const extraStaticFiles = staticFileScanner.scan(
[filePath],
10,
staticFileFilter
);
extraStaticFiles.forEach(function(fileName) {
const sourcePath = fs.statSync(filePath).isDirectory() ? filePath :
path.dirname(filePath);
extraStaticFiles.forEach(function (fileName) {
const sourcePath = fs.statSync(filePath).isDirectory()
? filePath
: path.dirname(filePath);
const toDir = fs.toDir(fileName.replace(sourcePath, outdir));
fs.mkPath(toDir);
fs.copyFileSync(fileName, toDir);
@@ -404,7 +441,7 @@ exports.publish = function(taffyData, opts, tutorials) {
if (sourceFilePaths.length) {
sourceFiles = shortenPaths(sourceFiles, path.commonPrefix(sourceFilePaths));
}
data().each(function(doclet) {
data().each(function (doclet) {
const url = helper.createLink(doclet);
helper.registerLink(doclet.longname, url);
@@ -419,7 +456,7 @@ exports.publish = function(taffyData, opts, tutorials) {
}
});
data().each(function(doclet) {
data().each(function (doclet) {
const url = helper.longnameToUrl[doclet.longname];
if (url.indexOf('#') > -1) {
@@ -435,7 +472,7 @@ exports.publish = function(taffyData, opts, tutorials) {
});
// do this after the urls have all been generated
data().each(function(doclet) {
data().each(function (doclet) {
doclet.ancestors = getAncestorLinks(doclet);
if (doclet.kind === 'member') {
@@ -461,8 +498,10 @@ exports.publish = function(taffyData, opts, tutorials) {
// once for all
view.nav = buildNav(members);
attachModuleSymbols(find({kind: ['class', 'function'], longname: {left: 'module:'}}),
members.modules);
attachModuleSymbols(
find({kind: ['class', 'function'], longname: {left: 'module:'}}),
members.modules
);
// only output pretty-printed source files if requested; do this before generating any other
// pages, so the other pages can link to the source files
@@ -477,9 +516,18 @@ exports.publish = function(taffyData, opts, tutorials) {
// index page displays information from package.json and lists files
const files = find({kind: 'file'});
generate('Index',
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}].concat(files),
indexUrl);
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
);
// set up the lists that we'll use to generate pages
const classes = taffy(members.classes);
@@ -492,27 +540,47 @@ exports.publish = function(taffyData, opts, tutorials) {
if (hasOwnProp.call(helper.longnameToUrl, longname)) {
const myClasses = helper.find(classes, {longname: longname});
if (myClasses.length) {
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname]);
generate(
'Class: ' + myClasses[0].name,
myClasses,
helper.longnameToUrl[longname]
);
}
const myModules = helper.find(modules, {longname: longname});
if (myModules.length) {
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
generate(
'Module: ' + myModules[0].name,
myModules,
helper.longnameToUrl[longname]
);
}
const myNamespaces = helper.find(namespaces, {longname: longname});
if (myNamespaces.length) {
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
generate(
'Namespace: ' + myNamespaces[0].name,
myNamespaces,
helper.longnameToUrl[longname]
);
}
const myMixins = helper.find(mixins, {longname: longname});
if (myMixins.length) {
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
generate(
'Mixin: ' + myMixins[0].name,
myMixins,
helper.longnameToUrl[longname]
);
}
const myExternals = helper.find(externals, {longname: longname});
if (myExternals.length) {
generate('External: ' + myExternals[0].name, myExternals, helper.longnameToUrl[longname]);
generate(
'External: ' + myExternals[0].name,
myExternals,
helper.longnameToUrl[longname]
);
}
}
}
@@ -523,7 +591,7 @@ exports.publish = function(taffyData, opts, tutorials) {
title: title,
header: tutorial.title,
content: tutorial.parse(),
children: tutorial.children
children: tutorial.children,
};
let html = view.render('tutorial.tmpl', tutorialData);
@@ -536,8 +604,12 @@ exports.publish = function(taffyData, opts, tutorials) {
// tutorials can have only one parent so there is no risk for loops
function saveChildren(node) {
node.children.forEach(function(child) {
generateTutorial('Tutorial: ' + child.title, child, helper.tutorialToUrl(child.name));
node.children.forEach(function (child) {
generateTutorial(
'Tutorial: ' + child.title,
child,
helper.tutorialToUrl(child.name)
);
saveChildren(child);
});
}

View File

@@ -1,229 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
<font-face units-per-em="1200" ascent="960" descent="-240" />
<missing-glyph horiz-adv-x="500" />
<glyph />
<glyph />
<glyph unicode="&#xd;" />
<glyph unicode=" " />
<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#x2000;" horiz-adv-x="652" />
<glyph unicode="&#x2001;" horiz-adv-x="1304" />
<glyph unicode="&#x2002;" horiz-adv-x="652" />
<glyph unicode="&#x2003;" horiz-adv-x="1304" />
<glyph unicode="&#x2004;" horiz-adv-x="434" />
<glyph unicode="&#x2005;" horiz-adv-x="326" />
<glyph unicode="&#x2006;" horiz-adv-x="217" />
<glyph unicode="&#x2007;" horiz-adv-x="217" />
<glyph unicode="&#x2008;" horiz-adv-x="163" />
<glyph unicode="&#x2009;" horiz-adv-x="260" />
<glyph unicode="&#x200a;" horiz-adv-x="72" />
<glyph unicode="&#x202f;" horiz-adv-x="260" />
<glyph unicode="&#x205f;" horiz-adv-x="326" />
<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
<glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
<glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
<glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
<glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
<glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
<glyph unicode="&#xe143;" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
<glyph unicode="&#xe144;" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
<glyph unicode="&#xe162;" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 61 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,101 +1,263 @@
$(function () {
// Search Items
$('#include_modules').change(function (e) {
console.log('change');
if ($(this).is(':checked')) {
'use strict';
} else {
// Allow user configuration?
const allowRegex = true;
const minInputForSearch = 1;
const minInputForFullText = 2;
const expandAllOnInputWithoutSearch = true;
function constructRegex(searchTerm, makeRe, allowRegex) {
try {
if (allowRegex) {
return makeRe(searchTerm);
}
} catch (e) {
}
});
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, .itemMembers').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('.itemMembers');
// Do the weight thing
$classEntry.removeData('weight');
$classEntry.show();
const weight = getSearchWeight(value, $classEntry);
$classEntry.data('weight', weight);
$members.show();
$classEntry.show();
$item.show();
}
});
$(".navigation ul.list li.item:visible")
.sort(weightSorter) // sort elements
.appendTo(".navigation ul.list"); // append again to the list
} else {
$el.find('.item, .itemMembers').show();
}
$el.find('.list').scrollTop(0);
});
// Toggle when click an item element
$('.navigation').on('click', '.toggle', function (e) {
$(this).parent().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();
// In case of invalid regexp fall back to non-regexp, but still allow . to match /
return makeRe(searchTerm.replace(/[.*+?^${}()|[\]\\]/g, '\\$&').replace(/\\\./g, '[./]'));
}
// Auto resizing on navigation
function getWeightFunction(searchTerm, allowRegex) {
function makeRe(searchTerm) {
return {
begin: new RegExp('\\b' + searchTerm), // Begin matches word boundary
baseName: new RegExp('\\b' + searchTerm + '[^/]*$'), // Begin matches word boundary of class / module name
fullName: new RegExp('\\b' + searchTerm + '(?:[~.]|$)'), // Complete word(s) of class / module matches
completeName: new RegExp('^' + searchTerm + '$') // Match from start to finish
}
}
const re = constructRegex(searchTerm, makeRe, allowRegex);
return function (matchedItem, beginOnly) {
// We could get smarter on the weight here
const name = matchedItem.dataset.name;
if (beginOnly) {
return re.baseName.test(name) ? 100 : 1;
}
// If everything else is equal, prefer shorter names, and prefer classes over modules
let weight = 10000 + matchedItem.dataset.longname.length - name.length * 100;
if (name.match(re.begin)) {
weight += 10000;
if (re.baseName.test(name)) {
weight += 10000;
if (re.fullName.test(name)) {
weight += 10000;
if (re.completeName.test(name)) {
weight += 10000;
}
}
}
}
return weight;
}
}
const search = (function () {
const $navList = $('.navigation-list');
const navListNode = $navList.get(0);
let $classItems;
let $members;
let stateClass = (function () {
$navList.removeClass('search-started searching');
$navList.addClass('search-empty');
return 'search-empty';
})();
let manualToggles = {};
// Show an item related a current documentation automatically
const longname = $('.page-title').data('filename')
.replace(/\.[a-z]+$/, '')
.replace('module-', 'module:')
.replace(/_/g, '/')
.replace(/-/g, '~');
const currentItem = navListNode.querySelector('.item[data-longname="' + longname + '"]');
if (currentItem) {
$navList.prepend(currentItem);
}
return {
$navList: $navList,
$currentItem: currentItem ? $(currentItem) : undefined,
lastSearchTerm: undefined,
lastState: {},
getClassList: function () {
return $classItems || ($classItems = $navList.find('li.item'));
},
getMembers: function () {
return $members || ($members = $navList.find('.item li'));
},
changeStateClass: function (newClass) {
if (newClass !== stateClass) {
navListNode.classList.remove(stateClass);
navListNode.classList.add(newClass);
stateClass = newClass;
}
},
manualToggle: function ($node, show) {
$node.addClass('toggle-manual');
$node.toggleClass('toggle-manual-hide', !show);
$node.toggleClass('toggle-manual-show', show);
manualToggles[$node.data('longname')] = $node;
},
clearManualToggles: function() {
for (let clsName in manualToggles) {
manualToggles[clsName].removeClass('toggle-manual toggle-manual-show toggle-manual-hide');
}
manualToggles = {};
},
};
})();
const dummy = {subItems: {}};
function clearOldMatches(lastState, searchState) {
for (let itemName in lastState) {
const lastItem = lastState[itemName];
const item = searchState[itemName];
if (!item) {
lastItem.item.classList.remove('match');
}
if (lastItem.subItems) {
clearOldMatches(lastItem.subItems, (item || dummy).subItems);
}
}
}
function doSearch(searchTerm) {
searchTerm = searchTerm.toLowerCase();
const lastSearchTerm = search.lastSearchTerm;
if (searchTerm === lastSearchTerm) {
return;
}
// Avoid layout reflow by scrolling to top first.
search.$navList.scrollTop(0);
search.lastSearchTerm = searchTerm;
search.clearManualToggles();
if (searchTerm.length < minInputForSearch) {
const state = searchTerm.length && expandAllOnInputWithoutSearch ? 'search-started' : 'search-empty';
search.changeStateClass(state);
if (lastSearchTerm !== undefined && lastSearchTerm.length >= minInputForSearch) {
// Restore the original, sorted order
search.$navList.append(search.getClassList());
}
if (state === 'search-empty' && search.$currentItem) {
search.manualToggle(search.$currentItem, true);
}
} else {
search.changeStateClass('searching');
searchTerm = searchTerm.toLowerCase();
const beginOnly = searchTerm.length < minInputForFullText;
const getSearchWeight = getWeightFunction(searchTerm, allowRegex);
const re = constructRegex(searchTerm, function (searchTerm) {
return new RegExp((beginOnly ? '\\b' : '') + searchTerm);
}, allowRegex);
const navList = search.$navList.get(0);
const classes = [];
const searchState = {};
search.getClassList().each(function (i, classEntry) {
const className = classEntry.dataset.longname;
if (!(className in searchState) && re.test(classEntry.dataset.name)) {
const cls = searchState[className] = {
item: classEntry,
// Do the weight thing
weight: getSearchWeight(classEntry, beginOnly) * 100000,
subItems: {}
};
classes.push(cls);
classEntry.classList.add('match');
}
});
search.getMembers().each(function (i, li) {
const name = li.dataset.name;
if (re.test(name)) {
const itemMember = li.parentElement.parentElement;
const classEntry = itemMember.parentElement;
const className = classEntry.dataset.longname;
let cls = searchState[className];
if (!cls) {
cls = searchState[className] = {
item: classEntry,
weight: 0,
subItems: {}
};
classes.push(cls);
classEntry.classList.add('match');
}
cls.weight += getSearchWeight(li, true);
const memberType = itemMember.dataset.type;
let members = cls.subItems[memberType];
if (!members) {
members = cls.subItems[memberType] = {
item: itemMember,
subItems: {}
};
itemMember.classList.add('match');
}
members.subItems[name] = { item: li };
li.classList.add('match');
}
});
clearOldMatches(search.lastState, searchState);
search.lastState = searchState;
classes.sort(function (a, b) {
return a.weight - b.weight;
});
for (let i = classes.length - 1; i >= 0; --i) {
navList.appendChild(classes[i].item);
}
}
}
const searchInput = $('#search').get(0);
// Skip searches when typing fast.
let key;
function queueSearch() {
if (!key) {
key = setTimeout(function () {
key = undefined;
const searchTerm = searchInput.value;
doSearch(searchTerm);
}, 0);
}
}
// Search Items
searchInput.addEventListener('input', queueSearch);
doSearch(searchInput.value);
// Toggle when click an item element
search.$navList.on('click', '.toggle', function (e) {
if (event.target.tagName.toLowerCase() === 'a') {
return;
}
const clsItem = $(this).closest('.item');
const show = !clsItem.hasClass('toggle-manual-show');
search.manualToggle(clsItem, show);
});
// Auto resizing on navigation
var _onResize = function () {
var height = $(window).height();
var height_w = $(window).height();
var height_s = $('section').height();
var $el = $('.navigation');
$el.height(height).find('.list').height(height - 133);
};
var dif_h = height_w - height_s;
if (window.matchMedia("(min-width: 768px)").matches) {
if (dif_h >=0){
$('.navigation').height(height_s+dif_h+74);
$('.navigation-list').height(height_s+dif_h)
}
else {
$('.navigation').height(height_s+74);
$('.navigation-list').height(height_s-60);
}
}
else{
$('.navigation').height(220);
$('.navigation-list').height(140);
}
}
$(window).on('resize', _onResize);
_onResize();
@@ -137,22 +299,4 @@ $(function () {
'<a href="' + link + textParts[1].replace('line ', '#L') + '">' +
textParts[1] + '</a>';
});
// 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
anchors.removeClass('highlighted');
if (activeHash.length > 0) {
anchors.filter(activeHash).addClass('highlighted');
}
};
$(window).on('hashchange', _onHashChange);
_onHashChange();
});

File diff suppressed because one or more lines are too long

View File

@@ -1,57 +1,33 @@
@import url(https://fonts.googleapis.com/css?family=Quattrocento+Sans:400,400italic,700);
.navbar-inverse {
border: 0;
}
.navbar-inverse .navbar-inner {
.navbar{
background: #1F6B75;
height: 50px;
text-shadow: 1px 1px 2px rgba(0,0,0,0.25);
}
.navbar-inverse .brand {
color: #fff;
font-size: 160%;
font-weight: bold;
position: absolute;
top: 6px;
left: 16px;
}
.navbar-inverse .brand:hover,
.navbar-inverse .brand:focus {
color: #aae1e9;
text-decoration: none;
}
.navbar-inverse .brand img {
width: 35px;
.navbar-brand img {
height: 35px;
vertical-align: middle;
margin-right: 5px;
border:0;
display: inline-block;
}
.navbar-inverse .container {
padding: 0;
}
.navbar-inverse .navbar-nav>li>a {
.navbar-brand {
color: #fff;
}
.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;
font-size: 160%;
font-weight: bold;
padding: 8px 0;
}
body {
padding-top: 50px;
padding-top: 55px;
}
.nameContainer .anchor {
padding-top: 50px;
margin-top: -50px;
padding-top: 70px;
margin-top: -70px;
width: 0px;
height: 0px;
}
.nameContainer .anchor.highlighted + h4 {
/* Highlighting current anchor */
.nameContainer .anchor:target + h4 {
background-color: #faebcc;
}
a {
@@ -60,6 +36,14 @@ a {
-webkit-transition: all .2s;
transition: all .2s;
}
a {
color: #03899c;
text-decoration:none
}
a:hover, a:focus, footer a:hover, footer a:focus {
color: #ff7a00;
text-decoration:none
}
.navigation li {
color: #888;
}
@@ -67,7 +51,6 @@ a {
html,
body {
font-family: "Quattrocento Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
font-size: 1.0em;
background-color: #fff;
}
ul,
@@ -78,27 +61,28 @@ ol {
li {
list-style-type: none;
}
#wrap {
position: relative;
}
::-webkit-scrollbar {
width: 8px;
background-color: transparent;
}
::-webkit-scrollbar-thumb {
background-color: gray;
background-color: transparent;
border-radius: 4px;
}
.navigation {
position: fixed;
float: left;
width: 250px;
height: 100%;
background-color: #2a2a2a;
}
@media (max-width:768px) {
.navigation {
max-height:220px;
}
.navigation-list{
height:140px;
}
}
.navigation .applicationName {
margin: 0;
margin-top: 15px;
padding: 10px 15px;
font: bold 1.25em Helvetica;
color: #fff;
@@ -116,14 +100,14 @@ li {
vertical-align: text-bottom;
}
.navigation .search {
padding: 10px 15px;
padding: 1rem;
}
.navigation .search input {
background-color: #333;
color: #fff;
border-color: #555;
}
.navigation .list {
.navigation .navigation-list {
padding: 10px 15px 0 15px;
position: relative;
overflow: auto;
@@ -135,6 +119,24 @@ li {
border-bottom: 1px solid #333;
}
.navigation .fa {
margin-right: 3px;
flex-shrink: 0;
}
.navigation .item .fa:before {
display: inline-block;
}
.navigation .item.toggle-manual .fa:before {
transition: transform .1s;
}
.navigation .item-class.toggle-manual-show .fa:before {
/* With 90deg the icon slightly slides left at transition end */
transform: rotate(89.9deg);
}
.navigation .item-module.toggle-manual-show .fa:before {
transform: rotate(45deg);
}
.navigation li.perfect-match {
border: 5px solid orange;
}
@@ -147,8 +149,8 @@ li {
}
.navigation li.item .title {
cursor: pointer;
position: relative;
display: block;
display: -ms-flexbox;
display: flex;
font-size: 0.85em;
}
.navigation li.item .title a {
@@ -183,13 +185,44 @@ li {
padding-left: 8px;
margin-top: 2px;
}
.navigation li.item .itemMembers {
display: none;
.navigation li.item .member-list {
padding-left: 8px;
}
/* search state */
/* show all classes when search is empty */
.navigation-list.search-empty .item {
display: block;
}
/* hide all members by default when search is empty */
.navigation-list.search-empty .item .member-list {
display: none;
}
/* expand all members when input in search field available but too short to search */
.navigation-list.search-started li,
.navigation-list.search-started .member-list {
display: block;
}
/* when searching hide everything that is not a match */
.navigation-list.searching li,
.navigation-list.searching .member-list {
display: none;
}
.navigation-list.searching .match {
display: block;
}
/* allow user to hide / show members */
.navigation-list .item.toggle-manual-show li,
.navigation-list .item.toggle-manual-show .member-list {
display: block!important;
}
.navigation-list:not(.searching) .item.toggle-manual-hide li,
.navigation-list:not(.searching) .item.toggle-manual-hide .member-list {
display: none!important;
}
.main {
padding: 20px 20px;
margin-left: 250px;
padding: 1.5rem
}
.main .page-title {
display: none;
@@ -206,7 +239,7 @@ li {
}
.main h3 {
font-weight: bold;
font-size: 13px;
font-size: 1.3em;
margin: 5px 0;
}
.main h4 {
@@ -223,12 +256,6 @@ li {
.main h4.name span.type {
margin-left: 10px;
}
.main h4.name span.glyphicon {
display: inline-block;
vertical-align: middle;
color: #c1c1c1;
margin-left: 7px;
}
.main h4.name span.returnType, .main h4.name span.type {
margin-left: 3px;
background-color: transparent!important;
@@ -251,7 +278,7 @@ span.type-signature.static {
margin-right: 3px;
}
.main .subsection-title {
font-size: 15px;
font-size: 18px;
margin-top: 30px;
color: #1F6B75;
}
@@ -293,7 +320,7 @@ span.type-signature.static {
position: relative;
margin-top: 20px;
padding-top: 5px;
border-top: 1px solid #e1e1e1;
border-top: 2px solid #1F6B75;
}
.main .nameContainer .inherited {
display: inline-block;
@@ -307,11 +334,13 @@ span.type-signature.static {
.main .nameContainer .inherited a {
color: #fff;
}
.main .nameContainer .tag-source {
position: absolute;
top: 17px;
right: 0;
font-size: 11px;
@media (min-width: 768px) {
.main .nameContainer .tag-source {
position: absolute;
top: 0.2rem;
right: 0;
font-size: 0.8rem;
}
}
.main .nameContainer .tag-source a {
color: gray;
@@ -330,7 +359,17 @@ span.type-signature.static {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
.main pre {
font-size: 12px;
display: block;
padding: 0.6rem;
margin: 0 0 10px;
font-size: 0.8rem;
line-height: 1.428571429;
color: #333;
word-break: break-all;
word-wrap: break-word;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 4px;
}
.main table {
width: 100%;
@@ -370,11 +409,6 @@ span.type-signature.static {
margin-right: 5px;
color: gray;
}
.main .readme p {
margin-top: 15px;
line-height: 1.2;
font-size: 0.9em;
}
.main .readme h1 {
font-size: 1.7em;
}

View File

@@ -1,9 +1,7 @@
/* Carbon adds (see https://sell.buysellads.com) */
#ad {
margin-left: 1em;
float: right;
width: 330px;
padding:0.5rem;
min-height: 125px;
}
@@ -65,17 +63,3 @@
#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

@@ -12,7 +12,7 @@
<section class="content">
<header>
<h2><?js if (doc.ancestors && doc.ancestors.length) { ?>
<h2 class="my-3"><?js if (doc.ancestors && doc.ancestors.length) { ?>
<span class="ancestors"><?js= doc.ancestors.join('') ?></span><?js } ?><?js= doc.name ?>
<?js if (doc.variation) { ?>
<sup class="variation"><?js= doc.variation ?></sup>
@@ -41,12 +41,14 @@
<pre class="prettyprint source"><code>import <?js= doc.name ?> from '<?js= importPath ?>';</code></pre>
<?js } ?>
<?js } ?>
<div id="ad">
<div class="row p-3 ">
<div id="ad" class="col-lg-5 order-2 align-self-center border rounded bg-light ">
<script async type="text/javascript" src="https://cdn.carbonads.com/carbon.js?serve=CE7DV53U&placement=openlayersorg" id="_carbonads_js"></script>
</div>
</div>
<?js if (doc.classdesc) { ?>
<div class="class-description"><?js= doc.classdesc ?></div>
<div class="class-description col-lg-7 align-self-center pl-0"><?js= doc.classdesc ?></div>
<?js } ?>
</div>
</header>
<article>

View File

@@ -1,5 +1,5 @@
<?js
var data = obj;
var data = obj;
data.forEach(function(example) {
if (example.caption) {
?>

View File

@@ -3,7 +3,7 @@ var version = obj.packageInfo.version;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<head>
<script>
var gaProperty = 'UA-2577926-1';
// Disable tracking if the opt-out cookie exists.
@@ -67,43 +67,64 @@ var version = obj.packageInfo.version;
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<script src="scripts/jquery.min.js"> </script>
<script src="scripts/bootstrap.bundle.min.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css">
<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>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/"><img src="logo-70x70.png"> OpenLayers</a>
<ul class="nav navbar-nav pull-right">
<li><a href="../doc">Docs</a></li>
<li><a href="../examples">Examples</a></li>
<li><a href="index.html" class="active">API</a></li>
<li><a href="https://github.com/openlayers/openlayers">Code</a></li>
</ul>
</head>
<body>
<div class="container-fluid">
<header class="navbar navbar-expand-sm navbar-dark mb-3 py-0 fixed-top" role="navigation">
<a class="navbar-brand" href="https://openlayers.org/"><img src="logo-70x70.png"> OpenLayers</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#olmenu" aria-controls="olmenu" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<nav class="collapse navbar-collapse" id="olmenu">
<ul class="navbar-nav ml-auto">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="docdropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Docs</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="docdropdown">
<a class="dropdown-item" href="/en/latest/doc/">Docs</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="../doc/quickstart.html"><i class="fa fa-check fa-fw mr-2 fa-lg"></i>Quick Start</a>
<a class="dropdown-item" href="../doc/faq.html"><i class="fa fa-question fa-fw mr-2 fa-lg"></i>FAQ</a>
<a class="dropdown-item" href="../doc/tutorials/"><i class="fa fa-book fa-fw mr-2 fa-lg"></i>Tutorials</a>
<a class="dropdown-item" href="../workshop/"><i class="fa fa-graduation-cap fa-fw mr-2 fa-lg"></i>Workshop</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="https://stackoverflow.com/questions/tagged/openlayers"><i class="fa fa-stack-overflow fa-fw mr-2"></i>Ask a Question</a>
</div>
</li>
<li class="nav-item"><a class="nav-link" href="../examples/">Examples</a></li>
<li class="nav-item active"><a class="nav-link" href="../apidoc/"><i class="fa fa-sitemap mr-1"></i>API</a></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="codedropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Code</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="codedropdown">
<a class="dropdown-item" href="https://github.com/openlayers/openlayers"><i class="fa fa-github fa-fw mr-2 fa-lg"></i>Repository</a>
<a class="dropdown-item" href="../download/"><i class="fa fa-download fa-fw mr-2 fa-lg"></i>Download</a>
</div>
</li>
</ul>
</nav>
</header>
<div id="wrap" class="row">
<?js= this.navigationHtml ?>
<div class="main col-md-8 col-lg-9">
<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">
<button id="latest-dismiss" type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
This documentation is for OpenLayers v<span id="package-version"><?js= version ?></span>. The <a id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
</div>
<?js= content ?>
</div>
</div>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/main.js"></script>
</div>
</div>
</div>
<div id="wrap" class="clearfix">
<?js= this.partial('navigation.tmpl', this) ?>
<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">
<button id="latest-dismiss" type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
This documentation is for OpenLayers v<span id="package-version"><?js= version ?></span>. The <a id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
</div>
<?js= content ?>
</div>
</div>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/main.js"></script>
</body>
</body>
</html>

View File

@@ -64,7 +64,7 @@ var self = this;
<ul><?js fires.forEach(function(f) {
var parts = f.split(/#?event:/);
var type = parts.pop();
var eventClassName = parts[0];
var eventClass = self.find({longname: parts[0]})[0];
parts = type.split(' ');
type = parts.shift();
var description = parts.length ? parts.join(' ') : '';
@@ -74,12 +74,9 @@ var self = this;
}
?>
<li class="<?js= (eventDoclet || data).stability !== 'stable' ? 'unstable' : '' ?>">
<code><?js= eventClassName ? self.linkto(f, type) : type ?></code>
<?js if (eventClassName) {
var eventClass = self.find({longname: eventClassName})[0];
if (eventClass) { ?>
(<?js= self.linkto(eventClass.longname) ?>)
<?js } ?>
<code><?js= eventClass ? self.linkto(f, type) : type ?></code>
<?js if (eventClass) { ?>
(<?js= self.linkto(eventClass.longname) ?>)
<?js } ?>
<?js= self.partial('stability.tmpl', eventDoclet || (data.stability ? data : {})) ?>
<?js if (description) { ?> -

View File

@@ -1,95 +1,70 @@
<?js
var self = this;
function toShortName(name) {
return name.indexOf('module:') === 0 ? name.split('/').pop() : name;
}
?>
<div class="navigation">
<div class="search">
<input id="search" type="text" class="form-control input-sm" placeholder="Search Documentation">
</div>
<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 if (item.type === 'module') { ?>
<span class="glyphicon glyphicon-plus toggle"></span>
<?js } else if (item.type === 'class') { ?>
<span class="glyphicon glyphicon-chevron-right toggle"></span>
<?js } ?>
<?js= self.linkto(item.longname, item.prettyname) ?>
<?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.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 }); ?>
function getItemCssClass(type) {
if (type === 'module') {
return 'fa-plus';
} else if (type === 'class') {
return 'fa-chevron-right';
}
return '';
}
const printListItem = (member) => {
const shortName = toShortName(member.name); ?>
<li data-name="<?js= shortName.toLowerCase() ?>"><?js= self.linkto(member.longname, shortName) ?><?js
};
const printListItemWithStability = (member) => {
const shortName = toShortName(member.name);
const cls = member.stability && member.stability !== 'stable' ? ' class="unstable"' : ''; ?>
<li data-name="<?js= shortName.toLowerCase() ?>"<?js= cls ?>><?js= self.linkto(member.longname, shortName) ?><?js
};
const printFiresListItem = (eventName) => {
const ancestor = self.find({longname: eventName})[0] ||
{longname: eventName, name: eventName.split(/#?event:/)[1]};
const eventEnum = ancestor.longname.split(/#?event:/)[0];
if (self.find({longname: eventEnum})[0]) {
printListItemWithStability(ancestor);
} else {
const cls = ancestor.stability && ancestor.stability !== 'stable' ? ' class="unstable"' : '';
const shortName = toShortName(ancestor.name); ?>
<li data-name="<?js= shortName.toLowerCase() ?>"<?js= cls ?>><?js= shortName ?><?js
}
};
function listContent(item, title, listItemPrinter) {
const type = title.toLowerCase();
if (item[type] && item[type].length) { ?>
<div class="member-list" data-type="<?js= type ?>">
<span class="subtitle"><?js= title ?></span>
<ul><?js
item[type].forEach(function (v) {
listItemPrinter(v);
}); ?>
</ul>
</div><?js
}
}
?>
<div class="navigation col-md-4 col-lg-3">
<div class="search">
<input id="search" type="text" autocomplete="off" class="form-control input-sm" placeholder="Search Documentation">
</div>
<ul class="navigation-list search-empty"><?js
this.nav.forEach(function (item) { ?>
<li class="item item-<?js= item.type ?>" data-longname="<?js= item.longname ?>" data-name="<?js= item.prettyname.toLowerCase() ?>">
<span class="title toggle">
<span class="fa <?js= getItemCssClass(item.type) ?> mr-2 mt-1"></span>
<span><?js= self.linkto(item.longname, item.prettyname.replace(/[.~\/]/g, '\u200b$&')) ?></span>
</span><?js
listContent(item, 'Members', printListItem);
listContent(item, 'Typedefs', printListItemWithStability);
listContent(item, 'Methods', printListItemWithStability);
listContent(item, 'Fires', printFiresListItem);
}); ?>
</ul>
</div>

View File

@@ -1,15 +1,11 @@
/**
* Handle the api annotation.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
exports.defineTags = function (dictionary) {
dictionary.defineTag('api', {
onTagged: function(doclet, tag) {
onTagged: function (doclet, tag) {
doclet.api = true;
}
},
});
};

View File

@@ -5,31 +5,27 @@
* insensitive, with or without ticks).
*/
const DEFAULT_VALUE = /default\s+is\s+`?(true|false)`?/i;
/**
* Hook to define new tags.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
exports.defineTags = function (dictionary) {
dictionary.defineTag('define', {
canHaveType: true,
mustHaveValue: true,
onTagged: function(doclet, tag) {
onTagged: function (doclet, tag) {
const types = tag.value.type.names;
if (types.length === 1 && types[0] === 'boolean') {
const match = tag.value.description.match(DEFAULT_VALUE);
if (match) {
doclet.define = {
default: match[1] === 'true'
default: match[1] === 'true',
};
doclet.description = tag.value.description;
}
}
}
},
});
};

View File

@@ -5,18 +5,16 @@
const assert = require('assert');
const path = require('path');
/**
* Publish hook for the JSDoc template. Writes to JSON stdout.
* @param {function} data The root of the Taffy DB containing doclet records.
* @param {Object} opts Options.
* @return {Promise} A promise that resolves when writing is complete.
*/
exports.publish = function(data, opts) {
exports.publish = function (data, opts) {
function getTypes(data) {
const types = [];
data.forEach(function(name) {
data.forEach(function (name) {
types.push(name.replace(/^function$/, 'Function'));
});
return types;
@@ -27,19 +25,22 @@ exports.publish = function(data, opts) {
const docs = data(
[
{define: {isObject: true}},
function() {
function () {
if (this.kind == 'class') {
if (!('extends' in this) || typeof this.api == 'boolean') {
classes[this.longname] = this;
return true;
}
}
return (typeof this.api == 'boolean' ||
this.meta && (/[\\\/]externs$/).test(this.meta.path));
}
return (
typeof this.api == 'boolean' ||
(this.meta && /[\\\/]externs$/.test(this.meta.path))
);
},
],
{kind: {'!is': 'file'}},
{kind: {'!is': 'event'}}).get();
{kind: {'!is': 'event'}}
).get();
// get symbols data, filter out those that are members of private classes
const symbols = [];
@@ -49,117 +50,133 @@ exports.publish = function(data, opts) {
let base = [];
const augments = {};
const symbolsByName = {};
docs.filter(function(doc) {
let include = true;
const constructor = doc.memberof;
if (constructor && constructor.substr(-1) === '_' && constructor.indexOf('module:') === -1) {
assert.strictEqual(doc.inherited, true,
'Unexpected export on private class: ' + doc.longname);
include = false;
}
return include;
}).forEach(function(doc) {
const isExterns = (/[\\\/]externs$/).test(doc.meta.path);
if (doc.define) {
defines.push({
name: doc.longname,
description: doc.description,
path: path.join(doc.meta.path, doc.meta.filename),
default: doc.define.default
});
} else if (doc.kind == 'typedef' || doc.isEnum === true) {
typedefs.push({
name: doc.longname,
types: getTypes(doc.type.names)
});
} else {
const symbol = {
name: doc.longname,
kind: doc.kind,
description: doc.classdesc || doc.description,
path: path.join(doc.meta.path, doc.meta.filename)
};
if (doc.augments) {
symbol.extends = doc.augments[0];
docs
.filter(function (doc) {
let include = true;
const constructor = doc.memberof;
if (
constructor &&
constructor.substr(-1) === '_' &&
constructor.indexOf('module:') === -1
) {
assert.strictEqual(
doc.inherited,
true,
'Unexpected export on private class: ' + doc.longname
);
include = false;
}
if (doc.virtual) {
symbol.virtual = true;
}
if (doc.type) {
symbol.types = getTypes(doc.type.names);
}
if (doc.params) {
const params = [];
doc.params.forEach(function(param) {
const paramInfo = {
name: param.name
};
params.push(paramInfo);
paramInfo.types = getTypes(param.type.names);
if (typeof param.variable == 'boolean') {
paramInfo.variable = param.variable;
}
if (typeof param.optional == 'boolean') {
paramInfo.optional = param.optional;
}
if (typeof param.nullable == 'boolean') {
paramInfo.nullable = param.nullable;
}
return include;
})
.forEach(function (doc) {
const isExterns = /[\\\/]externs$/.test(doc.meta.path);
if (doc.define) {
defines.push({
name: doc.longname,
description: doc.description,
path: path.join(doc.meta.path, doc.meta.filename),
default: doc.define.default,
});
symbol.params = params;
}
if (doc.returns) {
symbol.returns = {
types: getTypes(doc.returns[0].type.names)
} else if (doc.kind == 'typedef' || doc.isEnum === true) {
typedefs.push({
name: doc.longname,
types: getTypes(doc.type.names),
});
} else {
const symbol = {
name: doc.longname,
kind: doc.kind,
description: doc.classdesc || doc.description,
path: path.join(doc.meta.path, doc.meta.filename),
};
if (typeof doc.returns[0].nullable == 'boolean') {
symbol.returns.nullable = doc.returns[0].nullable;
if (doc.augments) {
symbol.extends = doc.augments[0];
}
}
if (doc.tags) {
doc.tags.every(function(tag) {
if (tag.title == 'template') {
symbol.template = tag.value;
return false;
if (doc.virtual) {
symbol.virtual = true;
}
if (doc.type) {
symbol.types = getTypes(doc.type.names);
}
if (doc.params) {
const params = [];
doc.params.forEach(function (param) {
const paramInfo = {
name: param.name,
};
params.push(paramInfo);
paramInfo.types = getTypes(param.type.names);
if (typeof param.variable == 'boolean') {
paramInfo.variable = param.variable;
}
if (typeof param.optional == 'boolean') {
paramInfo.optional = param.optional;
}
if (typeof param.nullable == 'boolean') {
paramInfo.nullable = param.nullable;
}
});
symbol.params = params;
}
if (doc.returns) {
symbol.returns = {
types: getTypes(doc.returns[0].type.names),
};
if (typeof doc.returns[0].nullable == 'boolean') {
symbol.returns.nullable = doc.returns[0].nullable;
}
return true;
});
}
const target = isExterns ? externs : (doc.api ? symbols : base);
const existingSymbol = symbolsByName[symbol.name];
if (existingSymbol) {
const idx = target.indexOf(existingSymbol);
target.splice(idx, 1);
}
target.push(symbol);
symbolsByName[symbol.name] = symbol;
if (doc.api && symbol.extends) {
while (symbol.extends in classes && !classes[symbol.extends].api &&
classes[symbol.extends].augments) {
symbol.extends = classes[symbol.extends].augments[0];
}
if (symbol.extends) {
augments[symbol.extends] = true;
if (doc.tags) {
doc.tags.every(function (tag) {
if (tag.title == 'template') {
symbol.template = tag.value;
return false;
}
return true;
});
}
const target = isExterns ? externs : doc.api ? symbols : base;
const existingSymbol = symbolsByName[symbol.name];
if (existingSymbol) {
const idx = target.indexOf(existingSymbol);
target.splice(idx, 1);
}
target.push(symbol);
symbolsByName[symbol.name] = symbol;
if (doc.api && symbol.extends) {
while (
symbol.extends in classes &&
!classes[symbol.extends].api &&
classes[symbol.extends].augments
) {
symbol.extends = classes[symbol.extends].augments[0];
}
if (symbol.extends) {
augments[symbol.extends] = true;
}
}
}
}
});
base = base.filter(function (symbol) {
return symbol.name in augments || symbol.virtual;
});
base = base.filter(function(symbol) {
return (symbol.name in augments || symbol.virtual);
});
return new Promise(function(resolve, reject) {
return new Promise(function (resolve, reject) {
process.stdout.write(
JSON.stringify({
symbols: symbols,
defines: defines,
typedefs: typedefs,
externs: externs,
base: base
}, null, 2));
JSON.stringify(
{
symbols: symbols,
defines: defines,
typedefs: typedefs,
externs: externs,
base: base,
},
null,
2
)
);
});
};

View File

@@ -2,15 +2,13 @@
* Handle the interface and abstract annotations.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
exports.defineTags = function (dictionary) {
const classTag = dictionary.lookUp('class');
dictionary.defineTag('interface', {
mustNotHaveValue: true,
onTagged: function(doclet, tag) {
onTagged: function (doclet, tag) {
classTag.onTagged.apply(this, arguments);
doclet.virtual = true;
}
},
});
};

View File

@@ -3,11 +3,16 @@ module.exports = {
entry: './build/index.js',
devtool: 'source-map',
mode: 'production',
resolve: {
alias: {
ol: path.resolve('./src/ol'),
},
},
output: {
path: path.resolve('./build/legacy'),
filename: 'ol.js',
library: 'ol',
libraryTarget: 'umd',
libraryExport: 'default'
}
libraryExport: 'default',
},
};

View File

@@ -39,10 +39,10 @@ var map = new Map({
If a source (based on `ol/source/TileImage` or `ol/source/Image`) has a projection different from the current `ol/View`s projection then the reprojection happens automatically under the hood.
### Examples
- [Raster reprojection demo](https://openlayers.org/en/master/examples/reprojection.html)
- [OpenStreetMap to WGS84 reprojection](https://openlayers.org/en/master/examples/reprojection-wgs84.html)
- [Reprojection with EPSG.io database search](https://openlayers.org/en/master/examples/reprojection-by-code.html)
- [Image reprojection](https://openlayers.org/en/master/examples/reprojection-image.html)
- [Raster reprojection demo](https://openlayers.org/en/latest/examples/reprojection.html)
- [OpenStreetMap to WGS84 reprojection](https://openlayers.org/en/latest/examples/reprojection-wgs84.html)
- [Reprojection with EPSG.io database search](https://openlayers.org/en/latest/examples/reprojection-by-code.html)
- [Image reprojection](https://openlayers.org/en/latest/examples/reprojection-image.html)
### Custom projection
The easiest way to use a custom projection is to add the [Proj4js](http://proj4js.org/) library to your project and then define the projection using a proj4 definition string. It can be installed with
@@ -125,7 +125,7 @@ Although this is mathematically correct behavior of the inverse transformation,
A possible general solution would be to calculate the forward transformation for every vertex as well - but this would significantly decrease performance (especially for computationally expensive transformations).
Therefore a recommended workaround is to define a proper visibility extent on the `ol.layer.Tile` in the view projection.
Setting such a limit is demonstrated in the [reprojection demo example](https://openlayers.org/en/master/examples/reprojection.html).
Setting such a limit is demonstrated in the [reprojection demo example](https://openlayers.org/en/latest/examples/reprojection.html).
### Resolution calculation
When determining source tiles to load, the ideal source resolution needs to be calculated.

View File

@@ -5,6 +5,7 @@
"common": false,
"createMapboxStreetsV6Style": false,
"d3": false,
"domtoimage": false,
"geojsonvt": false,
"GyroNorm": false,
"jsPDF": false,

View File

@@ -1,29 +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 OSM from '../src/ol/source/OSM.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
})
source: new OSM(),
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
document.getElementById('zoom-out').onclick = function() {
document.getElementById('zoom-out').onclick = function () {
const view = map.getView();
const zoom = view.getZoom();
view.setZoom(zoom - 1);
};
document.getElementById('zoom-in').onclick = function() {
document.getElementById('zoom-in').onclick = function () {
const view = map.getView();
const zoom = view.getZoom();
view.setZoom(zoom + 1);

View File

@@ -1,9 +1,9 @@
import Map from '../src/ol/Map.js';
import OSM from '../src/ol/source/OSM.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import {easeIn, easeOut} from '../src/ol/easing.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {fromLonLat} from '../src/ol/proj.js';
import OSM from '../src/ol/source/OSM.js';
const london = fromLonLat([-0.12755, 51.507222]);
const moscow = fromLonLat([37.6178, 55.7517]);
@@ -13,7 +13,7 @@ const bern = fromLonLat([7.4458, 46.95]);
const view = new View({
center: istanbul,
zoom: 6
zoom: 6,
});
const map = new Map({
@@ -21,10 +21,10 @@ const map = new Map({
layers: [
new TileLayer({
preload: 4,
source: new OSM()
})
source: new OSM(),
}),
],
view: view
view: view,
});
// A bounce easing method (from https://github.com/DmitryBaranovskiy/raphael).
@@ -32,18 +32,18 @@ function bounce(t) {
const s = 7.5625;
const p = 2.75;
let l;
if (t < (1 / p)) {
if (t < 1 / p) {
l = s * t * t;
} else {
if (t < (2 / p)) {
t -= (1.5 / p);
if (t < 2 / p) {
t -= 1.5 / p;
l = s * t * t + 0.75;
} else {
if (t < (2.5 / p)) {
t -= (2.25 / p);
if (t < 2.5 / p) {
t -= 2.25 / p;
l = s * t * t + 0.9375;
} else {
t -= (2.625 / p);
t -= 2.625 / p;
l = s * t * t + 0.984375;
}
}
@@ -53,77 +53,85 @@ function bounce(t) {
// An elastic easing method (from https://github.com/DmitryBaranovskiy/raphael).
function elastic(t) {
return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * (2 * Math.PI) / 0.3) + 1;
return (
Math.pow(2, -10 * t) * Math.sin(((t - 0.075) * (2 * Math.PI)) / 0.3) + 1
);
}
function onClick(id, callback) {
document.getElementById(id).addEventListener('click', callback);
}
onClick('rotate-left', function() {
onClick('rotate-left', function () {
view.animate({
rotation: view.getRotation() + Math.PI / 2
rotation: view.getRotation() + Math.PI / 2,
});
});
onClick('rotate-right', function() {
onClick('rotate-right', function () {
view.animate({
rotation: view.getRotation() - Math.PI / 2
rotation: view.getRotation() - Math.PI / 2,
});
});
onClick('rotate-around-rome', function() {
onClick('rotate-around-rome', function () {
// Rotation animation takes the shortest arc, so animate in two parts
const rotation = view.getRotation();
view.animate({
rotation: rotation + Math.PI,
anchor: rome,
easing: easeIn
}, {
rotation: rotation + 2 * Math.PI,
anchor: rome,
easing: easeOut
});
view.animate(
{
rotation: rotation + Math.PI,
anchor: rome,
easing: easeIn,
},
{
rotation: rotation + 2 * Math.PI,
anchor: rome,
easing: easeOut,
}
);
});
onClick('pan-to-london', function() {
onClick('pan-to-london', function () {
view.animate({
center: london,
duration: 2000
duration: 2000,
});
});
onClick('elastic-to-moscow', function() {
onClick('elastic-to-moscow', function () {
view.animate({
center: moscow,
duration: 2000,
easing: elastic
easing: elastic,
});
});
onClick('bounce-to-istanbul', function() {
onClick('bounce-to-istanbul', function () {
view.animate({
center: istanbul,
duration: 2000,
easing: bounce
easing: bounce,
});
});
onClick('spin-to-rome', function() {
onClick('spin-to-rome', function () {
// Rotation animation takes the shortest arc, so animate in two parts
const center = view.getCenter();
view.animate({
center: [
center[0] + (rome[0] - center[0]) / 2,
center[1] + (rome[1] - center[1]) / 2
],
rotation: Math.PI,
easing: easeIn
}, {
center: rome,
rotation: 2 * Math.PI,
easing: easeOut
});
view.animate(
{
center: [
center[0] + (rome[0] - center[0]) / 2,
center[1] + (rome[1] - center[1]) / 2,
],
rotation: Math.PI,
easing: easeIn,
},
{
center: rome,
rotation: 2 * Math.PI,
easing: easeOut,
}
);
});
function flyTo(location, done) {
@@ -141,21 +149,28 @@ function flyTo(location, done) {
done(complete);
}
}
view.animate({
center: location,
duration: duration
}, callback);
view.animate({
zoom: zoom - 1,
duration: duration / 2
}, {
zoom: zoom,
duration: duration / 2
}, callback);
view.animate(
{
center: location,
duration: duration,
},
callback
);
view.animate(
{
zoom: zoom - 1,
duration: duration / 2,
},
{
zoom: zoom,
duration: duration / 2,
},
callback
);
}
onClick('fly-to-bern', function() {
flyTo(bern, function() {});
onClick('fly-to-bern', function () {
flyTo(bern, function () {});
});
function tour() {
@@ -166,7 +181,7 @@ function tour() {
++index;
if (index < locations.length) {
const delay = index === 0 ? 0 : 750;
setTimeout(function() {
setTimeout(function () {
flyTo(locations[index], next);
}, delay);
} else {

View File

@@ -6,6 +6,6 @@ docs: >
This example shows how to use a dynamic ArcGIS REST MapService.
This source type supports Map and Image Services. For dyamic ArcGIS
services.
tags: arcgis, image, dynamiclayer"
tags: "arcgis, image, dynamiclayer"
---
<div id="map" class="map"></div>

View File

@@ -1,28 +1,29 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {Tile as TileLayer, Image as ImageLayer} from '../src/ol/layer.js';
import {OSM, ImageArcGISRest} from '../src/ol/source.js';
import {ImageArcGISRest, OSM} from '../src/ol/source.js';
import {Image as ImageLayer, Tile as TileLayer} from '../src/ol/layer.js';
const url = 'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
'Specialty/ESRI_StateCityHighway_USA/MapServer';
const url =
'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
'Specialty/ESRI_StateCityHighway_USA/MapServer';
const layers = [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
new ImageLayer({
source: new ImageArcGISRest({
ratio: 1,
params: {},
url: url
})
})
url: url,
}),
}),
];
const map = new Map({
layers: layers,
target: 'map',
view: new View({
center: [-10997148, 4569099],
zoom: 4
})
zoom: 4,
}),
});

View File

@@ -7,6 +7,6 @@ docs: >
This source type supports Map and Image Services. For cached ArcGIS
services, better performance is available by using
<code>ol/source/XYZ</code> instead.
tags: arcgis, tile, tilelayer"
tags: "arcgis, tile, tilelayer"
---
<div id="map" class="map"></div>

View File

@@ -1,27 +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 View from '../src/ol/View.js';
import {OSM, TileArcGISRest} from '../src/ol/source.js';
const url = 'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
'Specialty/ESRI_StateCityHighway_USA/MapServer';
const url =
'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
'Specialty/ESRI_StateCityHighway_USA/MapServer';
const layers = [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
new TileLayer({
extent: [-13884991, 2870341, -7455066, 6338219],
source: new TileArcGISRest({
url: url
})
})
url: url,
}),
}),
];
const map = new Map({
layers: layers,
target: 'map',
view: new View({
center: [-10997148, 4569099],
zoom: 4
})
zoom: 4,
}),
});

View File

@@ -1,24 +1,24 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls, Attribution} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import {Attribution, defaults as defaultControls} from '../src/ol/control.js';
const attribution = new Attribution({
collapsible: false
collapsible: false,
});
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
})
source: new OSM(),
}),
],
controls: defaultControls({attribution: false}).extend([attribution]),
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
function checkSize() {

View File

@@ -6,7 +6,7 @@ docs: >
<p>When the Bing Maps tile service doesn't have tiles for a given resolution and region it returns "placeholder" tiles indicating that. Zoom the map beyond level 19 to see the "placeholder" tiles. If you want OpenLayers to display stretched tiles in place of "placeholder" tiles beyond zoom level 19 then set <code>maxZoom</code> to <code>19</code> in the options passed to <code>ol/source/BingMaps</code>.</p>
tags: "bing, bing-maps"
cloak:
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
- key: ApTJzdkyN1DdFKkRAE6QIDtzihNaf6IWJsT-nQ_2eMoO4PN__0Tzhl2-WgJtXFSp
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>

View File

@@ -1,38 +1,39 @@
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 Map from '../src/ol/Map.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
const styles = [
'RoadOnDemand',
'Aerial',
'AerialWithLabelsOnDemand',
'CanvasDark',
'OrdnanceSurvey'
'OrdnanceSurvey',
];
const layers = [];
let i, ii;
for (i = 0, ii = styles.length; i < ii; ++i) {
layers.push(new TileLayer({
visible: false,
preload: Infinity,
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: styles[i]
// use maxZoom 19 to see stretched tiles instead of the BingMaps
// "no photos at this zoom level" tiles
// maxZoom: 19
layers.push(
new TileLayer({
visible: false,
preload: Infinity,
source: new BingMaps({
key: 'ApTJzdkyN1DdFKkRAE6QIDtzihNaf6IWJsT-nQ_2eMoO4PN__0Tzhl2-WgJtXFSp',
imagerySet: styles[i],
// use maxZoom 19 to see stretched tiles instead of the BingMaps
// "no photos at this zoom level" tiles
// maxZoom: 19
}),
})
}));
);
}
const map = new Map({
layers: layers,
target: 'map',
view: new View({
center: [-6655.5402445057125, 6709968.258934638],
zoom: 13
})
zoom: 13,
}),
});
const select = document.getElementById('layer-select');

View File

@@ -1,33 +1,31 @@
import GeoJSON from '../src/ol/format/GeoJSON.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {platformModifierKeyOnly} from '../src/ol/events/condition.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import {DragBox, Select} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {platformModifierKeyOnly} from '../src/ol/events/condition.js';
const vectorSource = new VectorSource({
url: 'data/geojson/countries.geojson',
format: new GeoJSON()
format: new GeoJSON(),
});
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
new VectorLayer({
source: vectorSource
})
source: vectorSource,
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2,
constrainRotation: 16
})
constrainRotation: 16,
}),
});
// a normal select interaction to handle click
@@ -38,12 +36,12 @@ const selectedFeatures = select.getFeatures();
// a DragBox interaction used to select features by drawing boxes
const dragBox = new DragBox({
condition: platformModifierKeyOnly
condition: platformModifierKeyOnly,
});
map.addInteraction(dragBox);
dragBox.on('boxend', function() {
dragBox.on('boxend', function () {
// features that intersect the box geometry are added to the
// collection of selected features
@@ -54,7 +52,7 @@ dragBox.on('boxend', function() {
const oblique = rotation % (Math.PI / 2) !== 0;
const candidateFeatures = oblique ? [] : selectedFeatures;
const extent = dragBox.getGeometry().getExtent();
vectorSource.forEachFeatureIntersectingExtent(extent, function(feature) {
vectorSource.forEachFeatureIntersectingExtent(extent, function (feature) {
candidateFeatures.push(feature);
});
@@ -68,7 +66,7 @@ dragBox.on('boxend', function() {
const geometry = dragBox.getGeometry().clone();
geometry.rotate(-rotation, anchor);
const extent = geometry.getExtent();
candidateFeatures.forEach(function(feature) {
candidateFeatures.forEach(function (feature) {
const geometry = feature.getGeometry().clone();
geometry.rotate(-rotation, anchor);
if (geometry.intersectsExtent(extent)) {
@@ -76,18 +74,17 @@ dragBox.on('boxend', function() {
}
});
}
});
// clear selection when drawing a new box and when clicking on the map
dragBox.on('boxstart', function() {
dragBox.on('boxstart', function () {
selectedFeatures.clear();
});
const infoBox = document.getElementById('info');
selectedFeatures.on(['add', 'remove'], function() {
const names = selectedFeatures.getArray().map(function(feature) {
selectedFeatures.on(['add', 'remove'], function () {
const names = selectedFeatures.getArray().map(function (feature) {
return feature.get('name');
});
if (names.length > 0) {

View File

@@ -6,8 +6,8 @@ docs: >
This example shows how to customize the buttons tooltips with <a href="http://getbootstrap.com/javascript/#tooltips">Bootstrap</a>.
tags: "custom, tooltip"
resources:
- https://code.jquery.com/jquery-2.2.3.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
- https://code.jquery.com/jquery-3.5.1.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.bundle.min.js
---
<div id="map" class="map"></div>

View File

@@ -1,26 +1,25 @@
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 TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
})
source: new OSM(),
}),
],
target: 'map',
view: new View({
center: [-8730000, 5930000],
rotation: Math.PI / 5,
zoom: 8
})
zoom: 8,
}),
});
$('.ol-zoom-in, .ol-zoom-out').tooltip({
placement: 'right'
placement: 'right',
});
$('.ol-rotate-reset, .ol-attribution button[title]').tooltip({
placement: 'left'
placement: 'left',
});

View File

@@ -1,11 +1,11 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import {DEVICE_PIXEL_RATIO} from '../src/ol/has.js';
import Map from '../src/ol/Map.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {fromLonLat} from '../src/ol/proj.js';
import VectorSource from '../src/ol/source/Vector.js';
import View from '../src/ol/View.js';
import {DEVICE_PIXEL_RATIO} from '../src/ol/has.js';
import {Fill, Stroke, Style} from '../src/ol/style.js';
import {fromLonLat} from '../src/ol/proj.js';
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
@@ -15,7 +15,7 @@ const context = canvas.getContext('2d');
const pixelRatio = DEVICE_PIXEL_RATIO;
// Generate a rainbow gradient
const gradient = (function() {
const gradient = (function () {
const grad = context.createLinearGradient(0, 0, 512 * pixelRatio, 0);
grad.addColorStop(0, 'red');
grad.addColorStop(1 / 6, 'orange');
@@ -28,7 +28,7 @@ const gradient = (function() {
})();
// Generate a canvasPattern with two circles on white background
const pattern = (function() {
const pattern = (function () {
canvas.width = 8 * pixelRatio;
canvas.height = 8 * pixelRatio;
// white background
@@ -45,7 +45,7 @@ const pattern = (function() {
context.arc(4 * pixelRatio, 4 * pixelRatio, 1.5 * pixelRatio, 0, 2 * Math.PI);
context.fill();
return context.createPattern(canvas, 'repeat');
}());
})();
// Generate style for gradient or pattern fill
const fill = new Fill();
@@ -53,8 +53,8 @@ const style = new Style({
fill: fill,
stroke: new Stroke({
color: '#333',
width: 2
})
width: 2,
}),
});
/**
@@ -64,7 +64,7 @@ const style = new Style({
* @param {import("../src/ol/Feature.js").default} feature The feature to style.
* @return {Style} The style to use for the feature.
*/
const getStackedStyle = function(feature) {
const getStackedStyle = function (feature) {
const id = feature.getId();
fill.setColor(id > 'J' ? gradient : pattern);
return style;
@@ -74,19 +74,17 @@ const getStackedStyle = function(feature) {
const vectorLayer = new VectorLayer({
source: new VectorSource({
url: 'data/geojson/countries.geojson',
format: new GeoJSON()
format: new GeoJSON(),
}),
style: getStackedStyle
style: getStackedStyle,
});
// … finally create a map with that layer.
const map = new Map({
layers: [
vectorLayer
],
layers: [vectorLayer],
target: 'map',
view: new View({
center: fromLonLat([16, 48]),
zoom: 3
})
zoom: 3,
}),
});

View File

@@ -1,21 +1,20 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import {OSM, TileDebug} from '../src/ol/source.js';
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
new TileLayer({
source: new TileDebug()
})
source: new TileDebug(),
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 1
})
zoom: 1,
}),
});

View File

@@ -1,47 +1,48 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import {CartoDB, OSM} from '../src/ol/source.js';
const mapConfig = {
'layers': [{
'type': 'cartodb',
'options': {
'cartocss_version': '2.1.1',
'cartocss': '#layer { polygon-fill: #F00; }',
'sql': 'select * from european_countries_e where area > 0'
}
}]
'layers': [
{
'type': 'cartodb',
'options': {
'cartocss_version': '2.1.1',
'cartocss': '#layer { polygon-fill: #F00; }',
'sql': 'select * from european_countries_e where area > 0',
},
},
],
};
const cartoDBSource = new CartoDB({
account: 'documentation',
config: mapConfig
config: mapConfig,
});
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
new TileLayer({
source: cartoDBSource
})
source: cartoDBSource,
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
function setArea(n) {
mapConfig.layers[0].options.sql =
'select * from european_countries_e where area > ' + n;
'select * from european_countries_e where area > ' + n;
cartoDBSource.setConfig(mapConfig);
}
document.getElementById('country-area').addEventListener('change', function() {
document.getElementById('country-area').addEventListener('change', function () {
setArea(this.value);
});

View File

@@ -6,15 +6,16 @@
width: 1000px;
height: 600px;
}
div.ol-zoom {
.map .ol-zoom {
top: 178px;
left: 158px;
}
div.ol-rotate {
.map .ol-rotate {
top: 178px;
right: 58px;
}
.map div.ol-attribution {
.map .ol-attribution,
.map .ol-attribution.ol-uncollapsible {
bottom: 30px;
right: 50px;
}

View File

@@ -1,72 +1,83 @@
import GeoJSON from '../src/ol/format/GeoJSON.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.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 {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
/** @type {VectorSource<import("../src/ol/geom/SimpleGeometry.js").default>} */
const source = new VectorSource({
url: 'data/geojson/switzerland.geojson',
format: new GeoJSON()
format: new GeoJSON(),
});
const style = new Style({
fill: new Fill({
color: 'rgba(255, 255, 255, 0.6)'
color: 'rgba(255, 255, 255, 0.6)',
}),
stroke: new Stroke({
color: '#319FD3',
width: 1
width: 1,
}),
image: new CircleStyle({
radius: 5,
fill: new Fill({
color: 'rgba(255, 255, 255, 0.6)'
color: 'rgba(255, 255, 255, 0.6)',
}),
stroke: new Stroke({
color: '#319FD3',
width: 1
})
})
width: 1,
}),
}),
});
const vectorLayer = new VectorLayer({
source: source,
style: style
style: style,
});
const view = new View({
center: [0, 0],
zoom: 1
zoom: 1,
});
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
vectorLayer
vectorLayer,
],
target: 'map',
view: view
view: view,
});
const zoomtoswitzerland =
document.getElementById('zoomtoswitzerland');
zoomtoswitzerland.addEventListener('click', function() {
const feature = source.getFeatures()[0];
const polygon = feature.getGeometry();
view.fit(polygon, {padding: [170, 50, 30, 150]});
}, false);
const zoomtoswitzerland = document.getElementById('zoomtoswitzerland');
zoomtoswitzerland.addEventListener(
'click',
function () {
const feature = source.getFeatures()[0];
const polygon = feature.getGeometry();
view.fit(polygon, {padding: [170, 50, 30, 150]});
},
false
);
const zoomtolausanne = document.getElementById('zoomtolausanne');
zoomtolausanne.addEventListener('click', function() {
const feature = source.getFeatures()[1];
const point = feature.getGeometry();
view.fit(point, {padding: [170, 50, 30, 150], minResolution: 50});
}, false);
zoomtolausanne.addEventListener(
'click',
function () {
const feature = source.getFeatures()[1];
const point = feature.getGeometry();
view.fit(point, {padding: [170, 50, 30, 150], minResolution: 50});
},
false
);
const centerlausanne = document.getElementById('centerlausanne');
centerlausanne.addEventListener('click', function() {
const feature = source.getFeatures()[1];
const point = feature.getGeometry();
const size = map.getSize();
view.centerOn(point.getCoordinates(), size, [570, 500]);
}, false);
centerlausanne.addEventListener(
'click',
function () {
const feature = source.getFeatures()[1];
const point = feature.getGeometry();
const size = map.getSize();
view.centerOn(point.getCoordinates(), size, [570, 500]);
},
false
);

View File

@@ -1,8 +1,8 @@
import Draw from '../src/ol/interaction/Draw.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import Draw from '../src/ol/interaction/Draw.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import smooth from 'chaikin-smooth';
@@ -21,17 +21,17 @@ const map = new Map({
layers: [
new TileLayer({
source: new OSM(),
opacity: 0.5
opacity: 0.5,
}),
new VectorLayer({
source: vectorSource
})
source: vectorSource,
}),
],
target: 'map',
view: new View({
center: [1078373.5950, 6871994.5910],
zoom: 5
})
center: [1078373.595, 6871994.591],
zoom: 5,
}),
});
const shallSmoothen = document.getElementById('shall-smoothen');
@@ -39,10 +39,10 @@ const numIterations = document.getElementById('iterations');
const draw = new Draw({
source: vectorSource,
type: 'LineString'
type: 'LineString',
});
map.addInteraction(draw);
draw.on('drawend', function(event) {
draw.on('drawend', function (event) {
if (!shallSmoothen.checked) {
return;
}

View File

@@ -1,11 +1,16 @@
import Feature from '../src/ol/Feature.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import Point from '../src/ol/geom/Point.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import View from '../src/ol/View.js';
import {
Circle as CircleStyle,
Fill,
Stroke,
Style,
Text,
} from '../src/ol/style.js';
import {Cluster, OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style, Text} from '../src/ol/style.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
const distance = document.getElementById('distance');
@@ -18,18 +23,18 @@ for (let i = 0; i < count; ++i) {
}
const source = new VectorSource({
features: features
features: features,
});
const clusterSource = new Cluster({
distance: parseInt(distance.value, 10),
source: source
source: source,
});
const styleCache = {};
const clusters = new VectorLayer({
source: clusterSource,
style: function(feature) {
style: function (feature) {
const size = feature.get('features').length;
let style = styleCache[size];
if (!style) {
@@ -37,27 +42,27 @@ const clusters = new VectorLayer({
image: new CircleStyle({
radius: 10,
stroke: new Stroke({
color: '#fff'
color: '#fff',
}),
fill: new Fill({
color: '#3399CC'
})
color: '#3399CC',
}),
}),
text: new Text({
text: size.toString(),
fill: new Fill({
color: '#fff'
})
})
color: '#fff',
}),
}),
});
styleCache[size] = style;
}
return style;
}
},
});
const raster = new TileLayer({
source: new OSM()
source: new OSM(),
});
const map = new Map({
@@ -65,10 +70,10 @@ const map = new Map({
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
distance.addEventListener('input', function() {
distance.addEventListener('input', function () {
clusterSource.setDistance(parseInt(distance.value, 10));
});

View File

@@ -1,23 +1,21 @@
import ImageLayer from '../src/ol/layer/Image.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import ImageLayer from '../src/ol/layer/Image.js';
import {Raster as RasterSource, Stamen} from '../src/ol/source.js';
/**
* Color manipulation functions below are adapted from
* https://github.com/d3/d3-color.
*/
const Xn = 0.950470;
const Xn = 0.95047;
const Yn = 1;
const Zn = 1.088830;
const Zn = 1.08883;
const t0 = 4 / 29;
const t1 = 6 / 29;
const t2 = 3 * t1 * t1;
const t3 = t1 * t1 * t1;
const twoPi = 2 * Math.PI;
/**
* Convert an RGB pixel into an HCL pixel.
* @param {Array<number>} pixel A pixel in RGB space.
@@ -29,11 +27,14 @@ function rgb2hcl(pixel) {
const blue = rgb2xyz(pixel[2]);
const x = xyz2lab(
(0.4124564 * red + 0.3575761 * green + 0.1804375 * blue) / Xn);
(0.4124564 * red + 0.3575761 * green + 0.1804375 * blue) / Xn
);
const y = xyz2lab(
(0.2126729 * red + 0.7151522 * green + 0.0721750 * blue) / Yn);
(0.2126729 * red + 0.7151522 * green + 0.072175 * blue) / Yn
);
const z = xyz2lab(
(0.0193339 * red + 0.1191920 * green + 0.9503041 * blue) / Zn);
(0.0193339 * red + 0.119192 * green + 0.9503041 * blue) / Zn
);
const l = 116 * y - 16;
const a = 500 * (x - y);
@@ -52,7 +53,6 @@ function rgb2hcl(pixel) {
return pixel;
}
/**
* Convert an HCL pixel into an RGB pixel.
* @param {Array<number>} pixel A pixel in HCL space.
@@ -75,7 +75,7 @@ function hcl2rgb(pixel) {
z = Zn * lab2xyz(z);
pixel[0] = xyz2rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z);
pixel[1] = xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z);
pixel[1] = xyz2rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z);
pixel[2] = xyz2rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z);
return pixel;
@@ -94,18 +94,21 @@ function rgb2xyz(x) {
}
function xyz2rgb(x) {
return 255 * (x <= 0.0031308 ?
12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
return (
255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055)
);
}
const raster = new RasterSource({
sources: [new Stamen({
layer: 'watercolor'
})],
operation: function(pixels, data) {
sources: [
new Stamen({
layer: 'watercolor',
}),
],
operation: function (pixels, data) {
const hcl = rgb2hcl(pixels[0]);
let h = hcl[0] + Math.PI * data.hue / 180;
let h = hcl[0] + (Math.PI * data.hue) / 180;
if (h < 0) {
h += twoPi;
} else if (h > twoPi) {
@@ -113,8 +116,8 @@ const raster = new RasterSource({
}
hcl[0] = h;
hcl[1] *= (data.chroma / 100);
hcl[2] *= (data.lightness / 100);
hcl[1] *= data.chroma / 100;
hcl[2] *= data.lightness / 100;
return hcl2rgb(hcl);
},
@@ -132,13 +135,13 @@ const raster = new RasterSource({
t1: t1,
t2: t2,
t3: t3,
twoPi: twoPi
}
twoPi: twoPi,
},
});
const controls = {};
raster.on('beforeoperations', function(event) {
raster.on('beforeoperations', function (event) {
const data = event.data;
for (const id in controls) {
data[id] = Number(controls[id].value);
@@ -148,22 +151,22 @@ raster.on('beforeoperations', function(event) {
const map = new Map({
layers: [
new ImageLayer({
source: raster
})
source: raster,
}),
],
target: 'map',
view: new View({
center: [0, 2500000],
zoom: 2,
maxZoom: 18
})
maxZoom: 18,
}),
});
const controlIds = ['hue', 'chroma', 'lightness'];
controlIds.forEach(function(id) {
controlIds.forEach(function (id) {
const control = document.getElementById(id);
const output = document.getElementById(id + 'Out');
control.addEventListener('input', function() {
control.addEventListener('input', function () {
output.innerText = control.value;
raster.changed();
});

View File

@@ -1,16 +1,14 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls, Control} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import {Control, defaults as defaultControls} from '../src/ol/control.js';
//
// Define rotate to north control.
//
class RotateNorthControl extends Control {
/**
* @param {Object=} opt_options Control options.
*/
@@ -26,7 +24,7 @@ class RotateNorthControl extends Control {
super({
element: element,
target: options.target
target: options.target,
});
button.addEventListener('click', this.handleRotateNorth.bind(this), false);
@@ -35,28 +33,23 @@ class RotateNorthControl extends Control {
handleRotateNorth() {
this.getMap().getView().setRotation(0);
}
}
//
// Create map, giving it a rotate to north control.
//
const map = new Map({
controls: defaultControls().extend([
new RotateNorthControl()
]),
controls: defaultControls().extend([new RotateNorthControl()]),
layers: [
new TileLayer({
source: new OSM()
})
source: new OSM(),
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 3,
rotation: 1
})
rotation: 1,
}),
});

View File

@@ -1,12 +1,14 @@
import Feature from '../src/ol/Feature.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {LineString, Point, Polygon} from '../src/ol/geom.js';
import {defaults as defaultInteractions, Pointer as PointerInteraction} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {TileJSON, Vector as VectorSource} from '../src/ol/source.js';
import {Fill, Icon, Stroke, Style} from '../src/ol/style.js';
import {LineString, Point, Polygon} from '../src/ol/geom.js';
import {
Pointer as PointerInteraction,
defaults as defaultInteractions,
} from '../src/ol/interaction.js';
import {TileJSON, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
class Drag extends PointerInteraction {
constructor() {
@@ -14,7 +16,7 @@ class Drag extends PointerInteraction {
handleDownEvent: handleDownEvent,
handleDragEvent: handleDragEvent,
handleMoveEvent: handleMoveEvent,
handleUpEvent: handleUpEvent
handleUpEvent: handleUpEvent,
});
/**
@@ -43,7 +45,6 @@ class Drag extends PointerInteraction {
}
}
/**
* @param {import("../src/ol/MapBrowserEvent.js").default} evt Map browser event.
* @return {boolean} `true` to start the drag sequence.
@@ -51,10 +52,9 @@ class Drag extends PointerInteraction {
function handleDownEvent(evt) {
const map = evt.map;
const feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
const feature = map.forEachFeatureAtPixel(evt.pixel, function (feature) {
return feature;
});
if (feature) {
this.coordinate_ = evt.coordinate;
@@ -64,7 +64,6 @@ function handleDownEvent(evt) {
return !!feature;
}
/**
* @param {import("../src/ol/MapBrowserEvent.js").default} evt Map browser event.
*/
@@ -79,17 +78,15 @@ function handleDragEvent(evt) {
this.coordinate_[1] = evt.coordinate[1];
}
/**
* @param {import("../src/ol/MapBrowserEvent.js").default} evt Event.
*/
function handleMoveEvent(evt) {
if (this.cursor_) {
const map = evt.map;
const feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
const feature = map.forEachFeatureAtPixel(evt.pixel, function (feature) {
return feature;
});
const element = evt.map.getTargetElement();
if (feature) {
if (element.style.cursor != this.cursor_) {
@@ -103,7 +100,6 @@ function handleMoveEvent(evt) {
}
}
/**
* @return {boolean} `false` to stop the drag sequence.
*/
@@ -113,29 +109,43 @@ function handleUpEvent() {
return false;
}
const pointFeature = new Feature(new Point([0, 0]));
const lineFeature = new Feature(
new LineString([[-1e7, 1e6], [-1e6, 3e6]]));
new LineString([
[-1e7, 1e6],
[-1e6, 3e6],
])
);
const polygonFeature = new Feature(
new Polygon([[[-3e6, -1e6], [-3e6, 1e6],
[-1e6, 1e6], [-1e6, -1e6], [-3e6, -1e6]]]));
new Polygon([
[
[-3e6, -1e6],
[-3e6, 1e6],
[-1e6, 1e6],
[-1e6, -1e6],
[-3e6, -1e6],
],
])
);
const key = 'pk.eyJ1IjoiYWhvY2V2YXIiLCJhIjoiY2pzbmg0Nmk5MGF5NzQzbzRnbDNoeHJrbiJ9.7_-_gL8ur7ZtEiNwRfCy7Q';
const key =
'pk.eyJ1IjoiYWhvY2V2YXIiLCJhIjoiY2pzbmg0Nmk5MGF5NzQzbzRnbDNoeHJrbiJ9.7_-_gL8ur7ZtEiNwRfCy7Q';
const map = new Map({
interactions: defaultInteractions().extend([new Drag()]),
layers: [
new TileLayer({
source: new TileJSON({
url: 'https://a.tiles.mapbox.com/v4/aj.1x1-degrees.json?access_token=' + key
})
url:
'https://a.tiles.mapbox.com/v4/aj.1x1-degrees.json?access_token=' +
key,
}),
}),
new VectorLayer({
source: new VectorSource({
features: [pointFeature, lineFeature, polygonFeature]
features: [pointFeature, lineFeature, polygonFeature],
}),
style: new Style({
image: new Icon({
@@ -143,21 +153,21 @@ const map = new Map({
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.95,
src: 'data/icon.png'
src: 'data/icon.png',
}),
stroke: new Stroke({
width: 3,
color: [255, 0, 0, 1]
color: [255, 0, 0, 1],
}),
fill: new Fill({
color: [0, 0, 255, 0.6]
})
})
})
color: [0, 0, 255, 0.6],
}),
}),
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});

41
examples/d3.js vendored
View File

@@ -1,24 +1,23 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {getWidth, getCenter} from '../src/ol/extent.js';
import {Layer, Tile as TileLayer} from '../src/ol/layer.js';
import SourceState from '../src/ol/source/State.js';
import {fromLonLat, toLonLat} from '../src/ol/proj.js';
import Stamen from '../src/ol/source/Stamen.js';
import View from '../src/ol/View.js';
import {Layer, Tile as TileLayer} from '../src/ol/layer.js';
import {fromLonLat, toLonLat} from '../src/ol/proj.js';
import {getCenter, getWidth} from '../src/ol/extent.js';
class CanvasLayer extends Layer {
constructor(options) {
super(options);
this.features = options.features;
this.svg = d3.select(document.createElement('div')).append('svg')
this.svg = d3
.select(document.createElement('div'))
.append('svg')
.style('position', 'absolute');
this.svg.append('path')
.datum(this.features)
.attr('class', 'boundary');
this.svg.append('path').datum(this.features).attr('class', 'boundary');
}
getSourceState() {
@@ -51,7 +50,10 @@ class CanvasLayer extends Layer {
const scale = r / frameState.viewState.resolution;
const center = toLonLat(getCenter(frameState.extent), projection);
d3Projection.scale(scale).center(center).translate([width / 2, height / 2]);
d3Projection
.scale(scale)
.center(center)
.translate([width / 2, height / 2]);
d3Path = d3Path.projection(d3Projection);
d3Path(this.features);
@@ -59,8 +61,7 @@ class CanvasLayer extends Layer {
this.svg.attr('width', width);
this.svg.attr('height', height);
this.svg.select('path')
.attr('d', d3Path);
this.svg.select('path').attr('d', d3Path);
return this.svg.node();
}
@@ -70,25 +71,23 @@ const map = new Map({
layers: [
new TileLayer({
source: new Stamen({
layer: 'watercolor'
})
})
layer: 'watercolor',
}),
}),
],
target: 'map',
view: new View({
center: fromLonLat([-97, 38]),
zoom: 4
})
zoom: 4,
}),
});
/**
* Load the topojson data and create an ol/layer/Image for that data.
*/
d3.json('data/topojson/us.json').then(function(us) {
d3.json('data/topojson/us.json').then(function (us) {
const layer = new CanvasLayer({
features: topojson.feature(us, us.objects.counties)
features: topojson.feature(us, us.objects.counties),
});
map.addLayer(layer);

BIN
examples/data/bigdot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

66
examples/data/dot.svg Normal file
View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="20"
height="20"
version="1.1"
id="svg6"
sodipodi:docname="dot.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1533"
inkscape:window-height="845"
id="namedview8"
showgrid="false"
inkscape:zoom="11.8"
inkscape:cx="-35.042373"
inkscape:cy="11.5"
inkscape:window-x="67"
inkscape:window-y="102"
inkscape:window-maximized="1"
inkscape:current-layer="g4"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<g
id="g4"
transform="translate(1.5,-1.5)">
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path822"
cx="8.5"
cy="11.5"
r="8.5"
inkscape:export-xdpi="400"
inkscape:export-ydpi="400" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
examples/data/fish.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

View File

@@ -1,7 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<g>
<rect width="20" height="20" style="fill:#fff" />
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="20"
height="20"
version="1.1"
id="svg6"
sodipodi:docname="square.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1533"
inkscape:window-height="845"
id="namedview8"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="11.8"
inkscape:cx="11.5"
inkscape:cy="11.5"
inkscape:window-x="67"
inkscape:window-y="102"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<g
id="g4"
transform="matrix(0.85,0,0,0.85,1.5,1.5)"
style="fill:#fefefe;fill-opacity:1;stroke:#000000;stroke-width:3.52941179;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
<rect
width="20"
height="20"
style="fill:#fefefe;fill-opacity:1;stroke:#000000;stroke-width:3.52941179;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2"
x="0"
y="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 194 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,32 +1,31 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {toRadians} from '../src/ol/math.js';
import OSM from '../src/ol/source/OSM.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import {toRadians} from '../src/ol/math.js';
const view = new View({
center: [0, 0],
zoom: 2
zoom: 2,
});
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
})
source: new OSM(),
}),
],
target: 'map',
view: view
view: view,
});
function el(id) {
return document.getElementById(id);
}
const gn = new GyroNorm();
gn.init().then(function() {
gn.start(function(event) {
gn.init().then(function () {
gn.start(function (event) {
const center = view.getCenter();
const resolution = view.getResolution();
const alpha = toRadians(event.do.alpha);

View File

@@ -0,0 +1,15 @@
@media (min-width: 800px) {
.wrapper {
display: flex;
}
.half {
padding: 0 10px;
width: 50%;
float: left;
}
}
#opacity {
display: inline-block;
width: 150px;
vertical-align: text-bottom;
}

View File

@@ -0,0 +1,45 @@
---
layout: example.html
title: Disable Image Smoothing
shortdesc: Example of disabling image smoothing
docs: >
Example of disabling image smoothing when using raster DEM (digital elevation model) data.
The <code>imageSmoothing: false</code> setting is used to disable canvas image smoothing during
reprojection and rendering. Elevation data is
calculated from the pixel value returned by <b>forEachLayerAtPixel</b>. For comparison a second map
with smoothing enabled returns inaccuate elevations which are very noticeable close to 3107 meters
due to how elevation is calculated from the pixel value.
tags: "disable image smoothing, xyz, maptiler, reprojection"
cloak:
- key: get_your_own_D6rA4zTHduk6KOKTXzGB
value: Get your own API key at https://www.maptiler.com/cloud/
---
<div class="wrapper">
<div class="half">
<h4>Smoothing Disabled</h4>
<div id="map1" class="map"></div>
<div>
<label>
Elevation
<span id="info1">0.0</span> meters
</label>
</div>
<div>
<label>
Imagery opacity
<input id="opacity" type="range" min="0" max="100" value="80" />
<span id="output"></span> %
</label>
</div>
</div>
<div class="half">
<h4>Uncorrected Comparison</h4>
<div id="map2" class="map"></div>
<div>
<label>
Elevation
<span id="info2">0.0</span> meters
</label>
</div>
</div>
</div>

View File

@@ -0,0 +1,120 @@
import Map from '../src/ol/Map.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.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 disabledLayer = new TileLayer({
// specify className so forEachLayerAtPixel can distinguish layers
className: 'ol-layer-dem',
source: new XYZ({
attributions: attributions,
url:
'https://api.maptiler.com/tiles/terrain-rgb/{z}/{x}/{y}.png?key=' + key,
maxZoom: 10,
crossOrigin: '',
imageSmoothing: false,
}),
});
const imagery = new TileLayer({
className: 'ol-layer-imagery',
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20,
crossOrigin: '',
}),
});
const enabledLayer = new TileLayer({
source: new XYZ({
attributions: attributions,
url:
'https://api.maptiler.com/tiles/terrain-rgb/{z}/{x}/{y}.png?key=' + key,
maxZoom: 10,
crossOrigin: '',
}),
});
imagery.on('prerender', function (evt) {
// use opaque background to conceal DEM while fully opaque imagery renders
if (imagery.getOpacity() === 1) {
evt.context.fillStyle = 'white';
evt.context.fillRect(
0,
0,
evt.context.canvas.width,
evt.context.canvas.height
);
}
});
const control = document.getElementById('opacity');
const output = document.getElementById('output');
control.addEventListener('input', function () {
output.innerText = control.value;
imagery.setOpacity(control.value / 100);
});
output.innerText = control.value;
imagery.setOpacity(control.value / 100);
const view = new View({
center: [6.893, 45.8295],
zoom: 16,
projection: 'EPSG:4326',
});
const map1 = new Map({
target: 'map1',
layers: [disabledLayer, imagery],
view: view,
});
const map2 = new Map({
target: 'map2',
layers: [enabledLayer],
view: view,
});
const info1 = document.getElementById('info1');
const info2 = document.getElementById('info2');
const showElevations = function (evt) {
if (evt.dragging) {
return;
}
map1.forEachLayerAtPixel(
evt.pixel,
function (layer, pixel) {
const height =
-10000 + (pixel[0] * 256 * 256 + pixel[1] * 256 + pixel[2]) * 0.1;
info1.innerText = height.toFixed(1);
},
{
layerFilter: function (layer) {
return layer === disabledLayer;
},
}
);
map2.forEachLayerAtPixel(
evt.pixel,
function (layer, pixel) {
const height =
-10000 + (pixel[0] * 256 * 256 + pixel[1] * 256 + pixel[2]) * 0.1;
info2.innerText = height.toFixed(1);
},
{
layerFilter: function (layer) {
return layer === enabledLayer;
},
}
);
};
map1.on('pointermove', showElevations);
map2.on('pointermove', showElevations);

View File

@@ -1,22 +1,23 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {
DragAndDrop,
defaults as defaultInteractions,
} from '../src/ol/interaction.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 {XYZ, Vector as VectorSource} from '../src/ol/source.js';
import {
Tile as TileLayer,
VectorImage as VectorImageLayer,
} from '../src/ol/layer.js';
import {Vector as VectorSource, XYZ} from '../src/ol/source.js';
const dragAndDropInteraction = new DragAndDrop({
formatConstructors: [
GPX,
GeoJSON,
IGC,
KML,
TopoJSON
]
formatConstructors: [GPX, GeoJSON, IGC, KML, TopoJSON],
});
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
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({
@@ -25,31 +26,34 @@ const map = new Map({
new TileLayer({
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
})
url:
'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20,
}),
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
dragAndDropInteraction.on('addfeatures', function(event) {
dragAndDropInteraction.on('addfeatures', function (event) {
const vectorSource = new VectorSource({
features: event.features
features: event.features,
});
map.addLayer(new VectorImageLayer({
source: vectorSource
}));
map.addLayer(
new VectorImageLayer({
source: vectorSource,
})
);
map.getView().fit(vectorSource.getExtent());
});
const displayFeatureInfo = function(pixel) {
const displayFeatureInfo = function (pixel) {
const features = [];
map.forEachFeatureAtPixel(pixel, function(feature) {
map.forEachFeatureAtPixel(pixel, function (feature) {
features.push(feature);
});
if (features.length > 0) {
@@ -64,7 +68,7 @@ const displayFeatureInfo = function(pixel) {
}
};
map.on('pointermove', function(evt) {
map.on('pointermove', function (evt) {
if (evt.dragging) {
return;
}
@@ -72,6 +76,6 @@ map.on('pointermove', function(evt) {
displayFeatureInfo(pixel);
});
map.on('click', function(evt) {
map.on('click', function (evt) {
displayFeatureInfo(evt.pixel);
});

View File

@@ -1,22 +1,20 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {
DragAndDrop,
defaults as defaultInteractions,
} from '../src/ol/interaction.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 {XYZ, Vector as VectorSource} from '../src/ol/source.js';
import {Vector as VectorSource, XYZ} from '../src/ol/source.js';
const dragAndDropInteraction = new DragAndDrop({
formatConstructors: [
GPX,
GeoJSON,
IGC,
KML,
TopoJSON
]
formatConstructors: [GPX, GeoJSON, IGC, KML, TopoJSON],
});
const key = 'get_your_own_D6rA4zTHduk6KOKTXzGB';
const attributions = '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> ' +
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({
@@ -25,31 +23,34 @@ const map = new Map({
new TileLayer({
source: new XYZ({
attributions: attributions,
url: 'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20
})
})
url:
'https://api.maptiler.com/tiles/satellite/{z}/{x}/{y}.jpg?key=' + key,
maxZoom: 20,
}),
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
dragAndDropInteraction.on('addfeatures', function(event) {
dragAndDropInteraction.on('addfeatures', function (event) {
const vectorSource = new VectorSource({
features: event.features
features: event.features,
});
map.addLayer(new VectorLayer({
source: vectorSource
}));
map.addLayer(
new VectorLayer({
source: vectorSource,
})
);
map.getView().fit(vectorSource.getExtent());
});
const displayFeatureInfo = function(pixel) {
const displayFeatureInfo = function (pixel) {
const features = [];
map.forEachFeatureAtPixel(pixel, function(feature) {
map.forEachFeatureAtPixel(pixel, function (feature) {
features.push(feature);
});
if (features.length > 0) {
@@ -64,7 +65,7 @@ const displayFeatureInfo = function(pixel) {
}
};
map.on('pointermove', function(evt) {
map.on('pointermove', function (evt) {
if (evt.dragging) {
return;
}
@@ -72,6 +73,6 @@ map.on('pointermove', function(evt) {
displayFeatureInfo(pixel);
});
map.on('click', function(evt) {
map.on('click', function (evt) {
displayFeatureInfo(evt.pixel);
});

View File

@@ -1,22 +1,22 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultInteractions, DragRotateAndZoom} from '../src/ol/interaction.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import {
DragRotateAndZoom,
defaults as defaultInteractions,
} from '../src/ol/interaction.js';
const map = new Map({
interactions: defaultInteractions().extend([
new DragRotateAndZoom()
]),
interactions: defaultInteractions().extend([new DragRotateAndZoom()]),
layers: [
new TileLayer({
source: new OSM()
})
source: new OSM(),
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});

View File

@@ -1,12 +1,12 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {Draw, Modify, Snap} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
import {Draw, Modify, Snap} from '../src/ol/interaction.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
const raster = new TileLayer({
source: new OSM()
source: new OSM(),
});
const source = new VectorSource();
@@ -14,19 +14,19 @@ const vector = new VectorLayer({
source: source,
style: new Style({
fill: new Fill({
color: 'rgba(255, 255, 255, 0.2)'
color: 'rgba(255, 255, 255, 0.2)',
}),
stroke: new Stroke({
color: '#ffcc33',
width: 2
width: 2,
}),
image: new CircleStyle({
radius: 7,
fill: new Fill({
color: '#ffcc33'
})
})
})
color: '#ffcc33',
}),
}),
}),
});
const map = new Map({
@@ -34,8 +34,8 @@ const map = new Map({
target: 'map',
view: new View({
center: [-11000000, 4600000],
zoom: 4
})
zoom: 4,
}),
});
const modify = new Modify({source: source});
@@ -47,18 +47,17 @@ const typeSelect = document.getElementById('type');
function addInteractions() {
draw = new Draw({
source: source,
type: typeSelect.value
type: typeSelect.value,
});
map.addInteraction(draw);
snap = new Snap({source: source});
map.addInteraction(snap);
}
/**
* Handle change event.
*/
typeSelect.onchange = function() {
typeSelect.onchange = function () {
map.removeInteraction(draw);
map.removeInteraction(snap);
addInteractions();

View File

@@ -1,17 +1,17 @@
import Draw from '../src/ol/interaction/Draw.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import Draw from '../src/ol/interaction/Draw.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
const raster = new TileLayer({
source: new OSM()
source: new OSM(),
});
const source = new VectorSource({wrapX: false});
const vector = new VectorLayer({
source: source
source: source,
});
const map = new Map({
@@ -19,8 +19,8 @@ const map = new Map({
target: 'map',
view: new View({
center: [-11000000, 4600000],
zoom: 4
})
zoom: 4,
}),
});
const typeSelect = document.getElementById('type');
@@ -31,17 +31,16 @@ function addInteraction() {
if (value !== 'None') {
draw = new Draw({
source: source,
type: typeSelect.value
type: typeSelect.value,
});
map.addInteraction(draw);
}
}
/**
* Handle change event.
*/
typeSelect.onchange = function() {
typeSelect.onchange = function () {
map.removeInteraction(draw);
addInteraction();
};

View File

@@ -1,17 +1,17 @@
import Draw from '../src/ol/interaction/Draw.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import Draw from '../src/ol/interaction/Draw.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
const raster = new TileLayer({
source: new OSM()
source: new OSM(),
});
const source = new VectorSource({wrapX: false});
const vector = new VectorLayer({
source: source
source: source,
});
const map = new Map({
@@ -19,8 +19,8 @@ const map = new Map({
target: 'map',
view: new View({
center: [-11000000, 4600000],
zoom: 4
})
zoom: 4,
}),
});
const typeSelect = document.getElementById('type');
@@ -32,17 +32,16 @@ function addInteraction() {
draw = new Draw({
source: source,
type: typeSelect.value,
freehand: true
freehand: true,
});
map.addInteraction(draw);
}
}
/**
* Handle change event.
*/
typeSelect.onchange = function() {
typeSelect.onchange = function () {
map.removeInteraction(draw);
addInteraction();
};

View File

@@ -1,18 +1,21 @@
import Draw, {
createBox,
createRegularPolygon,
} from '../src/ol/interaction/Draw.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import Polygon from '../src/ol/geom/Polygon.js';
import Draw, {createRegularPolygon, createBox} from '../src/ol/interaction/Draw.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import View from '../src/ol/View.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
const raster = new TileLayer({
source: new OSM()
source: new OSM(),
});
const source = new VectorSource({wrapX: false});
const vector = new VectorLayer({
source: source
source: source,
});
const map = new Map({
@@ -20,8 +23,8 @@ const map = new Map({
target: 'map',
view: new View({
center: [-11000000, 4600000],
zoom: 4
})
zoom: 4,
}),
});
const typeSelect = document.getElementById('type');
@@ -39,7 +42,7 @@ function addInteraction() {
geometryFunction = createBox();
} else if (value === 'Star') {
value = 'Circle';
geometryFunction = function(coordinates, geometry) {
geometryFunction = function (coordinates, geometry) {
const center = coordinates[0];
const last = coordinates[1];
const dx = center[0] - last[0];
@@ -49,7 +52,7 @@ function addInteraction() {
const newCoordinates = [];
const numPoints = 12;
for (let i = 0; i < numPoints; ++i) {
const angle = rotation + i * 2 * Math.PI / numPoints;
const angle = rotation + (i * 2 * Math.PI) / numPoints;
const fraction = i % 2 === 0 ? 1 : 0.5;
const offsetX = radius * fraction * Math.cos(angle);
const offsetY = radius * fraction * Math.sin(angle);
@@ -67,17 +70,16 @@ function addInteraction() {
draw = new Draw({
source: source,
type: value,
geometryFunction: geometryFunction
geometryFunction: geometryFunction,
});
map.addInteraction(draw);
}
}
/**
* Handle change event.
*/
typeSelect.onchange = function() {
typeSelect.onchange = function () {
map.removeInteraction(draw);
addInteraction();
};

View File

@@ -1,13 +1,13 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {MultiPoint, Point} from '../src/ol/geom.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
import {MultiPoint, Point} from '../src/ol/geom.js';
import {getVectorContext} from '../src/ol/render.js';
const tileLayer = new TileLayer({
source: new OSM()
source: new OSM(),
});
const map = new Map({
@@ -15,30 +15,30 @@ const map = new Map({
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
const imageStyle = new Style({
image: new CircleStyle({
radius: 5,
fill: new Fill({color: 'yellow'}),
stroke: new Stroke({color: 'red', width: 1})
})
stroke: new Stroke({color: 'red', width: 1}),
}),
});
const headInnerImageStyle = new Style({
image: new CircleStyle({
radius: 2,
fill: new Fill({color: 'blue'})
})
fill: new Fill({color: 'blue'}),
}),
});
const headOuterImageStyle = new Style({
image: new CircleStyle({
radius: 5,
fill: new Fill({color: 'black'})
})
fill: new Fill({color: 'black'}),
}),
});
const n = 200;
@@ -46,16 +46,16 @@ const omegaTheta = 30000; // Rotation period in ms
const R = 7e6;
const r = 2e6;
const p = 2e6;
tileLayer.on('postrender', function(event) {
tileLayer.on('postrender', function (event) {
const vectorContext = getVectorContext(event);
const frameState = event.frameState;
const theta = 2 * Math.PI * frameState.time / omegaTheta;
const theta = (2 * Math.PI * frameState.time) / omegaTheta;
const coordinates = [];
let i;
for (i = 0; i < n; ++i) {
const t = theta + 2 * Math.PI * i / n;
const x = (R + r) * Math.cos(t) + p * Math.cos((R + r) * t / r);
const y = (R + r) * Math.sin(t) + p * Math.sin((R + r) * t / r);
const t = theta + (2 * Math.PI * i) / n;
const x = (R + r) * Math.cos(t) + p * Math.cos(((R + r) * t) / r);
const y = (R + r) * Math.sin(t) + p * Math.sin(((R + r) * t) / r);
coordinates.push([x, y]);
}
vectorContext.setStyle(imageStyle);

View File

@@ -1,29 +1,38 @@
import KML from '../src/ol/format/KML.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {createEmpty, getWidth, getHeight, extend} from '../src/ol/extent.js';
import KML from '../src/ol/format/KML.js';
import {defaults as defaultInteractions, Select} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {
Circle as CircleStyle,
Fill,
RegularShape,
Stroke,
Style,
Text,
} from '../src/ol/style.js';
import {Cluster, Stamen, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, RegularShape, Stroke, Style, Text} from '../src/ol/style.js';
import {
Select,
defaults as defaultInteractions,
} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {createEmpty, extend, getHeight, getWidth} from '../src/ol/extent.js';
const earthquakeFill = new Fill({
color: 'rgba(255, 153, 0, 0.8)'
color: 'rgba(255, 153, 0, 0.8)',
});
const earthquakeStroke = new Stroke({
color: 'rgba(255, 204, 0, 0.2)',
width: 1
width: 1,
});
const textFill = new Fill({
color: '#fff'
color: '#fff',
});
const textStroke = new Stroke({
color: 'rgba(0, 0, 0, 0.6)',
width: 3
width: 3,
});
const invisibleFill = new Fill({
color: 'rgba(255, 255, 255, 0.01)'
color: 'rgba(255, 255, 255, 0.01)',
});
function createEarthquakeStyle(feature) {
@@ -42,14 +51,14 @@ function createEarthquakeStyle(feature) {
points: 5,
angle: Math.PI,
fill: earthquakeFill,
stroke: earthquakeStroke
})
stroke: earthquakeStroke,
}),
});
}
let maxFeatureCount;
let vector = null;
const calculateClusterInfo = function(resolution) {
const calculateClusterInfo = function (resolution) {
maxFeatureCount = 0;
const features = vector.getSource().getFeatures();
let feature, radius;
@@ -62,8 +71,7 @@ const calculateClusterInfo = function(resolution) {
extend(extent, originalFeatures[j].getGeometry().getExtent());
}
maxFeatureCount = Math.max(maxFeatureCount, jj);
radius = 0.25 * (getWidth(extent) + getHeight(extent)) /
resolution;
radius = (0.25 * (getWidth(extent) + getHeight(extent))) / resolution;
feature.set('radius', radius);
}
};
@@ -81,14 +89,14 @@ function styleFunction(feature, resolution) {
image: new CircleStyle({
radius: feature.get('radius'),
fill: new Fill({
color: [255, 153, 0, Math.min(0.8, 0.4 + (size / maxFeatureCount))]
})
color: [255, 153, 0, Math.min(0.8, 0.4 + size / maxFeatureCount)],
}),
}),
text: new Text({
text: size.toString(),
fill: textFill,
stroke: textStroke
})
stroke: textStroke,
}),
});
} else {
const originalFeature = feature.get('features')[0];
@@ -98,12 +106,14 @@ function styleFunction(feature, resolution) {
}
function selectStyleFunction(feature) {
const styles = [new Style({
image: new CircleStyle({
radius: feature.get('radius'),
fill: invisibleFill
})
})];
const styles = [
new Style({
image: new CircleStyle({
radius: feature.get('radius'),
fill: invisibleFill,
}),
}),
];
const originalFeatures = feature.get('features');
let originalFeature;
for (let i = originalFeatures.length - 1; i >= 0; --i) {
@@ -119,31 +129,32 @@ vector = new VectorLayer({
source: new VectorSource({
url: 'data/kml/2012_Earthquakes_Mag5.kml',
format: new KML({
extractStyles: false
})
})
extractStyles: false,
}),
}),
}),
style: styleFunction
style: styleFunction,
});
const raster = new TileLayer({
source: new Stamen({
layer: 'toner'
})
layer: 'toner',
}),
});
const map = new Map({
layers: [raster, vector],
interactions: defaultInteractions().extend([new Select({
condition: function(evt) {
return evt.type == 'pointermove' ||
evt.type == 'singleclick';
},
style: selectStyleFunction
})]),
interactions: defaultInteractions().extend([
new Select({
condition: function (evt) {
return evt.type == 'pointermove' || evt.type == 'singleclick';
},
style: selectStyleFunction,
}),
]),
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});

View File

@@ -1,7 +1,7 @@
---
layout: example.html
title: Earthquakes with custom symbols
shortdesc: Demonstrates the use of `toCanvas` to create custom icon symbols.
shortdesc: Demonstrates the use of `toContext` to create custom icon symbols.
docs: >
This example parses a KML file and renders the features as a vector layer. The layer is given a <code>style</code> that renders earthquake locations with a custom lightning symbol and a size relative to their magnitude.
tags: "KML, vector, style, canvas, symbol"

View File

@@ -1,22 +1,29 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import KML from '../src/ol/format/KML.js';
import Map from '../src/ol/Map.js';
import Polygon from '../src/ol/geom/Polygon.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {toContext} from '../src/ol/render.js';
import Stamen from '../src/ol/source/Stamen.js';
import VectorSource from '../src/ol/source/Vector.js';
import View from '../src/ol/View.js';
import {Fill, Icon, Stroke, Style} from '../src/ol/style.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {toContext} from '../src/ol/render.js';
const symbol = [[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]];
const symbol = [
[0, 0],
[4, 2],
[6, 0],
[10, 5],
[6, 3],
[4, 5],
[0, 0],
];
let scale;
const scaleFunction = function(coordinate) {
const scaleFunction = function (coordinate) {
return [coordinate[0] * scale, coordinate[1] * scale];
};
const styleCache = {};
const styleFunction = function(feature) {
const styleFunction = 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.
@@ -27,19 +34,23 @@ const styleFunction = function(feature) {
let style = styleCache[size];
if (!style) {
const canvas = document.createElement('canvas');
const vectorContext = toContext(canvas.getContext('2d'),
{size: [size, size], pixelRatio: 1});
vectorContext.setStyle(new Style({
fill: new Fill({color: 'rgba(255, 153, 0, 0.4)'}),
stroke: new Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 2})
}));
const vectorContext = toContext(canvas.getContext('2d'), {
size: [size, size],
pixelRatio: 1,
});
vectorContext.setStyle(
new Style({
fill: new Fill({color: 'rgba(255, 153, 0, 0.4)'}),
stroke: new Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 2}),
})
);
vectorContext.drawGeometry(new Polygon([symbol.map(scaleFunction)]));
style = new Style({
image: new Icon({
img: canvas,
imgSize: [size, size],
rotation: 1.2
})
rotation: 1.2,
}),
});
styleCache[size] = style;
}
@@ -50,16 +61,16 @@ const vector = new VectorLayer({
source: new VectorSource({
url: 'data/kml/2012_Earthquakes_Mag5.kml',
format: new KML({
extractStyles: false
})
extractStyles: false,
}),
}),
style: styleFunction
style: styleFunction,
});
const raster = new TileLayer({
source: new Stamen({
layer: 'toner'
})
layer: 'toner',
}),
});
const map = new Map({
@@ -67,6 +78,6 @@ const map = new Map({
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});

View File

@@ -1,46 +1,46 @@
import {Map, View} from '../src/ol/index.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import {Modify, Select, Draw, Snap} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {Draw, Modify, Select, Snap} from '../src/ol/interaction.js';
import {Map, View} from '../src/ol/index.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {useGeographic} from '../src/ol/proj.js';
useGeographic();
const source = new VectorSource({
url: 'data/geojson/countries.geojson',
format: new GeoJSON()
format: new GeoJSON(),
});
const map = new Map({
target: 'map',
layers: [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
new VectorLayer({
source: source
})
source: source,
}),
],
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
const select = new Select();
const modify = new Modify({
features: select.getFeatures()
features: select.getFeatures(),
});
const draw = new Draw({
type: 'Polygon',
source: source
source: source,
});
const snap = new Snap({
source: source
source: source,
});
function removeInteractions() {

View File

@@ -1,9 +1,8 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls, ScaleLine} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import TileWMS from '../src/ol/source/TileWMS.js';
import View from '../src/ol/View.js';
import {ScaleLine, defaults as defaultControls} from '../src/ol/control.js';
const layers = [
new TileLayer({
@@ -11,23 +10,23 @@ const layers = [
url: 'https://ahocevar.com/geoserver/wms',
params: {
'LAYERS': 'ne:NE1_HR_LC_SR_W_DR',
'TILED': true
}
})
})
'TILED': true,
},
}),
}),
];
const map = new Map({
controls: defaultControls().extend([
new ScaleLine({
units: 'degrees'
})
units: 'degrees',
}),
]),
layers: layers,
target: 'map',
view: new View({
projection: 'EPSG:4326',
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});

View File

@@ -0,0 +1,9 @@
---
layout: example.html
title: Custom map element
shortdesc: Example of a custom element with a map.
docs: >
The example creates and registers a custom element, `ol-map`, which contains a simple map. **Note:** Only works in browsers that supports `ShadowRoot`.
tags: "es2015, web-component, custom-element, shadow-dom"
---
<ol-map id="map" class="map"></ol-map>

View File

@@ -0,0 +1,41 @@
import Map from '../src/ol/Map.js';
import OSM from '../src/ol/source/OSM.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
class OLComponent extends HTMLElement {
constructor() {
super();
this.shadow = this.attachShadow({mode: 'open'});
const link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.setAttribute('href', 'css/ol.css');
this.shadow.appendChild(link);
const style = document.createElement('style');
style.innerText = `
:host {
display: block;
}
`;
this.shadow.appendChild(style);
const div = document.createElement('div');
div.style.width = '100%';
div.style.height = '100%';
this.shadow.appendChild(div);
this.map = new Map({
target: div,
layers: [
new TileLayer({
source: new OSM(),
}),
],
view: new View({
center: [0, 0],
zoom: 2,
}),
});
}
}
customElements.define('ol-map', OLComponent);

View File

@@ -1,6 +0,0 @@
.overlay {
background-color: yellow;
border-radius: 6px;
padding: 4px;
white-space: nowrap;
}

View File

@@ -3,13 +3,9 @@ layout: example.html
title: Map Export
shortdesc: Example of exporting a map as a PNG image.
docs: >
Example of exporting a map as a PNG image. This example use the <a href="https://www.npmjs.com/package/html-to-image">html-to-image</a>
library.
Example of exporting a map as a PNG image.
tags: "export, png, openstreetmap"
---
<div id="map" class="map"></div>
<div style="display: none;">
<div class="overlay" id="null">Null Island</div>
</div>
<a id="export-png" class="btn btn-default"><i class="fa fa-download"></i> Download PNG</a>
<a id="image-download" download="map.png"></a>

View File

@@ -1,53 +1,65 @@
import GeoJSON from '../src/ol/format/GeoJSON.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import Overlay from '../src/ol/Overlay.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 {toPng} from 'html-to-image';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
new VectorLayer({
source: new VectorSource({
url: 'data/geojson/countries.geojson',
format: new GeoJSON()
})
})
format: new GeoJSON(),
}),
opacity: 0.5,
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
map.addOverlay(new Overlay({
position: [0, 0],
element: document.getElementById('null')
}));
// export options for html-to-image.
// See: https://github.com/bubkoo/html-to-image#options
const exportOptions = {
filter: function(element) {
return element.className ? element.className.indexOf('ol-control') === -1 : true;
}
};
document.getElementById('export-png').addEventListener('click', function() {
map.once('rendercomplete', function() {
toPng(map.getTargetElement(), exportOptions)
.then(function(dataURL) {
const link = document.getElementById('image-download');
link.href = dataURL;
link.click();
});
document.getElementById('export-png').addEventListener('click', function () {
map.once('rendercomplete', function () {
const mapCanvas = document.createElement('canvas');
const size = map.getSize();
mapCanvas.width = size[0];
mapCanvas.height = size[1];
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);
}
}
);
if (navigator.msSaveBlob) {
// link download attribuute does not work on MS browsers
navigator.msSaveBlob(mapCanvas.msToBlob(), 'map.png');
} else {
const link = document.getElementById('image-download');
link.href = mapCanvas.toDataURL();
link.click();
}
});
map.renderSync();
});

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

@@ -1,91 +1,110 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
const raster = new TileLayer({
source: new OSM()
source: new OSM(),
});
const format = new WKT();
const feature = format.readFeature(
'POLYGON((10.689697265625 -25.0927734375, 34.595947265625 ' +
'-20.1708984375, 38.814697265625 -35.6396484375, 13.502197265625 ' +
'-39.1552734375, 10.689697265625 -25.0927734375))');
'-20.1708984375, 38.814697265625 -35.6396484375, 13.502197265625 ' +
'-39.1552734375, 10.689697265625 -25.0927734375))'
);
feature.getGeometry().transform('EPSG:4326', 'EPSG:3857');
const vector = new VectorLayer({
source: new VectorSource({
features: [feature]
})
features: [feature],
}),
opacity: 0.5,
});
const map = new Map({
layers: [raster, vector],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
const dims = {
a0: [1189, 841],
a1: [841, 594],
a2: [594, 420],
a3: [420, 297],
a4: [297, 210],
a5: [210, 148]
a5: [210, 148],
};
const exportButton = document.getElementById('export-pdf');
exportButton.addEventListener('click', function() {
exportButton.addEventListener(
'click',
function () {
exportButton.disabled = true;
document.body.style.cursor = 'progress';
exportButton.disabled = true;
document.body.style.cursor = 'progress';
const format = document.getElementById('format').value;
const resolution = document.getElementById('resolution').value;
const dim = dims[format];
const width = Math.round((dim[0] * resolution) / 25.4);
const height = Math.round((dim[1] * resolution) / 25.4);
const size = map.getSize();
const viewResolution = map.getView().getResolution();
const format = document.getElementById('format').value;
const resolution = document.getElementById('resolution').value;
const dim = dims[format];
const width = Math.round(dim[0] * resolution / 25.4);
const height = Math.round(dim[1] * resolution / 25.4);
const size = map.getSize();
const viewResolution = map.getView().getResolution();
map.once('rendercomplete', function() {
const mapCanvas = document.createElement('canvas');
mapCanvas.width = width;
mapCanvas.height = height;
const mapContext = mapCanvas.getContext('2d');
document.querySelectorAll('.ol-layer canvas').forEach(function(canvas) {
if (canvas.width > 0) {
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);
}
map.once('rendercomplete', function () {
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';
});
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
const printSize = [width, height];
map.setSize(printSize);
const scaling = Math.min(width / size[0], height / size[1]);
map.getView().setResolution(viewResolution / scaling);
}, false);
// Set print size
const printSize = [width, height];
map.setSize(printSize);
const scaling = Math.min(width / size[0], height / size[1]);
map.getView().setResolution(viewResolution / scaling);
},
false
);

View File

@@ -1,25 +1,24 @@
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 as defaultControls} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import View from '../src/ol/View.js';
import ZoomSlider from '../src/ol/control/ZoomSlider.js';
import {defaults as defaultControls} from '../src/ol/control.js';
const view = new View({
center: [328627.563458, 5921296.662223],
zoom: 8,
extent: [-572513.341856, 5211017.966314,
916327.095083, 6636950.728974]
extent: [-572513.341856, 5211017.966314, 916327.095083, 6636950.728974],
});
new Map({
layers: [
new TileLayer({
source: new OSM()
})
source: new OSM(),
}),
],
keyboardEventTarget: document,
target: 'map',
view: view,
controls: defaultControls().extend([new ZoomSlider()])
controls: defaultControls().extend([new ZoomSlider()]),
});

View File

@@ -1,43 +1,31 @@
import ExtentInteraction from '../src/ol/interaction/Extent.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import ExtentInteraction from '../src/ol/interaction/Extent.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {shiftKeyOnly} from '../src/ol/events/condition.js';
const vectorSource = new VectorSource({
url: 'data/geojson/countries.geojson',
format: new GeoJSON()
format: new GeoJSON(),
});
const map = new Map({
layers: [
new TileLayer({
source: new OSM()
source: new OSM(),
}),
new VectorLayer({
source: vectorSource
})
source: vectorSource,
}),
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
zoom: 2,
}),
});
const extent = new ExtentInteraction();
const extent = new ExtentInteraction({condition: shiftKeyOnly});
map.addInteraction(extent);
extent.setActive(false);
//Enable interaction by holding shift
window.addEventListener('keydown', function(event) {
if (event.keyCode == 16) {
extent.setActive(true);
}
});
window.addEventListener('keyup', function(event) {
if (event.keyCode == 16) {
extent.setActive(false);
}
});

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