Compare commits

..

1751 Commits

Author SHA1 Message Date
ahocevar
349e602ee5 Update package version to 5.0.3 2018-07-11 11:01:34 +02:00
ahocevar
9cb10efe4b Changelog for v5.0.3 2018-07-11 10:56:05 +02:00
Andreas Hocevar
871a283601 Merge pull request #8364 from ahocevar/ie-examples
Make examples work in IE11
2018-07-11 10:51:08 +02:00
Andreas Hocevar
d1a609e0a3 Merge pull request #8363 from ahocevar/package-json-autogenerate
Autogenerate src/ol/package.json
2018-07-11 10:49:43 +02:00
Andreas Hocevar
e0c5529878 Merge pull request #8371 from ahocevar/empty-replay-groups
Skip rendering when there is no replay group
2018-07-11 10:47:42 +02:00
ahocevar
59c3eedbab Updates for v5.0.2 2018-07-05 00:04:32 +02:00
Andreas Hocevar
49050063d5 Merge pull request #8343 from tschaub/starter-project
Starter projects
2018-07-04 23:53:48 +02:00
ahocevar
11024ad294 Update package version to 5.0.1 2018-07-04 22:02:38 +02:00
ahocevar
73f1428701 Changelog for v5.0.1 2018-07-04 21:52:27 +02:00
Andreas Hocevar
a579b168f7 Merge pull request #8341 from ahocevar/side-effects
Set sideEffects: false flag
2018-07-04 21:46:51 +02:00
Andreas Hocevar
537a21fd48 Merge pull request #8342 from ahocevar/quickstart-links
Fix links and description in quickstart tutorial
2018-07-04 21:46:29 +02:00
Tim Schaub
062b743f89 Collapsible details 2018-06-26 13:47:28 -06:00
Tim Schaub
79b959da66 Update version 2018-06-26 13:39:03 -06:00
Tim Schaub
234b05a48a Changelog wording 2018-06-26 13:27:27 -06:00
Tim Schaub
1627e1fe79 Update package versions 2018-06-26 13:21:36 -06:00
Tim Schaub
37bb4ea056 Changelog for v5.0.0 2018-06-26 13:19:12 -06:00
Andreas Hocevar
fd44f0d4cb Merge pull request #8315 from openlayers/greenkeeper/eslint-5.0.1
Update eslint to the latest version 🚀
2018-06-26 11:36:36 +02:00
greenkeeper[bot]
0994712602 chore(package): update eslint to version 5.0.1 2018-06-26 08:47:12 +00:00
Tim Schaub
2d5bc174dd Merge pull request #8314 from tschaub/hit-tolerance
Accept hitTolerance in map.forEachLayerAtPixel()
2018-06-25 10:41:43 -06:00
simonseyock
a4f29890f7 Upgrade notes about map.forEachLayerAtPixel() 2018-06-25 09:09:15 -06:00
simonseyock
fcc7d87b06 Support hitTolerance in forEachLayerAtPixel 2018-06-25 09:09:02 -06:00
Tim Schaub
3b64641e5a Merge pull request #7750 from schmidtk/canvas-polygon-replay
Don't assume fill for canvas polygon hit detection.
2018-06-25 08:36:30 -06:00
Tim Schaub
dfe3b8ac3d Merge pull request #8309 from openlayers/greenkeeper/eslint-5.0.0
Update eslint to the latest version 🚀
2018-06-24 10:58:24 -06:00
Tim Schaub
81f864bb4c Add doc for return 2018-06-24 10:08:16 -06:00
greenkeeper[bot]
6f481e0b6a chore(package): update eslint to version 5.0.0 2018-06-24 09:45:04 -06:00
Tim Schaub
2c6b3f3ae6 Merge pull request #8311 from openlayers/greenkeeper/webpack-4.12.1
Update webpack to the latest version 🚀
2018-06-24 09:44:03 -06:00
Tim Schaub
5c5dd8852c Merge pull request #8310 from openlayers/greenkeeper/rollup-0.61.2
Update rollup to the latest version 🚀
2018-06-24 09:41:23 -06:00
greenkeeper[bot]
c13d6cf7bb chore(package): update webpack to version 4.12.1 2018-06-24 09:48:04 +00:00
greenkeeper[bot]
8ab81942d2 chore(package): update rollup to version 0.61.2 2018-06-23 15:09:16 +00:00
Andreas Hocevar
c81ee8b92e Merge pull request #8305 from ahocevar/v5-tutorial
Update quickstart and tutorials for v5
2018-06-22 18:38:27 +02:00
ahocevar
eef39d3d1d Update quickstart and tutorials for v5 2018-06-22 17:27:50 +02:00
Andreas Hocevar
5b105c5601 Merge pull request #8301 from ahocevar/imagemode-shortcut
Do not render vectors in image mode
2018-06-22 14:19:24 +02:00
Andreas Hocevar
d85b7ffed7 Merge pull request #8302 from ahocevar/ignore-ol-nodemodules
Ignore node_modules everywhere
2018-06-22 14:18:19 +02:00
Andreas Hocevar
75bd4ed391 Merge pull request #8297 from openlayers/greenkeeper/rollup-0.61.1
Update rollup to the latest version 🚀
2018-06-22 13:52:02 +02:00
ahocevar
cd35c6731f Ignore node_modules everywhere
This allows users to use npm link directly from src/ol, without risiking
to commit the src/ol/node_modules directory.
2018-06-22 13:43:50 +02:00
ahocevar
130c0eb436 Do not render vectors in image mode 2018-06-22 13:40:53 +02:00
Andreas Hocevar
93eca62cf2 Merge pull request #8299 from ahocevar/ol-named-exports
Make classes in ol/ available as named exports from ol
2018-06-22 13:09:12 +02:00
ahocevar
785bef7640 Also re-export non-API classes 2018-06-21 18:29:20 +02:00
ahocevar
28409486a5 Make classes in ol/ available as named exports from ol 2018-06-21 18:08:17 +02:00
Andreas Hocevar
cc3dc1d681 Merge pull request #8298 from ahocevar/ol-readme
Add README for ol package
2018-06-21 14:59:04 +02:00
ahocevar
2e863b095e Add README for ol package
The links in the readme should be updated at some point.
2018-06-21 14:50:07 +02:00
greenkeeper[bot]
7ba58e011c chore(package): update rollup to version 0.61.1 2018-06-21 12:23:38 +00:00
Andreas Hocevar
15d116b3c1 Merge pull request #8295 from ahocevar/build-5
Prepare for building/publishing v5
2018-06-21 13:59:19 +02:00
Frédéric Junod
9034f721b5 Merge pull request #8296 from fredj/cleanup
Fix style documentation
2018-06-21 13:50:01 +02:00
Frederic Junod
3f55c0a985 Remove extra property in Vector and VectorTile typedef 2018-06-21 11:39:39 +02:00
Frederic Junod
bb3bd7380f Fix style documentation 2018-06-21 11:32:58 +02:00
ahocevar
dc514d14e9 Serve examples with webpack-dev-server 2018-06-21 11:19:18 +02:00
ahocevar
5582914ffa Add set-version task to set version from package.json 2018-06-21 11:18:52 +02:00
ahocevar
6cddd2d44a Add ol package.json 2018-06-21 11:17:26 +02:00
ahocevar
57110058fd Move css to src/ol 2018-06-21 11:16:57 +02:00
Andreas Hocevar
d74c8813e1 Merge pull request #8294 from ahocevar/no-typecheck
Remove non-functional type checks from testing
2018-06-21 08:20:30 +02:00
Frédéric Junod
0a8fa8f0ed Merge pull request #8292 from fredj/cleanup
Remove now unneeded single quotes in examples
2018-06-21 08:19:53 +02:00
Frédéric Junod
2af63ad0fa Merge pull request #8291 from fredj/graticule_cleanup
Graticule code cleanup
2018-06-21 08:19:29 +02:00
ahocevar
2de37be014 Remove non-functional type checks from testing 2018-06-21 07:55:10 +02:00
Andreas Hocevar
67f06deeff Merge pull request #8293 from openlayers/greenkeeper/rollup-0.61.0
Update rollup to the latest version 🚀
2018-06-21 07:50:05 +02:00
greenkeeper[bot]
b1c300629d chore(package): update rollup to version 0.61.0 2018-06-20 20:05:58 +00:00
Frederic Junod
a8fa6e53ff Remove now unneeded single quotes in examples 2018-06-20 17:11:59 +02:00
Frederic Junod
e91fde00c9 Better variables scoping 2018-06-20 15:51:11 +02:00
Frederic Junod
40236fbd8b Remove local variables in ol/Graticule 2018-06-20 15:51:07 +02:00
Frédéric Junod
ff34bb75cd Merge pull request #8287 from fredj/rename_TileUTFGrid
Rename ol/source/TileUTFGrid to ol/source/UTFGrid
2018-06-19 15:36:06 +02:00
Frédéric Junod
ea7536ea67 Merge pull request #8286 from fredj/f_4872
Fix class name property in Overlay documentation
2018-06-19 14:02:47 +02:00
Frederic Junod
f257a8938f Rename ol/source/TileUTFGrid to ol/source/UTFGrid 2018-06-19 14:02:15 +02:00
Frederic Junod
26b47b7e3c Fix class name property in Overlay documentation
Fixes #4872
2018-06-19 08:55:09 +02:00
Frédéric Junod
dbaf3d25fe Merge pull request #8285 from openlayers/greenkeeper/google-closure-compiler-20180610.0.2
Update google-closure-compiler to the latest version 🚀
2018-06-19 08:32:03 +02:00
greenkeeper[bot]
d53e518df0 chore(package): update google-closure-compiler to version 20180610.0.2 2018-06-18 21:35:07 +00:00
Tim Schaub
64282a3531 Merge pull request #8281 from gberaudo/rename_default_data_projection
Rename default data projection
2018-06-18 12:50:17 -07:00
Frédéric Junod
bf213f613c Merge pull request #8283 from fredj/rm_custom-builds_ref
Remove references to tutorials/custom-builds.html
2018-06-18 15:19:05 +02:00
Frederic Junod
39037caaf2 Remove references to tutorials/custom-builds.html 2018-06-18 15:04:06 +02:00
Guillaume Beraudo
e131fe3728 Update upgrade notes 2018-06-18 14:08:56 +02:00
ThomasG77
cbaa9a7567 Rename defaultDataProjection to dataProjection #8152 2018-06-18 14:08:50 +02:00
Frédéric Junod
6c538c12f6 Merge pull request #8280 from fredj/cleanup
Add missing property in VectorTile options, remove params from createRenderer
2018-06-18 13:41:02 +02:00
Andreas Hocevar
17bfc71048 Merge pull request #8277 from ahocevar/fix-tilesource-docs
Fix code block in comment
2018-06-18 12:38:53 +02:00
Frederic Junod
1c897c33ea Remove extra parameters passed to createRenderer 2018-06-18 11:45:09 +02:00
Frederic Junod
eb902974f3 Add missing properties in option typedef 2018-06-18 11:44:57 +02:00
ahocevar
4127c26ecc Fix code block in comment 2018-06-18 11:19:15 +02:00
Andreas Hocevar
6903c1a88a Merge pull request #8273 from ahocevar/rm-externs
Remove the externs/ directory
2018-06-16 00:30:08 +02:00
Andreas Hocevar
8458be2bba Merge pull request #8275 from openlayers/greenkeeper/serve-9.0.0
Update serve to the latest version 🚀
2018-06-15 21:29:26 +02:00
greenkeeper[bot]
0d5eb14529 chore(package): update serve to version 9.0.0 2018-06-15 19:18:06 +00:00
ahocevar
a7c6df4d80 Remove the externs/ directory 2018-06-15 19:43:10 +02:00
Andreas Hocevar
25c3b55d8e Merge pull request #8271 from openlayers/greenkeeper/google-closure-compiler-20180610.0.1
chore(package): update google-closure-compiler to version 20180610.0.1
2018-06-14 16:39:03 +02:00
greenkeeper[bot]
7934f66c0b chore(package): update google-closure-compiler to version 20180610.0.1
Closes #8268
2018-06-14 13:44:04 +00:00
Andreas Hocevar
8980ab7b11 Merge pull request #8246 from ahocevar/movetolerance-dragging
Don't go back to not moving when dragging
2018-06-14 13:28:48 +02:00
Andreas Hocevar
9de086b561 Merge pull request #8270 from openlayers/greenkeeper/rollup-0.60.7
chore(package): update rollup to version 0.60.7
2018-06-14 13:22:57 +02:00
greenkeeper[bot]
5772504e3e chore(package): update rollup to version 0.60.7
Closes #8269
2018-06-14 07:17:50 +00:00
Tim Schaub
7c7cca4702 Merge pull request #8266 from openlayers/greenkeeper/rollup-0.60.4
chore(package): update rollup to version 0.60.4
2018-06-13 17:13:12 -06:00
greenkeeper[bot]
bbd12cf897 chore(package): update rollup to version 0.60.4
Closes #8264
2018-06-13 07:39:03 +00:00
Andreas Hocevar
affc59e2c5 Merge pull request #8261 from openlayers/greenkeeper/rollup-0.60.2
Update rollup to the latest version 🚀
2018-06-11 14:00:46 +02:00
greenkeeper[bot]
a67ca1f46c chore(package): update rollup to version 0.60.2 2018-06-11 09:51:32 +00:00
Andreas Hocevar
653e273214 Merge pull request #8260 from openlayers/greenkeeper/sinon-6.0.0
Update sinon to the latest version 🚀
2018-06-11 11:02:39 +02:00
greenkeeper[bot]
2c893d19a4 chore(package): update sinon to version 6.0.0 2018-06-11 07:23:59 +00:00
Andreas Hocevar
288ac0acdd Merge pull request #8258 from ahocevar/webpack-4
Use Webpack 4 for tests (and examples)
2018-06-08 14:56:52 +02:00
ahocevar
b2fef55ae9 Move uglifyjs-webpack-plugin to devDependencies 2018-06-08 13:55:42 +02:00
ahocevar
da755d9e84 Make tests (and sourcemap) work with webpack4 2018-06-08 13:00:10 +02:00
ahocevar
2837272590 Make webpack4 module structure work 2018-06-08 12:58:16 +02:00
ahocevar
649b7be4c2 Make common chunk (and sourcemap) work 2018-06-08 12:57:38 +02:00
ahocevar
f8abb5def1 Update dependencies 2018-06-08 12:56:32 +02:00
Tim Schaub
48cbca1f6e Upgrade to Webpack 4 2018-06-07 11:24:39 +02:00
Andreas Hocevar
79a5bd6538 Merge pull request #8252 from openlayers/greenkeeper/rollup-0.60.1
Update rollup to the latest version 🚀
2018-06-07 10:48:02 +02:00
greenkeeper[bot]
a3a092624e chore(package): update rollup to version 0.60.1 2018-06-07 06:23:01 +00:00
Frédéric Junod
7f71137147 Merge pull request #8250 from fredj/cleanup
Fix various jsdoc types
2018-06-06 16:47:14 +02:00
Andreas Hocevar
3683e1ef6e Merge pull request #8248 from openlayers/greenkeeper/serve-8.0.0
Update serve to the latest version 🚀
2018-06-06 16:15:56 +02:00
Frederic Junod
6444e6989d Add missing properties in option typedef 2018-06-06 16:14:22 +02:00
Frederic Junod
abc9d14dca Convert projection like to Projection in transform function 2018-06-06 16:14:22 +02:00
Frederic Junod
972781ea9d Better array typing 2018-06-06 16:14:22 +02:00
Frederic Junod
104a9a56e9 Simplify opt param test for undefined value
To make the closure compiler happy
2018-06-06 16:14:22 +02:00
greenkeeper[bot]
52a76ded63 chore(package): update serve to version 8.0.0 2018-06-06 10:37:52 +00:00
Andreas Hocevar
a2070362f9 Merge pull request #8247 from openlayers/greenkeeper/rollup-0.60.0
Update rollup to the latest version 🚀
2018-06-06 09:56:37 +02:00
greenkeeper[bot]
9b8883a871 chore(package): update rollup to version 0.60.0 2018-06-06 06:12:52 +00:00
ahocevar
5080a6d401 Don't go back to not moving when dragging 2018-06-05 21:09:38 +02:00
Andreas Hocevar
448a33eb4b Merge pull request #8245 from ahocevar/fix-vectortile-docs
Fix vector tile docs and types
2018-06-05 17:03:40 +02:00
ahocevar
08e0a0dfea Fix vector tile docs and types 2018-06-05 16:38:15 +02:00
Andreas Hocevar
7e2814d110 Merge pull request #8241 from openlayers/greenkeeper/recast-0.15.0
Update recast to the latest version 🚀
2018-06-04 08:47:15 +02:00
greenkeeper[bot]
c21d39840c chore(package): update recast to version 0.15.0 2018-06-02 04:22:24 +00:00
Andreas Hocevar
94b7641f90 Merge pull request #8233 from ahocevar/rollup
Use rollup instead of webpack for the full build
2018-05-30 18:21:16 +02:00
Andreas Hocevar
95b38a1744 Merge pull request #8231 from bjornharrtell/fix-jsts2
Fix JSTS usage with OL classes injected
2018-05-30 14:00:54 +02:00
ahocevar
04e825e49a Use rollup instead of webpack for the full build 2018-05-29 15:24:51 +02:00
Tim Schaub
ab72edd698 Merge pull request #8230 from openlayers/greenkeeper/serve-7.0.0
Update serve to the latest version 🚀
2018-05-28 21:43:17 -06:00
Andreas Hocevar
25034ffd95 Merge pull request #8229 from ahocevar/raster-from-vectorlayer
Support layers instead of renderers for ol/source/Raster
2018-05-28 22:15:02 +02:00
Björn Harrtell
6e27a89fef Fix and simplify import/inject 2018-05-28 21:09:27 +02:00
Björn Harrtell
8369da365f Fix JSTS usage with OL classes injected 2018-05-28 21:09:21 +02:00
greenkeeper[bot]
f02d0afdcf chore(package): update serve to version 7.0.0 2018-05-28 17:11:33 +00:00
ahocevar
f5399de58d Improve API docs 2018-05-28 10:39:29 +02:00
ahocevar
93287cb9fe Remove redundant check 2018-05-28 10:37:22 +02:00
ahocevar
81c0c80a2b Support tile, image and vector layers 2018-05-28 10:28:27 +02:00
ahocevar
137c875df7 Support vector layers instead of renderers for ol/source/Raster 2018-05-28 10:23:47 +02:00
Andreas Hocevar
97dedc7d07 Merge pull request #8227 from ahocevar/better-vectortile-experience
Better vectortile experience
2018-05-28 09:49:26 +02:00
ahocevar
8e42f0601a Add a note about the disabled transition option 2018-05-27 13:48:48 +02:00
ahocevar
da570c3a74 Update tests 2018-05-27 13:48:48 +02:00
Andreas Hocevar
a59dd8ea65 Merge pull request #8225 from ahocevar/image-vector-fixes
renderMode: 'image' fixes for ol/layer/Vector
2018-05-25 14:46:53 +02:00
Andreas Hocevar
eca6918471 Merge pull request #8226 from ahocevar/rastersource-renderer
Accept renderers as sources for the Raster source
2018-05-25 14:45:42 +02:00
ahocevar
3e07eef17e Remove extra param annotation 2018-05-25 12:27:21 +02:00
ahocevar
f53a1e7507 Accept renderers as sources for the raster source 2018-05-25 12:18:02 +02:00
ahocevar
c7207c5a07 Allow using the image renderer vor vector layers 2018-05-25 12:18:02 +02:00
ahocevar
e666b7cdeb Do not clip the image for vector layers 2018-05-25 10:40:20 +02:00
ahocevar
c2c9cdc9ea Update documentation for renderMode: image 2018-05-25 09:47:42 +02:00
ahocevar
4f471c786f Fix prepare/compose sequence to support icon loading 2018-05-25 09:46:44 +02:00
ahocevar
d867ae1f0e Avoid duplicate precompose and postcompose events 2018-05-25 09:45:09 +02:00
ahocevar
c24976155b Prepare tiles for rendering earlier
By overriding getTile() and creating replay and image there, we can do
all preparations earlier and stop creating new tiles when we have maxed
out the frame time budget. It also allows us to get rid of the
drawTileImage override.
2018-05-24 15:56:26 +02:00
ahocevar
690efda169 Stop preparing new tiles when out of frame time budget 2018-05-24 15:55:36 +02:00
ahocevar
d60987b33c Move getTile logic to a dedicated method 2018-05-24 15:49:00 +02:00
ahocevar
710cefc8dc Create interim tiles for vector image tiles 2018-05-24 15:42:30 +02:00
ahocevar
dcdfc22b95 For performance, remove transition for vector tiles 2018-05-24 15:39:33 +02:00
ahocevar
64ad81cffa Use calculated extent 2018-05-23 16:23:37 +02:00
Andreas Hocevar
7149b6ddab Merge pull request #8210 from ahocevar/stable-pattern-offset
Align patterns and gradients to a grid
2018-05-22 17:30:59 +02:00
ahocevar
976bb6b23c Indicate required fill alignment with boolean 2018-05-22 16:30:42 +02:00
ahocevar
7cfa65b8c3 Align patterns and gradients to a grid 2018-05-22 16:05:32 +02:00
Tim Schaub
c32bd2274c Merge pull request #8208 from openlayers/greenkeeper/marked-0.4.0
Update marked to the latest version 🚀
2018-05-21 13:44:08 -06:00
greenkeeper[bot]
791115b826 chore(package): update marked to version 0.4.0 2018-05-21 14:04:05 +00:00
Andreas Hocevar
27313bf65a Merge pull request #8205 from openlayers/greenkeeper/mocha-5.2.0
Update mocha to the latest version 🚀
2018-05-21 04:54:15 -05:00
Andreas Hocevar
8eafdf1884 Merge pull request #8201 from ahocevar/no-babelrc
Remove babelrc, transform using babel-core
2018-05-21 03:52:00 -05:00
ahocevar
614b8cd7be Add babel-core as explicit dev dependency 2018-05-21 10:36:47 +02:00
greenkeeper[bot]
8717f10e60 chore(package): update mocha to version 5.2.0 2018-05-19 02:22:04 +00:00
Andreas Hocevar
9d5983ee68 Merge pull request #8203 from ahocevar/typechecking-complete
Type checking complete
2018-05-18 08:24:01 -05:00
Andreas Hocevar
2949e8d594 Merge pull request #8204 from ahocevar/control-defaults
Document ol/control~defaults in the right place
2018-05-18 08:23:39 -05:00
ahocevar
83e00269b7 Document ol/control~defaults in the right place 2018-05-17 18:19:14 -05:00
ahocevar
ee395c325c Change typecheck warnings to errors 2018-05-17 12:30:01 -05:00
ahocevar
64e1139230 Fix remaining type issues 2018-05-17 12:29:22 -05:00
ahocevar
8b8d94c78a Remove babelrc, transform using babel-core 2018-05-17 11:40:48 -05:00
Frédéric Junod
848de0ab64 Merge pull request #8200 from fredj/f_8199
Set textAlign to the canvas context
2018-05-17 14:57:48 +02:00
Frederic Junod
b34cdb58e3 Set textAlign to the canvas context 2018-05-17 13:15:04 +02:00
Frédéric Junod
8271a51f65 Merge pull request #8194 from fredj/cleanup
miscellaneous code cleanup
2018-05-16 08:31:27 +02:00
Andreas Hocevar
39ce30f09a Merge pull request #8189 from ahocevar/more-apidoc-fixes
More apidoc fixes
2018-05-14 23:11:39 -05:00
Frederic Junod
90ce02941a Better code indentation 2018-05-14 14:58:36 +02:00
Frederic Junod
9f3b103bbf Better variables scoping 2018-05-14 14:49:09 +02:00
Frederic Junod
7f0043694d Remove NOCOMPILE from examples 2018-05-14 14:42:57 +02:00
Andreas Hocevar
ab5efa37b1 Merge pull request #8191 from ahocevar/fix-text-stroke
Do not scale text outline width
2018-05-14 07:29:16 -05:00
ahocevar
26b84f09bd Do not scale text outline width 2018-05-13 18:04:53 -05:00
ahocevar
527331a797 Make docs work when published 2018-05-13 11:15:31 -05:00
ahocevar
8657e31b00 Fix a few doc comment typos 2018-05-13 10:26:29 -05:00
ahocevar
52465df88a Also add object properties and non-object typedefs 2018-05-13 10:26:29 -05:00
ahocevar
6cd6e3cc83 Normalize module paths to ignore ~/. differences 2018-05-13 10:26:29 -05:00
ahocevar
554968f8f2 Inline constructor options 2018-05-13 10:26:29 -05:00
ahocevar
cc8cffd324 Faster processing by omitting src/index.js 2018-05-13 10:26:29 -05:00
Tim Schaub
97f19cbffc Merge pull request #8187 from tschaub/hide-attribution
Hide attribution control if there are no attributions
2018-05-12 06:52:05 -07:00
Tim Schaub
0e727ae890 Hide attribution control if there are no attributions 2018-05-12 07:39:29 -06:00
Tim Schaub
06eddf4795 Merge pull request #8186 from tschaub/example-updates
Updates to get the examples building
2018-05-12 06:26:22 -07:00
Tim Schaub
1991150079 Updates to get the examples building 2018-05-11 14:02:55 -06:00
Andreas Hocevar
519e41db52 Merge pull request #8180 from ahocevar/new-jsdoc
Fix some JSDoc issues
2018-05-11 20:07:49 +02:00
ahocevar
e810387956 Fix some JSDoc issues
Also makes a few minor changes to the template, so it can be used until
we have a new doc generation process. JSDoc output is written to
build/apidoc.
2018-05-10 17:14:17 +02:00
Frédéric Junod
3890ece2b8 Merge pull request #8179 from openlayers/greenkeeper/google-closure-compiler-20180506.0.0
Update google-closure-compiler to the latest version 🚀
2018-05-10 07:32:18 +02:00
Frédéric Junod
c10e58b44e Merge pull request #8175 from fredj/happy_compiler
More typing fixes
2018-05-10 06:37:30 +02:00
greenkeeper[bot]
1c0df7b51f chore(package): update google-closure-compiler to version 20180506.0.0 2018-05-10 02:50:15 +00:00
Andreas Hocevar
25202cae79 Merge pull request #8177 from gberaudo/remove_closure_related_documentation
Remove documentation related to the closure compiler
2018-05-09 22:58:36 +02:00
Guillaume Beraudo
8e6b3bba99 Remove documentation related to the closure compiler
In OpenLayers 5, the following features are not supported anymore:
- Google Closure Compiler builds;
- custom builds.

The Google Closure Compiler is only kept for internal type checking.
2018-05-09 21:55:37 +02:00
Frederic Junod
14deb417a9 Use MSPointerEvent event type in ol/pointer/MsSource 2018-05-09 16:39:59 +02:00
Frederic Junod
d987d99c93 Don't allow null usedTiles to be passed to expireCache 2018-05-09 16:39:59 +02:00
Frederic Junod
0d99fc1f98 Set format parameter to rbush function
To remove the following closure compiler warning:
```
Function module$node_modules$rbush$index.default: called with 1 argument(s). Function requires at least 2 argument(s) and at most 2.
```
2018-05-09 16:39:59 +02:00
Frederic Junod
cdb3e1c529 Fix HTML Canvas typing issues 2018-05-09 16:39:59 +02:00
Frédéric Junod
db54301514 Merge pull request #8174 from fredj/image_options_typo
Fix typo in ol/style/Image~Options typedef
2018-05-09 15:28:02 +02:00
Frédéric Junod
1e0086460b Merge pull request #8172 from fredj/ignore_this
Ignore 'this' type in function typedef
2018-05-09 15:15:28 +02:00
Frédéric Junod
fcd6366b28 Merge pull request #8173 from fredj/xml_typecheck
Fix typing in ol/xml module
2018-05-09 15:12:08 +02:00
Frederic Junod
273be272b7 Fix typo in ol/style/Image~Options typedef 2018-05-09 15:11:21 +02:00
Frederic Junod
9c13e041e3 Add missing typecast in ol/xml 2018-05-09 14:48:17 +02:00
Frederic Junod
05b11759b7 Handle undefined 'this' in ol/xml 2018-05-09 14:48:05 +02:00
Frederic Junod
de5ac6b7c6 Fix typing in ol/xml module 2018-05-09 14:28:14 +02:00
Frederic Junod
854c95f37a Ignore 'this' type in function typedef 2018-05-09 13:49:59 +02:00
Frédéric Junod
628a49f478 Merge pull request #8169 from fredj/short_module_path
Shorter module paths for default exports
2018-05-09 13:31:19 +02:00
Frédéric Junod
c1f503b243 Merge pull request #8171 from fredj/rm_extra_override
Remove wrong override tags
2018-05-09 13:22:30 +02:00
Andreas Hocevar
26dad40e51 Merge pull request #8170 from ahocevar/basic-apidoc
Basic apidocs
2018-05-09 12:58:08 +02:00
Frederic Junod
5b4063fa17 Remove wrong override tags 2018-05-09 12:38:21 +02:00
ahocevar
636369181b Bring back basic api documentation 2018-05-09 12:01:16 +02:00
ahocevar
701aaedf4d Fix module name 2018-05-09 12:00:43 +02:00
Frederic Junod
af1f6836af Shorter module paths for default exports 2018-05-09 11:24:43 +02:00
Tim Schaub
bae2ac4f0f Merge pull request #8167 from tschaub/goodbye-oli
Remove externs/oli.js
2018-05-08 12:37:26 -07:00
Tim Schaub
167bc1ec78 Remove externs/oli.js 2018-05-08 08:38:34 -06:00
Tim Schaub
750ba4bca4 Merge pull request #8166 from tschaub/types
Updated type annotations
2018-05-08 05:45:09 -07:00
Tim Schaub
5707cdf3b6 Type annotation corrections 2018-05-07 22:16:08 -06:00
Tim Schaub
5a9fad218b Remove *.jsdoc files 2018-05-07 21:53:20 -06:00
Tim Schaub
5b65336328 Remove remaining ol.foo notation from the source 2018-05-07 21:21:50 -06:00
Tim Schaub
34c1a6b9ba Replace type annotations 2018-05-07 21:21:39 -06:00
Tim Schaub
e38680d846 Merge pull request #8165 from tschaub/update-linter-config
Update linter config
2018-05-07 14:52:21 -07:00
Tim Schaub
8e7c88d9a5 Updated type annotations 2018-05-07 15:50:56 -06:00
Tim Schaub
cfe88663aa Update type annotations in examples 2018-05-07 15:41:33 -06:00
Andreas Hocevar
3023c8343f Merge pull request #8163 from ahocevar/fix-type-syntax
Fix type syntax
2018-05-07 23:40:24 +02:00
Tim Schaub
ae55814875 Use module paths in example docs 2018-05-07 15:33:14 -06:00
Tim Schaub
8bebb561b1 Update linter config 2018-05-07 13:57:00 -06:00
ahocevar
c32ee68637 Fix type syntax 2018-05-07 14:29:10 +02:00
Andreas Hocevar
c47560b72a Merge pull request #8161 from ahocevar/textbackground-replay
Fix skipping of texts with background
2018-05-07 09:22:18 +02:00
Frédéric Junod
d0ff29fca3 Merge pull request #8156 from mainakae/master
fix assert 36 on error documentation #8147
2018-05-07 08:33:39 +02:00
ahocevar
16cad06e57 Fix skipping of texts with background 2018-05-06 16:05:46 +02:00
Pedro González
24b03b37b0 fix assert 36 on error documentation #8147
see [this issue](https://github.com/openlayers/openlayers/issues/8147)
2018-05-03 09:40:49 +02:00
Tim Schaub
2d413bb36d Merge pull request #8146 from openlayers/greenkeeper/coveralls-3.0.1
Update coveralls to the latest version 🚀
2018-05-01 19:34:11 -06:00
Tim Schaub
5fba511d03 Merge pull request #8145 from openlayers/greenkeeper/fs-extra-6.0.0
Update fs-extra to the latest version 🚀
2018-05-01 19:33:29 -06:00
greenkeeper[bot]
4adab723eb chore(package): update coveralls to version 3.0.1 2018-05-01 21:58:29 +00:00
greenkeeper[bot]
fa909e6543 chore(package): update fs-extra to version 6.0.0 2018-05-01 14:23:13 +00:00
Frédéric Junod
6d09ab122a Merge pull request #8143 from openlayers/misc
Shorter module paths for default exports
2018-04-30 13:56:55 +02:00
Frederic Junod
8684d4f7c6 Shorter module paths for default exports 2018-04-30 13:15:50 +02:00
Frederic Junod
7ed10b9579 Add missing lineDashOffset to ol/style/RegularShape~RenderOptions typedef 2018-04-30 13:15:50 +02:00
Andreas Hocevar
70c11a35a7 Merge pull request #8140 from openlayers/greenkeeper/sinon-5.0.1
Update sinon to the latest version 🚀
2018-04-30 13:00:55 +02:00
greenkeeper[bot]
640ced5f02 chore(package): update sinon to version 5.0.1 2018-04-30 09:40:58 +00:00
Tim Schaub
2894251eed Merge pull request #8137 from tschaub/not-this
Avoid `this` at top level of modules
2018-04-30 03:00:54 -06:00
Tim Schaub
e0650ab2b4 Merge pull request #8138 from tschaub/update-tasks
Update tasks to use native async/await
2018-04-30 02:55:35 -06:00
Tim Schaub
744a01489b Merge pull request #8139 from tschaub/declare-module
Add @module annotation for ol/control/util
2018-04-30 02:54:50 -06:00
Tim Schaub
2fe1cb6ced Add @module annotation for ol/control/util 2018-04-28 15:45:01 -06:00
Tim Schaub
1f67fd9bd4 Update tasks to use native async/await 2018-04-28 15:06:59 -06:00
Tim Schaub
6edc94bcc9 This is undefined in module context 2018-04-28 13:15:08 -06:00
Tim Schaub
c57b285c7a Merge pull request #8135 from tschaub/uncircular
Break the circular dependency: overview map, map, controls, overview map
2018-04-28 07:14:53 -06:00
Frédéric Junod
382c241b10 Merge pull request #8132 from fredj/types
Add minZoom to the createResolutionConstraint function return type
2018-04-28 09:00:50 +02:00
Tim Schaub
669672dce8 Break the circular dependency: overview map, map, controls, overview map 2018-04-27 21:49:28 -06:00
Frederic Junod
c4dba00c54 Add minZoom to the createResolutionConstraint function return type 2018-04-27 16:21:59 +02:00
Andreas Hocevar
8b0a87e9d4 Merge pull request #8129 from ahocevar/type-fixes
Fix some types
2018-04-27 11:19:44 +02:00
Andreas Hocevar
e86055337e Merge pull request #8131 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.5.1
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-04-27 10:54:51 +02:00
greenkeeper[bot]
1fb320ca46 chore(package): update babel-plugin-jsdoc-closure to version 1.5.1 2018-04-27 08:46:06 +00:00
Andreas Hocevar
98efd25063 Merge pull request #8130 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.5.0
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-04-27 10:40:13 +02:00
greenkeeper[bot]
4d00401f11 chore(package): update babel-plugin-jsdoc-closure to version 1.5.0 2018-04-27 08:32:56 +00:00
ahocevar
6c218a903e Fix a typedef 2018-04-27 10:10:49 +02:00
ahocevar
9bfdf818e4 Rename Style~Function path type to Style~StyleFunction 2018-04-27 09:30:51 +02:00
ahocevar
3a365fab56 Fix some module links 2018-04-27 09:30:51 +02:00
ahocevar
59d904e509 Fix some types 2018-04-27 09:30:51 +02:00
Frédéric Junod
ce84c3bf57 Merge pull request #8127 from fredj/cleanup
Move RasterOperationType into ol/source/Raster
2018-04-27 08:26:39 +02:00
Frédéric Junod
da72a7cebc Merge pull request #8123 from fredj/jsdoc_module
More Jsdoc module fixes
2018-04-27 08:21:08 +02:00
Andreas Hocevar
ad45f7294c Merge pull request #8128 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.4.2
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-04-27 00:13:59 +02:00
greenkeeper[bot]
6687f4ca85 chore(package): update babel-plugin-jsdoc-closure to version 1.4.2 2018-04-26 22:02:05 +00:00
Frederic Junod
f8435b0c0f Move RasterOperationType into ol/source/Raster
This enum is only used in ol/source/Raster
2018-04-26 15:46:50 +02:00
Frederic Junod
61067e6c2c Module type for ol.Feature and short notation for ol/render/Feature 2018-04-26 15:38:51 +02:00
Frederic Junod
11d9f6de83 Module type for ol.renderer.* 2018-04-26 15:35:48 +02:00
Frederic Junod
d8e0212833 Module type for ol.source.* 2018-04-26 15:18:44 +02:00
Frederic Junod
76769f9901 Module type for ol.struct.* 2018-04-26 15:16:21 +02:00
Frederic Junod
b4588f7d47 Module type for ol.source.UrlTile 2018-04-26 15:12:52 +02:00
Andreas Hocevar
f284b95cb8 Merge pull request #8125 from ahocevar/default-export-path
Shorter module paths for default exports
2018-04-26 14:23:02 +02:00
ahocevar
440d1ad3e1 Shorter module paths for default exports 2018-04-25 17:25:39 +02:00
Andreas Hocevar
6cb115d6a4 Merge pull request #8124 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.4.1
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-04-25 17:21:55 +02:00
greenkeeper[bot]
271bda57ce chore(package): update babel-plugin-jsdoc-closure to version 1.4.1 2018-04-25 15:13:22 +00:00
Frédéric Junod
3803f268c2 Merge pull request #8122 from fredj/cluster_format_opt
Remove unused 'format' options from Cluster source constructor
2018-04-25 10:29:02 +02:00
Frédéric Junod
d187954133 Merge pull request #8121 from fredj/jsdoc_module
More Jsdoc module fixes
2018-04-25 09:14:09 +02:00
Frederic Junod
3ca4b0e8bd Remove unused 'format' options from Cluster source constructor 2018-04-25 08:27:35 +02:00
Frederic Junod
4856c53881 Module type for ol.format.filter.* 2018-04-25 08:21:11 +02:00
Frederic Junod
17674194d4 Module type for ol.format.OWS 2018-04-25 08:21:11 +02:00
Frederic Junod
4dc1f719c0 Module type for ol.format.GML2 2018-04-25 08:21:11 +02:00
Frederic Junod
2c98e35d1a Module type for ol.TileLoadFunctionType 2018-04-25 08:21:11 +02:00
Frederic Junod
e4778b17ce Module type for ol.VectorTile 2018-04-25 08:21:11 +02:00
Tim Schaub
3003a757c1 Merge pull request #8117 from tschaub/re-export-style
Re-export style constructors from ol/style
2018-04-24 10:16:29 -06:00
Tim Schaub
cda0fe6e41 Re-export style constructors from ol/style 2018-04-24 09:37:27 -06:00
Tim Schaub
e28305186c Export shared icon image class from IconImageCache module 2018-04-24 09:37:19 -06:00
Tim Schaub
6631b58e6b Merge pull request #8115 from tschaub/re-export-layer
Re-export layer constructors from ol/layer
2018-04-24 09:28:00 -06:00
Tim Schaub
910004b940 Re-export layer constructors from ol/layer 2018-04-24 09:06:30 -06:00
Tim Schaub
640f9a96c6 Merge pull request #8114 from tschaub/re-export-interaction
Re-export interaction constructors from ol/interaction
2018-04-24 08:52:56 -06:00
Tim Schaub
0cb1c18778 Re-export interaction constructors from ol/interaction 2018-04-24 08:40:15 -06:00
Tim Schaub
059e1b914e Merge pull request #8116 from tschaub/re-export-source
Re-export source constructors from ol/source
2018-04-24 01:52:54 -06:00
Tim Schaub
11907ad7e4 Merge pull request #8113 from tschaub/re-export-geom
Re-export geometry constructors from ol/geom
2018-04-24 01:50:16 -06:00
Tim Schaub
c9850e6059 Merge pull request #8112 from tschaub/re-export-formats
Re-export format constructors from ol/format
2018-04-24 01:49:30 -06:00
Tim Schaub
d1d8978a77 Merge pull request #8111 from tschaub/re-export
Re-export control constructors
2018-04-24 01:48:49 -06:00
Tim Schaub
75e6f73485 Merge pull request #8118 from tschaub/cloak-list
Use list for cloak entries
2018-04-24 01:47:59 -06:00
Tim Schaub
1551bfffe0 Use list for cloak entries 2018-04-23 20:51:01 -06:00
Tim Schaub
a5d3e91f7d Re-export source constructors from ol/source 2018-04-23 17:34:10 -06:00
Tim Schaub
f713d27c44 Re-export format constructors from ol/format 2018-04-23 15:32:24 -06:00
Tim Schaub
497cb1dc44 Re-export controls from ol/controls 2018-04-23 15:31:44 -06:00
Tim Schaub
487ace2362 Re-export geometry constructors from ol/geom 2018-04-23 14:30:20 -06:00
Andreas Hocevar
9bdece3573 Merge pull request #8102 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.4.0
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-04-23 22:02:36 +02:00
greenkeeper[bot]
d440d23bf1 chore(package): update babel-plugin-jsdoc-closure to version 1.4.0 2018-04-23 21:51:45 +02:00
Tim Schaub
b4badd0c53 Move ScaleLineUnits to ScaleLine control module 2018-04-23 11:38:13 -06:00
Tim Schaub
311ab0eae1 Merge pull request #8109 from tschaub/mouse-position
Make any falsey undefinedHTML retain the mouse position
2018-04-23 11:37:57 -06:00
Andreas Hocevar
2b79f12b34 Merge pull request #8103 from ahocevar/jsdoc-module-fixes
Fix some jsdoc path types
2018-04-23 18:13:07 +02:00
Tim Schaub
fba2d100e9 Any falsey undefinedHTML retains the mouse position 2018-04-23 09:57:10 -06:00
Andreas Hocevar
c724584d07 Merge pull request #7784 from pedros007/mouseout-mouseposition
Adds option to retain MousePosition when pointer leaves viewport
2018-04-23 10:44:59 +02:00
ahocevar
d6409f55cf Update API docs for modified behavior. 2018-04-23 08:49:38 +02:00
Pete Schmitt
2719baa0f6 Replace new clearOnMouseOut option with undefinedHTML=undefined
API break: set `undefinedHTML` to special value `undefined` to retain
the most recent MousePosition value.
2018-04-23 08:47:24 +02:00
Pete Schmitt
2e3e7d282a Adds option to retain MousePosition when pointer leaves viewport 2018-04-23 08:47:15 +02:00
ahocevar
d7f3e633b7 Fix code snippet JavaScript 2018-04-23 08:33:50 +02:00
ahocevar
c23a5086ae Fix enum types 2018-04-21 10:48:38 +02:00
ahocevar
417dd85f83 Fix some jsdoc path types 2018-04-21 10:17:53 +02:00
Frédéric Junod
33ca22a4dc Merge pull request #8101 from fredj/jsdoc_module
More Jsdoc module fixes
2018-04-21 09:05:11 +02:00
Andreas Hocevar
23b54e6a9f Merge pull request #7908 from hyperknot/scaleline-fix
ScaleLine fix for non-degree based units
2018-04-20 15:40:56 +02:00
Frederic Junod
b37a1f7d85 Module type for ol.RenderOrderFunction 2018-04-20 15:15:21 +02:00
Frederic Junod
48910e01ed Module type for ol.render.ReplayGroup 2018-04-20 15:12:20 +02:00
Frederic Junod
7f7c4df786 Module type for ol.render.canvas.TextReplay 2018-04-20 15:09:30 +02:00
Frederic Junod
446fb1939e Module type for ol.render.canvas.Instruction 2018-04-20 15:07:50 +02:00
Frederic Junod
97d2266389 Module type for ol.reproj.Triangulation 2018-04-20 15:05:57 +02:00
Frederic Junod
d0fbbe7d23 Module type for ol.render.canvas.Replay 2018-04-20 15:03:44 +02:00
Frederic Junod
3e2c211ccf Module type for ol.render.canvas.ReplayGroup 2018-04-20 15:01:57 +02:00
Frederic Junod
5d22d711f8 Module type for ol.render.ReplayType 2018-04-20 14:58:49 +02:00
Frederic Junod
7701c5fd3a Module type for ol.render.Feature 2018-04-20 14:53:56 +02:00
Frederic Junod
3c0c4cd155 Module type for ol.render.VectorContext 2018-04-20 14:41:11 +02:00
Frederic Junod
05f92c0333 Module type for ol.source.Tile 2018-04-20 14:37:46 +02:00
Frederic Junod
327bda680d Module type for ol.source.Tile.Event 2018-04-20 14:35:17 +02:00
Frederic Junod
ae5e24a6c3 Module type for ol.render.Event 2018-04-20 14:32:23 +02:00
Frederic Junod
3629cef3a5 Module type for ol.render.EventType 2018-04-20 14:31:00 +02:00
Frederic Junod
d1a6249cf0 Module type for ol.Collection 2018-04-20 12:02:15 +02:00
Frederic Junod
0071acd688 Module type for ol.AttributionLike 2018-04-20 12:00:18 +02:00
Frédéric Junod
4d4a469904 Merge pull request #8099 from openlayers/jsdoc_module
More Jsdoc module fixes
2018-04-20 11:26:30 +02:00
Tim Schaub
3705757cd4 Merge pull request #8098 from tschaub/goodbye-olx
Remove externs/olx.js and src/ol/typedefs.js
2018-04-20 02:38:46 -06:00
Frederic Junod
b2d9f94cb2 Module type for ol.pointer.MouseSource 2018-04-20 08:53:01 +02:00
Frederic Junod
2f45d51f9b Module type for ol.pointer.EventSource 2018-04-20 08:50:39 +02:00
Frederic Junod
a84863528c Module type for ol.pointer.PointerEvent 2018-04-20 08:47:27 +02:00
Frederic Junod
a43b90056b Module type for ol.pointer.PointerEventHandler 2018-04-20 08:44:01 +02:00
Frederic Junod
15f57538e7 Module type for ol.StyleFunction 2018-04-20 08:39:45 +02:00
Andreas Hocevar
ed95200aa9 Merge pull request #8096 from ahocevar/rotation-default
Fix rotation default
2018-04-20 07:07:09 +02:00
Tim Schaub
7c35139e90 Remove ol/typedefs.js 2018-04-19 18:22:04 -06:00
Tim Schaub
99efb052f2 Remove temporary externs/xol.js 2018-04-19 18:17:39 -06:00
Tim Schaub
d93a76dcb9 Remove olx.js and code that uses it 2018-04-19 18:13:55 -06:00
Tim Schaub
20bbd71702 Correct type for Translate interaction options 2018-04-19 18:13:20 -06:00
Tim Schaub
6b1a2e884d Correct types for style options 2018-04-19 18:13:15 -06:00
Tim Schaub
b9145a91e8 Correct type for FrameState 2018-04-19 18:11:22 -06:00
Tim Schaub
c75b87a2a0 Correct type for WMTS source options 2018-04-19 18:11:22 -06:00
Tim Schaub
81693cefbf Correct type for Icon options 2018-04-19 18:11:12 -06:00
Tim Schaub
5f8a5b3502 Add typedef for TileArcGISRest source options
This was removed in 8b23a44f8f (inadvertently I think).
2018-04-19 17:58:39 -06:00
Tim Schaub
a09f7fb3bb Clean lint from jsdoc config 2018-04-19 17:32:54 -06:00
ahocevar
3d50c0ec68 Fix rotation default 2018-04-20 01:17:02 +02:00
Tim Schaub
d17f0d98a0 Merge pull request #8081 from pfirpfel/move-olx.render-to-ol/render
Move olx.render.* and related typedefs to ol/render/*
2018-04-19 14:41:50 -06:00
Andreas Hocevar
34400394f9 Merge pull request #8095 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.3.4
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-04-19 22:09:30 +02:00
greenkeeper[bot]
db1da0db8e chore(package): update babel-plugin-jsdoc-closure to version 1.3.4 2018-04-19 20:02:29 +00:00
Andreas Hocevar
b65961b791 Merge pull request #8094 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.3.3
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-04-19 21:36:19 +02:00
greenkeeper[bot]
f98fcd15be chore(package): update babel-plugin-jsdoc-closure to version 1.3.3 2018-04-19 19:12:11 +00:00
Frederic Junod
975d3f31d6 Fix FillState typedef definition 2018-04-19 17:41:08 +02:00
Tim Schaub
1c792f2d9b Type is {string} instead of string{} 2018-04-19 17:41:08 +02:00
Michael Kuenzli
3b983564b3 Move ol.DeclutterGroup to ol/render/canvas 2018-04-19 17:41:08 +02:00
Michael Kuenzli
b740630e89 Move ol.CanvasTextState to ol/render/canvas 2018-04-19 17:41:08 +02:00
Michael Kuenzli
6096f84be2 Move ol.CanvasStrokeState to ol/render/canvas 2018-04-19 17:41:08 +02:00
Michael Kuenzli
113785f048 Move ol.CanvasFillStrokeState to ol/render/canvas 2018-04-19 17:41:08 +02:00
Michael Kuenzli
223ef34898 Move ol.CanvasFunctionType to ol/source/ImageCanvas 2018-04-19 17:41:08 +02:00
Michael Kuenzli
4f74bcaa31 Move ol.CanvasFillState to ol/render/canvas 2018-04-19 17:41:08 +02:00
Michael Kuenzli
5e810ccc6a Move olx.render.State to ol/render 2018-04-19 17:41:00 +02:00
Frédéric Junod
82c55d3892 Merge pull request #8087 from pfirpfel/move-misc-typedefs
Move various typedefs out of typdefs.js
2018-04-19 16:56:49 +02:00
Michael Kuenzli
2b41a3930b Move ol.Attribution to ol/source/Source 2018-04-19 16:49:13 +02:00
Michael Kuenzli
71bb2ce019 Move ol.AttributionLike to ol/source/Source 2018-04-19 16:49:13 +02:00
Michael Kuenzli
833a4591df Move ol.RasterOperation to ol/source/Raster 2018-04-19 16:49:13 +02:00
Michael Kuenzli
addcdf745f Move ol.WFSTransactionResponse to ol/format/WFS 2018-04-19 16:48:29 +02:00
Michael Kuenzli
d4a6169052 Move ol.WFSFeatureCollectionMetadata to ol/format/WFS 2018-04-19 16:48:29 +02:00
Michael Kuenzli
76572b6ccf Move ol.RegularShapeRenderOptions to ol/style/RegularShape 2018-04-19 16:48:29 +02:00
Frédéric Junod
873c627cda Merge pull request #8052 from fredj/jsdoc_module
More Jsdoc module fixes
2018-04-19 16:22:52 +02:00
Frederic Junod
48bda774c7 Rename VectorTileSource to VectorTile 2018-04-19 16:02:16 +02:00
Frederic Junod
8074848636 Module type for ol.Size 2018-04-19 15:43:37 +02:00
Frederic Junod
32713ff824 Module type for ol.Extent 2018-04-19 15:41:27 +02:00
Frederic Junod
f0da3c7ef0 Module type for ol.format.GMLBase 2018-04-19 15:40:09 +02:00
Frederic Junod
44b19cb2e3 Module type for ol.format.TokenType 2018-04-19 15:40:09 +02:00
Frederic Junod
3ce588b491 Module type for ol.format.Feature 2018-04-19 15:40:07 +02:00
Frederic Junod
60e319f8e1 Remove extra properties in ol/source/WMTS options 2018-04-19 15:39:26 +02:00
Frederic Junod
7aa5e5d80e Fix wrong tilegrid type for ol/source/XYZ options 2018-04-19 15:39:26 +02:00
Frederic Junod
79bdec2b75 Module type for ol.tilegrid.WMTS 2018-04-19 15:39:26 +02:00
Frederic Junod
7ccb66e80d Module type for ol.tilegrid.TileGrid 2018-04-19 15:39:26 +02:00
Frederic Junod
2df4d5f877 Module type for ol.TileState 2018-04-19 15:39:26 +02:00
Frederic Junod
4114f4faaa Module type for ol.TileCoord 2018-04-19 15:39:26 +02:00
Frederic Junod
e77986c86c Module type for ol.source.Image 2018-04-19 15:39:26 +02:00
Frederic Junod
6f3957786a Module type for ol.source.Source 2018-04-19 15:39:26 +02:00
Frederic Junod
3dbabb734b Module type for ol.source.Vector 2018-04-19 15:39:26 +02:00
Frederic Junod
e283193ff4 Module type for ol.source.State 2018-04-19 15:39:25 +02:00
Frederic Junod
6ce42464b3 Module type for ol.source.VectorTile 2018-04-19 15:39:25 +02:00
Frederic Junod
911d0f12e3 Module type for ol.source.XYZ 2018-04-19 15:39:25 +02:00
Frederic Junod
bf40002af0 Module type for ol.source.TileImage 2018-04-19 15:39:25 +02:00
Frédéric Junod
c63c7b211d Merge pull request #8048 from fredj/shaders_comments
Remove all comments from shaders
2018-04-19 15:21:51 +02:00
Frédéric Junod
fe016738bc Merge pull request #8093 from openlayers/greenkeeper/serve-6.5.5
chore(package): update serve to version 6.5.5
2018-04-19 12:37:39 +02:00
Frédéric Junod
c47150a32d Merge pull request #8090 from openlayers/greenkeeper/url-polyfill-1.0.13
chore(package): update url-polyfill to version 1.0.13
2018-04-19 12:15:43 +02:00
greenkeeper[bot]
2cfae91b71 chore(package): update serve to version 6.5.5 2018-04-19 12:13:18 +02:00
Frédéric Junod
7652cc89ec Merge pull request #8091 from openlayers/greenkeeper/karma-firefox-launcher-1.1.0
chore(package): update karma-firefox-launcher to version 1.1.0
2018-04-19 12:09:28 +02:00
greenkeeper[bot]
0b7d185875 chore(package): update karma-firefox-launcher to version 1.1.0 2018-04-19 12:02:09 +02:00
greenkeeper[bot]
8ce621fc1c chore(package): update url-polyfill to version 1.0.13 2018-04-19 11:58:06 +02:00
Frédéric Junod
13e472527d Merge pull request #8089 from fredj/f_7167
Allow unprefixed WMTS tileMatrix identifiers
2018-04-19 11:56:24 +02:00
Frederic Junod
6006a9d9b5 Allow unprefixed WMTS tileMatrix identifiers
`ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet` fails when tileMatrix identifiers
are not prefixed by their tileMatrixSet identifier.

Original code by @filipheymans
2018-04-19 11:48:42 +02:00
Frederic Junod
4b76ad60d2 Remove unused variable 2018-04-19 10:53:10 +02:00
Frédéric Junod
fdc030e0b3 Merge pull request #8088 from camptocamp/fix_typo_in_TextPlacement
Correct type for TextPlacement (jsdoc)
2018-04-19 10:46:26 +02:00
Benjamin Gerber
84b6e6c7ad Correct type for TextPlacement (jsdoc) 2018-04-19 10:09:21 +02:00
Tim Schaub
7714eb06ad Merge pull request #8085 from openlayers/greenkeeper/mocha-5.1.1
Update mocha to the latest version 🚀
2018-04-18 20:40:29 -06:00
greenkeeper[bot]
d781218483 chore(package): update mocha to version 5.1.1 2018-04-19 02:28:15 +00:00
Tim Schaub
ee9078c401 Merge pull request #8083 from pfirpfel/move-structs-typedefs-to-ol/structs
Move structs typedefs to ol/structs/*
2018-04-18 16:27:12 -06:00
Tim Schaub
4083e22948 Merge pull request #8077 from icholy/master
Add hasFeature method to ol.source.Vector
2018-04-18 16:26:38 -06:00
Tim Schaub
9380cbd316 Merge pull request #8080 from iagafonov/master
#8079 Mark functions setRotateWithView and setSnapToPixel of ol/style/Image with @api
2018-04-18 16:24:20 -06:00
Tim Schaub
44fb48d63f Type is * instead of value_ 2018-04-18 16:19:06 -06:00
Andreas Hocevar
de02268362 Merge pull request #8084 from pfirpfel/move-reproj-typedefs-to-ol/reproj
Move ol.Reproj* typedefs to ol/reproj
2018-04-18 17:37:27 +02:00
Michael Kuenzli
4a70ae2fc0 Move ol.ReprojTriangle to ol/reproj/Triangulation 2018-04-18 16:39:26 +02:00
Michael Kuenzli
edce9e9435 Move ol.ReprojTileFunctionType to ol/reproj/Tile 2018-04-18 16:35:30 +02:00
Michael Kuenzli
724be40854 Move ol.ReprojImageFunctionType to ol/reproj/Image 2018-04-18 16:32:59 +02:00
Michael Kuenzli
b76492c3b8 Move ol.LRUCacheEntry to ol/structs/LRUCache 2018-04-18 16:14:03 +02:00
Michael Kuenzli
11da20e744 Move ol.LinkedListItem to ol/structs/LinkedList 2018-04-18 16:09:17 +02:00
Frédéric Junod
9aa3cd612f Merge pull request #8082 from pfirpfel/remove-unused-typedefs
Remove unused typedefs
2018-04-18 15:52:31 +02:00
Michael Kuenzli
8433e2e07d Remove unused typedefs 2018-04-18 15:18:57 +02:00
Иван Агафонов
84a49ec943 Mark functions setRotateWithView and setSnapToPixel of ol/style/Image with @api 2018-04-18 14:52:49 +03:00
Andreas Hocevar
004f91a020 Merge pull request #8076 from pfirpfel/move-olx.style-to-ol/style
Move olx.style.* and ol.Style* to ol/style/*
2018-04-18 09:04:44 +02:00
Andreas Hocevar
b9afb8d146 Merge branch 'master' into move-olx.style-to-ol/style 2018-04-18 08:57:49 +02:00
Andreas Hocevar
000d3d33a0 Merge pull request #8075 from pfirpfel/move-olx.tilegrid-to-ol/tilegrid
Move olx.tilegrid.* to ol/tilegrid/*
2018-04-18 08:51:35 +02:00
Ilia Choly
b8d3bb5766 Add hasFeature method to ol.source.Vector 2018-04-17 14:22:30 -04:00
Michael Kuenzli
310b9256eb Move olx.tilegrid.XYZOptions to ol/tilegrid 2018-04-17 17:28:32 +02:00
Michael Kuenzli
c06bea9a4e Move ol.StyleImageOptions from typedefs.js to ol/style/Image 2018-04-17 17:22:04 +02:00
Michael Kuenzli
e388527200 Move ol.StyleRenderFunction from typedefs.js to ol/style/Style 2018-04-17 17:22:04 +02:00
Michael Kuenzli
4f183f33f1 Move ol.StyleGeometryFunction from typedefs.js to ol/style/Style 2018-04-17 17:22:04 +02:00
Michael Kuenzli
663d2bb1bb Move olx.style.StyleOptions to ol/style/Style 2018-04-17 17:22:04 +02:00
Michael Kuenzli
1e17ddb8d6 Move olx.style.TextOptions to ol/style/Text 2018-04-17 17:21:56 +02:00
Michael Kuenzli
2d620e5537 Move olx.style.RegularShapeOptions to ol/style/RegularShape 2018-04-17 16:40:02 +02:00
Michael Kuenzli
73fcdf5392 Move olx.style.IconOptions to ol/style/Icon 2018-04-17 16:32:36 +02:00
Michael Kuenzli
de90b91401 Move olx.style.CircleOptions to ol/style/Circle 2018-04-17 16:06:55 +02:00
Michael Kuenzli
2178393e18 Move olx.tilegrid.WMTSOptions to ol/tilegrid/WMTS 2018-04-17 15:14:44 +02:00
Michael Kuenzli
ff488c8214 Move olx.tilegrid.TileGridOptions to ol/tilegrid/TileGrid 2018-04-17 15:09:47 +02:00
Tim Schaub
bd66034d7d Merge pull request #8073 from tschaub/downgrade-sinon
Remove dependency on deprecated sinon@5
2018-04-16 06:14:46 -06:00
Tim Schaub
b1c741ca4a Merge pull request #7994 from tschaub/one-default-renderer
Explicit renderer dependencies
2018-04-16 06:14:05 -06:00
Tim Schaub
c7a10fc7b6 Add upgrade notes about the removal of the renderer option 2018-04-15 07:46:17 -06:00
Tim Schaub
c5f81d8bbe Register layer renderers with the map renderer 2018-04-14 10:31:10 -06:00
Tim Schaub
91f2101cab Remove check for map renderer type 2018-04-14 10:01:07 -06:00
Tim Schaub
52774c6d43 Remove dependency on deprecated sinon@5 2018-04-14 09:39:48 -06:00
Tim Schaub
be35f82ae5 Explicit map renderer construction 2018-04-14 09:38:40 -06:00
Tim Schaub
2a9fde86b1 This makes ol/Map use the Canvas map renderer.
To use the experimental WebGL renderer, use ol/WebGLMap instead.
2018-04-14 09:32:54 -06:00
Frédéric Junod
c882c22e2f Merge pull request #7863 from fredj/rm_forEachFeature
Add note about null geom in VectorSource.forEachFeature
2018-04-13 14:16:23 +02:00
Frédéric Junod
a71652ef8e Merge pull request #8071 from openlayers/greenkeeper/mocha-5.1.0
Update mocha to the latest version 🚀
2018-04-13 13:23:36 +02:00
Frederic Junod
25af37bbd3 Add note about null geom in VectorSource.forEachFeature 2018-04-13 13:21:49 +02:00
greenkeeper[bot]
5827305e92 chore(package): update mocha to version 5.1.0 2018-04-13 02:32:21 +00:00
Zsolt Ero
50a929d562 us missing 2018-04-10 21:09:43 +02:00
Zsolt Ero
5bde9fa278 added non-degree tests for all units 2018-04-10 21:06:36 +02:00
Zsolt Ero
ab946c2ed2 non-degree test added 2018-04-10 20:54:45 +02:00
Zsolt Ero
cedf01f647 imperial unit test 2018-04-10 20:45:09 +02:00
Zsolt Ero
b55f323afe scaleLine fix update to master 2018-04-10 19:37:05 +02:00
Tim Schaub
568b3d3559 Merge pull request #8060 from openlayers/greenkeeper/google-closure-compiler-20180402.0.0
Update google-closure-compiler to the latest version 🚀
2018-04-08 07:44:03 -06:00
greenkeeper[bot]
9a91854366 chore(package): update google-closure-compiler to version 20180402.0.0 2018-04-05 19:01:55 +00:00
Frédéric Junod
248c54c5e0 Merge pull request #8055 from fredj/opt_property
Mark optional property with square brackets
2018-04-05 08:27:56 +02:00
Andreas Hocevar
5f49275d9e Merge pull request #8054 from lilliputten/win-build
Generate correct includes list for `build-index` script on windows hosts.
2018-04-04 20:22:37 +02:00
Frederic Junod
070f08e778 Mark optional property with square brackets 2018-04-04 17:06:21 +02:00
lilliputten
fa92a69ff3 Linter warnings fixed. 2018-04-04 17:47:56 +03:00
lilliputten
0deecda4f5 Simplified changes. 2018-04-04 17:41:21 +03:00
lilliputten
55bcd28729 Generate correct includes list on windows hosts. 2018-04-04 17:23:08 +03:00
Frédéric Junod
842cdcfcf7 Merge pull request #8053 from fredj/misc
Don't import from 'functions' multiple times
2018-04-04 15:35:34 +02:00
Frederic Junod
22ace7228f Don't import from 'functions' multiple times 2018-04-04 13:51:47 +02:00
Frédéric Junod
89b901eb84 Merge pull request #8041 from fgravin/remove-olx-typedefs-ol/source
Remove olx typedefs ol/source
2018-04-04 11:43:09 +02:00
Florent gravin
1a6c62a48a Replace dispatchChangeEvent by changed in ol/source 2018-04-04 10:52:50 +02:00
Florent gravin
c579fc985a Remove =undefined for default values in ol/source 2018-04-04 10:52:50 +02:00
Florent gravin
0f1cef96fb Replace ol.ProjectionLike by module:ol/proj~ProjectionLike in ol/source 2018-04-04 10:52:50 +02:00
Florent gravin
a85faeef0f Remove olx.source.ZoomifyOptions 2018-04-04 10:52:50 +02:00
Florent gravin
8b23a44f8f Remove useless olx.source.TileArcGISRestOptions 2018-04-04 10:52:50 +02:00
Florent gravin
a38ca0f248 Remove useless olx.source.MapQuestOptions 2018-04-04 10:52:50 +02:00
Florent gravin
4b0f376f60 Remove olx.source.XYZOptions 2018-04-04 10:52:50 +02:00
Florent gravin
5de33d066b Remove olx.source.WMTSOptions 2018-04-04 10:52:50 +02:00
Florent gravin
798119c9c8 Remove olx.source.VectorOptions 2018-04-04 10:52:50 +02:00
Florent gravin
910373eaa2 Remove ol.SourceUrlTileOptions 2018-04-04 10:52:50 +02:00
Florent gravin
f7b2433583 Remove olx.source.TilewmsOptions 2018-04-04 10:52:50 +02:00
Florent gravin
1bf17fecea Remove olx.source.TileUTFGridOptions 2018-04-04 10:52:50 +02:00
Florent gravin
1d99524ed1 Remove olx.source.TileJSONOptions 2018-04-04 10:52:50 +02:00
Florent gravin
9a4aed3d7c Remove olx.source.VectorTileOptions 2018-04-04 10:52:50 +02:00
Florent gravin
15fba2cbaf Remove olx.source.TileImageOptions 2018-04-04 10:52:50 +02:00
Florent gravin
3ec2cb1e6a Remove olx.source.TileDebugOptions 2018-04-04 10:52:50 +02:00
Florent gravin
aa138feb94 Remove ol.SourceTileOptions 2018-04-04 10:52:50 +02:00
Florent gravin
f9452fb76b Remove olx.source.StamenOptions 2018-04-04 10:52:50 +02:00
Florent gravin
e3889b6d11 Remove olx.source.RasterOptions 2018-04-04 10:52:50 +02:00
Florent gravin
4e32fd8975 Move olx.source.OSMOptions to ol/source/OSMOptions 2018-04-04 10:52:50 +02:00
Florent gravin
125a54ff1e Move olx.source.ImageWMSOptions to ol/source/ImageWMSOptions 2018-04-04 10:52:50 +02:00
Florent gravin
c6acbb54fd Move olx.source.ImageStaticOptions to ol/source/ImageStaticOptions 2018-04-04 10:52:50 +02:00
Florent gravin
db600287f8 Move olx.source.ImageMapGuideOptions to ol/source/ImageMapGuideOptions 2018-04-04 10:52:50 +02:00
Florent gravin
3d90a4587c Move olx.source.ImageCanvasOptions to ol/source/ImageCanvasOptions 2018-04-04 10:52:50 +02:00
Florent gravin
749f96d967 Move olx.source.ClusterOptions to ol/source/ClusterOptions 2018-04-04 10:48:38 +02:00
Florent gravin
27f86babec Move olx.source.CartoDBOptions to ol/source/CartoDBOptions 2018-04-04 10:48:38 +02:00
Florent gravin
af4296d2bc Move olx.source.BingMapsOptions to ol/source/BingMapsOptions 2018-04-04 10:48:38 +02:00
Frederic Junod
2effa1182e Remove all comments from shaders 2018-04-03 09:54:55 +02:00
Frédéric Junod
bc54693382 Merge pull request #8026 from nyurik/patch-2
[doc] dispatchChangeEvent -> changed
2018-04-03 08:53:09 +02:00
Yuri Astrakhan
1b73bca281 link to observable-changed 2018-04-02 22:50:26 +03:00
Yuri Astrakhan
f6e2db76f4 [doc] dispatchChangeEvent -> changed 2018-04-02 22:45:59 +03:00
Marc Jansen
722ce67ebe Merge pull request #8003 from marcjansen/chaikin
Add an example showing Chaikins smoothing algorithm
2018-03-29 17:51:30 +02:00
Frédéric Junod
8208177bdc Merge pull request #8044 from fredj/misc
Rename constructor options typedef to 'Options'
2018-03-29 17:14:55 +02:00
Frederic Junod
4e0d195236 Remove unused minResolution and maxResolution 2018-03-29 16:32:21 +02:00
Frederic Junod
60ca330dce Rename constructor options typedef to 'Options' 2018-03-29 15:50:32 +02:00
Andreas Hocevar
0335420634 Merge pull request #8042 from ahocevar/only-loaded-tiles
Only process loaded tiles
2018-03-29 11:52:04 +02:00
ahocevar
dd6f4eef58 Only process loaded tiles 2018-03-29 11:44:32 +02:00
Marc Jansen
1f0e9abfdd Simplify example 2018-03-29 08:35:09 +02:00
Marc Jansen
d42de41af3 Add an example showing Chaikins smoothing algorithm 2018-03-29 08:35:09 +02:00
Frédéric Junod
93f704fcd5 Merge pull request #8036 from fredj/misc
Move the temporary arrays to the module level
2018-03-29 08:27:48 +02:00
Tim Schaub
9ed9185b77 Merge pull request #8032 from romanzoller/remove-olx-typedefs-ol/source
Start removing externs for `ol/source`
2018-03-28 22:27:11 -06:00
Tim Schaub
6029cf829b Merge pull request #8039 from openlayers/greenkeeper/google-closure-compiler-20180319.0.0
Update google-closure-compiler to the latest version 🚀
2018-03-28 22:25:05 -06:00
greenkeeper[bot]
dc0e331e86 chore(package): update google-closure-compiler to version 20180319.0.0 2018-03-28 20:01:47 +00:00
Frédéric Junod
79157175ba Merge pull request #8038 from fredj/ZoomToExtent_title
Fix ZoomToExtent default tipLabel value
2018-03-28 12:48:28 +02:00
Frederic Junod
694afc0196 Fix ZoomToExtent default tipLabel value 2018-03-28 12:38:13 +02:00
Frederic Junod
d8fd51a537 Remove unused private variable 2018-03-28 08:56:36 +02:00
Frederic Junod
e9ce23a461 Move the temporary arrays to the module level
No need to create a new variable for each instance.
2018-03-28 08:55:27 +02:00
Frédéric Junod
72641ef884 Merge pull request #8034 from fredj/jsdoc_module
More Jsdoc module fixes
2018-03-27 16:35:41 +02:00
Frederic Junod
51d41466ff Refresh externs/xol.js 2018-03-27 16:20:52 +02:00
Frederic Junod
5bfa3ebcda Move olx.style.StrokeOptions to src/ol/style/Stroke 2018-03-27 16:20:52 +02:00
Frederic Junod
ac1a9e97ed Move olx.style.FillOptions to src/ol/style/Fill 2018-03-27 15:44:53 +02:00
Frederic Junod
45ad265849 Move olx.style.AtlasManagerOptions to src/ol/style/AtlasManager 2018-03-27 15:15:33 +02:00
Frederic Junod
7cbc22fece Module type for ol.style.* 2018-03-27 15:09:52 +02:00
Roman Zoller
8863a26b2d Move olx.source.ImageArcGISRestOptions to ol/source/ImageArcGISRestOptions 2018-03-26 16:53:50 +02:00
Frédéric Junod
2de83adb8e Merge pull request #8029 from fredj/jsdoc_module
More Jsdoc module fixes
2018-03-26 16:50:16 +02:00
Tim Schaub
ba350064f2 Merge pull request #8030 from walkermatt/patch-1
Set `user-select: text` for .ol-selectable
2018-03-26 08:25:43 -06:00
Matt Walker
caa4a0566e Set user-select: text for .ol-selectable
In order to allow a user to select content within an element with the `.ol-selectable` class the `user-select` CSS property should be `text`. 

The current value of `auto` results in a computed value of `none` due to the rule `.ol-viewport, .ol-unselectable` specifying `user-select: none`. According to the [the specification](https://www.w3.org/TR/css-ui-4/#valdef-user-select-auto):

> if the computed value of `user-select` on the parent of this element is `none`, the computed value is `none`

Tested manually on Chromium, Firefox and IE11.
2018-03-26 14:16:45 +01:00
Frederic Junod
932ea9c8b2 Refresh externs/xol.js 2018-03-26 10:54:18 +02:00
Frederic Junod
b121ced3da Module type for ol.format.Lexer 2018-03-26 10:50:59 +02:00
Frederic Junod
b08edd8dfe Module type for ol.PluggableMap 2018-03-26 10:45:28 +02:00
Frederic Junod
1bd8bf5ac0 Module type for ol.layer.VectorRenderType 2018-03-26 10:44:22 +02:00
Frederic Junod
4580bd15c5 Module type for ol.layer.Base 2018-03-26 10:41:29 +02:00
Frederic Junod
813c009912 Module type for ol.Collection 2018-03-26 10:40:28 +02:00
Frederic Junod
1cad0c665f Module type for ol.Extent 2018-03-26 10:38:55 +02:00
Frédéric Junod
423326ffc0 Merge pull request #8028 from openlayers/greenkeeper/marked-0.3.19
Update marked to the latest version 🚀
2018-03-26 09:50:42 +02:00
greenkeeper[bot]
8e9f0b66fd chore(package): update marked to version 0.3.19 2018-03-26 03:01:50 +00:00
Roman Zoller
81a0c341ab Move ol.SourceImageOptions to ol/source/Image 2018-03-25 12:00:26 +02:00
Roman Zoller
d4f39f7bbb Move ol.SourceSourceOptions to ol/source/Source 2018-03-25 11:45:15 +02:00
Andreas Hocevar
a8ac013d93 Merge pull request #8025 from romanzoller/remove-ol-layer-olx
Move olx.layer.* to ol/layer/*
2018-03-23 22:37:34 +01:00
Roman Zoller
7ebe53d058 Fix setting of useInterimTilesOnError
With the previous check it was always set to `true`.
2018-03-23 18:40:31 +01:00
Roman Zoller
17a348e594 Move olx.layer.VectorTileOptions to ol/layer/VectorTile 2018-03-23 18:40:31 +01:00
Roman Zoller
41ecc4a794 Move olx.layer.VectorOptions to ol/layer/Vector 2018-03-23 18:39:46 +01:00
Roman Zoller
c24b369523 Move olx.layer.TileOptions to ol/layer/Tile 2018-03-23 18:39:46 +01:00
Roman Zoller
34d5a38a9e Move olx.layer.ImageOptions to ol/layer/Image 2018-03-23 18:39:46 +01:00
Roman Zoller
aa57bc86e5 Move olx.layer.HeatmapOptions to ol/layer/Heatmap 2018-03-23 18:39:46 +01:00
Roman Zoller
1e476ae9e7 Move olx.layer.GroupOptions to ol/layer/Group 2018-03-23 18:39:46 +01:00
Roman Zoller
c0148cae7c Move olx.layer.LayerOptions to ol/layer/Layer 2018-03-23 18:38:57 +01:00
Frédéric Junod
02d2e97a23 Merge pull request #8023 from fredj/typedefs.js
Module type changes for ol.webgl
2018-03-23 13:37:16 +01:00
Frederic Junod
2fc9cb691d Module type for ol.webgl.Vertex 2018-03-23 13:25:47 +01:00
Frederic Junod
873b01bba5 Move WebGL typedefs out of src/ol/typedefs.js 2018-03-23 13:22:51 +01:00
Frederic Junod
5306490733 Module type for ol.webgl.Context 2018-03-23 12:17:42 +01:00
Frederic Junod
353a3b77b6 Module type for ol.webgl.Buffer 2018-03-23 12:16:04 +01:00
Frederic Junod
731c2eddae Module type for ol.webgl.Shader 2018-03-23 12:13:56 +01:00
Frederic Junod
6f6b60769c Module type for ol.webgl.Fragment 2018-03-23 12:13:25 +01:00
Frédéric Junod
b836e230c6 Merge pull request #8021 from fredj/olx.ViewState
Move olx.ViewState to ol/View
2018-03-23 12:06:58 +01:00
Frederic Junod
deb536bfbd Refresh externs/xol.js 2018-03-23 11:53:41 +01:00
Frederic Junod
29b37b179c Move olx.ViewState to ol/View 2018-03-23 11:42:46 +01:00
Frederic Junod
1963e6088e Fix wrong module name annotation 2018-03-23 08:54:55 +01:00
Frédéric Junod
3533587bcb Merge pull request #8012 from fredj/jsdoc_module
More Jsdoc module fixes
2018-03-23 08:50:58 +01:00
Frederic Junod
ce726ed9dd Module type for ol.layer.Vector 2018-03-23 08:44:21 +01:00
Frederic Junod
64999cdfda Module type for ol.layer.VectorTile 2018-03-23 08:44:21 +01:00
Frederic Junod
e3d87f026e Module type for ol.layer.VectorRenderType 2018-03-23 08:44:21 +01:00
Frederic Junod
448e6a755f Module type for ol.layer.Image 2018-03-23 08:44:21 +01:00
Frederic Junod
05e78c20fc Module type for ol.layer.Tile 2018-03-23 08:44:21 +01:00
Frederic Junod
f2a36c90e3 Module type for ol.layer.VectorTileRenderType 2018-03-23 08:44:21 +01:00
Frederic Junod
14dc03b434 Module type for ol.layer.Base 2018-03-23 08:44:21 +01:00
Frederic Junod
34f6d20e40 Module type for ol.Overlay 2018-03-23 08:44:21 +01:00
Frederic Junod
bd9e603036 Module type for ol.layer.Layer 2018-03-23 08:44:21 +01:00
Frederic Junod
041b612fd9 Module type for ol.format.KML 2018-03-23 08:44:21 +01:00
Frederic Junod
d8c0e6e69b Module type for ol.format.Feature 2018-03-23 08:44:21 +01:00
Frederic Junod
c19ddb1a19 Module type for ol.format.FormatType 2018-03-23 08:44:21 +01:00
Frederic Junod
8ac387f42c Module type for ol.format.TextFeature 2018-03-23 08:44:21 +01:00
Frederic Junod
5aee26633c Module type for ol.format.XML 2018-03-23 08:44:21 +01:00
Frederic Junod
06bd5b4423 Module type for ol.format.XMLFeature 2018-03-23 08:44:21 +01:00
Frederic Junod
83dcc82cf7 Module type for ol.format.JSONFeature 2018-03-23 08:44:21 +01:00
Andreas Hocevar
e005ec7497 Merge pull request #8019 from openlayers/greenkeeper/mocha-5.0.5
Update mocha to the latest version 🚀
2018-03-23 08:37:11 +01:00
greenkeeper[bot]
602f8b47d3 chore(package): update mocha to version 5.0.5 2018-03-23 08:24:36 +01:00
Frédéric Junod
d5cb21932f Merge pull request #8017 from openlayers/greenkeeper/marked-0.3.18
Update marked to the latest version 🚀
2018-03-23 08:23:40 +01:00
Andreas Hocevar
3e7599dc34 Merge pull request #8018 from openlayers/greenkeeper/recast-0.14.7
Update recast to the latest version 🚀
2018-03-23 08:05:48 +01:00
greenkeeper[bot]
ab57d74357 chore(package): update recast to version 0.14.7 2018-03-23 01:12:21 +00:00
Frédéric Junod
bf4fbad0cc Merge pull request #8015 from fredj/typedefs_cleanup
Remove some typedefs from src/ol/typedefs.js
2018-03-22 20:09:44 +01:00
Andreas Hocevar
9eff0d14d7 Merge pull request #8016 from romanzoller/remove-ol-layer-olx-first-PR
Move olx.layer.BaseOptions to ol/layer/Base
2018-03-22 18:07:29 +01:00
greenkeeper[bot]
e809efcd8e chore(package): update marked to version 0.3.18 2018-03-22 17:02:42 +00:00
Roman Zoller
b99b19f876 Move olx.layer.BaseOptions to ol/layer/Base 2018-03-22 17:33:40 +01:00
Frederic Junod
48740f0026 Move RBush typedefs out of src/ol/typedefs.js 2018-03-22 17:13:48 +01:00
Frederic Junod
c34e7e2246 Move GPX typedefs out of src/ol/typedefs.js 2018-03-22 16:58:02 +01:00
Frederic Junod
13ca7bc52e Move WKT typedefs out of src/ol/typedefs.js 2018-03-22 16:53:40 +01:00
Frederic Junod
813faf1ac2 Move KML typedefs out of src/ol/typedefs.js 2018-03-22 16:47:24 +01:00
Frederic Junod
ac4f1d014c Move Atlas typedefs out of src/ol/typedefs.js 2018-03-22 16:38:04 +01:00
Frédéric Junod
00e79903fe Merge pull request #8014 from openlayers/greenkeeper/recast-0.14.6
Update recast to the latest version 🚀
2018-03-22 15:48:22 +01:00
greenkeeper[bot]
0cdd523a29 chore(package): update recast to version 0.14.6 2018-03-22 14:24:23 +00:00
Andreas Hocevar
d1083b7ef2 Merge pull request #8005 from chrismayer/vt-select-expl
Add vector tile selection example
2018-03-22 10:16:16 +01:00
Frédéric Junod
57f0ca26f4 Merge pull request #8009 from openlayers/greenkeeper/sinon-5.0.0
chore(package): update sinon to version 5.0.0
2018-03-22 08:41:38 +01:00
Frédéric Junod
e3e31a9f13 Merge pull request #8008 from openlayers/greenkeeper/eslint-4.19.1
Update eslint to the latest version 🚀
2018-03-22 08:24:55 +01:00
greenkeeper[bot]
fd1fc2ea9e chore(package): update eslint to version 4.19.1 2018-03-22 02:37:55 +00:00
greenkeeper[bot]
d3a2d0de87 chore(package): update sinon to version 5.0.0
Closes #8007
2018-03-21 19:16:04 +00:00
Andreas Hocevar
467cf3ce5b Improve readability and create only one style 2018-03-21 12:01:42 +01:00
Christian Mayer
6e9cf0fd9d Add vector tile selection example 2018-03-21 11:41:44 +01:00
Frédéric Junod
50aa24ef9d Merge pull request #7999 from fredj/jsdoc_module
More Jsdoc module fixes
2018-03-20 08:20:37 +01:00
Tim Schaub
e2bbaad4cb Merge pull request #8000 from openlayers/greenkeeper/karma-webpack-3.0.0
Update karma-webpack to the latest version 🚀
2018-03-19 20:24:54 -06:00
greenkeeper[bot]
3a8217f22a chore(package): update karma-webpack to version 3.0.0 2018-03-19 19:30:36 +00:00
Frederic Junod
cb6ecdb94b Add missing undefined type to timout variables 2018-03-19 17:27:25 +01:00
Frederic Junod
7dc4d3a006 Module type for ol.View 2018-03-19 17:09:11 +01:00
Frederic Junod
b6483a49c1 Fix typedef name in jsdoc 2018-03-19 17:06:51 +01:00
Frederic Junod
1eef986824 Module type for ol.Observable 2018-03-19 16:59:01 +01:00
Frederic Junod
b26e370b5b Module type for ol.Collection 2018-03-19 16:36:21 +01:00
Frederic Junod
38eb1494eb Module type for ol.CollectionEvent 2018-03-19 16:36:21 +01:00
Frederic Junod
5173970f53 Module type for ol.Image 2018-03-19 16:07:09 +01:00
Frederic Junod
a3ccfbdd44 Module type for ol.ImageTile 2018-03-19 16:03:59 +01:00
Frederic Junod
48c28540cb Module type for ol.ImageCanvas 2018-03-19 16:02:46 +01:00
Frédéric Junod
917d28b4f6 Merge pull request #7998 from fredj/jsdoc_module
More Jsdoc module fixes
2018-03-19 15:47:07 +01:00
Frederic Junod
857b946f3e Module type for ol.events.Event 2018-03-19 14:31:04 +01:00
Frederic Junod
93b2fe0e95 Module type for ol.Tile 2018-03-19 14:31:04 +01:00
Frederic Junod
fe686ef915 Module type for ol.TileCache 2018-03-19 14:31:04 +01:00
Frederic Junod
ba62774cf0 Module type for ol.TileQueue 2018-03-19 14:31:04 +01:00
Frederic Junod
edce8785ee Module type for ol.ImageBase 2018-03-19 14:31:04 +01:00
Frederic Junod
a6a8da2d23 Module type for ol.LayerType 2018-03-19 14:31:04 +01:00
Frederic Junod
0477f6cfdf Mark optional property with square brackets 2018-03-19 14:31:04 +01:00
Frédéric Junod
a180eb7987 Merge pull request #7992 from trenneman/fix-7830
Fix freeze on export PDF example
2018-03-19 12:00:21 +01:00
Frederic Junod
61f944d4a9 Module type for ol.ProjectionLike 2018-03-19 10:38:39 +01:00
Frédéric Junod
634fb9f93b Merge pull request #7997 from fredj/jsdoc_module
Jsdoc module
2018-03-19 10:26:09 +01:00
Frederic Junod
bbfaa333c0 Fix class name in jsdoc type annotation 2018-03-19 09:56:14 +01:00
Frederic Junod
00f75f692f Fix typo in jsdoc type 2018-03-19 09:44:55 +01:00
Frederic Junod
ae3dc8ea06 Module type for ol.VectorImageTile 2018-03-19 09:41:22 +01:00
Frederic Junod
5b349147b5 Module type for ol.VectorTile 2018-03-19 09:36:58 +01:00
Frederic Junod
c4b38ed5dc Module type for ol.TileState 2018-03-19 09:34:19 +01:00
Frederic Junod
ded99ccad7 Module type for ol.ImageState 2018-03-19 09:31:18 +01:00
Frederic Junod
3edbbf0b46 Module type for ol.Color 2018-03-19 09:25:45 +01:00
Frederic Junod
f5aa7d7867 Module type for ol.ColorLike 2018-03-19 09:24:32 +01:00
Frederic Junod
2d9014ce11 Module type for ol.PluggableMap 2018-03-19 08:49:56 +01:00
Frederic Junod
3ccd4c0826 Module type for ol.Disposable 2018-03-19 08:48:28 +01:00
Frederic Junod
f8d94bb998 Remove unnecessary public jsdoc annotation 2018-03-19 08:44:34 +01:00
Frédéric Junod
51f25486ec Merge pull request #7986 from fredj/jsdoc_module
Use module syntax for type annotations
2018-03-19 08:38:48 +01:00
Frederic Junod
8a4d60192f Mark optional property with square brackets 2018-03-19 08:29:50 +01:00
Frederic Junod
218ca38f1d Use path type instead of ol.Coordinate 2018-03-19 08:29:50 +01:00
Andreas Hocevar
42e864fd8e Merge pull request #7996 from openlayers/4.6.5
4.6.5
2018-03-18 23:58:49 +01:00
ahocevar
1e8b135cb5 Update package version to 4.6.5 2018-03-18 23:56:32 +01:00
ahocevar
dc2cac39c7 Changelog for v4.6.5 2018-03-18 23:54:51 +01:00
Tim Schaub
082f4eaa06 Merge pull request #7993 from tschaub/module-types
Module types
2018-03-18 11:52:31 -06:00
Tim Schaub
a3ead88c57 Module types for controls 2018-03-18 10:23:01 -06:00
Tim Schaub
2e0fd1c12d Module type for Control 2018-03-18 09:53:35 -06:00
Tim Schaub
414792f707 Module type for BaseObject 2018-03-18 09:50:48 -06:00
Tim Schaub
0edbfde4d3 Module type for MapEvent 2018-03-18 09:48:06 -06:00
Andreas Hocevar
393df3faf3 Merge pull request #7989 from ahocevar/interaction-type
Redistribute olx types for ol/interaction
2018-03-18 16:12:32 +01:00
ahocevar
b9999dfb35 Fix type typos 2018-03-18 15:08:40 +01:00
Erik Timmers
b5d02dad47 Fix freeze on export PDF example
The PDF was only generated AFTER requesting new tiles. When no new tiles where needed,
the callback never completed. Also fixed fitting the correct extent.

Fixes #7830.
2018-03-18 12:34:24 +01:00
Tim Schaub
502482a2b9 Merge pull request #7990 from openlayers/greenkeeper/eslint-4.19.0
Update eslint to the latest version 🚀
2018-03-17 14:43:21 -06:00
Tim Schaub
25da233921 Adjust indent 2018-03-17 14:24:22 -06:00
greenkeeper[bot]
0ddd5622ec chore(package): update eslint to version 4.19.0 2018-03-17 13:51:00 -06:00
Andreas Hocevar
156dfa146a Merge pull request #7991 from ahocevar/fix-type-paths
Fix some type paths
2018-03-17 16:44:13 +01:00
ahocevar
e383913b3c Fix some type paths 2018-03-17 13:34:57 +01:00
ahocevar
4e89e5ed73 Fix indentation 2018-03-16 17:30:23 +01:00
ahocevar
c496b4edca Fix type typos 2018-03-16 17:22:45 +01:00
ahocevar
8728c8723f Use path types when referencing interactions 2018-03-16 17:17:06 +01:00
ahocevar
00d65ccddc No olx and ol types for ol/interaction/Translate 2018-03-16 17:15:41 +01:00
ahocevar
bc33d871e1 No olx and ol types for ol/interaction/Snap 2018-03-16 17:12:14 +01:00
ahocevar
9754334570 No olx and ol types for ol/interaction/Select 2018-03-16 17:04:58 +01:00
ahocevar
c53a13fc26 No olx and ol types for ol/interaction/Pointer 2018-03-16 16:47:04 +01:00
ahocevar
89f6d74696 No olx and ol types for ol/interaction/PinchZoom 2018-03-16 16:42:34 +01:00
ahocevar
998b8df55d No olx and ol types for ol/interaction/PinchRotate 2018-03-16 16:39:40 +01:00
ahocevar
54beb17b55 No olx and ol types for ol/interaction/MouseWheelZoom 2018-03-16 16:35:39 +01:00
ahocevar
d6b177e847 No olx and ol types for ol/interaction/Modify 2018-03-16 16:30:00 +01:00
ahocevar
438ec66c4c No olx and ol types for ol/interaction/KeyboardZoom 2018-03-16 15:46:47 +01:00
ahocevar
a4a4a0cdca No olx and ol types for ol/interaction/KeyboardPan 2018-03-16 15:35:11 +01:00
ahocevar
edf6536645 Remove ununed namespace doc file 2018-03-15 18:09:01 +01:00
ahocevar
080a156f3f No olx and ol types for ol/interaction/Extent 2018-03-15 18:07:14 +01:00
ahocevar
b19f00d893 No olx and ol types for ol/interaction/Draw 2018-03-15 17:51:19 +01:00
ahocevar
2c6afdd5bb No olx and ol types for ol/interaction/DragZoom 2018-03-15 17:18:52 +01:00
ahocevar
47d49a802e No olx and ol types for ol/interaction/DragRotateAndZoom 2018-03-15 17:12:48 +01:00
ahocevar
5d0ea11189 No olx and ol types for ol/interaction/DragRotate 2018-03-15 17:08:32 +01:00
ahocevar
a71ad16995 No olx and ol types for ol/interaction/DragPan 2018-03-15 16:49:50 +01:00
ahocevar
12581b6a77 No olx and ol types for ol/interaction/DragBox 2018-03-15 16:49:50 +01:00
ahocevar
7c7e002ee4 No olx and ol types for ol/interaction/DragAndDrop 2018-03-15 16:49:50 +01:00
ahocevar
cfb8cd3d62 No olx and ol types for ol/interaction/DoubleClickZoom 2018-03-15 16:49:49 +01:00
Frédéric Junod
e0e9c2677d Merge pull request #7985 from fredj/tilegrid-types
Use path type instead of ol.tilegrid
2018-03-15 14:51:34 +01:00
Frederic Junod
f7944d3762 Fix type name for module:ol/extent/Corner~Corner and Relationship 2018-03-15 14:42:39 +01:00
Frederic Junod
7d727d287c Use path type instead of ol.tilegrid.WMTS 2018-03-15 14:20:49 +01:00
Frederic Junod
76fb0edf0d Use path type instead of ol.tilegrid.TileGrid 2018-03-15 14:20:49 +01:00
Frédéric Junod
ab06f3818b Merge pull request #7984 from openlayers/greenkeeper/sinon-4.4.6
Update sinon to the latest version 🚀
2018-03-15 10:51:47 +01:00
greenkeeper[bot]
d9eeac83a0 chore(package): update sinon to version 4.4.6 2018-03-15 10:35:12 +01:00
Andreas Hocevar
89db85d4fb Merge pull request #7983 from ahocevar/extent-type
Use path type instead of ol.Extent
2018-03-15 10:31:09 +01:00
ahocevar
263e3c309a Trying different SauceLabs config to work around Firefox issue 2018-03-15 10:23:36 +01:00
ahocevar
889befc8c7 Use path type instead of ol.Extent 2018-03-14 11:54:09 +01:00
Frédéric Junod
4d3b962d8b Merge pull request #7981 from openlayers/greenkeeper/sinon-4.4.5
Update sinon to the latest version 🚀
2018-03-14 08:24:14 +01:00
Frédéric Junod
e97e350393 Merge pull request #7980 from fredj/jsdoc_module
Use module syntax for type annotations
2018-03-14 08:23:47 +01:00
greenkeeper[bot]
db5a9f4cbf chore(package): update sinon to version 4.4.5 2018-03-13 18:27:22 +00:00
Frederic Junod
671af4dd41 Use 'module:ol/plugins~MapRendererPlugin' instead of 'olx.MapRendererPlugin' 2018-03-13 16:38:29 +01:00
Frederic Junod
a02dfb640f Remove unused ol.PreRenderFunction typedef 2018-03-13 16:31:11 +01:00
Frederic Junod
bde23826e2 Use 'module:ol/View~FitOptions' instead of 'olx.view.FitOptions' 2018-03-13 16:24:43 +01:00
Frederic Junod
87f09b34d3 Use 'module:ol/Overlay~OverlayPanOptions' instead of 'olx.OverlayPanOptions' 2018-03-13 16:13:43 +01:00
Frederic Junod
13da5ef01d Use 'module:ol/Overlay~OverlayOptions' instead of 'olx.OverlayOptions' 2018-03-13 16:11:56 +01:00
Frederic Junod
8c58bb4332 Use 'module:ol/PluggableMap~FrameState' instead of 'olx.FrameState' 2018-03-13 16:06:46 +01:00
Frédéric Junod
120307b193 Merge pull request #7979 from fredj/jsdoc_default
Mark optional property with square brackets
2018-03-13 13:46:05 +01:00
Frédéric Junod
fbef4c3141 Merge pull request #7977 from openlayers/greenkeeper/sinon-4.4.4
Update sinon to the latest version 🚀
2018-03-13 13:30:37 +01:00
Frederic Junod
403a7bdfc7 Mark optional property with square brackets 2018-03-13 13:29:21 +01:00
Frederic Junod
bb3072153b Remove undefined type when the property is optional 2018-03-13 12:33:35 +01:00
Frédéric Junod
92d864ee92 Merge pull request #7975 from fredj/jsdoc_default
Mark optional property with square brackets
2018-03-13 11:15:35 +01:00
greenkeeper[bot]
280b349c7e chore(package): update sinon to version 4.4.4 2018-03-13 09:36:32 +00:00
Tim Schaub
2593ac116c Merge pull request #7960 from PetroDE/master
Fix memory leak in CanvasImageRenderer
2018-03-12 23:04:18 -06:00
Frédéric Junod
ba17527d29 Merge pull request #7974 from fredj/cleanup
Fix spelling
2018-03-12 16:10:22 +01:00
Frédéric Junod
74b3db9363 Merge pull request #7973 from fredj/rm_setAttributeNS
Remove setAttributeNS function from ol/xml
2018-03-12 16:02:58 +01:00
Frederic Junod
813b72251a Mark optional property with square brackets 2018-03-12 15:58:44 +01:00
Tim Schaub
1de1bda252 Merge pull request #7971 from tschaub/module-types
Use module syntax for type annotations
2018-03-12 08:39:48 -06:00
Tim Schaub
8907339963 Module type for ol/MapBrowserEvent 2018-03-12 08:32:09 -06:00
Tim Schaub
cf80733e41 Module type for ol/Feature 2018-03-12 08:32:09 -06:00
Tim Schaub
5c9aa0ce93 Module type for ol/TileRange 2018-03-12 08:32:09 -06:00
Tim Schaub
a743ec3989 Module types for ol/proj 2018-03-12 08:32:09 -06:00
Tim Schaub
ef70d71636 Module types for ol/geom 2018-03-12 08:32:09 -06:00
Frederic Junod
35158efbf0 Fix spelling 2018-03-12 15:18:58 +01:00
Tim Schaub
41d9a84a8f Merge pull request #7968 from tschaub/types
More types in the right places
2018-03-12 08:11:10 -06:00
Frederic Junod
ac3c114477 Remove setAttributeNS function from ol/xml
And create a const for the `XMLSchema-instance` URI
2018-03-12 09:22:20 +01:00
Frédéric Junod
e8341af803 Merge pull request #7972 from openlayers/greenkeeper/sinon-4.4.3
Update sinon to the latest version 🚀
2018-03-12 09:19:20 +01:00
greenkeeper[bot]
ec95dbd683 chore(package): update sinon to version 4.4.3 2018-03-12 07:30:12 +00:00
Tim Schaub
03a7a6cb08 Move Options to ol/format/WMSGetFeatureInfo 2018-03-11 22:31:46 -06:00
Tim Schaub
7d52a9b8c4 Move Options to ol/format/WKT 2018-03-11 22:30:12 -06:00
Tim Schaub
55e257d6fb Move WriteTransactionOptions to ol/format/WFS 2018-03-11 22:28:19 -06:00
Tim Schaub
ca46c4dd07 Move WriteGetFeatureOptions to ol/format/WFS 2018-03-11 22:26:22 -06:00
Tim Schaub
4c78642ae2 Move Options to ol/format/WFS 2018-03-11 22:23:47 -06:00
Tim Schaub
bb816de768 Move Options to ol/format/GPX 2018-03-11 22:23:18 -06:00
Tim Schaub
2091629922 Move Options to ol/format/GMLBase 2018-03-11 22:15:11 -06:00
Tim Schaub
458383c7d3 Move Options to ol/format/KML 2018-03-11 22:11:36 -06:00
Tim Schaub
2ce44e8fc8 Move Options to ol/format/IGC 2018-03-11 22:09:55 -06:00
Tim Schaub
95e1c6f69a Move Options to ol/format/TopoJSON 2018-03-11 22:07:51 -06:00
Tim Schaub
5d5aa6c96d Move Options to ol/format/Polyline 2018-03-11 22:05:19 -06:00
Tim Schaub
7f6c4ef6cf Move Options to ol/format/MVT 2018-03-11 16:06:32 -06:00
Tim Schaub
a7c5ae1ca3 Move Options to ol/format/EsriJSON 2018-03-11 16:03:30 -06:00
Tim Schaub
a926332113 Move Options to ol/format/GeoJSON 2018-03-11 16:02:41 -06:00
Tim Schaub
8eaee5618e Move WriteOptions to ol/format/Feature 2018-03-11 15:55:48 -06:00
Tim Schaub
4eb6603af7 Move ReadOptions to ol/format/Feature 2018-03-11 15:51:16 -06:00
Tim Schaub
b1725ef1e0 Merge pull request #7966 from tschaub/no-namespace
Remove namespaces from olx.js
2018-03-11 15:10:27 -06:00
Tim Schaub
26269c3743 Remove namespaces from olx.js 2018-03-11 12:47:13 -06:00
Tim Schaub
bb1754b7d3 Merge pull request #7965 from tschaub/types
Redistribute types from externs/olx.js
2018-03-11 12:41:14 -06:00
Tim Schaub
328910049d Move ZoomToExtentOptions to ol/control/ZoomToExtent 2018-03-11 11:34:09 -06:00
Tim Schaub
4c7a07e4b8 Move ZoomSliderOptions to ol/control/ZoomSlider 2018-03-11 11:31:40 -06:00
Tim Schaub
9b4ed8aaf3 Move ZoomOptions to ol/control/Zoom 2018-03-11 11:29:57 -06:00
Tim Schaub
8da0f3b1be Move RotateOptions to ol/control/Rotate 2018-03-11 11:27:49 -06:00
Tim Schaub
464e2e0f0f Move ScaleLineOptions to ol/control/ScaleLine 2018-03-11 11:25:32 -06:00
Tim Schaub
6cebaf2665 Move OverviewMapOptions to ol/control/OverviewMap 2018-03-11 11:21:24 -06:00
Tim Schaub
de9d9ffce1 Throw an error with more detail in publish.js and remove olx.control 2018-03-11 11:17:45 -06:00
Tim Schaub
e059a50131 Move MousePositionOptions to ol/control/MousePosition 2018-03-11 10:52:37 -06:00
Tim Schaub
5dcfa1137d Move FullScreenOptions to ol/control/FullScreen 2018-03-11 10:46:56 -06:00
Tim Schaub
9468fd45ec Move ControlOptions to ol/control/Control 2018-03-11 10:43:58 -06:00
Tim Schaub
cddfd7cb3b Move AttributionOptions to ol/control/Attribution 2018-03-11 10:41:27 -06:00
Tim Schaub
57d135e9f6 Move AnimationOptions to ol/View 2018-03-11 10:37:57 -06:00
Tim Schaub
70ff218a8e Move ProjectionOptions to ol/proj/Projection 2018-03-11 10:34:17 -06:00
Tim Schaub
f306fd0aa0 Move AtPixelOptions to PluggableMap 2018-03-11 10:30:02 -06:00
Tim Schaub
e3409b1f78 Merge pull request #7608 from tschaub/goodbye-olx
Facilitate the removal of externs/olx.js
2018-03-11 10:22:59 -06:00
Tim Schaub
f989982563 Merge pull request #7964 from tschaub/type-fix
Coordinate type typo
2018-03-11 09:19:22 -06:00
Frederic Junod
0ad6c82578 Update xol content 2018-03-11 09:12:14 -06:00
Andreas Hocevar
becce622e5 Update xol script and content 2018-03-11 09:12:14 -06:00
Andreas Hocevar
c4cf75e470 Use let instead of var for exports 2018-03-11 09:12:02 -06:00
Tim Schaub
0ae5ba2904 Script for migrating externs/olx.js 2018-03-11 09:07:04 -06:00
Tim Schaub
a69a1f3ff4 Coordinate type typo 2018-03-11 08:36:54 -06:00
Tim Schaub
70a50e9386 Merge pull request #7961 from tschaub/style-type
Correct type for style
2018-03-10 07:55:22 -07:00
Frédéric Junod
ab1abd9c6d Merge pull request #7963 from openlayers/greenkeeper/url-polyfill-1.0.11
chore(package): update url-polyfill to version 1.0.11
2018-03-10 08:45:35 +01:00
Frédéric Junod
d58d4ed460 Merge pull request #7962 from openlayers/greenkeeper/serve-6.5.2
chore(package): update serve to version 6.5.2
2018-03-10 08:45:19 +01:00
greenkeeper[bot]
8bf903c3c8 chore(package): update url-polyfill to version 1.0.11 2018-03-10 08:39:29 +01:00
greenkeeper[bot]
03ec3fd6c6 chore(package): update serve to version 6.5.2 2018-03-10 08:37:34 +01:00
Frédéric Junod
c55be4de1c Merge pull request #7958 from fredj/types
miscellaneous fixes to the types annotation
2018-03-10 08:26:21 +01:00
Tim Schaub
f70050be12 Correct type for style 2018-03-09 20:50:51 -07:00
Erin Campbell
0fcc986dac Fix memory leak in CanvasImageRenderer when rendering a VectorLayer with renderMode: 'image'.
Added tests to CanvasImageLayerRenderer for this issue.
2018-03-09 13:15:05 -07:00
Andreas Hocevar
0b673ac110 Merge pull request #7959 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.3.2
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-03-09 18:56:24 +01:00
Andreas Hocevar
b17c83e67b Merge pull request #7957 from openlayers/greenkeeper/recast-0.14.5
Update recast to the latest version 🚀
2018-03-09 18:32:54 +01:00
greenkeeper[bot]
5e04b730af chore(package): update babel-plugin-jsdoc-closure to version 1.3.2 2018-03-09 16:46:15 +00:00
Frederic Junod
b6695794d3 Fix bad type annotation 2018-03-09 17:09:15 +01:00
Frederic Junod
2e34421c71 Use Element type instead of Node for an html element 2018-03-09 16:59:58 +01:00
greenkeeper[bot]
a507ce0411 chore(package): update recast to version 0.14.5 2018-03-09 15:50:43 +00:00
Frederic Junod
6b07646129 Remove wrong const annotation 2018-03-09 16:49:49 +01:00
Andreas Hocevar
7ae3ee4c73 Merge pull request #7953 from ahocevar/olx-part-2
Get rid of externs/olx.js and src/ol/typedefs.js typedefs for ol/ and ol/events/
2018-03-09 15:59:51 +01:00
Andreas Hocevar
8eea49c56d Merge pull request #7956 from ahocevar/sort-index
Make sure namespaces are populated after they were created
2018-03-09 15:59:12 +01:00
Andreas Hocevar
a964dd27e9 Make sure namespaces are populated after they were created 2018-03-09 15:48:31 +01:00
Frédéric Junod
77dd0c0842 Merge pull request #7952 from fredj/type_typo
Fix typo in jsdoc type
2018-03-09 08:27:37 +01:00
Andreas Hocevar
395b26832a Get rid of olx.js and typedef.js typedefs for ol/events 2018-03-08 18:57:24 +01:00
Andreas Hocevar
95d6251dbb Get rid of olx.js and typedef.js typedefs for ol 2018-03-08 18:57:24 +01:00
Frederic Junod
29f916a4f7 Fix typo in jsdoc type 2018-03-08 17:15:48 +01:00
Frédéric Junod
8f0ffe2043 Merge pull request #7948 from fredj/typecheck
Better type definition
2018-03-08 09:21:45 +01:00
Frédéric Junod
523bdf9819 Merge pull request #7950 from openlayers/greenkeeper/mocha-5.0.4
Update mocha to the latest version 🚀
2018-03-08 08:33:27 +01:00
Frederic Junod
735798a88c Add some typecast for the closure-compiler 2018-03-08 08:29:20 +01:00
greenkeeper[bot]
368ba765ec chore(package): update mocha to version 5.0.4 2018-03-07 21:43:15 +00:00
Frederic Junod
3435ac575e Better type definition
Fixes the `Invalid type(s) for operator IN.` warnings from the closure compiler.
2018-03-07 16:45:46 +01:00
Andreas Hocevar
21bf83537d Merge pull request #7946 from ahocevar/olx-part-1
New typedef syntax and module path types for some modules
2018-03-07 15:26:03 +01:00
Andreas Hocevar
9e105b072d New typedef syntax for sphere 2018-03-07 13:56:51 +01:00
Andreas Hocevar
07cd7ba325 New typedef syntax and constructor options for Interaction 2018-03-07 13:56:17 +01:00
Andreas Hocevar
9ee79aa6b7 New typedef syntax and constructor options for PluggableMap 2018-03-07 13:56:03 +01:00
Andreas Hocevar
a63733107f New typedef syntax and constructor options for Graticule 2018-03-07 13:55:43 +01:00
Andreas Hocevar
253e2fd2d8 New typedef syntax and constructor options for Geolocation 2018-03-07 13:55:32 +01:00
Andreas Hocevar
f680c9cfa5 New typedef syntax and constructor options for Collection 2018-03-07 13:55:20 +01:00
Andreas Hocevar
a05c4b0159 New typedef syntax for TransformFunction 2018-03-07 13:54:43 +01:00
Andreas Hocevar
d324398b5b New typedef syntax for Size 2018-03-07 13:53:37 +01:00
Andreas Hocevar
9ca2e4d01f New typedef syntax for ProjectionLike 2018-03-07 13:52:57 +01:00
Andreas Hocevar
b6781ac186 New typedef syntax for Pixel 2018-03-07 13:52:08 +01:00
Andreas Hocevar
2ae049dfbc New typedef syntax for PostRenderFunction 2018-03-07 13:49:25 +01:00
Andreas Hocevar
1e7a9e9231 New typedef syntax for Transform 2018-03-07 13:48:28 +01:00
Andreas Hocevar
938e475db1 Move MapOptionsInternal to PluggableMap 2018-03-07 13:46:36 +01:00
Andreas Hocevar
7decf90b6a Move GraticuleLabelDataType to Graticule 2018-03-07 13:45:53 +01:00
Andreas Hocevar
41cf1e93f4 New typedef syntax for Event 2018-03-07 13:44:40 +01:00
Andreas Hocevar
258b6e1d56 New typedef syntax for EventsKey 2018-03-07 13:44:15 +01:00
Andreas Hocevar
5ca31e094e New typedef syntax for Coordinate 2018-03-07 13:43:31 +01:00
Andreas Hocevar
3d5217f7e0 Merge pull request #7945 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.3.1
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-03-07 13:19:13 +01:00
greenkeeper[bot]
c370f4d09e chore(package): update babel-plugin-jsdoc-closure to version 1.3.1 2018-03-07 11:56:15 +00:00
Andreas Hocevar
c61a2b0d14 Merge pull request #7944 from ahocevar/point-wrap
Make wrap work with points in the vector-labels example
2018-03-07 12:23:15 +01:00
Frédéric Junod
91cca684af Merge pull request #7943 from openlayers/greenkeeper/mocha-5.0.3
Update mocha to the latest version 🚀
2018-03-07 10:52:21 +01:00
Andreas Hocevar
18a668318d Make wrap work with points 2018-03-07 10:14:44 +01:00
greenkeeper[bot]
e92f9cca45 chore(package): update mocha to version 5.0.3 2018-03-07 09:09:55 +00:00
Andreas Hocevar
8403f7d951 Merge pull request #7940 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.3.0
Update babel-plugin-jsdoc-closure to the latest version 🚀
2018-03-06 16:15:33 +01:00
greenkeeper[bot]
83c579b38c chore(package): update babel-plugin-jsdoc-closure to version 1.3.0 2018-03-06 12:34:03 +00:00
Frédéric Junod
41348968e9 Merge pull request #7938 from openlayers/greenkeeper/mocha-5.0.2
Update mocha to the latest version 🚀
2018-03-06 08:36:44 +01:00
greenkeeper[bot]
32e875cdb7 chore(package): update mocha to version 5.0.2 2018-03-06 04:55:42 +00:00
Frédéric Junod
37729a40bf Merge pull request #7933 from fredj/indent
Better code indentation
2018-03-05 16:32:40 +01:00
Frederic Junod
500a017faf Better code indentation 2018-03-05 15:36:40 +01:00
Frédéric Junod
95d94052a7 Merge pull request #7930 from openlayers/on_to_listen
Use listen function instead of on
2018-03-05 15:26:48 +01:00
Frédéric Junod
a0b5cd548a Merge pull request #7929 from openlayers/cleanup_dev_dep
Remove unused devDependencies
2018-03-05 11:07:12 +01:00
Frederic Junod
235fc59c72 Use listen function instead of on
In #7614, the `opt_this` argument was removed from `Observable#on`, `#once` and `#un` but internal code was not adapted.
2018-03-05 10:01:12 +01:00
Frederic Junod
247e9eff96 Remove unused devDependencies 2018-03-05 08:30:28 +01:00
Tim Schaub
d29fd63504 Merge pull request #7927 from tschaub/unused
Remove unused deps, unused tasks, and outdated info
2018-03-04 17:00:59 -07:00
Andreas Hocevar
5225df26f1 Merge pull request #7923 from ahocevar/fix-pointer-static
Fix exports and use of constants
2018-03-04 15:03:17 +01:00
Tim Schaub
bf30802620 Merge pull request #7925 from openlayers/greenkeeper/eslint-4.18.2
Update eslint to the latest version 🚀
2018-03-03 17:33:06 -07:00
Tim Schaub
449568802a Remove unused deps, unused tasks, and outdated info 2018-03-03 13:25:46 -07:00
Tim Schaub
b3d915629e Merge pull request #7914 from gberaudo/some_easy_window_cleanups
Some easy window cleanups
2018-03-03 13:04:30 -07:00
Tim Schaub
d0a8ae718e Merge pull request #7915 from gberaudo/untie_featureloader_from_xml_code
Untie feature loader and XML code
2018-03-03 13:03:28 -07:00
greenkeeper[bot]
c2fc30788f chore(package): update eslint to version 4.18.2 2018-03-02 22:36:41 +00:00
Andreas Hocevar
d818817117 Fix exports and use of constants 2018-03-02 17:26:17 +01:00
Andreas Hocevar
2f1dab4631 Merge pull request #7921 from openlayers/greenkeeper/clean-css-cli-4.1.11
Update clean-css-cli to the latest version 🚀
2018-03-02 16:57:46 +01:00
greenkeeper[bot]
6a1839cb9a chore(package): update clean-css-cli to version 4.1.11 2018-03-02 15:09:57 +00:00
Frédéric Junod
90daf17ed6 Merge pull request #7918 from fredj/mv_nullFunction
Move the nullFunction to ol/functions
2018-03-01 14:57:13 +01:00
Frederic Junod
b50a47114e Move the nullFunction to ol/functions
And rename it to `UNDEFINED`.
2018-03-01 14:41:18 +01:00
Andreas Hocevar
a30d9a41b8 Merge pull request #7916 from openlayers/greenkeeper/html-webpack-plugin-3.0.1
chore(package): update html-webpack-plugin to version 3.0.1
2018-03-01 10:06:53 +01:00
Guillaume Beraudo
cb539bce98 Untie feature loader and XML code 2018-03-01 09:14:45 +01:00
Frédéric Junod
71a609d8d5 Merge pull request #7910 from fredj/indent
Better code indentation
2018-03-01 08:44:57 +01:00
greenkeeper[bot]
bca2667a18 chore(package): update html-webpack-plugin to version 3.0.1
Closes #7912
2018-03-01 06:18:12 +00:00
Guillaume Beraudo
6280941669 Remove window prefix from event listener functions 2018-02-28 23:28:38 +01:00
Guillaume Beraudo
f9a2780546 Do not assume window is defined
It is notably not the case in web workers.
2018-02-28 23:24:53 +01:00
Guillaume Beraudo
cfa9718df9 Remove window prefix
The prefix is unnecessary and prevent usage in web workers.
2018-02-28 23:22:18 +01:00
Frederic Junod
73b15ef8d7 Better code indentation 2018-02-28 16:46:45 +01:00
Andreas Hocevar
cf0c42ae7d Merge pull request #7904 from ahocevar/focus-scroll
Add focus condition, e.g. for wheel zoom
2018-02-28 08:21:37 +01:00
Tim Schaub
85d4642450 Merge pull request #7905 from openlayers/greenkeeper/karma-webpack-2.0.13
Update karma-webpack to the latest version 🚀
2018-02-27 18:20:43 -07:00
greenkeeper[bot]
86fb3e4664 chore(package): update karma-webpack to version 2.0.13 2018-02-27 20:51:35 +00:00
Andreas Hocevar
2d67c15ea9 Add focus condition, e.g. for wheel zoom 2018-02-27 21:39:02 +01:00
Kevin Schmidt
791f8b9917 Don't assume fill for canvas polygon hit detection.
This brings canvas polygon hit detection in parity with WebGL, where an
unfilled polygon will not be hit detected hovering inside the polygon.

Fixes #4846
2018-02-27 13:12:46 -07:00
Andreas Hocevar
78ea426764 Merge pull request #7903 from openlayers/greenkeeper/marked-0.3.17
Update marked to the latest version 🚀
2018-02-27 14:54:33 +01:00
greenkeeper[bot]
5f14cd0b05 chore(package): update marked to version 0.3.17 2018-02-27 13:10:03 +00:00
Andreas Hocevar
b308635b67 Merge pull request #7902 from ahocevar/font-detect-symbol
Add a unicode symbol for symbol font detection
2018-02-27 13:39:21 +01:00
Andreas Hocevar
445c49c1eb Add a unicode symbol for symbol font detection 2018-02-27 13:22:35 +01:00
Andreas Hocevar
795ef70bf9 Merge pull request #7901 from openlayers/greenkeeper/karma-webpack-2.0.12
Update karma-webpack to the latest version 🚀
2018-02-27 09:51:05 +01:00
greenkeeper[bot]
eccf0e398f chore(package): update karma-webpack to version 2.0.12 2018-02-26 23:23:21 +00:00
Tim Schaub
32875cf7e9 Merge pull request #7899 from tschaub/nomnom
Use nomnom@1.8.1
2018-02-26 09:43:26 -08:00
Tim Schaub
242cb70550 Use nomnom@1.8.1 2018-02-26 10:01:13 -07:00
Frédéric Junod
5c7fff42de Merge pull request #7898 from openlayers/greenkeeper/karma-webpack-2.0.11
chore(package): update karma-webpack to version 2.0.11
2018-02-26 12:30:46 +01:00
Frédéric Junod
3c33d0c7d1 Merge pull request #7897 from fredj/cleanup
Better variables scoping
2018-02-26 10:11:13 +01:00
Frederic Junod
8df89356f1 Better variables scoping 2018-02-26 08:51:33 +01:00
greenkeeper[bot]
914a58d716 chore(package): update karma-webpack to version 2.0.11
Closes #7896
2018-02-25 23:28:58 +00:00
Tim Schaub
dccb620d66 Merge pull request #7894 from tschaub/named-exports
More named exports, fewer static members
2018-02-25 13:33:02 -08:00
Tim Schaub
1404e9d61d Remove remaining static members from Interaction 2018-02-25 12:46:57 -07:00
Tim Schaub
244fbbbb8d Remove some of the static members from Interaction 2018-02-25 10:17:21 -07:00
Tim Schaub
3f944ef76e Remove static members from Modify 2018-02-25 09:18:44 -07:00
Tim Schaub
78e0cb294c Remove static members from Pointer 2018-02-25 09:10:51 -07:00
Tim Schaub
064c5644e7 Remove static members from Select 2018-02-25 09:06:57 -07:00
Tim Schaub
dfefe7d465 Remove static members from Snap 2018-02-25 09:03:46 -07:00
Tim Schaub
e0a99c43dc Remove static members from Translate 2018-02-25 09:03:27 -07:00
Tim Schaub
4e6cf58de1 Remove static members from BaseObject 2018-02-25 08:49:28 -07:00
Tim Schaub
ef92649017 Remove static members from Units 2018-02-25 08:43:07 -07:00
Tim Schaub
c5bf6f1c6f Remove static members from BingMaps 2018-02-25 08:43:06 -07:00
Tim Schaub
2188c5fa91 Remove static members from ImageSource 2018-02-25 08:43:01 -07:00
Tim Schaub
12eccdc52d Remove static members from ImageMapGuide 2018-02-25 08:24:24 -07:00
Tim Schaub
42cf5f8511 Named exports from ol/source/OSM 2018-02-25 08:23:05 -07:00
Tim Schaub
33d91f1b89 Remove static members from Raster 2018-02-25 08:19:05 -07:00
Tim Schaub
7ab83f2722 Remove static members from Stamen 2018-02-25 08:17:07 -07:00
Tim Schaub
e3f15e1d24 Named exports from ol/source/Tile 2018-02-25 08:13:36 -07:00
Tim Schaub
57d2e7721d Remove static member from TileImage 2018-02-25 08:13:36 -07:00
Tim Schaub
9b75dc949f Named exports from ol/source/Vector 2018-02-25 08:13:31 -07:00
Tim Schaub
00f891c3f9 Named exports from ol/source/WMTS 2018-02-25 08:06:50 -07:00
Tim Schaub
d8934d8593 Merge pull request #7881 from fredj/cleanup
Better variables scoping
2018-02-25 07:00:57 -08:00
Tim Schaub
2ded70b38a Merge pull request #7893 from openlayers/greenkeeper/sinon-4.4.2
Update sinon to the latest version 🚀
2018-02-25 06:51:04 -08:00
Tim Schaub
8d9755dce3 Merge pull request #7891 from openlayers/greenkeeper/recast-0.14.4
chore(package): update recast to version 0.14.4
2018-02-25 06:50:31 -08:00
greenkeeper[bot]
209e392276 chore(package): update sinon to version 4.4.2 2018-02-25 13:09:47 +00:00
Tim Schaub
cc02a4bb9f Merge pull request #7888 from bjornharrtell/pointer-rework
Rework away static members from pointer related classes
2018-02-25 03:41:01 -08:00
greenkeeper[bot]
4e2c9e04d1 chore(package): update recast to version 0.14.4
Closes #7889
2018-02-24 20:23:54 +00:00
Björn Harrtell
6d1e8cb38b Rework away static members from pointer related classes 2018-02-24 16:24:53 +01:00
Tim Schaub
3cbdb208c1 Merge pull request #7886 from openlayers/greenkeeper/sinon-4.4.1
Update sinon to the latest version 🚀
2018-02-24 06:13:25 -08:00
greenkeeper[bot]
49066a6d86 chore(package): update sinon to version 4.4.1 2018-02-24 09:04:25 +00:00
Tim Schaub
a32d05e432 Merge pull request #7880 from tschaub/named-exports
Named exports from ol/style/Style
2018-02-23 09:04:03 -08:00
Frédéric Junod
bfae19c7e1 Merge pull request #7882 from openlayers/greenkeeper/sinon-4.4.0
Update sinon to the latest version 🚀
2018-02-23 11:28:49 +01:00
greenkeeper[bot]
f032329c7f chore(package): update sinon to version 4.4.0 2018-02-23 10:13:48 +00:00
Frederic Junod
c50bc51534 Better variables scoping 2018-02-23 10:14:42 +01:00
Tim Schaub
580c2c6545 Named exports from ol/style/Style 2018-02-22 23:34:52 -08:00
Frédéric Junod
18ff892012 Merge pull request #7872 from fredj/named_export
More named export
2018-02-23 08:23:33 +01:00
Tim Schaub
ca4dfb9ec3 Merge pull request #7876 from openlayers/greenkeeper/recast-0.14.2
Update recast to the latest version 🚀
2018-02-22 22:49:52 -08:00
Tim Schaub
0ab25d511a Merge pull request #7877 from openlayers/greenkeeper/webpack-merge-4.1.2
Update webpack-merge to the latest version 🚀
2018-02-22 22:48:17 -08:00
Tim Schaub
f3047d1305 Merge pull request #7874 from tschaub/named-exports
Cleaning up exports
2018-02-22 22:43:42 -08:00
greenkeeper[bot]
2b56b72a0e chore(package): update webpack-merge to version 4.1.2 2018-02-22 21:18:37 +00:00
greenkeeper[bot]
3524146d73 chore(package): update recast to version 0.14.2 2018-02-22 17:36:15 +00:00
Frederic Junod
e3deae940d Named exports from ol/style/IconImage 2018-02-22 08:19:23 +01:00
Tim Schaub
7a0cbf0cb0 Remove static members from extent interaction 2018-02-21 15:56:21 -08:00
Tim Schaub
f81f3e2e9f Remove static members from Draw interaction 2018-02-21 15:55:22 -08:00
Tim Schaub
afda1dc996 Remove static members from DragBox 2018-02-21 15:46:48 -08:00
Frederic Junod
fa1fcc79b6 Named exports from ol/interaction/Pointer 2018-02-21 16:52:00 +01:00
Frédéric Junod
190449e816 Merge pull request #7871 from fredj/optim
Memory optimization
2018-02-21 16:35:27 +01:00
Frédéric Junod
4b99060c26 Merge pull request #7870 from fredj/use_webgl_getContext
Use exported function from ol/webgl
2018-02-21 16:35:02 +01:00
Frédéric Junod
343e392eae Merge pull request #7868 from fredj/named_export
Named export
2018-02-21 16:34:02 +01:00
Frederic Junod
17a799059c Move the temporary array to the module level
No need to create a new variable for each instance.
2018-02-21 15:25:47 +01:00
Frederic Junod
ab28c48338 Only compute the viewState focus when it's needed 2018-02-21 14:42:45 +01:00
Frederic Junod
d9a6121058 Don't call view.getState in DragPan interaction
Reduce garbage generation from the function response (Object)
2018-02-21 14:42:45 +01:00
Frederic Junod
6f919032a4 Use exported function from ol/webgl 2018-02-21 14:25:59 +01:00
Frederic Junod
aaf3999e0d Rename tileCoordCreateOrUpdate to createOrUpdateTileCoord 2018-02-21 09:23:51 +01:00
Frederic Junod
a92c08bf26 Named exports from ol/TileRange 2018-02-21 09:22:21 +01:00
Frederic Junod
2132229d68 Named exports from ol/render/canvas/ReplayGroup 2018-02-21 09:15:53 +01:00
Frederic Junod
16b732472f Named exports from ol/render/canvas/TextReplay 2018-02-21 09:13:33 +01:00
Frederic Junod
f1d32e71cd Named exports from ol/View 2018-02-21 09:05:40 +01:00
Frederic Junod
2fd75566fb Named exports from ol/Observable 2018-02-21 09:01:08 +01:00
Frédéric Junod
e2854b3176 Merge pull request #7865 from openlayers/greenkeeper/marked-0.3.16
Update marked to the latest version 🚀
2018-02-21 08:30:02 +01:00
Frédéric Junod
c77fdd4d17 Merge pull request #7861 from fredj/named_export
Named exports from ol/structs/PriorityQueue
2018-02-21 08:28:06 +01:00
Tim Schaub
0dcbccd8cc Merge pull request #7866 from openlayers/greenkeeper/eslint-4.18.1
Update eslint to the latest version 🚀
2018-02-20 21:04:36 -07:00
Tim Schaub
94dace4afd Merge pull request #7867 from openlayers/greenkeeper/recast-0.14.1
Update recast to the latest version 🚀
2018-02-20 20:56:51 -07:00
greenkeeper[bot]
2e6bf7d87b chore(package): update recast to version 0.14.1 2018-02-21 01:41:08 +00:00
greenkeeper[bot]
28a2f6a468 chore(package): update eslint to version 4.18.1 2018-02-20 23:18:04 +00:00
greenkeeper[bot]
96d8e7f6fa chore(package): update marked to version 0.3.16 2018-02-20 20:58:19 +00:00
Frederic Junod
57a7750924 Named exports from ol/structs/PriorityQueue 2018-02-20 16:13:16 +01:00
Frédéric Junod
711c81ab8c Merge pull request #7860 from openlayers/rm_export_webgl
Don't export private constant from ol/webgl
2018-02-20 14:49:36 +01:00
Tim Schaub
68253bc9a1 Merge pull request #7855 from tschaub/named-exports
More named exports
2018-02-20 06:41:23 -07:00
Frederic Junod
aa782588e9 Don't export private constant from ol/webgl 2018-02-20 13:58:34 +01:00
Tim Schaub
89518bd6e4 Merge pull request #7858 from openlayers/greenkeeper/recast-0.14.0
Update recast to the latest version 🚀
2018-02-19 22:19:03 -07:00
greenkeeper[bot]
44a919dc76 chore(package): update recast to version 0.14.0 2018-02-20 01:17:33 +00:00
Tim Schaub
8c20bf5d7d Make DragAndDropEvent private to module 2018-02-19 14:01:03 -07:00
Tim Schaub
1be61fdb09 Only export handleEvent where it is used by other interactions 2018-02-19 14:00:59 -07:00
Tim Schaub
bca8938a02 Remove static function from ImageTile 2018-02-19 10:07:14 -07:00
Tim Schaub
fba4d82bdb Named exports from ol/geom/SimpleGeometry 2018-02-19 10:05:30 -07:00
Tim Schaub
2abc524147 Named exports from ol/format/xsd 2018-02-19 09:58:50 -07:00
Tim Schaub
7b21b41151 Named export from ol/format/GMLBase 2018-02-19 09:26:16 -07:00
Tim Schaub
67e5ba6afa Merge pull request #7851 from tschaub/named-exports
Replacing static functions with named exports
2018-02-19 08:42:52 -07:00
Frédéric Junod
7ef8080bdc Merge pull request #7852 from nicholas-l/renameExtent
Rename extent
2018-02-19 13:42:20 +01:00
Nicholas L
7097b530f3 Rename extent 2018-02-19 20:33:03 +13:00
Tim Schaub
a480b0065b Named exports from ol/events/Event 2018-02-18 23:08:04 -07:00
Tim Schaub
4106ed8776 Export render from ol/control/ZoomSlider 2018-02-18 23:06:56 -07:00
Tim Schaub
e3f199fe37 Export render from ol/control/ScaleLine 2018-02-18 23:06:51 -07:00
Tim Schaub
8e69393ddd Export render from ol/control/Rotate 2018-02-18 22:46:36 -07:00
Tim Schaub
fc0af19b59 Export render from ol/control/OverviewMap 2018-02-18 22:46:06 -07:00
Tim Schaub
6af726e72b Export render from ol/control/MousePosition 2018-02-18 22:40:00 -07:00
Tim Schaub
2d46a15a3d Remove static methods from FullScreen 2018-02-18 22:38:05 -07:00
Tim Schaub
971d2d6f07 Export render from ol/control/Attribution 2018-02-18 22:32:43 -07:00
Tim Schaub
9aae8aeb26 Export CollectionEvent from ol/Collection 2018-02-18 22:29:50 -07:00
Tim Schaub
4e0eaae9da Merge pull request #7840 from raiyni/render_webgl
More export renaming
2018-02-18 21:46:54 -07:00
Tim Schaub
d53c1c9ff9 Merge pull request #7850 from openlayers/greenkeeper/marked-0.3.15
Update marked to the latest version 🚀
2018-02-18 21:45:25 -07:00
greenkeeper[bot]
5db2548394 chore(package): update marked to version 0.3.15 2018-02-19 04:27:55 +00:00
raiyni
52e4222c4d assign object properties in brackets 2018-02-18 16:50:09 -06:00
Tim Schaub
db736de3f1 Merge pull request #7849 from openlayers/greenkeeper/recast-0.13.2
Update recast to the latest version 🚀
2018-02-17 23:18:21 -07:00
greenkeeper[bot]
01ce7289c9 chore(package): update recast to version 0.13.2 2018-02-18 00:31:03 +00:00
Frédéric Junod
c39976d2bb Merge pull request #7848 from openlayers/greenkeeper/nomnom-2.0.0
Update nomnom to the latest version 🚀
2018-02-17 06:59:02 +01:00
Frédéric Junod
51b88ab1a5 Merge pull request #7847 from openlayers/greenkeeper/eslint-4.18.0
Update eslint to the latest version 🚀
2018-02-17 06:58:42 +01:00
greenkeeper[bot]
1a8734bb45 chore(package): update eslint to version 4.18.0 2018-02-17 06:47:20 +01:00
greenkeeper[bot]
cef67c4d9b chore(package): update nomnom to version 2.0.0 2018-02-17 03:02:09 +00:00
Frédéric Junod
e97746217b Merge pull request #7843 from fredj/indent
Better code indentation
2018-02-16 14:59:09 +01:00
Frédéric Junod
f2b23a101d Merge pull request #7845 from openlayers/greenkeeper/marked-0.3.14
chore(package): update marked to version 0.3.14
2018-02-16 14:58:42 +01:00
greenkeeper[bot]
548c247ffc chore(package): update marked to version 0.3.14
Closes #7844
2018-02-16 13:41:48 +00:00
Frederic Junod
4cad77089a Better code indentation 2018-02-16 14:34:00 +01:00
Andreas Hocevar
7747f4f40d Merge pull request #7842 from ahocevar/labelcache-adjust-size
Allow setting the label cache size
2018-02-16 12:01:48 +01:00
Andreas Hocevar
fff957a199 Allow setting the label cache size 2018-02-16 11:36:58 +01:00
Andreas Hocevar
064c25f144 Merge pull request #7841 from openlayers/greenkeeper/babel-plugin-jsdoc-closure-1.2.0
Greenkeeper/babel plugin jsdoc closure 1.2.0
2018-02-16 10:10:58 +01:00
Andreas Hocevar
a961b07c65 Fix typedefs 2018-02-16 09:44:54 +01:00
greenkeeper[bot]
e772633d0a chore(package): update babel-plugin-jsdoc-closure to version 1.2.0
Closes #7837
2018-02-16 07:52:33 +00:00
raiyni
b5b3e256f8 ol/render/replay export 2018-02-15 22:54:02 -06:00
raiyni
c715570f87 ol/render/webgl export 2018-02-15 22:35:59 -06:00
raiyni
1674eba2cd ol/webgl exports 2018-02-15 21:39:53 -06:00
Marc Jansen
3d4883f332 Merge pull request #7791 from marcjansen/tilecoord-refactor
Named exports from ol/tilecoord
2018-02-15 22:01:43 +01:00
Marc Jansen
d26d5a327e Merge pull request #7835 from marcjansen/css-collapsed-const
Add and use a constant for the collapsed CSS class
2018-02-15 22:01:11 +01:00
Marc Jansen
358a90b821 Merge pull request #7834 from marcjansen/transform-transformation
Named exports from ol/transform
2018-02-15 22:00:42 +01:00
Marc Jansen
0aac821633 Add and use a constant for the collapsed CSS class 2018-02-15 18:31:13 +01:00
Marc Jansen
685b46f1e3 Named exports from tilecoord 2018-02-15 18:04:51 +01:00
Marc Jansen
183b8e29c4 Named exports from ol/transform 2018-02-15 17:55:54 +01:00
Frédéric Junod
a01b38bc36 Merge pull request #7831 from fredj/maxTilesLoading
Add new maxTilesLoading option to ol/PluggableMap
2018-02-15 15:57:20 +01:00
Frédéric Junod
8161cd7f1c Merge pull request #7833 from fredj/f_webgl_named
Fix createEmptyTexture function call in ol/webgl/Context
2018-02-15 15:18:38 +01:00
Frederic Junod
ab4b82ba57 Fix createEmptyTexture function call in ol/webgl/Context 2018-02-15 14:18:51 +01:00
Frédéric Junod
328fbc24b4 Merge pull request #7832 from fgravin/webgl
Webgl Layer and Context named exports
2018-02-15 14:07:18 +01:00
Frederic Junod
017211395a Add new maxTilesLoading option to ol/PluggableMap
To be able to set the maximum number of currently loading tiles.
2018-02-15 13:53:18 +01:00
Florent gravin
8eef99ad04 Webgl Layer and Context named exports 2018-02-15 13:38:03 +01:00
Frédéric Junod
0ec4f30aa9 Merge pull request #7826 from fredj/indent
Better code indentation and modules renaming
2018-02-15 09:13:22 +01:00
Frederic Junod
a8f4348add Fix parens grouping in typecasts 2018-02-15 08:44:35 +01:00
Frederic Junod
4744849b76 Rename _ol_layer_VectorRenderType_ to VectorRenderType 2018-02-15 08:29:12 +01:00
Frederic Junod
26e11e9b3f Rename _ol_layer_VectorTileRenderType_ to VectorTileRenderType 2018-02-15 08:29:12 +01:00
Frederic Junod
8076a8313b Rename _ol_layer_TileProperty_ to TileProperty 2018-02-15 08:29:12 +01:00
Frederic Junod
577816ca4a Better code indentation 2018-02-15 08:29:12 +01:00
Tim Schaub
219413f324 Merge pull request #7828 from bjornharrtell/refactor-constraints
Refactor constraints static methods to module functions
2018-02-14 23:01:22 -07:00
Tim Schaub
dfdc7e0c95 Merge pull request #7827 from tschaub/named-exports
Named exports from ol/render/canvas
2018-02-14 22:52:32 -07:00
Björn Harrtell
208ca098f2 Refactor constraints static methods to module functions 2018-02-14 19:00:23 +01:00
Tim Schaub
0948d4002f Named exports from ol/render/canvas 2018-02-14 09:43:20 -07:00
Frédéric Junod
18fa8ddc58 Merge pull request #7823 from fredj/f7801
Replace static members with named exports
2018-02-14 13:05:36 +01:00
Tim Schaub
55dbbde37e Merge pull request #7822 from openlayers/greenkeeper/mocha-5.0.1
Update mocha to the latest version 🚀
2018-02-14 04:14:25 -07:00
Tim Schaub
d2c18a505a Merge pull request #7820 from raiyni/geom
ol/geom/flat/* exports
2018-02-14 04:07:09 -07:00
Frederic Junod
48bb187075 Add named export for WFS.writeFilter function 2018-02-14 11:12:56 +01:00
Frederic Junod
308dc412aa Don't store private constants into ol/format/WFS 2018-02-14 11:12:56 +01:00
Frederic Junod
1953d41d0d Named exports from ol/format/XLink 2018-02-14 11:12:56 +01:00
Frederic Junod
4f358f018b Add named exports for sortByZIndex function 2018-02-14 11:12:56 +01:00
Frederic Junod
4657003811 Add named exports for createStyleFunction function 2018-02-14 11:12:56 +01:00
Frederic Junod
ac32311894 Add named exports for visibleAtResolution function 2018-02-14 11:12:56 +01:00
Frederic Junod
57d35e188c Don't store private constants into CanvasVectorTileLayerRenderer 2018-02-14 11:12:56 +01:00
Frédéric Junod
25a7b19902 Merge pull request #7824 from fredj/indent
Fix code indentation
2018-02-14 11:09:20 +01:00
Frederic Junod
096f53e716 Fix code indentation 2018-02-14 11:01:17 +01:00
greenkeeper[bot]
d62ae94bb8 chore(package): update mocha to version 5.0.1 2018-02-14 02:07:47 +00:00
raiyni
378b73150a update test descriptions to match export paths 2018-02-13 09:42:55 -06:00
raiyni
b2d920bbf1 ol/geom/flat/transform export 2018-02-13 09:22:00 -06:00
raiyni
4d27a9eb0e ol/geom/flat/intersectsextent 2018-02-13 09:15:07 -06:00
raiyni
abf191289c ol/geom/flat/interpolate export 2018-02-13 09:05:12 -06:00
raiyni
6573b308b6 ol/geom/flat/orient export 2018-02-13 08:57:35 -06:00
raiyni
9fc09db89c ol/geom/flat/closest export 2018-02-13 08:44:09 -06:00
Frédéric Junod
65d898c4fe Merge pull request #7821 from fredj/memory
Add new canvas instruction array in ol/render/canvas/Instruction
2018-02-13 15:41:10 +01:00
raiyni
4575569238 ol/geom/flat/interiorpoint export 2018-02-13 08:11:05 -06:00
Frederic Junod
95dff19070 Add new canvas instruction array in ol/render/canvas/Instruction
Don't re-create the arrays on every replay group
2018-02-13 08:31:44 +01:00
raiyni
837490b4a4 ol/geom/flat/simplify export 2018-02-13 00:08:20 -06:00
raiyni
78b418ba9d ol/geom/flat/straightchunk export 2018-02-12 23:42:11 -06:00
raiyni
2550ab1691 ol/geom/flat/textpath export 2018-02-12 23:34:21 -06:00
raiyni
05a648d4f3 ol/geom/flat/length export 2018-02-12 23:27:38 -06:00
raiyni
fb548b1b45 ol/geom/flat/deflate exports 2018-02-12 23:18:53 -06:00
raiyni
fd78aa9798 ol/geom/flate/inflate exports 2018-02-12 23:06:02 -06:00
Tim Schaub
ba460554a1 Merge pull request #7817 from tschaub/unstatic-private
Remove more private static members
2018-02-12 07:40:06 -07:00
Tim Schaub
e35e4e65ed Remove private static members from View 2018-02-12 07:12:02 -07:00
Tim Schaub
56815914ec Remove private static members from TileGrid 2018-02-12 07:12:02 -07:00
Tim Schaub
2cf7dbc4de Remove private static members from Text style 2018-02-12 07:12:02 -07:00
Tim Schaub
f60f32effd Remove private static members from Style 2018-02-12 07:12:02 -07:00
Tim Schaub
f95fe4caab Remove private static members from Zoomify source 2018-02-12 07:12:02 -07:00
Tim Schaub
564315a690 Remove private static members from TileUTFGrid source 2018-02-12 07:12:02 -07:00
Tim Schaub
ed13e8b135 Remove private static members from TileDebug source 2018-02-12 07:12:02 -07:00
Tim Schaub
bb530b8ccd Remove private static members from Raster source 2018-02-12 07:12:02 -07:00
Tim Schaub
f91ecab8ed Remove private static members from ImageWMS 2018-02-12 07:12:02 -07:00
Tim Schaub
b05030b364 Remove private static members from Image 2018-02-12 07:12:02 -07:00
Tim Schaub
a237f203d6 Remove private static members from Object 2018-02-12 07:12:02 -07:00
Tim Schaub
c4c46e0121 Remove private static members from Translate interaction 2018-02-12 07:12:02 -07:00
Tim Schaub
1c63234508 Remove private static members from Snap interaction 2018-02-12 07:12:02 -07:00
Tim Schaub
37c446fc4e Remove private static members from Select interaction 2018-02-12 07:12:02 -07:00
Tim Schaub
1f65796731 Remove private static members from PinchZoom interaction 2018-02-12 07:12:02 -07:00
Tim Schaub
b1ec76826b Remove private static members from PinchRotate interaction 2018-02-12 07:12:02 -07:00
Tim Schaub
e8aae60066 Remove private static members from MouseWheelZoom interaction 2018-02-12 07:11:56 -07:00
Tim Schaub
a7e234658b Remove private static members from Modify interaction 2018-02-12 06:22:15 -07:00
Tim Schaub
87fd0614ad Remove private static members from Extent interaction 2018-02-12 06:19:05 -07:00
Tim Schaub
380abd2be2 Remove private static members from Draw interaction 2018-02-12 06:15:37 -07:00
Tim Schaub
034349253f Remove private static members from DragRotateAndZoom interaction 2018-02-12 06:12:01 -07:00
Tim Schaub
14ec92a814 Remove private static members from DragRotate interaction 2018-02-12 06:10:25 -07:00
Tim Schaub
230da71f08 Remove private static members from DragPan interaction 2018-02-12 06:08:55 -07:00
Tim Schaub
249001241c Remove private static members from DragBox interaction 2018-02-12 06:07:27 -07:00
Tim Schaub
4edc1fec30 Remove private static members from DragAndDrop interaction 2018-02-12 06:07:05 -07:00
Tim Schaub
881caec464 Merge pull request #7814 from tschaub/unstatic-private
Remove more private static members
2018-02-12 05:55:53 -07:00
Tim Schaub
2316d02f9f Remove private static members from WMTSCapabilities format 2018-02-12 05:50:26 -07:00
Tim Schaub
d4a6dc6ec6 Remove private static members from WMSCapabilities format 2018-02-12 05:40:50 -07:00
Frédéric Junod
71426f6416 Merge pull request #7816 from openlayers/optim
Use toString instead of asString in asColorLike
2018-02-12 10:00:10 +01:00
Frederic Junod
17455c2529 Use toString instead of asString in asColorLike
To avoid the double `typeof color === 'string'` check
2018-02-12 09:10:04 +01:00
Frédéric Junod
951aa927ee Merge pull request #7811 from fredj/rm_ol.FeatureStyleFunction
Remove ol.FeatureStyleFunction support
2018-02-12 08:20:10 +01:00
Tim Schaub
70648165a8 Remove private static members from WFS format 2018-02-11 17:39:41 -07:00
Tim Schaub
5ee4909feb Remove private static members from WKT format 2018-02-11 17:39:35 -07:00
Tim Schaub
cc5b80036d Remove private static members from WMSGetFeatureInfo format 2018-02-11 11:19:25 -07:00
Tim Schaub
38d27534c0 Remove private static members from OWS format 2018-02-11 11:19:25 -07:00
Tim Schaub
434a90506d Remove private static members from OSMXML format 2018-02-11 11:19:25 -07:00
Tim Schaub
7383371d58 Remove private static members from MVT format 2018-02-11 11:19:20 -07:00
Tim Schaub
8820185152 Merge pull request #7815 from bjornharrtell/webgl-rm-private-statics
Remove private statics from webgl related modules
2018-02-11 11:17:31 -07:00
Björn Harrtell
4b08987e53 Remove private statics from webgl related modules 2018-02-11 18:23:15 +01:00
Frederic Junod
276d6a5dc5 Remove ol.FeatureStyleFunction support 2018-02-11 17:52:46 +01:00
Tim Schaub
206212fa8c Merge pull request #7813 from openlayers/greenkeeper/recast-0.13.1
Update recast to the latest version 🚀
2018-02-11 08:47:43 -07:00
greenkeeper[bot]
54e15000ef chore(package): update recast to version 0.13.1 2018-02-11 15:27:07 +00:00
Tim Schaub
14d73e5073 Merge pull request #7809 from openlayers/greenkeeper/webpack-3.11.0
Update webpack to the latest version 🚀
2018-02-11 05:08:09 -07:00
Frédéric Junod
37d06c4860 Merge pull request #7812 from openlayers/greenkeeper/sinon-4.3.0
chore(package): update sinon to version 4.3.0
2018-02-11 10:40:31 +01:00
greenkeeper[bot]
1e5a6284dd chore(package): update sinon to version 4.3.0
Closes #7810
2018-02-10 22:28:37 +00:00
Tim Schaub
ec30c89c1e Merge pull request #7803 from tschaub/unstatic-private
Remove private static members from constructors
2018-02-10 10:58:53 -07:00
Tim Schaub
099cd21c5b Remove private static members from KML format 2018-02-10 10:11:55 -07:00
Tim Schaub
1c1b8d3919 Remove private static members from GPX format 2018-02-10 09:51:04 -07:00
Tim Schaub
1140c22164 Remove private static members from GMLBase format 2018-02-10 09:51:04 -07:00
Tim Schaub
6935bbc851 Remove private static members from GML3 format 2018-02-10 09:50:59 -07:00
Tim Schaub
5e63929aea Remove private static members from GML2 format 2018-02-10 09:43:54 -07:00
greenkeeper[bot]
f46bbd5e53 chore(package): update webpack to version 3.11.0 2018-02-10 15:29:37 +00:00
Andreas Hocevar
7a1cf8de82 Merge pull request #7808 from ahocevar/ratio-tests
Make sure the requested image size matches the desired ratio
2018-02-10 11:45:40 +01:00
Andreas Hocevar
da8874862d Make sure the requested image size matches the desired ratio 2018-02-10 11:11:16 +01:00
Andreas Hocevar
a1d7c87f4c Merge pull request #7807 from ahocevar/karma-first
Run typecheck after tests, because of its current verbosity
2018-02-10 10:46:59 +01:00
Frédéric Junod
33b8ea4a42 Merge pull request #7805 from fredj/unstatic-private
Remove private static members from constructors
2018-02-10 10:46:15 +01:00
Andreas Hocevar
00e441f354 Run typecheck after tests, because of its current verbosity 2018-02-10 10:35:00 +01:00
Andreas Hocevar
78af38007b Merge pull request #7806 from ahocevar/rotate
Fix rotate import
2018-02-10 10:30:16 +01:00
Andreas Hocevar
427dde6180 Fix rotate import 2018-02-10 10:24:48 +01:00
Frederic Junod
84c74eec71 Remove private static members from ol/renderer/Map 2018-02-10 09:13:42 +01:00
Frederic Junod
6838d59e64 Remove private static members from ol/render/webgl/ReplayGroup 2018-02-10 09:08:47 +01:00
Frederic Junod
2e6bc97fd4 Remove private static members from ol/render/webgl/LineStringReplay 2018-02-10 09:08:47 +01:00
Frederic Junod
11f464f7ff Remove private static members from ol/render/canvas/ReplayGroup 2018-02-10 09:08:47 +01:00
Frederic Junod
f5a4fcd3ac Remove private static members from ol/geom/GeometryCollection 2018-02-10 08:47:16 +01:00
Tim Schaub
af9b74759b Merge pull request #7800 from tschaub/named-exports
More named exports
2018-02-09 21:43:24 -07:00
Andreas Hocevar
73f9d6dcdd Merge pull request #7741 from ahocevar/typecheck-full-build
Type checking and full build creation
2018-02-10 02:09:31 +01:00
Tim Schaub
0ac689387a Remove private static members from EsriJSON format 2018-02-09 15:28:38 -07:00
Tim Schaub
80fa8dbaf5 Remove private static members from control constructors 2018-02-09 15:08:10 -07:00
Tim Schaub
b97554f2f3 Named exports from ol/coordinate 2018-02-09 14:31:20 -07:00
Tim Schaub
ce12dc1253 Named exports from ol/renderer/vector 2018-02-09 10:20:33 -07:00
Tim Schaub
9c1db1f904 Named exports from ol/reproj 2018-02-09 10:04:03 -07:00
Tim Schaub
9ed3881f34 Named exports from ol/tilegrid 2018-02-09 09:30:16 -07:00
Tim Schaub
2779fe57ff Merge pull request #7797 from tschaub/webgl-names
Better default export names for WebGL modules
2018-02-09 08:42:03 -07:00
Tim Schaub
df93b15e2f Rename _ol_render_webgl_Immediate_ to WebGLImmediateRenderer 2018-02-09 06:58:46 -07:00
Tim Schaub
c9099ade9e Merge pull request #7794 from tschaub/animation-complete
Call animation callback in a timeout
2018-02-09 06:55:51 -07:00
Tim Schaub
e9d36dd025 Merge pull request #7793 from tschaub/default-names
More renaming of default exports
2018-02-09 06:54:07 -07:00
Frédéric Junod
c8117effda Merge pull request #7799 from fredj/memory
Use tmpSize to reduce garbage generation
2018-02-09 13:56:16 +01:00
Frédéric Junod
0a0d5f67bb Merge pull request #7788 from fredj/makefile
Fix shaders generation
2018-02-09 11:36:30 +01:00
Frederic Junod
985fc3af47 Rename _ol_webgl_Vertex_ to WebGLVertex 2018-02-09 09:25:56 +01:00
Frederic Junod
96eba2bddf Rename _ol_webgl_Fragment_ to WebGLFragment 2018-02-09 09:23:28 +01:00
Frederic Junod
2b6a3aacef Don't create useless temporary variables 2018-02-09 09:17:40 +01:00
Tim Schaub
4a527eb763 Call animation callback in a timeout 2018-02-08 15:25:45 -07:00
Tim Schaub
c6d19c431d Rename _ol_format_GML_ to GML 2018-02-08 11:52:43 -07:00
Andreas Hocevar
9dad964323 Remove carets and git versios from package.json 2018-02-08 19:51:29 +01:00
Andreas Hocevar
2cae4230e3 Let Travis run typechecks 2018-02-08 19:51:29 +01:00
Andreas Hocevar
bc37ea9eb1 Use more verbose import for use with Closure Compiler 2018-02-08 19:51:28 +01:00
Andreas Hocevar
287723902c Use babel and closure without bundler for type checking 2018-02-08 19:51:28 +01:00
Andreas Hocevar
9c12b351e5 Use webpack for full build, find something else for type checking 2018-02-08 19:51:28 +01:00
Andreas Hocevar
03e244a6a2 Add type checking and full build creation
This uses Closure Compiler to create a full build and run type checks.
Currently type errors are reported as warnings and the build is created
with SIMPLE optimizations until we have transitioned all types to path
types.
2018-02-08 19:51:27 +01:00
Andreas Hocevar
9d409c800f Temporarily create an ol namespace for typedefs 2018-02-08 19:51:27 +01:00
Andreas Hocevar
ce2f78e890 Fix module name for ol/sphere 2018-02-08 19:51:27 +01:00
Andreas Hocevar
e6036439f6 Generate index.js instead of ol.js 2018-02-08 19:51:27 +01:00
Andreas Hocevar
64258a1ac4 Add generate-ol task to create a full build
Creating the full build will also serve as type checker.
2018-02-08 19:51:27 +01:00
Andreas Hocevar
efd9f2c088 Handle modules 2018-02-08 19:51:26 +01:00
Andreas Hocevar
08763ef139 Remove stability from info 2018-02-08 19:51:26 +01:00
Andreas Hocevar
3c09bfa602 Fix module path 2018-02-08 19:51:26 +01:00
Andreas Hocevar
2c718db797 Fix type annotations 2018-02-08 19:51:26 +01:00
Tim Schaub
0d5026165f Rename _ol_Image_ to ImageWrapper 2018-02-08 11:49:37 -07:00
Tim Schaub
e075a4fbca Rename _ol_ImageBase_ to ImageBase 2018-02-08 11:46:56 -07:00
Frederic Junod
74f7bdc3a8 Use tmpSize to reduce garbage generation 2018-02-08 15:49:11 +01:00
Frederic Junod
e25e61c3b7 Rename location shader classes
And remove the now unneeded NAMESPACE variable
2018-02-08 15:18:11 +01:00
Frederic Junod
83d530e181 Named exports from WebGL shaders 2018-02-08 15:18:11 +01:00
Frederic Junod
2bf252ab0d Add MODULE variable in the glsl file 2018-02-08 15:18:11 +01:00
Frederic Junod
106059329d Fix module path in the shader templates 2018-02-08 15:18:11 +01:00
Frederic Junod
5f44d5e8e2 Fix indentation in shaderlocations.mustache 2018-02-08 15:18:11 +01:00
Frederic Junod
e8c8c32cf3 Fix WebGL shader location in Makefile 2018-02-08 15:18:11 +01:00
Frédéric Junod
3d817ff7e7 Merge pull request #7789 from fredj/gl_buffer_usage
Use STATIC_DRAW as default WebGL buffer usage
2018-02-08 15:17:57 +01:00
Frederic Junod
744cea6421 Use STATIC_DRAW as default WebGL buffer usage 2018-02-08 15:00:30 +01:00
Frédéric Junod
b55657b17f Merge pull request #7787 from fredj/rename
More renaming
2018-02-08 12:24:57 +01:00
Tim Schaub
25a607973d Merge pull request #7782 from tschaub/default-names
Named exports from specific proj modules
2018-02-08 04:03:31 -07:00
Tim Schaub
3ae88e733b Merge pull request #7780 from tschaub/named-exports
More named exports
2018-02-08 04:02:31 -07:00
Frederic Junod
3d9b1abe17 Rename _ol_webgl_Shader_ to WebGLShader 2018-02-08 09:24:29 +01:00
Frederic Junod
62b2900348 Rename _ol_webgl_Buffer_ to WebGLBuffer 2018-02-08 09:24:29 +01:00
Frederic Junod
d1c11d50eb Rename _ol_webgl_Context_ to WebGLContext 2018-02-08 08:42:19 +01:00
Tim Schaub
36ab4c1064 Merge pull request #7783 from raiyni/xml
Named exports from ol/xml
2018-02-07 14:02:21 -07:00
raiyni
4449da3e63 named exports from ol/xml 2018-02-07 14:42:01 -06:00
Tim Schaub
9c64d29941 Named exports from ol/proj/epsg4326 2018-02-07 12:50:46 -07:00
Tim Schaub
6701d19a45 Named exports from ol/proj/epsg3857 2018-02-07 12:44:02 -07:00
Tim Schaub
11a4e1afa6 Named exports from ol/size 2018-02-07 11:47:51 -07:00
Tim Schaub
cd9b06135f Named exports from ol/net 2018-02-07 11:35:05 -07:00
Frédéric Junod
3266ffc58f Merge pull request #7774 from fredj/memory
Pass destination extent to avoid garbage generation
2018-02-07 16:27:30 +01:00
Tim Schaub
b41cdf5697 Merge pull request #7777 from openlayers/greenkeeper/babel-minify-webpack-plugin-0.3.0
Update babel-minify-webpack-plugin to the latest version 🚀
2018-02-07 07:33:48 -07:00
Frederic Junod
b2d3d142f0 Pass destination extent to avoid garbage generation 2018-02-07 14:52:54 +01:00
Frederic Junod
76cd52325d Fix getIntersection return value when an opt extent is provided
The return value was not an empty extent when the extents didn't intersect.
2018-02-07 14:49:10 +01:00
greenkeeper[bot]
0ba7917608 chore(package): update babel-minify-webpack-plugin to version 0.3.0 2018-02-07 13:06:09 +00:00
Marc Jansen
e8c3556183 Merge pull request #7771 from marcjansen/rename-loadingstrategy
Named exports from loadingstrategy
2018-02-07 07:16:32 +01:00
Marc Jansen
0c4568bca8 Merge pull request #7772 from marcjansen/named-filter-exports
Named exports from filter module
2018-02-07 07:15:14 +01:00
Marc Jansen
a34b92408e Use function declaration for exports 2018-02-06 17:32:32 +01:00
Marc Jansen
9fabdf309f Use function declaration for exports 2018-02-06 17:26:49 +01:00
Marc Jansen
e716731b98 Merge pull request #7770 from marcjansen/more-renames
Rename _ol_render_Box_ to RenderBox
2018-02-06 11:15:18 +01:00
Frédéric Junod
44e842f33e Merge pull request #7763 from fredj/memory
Use the temporary extent in VectorTileLayer
2018-02-06 08:38:16 +01:00
Marc Jansen
7f6780b7fb Use named exports from filter module 2018-02-06 07:47:54 +01:00
Marc Jansen
eac8a9f3ec Named exports from filter 2018-02-06 07:47:30 +01:00
Marc Jansen
753ce9ca8e Named exports from loadingstrategy 2018-02-06 06:51:38 +01:00
Marc Jansen
3fee998108 Rename _ol_render_Box_ to RenderBox 2018-02-06 06:39:15 +01:00
Marc Jansen
5d62a89999 Merge pull request #7765 from marcjansen/names-names-names
Named exports from events condition
2018-02-05 22:16:34 +01:00
Marc Jansen
0c62c68c5e Merge pull request #7767 from marcjansen/transform-typo
Transformation functions: Fix spelling and use the symbol ×
2018-02-05 22:16:13 +01:00
Marc Jansen
65ee0b17d7 Fix spelling and use the symbol × 2018-02-05 21:04:52 +01:00
Marc Jansen
6e764a20b3 Import events conditions explicitly 2018-02-05 20:36:42 +01:00
Marc Jansen
1c8e60487c Named exports from events/condition 2018-02-05 20:36:42 +01:00
Tim Schaub
d9bb33e65d Merge pull request #7764 from tschaub/rename
Named exports from ol/has
2018-02-05 11:40:39 -07:00
Tim Schaub
9cfee0f40b Named exports from ol/has 2018-02-05 10:42:47 -07:00
Frederic Junod
f16a2ef2f4 Fix jsdoc indentation 2018-02-05 14:52:33 +01:00
Frederic Junod
59c0297f3f Use the temporary extent in VectorTileLayer
Reduce garbage generation
2018-02-05 14:38:15 +01:00
Frédéric Junod
348afc4e44 Merge pull request #7761 from fredj/rename
Rename _ol_render_canvas_Instruction_ to CanvasInstruction
2018-02-05 13:57:06 +01:00
Frederic Junod
4504c422ae Rename _ol_render_canvas_Instruction_ to CanvasInstruction 2018-02-05 12:40:44 +01:00
Tim Schaub
66f5cffa4a Merge pull request #7759 from openlayers/greenkeeper/eslint-4.17.0
Update eslint to the latest version 🚀
2018-02-03 09:20:28 -07:00
greenkeeper[bot]
fd8f57df3b chore(package): update eslint to version 4.17.0 2018-02-03 04:16:37 +00:00
Frédéric Junod
a13f90abaf Merge pull request #7749 from fredj/f7035
Check if the sketch feature is defined in finishDrawing
2018-01-30 12:31:41 +01:00
Frederic Junod
70b0d5d1cc Check if the sketch feature is defined in finishDrawing
Fixes #7035
2018-01-30 09:57:05 +01:00
Frédéric Junod
4de6e49207 Merge pull request #7745 from fredj/named
More named exports
2018-01-27 07:04:18 +01:00
Tim Schaub
bcf5c78a32 Merge pull request #7746 from openlayers/greenkeeper/sinon-4.2.2
Update sinon to the latest version 🚀
2018-01-26 22:04:15 -07:00
greenkeeper[bot]
8d97e91393 chore(package): update sinon to version 4.2.2 2018-01-26 23:41:16 +00:00
Frederic Junod
62bc7b75d7 Named exports from ol/geom/flat/flip 2018-01-26 16:33:02 +01:00
Frederic Junod
d15c4ce511 Named exports from ol/geom/flat/segments 2018-01-26 16:29:40 +01:00
Frederic Junod
d64b5c52a2 Named exports from ol/geom/flat/center 2018-01-26 16:24:41 +01:00
Frederic Junod
aea39782fb Named exports from ol/geom/flat/contains 2018-01-26 16:03:29 +01:00
Frederic Junod
47015eba0c Named exports from ol/geom/flat/reverse 2018-01-26 15:45:17 +01:00
Frederic Junod
297fd14507 Named exports from ol/geom/flat/topology 2018-01-26 15:35:14 +01:00
Frederic Junod
135f713236 Named exports from ol/geom/flat/area 2018-01-26 15:31:04 +01:00
Frederic Junod
e6a491856d Named exports from ol/geom/flat/geodesic 2018-01-26 15:26:40 +01:00
Frederic Junod
6da3e6e2c5 Rename _ol_events_KeyCode_ to KeyCode 2018-01-26 15:15:01 +01:00
Frédéric Junod
0d35a9700b Merge pull request #7743 from fredj/enableHighAccuracy
Set enableHighAccuracy in geolocation example
2018-01-26 12:24:24 +01:00
Frederic Junod
819ddd0e19 Set enableHighAccuracy in geolocation example 2018-01-26 09:39:25 +01:00
Tim Schaub
c2f7baf940 Merge pull request #7738 from tschaub/events
Named exports from ol/events
2018-01-24 17:46:59 -07:00
Tim Schaub
7e7631c42a Named exports from ol/events 2018-01-24 10:09:57 -07:00
Frédéric Junod
1786bbbe80 Merge pull request #7735 from openlayers/greenkeeper/sinon-4.2.1
Update sinon to the latest version 🚀
2018-01-24 08:32:05 +01:00
greenkeeper[bot]
2afc9c0f7e chore(package): update sinon to version 4.2.1 2018-01-23 20:43:58 +00:00
Frédéric Junod
7fd942a04c Merge pull request #7724 from fredj/up_prism
Update prism library
2018-01-23 10:02:32 +01:00
Frédéric Junod
a7764dacd9 Merge pull request #7729 from openlayers/greenkeeper/jquery-3.3.1
Update jquery to the latest version 🚀
2018-01-22 08:41:28 +01:00
Frédéric Junod
862c7faf2d Merge pull request #7727 from fredj/no_transition
Deactivate transition effect for semi transparent layer example
2018-01-22 08:39:32 +01:00
Frédéric Junod
ded5de2a3d Merge pull request #7726 from fredj/named_ol_string
Named exports from ol/string
2018-01-22 08:39:19 +01:00
Tim Schaub
26c73b524a Merge pull request #7732 from openlayers/greenkeeper/sinon-4.2.0
Update sinon to the latest version 🚀
2018-01-21 23:12:40 -07:00
Tim Schaub
f4af4ceecd Merge pull request #7731 from openlayers/greenkeeper/webpack-dev-server-2.11.1
Update webpack-dev-server to the latest version 🚀
2018-01-21 23:11:00 -07:00
greenkeeper[bot]
ae9b556899 chore(package): update sinon to version 4.2.0 2018-01-21 12:36:50 +00:00
greenkeeper[bot]
0e4ecbc646 chore(package): update webpack-dev-server to version 2.11.1 2018-01-20 21:21:50 +00:00
greenkeeper[bot]
5ad5d4e853 chore(package): update jquery to version 3.3.1 2018-01-20 17:37:56 +00:00
Frédéric Junod
04756b5eec Merge pull request #7728 from openlayers/greenkeeper/eslint-4.16.0
Update eslint to the latest version 🚀
2018-01-20 08:37:23 +01:00
greenkeeper[bot]
5fe53b4e48 chore(package): update eslint to version 4.16.0 2018-01-20 06:09:37 +00:00
Frederic Junod
8fc6641750 Deactivate transition effect for semi transparent layer example 2018-01-19 15:50:48 +01:00
Frederic Junod
a114f64429 Named exports from ol/string 2018-01-19 15:38:21 +01:00
Frédéric Junod
6385f615c9 Merge pull request #7725 from fredj/double_comment
Remove extra comment
2018-01-19 13:43:36 +01:00
Frederic Junod
9417e88c15 Remove extra comment 2018-01-19 13:25:54 +01:00
Frédéric Junod
38eb5dc9d8 Merge pull request #7721 from fredj/rename
More renaming
2018-01-19 13:16:21 +01:00
Frederic Junod
f638234bc6 Update prism library
To have better ES6 syntax highlighting.
The `from` keyword was not correctly rendered with our version.
2018-01-19 13:14:35 +01:00
Frederic Junod
aeee8e67a9 Rename _ol_pointer_MsSource_ to MsSource 2018-01-18 15:50:27 +01:00
Frederic Junod
b39a6f4cae Rename _ol_pointer_NativeSource_ to NativeSource 2018-01-18 15:50:27 +01:00
Frederic Junod
e7bb9e8484 Rename _ol_pointer_TouchSource_ to TouchSource 2018-01-18 15:50:27 +01:00
Frederic Junod
107362b9fb Rename _ol_pointer_MouseSource_ to MouseSource 2018-01-18 15:50:27 +01:00
Frederic Junod
d97151b825 Rename _ol_pointer_EventSource_ to EventSource 2018-01-18 15:50:27 +01:00
Frédéric Junod
313c5f7dc9 Merge pull request #7716 from fredj/var_scope
Better variables scoping
2018-01-18 14:46:27 +01:00
Frédéric Junod
2ee34b825c Merge pull request #7720 from openlayers/greenkeeper/mocha-5.0.0
Update mocha to the latest version 🚀
2018-01-18 08:36:39 +01:00
Frédéric Junod
98ebc570e9 Merge pull request #7698 from fredj/test_typo
Fix for loop in color test
2018-01-18 08:35:24 +01:00
greenkeeper[bot]
305b5d628a chore(package): update mocha to version 5.0.0 2018-01-18 05:58:42 +00:00
Andreas Hocevar
67b7188ba4 Merge pull request #7703 from ahocevar/draw-state
Improved drawing experience on touch devices
2018-01-17 20:25:07 +01:00
Frederic Junod
039d4dc714 Better variables scoping 2018-01-17 16:07:36 +01:00
Frédéric Junod
4a6331377f Merge pull request #7713 from fredj/var_scope
Better variables scoping
2018-01-17 15:04:59 +01:00
Frédéric Junod
e7819833c1 Merge pull request #7712 from openlayers/greenkeeper/sinon-4.1.6
Update sinon to the latest version 🚀
2018-01-17 11:19:21 +01:00
Frederic Junod
4c5ca75ca6 Better variables scoping 2018-01-17 10:54:18 +01:00
Bart van den Eijnden
ee348c50e9 Merge pull request #7711 from bartvde/update-contributing
Do not use (I)CLA anymore
2018-01-17 08:45:48 +01:00
Frédéric Junod
b963453439 Merge pull request #7709 from fredj/named
More named export
2018-01-17 08:20:49 +01:00
Andreas Hocevar
be57e40e91 Show last segment and vertex for mouse pointer move 2018-01-17 01:38:46 +01:00
greenkeeper[bot]
c20871274c chore(package): update sinon to version 4.1.6 2018-01-16 19:52:58 +00:00
bartvde
43e9ae1226 Remove need for CLA in the PR template 2018-01-16 16:54:19 +01:00
bartvde
dd28c47261 Do not use (I)CLA anymore
Use correct spelling for GitHub
2018-01-16 16:50:09 +01:00
Frederic Junod
1c2ce4ff1c Named exports from ol/proj/projections 2018-01-16 15:31:36 +01:00
Frederic Junod
31e30d28b7 Named exports from ol/obj 2018-01-16 14:14:17 +01:00
Frederic Junod
40f97eed85 Named exports from ol/uri 2018-01-16 13:35:27 +01:00
Frederic Junod
14eeaf88dc Named exports from ol/render 2018-01-16 13:35:27 +01:00
Frederic Junod
66d9ef872c Fix color regexp to not match 7 hex digit 2018-01-16 09:08:16 +01:00
Frederic Junod
974f9391f2 Normalize color in place to reduce garbage generation 2018-01-16 08:39:06 +01:00
Frederic Junod
5ade602183 Remove 'rgb(255.0,0,0)' from the invalid color list
`rgb(255.0,0,0)` is a valid color value
2018-01-16 08:38:23 +01:00
Frederic Junod
bb0904f20d Fix invalid named color detection
If the named color is invalid, the value is not stored into the property.
2018-01-16 08:37:53 +01:00
Frederic Junod
dc5b2a4ea0 Fix for loop in color test 2018-01-16 08:36:57 +01:00
Frédéric Junod
c7570d052c Merge pull request #7705 from fredj/rename
More renaming
2018-01-15 14:49:25 +01:00
Andreas Hocevar
276194d554 Add tests for vertex drag 2018-01-15 13:21:07 +01:00
Andreas Hocevar
d8a2a393fc Merge pull request #7700 from pedros007/fix-scaleline-projection-in-degrees
Fix ScaleLine control for Projections in degrees
2018-01-15 13:14:45 +01:00
Andreas Hocevar
c1f8d30c28 Make dragVertexTolerance configurable 2018-01-15 10:37:13 +01:00
Frederic Junod
106fe3c138 Rename _ol_format_WMTSCapabilities_ to WMTSCapabilities 2018-01-15 10:26:36 +01:00
Frederic Junod
3de2085cce Rename _ol_render_webgl_TextReplay_ to WebGLTextReplay 2018-01-15 10:20:55 +01:00
Frederic Junod
a7e4768d4e Rename _ol_render_webgl_PolygonReplay_ to WebGLPolygonReplay 2018-01-15 10:19:35 +01:00
Frederic Junod
f1987befbd Rename _ol_render_webgl_LineStringReplay_ to WebGLLineStringReplay 2018-01-15 10:11:46 +01:00
Frederic Junod
2139db7437 Rename _ol_render_canvas_LineStringReplay_ to CanvasLineStringReplay 2018-01-15 10:09:32 +01:00
Frederic Junod
73db907e99 Rename _ol_render_canvas_PolygonReplay_ to CanvasPolygonReplay 2018-01-15 10:08:31 +01:00
Frederic Junod
c890db50b9 Rename _ol_render_canvas_TextReplay_ to CanvasTextReplay 2018-01-15 10:07:22 +01:00
Frederic Junod
e0f910a7ba Rename _ol_render_canvas_Replay_ to CanvasReplay 2018-01-15 10:04:14 +01:00
Frederic Junod
f89d82088a Rename _ol_render_webgl_Replay_ to WebGLReplay 2018-01-15 10:02:37 +01:00
Frederic Junod
0f313f4d69 Rename _ol_render_webgl_TextureReplay_ to WebGLTextureReplay 2018-01-15 10:00:11 +01:00
Frederic Junod
5657f3a3fa Rename _ol_render_webgl_ImageReplay_w_ol_render_canvas_ImageReplay_ to CanvasImageReplay 2018-01-15 09:57:57 +01:00
Frederic Junod
074d09fceb Rename _ol_render_webgl_ImageReplay_ to WebGLImageReplay 2018-01-15 09:56:04 +01:00
Frederic Junod
8de7555af6 Rename _ol_render_webgl_CircleReplay_ to WebGLCircleReplay 2018-01-15 09:54:18 +01:00
Frederic Junod
cb66d66526 Rename _ol_render_webgl_ReplayGroup_ to WebGLReplayGroup 2018-01-15 09:51:57 +01:00
Frederic Junod
85e1a6b54f Rename _ol_render_canvas_ReplayGroup_ to CanvasReplayGroup 2018-01-15 09:50:15 +01:00
Frederic Junod
53dc86b1b2 Rename _ol_render_ReplayGroup_ to ReplayGroup 2018-01-15 09:47:53 +01:00
Frederic Junod
be91662823 Rename _ol_interaction_ExtentEventType to ExtentEventType 2018-01-15 09:42:35 +01:00
Frederic Junod
5df5a32903 Rename _ol_CanvasMap_ to CanvasMap 2018-01-15 09:41:04 +01:00
Frederic Junod
fc256ed77e Rename _ol_interaction_Translate_ to Translate 2018-01-15 09:40:37 +01:00
Tim Schaub
20587b524c Merge pull request #7702 from openlayers/greenkeeper/webpack-dev-server-2.11.0
Update webpack-dev-server to the latest version 🚀
2018-01-14 22:03:37 -07:00
Andreas Hocevar
7924850601 Explain changes in the upgrade notes 2018-01-14 23:26:28 +01:00
Andreas Hocevar
6bb88026ea Avoid context menu for long tap when editing on mobile 2018-01-14 23:26:28 +01:00
Andreas Hocevar
fa75b78bf9 Do not draw sketch line for circles 2018-01-14 23:26:28 +01:00
Andreas Hocevar
a93a811ba0 Do not update geometry when other interactions handle event 2018-01-14 23:26:28 +01:00
Andreas Hocevar
2a64990a71 Long press allows modification of current vertex 2018-01-14 23:26:28 +01:00
Andreas Hocevar
fbf951f005 Stop handling events immediately when click tolerance is exceeded 2018-01-14 23:26:28 +01:00
greenkeeper[bot]
679b6108ad chore(package): update webpack-dev-server to version 2.11.0 2018-01-14 11:43:52 +00:00
Tim Schaub
b05ad3d920 Merge pull request #7701 from openlayers/greenkeeper/sinon-4.1.5
Update sinon to the latest version 🚀
2018-01-13 07:05:35 -07:00
greenkeeper[bot]
a660df133f chore(package): update sinon to version 4.1.5 2018-01-13 11:05:15 +00:00
Pete Schmitt
500a27bd8b Use const as of 5cb983c for happy linting 2018-01-12 14:24:08 -07:00
Pete Schmitt
acacad0515 Fix ScaleLine control for Projections in degrees 2018-01-12 14:08:55 -07:00
Tim Schaub
5cb983c760 Merge pull request #7697 from tschaub/lint
Use const and let
2018-01-12 08:08:38 -07:00
Tim Schaub
50890c93e2 Declare feature in the correct scope 2018-01-12 00:51:13 -07:00
Tim Schaub
ad62739a6e Use blocked scoped variables
In addition to using const and let, this also upgrades our linter config and removes lint (mostly whitespace).
2018-01-12 00:50:30 -07:00
Tim Schaub
0bf2b04dee Merge pull request #7695 from tschaub/rename
More renaming
2018-01-11 21:44:02 -07:00
Tim Schaub
b7718fb0ed Rename _ol_render_Feature_ to RenderFeature 2018-01-11 13:45:50 -07:00
Tim Schaub
8cba211ecd Rename _ol_pointer_PointerEvent_ to PointerEvent 2018-01-11 13:44:45 -07:00
Tim Schaub
aa89746c47 Rename _ol_proj_Projection_ to Projection 2018-01-11 13:33:41 -07:00
Tim Schaub
893d134e36 Rename _ol_style_Image_ to ImageStyle 2018-01-11 13:29:59 -07:00
Tim Schaub
66182f4cfb Rename _ol_style_IconImage_ to IconImage 2018-01-11 13:29:26 -07:00
Tim Schaub
14ddcf843d Rename _ol_style_Circle_ to CircleStyle 2018-01-11 13:27:54 -07:00
Tim Schaub
16c8d2c246 Rename _ol_style_RegularShape_ to RegularShape 2018-01-11 13:26:51 -07:00
Tim Schaub
c5a4be2edd Rename _ol_style_Text_ to Text 2018-01-11 13:25:48 -07:00
Tim Schaub
fb22c587f8 Rename _ol_style_Icon_ to Icon 2018-01-11 13:25:01 -07:00
Tim Schaub
f4484455aa Rename _ol_style_Stroke_ to Stroke 2018-01-11 13:24:13 -07:00
Tim Schaub
dc6ae2293d Rename _ol_style_Fill_ to Fill 2018-01-11 13:23:27 -07:00
Tim Schaub
4f4c90fc20 Rename _ol_style_Style_ to Style 2018-01-11 13:22:43 -07:00
Tim Schaub
5f40eec148 Rename _ol_style_AtlasManager_ to AtlasManager 2018-01-11 12:12:34 -07:00
Tim Schaub
12d4db5045 Rename _ol_style_Atlas_ to Atlas 2018-01-11 12:12:34 -07:00
Tim Schaub
019933ef25 Rename _ol_interaction_TranslateEventType_ to TranslateEventType 2018-01-11 12:12:34 -07:00
Tim Schaub
870be87389 Rename _ol_interaction_ModifyEventType_ to ModifyEventType 2018-01-11 12:10:54 -07:00
Tim Schaub
b8cf046b38 Rename _ol_interaction_Snap_ to Snap 2018-01-11 12:10:54 -07:00
Tim Schaub
c9a91efc3d Rename _ol_interaction_Select_ to Select 2018-01-11 12:10:54 -07:00
Tim Schaub
682b4402a0 Rename _ol_interaction_Modify_ to Modify 2018-01-11 12:10:54 -07:00
Tim Schaub
edcdeb1036 Fix the snap example 2018-01-11 12:10:54 -07:00
Tim Schaub
c7e2f6b62f Rename _ol_interaction_Extent_ to ExtentInteraction 2018-01-11 12:09:58 -07:00
Tim Schaub
dce1790886 Rename _ol_interaction_Pointer_ to PointerInteraction 2018-01-11 12:09:58 -07:00
Tim Schaub
8a74d6b8db Rename _ol_pointer_PointerEventHandler_ to PointerEventHandler 2018-01-11 12:06:59 -07:00
Tim Schaub
176021e188 Rename _ol_Collection_ to Collection 2018-01-11 12:06:58 -07:00
Tim Schaub
84e93efe5c Rename _ol_reproj_Triangulation_ to Triangulation 2018-01-11 12:06:58 -07:00
Tim Schaub
1552f27a43 Rename _ol_Tile_ to Tile 2018-01-11 12:06:58 -07:00
Tim Schaub
2efdf7982c Rename _ol_reproj_Tile_ to ReprojTile 2018-01-11 12:06:58 -07:00
Tim Schaub
65d30f7ec0 Rename _ol_reproj_Image_ to ReprojImage 2018-01-11 12:06:58 -07:00
Tim Schaub
5337dc31d9 Rename _ol_layer_VectorTile_ to VectorTileLayer 2018-01-11 12:06:58 -07:00
Tim Schaub
f94d69c7a8 Rename _ol_layer_Layer_ to Layer 2018-01-11 12:06:58 -07:00
Tim Schaub
c6646b1cda Rename _ol_layer_Group_ to LayerGroup 2018-01-11 12:05:59 -07:00
Tim Schaub
ba206c9683 Rename _ol_layer_Base_ to BaseLayer 2018-01-11 12:01:21 -07:00
Tim Schaub
0113b9283c Rename _ol_render_Event_ to RenderEvent 2018-01-11 11:58:26 -07:00
Tim Schaub
d840eab615 Rename _ol_render_canvas_Immediate_ to ImmediateCanvasRenderer 2018-01-11 11:58:26 -07:00
Tim Schaub
afb1f6db28 Rename _ol_renderer_canvas_IntermediateCanvas_ to IntermediateCanvasRenderer 2018-01-11 11:51:38 -07:00
Tim Schaub
91ae3c3f4c Merge pull request #7693 from fredj/rename
More import renaming
2018-01-11 11:49:01 -07:00
Frederic Junod
98f5a0c04e Rename _ol_Overlay_ to Overlay 2018-01-11 14:32:58 +01:00
Frederic Junod
bc1a019c74 Rename _ol_renderer_webgl_Layer_ to WebGLLayerRenderer 2018-01-11 14:28:01 +01:00
Frederic Junod
4eb47881c1 Rename _ol_renderer_canvas_Layer_ to CanvasLayerRenderer 2018-01-11 14:25:37 +01:00
Frederic Junod
3ce95099e9 Rename _ol_renderer_Layer_ to LayerRenderer 2018-01-11 14:23:26 +01:00
Frederic Junod
68d9f37fec Rename _ol_renderer_Map_ to MapRenderer 2018-01-11 14:22:43 +01:00
Frederic Junod
d0cdd0441a Rename _ol_render_VectorContext_ to VectorContext 2018-01-11 14:05:55 +01:00
Frederic Junod
f0d4fdd98e Rename _ol_interaction_Property_ to InteractionProperty 2018-01-11 14:01:51 +01:00
Frederic Junod
7157de3851 Rename _ol_layer_Property_ to LayerProperty 2018-01-11 13:59:43 +01:00
Frederic Junod
077810f6aa Rename _ol_GeolocationProperty_ to GeolocationProperty 2018-01-11 13:57:49 +01:00
Frederic Junod
e59109e807 Rename _ol_interaction_KeyboardZoom_ to KeyboardZoom 2018-01-11 13:52:27 +01:00
Frederic Junod
c6104b7860 Rename _ol_interaction_KeyboardPan_ to KeyboardPan 2018-01-11 13:51:59 +01:00
Frederic Junod
cb46dd2dbd Rename _ol_interaction_PinchRotate_ to PinchRotate 2018-01-11 13:50:35 +01:00
Frederic Junod
120c42f7a4 Rename _ol_interaction_PinchZoom_ to PinchZoom 2018-01-11 13:49:48 +01:00
Frederic Junod
356cea1611 Rename _ol_MapProperty_ to MapProperty 2018-01-11 13:48:23 +01:00
Frédéric Junod
fe6e66958c Merge pull request #7691 from openlayers/greenkeeper/webpack-dev-server-2.10.1
Update webpack-dev-server to the latest version 🚀
2018-01-11 08:36:59 +01:00
greenkeeper[bot]
2411d80060 chore(package): update webpack-dev-server to version 2.10.1 2018-01-11 06:40:55 +00:00
Tim Schaub
8bc5145482 Merge pull request #7678 from LukasDrgon/patch-1
Add jsDelivr hits badge
2018-01-10 09:48:46 -07:00
Tim Schaub
ece1d4d231 Merge pull request #7686 from tschaub/renames
More import renaming
2018-01-10 09:45:40 -07:00
Tim Schaub
3e127a6169 Rename _ol_source_Zoomify_ to Zoomify 2018-01-10 09:36:29 -07:00
Tim Schaub
2440d52ebe Rename _ol_source_WMTS_ to WMTS 2018-01-10 09:36:29 -07:00
Tim Schaub
ecd1343d75 Rename _ol_source_VectorTile_ to VectorTileSource 2018-01-10 09:36:29 -07:00
Tim Schaub
231c8837ca Rename _ol_source_UrlTile_ to UrlTile 2018-01-10 09:36:29 -07:00
Tim Schaub
32ee149909 Rename _ol_source_TileWMS_ to TileWMS 2018-01-10 09:36:29 -07:00
Tim Schaub
a18512d78c Rename _ol_source_TileUTFGrid_ to UTFGrid 2018-01-10 09:36:29 -07:00
Tim Schaub
57febf2712 Rename _ol_source_TileJSON_ to TileJSON 2018-01-10 09:36:29 -07:00
Tim Schaub
d940b5d458 Rename _ol_source_TileDebug_ to TileDebug 2018-01-10 09:36:29 -07:00
Tim Schaub
6261cb6997 Rename _ol_source_TileArcGISRest_ to TileArcGISRest 2018-01-10 09:36:29 -07:00
Tim Schaub
f855bc1562 Rename _ol_source_Stamen_ to Stamen 2018-01-10 09:36:28 -07:00
Tim Schaub
5f62d2ecfe Rename _ol_source_OSM_ to OSM 2018-01-10 09:36:28 -07:00
Tim Schaub
c7b0cf51ad Rename _ol_source_ImageWMS_ to ImageWMS 2018-01-10 09:36:28 -07:00
Tim Schaub
312820ed4c Rename _ol_source_ImageStatic_ to Static 2018-01-10 09:36:28 -07:00
Tim Schaub
c5d10f2001 Rename _ol_source_ImageMapGuide_ to ImageMapGuide 2018-01-10 09:36:28 -07:00
Tim Schaub
56cd27ac71 Rename _ol_source_ImageCanvasSource_ to ImageCanvasSource 2018-01-10 09:36:28 -07:00
Tim Schaub
988bb88409 Rename _ol_source_ImageArcGISRest_ to ImageArcGISRest 2018-01-10 09:36:28 -07:00
Tim Schaub
1bb20f8231 Rename _ol_source_Cluster_ to Cluster 2018-01-10 09:36:28 -07:00
Tim Schaub
8c0a06b56a Rename _ol_source_XYZ_ to XYZ 2018-01-10 09:36:28 -07:00
Tim Schaub
fe0d05900f Rename _ol_source_CartoDB_ to CartoDB 2018-01-10 09:36:28 -07:00
Tim Schaub
a66128caa9 Rename _ol_source_TileImage_ to TileImage 2018-01-10 09:36:28 -07:00
Tim Schaub
f184f6685d Rename _ol_source_BingMaps_ to BingMaps 2018-01-10 09:36:28 -07:00
Tim Schaub
ceca0803e4 Rename _ol_ImageCanvas_ to ImageCanvas 2018-01-10 09:36:28 -07:00
Tim Schaub
d2c0ea103e Rename _ol_source_Tile_ to TileSource 2018-01-10 09:36:28 -07:00
Tim Schaub
d75623084e Rename _ol_source_Image_ to ImageSource 2018-01-10 09:36:28 -07:00
Tim Schaub
453b79dad7 Rename _ol_layer_Image_ to ImageLayer 2018-01-10 09:36:28 -07:00
Tim Schaub
ca6ea355e6 Rename _ol_source_Vector_ to VectorSource 2018-01-10 09:36:28 -07:00
Tim Schaub
45c6e43b42 Rename _ol_layer_Vector_ to VectorLayer 2018-01-10 09:36:23 -07:00
Tim Schaub
24dd0ca924 Rename _ol_Object_ to BaseObject 2018-01-10 09:35:43 -07:00
Tim Schaub
35db8721b2 Rename _ol_Observable_ to Observable 2018-01-10 09:35:43 -07:00
Tim Schaub
1c1f008238 Rename _ol_View_ to View 2018-01-10 09:35:42 -07:00
Tim Schaub
a04144c3c2 Rename _ol_proj_Units_ to Units 2018-01-10 09:35:42 -07:00
Tim Schaub
a18f0590f6 Rename _ol_ViewProperty_ to ViewProperty 2018-01-10 09:35:42 -07:00
Tim Schaub
853cecd406 Rename _ol_ViewHint_ to ViewHint 2018-01-10 09:35:42 -07:00
Tim Schaub
7fba608337 Rename _ol_RotationConstraint_ to RotationConstraint 2018-01-10 09:35:42 -07:00
Tim Schaub
073e7dc829 Rename _ol_ResolutionConstraint_ to ResolutionConstraint 2018-01-10 09:35:42 -07:00
Tim Schaub
c2a75c9040 Rename _ol_CenterConstraint_ to CenterConstraint 2018-01-10 09:35:42 -07:00
Tim Schaub
f1292cc46b Rename _ol_renderer_webgl_VectorLayer_ to WebGLVectorLayerRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
0d718b2400 Rename _ol_renderer_webgl_TileLayer_ to WebGLTileLayerRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
12a3b99b09 Rename _ol_renderer_webgl_ImageLayer_ to WebGLImageLayerRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
0fe5e58d97 Rename _ol_renderer_webgl_Map_ to WebGLMapRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
75e536937a Rename _ol_renderer_canvas_Map_ to CanvasMapRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
4d5dd1ea0d Rename _ol_renderer_canvas_VectorTileLayer_ to CanvasVectorTileLayerRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
1dfc37d6d2 Rename _ol_renderer_canvas_VectorLayer_ to CanvasVectorLayerRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
0cd932a7ac Rename _ol_renderer_canvas_TileLayer_ to CanvasTileLayerRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
068931e544 Rename _ol_renderer_canvas_ImageLayer_ to CanvasImageLayerRenderer 2018-01-10 09:35:42 -07:00
Tim Schaub
22fce4f97b Rename _ol_Feature_ to Feature 2018-01-10 09:35:35 -07:00
Andreas Hocevar
6934e148ca Merge pull request #7669 from ahocevar/hit-detect-declutter
Use declutter tree only for text and image replays
2018-01-09 15:56:55 +01:00
Andreas Hocevar
953c5d6151 Refactor to avoid replayType member and binding 2018-01-09 15:43:20 +01:00
Andreas Hocevar
9397c41e6c Use declutter tree only for text and image replays 2018-01-09 15:41:45 +01:00
Frédéric Junod
4234c2ce3d Merge pull request #7683 from fredj/IGC_cleanup
Move IGCZ enum to src/ol/format/IGC.js
2018-01-09 12:08:09 +01:00
Frederic Junod
3ce7cae338 Change ol.format.IGCZ type to IGCZ 2018-01-09 08:25:27 +01:00
Tim Schaub
a06f0e0bd4 Merge pull request #7688 from openlayers/greenkeeper/marked-0.3.12
Update marked to the latest version 🚀
2018-01-08 19:43:37 -07:00
greenkeeper[bot]
c88b8c1d23 chore(package): update marked to version 0.3.12 2018-01-09 00:20:35 +00:00
Frédéric Junod
765995f0a3 Merge pull request #7682 from fredj/MouseWheelZoom_condition
Add new condition to MouseWheelZoom interaction
2018-01-08 13:16:40 +01:00
Andreas Hocevar
f7efd6904b Merge pull request #7685 from openlayers/greenkeeper/sinon-4.1.4
Update sinon to the latest version 🚀
2018-01-08 13:06:29 +01:00
Andreas Hocevar
1433835d74 Merge pull request #7676 from ahocevar/font-check
Check fonts against two reference fonts
2018-01-08 12:50:04 +01:00
greenkeeper[bot]
21dae53203 chore(package): update sinon to version 4.1.4 2018-01-08 10:49:00 +00:00
Frederic Junod
4934318a5a Don't export private constants 2018-01-08 11:45:12 +01:00
Frederic Junod
bb954e7e2c Move IGCZ enum to src/ol/format/IGC.js 2018-01-08 11:40:36 +01:00
Frederic Junod
6d83297f24 Add new condition to MouseWheelZoom interaction 2018-01-08 11:07:46 +01:00
Frederic Junod
43377c1332 Rename _ol_interaction_MouseWheelZoom_ to MouseWheelZoom 2018-01-08 10:45:39 +01:00
Frédéric Junod
eb734c9f98 Merge pull request #7681 from openlayers/greenkeeper/eslint-4.15.0
Update eslint to the latest version 🚀
2018-01-08 09:24:25 +01:00
greenkeeper[bot]
c3bc299a84 chore(package): update eslint to version 4.15.0 2018-01-07 02:37:34 +00:00
Andreas Hocevar
3685b0ed2a Merge pull request #7680 from openlayers/greenkeeper/webpack-dev-server-2.10.0
Update webpack-dev-server to the latest version 🚀
2018-01-06 10:42:14 +01:00
greenkeeper[bot]
6bcb188d9d chore(package): update webpack-dev-server to version 2.10.0 2018-01-06 03:11:30 +00:00
Andreas Hocevar
e2af5f6be3 Check fonts against two reference fonts
In rare cases, the previous font check returned false negatives when
checking against monospace only. By checking against another font, this
can be avoided.
2018-01-03 10:34:18 +01:00
Andreas Hocevar
1572141cc5 Merge pull request #7668 from ahocevar/hit-detect-text-background
Hit detect text background
2018-01-01 18:04:00 +01:00
Andreas Hocevar
30511264c2 Test hit detection for text background 2018-01-01 12:32:26 +01:00
Andreas Hocevar
ad8f847465 Consider background box with stroke for hit detection 2018-01-01 12:32:26 +01:00
Andreas Hocevar
745bf3d79f Hit-detect background fill and stroke 2018-01-01 12:32:26 +01:00
Andreas Hocevar
6dd7e5374d Merge pull request #7667 from openlayers/greenkeeper/mocha-4.1.0
Update mocha to the latest version 🚀
2017-12-29 09:42:42 +01:00
greenkeeper[bot]
ebe31283f4 chore(package): update mocha to version 4.1.0 2017-12-29 05:16:50 +00:00
Andreas Hocevar
4fc8eff921 Merge pull request #7661 from ahocevar/background-fill-stroke
Background fill stroke
2017-12-26 19:57:54 +01:00
Andreas Hocevar
c5a2c2fd22 Apply fill and stroke only when set 2017-12-26 19:34:27 +01:00
Andreas Hocevar
0158738aff Clone backgroundFill and backgroundStroke 2017-12-26 19:33:47 +01:00
Andreas Hocevar
f2f5c5e958 Merge pull request #7656 from openlayers/greenkeeper/eslint-4.14.0
Update eslint to the latest version 🚀
2017-12-24 08:32:27 +01:00
greenkeeper[bot]
49c4cad7de chore(package): update eslint to version 4.14.0 2017-12-23 23:29:40 +00:00
Tim Schaub
0e6366ec08 Merge pull request #7655 from openlayers/greenkeeper/marked-0.3.9
Update marked to the latest version 🚀
2017-12-23 15:32:41 -07:00
greenkeeper[bot]
16fb967976 chore(package): update marked to version 0.3.9 2017-12-23 18:08:29 +00:00
Frédéric Junod
179b9bd4ef Merge pull request #7654 from fredj/ne_formats
Add named export for transformWithOptions function
2017-12-23 08:40:57 +01:00
Frédéric Junod
6a0f0bc050 Merge pull request #7652 from fredj/renaming
More renaming
2017-12-23 08:32:31 +01:00
Frederic Junod
3843beafa7 Add named export for transformWithOptions function 2017-12-22 15:45:11 +01:00
Frederic Junod
a0b68010b9 Change TextFeature#getText_ to a static function 2017-12-22 15:10:57 +01:00
Frederic Junod
297c9e45ab Rename _ol_tilegrid_TileGrid_ to TileGrid 2017-12-22 10:56:20 +01:00
Frederic Junod
7617e4e377 Rename _ol_source_WMTSRequestEncoding_ to WMTSRequestEncoding
And add named export for `createFromCapabilitiesMatrixSet` function.
2017-12-22 10:50:23 +01:00
Frederic Junod
de5331fa00 Don't store private functions and variables into TopoJSON 2017-12-22 10:32:01 +01:00
Frederic Junod
259ecd0f79 Don't store private functions and variables into RasterSource 2017-12-22 09:31:43 +01:00
Frederic Junod
fd84f9378e Rename _ol_ImageTile_ to ImageTile 2017-12-22 09:18:27 +01:00
Frederic Junod
53c4113684 Named export for VectorImageTile 2017-12-22 09:18:24 +01:00
Frederic Junod
5f4e24e540 Remove DEFAULT_EXTENT from VectorTile class 2017-12-22 09:09:08 +01:00
Frederic Junod
b358a7daf5 Rename _ol_VectorTile_ to VectorTile 2017-12-22 09:06:58 +01:00
Frederic Junod
c46aec3196 Rename _ol_VectorImageTile_ to VectorImageTile 2017-12-22 09:03:41 +01:00
Frederic Junod
085fddcb36 Rename _ol_Disposable_ to Disposable 2017-12-22 09:02:23 +01:00
Frederic Junod
fc00aecd2e Rename _ol_TileState_ to TileState 2017-12-22 09:00:46 +01:00
Tim Schaub
2130ce7481 Merge pull request #7649 from raiyni/map
Named Map export for ol/Map
2017-12-21 23:19:20 -07:00
Ron Young
b8b64ac655 rename in examples 2017-12-21 23:11:42 -07:00
Ron Young
9fa59d0735 rename map in tests 2017-12-21 23:11:42 -07:00
Ron Young
ad5664e1ab rename map module 2017-12-21 23:11:42 -07:00
Tim Schaub
6e807e2017 Merge pull request #7651 from openlayers/greenkeeper/karma-2.0.0
Update karma to the latest version 🚀
2017-12-21 18:26:23 -07:00
greenkeeper[bot]
ff63bcbf77 chore(package): update karma to version 2.0.0 2017-12-21 16:45:17 +00:00
Frédéric Junod
8cbeca731b Merge pull request #7646 from openlayers/ne_polyline
Named export for Polyline format and SimpleGeometry
2017-12-21 16:51:35 +01:00
Frédéric Junod
7c54648be8 Merge pull request #7650 from fredj/renaming
Rename _ol_PluggableMap_ to PluggableMap
2017-12-21 16:51:23 +01:00
Frederic Junod
72fc1ad81a Rename _ol_PluggableMap_ to PluggableMap 2017-12-21 16:29:28 +01:00
Frederic Junod
194394f7c5 Don't store static variable and function into the exported object 2017-12-21 16:29:28 +01:00
Frederic Junod
4d8e45722c Don't store private function into JSONFeature 2017-12-21 10:53:13 +01:00
Frédéric Junod
ab628cb828 Merge pull request #7647 from openlayers/greenkeeper/rbush-2.0.2
Update rbush to the latest version 🚀
2017-12-21 10:44:37 +01:00
greenkeeper[bot]
d4d61d7904 fix(package): update rbush to version 2.0.2 2017-12-21 09:37:41 +00:00
Frederic Junod
a1d5f50c3d Named export for Polyline format 2017-12-21 09:12:43 +01:00
Frederic Junod
6d4621baeb Named export for SimpleGeometry.getStrideForLayout function 2017-12-21 08:43:19 +01:00
Frederic Junod
dc5cd438cd Don't store private function into SimpleGeometry class 2017-12-21 08:39:20 +01:00
Frédéric Junod
bcc2bc797a Merge pull request #7642 from fredj/unexport_private_gpx
Don't store private function into GPX
2017-12-21 08:28:06 +01:00
Tim Schaub
02660f678f Merge pull request #7643 from tschaub/sphere
Replace ol/Sphere with ol/sphere
2017-12-21 00:08:46 -07:00
Tim Schaub
f393252a11 Dedicated section for notes on the circular change 2017-12-20 23:48:35 -07:00
Tim Schaub
c89738cadb Named exports instead of static functions from ol/geom/Polygon 2017-12-20 23:48:35 -07:00
Tim Schaub
dae1921533 Regression test for projected geometry collections 2017-12-20 23:48:34 -07:00
Tim Schaub
54b8622114 Replace ol/Sphere with ol/sphere 2017-12-20 23:48:34 -07:00
Tim Schaub
43342cd133 Merge pull request #7644 from raiyni/math
Named exports from ol/math module
2017-12-20 23:43:57 -07:00
Ron Young
a11208d126 rename _ol_math_ imports 2017-12-20 19:31:00 -06:00
Frederic Junod
94d160bee3 Don't store private function into GPX 2017-12-20 11:05:04 +01:00
Frederic Junod
5dfc806df5 Remove unused XSD.NAMESPACE_URI 2017-12-20 11:05:04 +01:00
Frederic Junod
8cfef2e3ca Don't store NAMESPACE_URI into XLink 2017-12-20 11:05:04 +01:00
Frederic Junod
a0f559aeda Don't store private function into GeoJSON 2017-12-20 11:05:04 +01:00
Marc Jansen
8ef8f59cd9 Merge pull request #7636 from marcjansen/named-exports-array
Named exports from the ol/array module
2017-12-19 22:32:14 +01:00
Tim Schaub
a06c8ebb6f Merge pull request #7614 from KlausBenndorf/publicThisArgs
Remove opt_this from the API
2017-12-19 09:30:54 -08:00
Marc Jansen
f852dd9659 Merge pull request #7640 from openlayers/rm-unused-test
Remove unneeded and already skipped test
2017-12-19 17:29:06 +01:00
Marc Jansen
02002082bf Named exports from ol/array module 2017-12-19 17:22:58 +01:00
Marc Jansen
17def91ea3 Remove unneeded and already skipped test 2017-12-19 17:14:17 +01:00
Marc Jansen
767f61ba78 Merge pull request #7637 from marcjansen/named-exports-color
Named exports from the ol/color module
2017-12-19 17:11:03 +01:00
Frédéric Junod
be29df893a Merge pull request #7639 from fredj/unexport_private
Don't store private function into GeoJSON
2017-12-19 16:48:36 +01:00
Frédéric Junod
2d58ef4c1d Merge pull request #7635 from fredj/named_export
More module renaming
2017-12-19 16:41:14 +01:00
Frederic Junod
9f63431539 Don't store private function into GeoJSON 2017-12-19 16:40:15 +01:00
Marc Jansen
3cef7cd5cd Merge pull request #7632 from marcjansen/renames
Named exports from ol/css module
2017-12-19 15:44:36 +01:00
Marc Jansen
295c2973b5 Named exports from ol/color module 2017-12-19 13:56:54 +01:00
simonseyock
2276764951 source.Vector 2017-12-19 13:15:11 +01:00
simonseyock
73deb49db1 TileUtfGrid#forDataAtCoordinateAndResolution 2017-12-19 13:15:11 +01:00
simonseyock
d7c48314b8 observable 2017-12-19 13:15:11 +01:00
simonseyock
ca41c0d124 LineString#forEachSegment 2017-12-19 13:14:51 +01:00
simonseyock
3e82c37bed removes opt_this from ol.Collection#forEach
this commit also removes all uses of the standard thisArg of
Array#forEach.
2017-12-19 13:14:20 +01:00
Marc Jansen
a7c5897bdb Named exports from ol/css module 2017-12-19 11:38:56 +01:00
Marc Jansen
1aa7313a7b Merge pull request #7634 from marcjansen/tilelayer-rename
Rename _ol_layer_Tile_ to TileLayer
2017-12-19 10:06:15 +01:00
Marc Jansen
5aab9e1ba8 Merge pull request #7633 from marcjansen/import-assert
Import assert function directly
2017-12-19 10:05:32 +01:00
Frederic Junod
aa45598ae1 Rename _ol_source_Source_ to Source 2017-12-19 08:51:50 +01:00
Marc Jansen
25946b4541 Rename _ol_layer_Tile_ to TileLayer 2017-12-19 08:45:00 +01:00
Frederic Junod
1e307c16ac Rename _ol_source_VectorEventType_ to VectorEventType 2017-12-19 08:42:32 +01:00
Frederic Junod
a7d1e6fdf7 Rename _ol_source_TileEventType_ to TileEventType 2017-12-19 08:40:16 +01:00
Frederic Junod
87cc4b9c9f Rename _ol_source_WMSServerType_ to WMSServerType 2017-12-19 08:39:06 +01:00
Frederic Junod
2ae553702b Rename _ol_source_RasterOperationType_ to RasterOperationType 2017-12-19 08:37:33 +01:00
Marc Jansen
791242a73b Import assert function directly 2017-12-19 08:34:17 +01:00
Frederic Junod
d0728a5e65 Rename _ol_source_State_ to SourceState 2017-12-19 08:33:14 +01:00
Frédéric Junod
003c7bb209 Merge pull request #7631 from fredj/named_export
More named export and rename
2017-12-19 08:22:09 +01:00
Frederic Junod
277e470bd3 Rename _ol_render_EventType_ to RenderEventType 2017-12-18 17:23:05 +01:00
Frederic Junod
ef3f60e636 Rename _ol_pointer_EventType_ to PointerEventType 2017-12-18 17:19:45 +01:00
Frederic Junod
2747f324e9 Rename _ol_interaction_DrawEventType_ to DrawEventType 2017-12-18 17:18:19 +01:00
Frederic Junod
82a2908582 Rename _ol_webgl_ContextEventType_ to ContextEventType 2017-12-18 17:16:45 +01:00
Frederic Junod
2a00556dae Named export for ol/plugins 2017-12-18 17:13:22 +01:00
Frederic Junod
15768a6025 Rename _ol_PluginType to PluginType 2017-12-18 16:53:57 +01:00
Frederic Junod
27c54cc36c Rename _ol_format_FormatType_ to FormatType 2017-12-18 16:45:10 +01:00
Frederic Junod
c64aada38f Rename _ol_LayerType_ to LayerType 2017-12-18 16:43:10 +01:00
Frederic Junod
30a9c49bf0 Rename _ol_renderer_Type_ to RendererType 2017-12-18 16:41:44 +01:00
Frederic Junod
11f1c693a8 Rename _ol_render_ReplayType_ to ReplayType 2017-12-18 16:39:07 +01:00
Frederic Junod
dc70c4376d Named export for ol/style 2017-12-18 16:18:00 +01:00
Frédéric Junod
afa99f5788 Merge pull request #7627 from fredj/import_name
Nicer import name
2017-12-18 15:44:17 +01:00
Frederic Junod
904f197c06 Rename _ol_layer_Group_.Property_ to Property 2017-12-18 13:40:30 +01:00
Frederic Junod
b56fa82446 Rename _ol_Collection_.Property_ to Property 2017-12-18 13:38:15 +01:00
Frederic Junod
ae7fb85ef0 Rename _ol_layer_Vector_.Property_ to Property 2017-12-18 13:36:19 +01:00
Frederic Junod
d35b4b8be4 Rename _ol_layer_Heatmap_ to Heatmap 2017-12-18 13:29:52 +01:00
Frederic Junod
b35d464cc8 Rename _ol_layer_Heatmap_.Property_ to Property 2017-12-18 13:29:52 +01:00
Frederic Junod
db69f0ae44 Rename _ol_Overlay_ to Overlay 2017-12-18 13:29:52 +01:00
Frederic Junod
8cae7abb3e Rename _ol_Overlay_.Property to Property 2017-12-18 13:29:52 +01:00
Frederic Junod
b1b9edb43d Rename _ol_OverlayPositioning_ to OverlayPositioning 2017-12-18 13:29:52 +01:00
Frederic Junod
e23d0bf907 Rename _ol_ObjectEventType_ to ObjectEventType 2017-12-18 13:29:52 +01:00
Frederic Junod
7fd957c2e5 Rename _ol_style_IconImageCache_ to IconImageCache 2017-12-18 11:09:58 +01:00
Frederic Junod
bbd8a3f6ae Rename _ol_style_IconAnchorUnits_ to IconAnchorUnits 2017-12-18 10:58:16 +01:00
Frederic Junod
e4446d4cb3 Rename _ol_style_IconOrigin_ to IconOrigin 2017-12-18 10:56:08 +01:00
Frederic Junod
424ea22131 Rename _ol_style_TextPlacement_ to TextPlacement 2017-12-18 10:53:12 +01:00
Frederic Junod
0a895a2867 Rename _ol_ImageState_ to ImageState 2017-12-18 10:51:21 +01:00
Frederic Junod
3e262b4c6b Rename _ol_MapEventType_ to MapEventType 2017-12-18 10:50:52 +01:00
Frederic Junod
64e7ae6eb8 Rename _ol_CollectionEventType_ to CollectionEventType 2017-12-18 10:50:52 +01:00
Frédéric Junod
4275a66b49 Merge pull request #7622 from fredj/named_export
Named export
2017-12-18 10:50:39 +01:00
Frederic Junod
9349ba5403 Named export for ol/asserts 2017-12-18 10:33:41 +01:00
Frederic Junod
7202573f82 Named export for ol/featureloader 2017-12-18 10:33:41 +01:00
Frederic Junod
a7b743da07 Rename _ol_TileRange_ to TileRange 2017-12-18 10:33:41 +01:00
Frédéric Junod
72319c0b52 Merge pull request #7624 from fredj/rm_eslint_ol_plugin
Remove eslint-plugin-openlayers-internal rules
2017-12-18 09:55:25 +01:00
Frederic Junod
df1c34d0ad Remove 'goog' from eslint globals 2017-12-18 09:05:08 +01:00
Frederic Junod
9f6c5e139f Remove eslint-plugin-openlayers-internal rules 2017-12-18 08:42:39 +01:00
Frédéric Junod
a725aafa24 Merge pull request #7625 from fredj/named_export_control_interaction_defaults
Named export for ol/control and ol/interaction
2017-12-18 08:41:20 +01:00
Frédéric Junod
61e9307002 Merge pull request #7623 from fredj/named_export_tileurlfunction
Named export for ol/tileurlfunction
2017-12-18 08:36:24 +01:00
Frederic Junod
f23590a479 Named export for ol/interaction 2017-12-17 19:05:05 +01:00
Frederic Junod
da67764437 Named export for ol/control 2017-12-17 18:53:50 +01:00
Frederic Junod
3cc63c4767 Named export for ol/tileurlfunction
And change module name from ol/TileUrlFunction to ol/tileurlfunction
2017-12-17 18:32:43 +01:00
Frédéric Junod
db3e885076 Merge pull request #7621 from fredj/use_Clipboard.js
Replace ZeroClipboard with Clipboard.js
2017-12-17 17:36:30 +01:00
Tim Schaub
1c3130d846 Merge pull request #7620 from tschaub/rename
Rename variables in format modules
2017-12-17 02:40:29 -07:00
Tim Schaub
3371ae86c1 Rename _ol_format_XSD_ to XSD 2017-12-17 02:25:01 -07:00
Tim Schaub
06772567d5 Rename _ol_format_XMLFeature_ to XMLFeature 2017-12-17 02:24:18 -07:00
Tim Schaub
02fb48e15d Rename _ol_format_XML_ to XML 2017-12-17 02:23:17 -07:00
Tim Schaub
2aeef0b120 Rename _ol_format_XLink_ to KXLink 2017-12-17 02:22:12 -07:00
Tim Schaub
53cc0ad3ff Rename _ol_format_WMSCapabilities_ to WMSCapabilities 2017-12-17 02:20:45 -07:00
Tim Schaub
ded5c0d863 Rename _ol_format_WMSCapabilities_ to WMSCapabilities 2017-12-17 02:19:54 -07:00
Tim Schaub
9889370c08 Rename _ol_formnat_WKT_ to WKT 2017-12-17 02:18:33 -07:00
Tim Schaub
c6650285f5 Rename _ol_format_WFS_ to WFS 2017-12-17 02:09:04 -07:00
Tim Schaub
f2e8d39d1f Rename _ol_format_TopoJSON_ to TopoJSON 2017-12-17 02:07:34 -07:00
Tim Schaub
cc08dcd2ca Rename _ol_format_TextFeature_ to TextFeature 2017-12-17 02:06:43 -07:00
Tim Schaub
2e98eec48d Rename _ol_format_Polyline_ to Polyline 2017-12-17 02:05:46 -07:00
Tim Schaub
1527f04db3 Rename _ol_format_OWS_ to OWS 2017-12-17 02:04:43 -07:00
Tim Schaub
a2d2f5e611 Rename _ol_format_OSMXML_ OSMXML 2017-12-17 02:03:21 -07:00
Tim Schaub
cdf7b3276b Rename _ol_format_MVT_ to MVT 2017-12-17 02:00:48 -07:00
Tim Schaub
e77ef118ea Rename _ol_format_KML_ to KML 2017-12-17 01:58:24 -07:00
Frédéric Junod
4fab991cdf Merge pull request #7619 from fredj/more_rename
More variable renaming
2017-12-17 09:57:49 +01:00
Tim Schaub
b908361895 Rename _ol_format_JSONFeature_ to JSONFeature 2017-12-17 01:56:20 -07:00
Tim Schaub
04230086a4 Rename _ol_format_IGC_ to IGC 2017-12-17 01:53:48 -07:00
Frederic Junod
599d3b6c0c Replace ZeroClipboard with Clipboard.js 2017-12-17 09:53:42 +01:00
Tim Schaub
55ab1bc24a Rename _ol_format_GPX_ to GPX 2017-12-17 01:52:40 -07:00
Tim Schaub
30f10b743a Rename _ol_format_GMLBase_ to GMLBase 2017-12-17 01:51:11 -07:00
Tim Schaub
f8610190bb Rename _ol_format_GML2_ to GML2 2017-12-17 01:48:47 -07:00
Tim Schaub
fc690bf063 Rename _ol_format_GML3_ to GML3 2017-12-17 01:47:08 -07:00
Tim Schaub
8656e794ff Rename _ol_format_GeoJSON_ to GeoJSON 2017-12-17 01:42:56 -07:00
Tim Schaub
96a05fa0ed Rename _ol_format_Feature_ to FeatureFormat 2017-12-17 01:41:11 -07:00
Tim Schaub
b648f4b7e1 Rename _ol_format_EsriJSON_ to EsriJSON 2017-12-17 01:39:08 -07:00
Frederic Junod
23277606d4 Rename _ol_TileQueue_ to TileQueue 2017-12-17 09:12:58 +01:00
Frederic Junod
f4305de074 Rename _ol_TileCache_ to TileCache 2017-12-17 09:12:58 +01:00
Frederic Junod
f96a94fbcd Rename _ol_structs_PriorityQueue_ to PriorityQueue 2017-12-17 09:04:53 +01:00
Frederic Junod
e887b5012b Rename _ol_structs_LRUCache_ to LRUCache 2017-12-17 09:00:48 +01:00
Frederic Junod
ed79ec9b2e Rename _ol_structs_LinkedList_ to LinkedList 2017-12-17 08:58:15 +01:00
Frederic Junod
56163c5f37 Rename _ol_structs_RBush_ to RBush 2017-12-17 08:55:43 +01:00
Frédéric Junod
8e01078492 Merge pull request #7612 from fredj/_ol_ext_import
Better import name for _ol_ext_* import
2017-12-17 08:17:05 +01:00
Frédéric Junod
98891c0c12 Merge pull request #7611 from fredj/olx_Sphere
Change olx.SphereMetricOptions to SphereMetricOptions
2017-12-17 08:16:43 +01:00
Tim Schaub
60eddb233b Merge pull request #7615 from tschaub/no-logo
Remove logos
2017-12-16 08:52:31 -07:00
Tim Schaub
b7e9b8b461 Remove logos 2017-12-16 08:46:50 -07:00
Frederic Junod
22ed6a8a2f Better import name for _ol_ext_* import 2017-12-16 09:07:13 +01:00
Frédéric Junod
9a3d7eedc4 Merge pull request #7610 from fredj/better_names
More variable renaming
2017-12-16 08:54:47 +01:00
Frederic Junod
7323e180f4 Change olx.SphereMetricOptions to SphereMetricOptions
Leftover from #7609
2017-12-16 08:32:33 +01:00
Frederic Junod
3f3e412d10 Rename _ol_AssertionError_ to AssertionError 2017-12-16 08:25:52 +01:00
Frederic Junod
e3bf72f90e Rename _ol_Geolocation_ to Geolocation 2017-12-16 08:15:59 +01:00
Frederic Junod
bf6a18dfc4 Rename _ol_Graticule_ to Graticule 2017-12-16 08:11:54 +01:00
Frederic Junod
935133755e Rename _ol_Kinetic_ to Kinetic 2017-12-16 08:06:48 +01:00
Tim Schaub
44faf4462c Merge pull request #7609 from tschaub/olx-part-1
Redistribute a few types and docs
2017-12-15 23:39:44 -07:00
Tim Schaub
98959b224d Redistribute a few types and docs 2017-12-15 23:10:53 -07:00
Andreas Hocevar
114172d66c Merge pull request #7598 from ahocevar/proj4
Modular proj4 integration
2017-12-16 01:39:45 +01:00
Andreas Hocevar
5c5664ec30 Use proj4 from the proj4 package instead of the global 2017-12-16 01:27:43 +01:00
Andreas Hocevar
9f1ebbb852 Add and use new proj4.register function 2017-12-15 19:17:29 +01:00
Andreas Hocevar
345ce340e4 Named exports for ol/proj/transforms 2017-12-15 18:48:10 +01:00
Tim Schaub
4fca41e83e Merge pull request #7607 from tschaub/rename-interaction-variables
Rename interaction variables
2017-12-15 10:02:39 -07:00
Marc Jansen
4868098495 Rename _ol_interaction_Draw_ to Draw 2017-12-15 09:43:58 -07:00
Marc Jansen
b92118b5ab Rename _ol_interaction_DragZoom_ to DragZoom 2017-12-15 09:42:55 -07:00
Marc Jansen
ea08212df6 Rename _ol_interaction_DragRotateAndZoom_ to DragRotateAndZoom 2017-12-15 09:42:55 -07:00
Marc Jansen
3a933df1f1 Rename _ol_interaction_DragRotate_ to DragRotate 2017-12-15 09:42:55 -07:00
Marc Jansen
de6006c6e2 Rename _ol_interaction_DragPan_ to DragPan 2017-12-15 09:42:55 -07:00
Marc Jansen
5d688d2417 Rename _ol_interaction_DragBox_ to DragBox 2017-12-15 09:42:55 -07:00
Marc Jansen
41d417b0fc Rename _ol_interaction_DragAndDrop_ to DragAndDrop 2017-12-15 09:41:32 -07:00
Marc Jansen
66c5f9b63d Rename _ol_interaction_DoubleClickZoom_ to DoubleClickZoom 2017-12-15 09:39:10 -07:00
Marc Jansen
4a1d50730b Rename _ol_interaction_Interaction_ to Interaction 2017-12-15 09:39:10 -07:00
Tim Schaub
aa630c3682 Merge pull request #7599 from marcjansen/rename-event-variables
Rename event variables
2017-12-15 09:23:19 -07:00
Frédéric Junod
d99fee5dac Merge pull request #7605 from fredj/nicer_name
Better import and class name in ol/format/filter/
2017-12-15 16:44:20 +01:00
Marc Jansen
c620688758 Rename _ol_events_EventTarget_ to EventTarget 2017-12-15 16:19:03 +01:00
Marc Jansen
5199371b9f Rename _ol_MapBrowserEventHandler_ to MapBrowserEventHandler 2017-12-15 16:19:03 +01:00
Marc Jansen
479c7a4668 Rename _ol_events_EventType_ to EventType 2017-12-15 16:19:03 +01:00
Marc Jansen
ec64789940 Rename _ol_MapBrowserPointEvent_ to MapBrowserPointerEvent 2017-12-15 16:18:32 +01:00
Marc Jansen
039bde29cc Rename _ol_MapBrowserEventType_ to MapBrowserEventType 2017-12-15 16:18:32 +01:00
Marc Jansen
465c248572 Rename _ol_MapBrowserEvent_ to MapBrowserEvent 2017-12-15 16:17:56 +01:00
Marc Jansen
a01793d3af Rename _ol_MapEvent_ to MapEvent 2017-12-15 16:17:56 +01:00
Marc Jansen
1cc682e488 Rename _ol_events_Event_ to Event 2017-12-15 16:17:56 +01:00
Frederic Junod
17512d282a Better import and class name in ol/format/filter/ 2017-12-15 16:14:07 +01:00
Frédéric Junod
9622c64bc6 Merge pull request #7604 from fredj/ne_functions
Named exports from ol/functions
2017-12-15 16:12:42 +01:00
Frédéric Junod
c27aac20b7 Merge pull request #7603 from fredj/simplify_export_default
Simplify default export
2017-12-15 16:12:29 +01:00
Frederic Junod
0bc28323c8 Simplify default export
This removes unnecessary variable declarations where the default object is an object.
2017-12-15 15:21:25 +01:00
Frédéric Junod
4c5f570e86 Merge pull request #7602 from fredj/rm_DEVICE_ORIENTATION
Remove now unused DEVICE_ORIENTATION
2017-12-15 15:02:52 +01:00
Frederic Junod
2498bba90a Named exports from ol/functions 2017-12-15 13:44:32 +01:00
Frédéric Junod
75ea4d3e9a Merge pull request #7597 from fredj/named_export
More es6 named export
2017-12-15 10:48:44 +01:00
Frederic Junod
02649e2b70 Remove now unused DEVICE_ORIENTATION 2017-12-15 10:45:29 +01:00
Marc Jansen
27c1867701 Merge pull request #7600 from marcjansen/simpler-default-export
Simplify default export of ol/events/KeyCode
2017-12-15 10:44:03 +01:00
Frederic Junod
92bbec294c Rename 'ol/vec/Mat4' module to 'ol/vec/mat4' 2017-12-15 10:36:32 +01:00
Marc Jansen
f093f594d5 Simplify default export of ol/events/KeyCode 2017-12-15 09:56:50 +01:00
Frederic Junod
6e83a15bd6 Named exports from ol/colorlike 2017-12-15 08:51:18 +01:00
Frederic Junod
a32aebfb3a Named exports from ol/vec/Mat4 2017-12-15 08:43:37 +01:00
Tim Schaub
10d7884643 Merge pull request #7594 from tschaub/rename-controls
Rename control variables
2017-12-14 14:06:36 -07:00
Tim Schaub
6b058ce2bf Merge pull request #7596 from openlayers/greenkeeper/karma-webpack-2.0.9
Update karma-webpack to the latest version 🚀
2017-12-14 13:19:44 -07:00
greenkeeper[bot]
1aecdbbbbb chore(package): update karma-webpack to version 2.0.9 2017-12-14 20:10:08 +00:00
Tim Schaub
6b859f17ae Rename _ol_control_ZoomToExtent_ to ZoomToExtent 2017-12-14 13:08:48 -07:00
Tim Schaub
7a9a3651e1 Rename _ol_control_ZoomSlider_ to ZoomSlider 2017-12-14 13:08:14 -07:00
Tim Schaub
fb8fb42d81 Rename _ol_control_Zoom_ to Zoom 2017-12-14 13:07:36 -07:00
Tim Schaub
4200f8e73e Rename _ol_control_ScaleLineUnits_ to ScaleLineUnits 2017-12-14 13:06:52 -07:00
Tim Schaub
b79ead82d2 Rename _ol_control_ScaleLine_ to ScaleLine 2017-12-14 13:05:18 -07:00
Tim Schaub
6e5171f559 Rename _ol_control_Rotate_ to Rotate 2017-12-14 13:02:20 -07:00
Tim Schaub
6aaac599e0 Rename _ol_control_OverviewMap_ to OverviewMap 2017-12-14 13:01:37 -07:00
Tim Schaub
79c61ed1a0 Rename _ol_control_MousePosition_ to MousePosition 2017-12-14 12:59:46 -07:00
Tim Schaub
d9f8667d2b Rename _ol_control_FullScreen_ to FullScreen 2017-12-14 12:58:47 -07:00
Tim Schaub
681f1285f8 Rename _ol_control_Control_ to Control 2017-12-14 12:57:49 -07:00
Tim Schaub
46e5755f40 Rename _ol_control_Attribution_ to Attribution 2017-12-14 12:57:42 -07:00
Tim Schaub
b74203b846 Merge pull request #7593 from tschaub/simplify_export_default
Simplify default export
2017-12-14 12:48:59 -07:00
Frederic Junod
2ca60292bb Simplify default export 2017-12-14 12:23:06 -07:00
Tim Schaub
a01e0583ea Merge pull request #7591 from tschaub/rename-geometry
Rename geometry variables
2017-12-14 12:18:32 -07:00
Tim Schaub
fca8b13ddd Rename _ol_geom_SimpleGeometry_ to SimpleGeometry 2017-12-14 09:03:51 -07:00
Tim Schaub
64a0d40361 Rename _ol_geom_LinearRing_ to LinearRing 2017-12-14 09:01:39 -07:00
Tim Schaub
504368369c Rename _ol_geom_GeometryType_ to GeometryType 2017-12-14 09:00:57 -07:00
Tim Schaub
2be36c375d Rename _ol_geom_GeometryLayout_ to GeometryLayout 2017-12-14 09:00:20 -07:00
Tim Schaub
4ea0af87df Rename _ol_geom_GeometryCollection_ to GeometryCollection 2017-12-14 08:59:35 -07:00
Tim Schaub
87e665d60e Rename _ol_geom_Geometry_ to Geometry 2017-12-14 08:58:46 -07:00
Tim Schaub
ac7985a5ad Rename _ol_geom_Circle_ to Circle 2017-12-14 08:57:52 -07:00
Tim Schaub
9d396280b0 Rename _ol_geom_MultiPolygon_ to MultiPolygon 2017-12-14 08:56:51 -07:00
Tim Schaub
c502f016f7 Rename _ol_geom_Polygon_ to Polygon 2017-12-14 08:56:12 -07:00
Tim Schaub
3c78cb7872 Rename _ol_geom_MultiLineString_ to MultiLineString 2017-12-14 08:55:33 -07:00
Tim Schaub
f7b3876c1b Rename _ol_geom_LineString_ to LineString 2017-12-14 08:54:53 -07:00
Tim Schaub
ad5806c29d Rename _ol_geom_MultiPoint_ to MultiPoint 2017-12-14 08:51:53 -07:00
Tim Schaub
eadec38ae2 Rename _ol_geom_Point_ to Point 2017-12-14 08:49:10 -07:00
Frédéric Junod
75c5a8b246 Merge pull request #7589 from openlayers/greenkeeper/karma-webpack-2.0.8
chore(package): update karma-webpack to version 2.0.8
2017-12-14 13:33:06 +01:00
Frédéric Junod
083d48b9cb Merge pull request #7586 from fredj/ne_dom
Named exports from ol/dom
2017-12-14 13:29:36 +01:00
Andreas Hocevar
de1b5d459c Merge pull request #7581 from tschaub/proj
Named exports from ol/proj
2017-12-14 13:23:07 +01:00
greenkeeper[bot]
88337723c5 chore(package): update karma-webpack to version 2.0.8
Closes #7583
2017-12-14 12:11:35 +00:00
Tim Schaub
63a5477479 Tolerate disconnects 2017-12-14 13:08:40 +01:00
Tim Schaub
6f72ffe498 Named exports from ol/proj 2017-12-14 13:08:40 +01:00
Frederic Junod
f6627c4d4e Named exports from ol/dom 2017-12-14 12:27:09 +01:00
Frédéric Junod
fab77e8d37 Merge pull request #7585 from fredj/rm_olx.animation
Remove leftovers olx.animation typedefs
2017-12-14 12:17:24 +01:00
Frederic Junod
6077d7c0f1 Remove leftovers olx.animation typedefs 2017-12-14 12:12:11 +01:00
Frédéric Junod
e77490645b Merge pull request #7584 from fredj/ne_easing
Named exports from ol/easing
2017-12-14 12:11:37 +01:00
Frederic Junod
6451d37570 Set Chrome version to 62.0 in SauceLab config 2017-12-14 11:33:09 +01:00
Frederic Junod
061e0b6618 Named exports from ol/easing 2017-12-14 08:56:38 +01:00
Tim Schaub
e2c9175f6d Merge pull request #7582 from ahocevar/no-extent-default-export
Remove default export from ol/extent
2017-12-13 22:24:53 -07:00
Tim Schaub
4a2d711fb7 Merge pull request #7580 from tschaub/no-default
No default export from lowercase modules
2017-12-13 22:17:17 -07:00
Andreas Hocevar
5a4887e300 Remove default export from ol/extent 2017-12-13 22:05:10 +01:00
Tim Schaub
6ed56b5de1 Merge pull request #7575 from ahocevar/named-exports-extent
Add named exports for extent
2017-12-13 09:34:44 -07:00
Tim Schaub
53da372d0a No default export from lowercase modules 2017-12-13 09:11:06 -07:00
Andreas Hocevar
fd8ec6485c Merge pull request #7579 from mbleichner/fix-blank-tiles
VectorImageTile: call changed() before removing listeners on dispose
2017-12-13 14:20:30 +01:00
Andreas Hocevar
c0c43bca84 Use named imports from extent 2017-12-13 14:05:42 +01:00
Manuel Bleichner
2060258a15 VectorImageTile: call changed() before removing listeners on dispose 2017-12-13 13:49:52 +01:00
Andreas Hocevar
7247ccbf38 Remove variable for Corner and Relationship 2017-12-13 13:49:10 +01:00
Andreas Hocevar
01f6e90828 Add named exports for extent 2017-12-13 13:49:10 +01:00
Tim Schaub
6e6b0b08fb Merge pull request #7578 from tschaub/undeprecated
Remove deprecated functionality from 4.x
2017-12-13 05:31:51 -07:00
Tim Schaub
37b849a059 Merge pull request #7577 from tschaub/ol-index-todos
Redistribute things in ol/index.js
2017-12-13 05:31:11 -07:00
Tim Schaub
453ddd76b3 Remove ol/source/ImageVector 2017-12-12 19:38:06 -07:00
Tim Schaub
d04b25403d Clean up filters 2017-12-12 19:36:35 -07:00
Tim Schaub
72ff21e01f Remove exceedLength 2017-12-12 19:29:42 -07:00
Tim Schaub
7e3d44e35a Remove ol/Attribution 2017-12-12 19:27:23 -07:00
Tim Schaub
ac6b3fb908 Remove device orientation 2017-12-12 19:17:51 -07:00
Tim Schaub
bb48b09920 Remove ol/proj/common 2017-12-12 19:13:05 -07:00
Tim Schaub
ea6a397647 Add remaining TODOs 2017-12-12 17:42:48 -07:00
Tim Schaub
ed5b28f366 Move DEFAULT_WMS_VERSION to a common source module 2017-12-12 17:42:44 -07:00
Tim Schaub
f403a06967 Move ENABLE_RASTER_REPROJECTION to a temporary place 2017-12-12 17:30:59 -07:00
Tim Schaub
ee5507cae8 Remove ENABLE_PROJ4JS 2017-12-12 17:26:01 -07:00
Tim Schaub
9e34c145c3 Remove ENABLE_WEBGL 2017-12-12 17:21:42 -07:00
Tim Schaub
755619fa87 Remove ENABLE_CANVAS 2017-12-12 17:18:41 -07:00
Tim Schaub
0a12ca690f Remove ASSUME_TOUCH 2017-12-12 17:15:50 -07:00
Tim Schaub
8bf00cbfb7 Move raster reprojection error threshold to a common reproj module 2017-12-12 17:15:46 -07:00
Tim Schaub
b8ab1ff852 Move simplify tolerance to the vector renderer 2017-12-12 16:54:01 -07:00
Tim Schaub
60f6736360 Move max subdivision and max triangle width to triangulation module 2017-12-12 16:54:01 -07:00
Tim Schaub
4b0dad27f5 Move min and max ratios to the overview map control 2017-12-12 16:54:01 -07:00
Tim Schaub
34c132a67e Move MOUSEWHEELZOOM_MAXDELTA to the mouse wheel zoom interaction 2017-12-12 16:54:01 -07:00
Tim Schaub
7725bc37bc Move WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK to the WebGL map renderer 2017-12-12 16:54:01 -07:00
Tim Schaub
6afd7b4783 Move things specific to the atlas manager to AtlasManager.js 2017-12-12 16:54:01 -07:00
Tim Schaub
c40d9634bb Move DEFAULT_MIN_ZOOM to the one place it is used 2017-12-12 16:54:01 -07:00
Tim Schaub
f2752eb01e Common tilegrid exports 2017-12-12 16:53:57 -07:00
Tim Schaub
e652e4658c Merge pull request #7576 from tschaub/named-exports-ol
Named exports from ol/index.js
2017-12-12 15:59:35 -07:00
Tim Schaub
87295a74dd Use named exports from ol/index.js 2017-12-12 12:34:23 -07:00
Tim Schaub
fce644556b Merge pull request #7570 from tschaub/es-modules
Transform sources to ES modules
2017-12-12 06:05:48 -08:00
Tim Schaub
50737f7f73 Remove unused code, get tests passing on Travis 2017-12-12 06:58:02 -07:00
Tim Schaub
b0c0166e9b Preprocess test scripts with webpack 2017-12-12 06:56:19 -07:00
Tim Schaub
4515b8fe70 Remove dev/prod switcher from examples (all have sourcemaps now) 2017-12-12 06:56:19 -07:00
Tim Schaub
8a9bbd6264 Separate example scripts for dev and prod 2017-12-12 06:56:19 -07:00
Tim Schaub
93411a2b91 Script to build examples 2017-12-12 06:55:17 -07:00
Tim Schaub
7f47883c48 Transformed 2017-12-12 06:53:18 -07:00
Tim Schaub
1cdb6a66f0 Imports cased like the filename 2017-12-12 06:53:17 -07:00
Frédéric Junod
46fd03047b Merge pull request #7571 from openlayers/greenkeeper/eslint-4.13.1
Update eslint to the latest version 🚀
2017-12-12 08:27:38 +01:00
greenkeeper[bot]
07d2ae9256 chore(package): update eslint to version 4.13.1 2017-12-11 23:49:52 +00:00
Tim Schaub
22502d5cf6 Merge pull request #7567 from openlayers/greenkeeper/fs-extra-5.0.0
Update fs-extra to the latest version 🚀
2017-12-11 15:23:50 -08:00
Tim Schaub
a7cfa352d5 Merge pull request #7569 from tschaub/extra-require
Remove unnecessary require
2017-12-11 12:30:03 -08:00
Andreas Hocevar
0c707eeb58 Merge pull request #7568 from ahocevar/remove-unused-proj
Remove unneeded configs from test
2017-12-11 21:26:46 +01:00
Andreas Hocevar
4365e19727 Remove unneeded configs from test 2017-12-11 21:13:31 +01:00
Tim Schaub
6a1699cfd9 Remove unnecessary require 2017-12-11 13:13:20 -07:00
Tim Schaub
f8b59fe3d7 Merge pull request #7566 from tschaub/missing-new
Proper projection construction
2017-12-11 10:30:07 -08:00
Tim Schaub
7822864ab3 Proper projection construction 2017-12-11 10:51:24 -07:00
greenkeeper[bot]
a3c90e9a4b fix(package): update fs-extra to version 5.0.0 2017-12-11 17:41:00 +00:00
Andreas Hocevar
c1dac5f26e Merge pull request #7565 from openlayers/release-v4.6.4
Release v4.6.4
2017-12-11 12:11:03 +01:00
Andreas Hocevar
72ca7b28c6 Update package version to 4.6.4 2017-12-11 11:31:38 +01:00
Andreas Hocevar
f11d55fde6 Changelog for v4.6.4 2017-12-11 11:29:50 +01:00
Andreas Hocevar
48217bc218 Handle skipping and unskipping features with renderMode: 'image' 2017-12-11 11:23:34 +01:00
Andreas Hocevar
b66c0941f5 Merge pull request #7563 from ahocevar/declutter-box-precision
Use full precision for the declutter box
2017-12-11 10:51:31 +01:00
Andreas Hocevar
a2d41da30f Use full precision for the declutter box 2017-12-11 10:18:46 +01:00
Andreas Hocevar
5f0280eab4 Merge pull request #7559 from ahocevar/unskip-image-features
Handle skipping and unskipping features with renderMode: 'image'
2017-12-11 09:28:24 +01:00
Andreas Hocevar
72ec41f890 Merge pull request #7562 from ahocevar/no-confusing-proj-code
Remove unused, confusing projection code
2017-12-11 09:27:43 +01:00
Andreas Hocevar
ad756d4054 Remove unused, confusing projection code 2017-12-11 09:14:48 +01:00
Andreas Hocevar
3e8ab15188 Merge pull request #7558 from openlayers/greenkeeper/eslint-4.13.0
Update eslint to the latest version 🚀
2017-12-10 23:57:13 +01:00
Andreas Hocevar
e318b63dff Handle skipping and unskipping features with renderMode: 'image' 2017-12-10 23:54:46 +01:00
greenkeeper[bot]
a99f1e8954 chore(package): update eslint to version 4.13.0 2017-12-08 22:28:54 +00:00
Andreas Hocevar
406a02e786 Merge pull request #7555 from openlayers/release-v4.6.3
Release v4.6.3
2017-12-08 11:28:46 +01:00
Andreas Hocevar
c76c445e43 Update package version to 4.6.3 2017-12-08 11:17:36 +01:00
Andreas Hocevar
3bba8ef061 Changelog for v4.6.3 2017-12-08 11:16:52 +01:00
Andreas Hocevar
a699cc348b Fix pull request link 2017-12-08 11:14:24 +01:00
Andreas Hocevar
f010f7b9c1 Only compose image vector frame when the replay group has changed 2017-12-08 11:12:05 +01:00
Andreas Hocevar
c07babb4e8 Merge pull request #7554 from ahocevar/imagemode-shortcut
Only compose image vector frame when the replay group has changed
2017-12-08 11:08:44 +01:00
Andreas Hocevar
4d971029f9 Only compose image vector frame when the replay group has changed 2017-12-08 10:53:45 +01:00
Frédéric Junod
3fdf1e2bc7 Merge pull request #7552 from openlayers/greenkeeper/jscodeshift-0.4.0
Update jscodeshift to the latest version 🚀
2017-12-07 16:19:42 +01:00
Frédéric Junod
055055687c Merge pull request #7551 from openlayers/greenkeeper/sinon-4.1.3
Update sinon to the latest version 🚀
2017-12-07 16:08:08 +01:00
greenkeeper[bot]
7d389926a2 chore(package): update jscodeshift to version 0.4.0 2017-12-07 14:45:48 +00:00
greenkeeper[bot]
b53d729592 chore(package): update sinon to version 4.1.3 2017-12-07 13:37:12 +00:00
Frédéric Junod
46bb2438a8 Merge pull request #7550 from fredj/d3_example_v4
Update examples to d3.js v4
2017-12-07 13:35:01 +01:00
Frederic Junod
99a5c2d7cb Update examples to d3.js v4 2017-12-07 12:20:37 +01:00
Andreas Hocevar
1a2052b2b4 Merge pull request #7548 from openlayers/fix-pull-request-link
Fix pull request link
2017-12-07 10:33:06 +01:00
Andreas Hocevar
16c5fe27e3 Fix pull request link 2017-12-07 09:18:11 +01:00
Andreas Hocevar
5740acd0dd Merge pull request #7547 from openlayers/release-v4.6.2
Release v4.6.2
2017-12-07 08:56:56 +01:00
Andreas Hocevar
5d27dcc27c Update package version to 4.6.2 2017-12-07 08:36:40 +01:00
Andreas Hocevar
52bbebf9aa Changelog for v4.6.2 2017-12-07 08:36:03 +01:00
Andreas Hocevar
578f900435 Revert "Merge pull request #7530 from raiyni/crossing-dateline"
This reverts commit fca0b0771d, reversing
changes made to c3db3e2f6f.
2017-12-07 08:33:19 +01:00
Andreas Hocevar
3bc1de3f6c Make sure we do not request features for wrapped extent 2017-12-07 08:33:09 +01:00
Andreas Hocevar
c8f6c474bb Merge pull request #7546 from ahocevar/vector-extent
Do not request features for wrapped extent
2017-12-07 08:29:01 +01:00
Andreas Hocevar
8135bd43a6 Revert "Merge pull request #7530 from raiyni/crossing-dateline"
This reverts commit fca0b0771d, reversing
changes made to c3db3e2f6f.
2017-12-07 00:08:59 +01:00
Andreas Hocevar
69ce6975dc Make sure we do not request features for wrapped extent 2017-12-07 00:08:59 +01:00
Andreas Hocevar
ce555e5083 Merge pull request #7545 from openlayers/release-v4.6.1
Release v4.6.1
2017-12-06 22:06:36 +01:00
Andreas Hocevar
992bfdc126 Update package version to 4.6.1 2017-12-06 21:43:24 +01:00
Andreas Hocevar
a96b8c5ca6 Changelog for v4.6.1 2017-12-06 21:42:35 +01:00
Andreas Hocevar
2bce90470e Merge pull request #7543 from ahocevar/interiorpoint-donut
Donut polygon labels do not get a chance to get rendered
2017-12-06 21:39:34 +01:00
Andreas Hocevar
50053c1b3f Merge pull request #7542 from ahocevar/overflow
Still respect deprecated exceedLength option
2017-12-06 21:39:14 +01:00
Andreas Hocevar
0c5134b789 Merge pull request #7541 from ahocevar/vectorrendertype-case
Fix case of vectorrendertype.js
2017-12-06 21:38:52 +01:00
Andreas Hocevar
e7bb4373ca Merge pull request #7543 from ahocevar/interiorpoint-donut
Donut polygon labels do not get a chance to get rendered
2017-12-06 21:28:12 +01:00
Andreas Hocevar
88fac957af Merge pull request #7542 from ahocevar/overflow
Still respect deprecated exceedLength option
2017-12-06 21:07:38 +01:00
Andreas Hocevar
046d827784 Make interiorpoint work with donut polygons 2017-12-06 20:23:18 +01:00
Andreas Hocevar
016437f9f4 Still respect deprecated exceedLength option 2017-12-06 17:53:54 +01:00
Andreas Hocevar
e83519b3b9 Merge pull request #7541 from ahocevar/vectorrendertype-case
Fix case of vectorrendertype.js
2017-12-06 17:43:58 +01:00
Andreas Hocevar
dad5cb6166 Fix case of vectorrendertype.js 2017-12-06 17:14:51 +01:00
Andreas Hocevar
ca3e11a10b Merge pull request #7539 from openlayers/release-v4.6.0
Release v4.6.0
2017-12-06 15:55:14 +01:00
Andreas Hocevar
7245805c90 Update package version to 4.6.0 2017-12-06 14:40:04 +01:00
Andreas Hocevar
5234a4dd21 Changelog for v4.6.0 2017-12-06 14:36:55 +01:00
Andreas Hocevar
b262b8535e Merge pull request #7538 from ahocevar/rem_from_loaded_ext
removeFromLoadedExtents to remove extents that failed to load
2017-12-06 14:22:11 +01:00
Andreas Hocevar
45ae731aa6 Add test 2017-12-06 13:39:35 +01:00
Andreas Hocevar
8bc61504c8 Give method a better name and add docs 2017-12-06 13:30:49 +01:00
geonux
5641430590 RemoveFromLoadedExtent to remove extent to the list of loaded extent in case of server error/restriction. 2017-12-06 12:53:14 +01:00
Frédéric Junod
2e2d8ea3d7 Merge pull request #7537 from walkermatt/removeLastPoint
Fix Draw.removeLastPoint exception when no points to remove
2017-12-06 11:51:14 +01:00
Frédéric Junod
d4f23e0ea9 Merge pull request #7536 from openlayers/greenkeeper/fs-extra-4.0.3
Update fs-extra to the latest version 🚀
2017-12-05 16:51:16 +01:00
greenkeeper[bot]
607e836df4 fix(package): update fs-extra to version 4.0.3 2017-12-05 15:03:48 +00:00
Bart van den Eijnden
8afcd1c2ff Merge pull request #7461 from oterral/teo_wmts
Use the matrixSet projection by default
2017-12-05 10:51:11 +01:00
Frédéric Junod
ebfdddbb8e Merge pull request #5883 from bylexus/master
Fixes setUrl() for WMTS sources (ol.source.WMTS)
2017-12-04 10:49:55 +01:00
Frederic Junod
14e3fd9214 Fix eslint errors 2017-12-04 10:06:00 +01:00
Frederic Junod
9c8c9c1a17 Store createFromWMTSTemplate into a private variable 2017-12-04 09:30:12 +01:00
Alexander Schenkel
c7cb26a066 Fixes setUrl() for WMTS sources (ol.source.WMTS)
See Issue #5881: setUrl was inherited from ol.source UrlTile, which creates a wrong tileUrlFunction: The official WMTS URL Template variables were no longer replaced.
2017-12-04 09:11:28 +01:00
Andreas Hocevar
b4a5142aaa Merge pull request #7531 from ahocevar/package-readme
Update the ol package readme
2017-12-02 17:42:20 +01:00
Tim Schaub
e96d190e1e Merge pull request #7533 from openlayers/greenkeeper/marked-0.3.7
Update marked to the latest version 🚀
2017-12-02 09:24:46 -07:00
greenkeeper[bot]
41efec1e74 chore(package): update marked to version 0.3.7 2017-12-01 18:30:04 +00:00
Andreas Hocevar
7941a33069 Merge pull request #7372 from notnotse/iconimagecache-setmaxcachesize
Add method to set max cache size in ol.style.IconImageCache
2017-12-01 18:00:36 +01:00
Andreas Hocevar
8a9f32fa09 Rename method and make it appear in the API docs 2017-12-01 17:03:28 +01:00
Matt Walker
90d8224a08 Fix Draw.removeLastPoint exception when no points to remove 2017-12-01 15:50:21 +00:00
Andreas Hocevar
55f7468c68 Update the ol package readme 2017-12-01 13:41:45 +01:00
Andreas Hocevar
fca0b0771d Merge pull request #7530 from raiyni/crossing-dateline
Check forward/back 1 world if wrapping
2017-12-01 09:20:39 +01:00
Ron Young
19bceff077 Check forward/back 1 world if wrapping 2017-11-30 14:23:42 -06:00
Tim Schaub
c3db3e2f6f Merge pull request #7526 from tschaub/stop-click
Allow clicks to be stopped while drawing
2017-11-30 09:21:06 -07:00
Andreas Hocevar
73f64a9e89 Merge pull request #7524 from ahocevar/view-pixel
Snap view center to pixel
2017-11-30 15:13:45 +01:00
Andreas Hocevar
74bf846ffe Add pixel ratio to label cache key 2017-11-30 01:20:49 +01:00
Andreas Hocevar
4e8714d619 Fix tests 2017-11-30 01:03:15 +01:00
Andreas Hocevar
9307c35c17 Improve vertical font placement in Firefox 2017-11-30 01:03:15 +01:00
Andreas Hocevar
3bb62a2c41 Snap view center to pixel 2017-11-30 01:03:15 +01:00
Tim Schaub
b58073dd06 Allow clicks to be stopped while drawing 2017-11-29 16:58:26 -07:00
oterral
9cc7cca447 Fix #6835: doesn't break if Constraint does not exist 2017-11-17 09:00:44 +01:00
oterral
5a252e628b Fix #7460: use the matrixSet projection by default 2017-11-13 11:06:31 +01:00
Bobo Häggström
343a4085a0 Add method to set max cache size in ol.style.IconImageCache 2017-10-24 16:04:55 +02:00
Lukas Drgon
2fa4d4bd8a Add jsDelivr hits badge 2017-10-15 18:36:14 +02:00
1149 changed files with 81790 additions and 99724 deletions

View File

@@ -1,3 +1,4 @@
examples/Jugl.js
examples/resources/
build/package/**/*webgl*
config/jsdoc/api/template/static/scripts/

View File

@@ -6,4 +6,3 @@ In order to get your proposed changes merged into the master branch, we ask you
- [ ] It contains one or more small, incremental, logically separate commits, with no merge commits.
- [ ] I have used clear commit messages.
- [ ] Existing tests pass for me locally & I have added or updated tests for new or changed functionality.
- [ ] The work herein is covered by a valid [Contributor License Agreement (CLA)](https://github.com/openlayers/cla).

4
.gitignore vendored
View File

@@ -1,4 +1,6 @@
/build/
/coverage/
/dist/
/node_modules/
node_modules/
src/index.js
src/ol/package.json

View File

@@ -1 +0,0 @@
/build/

View File

@@ -1,14 +1,9 @@
sudo: false
language: node_js
node_js:
- '8'
cache:
directories:
- node_modules
before_script:
- rm src/ol/renderer/webgl/*shader.js
- rm src/ol/renderer/webgl/*shader/locations.js
script: make ci
after_success:
- cat coverage/lcov.info | coveralls
branches:

View File

@@ -31,12 +31,7 @@ This page describes what you need to know to contribute code to OpenLayers as a
## Contributor License Agreement
Before accepting a contribution, we ask that you provide us a Contributor
License Agreement. If you are making your contribution as part of work for
your employer, please follow the guidelines on submitting a [Corporate
Contributor License Agreement](https://raw.github.com/openlayers/cla/master/ccla.txt). If you are
making your contribution as an individual, you can submit a digital [Individual
Contributor License Agreement](https://docs.google.com/spreadsheet/viewform?formkey=dGNNVUJEMXF2dERTU0FXM3JjNVBQblE6MQ).
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).
## Pull request guidelines
@@ -60,66 +55,6 @@ Your pull request must:
* Be possible to merge automatically.
### The `check` build target
It is strongly recommended that you run
$ make check
before every commit. This will catch many problems quickly, and it is much
faster than waiting for the Travis CI integration tests to run.
The `check` build target runs a number of quick tests on your code. These
include:
* Lint
* Compile
* Tests
### Follow OpenLayers's coding style
OpenLayers follows [Google's JavaScript Style
Guide](https://google.github.io/styleguide/javascriptguide.xml).
This is checked using [ESLint](http://eslint.org/), you
can run the linter locally on your machine before committing using the `lint`
target:
$ make lint
In addition to fixing problems identified by the linter, please also follow the
style of the existing OpenLayers code, which includes:
* Always wrap the body of `for`, `if`, and `while` statements in braces.
* Class methods should be in alphabetical order.
* `var` declarations should not span multiple lines. If you cannot fit all
the declarations in a single line, then start a new `var` declaration on a
new line. Within a single line, variables should be declared in
alphabetical order.
* Do not use assignments inside expressions.
* Use uppercase for `@const` variables.
### Configure your editor
If possible, configure your editor to follow the coding conventions of the
library. A `.editorconfig` file is included at the root of the repository that
can be used to configure whitespace and charset handling in your editor. See
that file for a description of the conventions. The [EditorConfig](
http://editorconfig.org/#download) site links to plugins for various editors.
### Pass the integration tests run automatically by the Travis CI system
The integration tests contain a number of automated checks to ensure that the
code follows the OpenLayers style and does not break tests or examples. You
can run the integration tests locally using the `ci` target:
$ make ci
### Address a single issue or add a single item of functionality
Please submit separate pull requests for separate issues. This allows each to
@@ -173,33 +108,3 @@ Occasionally other changes to `master` 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
your branch so that it can be merged automatically.
## Building on Windows
Most developers build on Linux. Building on Windows is possible under Cygwin.
When installing Cygwin from https://www.cygwin.com/, include the developer
tools to get GNU make.
First (before npm install), to avoid file permission problems between Windows
and Cygwin, edit Cygwin's /etc/fstab file to disable ACLs like this
`none /cygdrive cygdrive binary,noacl,posix=0,user 0 0`
Python is normally installed with Cygwin so need not be installed separately.
By default Cygwin will use its own version of Python rather than Window's,
so the Python modules should be installed for Cygwin's Python.
The build targets `check-deps`, `serve`, `lint`, `build`, `test`, `check` and
`host-examples` described above should all work. `host-examples` takes quite a
while to run. If a target does not run properly first time, try it again.
Currently, Firefox fails to run http://localhost:3000/build/examples
from make serve, but Chrome and Internet Explorer will.
Microsoft Visual Studio's javascript debugger may be used to debug the
build/hosted/your-branch/examples. It will be convenient to set
build/hosted/your-branch/examples/index.html as the startup page.
Your OpenLayers source tree need not be under the Cygwin root.
if you checkout to c:/openlayers then you can build under Cygwin at /cygdrive/c/openlayers .
However, keep the path to the OpenLayers files short otherwise you may see
`ENAMETOOLONG` errors.

View File

@@ -15,103 +15,32 @@ pull requests will not be merged.
The minimum requirements are:
* GNU Make
* Git
* [Node.js](http://nodejs.org/) (version 8 and above)
* Python 2.6 or 2.7
* Java 7 (JRE and JDK)
The executables `git`, `node`, and `java` should be in your `PATH`.
You can check your configuration by running:
$ make check-deps
The executables `git` and `node` should be in your `PATH`.
To install the Node.js dependencies run
$ npm install
## Working with the build tool
As an OpenLayers developer you will use `make` to run build targets defined in the
`Makefile` located at the root of the repository. The `Makefile` includes
targets for running the linter, the compiler, the tests, etc.
The usage of `make` is as follows:
$ make <target>
where `<target>` is the name of the build target you want to execute. For
example:
$ make test
The main build targets are `serve`, `lint`, `build`, `test`, and `check`. The
latter is a meta-target that basically runs `lint`, `build`, and `test`.
The `serve` target starts a node-based web server, which we will refer to as the *dev server*. You'll need to start that server for running the examples and the tests in a browser. More information on that further down.
Other targets include `apidoc` and `ci`. The latter is the target used on Travis CI. See OpenLayers's [Travis configuration file](https://github.com/openlayers/openlayers/blob/master/.travis.yml).
## Running the `check` target
The `check` target is to be run before pushing code to GitHub and opening pull
requests. Branches that don't pass `check` won't pass the integration tests,
and have therefore no chance of being merged into `master`.
To run the `check` target:
$ make check
If you want to run the full suite of integration tests, see "Running the integration
tests" below.
## Running examples
To run the examples you first need to start the dev server:
$ make serve
$ npm run serve-examples
Then, just point your browser <http://localhost:3000/build/examples> in your browser. For example <http://localhost:3000/build/examples/side-by-side.html>.
Run examples against the `ol.js` standalone build:
The examples can also be run against the `ol.js` standalone build, just like
the examples [hosted](https://openlayers.org/en/master/examples/) on GitHub.
Start by executing the `host-examples` build target:
$ make host-examples
After running `host-examples` you can now open the examples index page in the browser: <http://localhost:3000/build/hosted/master/examples/>. (This assumes that you still have the dev server running.)
Append `?mode=raw` to make the example work in full debug mode. In raw mode the OpenLayers and Closure Library scripts are loaded individually by the Closure Library's `base.js` script (which the example page loads and executes before any other script).
Then, load <http://localhost:5000/> in your browser.
## Running tests
To run the tests in a browser start the dev server (`make serve`) and open <http://localhost:3000/test/index.html> in the browser.
To run the tests once:
To run the tests on the console (headless testing with PhantomJS) use the `test` target:
$ npm test
$ make test
To run the tests continuously during development:
See also the test-specific [README](../master/test/README.md).
## Running the integration tests
When you submit a pull request the [Travis continuous integration
server](https://travis-ci.org/) will run a full suite of tests, including
building all versions of the library and checking that all of the examples
work. You will receive an email with the results, and the status will be
displayed in the pull request.
To run the full suite of integration tests use the `ci` target:
$ make ci
Running the full suite of integration tests currently takes 5-10 minutes.
This makes sure that your commit won't break the build. It also runs JSDoc3 to
make sure that there are no invalid API doc directives.
$ npm run karma
## Adding examples
@@ -123,14 +52,3 @@ implies creating two or three files in this directory, an `.html` file, a `.js`
file, and, optionally, a `.css` file.
You can use `simple.js` and `simple.html` as templates for new examples.
### Use of the `goog` namespace in examples
Short story: the OpenLayers examples should not use the `goog` namespace, except
for `goog.require`.
Longer story: we want that the OpenLayers examples work in multiple modes, with the
standalone lib (which has implications of the symbols and properties we
export), and compiled together with the OpenLayers library.
Compiling the examples together with the library makes it mandatory to declare dependencies with `goog.require` statements.

275
Makefile
View File

@@ -1,280 +1,13 @@
OS := $(shell uname)
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
SRC_GLSL := $(shell find src -type f -name '*.glsl')
SRC_SHADER_JS := $(patsubst %shader.glsl,%shader.js,$(SRC_GLSL))
SRC_SHADERLOCATIONS_JS := $(patsubst %shader.glsl,%shader/locations.js,$(SRC_GLSL))
SRC_JS := $(filter-out $(SRC_SHADER_JS) $(SRC_SHADERLOCATIONS_JS),$(shell find src -name '*.js'))
SRC_JSDOC = $(shell find src -type f -name '*.jsdoc')
EXAMPLES := $(shell find examples -type f)
EXAMPLES_HTML := $(filter-out examples/index.html,$(shell find examples -maxdepth 1 -type f -name '*.html'))
EXAMPLES_JS := $(patsubst %.html,%.js,$(EXAMPLES_HTML))
BUILD_EXAMPLES := $(subst examples,build/examples,$(EXAMPLES)) build/examples/index.js
BUILD_HOSTED := build/hosted/$(BRANCH)
BUILD_HOSTED_EXAMPLES := $(addprefix $(BUILD_HOSTED)/,$(EXAMPLES))
BUILD_HOSTED_EXAMPLES_JS := $(addprefix $(BUILD_HOSTED)/,$(EXAMPLES_JS))
UNPHANTOMABLE_EXAMPLES = examples/shaded-relief.html examples/raster.html examples/region-growing.html examples/color-manipulation.html
CHECK_EXAMPLE_TIMESTAMPS = $(patsubst examples/%.html,build/timestamps/check-%-timestamp,$(filter-out $(UNPHANTOMABLE_EXAMPLES),$(EXAMPLES_HTML)))
TASKS_JS := $(shell find tasks -name '*.js')
ifeq (CYGWIN,$(findstring CYGWIN,$(OS)))
CLOSURE_LIB = $(shell cygpath -u $(shell node -e 'process.stdout.write(require("closure-util").getLibraryPath())'))
else
CLOSURE_LIB = $(shell node -e 'process.stdout.write(require("closure-util").getLibraryPath())')
endif
ifeq ($(OS),Darwin)
STAT_COMPRESSED = stat -f ' compressed: %z bytes'
STAT_UNCOMPRESSED = stat -f 'uncompressed: %z bytes'
else
STAT_COMPRESSED = stat -c ' compressed: %s bytes'
STAT_UNCOMPRESSED = stat -c 'uncompressed: %s bytes'
endif
.PHONY: default
default: help
.PHONY: help
help:
@echo
@echo "The most common targets are:"
@echo
@echo "- install Install node dependencies"
@echo "- serve Start dev server for running examples and tests"
@echo "- test Run unit tests in the console"
@echo "- check Perform a number of checks on the code"
@echo "- clean Remove generated files"
@echo "- help Display this help message"
@echo
@echo "Other less frequently used targets are:"
@echo
@echo "- build Build ol.js, ol-debug.js, ol.js.map and ol.css"
@echo "- ci Run the full continuous integration process"
@echo "- apidoc Build the API documentation using JSDoc"
@echo "- cleanall Remove all the build artefacts"
@echo "- check-deps Check if the required dependencies are installed"
@echo
.PHONY: apidoc
apidoc: build/timestamps/jsdoc-$(BRANCH)-timestamp
.PHONY: build
build: build/ol.css build/ol.js build/ol-debug.js build/ol.js.map
.PHONY: check
check: build/ol.js test
.PHONY: check-examples
check-examples: $(CHECK_EXAMPLE_TIMESTAMPS)
.PHONY: check-deps
check-deps: EXECUTABLES = git node python java
check-deps:
@for exe in $(EXECUTABLES) ;\
do \
which $${exe} > /dev/null && \
echo "Program $${exe} OK" || \
echo "Program $${exe} MISSING!" ;\
done ;\
.PHONY: ci
ci: build test package compile-examples check-examples apidoc
.PHONY: compile-examples
compile-examples: build/compiled-examples/all.combined.js
.PHONY: clean
clean:
rm -f build/timestamps/check-*-timestamp
rm -f build/ol.css
rm -f build/ol.js
rm -f build/ol.js.map
rm -f build/ol-debug.js
rm -rf build/examples
rm -rf build/compiled-examples
rm -rf build/package
rm -rf $(BUILD_HOSTED)
.PHONY: cleanall
cleanall:
rm -rf build
.PHONY: css
css: build/ol.css
.PHONY: examples
examples: $(BUILD_EXAMPLES)
.PHONY: install
install: build/timestamps/node-modules-timestamp
.PHONY: npm-install
npm-install: build/timestamps/node-modules-timestamp
SRC_SHADERLOCATIONS_JS := $(patsubst %shader.glsl,%shader/Locations.js,$(SRC_GLSL))
.PHONY: shaders
shaders: $(SRC_SHADER_JS $(SRC_SHADERLOCATIONS_JS)
shaders: $(SRC_SHADER_JS) $(SRC_SHADERLOCATIONS_JS)
.PHONY: serve
serve:
node tasks/serve.js
.PHONY: test
test: build/timestamps/node-modules-timestamp
npm test
.PHONY: host-examples
host-examples: $(BUILD_HOSTED_EXAMPLES) \
$(BUILD_HOSTED)/build/ol.js \
$(BUILD_HOSTED)/build/ol-debug.js \
$(BUILD_HOSTED)/css/ol.css \
$(BUILD_HOSTED)/examples/loader.js \
$(BUILD_HOSTED)/examples/index.js \
$(BUILD_HOSTED)/build/ol-deps.js
.PHONY: host-libraries
host-libraries: build/timestamps/node-modules-timestamp
@rm -rf $(BUILD_HOSTED)/closure-library
@mkdir -p $(BUILD_HOSTED)/closure-library
@cp -r $(CLOSURE_LIB)/* $(BUILD_HOSTED)/closure-library/
@rm -rf $(BUILD_HOSTED)/ol/ol
@mkdir -p $(BUILD_HOSTED)/ol/ol
@cp -r src/ol/* $(BUILD_HOSTED)/ol/ol/
@rm -rf $(BUILD_HOSTED)/ol.ext
@mkdir -p $(BUILD_HOSTED)/ol.ext
@cp -r build/ol.ext/* $(BUILD_HOSTED)/ol.ext/
$(BUILD_EXAMPLES): $(EXAMPLES) package.json
@mkdir -p $(@D)
@node tasks/build-examples.js
build/timestamps/check-%-timestamp: $(BUILD_HOSTED)/examples/%.html \
$(BUILD_HOSTED)/examples/%.js \
$(filter $(BUILD_HOSTED)/examples/resources/%,$(BUILD_HOSTED_EXAMPLES)) \
$(filter $(BUILD_HOSTED)/examples/data/%,$(BUILD_HOSTED_EXAMPLES)) \
$(BUILD_HOSTED)/examples/loader.js \
$(BUILD_HOSTED)/build/ol.js \
$(BUILD_HOSTED)/css/ol.css
@mkdir -p $(@D)
node tasks/check-example.js $<
@touch $@
build/compiled-examples/all.js: $(EXAMPLES_JS)
@mkdir -p $(@D)
@python bin/combine-examples.py $^ > $@
build/compiled-examples/all.combined.js: config/examples-all.json build/compiled-examples/all.js \
$(SRC_JS) $(SRC_SHADER_JS) $(SRC_SHADERLOCATIONS_JS) \
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
node tasks/build.js $< $@
build/compiled-examples/%.json: config/example.json build/examples/%.js \
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
@sed -e 's|{{id}}|$*|' $< > $@
build/compiled-examples/%.combined.js: build/compiled-examples/%.json \
$(SRC_JS) $(SRC_SHADER_JS) $(SRC_SHADERLOCATIONS_JS)\
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
node tasks/build.js $< $@
build/timestamps/jsdoc-$(BRANCH)-timestamp: config/jsdoc/api/index.md \
config/jsdoc/api/conf.json $(SRC_JS) \
$(SRC_SHADER_JS) $(SRC_SHADERLOCATIONS_JS) \
$(shell find config/jsdoc/api/template -type f) \
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
@rm -rf $(BUILD_HOSTED)/apidoc
./node_modules/.bin/jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json --package package.json -d $(BUILD_HOSTED)/apidoc
@touch $@
$(BUILD_HOSTED_EXAMPLES_JS): $(BUILD_HOSTED)/examples/%.js: build/examples/%.js
@mkdir -p $(@D)
@python bin/split-example.py $< $(@D)
$(BUILD_HOSTED)/examples/loader.js: bin/loader_hosted_examples.js
@mkdir -p $(@D)
@cp $< $@
$(BUILD_HOSTED)/examples/%: build/examples/%
@mkdir -p $(@D)
@cp $< $@
$(BUILD_HOSTED)/build/ol.js: build/ol.js
@mkdir -p $(@D)
@cp $< $@
$(BUILD_HOSTED)/build/ol-debug.js: build/ol-debug.js
@mkdir -p $(@D)
@cp $< $@
$(BUILD_HOSTED)/css/ol.css: build/ol.css
@mkdir -p $(@D)
@cp $< $@
$(BUILD_HOSTED)/build/ol-deps.js: host-libraries
@mkdir -p $(@D)
@python $(CLOSURE_LIB)/closure/bin/build/depswriter.py \
--root_with_prefix "src ../../../ol" \
--root_with_prefix "build/ol.ext ../../../ol.ext" \
--root $(BUILD_HOSTED)/closure-library/closure/goog \
--root_with_prefix "$(BUILD_HOSTED)/closure-library/third_party ../../third_party" \
--output_file $@
build/timestamps/node-modules-timestamp: package.json
@mkdir -p $(@D)
npm install
@touch $@
build/ol.css: css/ol.css build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
@echo "Running cleancss..."
@./node_modules/.bin/cleancss $< > $@
build/ol.js: config/ol.json $(SRC_JS) $(SRC_SHADER_JS) $(SRC_SHADERLOCATIONS_JS) \
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
node tasks/build.js $< $@
@$(STAT_UNCOMPRESSED) $@
@cp $@ /tmp/
@gzip /tmp/ol.js
@$(STAT_COMPRESSED) /tmp/ol.js.gz
@rm /tmp/ol.js.gz
build/ol.js.map: config/ol.json $(SRC_JS) $(SRC_SHADER_JS) $(SRC_SHADERLOCATIONS_JS) \
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
node tasks/build.js $< $@
build/ol-debug.js: config/ol-debug.json $(SRC_JS) $(SRC_SHADER_JS) $(SRC_SHADERLOCATIONS_JS) \
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
node tasks/build.js $< $@
@$(STAT_UNCOMPRESSED) $@
@cp $@ /tmp/
@gzip /tmp/ol-debug.js
@$(STAT_COMPRESSED) /tmp/ol-debug.js.gz
@rm /tmp/ol-debug.js.gz
%shader.js: %shader.glsl src/ol/webgl/shader.mustache tasks/glslunit.js build/timestamps/node-modules-timestamp
%shader.js: %shader.glsl src/ol/webgl/shader.mustache tasks/glslunit.js
@node tasks/glslunit.js --input $< | ./node_modules/.bin/mustache - src/ol/webgl/shader.mustache > $@
%shader/locations.js: %shader.glsl src/ol/webgl/shaderlocations.mustache tasks/glslunit.js build/timestamps/node-modules-timestamp
%shader/Locations.js: %shader.glsl src/ol/webgl/shaderlocations.mustache tasks/glslunit.js
@mkdir -p $(@D)
@node tasks/glslunit.js --input $< | ./node_modules/.bin/mustache - src/ol/webgl/shaderlocations.mustache > $@
.PHONY: package
package:
@rm -rf build/package
@cp -r package build
@cd ./src && cp -r ol/* ../build/package
@rm build/package/typedefs.js
@cp css/ol.css build/package
./node_modules/.bin/jscodeshift --transform transforms/module.js build/package
npm run lint-package

View File

@@ -4,6 +4,7 @@
[![Greenkeeper badge](https://badges.greenkeeper.io/openlayers/openlayers.svg)](https://greenkeeper.io/)
[![Coverage Status](https://coveralls.io/repos/github/openlayers/openlayers/badge.svg?branch=master)](https://coveralls.io/github/openlayers/openlayers?branch=master)
[![OSGeo Project](https://img.shields.io/badge/OSGeo-Project-brightgreen.svg)](http://osgeo.org/)
[![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/openlayers/badge?style=rounded)](https://www.jsdelivr.com/package/npm/openlayers)
[OpenLayers](https://openlayers.org/) is a high-performance, feature-packed library for creating interactive maps on the web. It can display map tiles, vector data and markers loaded from any source on any web page. OpenLayers has been developed to further the use of geographic information of all kinds. It is completely free, Open Source JavaScript, released under the 2-clause BSD License (also known as the FreeBSD).
@@ -18,8 +19,6 @@ Use one of the following methods to use OpenLayers in your project:
* If you just want to add a `<script>` tag to test things out, you can link directly to one of the full builds from [cdnjs](https://cdnjs.com/libraries/openlayers) (not recommended for production)
* For use with Closure Library (rare), install the [`openlayers` package](https://npmjs.com/package/openlayers) and read the [tutorial](http://openlayers.org/en/latest/doc/tutorials/closure.html).
## 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`.

View File

@@ -1,33 +0,0 @@
//
// A PhantomJS script used to check that the hosted examples load
// without errors. This script is executed by the build tool's
// check-examples target.
//
var args = require('system').args;
if (args.length != 2) {
phantom.exit(2);
}
var examplePath = args[1];
var page = require('webpage').create();
page.onError = function(msg, trace) {
var msgStack = ['JavaScript ERROR: ' + msg];
if (trace) {
msgStack.push('TRACE:');
trace.forEach(function(t) {
msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function + '")' : ''));
});
}
console.error(msgStack.join('\n'));
phantom.exit(1);
};
page.open(examplePath, function(s) {
var exitCode = 0;
if (s != 'success') {
exitCode = 1;
console.error('PAGE LOAD ERROR');
}
phantom.exit(exitCode);
});
page.onConsoleMessage = function(msg) {
console.log('console:', msg);
};

View File

@@ -1,27 +0,0 @@
#!/usr/bin/python
import re
import sys
def main(argv):
examples = {}
requires = set()
for filename in argv[1:]:
lines = open(filename, 'rU').readlines()
if len(lines) > 0 and lines[0].startswith('// NOCOMPILE'):
continue
requires.update(line for line in lines if line.startswith('goog.require'))
examples[filename] = [line for line in lines if not line.startswith('goog.require')]
for require in sorted(requires):
sys.stdout.write(require)
for filename in sorted(examples.keys()):
sys.stdout.write('// ' + filename + '\n')
sys.stdout.write('(function(){\n')
for line in examples[filename]:
sys.stdout.write(line)
sys.stdout.write('})();\n')
if __name__ == '__main__':
sys.exit(main(sys.argv))

View File

@@ -1,180 +0,0 @@
/**
* This script is supposed to be executed via phantomjs. It will generate
* screenshots of the html files in the directory specified by a commandline
* option when these files are served through a webserver which can also be
* specified. The screenshots will be in the current working directory.
*
* Example usage:
*
* user@host:~/openlayers/bin $ phantomjs example-screenshot.js \
* http://localhost:8000/openlayers/examples/ \
* ../examples
*
* The above command will generate `*.png` files in `examples/` for all html
* files that are served through `http://localhost:8000/openlayers/examples/`.
*
* So if there is a file `my-humpty-example.html` inside of the relative folder
* `../examples/` which is being served through the webserver so that
* `http://localhost:8000/openlayers/examples/my-humpty-example.html` is a valid and
* reachable URL, this script will generate a screenshot and store it as
* `my-humpty-example.html.png`.
*
* The query string `?mode=raw` will be appended to the generated URL.
*
* Known limitations:
*
* As phantomjs doesn't support WebGL (see e.g.
* https://github.com/ariya/phantomjs/wiki/Supported-Web-Standards and
* http://code.google.com/p/phantomjs/issues/detail?id=273) This won't render
* OpenLayers maps rendered through the webglrenderer.
*
* In parts based upon this gist: https://gist.github.com/crazy4groovy/3160121
*/
(function() { // global closure
var page = require('webpage').create(), // imports
fs = require('fs'),
system = require('system'),
// arguments
baseExamplesUrl = system.args[1],
exampleDir = system.args[2],
// various settings
ignoreFiles = [
'index.html'
],
intervalMillisecs = 25,
renderMillisecs = 2000,
// basic variables
curDir = fs.workingDirectory,
exampleDirList = fs.list(exampleDir),
pageindex = 0,
fileName = '',
htmlFiles = [],
lenHtmlFiles = 0,
loadInProgress = false;
// simple object with helper functions
var util = {
/**
* Returns the basename of a file given a path.
*/
baseName: function(path) {
var parts = path.split(fs.separator);
return parts[parts.length - 1];
},
/**
* Super basic test whether a file can be considered a HTML-file.
*/
isHtmlFile: function(filename) {
return (/\.html?$/).test(filename);
},
/**
* Appends a slash to given string if it isn't there already.
*/
appendSlash: function(str) {
return ((/\/$/).test(str)) ? str : str + '/';
},
/**
* Generates an URL out of given baseurl and path.
*/
buildUrl: function(baseurl, path) {
var name = util.baseName(path),
mode = 'raw';
return util.appendSlash(baseurl) + name + '?mode=' + mode;
},
/**
* Simple progressbar logger that uses our globals pageindex & lenHtmlFiles.
*/
logProgress: function() {
var doneSymbol = '-',
todoSymbol = ' ',
currentSymbol = '>',
barStrLeft = '[',
barStrRight = ']',
progresStep = 5, // one doneSymbol equals this percentage
totalSteps = Math.round(100 / progresStep),
ratio = (lenHtmlFiles === 0) ? 0 : (pageindex / lenHtmlFiles),
percent = (ratio === 0) ? 0 : ratio * 100,
normalizedNumDone = Math.floor(ratio * totalSteps),
normalizedNumTodo = totalSteps - normalizedNumDone,
progressLine = '',
i = 0;
// the progress bar
progressLine += barStrLeft;
for (; i < normalizedNumDone; i++) {
progressLine += doneSymbol;
}
for (i = 0; i < normalizedNumTodo; i++) {
progressLine += (i === 0) ? currentSymbol : todoSymbol;
}
progressLine += barStrRight;
// the percentage information
// pad if necessary
if (percent < 10) {
progressLine += ' ';
} else if (percent < 100) {
progressLine += ' ';
}
progressLine += ' ' + percent.toFixed(1) + ' % done';
// additional information
if (fileName !== '') {
progressLine += ', ' + util.baseName(fileName) + '';
}
console.log(progressLine);
}
};
// iterate over all files in examples directory
// and find the HTML files.
for (var i = 0; i < exampleDirList.length; i++) {
var fullpath = exampleDir + fs.separator + exampleDirList[i];
if (fs.isFile(fullpath) && util.isHtmlFile(fullpath) &&
ignoreFiles.indexOf(util.baseName(fullpath)) === -1) {
//TODO: make this more async (i.e. pop on/off stack WHILE rending pages)
htmlFiles.push(fullpath);
}
}
lenHtmlFiles = htmlFiles.length;
console.log('Capturing ' + lenHtmlFiles + ' example screenshots.');
// The main interval function that is executed regularly and renders a
// page to a file
var interval = setInterval(function() {
if (!loadInProgress && pageindex < lenHtmlFiles) {
util.logProgress();
fileName = htmlFiles[pageindex];
page.viewportSize = { width: 800, height: 600 };
page.clipRect = {
top: 0,
left: 0,
width: page.viewportSize.width,
height: page.viewportSize.height
};
page.open(util.buildUrl(baseExamplesUrl, htmlFiles[pageindex]));
}
if (pageindex == lenHtmlFiles) {
util.logProgress();
console.log(lenHtmlFiles + ' screenshots captured.');
phantom.exit();
}
}, intervalMillisecs);
// set loadInProgress flag so we only process one image at time.
page.onLoadStarted = function() {
loadInProgress = true;
};
// When the page is loaded, render it to an image
page.onLoadFinished = function() {
var dest = exampleDir + fs.separator + util.baseName(fileName) + '.png';
window.setTimeout(function() {
loadInProgress = false;
page.render(dest); // actually render the page.
pageindex++;
}, renderMillisecs);
};
})(); // eof global closure

View File

@@ -1,69 +0,0 @@
/**
* This loader is used for the hosted examples. It is used in place of the
* development loader (examples/loader.js).
*
* The loader loads ol.js and the example's script in "production" mode; it
* loads Closure Library's base.js, ol-deps.js, the example's "goog.require"
* script, and the example's script in "development" mode.
*
* The ol.js and ol-deps.js scripts are built using OpenLayers's Makefile. They are
* located in the ../build/ directory, relative to this script.
*
* The script must be named loader.js.
*
* Usage:
*
* <script src="../loader.js?id=my-demo"></script>
*/
(function() {
var i, pair;
var href = window.location.href, start, end, paramsString, pairs,
pageParams = {};
if (href.indexOf('?') > 0) {
start = href.indexOf('?') + 1;
end = href.indexOf('#') > 0 ? href.indexOf('#') : href.length;
paramsString = href.substring(start, end);
pairs = paramsString.split(/[&;]/);
for (i = 0; i < pairs.length; ++i) {
pair = pairs[i].split('=');
if (pair[0]) {
pageParams[decodeURIComponent(pair[0])] =
decodeURIComponent(pair[1]);
}
}
}
var scripts = document.getElementsByTagName('script');
var src, index, search, chunks, scriptParams = {};
for (i = scripts.length - 1; i >= 0; --i) {
src = scripts[i].getAttribute('src');
if (~(index = src.indexOf('loader.js?'))) {
search = src.substr(index + 10);
chunks = search ? search.split('&') : [];
for (i = chunks.length - 1; i >= 0; --i) {
pair = chunks[i].split('=');
if (pair[0]) {
scriptParams[decodeURIComponent(pair[0])] =
decodeURIComponent(pair[1]);
}
}
break;
}
}
var raw = pageParams.mode && pageParams.mode.toLowerCase() === 'raw';
var scriptId = encodeURIComponent(scriptParams.id);
if (!raw) {
document.write('<scr' + 'ipt type="text/javascript" src="../build/ol.js"></scr' + 'ipt>');
} else {
window.CLOSURE_NO_DEPS = true; // we've got our own deps file
document.write('<scr' + 'ipt type="text/javascript" src="../closure-library/closure/goog/base.js"></scr' + 'ipt>');
document.write('<scr' + 'ipt type="text/javascript" src="../build/ol-deps.js"></scr' + 'ipt>');
document.write('<scr' + 'ipt type="text/javascript" src="' + scriptId + '-require.js"></scr' + 'ipt>');
}
document.write('<scr' + 'ipt type="text/javascript" src="' + scriptId + '.js"></scr' + 'ipt>');
}());

View File

@@ -1,39 +0,0 @@
import os
import re
import sys
def split_example_file(example, dst_dir):
lines = open(example, 'rU').readlines()
target_lines = []
target_require_lines = []
found_requires = False
found_code = False
for line in lines:
m = re.match(r'goog.require\(\'(.*)\'\);', line)
if m:
found_requires = True
target_require_lines.append(line)
elif found_requires:
if found_code or line not in ('\n', '\r\n'):
found_code = True
target_lines.append(line)
target = open(
os.path.join(dst_dir, os.path.basename(example)), 'wb')
target_require = open(
os.path.join(dst_dir, os.path.basename(example)
.replace('.js', '-require.js')),
'wb')
target.writelines(target_lines)
target.close()
target_require.writelines(target_require_lines)
target_require.close()
if __name__ == '__main__':
split_example_file(*sys.argv[1:])

View File

@@ -1,6 +1,196 @@
## Upgrade notes
### Next release
### v5.0.0
#### Renamed `ol/source/TileUTFGrid` to `ol/source/UTFGrid`
The module name is now `ol/source/UTFGrid` (`ol.source.UTFGrid` in the full build).
#### Renaming of the `defaultDataProjection` in the options and property of the `ol/format/Feature` class and its subclasses
The `defaultDataProjection` option is now named `dataProjection`. The protected property available on the class is also renamed.
#### `transition` option of `ol/source/VectorTile` is ignored
The `transition` option to get an opacity transition to fade in tiles has been disabled for `ol/source/VectorTile`. Vector tiles are now always rendered without an opacity transition.
#### `ol/style/Fill` with `CanvasGradient` or `CanvasPattern`
The origin for gradients and patterns has changed from the top-left corner of the extent of the geometry being filled to 512 css pixel increments from map coordinate `[0, 0]`. This allows repeat patterns to be aligned properly with vector tiles. For seamless repeat patterns, width and height of the pattern image must be a factor of two (2, 4, 8, ..., 512).
#### Removal of the renderer option for maps
The `renderer` option has been removed from the `Map` constructor. The purpose of this change is to avoid bundling code in your application that you do not need. Previously, code for both the Canvas and WebGL renderers was included in all applications - even though most people only use one renderer. The `Map` constructor now gives you a Canvas (2D) based renderer. If you want to try the WebGL renderer, you can import the constructor from `ol/WebGLMap`.
Old code:
```js
import Map from 'ol/Map';
const canvasMap = new Map({
renderer: ['canvas']
// other options...
});
const webglMap = new Map({
renderer: ['webgl']
// other options...
});
```
New code:
```js
import Map from 'ol/Map';
import WebGLMap from 'ol/WebGLMap';
const canvasMap = new Map({
// options...
});
const webglMap = new WebGLMap({
// options...
});
```
#### Removal of ol.FeatureStyleFunction
The signature of the vector style function passed to the feature has changed. The function now always takes the `feature` and the `resolution` as arguments, the `feature` is no longer bound to `this`.
Old code:
```js
feature.setStyle(function(resolution) {
var text = this.get('name');
...
});
```
New code:
```js
feature.setStyle(function(feature, resolution) {
var text = feature.get('name');
...
});
```
#### Changed behavior of the `Draw` interaction
For better drawing experience, two changes were made to the behavior of the Draw interaction:
1. On long press, the current vertex can be dragged to its desired position.
2. On touch move (e.g. when panning the map on a mobile device), no draw cursor is shown, and the geometry being drawn is not updated. But because of 1., the draw cursor will appear on long press. Mouse moves are not affected by this change.
#### Changes in proj4 integration
Because relying on a globally available proj4 is not practical with ES modules, we have made a change to the way we integrate proj4:
* The `setProj4()` function from the `ol/proj` module was removed.
* A new `ol/proj/proj4` module with a `register()` function was added. Regardless of whether the application imports `proj4` or uses a global `proj4`, this function needs to be called with the proj4 instance as argument whenever projection definitions were added to proj4's registry with (`proj4.defs`).
It is also recommended to no longer use a global `proj4`. Instead,
npm install proj4
and import it:
```js
import proj4 from 'proj4';
```
Applications can be updated by importing the `register` function from the `ol/proj/proj4` module
```js
import {register} from 'ol/proj/proj4'
```
and calling it before using projections, and any time the proj4 registry was changed by `proj4.defs()` calls:
```js
register(proj4);
```
#### Removal of logos
The map and sources no longer accept a `logo` option. Instead, if you wish to append a logo to your map, add the desired markup directly in your HTML. In addition, you can use the `attributions` property of a source to display arbitrary markup per-source with the attribution control.
#### Replacement of `ol/Sphere` constructor with `ol/sphere` functions
The `ol/Sphere` constructor has been removed. If you were using the `getGeodesicArea` method, use the `getArea` function instead. If you were using the `haversineDistance` method, use the `getDistance` function instead.
Examples before:
```js
// using ol@4
import Sphere from 'ol/sphere';
var sphere = new Sphere(Sphere.DEFAULT_RADIUS);
var area = sphere.getGeodesicArea(polygon);
var distance = sphere.haversineDistance(g1, g2);
```
Examples after:
```js
// using ol@5
import {circular as circularPolygon} from 'ol/geom/Polygon';
import {getArea, getDistance} from 'ol/sphere';
var area = getArea(polygon);
var distance = getDistance(g1, g2);
var circle = circularPolygon(center, radius);
```
#### New signature for the `circular` function for creating polygons
The `circular` function exported from `ol/geom/Polygon` no longer requires a `Sphere` as the first argument.
Example before:
```js
// using ol@4
import Polygon from 'ol/geom/polygon';
import Sphere from 'ol/sphere';
var poly = Polygon.circular(new Sphere(Sphere.DEFAULT_RADIUS), center, radius);
```
Example after:
```js
// using ol@5
import {circular as circularPolygon} from 'ol/geom/Polygon';
var poly = circularPolygon(center, radius);
```
#### Removal of optional this arguments.
The optional this (i.e. opt_this) arguments were removed from the following methods. Please use closures, the es6 arrow function or the bind method to achieve this effect (Bind is explained here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).
* Collection#forEach
* geom/LineString#forEachSegment
* Observable#on, #once, #un
* Map#forEachLayerAtPixel
* source/TileUTFGrid#forDataAtCoordinateAndResolution
* source/Vector#forEachFeature, #forEachFeatureInExtent, #forEachFeatureIntersectingExtent
#### `Map#forEachLayerAtPixel` parameters have changed
If you are using the layer filter, please note that you now have to pass in the layer filter via an `AtPixelOptions` object. If you are not using the layer filter the usage has not changed.
Old syntax:
```
map.forEachLayerAtPixel(pixel, callback, callbackThis, layerFilterFn, layerFilterThis);
```
New syntax:
```
map.forEachLayerAtPixel(pixel, callback, {
layerFilter: layerFilterFn
});
```
To bind a function to a this, please use the bind method of the function (See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).
This change is due to the introduction of the `hitTolerance` parameter which can be passed in via this `AtPixelOptions` object, too.
### v4.6.0
#### Renamed `exceedLength` option of `ol.style.Text` to `overflow`

91
changelog/v4.6.0.md Normal file
View File

@@ -0,0 +1,91 @@
# v4.6.0
### Summary
The 4.6 release includes enhancements and fixes from 30 or so pull requests. Headlining this release, vector layers got new `textBackgroundFill`, `textBackgroundStroke` and `padding` options that can be used to render background boxes for text. `ol.source.ImageVector` is now deprecated and replaced by a more convenient way to render vectors as images: by simply setting `renderMode: 'image'` on the vector layer.
Please note that if you are using `closure-util` to build your OpenLayers based application, it is time to migrate to using the [`ol` package](https://www.npmjs.com/package/ol) and a module bundler like webpack. OpenLayers has not had a dependency on the Closure Library since the [3.19 release](https://github.com/openlayers/openlayers/releases/tag/v3.19.0); and with the 5.0 release we will be moving completely away from `goog.require` and `goog.provide`, dropping support for `closure-util`, and going with ES modules for our sources.
See the [wiki](https://github.com/openlayers/openlayers/wiki/OpenLayers-v5.x) about upcoming changes in 5.0 and tips on how to upgrade. We likely won't have another 4.x release before the 5.0 release. If you're interested in continuing to get feature enhancements in future releases, migrating to the `ol` package now will make the transition easier.
### Upgrade notes
#### Renamed `exceedLength` option of `ol.style.Text` to `overflow`
To update your applications, simply replace `exceedLength` with `overflow`.
#### Deprecation of `ol.source.ImageVector`
Rendering vector sources as image is now directly supported by `ol.layer.Vector` with the new `renderMode: 'image'` configuration option. Change code like this:
```js
new ol.layer.Image({
source: new ol.source.ImageVector({
style: myStyle,
source: new ol.source.Vector({
url: 'my/data.json',
format: new ol.format.GeoJSON()
})
})
});
```
to:
```js
new ol.layer.Vector({
renderMode: 'image',
style: myStyle,
source: new ol.source.Vector({
url: 'my/data.json',
format: new ol.format.GeoJSON()
})
});
```
## Detailed changes
See below for the full list of changes.
* [#7538](https://github.com/openlayers/openlayers/pull/7538) - removeFromLoadedExtents to remove extents that failed to load ([@ahocevar](https://github.com/ahocevar))
* [#7537](https://github.com/openlayers/openlayers/pull/7537) - Fix Draw.removeLastPoint exception when no points to remove ([@walkermatt](https://github.com/walkermatt))
* [#7461](https://github.com/openlayers/openlayers/pull/7461) - Use the matrixSet projection by default ([@oterral](https://github.com/oterral))
* [#5883](https://github.com/openlayers/openlayers/pull/5883) - Fixes setUrl() for WMTS sources (ol.source.WMTS) ([@bylexus](https://github.com/bylexus))
* [#7531](https://github.com/openlayers/openlayers/pull/7531) - Update the ol package readme ([@ahocevar](https://github.com/ahocevar))
* [#7372](https://github.com/openlayers/openlayers/pull/7372) - Add method to set max cache size in ol.style.IconImageCache ([@notnotse](https://github.com/notnotse))
* [#7530](https://github.com/openlayers/openlayers/pull/7530) - Check forward/back 1 world if wrapping ([@raiyni](https://github.com/raiyni))
* [#7526](https://github.com/openlayers/openlayers/pull/7526) - Allow clicks to be stopped while drawing ([@tschaub](https://github.com/tschaub))
* [#7524](https://github.com/openlayers/openlayers/pull/7524) - Snap view center to pixel ([@ahocevar](https://github.com/ahocevar))
* [#7521](https://github.com/openlayers/openlayers/pull/7521) - fix setMinZoom/setMaxZoom ([@cs09g](https://github.com/cs09g))
* [#7519](https://github.com/openlayers/openlayers/pull/7519) - Reuse declutter tree for hit detection ([@ahocevar](https://github.com/ahocevar))
* [#7499](https://github.com/openlayers/openlayers/pull/7499) - Remove attributions from olx.FrameState instances ([@openlayers](https://github.com/openlayers))
* [#7501](https://github.com/openlayers/openlayers/pull/7501) - Option to render vector layers as images ([@ahocevar](https://github.com/ahocevar))
* [#7516](https://github.com/openlayers/openlayers/pull/7516) - Deprecate exceedLength and replace with overflow ([@ahocevar](https://github.com/ahocevar))
* [#7510](https://github.com/openlayers/openlayers/pull/7510) - Do not fade the states layer ([@ahocevar](https://github.com/ahocevar))
* [#7513](https://github.com/openlayers/openlayers/pull/7513) - Make strokeKey safer ([@ahocevar](https://github.com/ahocevar))
* [#7514](https://github.com/openlayers/openlayers/pull/7514) - Prune the label cache less aggressively ([@ahocevar](https://github.com/ahocevar))
* [#7505](https://github.com/openlayers/openlayers/pull/7505) - Remove ol.DeviceOrientation link from API index ([@fredj](https://github.com/fredj))
* [#7497](https://github.com/openlayers/openlayers/pull/7497) - Use getGeometry ([@nicholas-l](https://github.com/nicholas-l))
* [#7495](https://github.com/openlayers/openlayers/pull/7495) - Remove layer renderers when viewport is removed ([@ahocevar](https://github.com/ahocevar))
* [#7492](https://github.com/openlayers/openlayers/pull/7492) - Remove unneeded type cast from examples ([@fredj](https://github.com/fredj))
* [#7489](https://github.com/openlayers/openlayers/pull/7489) - Allow string to be passed as ol.interaction.Draw type ([@fredj](https://github.com/fredj))
* [#7445](https://github.com/openlayers/openlayers/pull/7445) - Load css rules from full-screen.css in examples ([@fredj](https://github.com/fredj))
* [#7481](https://github.com/openlayers/openlayers/pull/7481) - Make zoom to extent control extensible ([@gberaudo](https://github.com/gberaudo))
* [#7477](https://github.com/openlayers/openlayers/pull/7477) - Make text states available for replay time ([@ahocevar](https://github.com/ahocevar))
* [#7482](https://github.com/openlayers/openlayers/pull/7482) - Reset rotation after rendering ([@ahocevar](https://github.com/ahocevar))
* [#7480](https://github.com/openlayers/openlayers/pull/7480) - Create a new image when loading tile after an error ([@ahocevar](https://github.com/ahocevar))
* [#7476](https://github.com/openlayers/openlayers/pull/7476) - Reset text measurements when available fonts change ([@ahocevar](https://github.com/ahocevar))
* [#7454](https://github.com/openlayers/openlayers/pull/7454) - Add text background rendering and text padding ([@ahocevar](https://github.com/ahocevar))
* [#7468](https://github.com/openlayers/openlayers/pull/7468) - Add new API-key for HERE example ([@chrismayer](https://github.com/chrismayer))
* [#7465](https://github.com/openlayers/openlayers/pull/7465) - Export ol.proj.Projection#getAxisOrientation function ([@fredj](https://github.com/fredj))
* [#7462](https://github.com/openlayers/openlayers/pull/7462) - Respect metersPerUnit in ScaleLine control ([@ahocevar](https://github.com/ahocevar))
Additionally a number of updates where made to our dependencies:
* [#7536](https://github.com/openlayers/openlayers/pull/7536) - Update fs-extra to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7533](https://github.com/openlayers/openlayers/pull/7533) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7527](https://github.com/openlayers/openlayers/pull/7527) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7511](https://github.com/openlayers/openlayers/pull/7511) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7512](https://github.com/openlayers/openlayers/pull/7512) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7484](https://github.com/openlayers/openlayers/pull/7484) - Update closure-util to the latest version 🚀 ([@openlayers](https://github.com/openlayers))

9
changelog/v4.6.1.md Normal file
View File

@@ -0,0 +1,9 @@
# 4.6.1
The v4.6.1 release fixes a number of issues in the 4.6 releases.
## Fixes
* [#7543](https://github.com/openlayers/openlayers/pull/7543) - Donut polygon labels do not get a chance to get rendered ([@ahocevar](https://github.com/ahocevar))
* [#7542](https://github.com/openlayers/openlayers/pull/7542) - Still respect deprecated exceedLength option ([@ahocevar](https://github.com/ahocevar))
* [#7541](https://github.com/openlayers/openlayers/pull/7541) - Fix case of vectorrendertype.js ([@ahocevar](https://github.com/ahocevar))

7
changelog/v4.6.2.md Normal file
View File

@@ -0,0 +1,7 @@
# 4.6.2
The v4.6.2 release fixes a regression that could cause tremendous amounts of unneeded vector data to be fetched from the source.
## Fixes
* [#7546](https://github.com/openlayers/openlayers/pull/7546) - Do not request features for wrapped extent ([@ahocevar](https://github.com/ahocevar))

7
changelog/v4.6.3.md Normal file
View File

@@ -0,0 +1,7 @@
# 4.6.3
The v4.6.3 release fixes a performance issue when `renderMode: 'image'` is set on an `ol.layer.Vector`.
## Fixes
* [#7554](https://github.com/openlayers/openlayers/pull/7554) - Only compose image vector frame when the replay group has changed ([@ahocevar](https://github.com/ahocevar))

7
changelog/v4.6.4.md Normal file
View File

@@ -0,0 +1,7 @@
# 4.6.4
The v4.6.4 release fixes a feature selection issue when `renderMode: 'image'` is set on an `ol.layer.Vector`.
## Fixes
* [#7559](https://github.com/openlayers/openlayers/pull/7559) - Handle skipping and unskipping features with renderMode: 'image' ([@ahocevar](https://github.com/ahocevar))

7
changelog/v4.6.5.md Normal file
View File

@@ -0,0 +1,7 @@
# 4.6.5
The v4.6.5 release fixes a hit detection issue when `declutter: true` is set on an `ol.layer.VectorTile`.
## Fixes
* [#7669](https://github.com/openlayers/openlayers/pull/7559) - Use declutter tree only for text and image replays ([@ahocevar](https://github.com/ahocevar))

667
changelog/v5.0.0.md Normal file
View File

@@ -0,0 +1,667 @@
# v5.0.0
The main theme of the v5.0.0 release is an improved developer/user experience with OpenLayers. Toward this end, we have reworked the library as a set of ES Modules, completely removing any dependency on the Closure Compiler, and improving compatibility with mainstream module bundlers.
See the [hosted examples](https://openlayers.org/en/latest/examples/), [API docs](https://openlayers.org/en/latest/apidoc/), and [bundle tutorial](https://openlayers.org/en/latest/doc/tutorials/bundle.html) for the new syntax, but basic usage looks like this:
```js
import 'ol/ol.css';
import {Map, View} from 'ol';
import TileLayer from 'ol/layer/Tile';
import OSM from 'ol/source/OSM';
const map = new Map({
target: 'map',
layers: [
new TileLayer({
source: new OSM()
})
],
view: new View({
center: [0, 0],
zoom: 0
})
});
```
See below for specific notes on upgrading from 4.x releases. We'll be working on updating the website with improved documentation and examples. Take a look at the issue tracker if you're interested in contributing.
### Upgrade Notes
#### Renamed `ol/source/TileUTFGrid` to `ol/source/UTFGrid`
The module name is now `ol/source/UTFGrid` (`ol.source.UTFGrid` in the full build).
#### Renaming of the `defaultDataProjection` in the options and property of the `ol/format/Feature` class and its subclasses
The `defaultDataProjection` option is now named `dataProjection`. The protected property available on the class is also renamed.
#### `transition` option of `ol/source/VectorTile` is ignored
The `transition` option to get an opacity transition to fade in tiles has been disabled for `ol/source/VectorTile`. Vector tiles are now always rendered without an opacity transition.
#### `ol/style/Fill` with `CanvasGradient` or `CanvasPattern`
The origin for gradients and patterns has changed from the top-left corner of the extent of the geometry being filled to 512 css pixel increments from map coordinate `[0, 0]`. This allows repeat patterns to be aligned properly with vector tiles. For seamless repeat patterns, width and height of the pattern image must be a factor of two (2, 4, 8, ..., 512).
#### Removal of the renderer option for maps
The `renderer` option has been removed from the `Map` constructor. The purpose of this change is to avoid bundling code in your application that you do not need. Previously, code for both the Canvas and WebGL renderers was included in all applications - even though most people only use one renderer. The `Map` constructor now gives you a Canvas (2D) based renderer. If you want to try the WebGL renderer, you can import the constructor from `ol/WebGLMap`.
Old code:
```js
import Map from 'ol/Map';
const canvasMap = new Map({
renderer: ['canvas']
// other options...
});
const webglMap = new Map({
renderer: ['webgl']
// other options...
});
```
New code:
```js
import Map from 'ol/Map';
import WebGLMap from 'ol/WebGLMap';
const canvasMap = new Map({
// options...
});
const webglMap = new WebGLMap({
// options...
});
```
#### Removal of ol.FeatureStyleFunction
The signature of the vector style function passed to the feature has changed. The function now always takes the `feature` and the `resolution` as arguments, the `feature` is no longer bound to `this`.
Old code:
```js
feature.setStyle(function(resolution) {
var text = this.get('name');
...
});
```
New code:
```js
feature.setStyle(function(feature, resolution) {
var text = feature.get('name');
...
});
```
#### Changed behavior of the `Draw` interaction
For better drawing experience, two changes were made to the behavior of the Draw interaction:
1. On long press, the current vertex can be dragged to its desired position.
2. On touch move (e.g. when panning the map on a mobile device), no draw cursor is shown, and the geometry being drawn is not updated. But because of 1., the draw cursor will appear on long press. Mouse moves are not affected by this change.
#### Changes in proj4 integration
Because relying on a globally available proj4 is not practical with ES modules, we have made a change to the way we integrate proj4:
* The `setProj4()` function from the `ol/proj` module was removed.
* A new `ol/proj/proj4` module with a `register()` function was added. Regardless of whether the application imports `proj4` or uses a global `proj4`, this function needs to be called with the proj4 instance as argument whenever projection definitions were added to proj4's registry with (`proj4.defs`).
It is also recommended to no longer use a global `proj4`. Instead,
npm install proj4
and import it:
```js
import proj4 from 'proj4';
```
Applications can be updated by importing the `register` function from the `ol/proj/proj4` module
```js
import {register} from 'ol/proj/proj4'
```
and calling it before using projections, and any time the proj4 registry was changed by `proj4.defs()` calls:
```js
register(proj4);
```
#### Removal of logos
The map and sources no longer accept a `logo` option. Instead, if you wish to append a logo to your map, add the desired markup directly in your HTML. In addition, you can use the `attributions` property of a source to display arbitrary markup per-source with the attribution control.
#### Replacement of `ol/Sphere` constructor with `ol/sphere` functions
The `ol/Sphere` constructor has been removed. If you were using the `getGeodesicArea` method, use the `getArea` function instead. If you were using the `haversineDistance` method, use the `getDistance` function instead.
Examples before:
```js
// using ol@4
import Sphere from 'ol/sphere';
var sphere = new Sphere(Sphere.DEFAULT_RADIUS);
var area = sphere.getGeodesicArea(polygon);
var distance = sphere.haversineDistance(g1, g2);
```
Examples after:
```js
// using ol@5
import {circular as circularPolygon} from 'ol/geom/Polygon';
import {getArea, getDistance} from 'ol/sphere';
var area = getArea(polygon);
var distance = getDistance(g1, g2);
var circle = circularPolygon(center, radius);
```
#### New signature for the `circular` function for creating polygons
The `circular` function exported from `ol/geom/Polygon` no longer requires a `Sphere` as the first argument.
Example before:
```js
// using ol@4
import Polygon from 'ol/geom/polygon';
import Sphere from 'ol/sphere';
var poly = Polygon.circular(new Sphere(Sphere.DEFAULT_RADIUS), center, radius);
```
Example after:
```js
// using ol@5
import {circular as circularPolygon} from 'ol/geom/Polygon';
var poly = circularPolygon(center, radius);
```
#### Removal of optional this arguments.
The optional this (i.e. opt_this) arguments were removed from the following methods. Please use closures, the es6 arrow function or the bind method to achieve this effect (Bind is explained here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).
* Collection#forEach
* geom/LineString#forEachSegment
* Observable#on, #once, #un
* Map#forEachLayerAtPixel
* source/TileUTFGrid#forDataAtCoordinateAndResolution
* source/Vector#forEachFeature, #forEachFeatureInExtent, #forEachFeatureIntersectingExtent
#### `Map#forEachLayerAtPixel` parameters have changed
If you are using the layer filter, please note that you now have to pass in the layer filter via an `AtPixelOptions` object. If you are not using the layer filter the usage has not changed.
Old syntax:
```
map.forEachLayerAtPixel(pixel, callback, callbackThis, layerFilterFn, layerFilterThis);
```
New syntax:
```
map.forEachLayerAtPixel(pixel, callback, {
layerFilter: layerFilterFn
});
```
To bind a function to a this, please use the bind method of the function (See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).
This change is due to the introduction of the `hitTolerance` parameter which can be passed in via this `AtPixelOptions` object, too.
### New Features and Fixes
* [#8314](https://github.com/openlayers/openlayers/pull/8314) - Accept hitTolerance in map.forEachLayerAtPixel() ([@simonseyock](https://github.com/simonseyock))
* [#7750](https://github.com/openlayers/openlayers/pull/7750) - Don't assume fill for canvas polygon hit detection. ([@schmidtk](https://github.com/schmidtk))
* [#8305](https://github.com/openlayers/openlayers/pull/8305) - Update quickstart and tutorials for v5 ([@ahocevar](https://github.com/ahocevar))
* [#8301](https://github.com/openlayers/openlayers/pull/8301) - Do not render vectors in image mode ([@ahocevar](https://github.com/ahocevar))
* [#8302](https://github.com/openlayers/openlayers/pull/8302) - Ignore node_modules everywhere ([@ahocevar](https://github.com/ahocevar))
* [#8299](https://github.com/openlayers/openlayers/pull/8299) - Make classes in ol/ available as named exports from ol ([@ahocevar](https://github.com/ahocevar))
* [#8298](https://github.com/openlayers/openlayers/pull/8298) - Add README for ol package ([@ahocevar](https://github.com/ahocevar))
* [#8295](https://github.com/openlayers/openlayers/pull/8295) - Prepare for building/publishing v5 ([@ahocevar](https://github.com/ahocevar))
* [#8296](https://github.com/openlayers/openlayers/pull/8296) - Fix style documentation ([@fredj](https://github.com/fredj))
* [#8294](https://github.com/openlayers/openlayers/pull/8294) - Remove non-functional type checks from testing ([@ahocevar](https://github.com/ahocevar))
* [#8292](https://github.com/openlayers/openlayers/pull/8292) - Remove now unneeded single quotes in examples ([@fredj](https://github.com/fredj))
* [#8291](https://github.com/openlayers/openlayers/pull/8291) - Graticule code cleanup ([@fredj](https://github.com/fredj))
* [#8287](https://github.com/openlayers/openlayers/pull/8287) - Rename ol/source/TileUTFGrid to ol/source/UTFGrid ([@fredj](https://github.com/fredj))
* [#8286](https://github.com/openlayers/openlayers/pull/8286) - Fix class name property in Overlay documentation ([@fredj](https://github.com/fredj))
* [#8281](https://github.com/openlayers/openlayers/pull/8281) - Rename default data projection ([@gberaudo](https://github.com/gberaudo))
* [#8283](https://github.com/openlayers/openlayers/pull/8283) - Remove references to tutorials/custom-builds.html ([@fredj](https://github.com/fredj))
* [#8280](https://github.com/openlayers/openlayers/pull/8280) - Add missing property in VectorTile options, remove params from createRenderer ([@fredj](https://github.com/fredj))
* [#8277](https://github.com/openlayers/openlayers/pull/8277) - Fix code block in comment ([@ahocevar](https://github.com/ahocevar))
* [#8273](https://github.com/openlayers/openlayers/pull/8273) - Remove the externs/ directory ([@ahocevar](https://github.com/ahocevar))
* [#8246](https://github.com/openlayers/openlayers/pull/8246) - Don't go back to not moving when dragging ([@ahocevar](https://github.com/ahocevar))
* [#8258](https://github.com/openlayers/openlayers/pull/8258) - Use Webpack 4 for tests (and examples) ([@ahocevar](https://github.com/ahocevar))
* [#8250](https://github.com/openlayers/openlayers/pull/8250) - Fix various jsdoc types ([@fredj](https://github.com/fredj))
* [#8245](https://github.com/openlayers/openlayers/pull/8245) - Fix vector tile docs and types ([@ahocevar](https://github.com/ahocevar))
* [#8233](https://github.com/openlayers/openlayers/pull/8233) - Use rollup instead of webpack for the full build ([@ahocevar](https://github.com/ahocevar))
* [#8231](https://github.com/openlayers/openlayers/pull/8231) - Fix JSTS usage with OL classes injected ([@bjornharrtell](https://github.com/bjornharrtell))
* [#8229](https://github.com/openlayers/openlayers/pull/8229) - Support layers instead of renderers for ol/source/Raster ([@ahocevar](https://github.com/ahocevar))
* [#8227](https://github.com/openlayers/openlayers/pull/8227) - Better vectortile experience ([@ahocevar](https://github.com/ahocevar))
* [#8225](https://github.com/openlayers/openlayers/pull/8225) - renderMode: 'image' fixes for ol/layer/Vector ([@ahocevar](https://github.com/ahocevar))
* [#8226](https://github.com/openlayers/openlayers/pull/8226) - Accept renderers as sources for the Raster source ([@ahocevar](https://github.com/ahocevar))
* [#8210](https://github.com/openlayers/openlayers/pull/8210) - Align patterns and gradients to a grid ([@ahocevar](https://github.com/ahocevar))
* [#8201](https://github.com/openlayers/openlayers/pull/8201) - Remove babelrc, transform using babel-core ([@ahocevar](https://github.com/ahocevar))
* [#8203](https://github.com/openlayers/openlayers/pull/8203) - Type checking complete ([@ahocevar](https://github.com/ahocevar))
* [#8204](https://github.com/openlayers/openlayers/pull/8204) - Document ol/control~defaults in the right place ([@ahocevar](https://github.com/ahocevar))
* [#8200](https://github.com/openlayers/openlayers/pull/8200) - Set textAlign to the canvas context ([@fredj](https://github.com/fredj))
* [#8194](https://github.com/openlayers/openlayers/pull/8194) - miscellaneous code cleanup ([@fredj](https://github.com/fredj))
* [#8189](https://github.com/openlayers/openlayers/pull/8189) - More apidoc fixes ([@ahocevar](https://github.com/ahocevar))
* [#8191](https://github.com/openlayers/openlayers/pull/8191) - Do not scale text outline width ([@ahocevar](https://github.com/ahocevar))
* [#8187](https://github.com/openlayers/openlayers/pull/8187) - Hide attribution control if there are no attributions ([@tschaub](https://github.com/tschaub))
* [#8186](https://github.com/openlayers/openlayers/pull/8186) - Updates to get the examples building ([@tschaub](https://github.com/tschaub))
* [#8180](https://github.com/openlayers/openlayers/pull/8180) - Fix some JSDoc issues ([@ahocevar](https://github.com/ahocevar))
* [#8175](https://github.com/openlayers/openlayers/pull/8175) - More typing fixes ([@fredj](https://github.com/fredj))
* [#8177](https://github.com/openlayers/openlayers/pull/8177) - Remove documentation related to the closure compiler ([@gberaudo](https://github.com/gberaudo))
* [#8174](https://github.com/openlayers/openlayers/pull/8174) - Fix typo in ol/style/Image~Options typedef ([@fredj](https://github.com/fredj))
* [#8172](https://github.com/openlayers/openlayers/pull/8172) - Ignore 'this' type in function typedef ([@fredj](https://github.com/fredj))
* [#8173](https://github.com/openlayers/openlayers/pull/8173) - Fix typing in ol/xml module ([@fredj](https://github.com/fredj))
* [#8169](https://github.com/openlayers/openlayers/pull/8169) - Shorter module paths for default exports ([@fredj](https://github.com/fredj))
* [#8171](https://github.com/openlayers/openlayers/pull/8171) - Remove wrong override tags ([@fredj](https://github.com/fredj))
* [#8170](https://github.com/openlayers/openlayers/pull/8170) - Basic apidocs ([@ahocevar](https://github.com/ahocevar))
* [#8167](https://github.com/openlayers/openlayers/pull/8167) - Remove externs/oli.js ([@tschaub](https://github.com/tschaub))
* [#8166](https://github.com/openlayers/openlayers/pull/8166) - Updated type annotations ([@tschaub](https://github.com/tschaub))
* [#8165](https://github.com/openlayers/openlayers/pull/8165) - Update linter config ([@tschaub](https://github.com/tschaub))
* [#8163](https://github.com/openlayers/openlayers/pull/8163) - Fix type syntax ([@ahocevar](https://github.com/ahocevar))
* [#8161](https://github.com/openlayers/openlayers/pull/8161) - Fix skipping of texts with background ([@ahocevar](https://github.com/ahocevar))
* [#8156](https://github.com/openlayers/openlayers/pull/8156) - fix assert 36 on error documentation #8147 ([@mainakae](https://github.com/mainakae))
* [#8143](https://github.com/openlayers/openlayers/pull/8143) - Shorter module paths for default exports ([@openlayers](https://github.com/openlayers))
* [#8137](https://github.com/openlayers/openlayers/pull/8137) - Avoid `this` at top level of modules ([@tschaub](https://github.com/tschaub))
* [#8138](https://github.com/openlayers/openlayers/pull/8138) - Update tasks to use native async/await ([@tschaub](https://github.com/tschaub))
* [#8139](https://github.com/openlayers/openlayers/pull/8139) - Add @module annotation for ol/control/util ([@tschaub](https://github.com/tschaub))
* [#8135](https://github.com/openlayers/openlayers/pull/8135) - Break the circular dependency: overview map, map, controls, overview map ([@tschaub](https://github.com/tschaub))
* [#8132](https://github.com/openlayers/openlayers/pull/8132) - Add minZoom to the createResolutionConstraint function return type ([@fredj](https://github.com/fredj))
* [#8129](https://github.com/openlayers/openlayers/pull/8129) - Fix some types ([@ahocevar](https://github.com/ahocevar))
* [#8127](https://github.com/openlayers/openlayers/pull/8127) - Move RasterOperationType into ol/source/Raster ([@fredj](https://github.com/fredj))
* [#8123](https://github.com/openlayers/openlayers/pull/8123) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#8125](https://github.com/openlayers/openlayers/pull/8125) - Shorter module paths for default exports ([@ahocevar](https://github.com/ahocevar))
* [#8122](https://github.com/openlayers/openlayers/pull/8122) - Remove unused 'format' options from Cluster source constructor ([@fredj](https://github.com/fredj))
* [#8121](https://github.com/openlayers/openlayers/pull/8121) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#8117](https://github.com/openlayers/openlayers/pull/8117) - Re-export style constructors from ol/style ([@tschaub](https://github.com/tschaub))
* [#8115](https://github.com/openlayers/openlayers/pull/8115) - Re-export layer constructors from ol/layer ([@tschaub](https://github.com/tschaub))
* [#8114](https://github.com/openlayers/openlayers/pull/8114) - Re-export interaction constructors from ol/interaction ([@tschaub](https://github.com/tschaub))
* [#8116](https://github.com/openlayers/openlayers/pull/8116) - Re-export source constructors from ol/source ([@tschaub](https://github.com/tschaub))
* [#8113](https://github.com/openlayers/openlayers/pull/8113) - Re-export geometry constructors from ol/geom ([@tschaub](https://github.com/tschaub))
* [#8112](https://github.com/openlayers/openlayers/pull/8112) - Re-export format constructors from ol/format ([@tschaub](https://github.com/tschaub))
* [#8111](https://github.com/openlayers/openlayers/pull/8111) - Re-export control constructors ([@tschaub](https://github.com/tschaub))
* [#8118](https://github.com/openlayers/openlayers/pull/8118) - Use list for cloak entries ([@tschaub](https://github.com/tschaub))
* [#8109](https://github.com/openlayers/openlayers/pull/8109) - Make any falsey undefinedHTML retain the mouse position ([@tschaub](https://github.com/tschaub))
* [#8103](https://github.com/openlayers/openlayers/pull/8103) - Fix some jsdoc path types ([@ahocevar](https://github.com/ahocevar))
* [#7784](https://github.com/openlayers/openlayers/pull/7784) - Adds option to retain MousePosition when pointer leaves viewport ([@pedros007](https://github.com/pedros007))
* [#8101](https://github.com/openlayers/openlayers/pull/8101) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#7908](https://github.com/openlayers/openlayers/pull/7908) - ScaleLine fix for non-degree based units ([@hyperknot](https://github.com/hyperknot))
* [#8099](https://github.com/openlayers/openlayers/pull/8099) - More Jsdoc module fixes ([@openlayers](https://github.com/openlayers))
* [#8098](https://github.com/openlayers/openlayers/pull/8098) - Remove externs/olx.js and src/ol/typedefs.js ([@tschaub](https://github.com/tschaub))
* [#8096](https://github.com/openlayers/openlayers/pull/8096) - Fix rotation default ([@ahocevar](https://github.com/ahocevar))
* [#8081](https://github.com/openlayers/openlayers/pull/8081) - Move olx.render.* and related typedefs to ol/render/* ([@pfirpfel](https://github.com/pfirpfel))
* [#8087](https://github.com/openlayers/openlayers/pull/8087) - Move various typedefs out of typdefs.js ([@pfirpfel](https://github.com/pfirpfel))
* [#8052](https://github.com/openlayers/openlayers/pull/8052) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#8048](https://github.com/openlayers/openlayers/pull/8048) - Remove all comments from shaders ([@fredj](https://github.com/fredj))
* [#8089](https://github.com/openlayers/openlayers/pull/8089) - Allow unprefixed WMTS tileMatrix identifiers ([@fredj](https://github.com/fredj))
* [#8088](https://github.com/openlayers/openlayers/pull/8088) - Correct type for TextPlacement (jsdoc) ([@camptocamp](https://github.com/camptocamp))
* [#8083](https://github.com/openlayers/openlayers/pull/8083) - Move structs typedefs to ol/structs/* ([@pfirpfel](https://github.com/pfirpfel))
* [#8077](https://github.com/openlayers/openlayers/pull/8077) - Add hasFeature method to ol.source.Vector ([@icholy](https://github.com/icholy))
* [#8080](https://github.com/openlayers/openlayers/pull/8080) - #8079 Mark functions setRotateWithView and setSnapToPixel of ol/style/Image with @api ([@iagafonov](https://github.com/iagafonov))
* [#8084](https://github.com/openlayers/openlayers/pull/8084) - Move ol.Reproj* typedefs to ol/reproj ([@pfirpfel](https://github.com/pfirpfel))
* [#8082](https://github.com/openlayers/openlayers/pull/8082) - Remove unused typedefs ([@pfirpfel](https://github.com/pfirpfel))
* [#8076](https://github.com/openlayers/openlayers/pull/8076) - Move olx.style.* and ol.Style* to ol/style/* ([@pfirpfel](https://github.com/pfirpfel))
* [#8075](https://github.com/openlayers/openlayers/pull/8075) - Move olx.tilegrid.* to ol/tilegrid/* ([@pfirpfel](https://github.com/pfirpfel))
* [#8073](https://github.com/openlayers/openlayers/pull/8073) - Remove dependency on deprecated sinon@5 ([@tschaub](https://github.com/tschaub))
* [#7994](https://github.com/openlayers/openlayers/pull/7994) - Explicit renderer dependencies ([@tschaub](https://github.com/tschaub))
* [#7863](https://github.com/openlayers/openlayers/pull/7863) - Add note about null geom in VectorSource.forEachFeature ([@fredj](https://github.com/fredj))
* [#8055](https://github.com/openlayers/openlayers/pull/8055) - Mark optional property with square brackets ([@fredj](https://github.com/fredj))
* [#8054](https://github.com/openlayers/openlayers/pull/8054) - Generate correct includes list for `build-index` script on windows hosts. ([@lilliputten](https://github.com/lilliputten))
* [#8053](https://github.com/openlayers/openlayers/pull/8053) - Don't import from 'functions' multiple times ([@fredj](https://github.com/fredj))
* [#8041](https://github.com/openlayers/openlayers/pull/8041) - Remove olx typedefs ol/source ([@fgravin](https://github.com/fgravin))
* [#8026](https://github.com/openlayers/openlayers/pull/8026) - [doc] dispatchChangeEvent -> changed ([@nyurik](https://github.com/nyurik))
* [#8003](https://github.com/openlayers/openlayers/pull/8003) - Add an example showing Chaikins smoothing algorithm ([@marcjansen](https://github.com/marcjansen))
* [#8044](https://github.com/openlayers/openlayers/pull/8044) - Rename constructor options typedef to 'Options' ([@fredj](https://github.com/fredj))
* [#8042](https://github.com/openlayers/openlayers/pull/8042) - Only process loaded tiles ([@ahocevar](https://github.com/ahocevar))
* [#8036](https://github.com/openlayers/openlayers/pull/8036) - Move the temporary arrays to the module level ([@fredj](https://github.com/fredj))
* [#8032](https://github.com/openlayers/openlayers/pull/8032) - Start removing externs for `ol/source` ([@romanzoller](https://github.com/romanzoller))
* [#8038](https://github.com/openlayers/openlayers/pull/8038) - Fix ZoomToExtent default tipLabel value ([@fredj](https://github.com/fredj))
* [#8034](https://github.com/openlayers/openlayers/pull/8034) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#8029](https://github.com/openlayers/openlayers/pull/8029) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#8030](https://github.com/openlayers/openlayers/pull/8030) - Set `user-select: text` for .ol-selectable ([@walkermatt](https://github.com/walkermatt))
* [#8025](https://github.com/openlayers/openlayers/pull/8025) - Move olx.layer.* to ol/layer/* ([@romanzoller](https://github.com/romanzoller))
* [#8023](https://github.com/openlayers/openlayers/pull/8023) - Module type changes for ol.webgl ([@fredj](https://github.com/fredj))
* [#8021](https://github.com/openlayers/openlayers/pull/8021) - Move olx.ViewState to ol/View ([@fredj](https://github.com/fredj))
* [#8012](https://github.com/openlayers/openlayers/pull/8012) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#8015](https://github.com/openlayers/openlayers/pull/8015) - Remove some typedefs from src/ol/typedefs.js ([@fredj](https://github.com/fredj))
* [#8016](https://github.com/openlayers/openlayers/pull/8016) - Move olx.layer.BaseOptions to ol/layer/Base ([@romanzoller](https://github.com/romanzoller))
* [#8005](https://github.com/openlayers/openlayers/pull/8005) - Add vector tile selection example ([@chrismayer](https://github.com/chrismayer))
* [#7999](https://github.com/openlayers/openlayers/pull/7999) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#7998](https://github.com/openlayers/openlayers/pull/7998) - More Jsdoc module fixes ([@fredj](https://github.com/fredj))
* [#7992](https://github.com/openlayers/openlayers/pull/7992) - Fix freeze on export PDF example ([@trenneman](https://github.com/trenneman))
* [#7997](https://github.com/openlayers/openlayers/pull/7997) - Jsdoc module ([@fredj](https://github.com/fredj))
* [#7986](https://github.com/openlayers/openlayers/pull/7986) - Use module syntax for type annotations ([@fredj](https://github.com/fredj))
* [#7996](https://github.com/openlayers/openlayers/pull/7996) - 4.6.5 ([@openlayers](https://github.com/openlayers))
* [#7993](https://github.com/openlayers/openlayers/pull/7993) - Module types ([@tschaub](https://github.com/tschaub))
* [#7989](https://github.com/openlayers/openlayers/pull/7989) - Redistribute olx types for ol/interaction ([@ahocevar](https://github.com/ahocevar))
* [#7991](https://github.com/openlayers/openlayers/pull/7991) - Fix some type paths ([@ahocevar](https://github.com/ahocevar))
* [#7985](https://github.com/openlayers/openlayers/pull/7985) - Use path type instead of ol.tilegrid ([@fredj](https://github.com/fredj))
* [#7983](https://github.com/openlayers/openlayers/pull/7983) - Use path type instead of ol.Extent ([@ahocevar](https://github.com/ahocevar))
* [#7980](https://github.com/openlayers/openlayers/pull/7980) - Use module syntax for type annotations ([@fredj](https://github.com/fredj))
* [#7979](https://github.com/openlayers/openlayers/pull/7979) - Mark optional property with square brackets ([@fredj](https://github.com/fredj))
* [#7975](https://github.com/openlayers/openlayers/pull/7975) - Mark optional property with square brackets ([@fredj](https://github.com/fredj))
* [#7960](https://github.com/openlayers/openlayers/pull/7960) - Fix memory leak in CanvasImageRenderer ([@PetroDE](https://github.com/PetroDE))
* [#7974](https://github.com/openlayers/openlayers/pull/7974) - Fix spelling ([@fredj](https://github.com/fredj))
* [#7973](https://github.com/openlayers/openlayers/pull/7973) - Remove setAttributeNS function from ol/xml ([@fredj](https://github.com/fredj))
* [#7971](https://github.com/openlayers/openlayers/pull/7971) - Use module syntax for type annotations ([@tschaub](https://github.com/tschaub))
* [#7968](https://github.com/openlayers/openlayers/pull/7968) - More types in the right places ([@tschaub](https://github.com/tschaub))
* [#7966](https://github.com/openlayers/openlayers/pull/7966) - Remove namespaces from olx.js ([@tschaub](https://github.com/tschaub))
* [#7965](https://github.com/openlayers/openlayers/pull/7965) - Redistribute types from externs/olx.js ([@tschaub](https://github.com/tschaub))
* [#7608](https://github.com/openlayers/openlayers/pull/7608) - Facilitate the removal of externs/olx.js ([@tschaub](https://github.com/tschaub))
* [#7964](https://github.com/openlayers/openlayers/pull/7964) - Coordinate type typo ([@tschaub](https://github.com/tschaub))
* [#7961](https://github.com/openlayers/openlayers/pull/7961) - Correct type for style ([@tschaub](https://github.com/tschaub))
* [#7958](https://github.com/openlayers/openlayers/pull/7958) - miscellaneous fixes to the types annotation ([@fredj](https://github.com/fredj))
* [#7953](https://github.com/openlayers/openlayers/pull/7953) - Get rid of externs/olx.js and src/ol/typedefs.js typedefs for ol/ and ol/events/ ([@ahocevar](https://github.com/ahocevar))
* [#7956](https://github.com/openlayers/openlayers/pull/7956) - Make sure namespaces are populated after they were created ([@ahocevar](https://github.com/ahocevar))
* [#7952](https://github.com/openlayers/openlayers/pull/7952) - Fix typo in jsdoc type ([@fredj](https://github.com/fredj))
* [#7948](https://github.com/openlayers/openlayers/pull/7948) - Better type definition ([@fredj](https://github.com/fredj))
* [#7946](https://github.com/openlayers/openlayers/pull/7946) - New typedef syntax and module path types for some modules ([@ahocevar](https://github.com/ahocevar))
* [#7944](https://github.com/openlayers/openlayers/pull/7944) - Make wrap work with points in the vector-labels example ([@ahocevar](https://github.com/ahocevar))
* [#7933](https://github.com/openlayers/openlayers/pull/7933) - Better code indentation ([@fredj](https://github.com/fredj))
* [#7930](https://github.com/openlayers/openlayers/pull/7930) - Use listen function instead of on ([@openlayers](https://github.com/openlayers))
* [#7929](https://github.com/openlayers/openlayers/pull/7929) - Remove unused devDependencies ([@openlayers](https://github.com/openlayers))
* [#7927](https://github.com/openlayers/openlayers/pull/7927) - Remove unused deps, unused tasks, and outdated info ([@tschaub](https://github.com/tschaub))
* [#7923](https://github.com/openlayers/openlayers/pull/7923) - Fix exports and use of constants ([@ahocevar](https://github.com/ahocevar))
* [#7914](https://github.com/openlayers/openlayers/pull/7914) - Some easy window cleanups ([@gberaudo](https://github.com/gberaudo))
* [#7915](https://github.com/openlayers/openlayers/pull/7915) - Untie feature loader and XML code ([@gberaudo](https://github.com/gberaudo))
* [#7918](https://github.com/openlayers/openlayers/pull/7918) - Move the nullFunction to ol/functions ([@fredj](https://github.com/fredj))
* [#7910](https://github.com/openlayers/openlayers/pull/7910) - Better code indentation ([@fredj](https://github.com/fredj))
* [#7904](https://github.com/openlayers/openlayers/pull/7904) - Add focus condition, e.g. for wheel zoom ([@ahocevar](https://github.com/ahocevar))
* [#7902](https://github.com/openlayers/openlayers/pull/7902) - Add a unicode symbol for symbol font detection ([@ahocevar](https://github.com/ahocevar))
* [#7899](https://github.com/openlayers/openlayers/pull/7899) - Use nomnom@1.8.1 ([@tschaub](https://github.com/tschaub))
* [#7897](https://github.com/openlayers/openlayers/pull/7897) - Better variables scoping ([@fredj](https://github.com/fredj))
* [#7894](https://github.com/openlayers/openlayers/pull/7894) - More named exports, fewer static members ([@tschaub](https://github.com/tschaub))
* [#7881](https://github.com/openlayers/openlayers/pull/7881) - Better variables scoping ([@fredj](https://github.com/fredj))
* [#7888](https://github.com/openlayers/openlayers/pull/7888) - Rework away static members from pointer related classes ([@bjornharrtell](https://github.com/bjornharrtell))
* [#7880](https://github.com/openlayers/openlayers/pull/7880) - Named exports from ol/style/Style ([@tschaub](https://github.com/tschaub))
* [#7872](https://github.com/openlayers/openlayers/pull/7872) - More named export ([@fredj](https://github.com/fredj))
* [#7874](https://github.com/openlayers/openlayers/pull/7874) - Cleaning up exports ([@tschaub](https://github.com/tschaub))
* [#7871](https://github.com/openlayers/openlayers/pull/7871) - Memory optimization ([@fredj](https://github.com/fredj))
* [#7870](https://github.com/openlayers/openlayers/pull/7870) - Use exported function from ol/webgl ([@fredj](https://github.com/fredj))
* [#7868](https://github.com/openlayers/openlayers/pull/7868) - Named export ([@fredj](https://github.com/fredj))
* [#7861](https://github.com/openlayers/openlayers/pull/7861) - Named exports from ol/structs/PriorityQueue ([@fredj](https://github.com/fredj))
* [#7860](https://github.com/openlayers/openlayers/pull/7860) - Don't export private constant from ol/webgl ([@openlayers](https://github.com/openlayers))
* [#7855](https://github.com/openlayers/openlayers/pull/7855) - More named exports ([@tschaub](https://github.com/tschaub))
* [#7851](https://github.com/openlayers/openlayers/pull/7851) - Replacing static functions with named exports ([@tschaub](https://github.com/tschaub))
* [#7852](https://github.com/openlayers/openlayers/pull/7852) - Rename extent ([@nicholas-l](https://github.com/nicholas-l))
* [#7840](https://github.com/openlayers/openlayers/pull/7840) - More export renaming ([@raiyni](https://github.com/raiyni))
* [#7843](https://github.com/openlayers/openlayers/pull/7843) - Better code indentation ([@fredj](https://github.com/fredj))
* [#7842](https://github.com/openlayers/openlayers/pull/7842) - Allow setting the label cache size ([@ahocevar](https://github.com/ahocevar))
* [#7791](https://github.com/openlayers/openlayers/pull/7791) - Named exports from ol/tilecoord ([@marcjansen](https://github.com/marcjansen))
* [#7835](https://github.com/openlayers/openlayers/pull/7835) - Add and use a constant for the collapsed CSS class ([@marcjansen](https://github.com/marcjansen))
* [#7834](https://github.com/openlayers/openlayers/pull/7834) - Named exports from ol/transform ([@marcjansen](https://github.com/marcjansen))
* [#7831](https://github.com/openlayers/openlayers/pull/7831) - Add new maxTilesLoading option to ol/PluggableMap ([@fredj](https://github.com/fredj))
* [#7833](https://github.com/openlayers/openlayers/pull/7833) - Fix createEmptyTexture function call in ol/webgl/Context ([@fredj](https://github.com/fredj))
* [#7832](https://github.com/openlayers/openlayers/pull/7832) - Webgl Layer and Context named exports ([@fgravin](https://github.com/fgravin))
* [#7826](https://github.com/openlayers/openlayers/pull/7826) - Better code indentation and modules renaming ([@fredj](https://github.com/fredj))
* [#7828](https://github.com/openlayers/openlayers/pull/7828) - Refactor constraints static methods to module functions ([@bjornharrtell](https://github.com/bjornharrtell))
* [#7827](https://github.com/openlayers/openlayers/pull/7827) - Named exports from ol/render/canvas ([@tschaub](https://github.com/tschaub))
* [#7823](https://github.com/openlayers/openlayers/pull/7823) - Replace static members with named exports ([@fredj](https://github.com/fredj))
* [#7820](https://github.com/openlayers/openlayers/pull/7820) - ol/geom/flat/* exports ([@raiyni](https://github.com/raiyni))
* [#7824](https://github.com/openlayers/openlayers/pull/7824) - Fix code indentation ([@fredj](https://github.com/fredj))
* [#7821](https://github.com/openlayers/openlayers/pull/7821) - Add new canvas instruction array in ol/render/canvas/Instruction ([@fredj](https://github.com/fredj))
* [#7817](https://github.com/openlayers/openlayers/pull/7817) - Remove more private static members ([@tschaub](https://github.com/tschaub))
* [#7814](https://github.com/openlayers/openlayers/pull/7814) - Remove more private static members ([@tschaub](https://github.com/tschaub))
* [#7816](https://github.com/openlayers/openlayers/pull/7816) - Use toString instead of asString in asColorLike ([@openlayers](https://github.com/openlayers))
* [#7811](https://github.com/openlayers/openlayers/pull/7811) - Remove ol.FeatureStyleFunction support ([@fredj](https://github.com/fredj))
* [#7815](https://github.com/openlayers/openlayers/pull/7815) - Remove private statics from webgl related modules ([@bjornharrtell](https://github.com/bjornharrtell))
* [#7803](https://github.com/openlayers/openlayers/pull/7803) - Remove private static members from constructors ([@tschaub](https://github.com/tschaub))
* [#7808](https://github.com/openlayers/openlayers/pull/7808) - Make sure the requested image size matches the desired ratio ([@ahocevar](https://github.com/ahocevar))
* [#7807](https://github.com/openlayers/openlayers/pull/7807) - Run typecheck after tests, because of its current verbosity ([@ahocevar](https://github.com/ahocevar))
* [#7805](https://github.com/openlayers/openlayers/pull/7805) - Remove private static members from constructors ([@fredj](https://github.com/fredj))
* [#7806](https://github.com/openlayers/openlayers/pull/7806) - Fix rotate import ([@ahocevar](https://github.com/ahocevar))
* [#7800](https://github.com/openlayers/openlayers/pull/7800) - More named exports ([@tschaub](https://github.com/tschaub))
* [#7741](https://github.com/openlayers/openlayers/pull/7741) - Type checking and full build creation ([@ahocevar](https://github.com/ahocevar))
* [#7797](https://github.com/openlayers/openlayers/pull/7797) - Better default export names for WebGL modules ([@tschaub](https://github.com/tschaub))
* [#7794](https://github.com/openlayers/openlayers/pull/7794) - Call animation callback in a timeout ([@tschaub](https://github.com/tschaub))
* [#7793](https://github.com/openlayers/openlayers/pull/7793) - More renaming of default exports ([@tschaub](https://github.com/tschaub))
* [#7799](https://github.com/openlayers/openlayers/pull/7799) - Use tmpSize to reduce garbage generation ([@fredj](https://github.com/fredj))
* [#7788](https://github.com/openlayers/openlayers/pull/7788) - Fix shaders generation ([@fredj](https://github.com/fredj))
* [#7789](https://github.com/openlayers/openlayers/pull/7789) - Use STATIC_DRAW as default WebGL buffer usage ([@fredj](https://github.com/fredj))
* [#7787](https://github.com/openlayers/openlayers/pull/7787) - More renaming ([@fredj](https://github.com/fredj))
* [#7782](https://github.com/openlayers/openlayers/pull/7782) - Named exports from specific proj modules ([@tschaub](https://github.com/tschaub))
* [#7780](https://github.com/openlayers/openlayers/pull/7780) - More named exports ([@tschaub](https://github.com/tschaub))
* [#7783](https://github.com/openlayers/openlayers/pull/7783) - Named exports from ol/xml ([@raiyni](https://github.com/raiyni))
* [#7774](https://github.com/openlayers/openlayers/pull/7774) - Pass destination extent to avoid garbage generation ([@fredj](https://github.com/fredj))
* [#7771](https://github.com/openlayers/openlayers/pull/7771) - Named exports from loadingstrategy ([@marcjansen](https://github.com/marcjansen))
* [#7772](https://github.com/openlayers/openlayers/pull/7772) - Named exports from filter module ([@marcjansen](https://github.com/marcjansen))
* [#7770](https://github.com/openlayers/openlayers/pull/7770) - Rename _ol_render_Box_ to RenderBox ([@marcjansen](https://github.com/marcjansen))
* [#7763](https://github.com/openlayers/openlayers/pull/7763) - Use the temporary extent in VectorTileLayer ([@fredj](https://github.com/fredj))
* [#7765](https://github.com/openlayers/openlayers/pull/7765) - Named exports from events condition ([@marcjansen](https://github.com/marcjansen))
* [#7767](https://github.com/openlayers/openlayers/pull/7767) - Transformation functions: Fix spelling and use the symbol × ([@marcjansen](https://github.com/marcjansen))
* [#7764](https://github.com/openlayers/openlayers/pull/7764) - Named exports from ol/has ([@tschaub](https://github.com/tschaub))
* [#7761](https://github.com/openlayers/openlayers/pull/7761) - Rename _ol_render_canvas_Instruction_ to CanvasInstruction ([@fredj](https://github.com/fredj))
* [#7749](https://github.com/openlayers/openlayers/pull/7749) - Check if the sketch feature is defined in finishDrawing ([@fredj](https://github.com/fredj))
* [#7745](https://github.com/openlayers/openlayers/pull/7745) - More named exports ([@fredj](https://github.com/fredj))
* [#7743](https://github.com/openlayers/openlayers/pull/7743) - Set enableHighAccuracy in geolocation example ([@fredj](https://github.com/fredj))
* [#7738](https://github.com/openlayers/openlayers/pull/7738) - Named exports from ol/events ([@tschaub](https://github.com/tschaub))
* [#7724](https://github.com/openlayers/openlayers/pull/7724) - Update prism library ([@fredj](https://github.com/fredj))
* [#7727](https://github.com/openlayers/openlayers/pull/7727) - Deactivate transition effect for semi transparent layer example ([@fredj](https://github.com/fredj))
* [#7726](https://github.com/openlayers/openlayers/pull/7726) - Named exports from ol/string ([@fredj](https://github.com/fredj))
* [#7725](https://github.com/openlayers/openlayers/pull/7725) - Remove extra comment ([@fredj](https://github.com/fredj))
* [#7721](https://github.com/openlayers/openlayers/pull/7721) - More renaming ([@fredj](https://github.com/fredj))
* [#7716](https://github.com/openlayers/openlayers/pull/7716) - Better variables scoping ([@fredj](https://github.com/fredj))
* [#7698](https://github.com/openlayers/openlayers/pull/7698) - Fix for loop in color test ([@fredj](https://github.com/fredj))
* [#7703](https://github.com/openlayers/openlayers/pull/7703) - Improved drawing experience on touch devices ([@ahocevar](https://github.com/ahocevar))
* [#7713](https://github.com/openlayers/openlayers/pull/7713) - Better variables scoping ([@fredj](https://github.com/fredj))
* [#7711](https://github.com/openlayers/openlayers/pull/7711) - Do not use (I)CLA anymore ([@bartvde](https://github.com/bartvde))
* [#7709](https://github.com/openlayers/openlayers/pull/7709) - More named export ([@fredj](https://github.com/fredj))
* [#7705](https://github.com/openlayers/openlayers/pull/7705) - More renaming ([@fredj](https://github.com/fredj))
* [#7700](https://github.com/openlayers/openlayers/pull/7700) - Fix ScaleLine control for Projections in degrees ([@pedros007](https://github.com/pedros007))
* [#7697](https://github.com/openlayers/openlayers/pull/7697) - Use const and let ([@tschaub](https://github.com/tschaub))
* [#7695](https://github.com/openlayers/openlayers/pull/7695) - More renaming ([@tschaub](https://github.com/tschaub))
* [#7693](https://github.com/openlayers/openlayers/pull/7693) - More import renaming ([@fredj](https://github.com/fredj))
* [#7678](https://github.com/openlayers/openlayers/pull/7678) - Add jsDelivr hits badge ([@LukasDrgon](https://github.com/LukasDrgon))
* [#7686](https://github.com/openlayers/openlayers/pull/7686) - More import renaming ([@tschaub](https://github.com/tschaub))
* [#7669](https://github.com/openlayers/openlayers/pull/7669) - Use declutter tree only for text and image replays ([@ahocevar](https://github.com/ahocevar))
* [#7683](https://github.com/openlayers/openlayers/pull/7683) - Move IGCZ enum to src/ol/format/IGC.js ([@fredj](https://github.com/fredj))
* [#7682](https://github.com/openlayers/openlayers/pull/7682) - Add new condition to MouseWheelZoom interaction ([@fredj](https://github.com/fredj))
* [#7676](https://github.com/openlayers/openlayers/pull/7676) - Check fonts against two reference fonts ([@ahocevar](https://github.com/ahocevar))
* [#7668](https://github.com/openlayers/openlayers/pull/7668) - Hit detect text background ([@ahocevar](https://github.com/ahocevar))
* [#7661](https://github.com/openlayers/openlayers/pull/7661) - Background fill stroke ([@ahocevar](https://github.com/ahocevar))
* [#7654](https://github.com/openlayers/openlayers/pull/7654) - Add named export for transformWithOptions function ([@fredj](https://github.com/fredj))
* [#7652](https://github.com/openlayers/openlayers/pull/7652) - More renaming ([@fredj](https://github.com/fredj))
* [#7649](https://github.com/openlayers/openlayers/pull/7649) - Named Map export for ol/Map ([@raiyni](https://github.com/raiyni))
* [#7646](https://github.com/openlayers/openlayers/pull/7646) - Named export for Polyline format and SimpleGeometry ([@openlayers](https://github.com/openlayers))
* [#7650](https://github.com/openlayers/openlayers/pull/7650) - Rename _ol_PluggableMap_ to PluggableMap ([@fredj](https://github.com/fredj))
* [#7642](https://github.com/openlayers/openlayers/pull/7642) - Don't store private function into GPX ([@fredj](https://github.com/fredj))
* [#7643](https://github.com/openlayers/openlayers/pull/7643) - Replace ol/Sphere with ol/sphere ([@tschaub](https://github.com/tschaub))
* [#7644](https://github.com/openlayers/openlayers/pull/7644) - Named exports from ol/math module ([@raiyni](https://github.com/raiyni))
* [#7636](https://github.com/openlayers/openlayers/pull/7636) - Named exports from the ol/array module ([@marcjansen](https://github.com/marcjansen))
* [#7614](https://github.com/openlayers/openlayers/pull/7614) - Remove opt_this from the API ([@KlausBenndorf](https://github.com/KlausBenndorf))
* [#7640](https://github.com/openlayers/openlayers/pull/7640) - Remove unneeded and already skipped test ([@openlayers](https://github.com/openlayers))
* [#7637](https://github.com/openlayers/openlayers/pull/7637) - Named exports from the ol/color module ([@marcjansen](https://github.com/marcjansen))
* [#7639](https://github.com/openlayers/openlayers/pull/7639) - Don't store private function into GeoJSON ([@fredj](https://github.com/fredj))
* [#7635](https://github.com/openlayers/openlayers/pull/7635) - More module renaming ([@fredj](https://github.com/fredj))
* [#7632](https://github.com/openlayers/openlayers/pull/7632) - Named exports from ol/css module ([@marcjansen](https://github.com/marcjansen))
* [#7634](https://github.com/openlayers/openlayers/pull/7634) - Rename _ol_layer_Tile_ to TileLayer ([@marcjansen](https://github.com/marcjansen))
* [#7633](https://github.com/openlayers/openlayers/pull/7633) - Import assert function directly ([@marcjansen](https://github.com/marcjansen))
* [#7631](https://github.com/openlayers/openlayers/pull/7631) - More named export and rename ([@fredj](https://github.com/fredj))
* [#7627](https://github.com/openlayers/openlayers/pull/7627) - Nicer import name ([@fredj](https://github.com/fredj))
* [#7622](https://github.com/openlayers/openlayers/pull/7622) - Named export ([@fredj](https://github.com/fredj))
* [#7624](https://github.com/openlayers/openlayers/pull/7624) - Remove eslint-plugin-openlayers-internal rules ([@fredj](https://github.com/fredj))
* [#7625](https://github.com/openlayers/openlayers/pull/7625) - Named export for ol/control and ol/interaction ([@fredj](https://github.com/fredj))
* [#7623](https://github.com/openlayers/openlayers/pull/7623) - Named export for ol/tileurlfunction ([@fredj](https://github.com/fredj))
* [#7621](https://github.com/openlayers/openlayers/pull/7621) - Replace ZeroClipboard with Clipboard.js ([@fredj](https://github.com/fredj))
* [#7620](https://github.com/openlayers/openlayers/pull/7620) - Rename variables in format modules ([@tschaub](https://github.com/tschaub))
* [#7619](https://github.com/openlayers/openlayers/pull/7619) - More variable renaming ([@fredj](https://github.com/fredj))
* [#7612](https://github.com/openlayers/openlayers/pull/7612) - Better import name for _ol_ext_* import ([@fredj](https://github.com/fredj))
* [#7611](https://github.com/openlayers/openlayers/pull/7611) - Change olx.SphereMetricOptions to SphereMetricOptions ([@fredj](https://github.com/fredj))
* [#7615](https://github.com/openlayers/openlayers/pull/7615) - Remove logos ([@tschaub](https://github.com/tschaub))
* [#7610](https://github.com/openlayers/openlayers/pull/7610) - More variable renaming ([@fredj](https://github.com/fredj))
* [#7609](https://github.com/openlayers/openlayers/pull/7609) - Redistribute a few types and docs ([@tschaub](https://github.com/tschaub))
* [#7598](https://github.com/openlayers/openlayers/pull/7598) - Modular proj4 integration ([@ahocevar](https://github.com/ahocevar))
* [#7607](https://github.com/openlayers/openlayers/pull/7607) - Rename interaction variables ([@tschaub](https://github.com/tschaub))
* [#7599](https://github.com/openlayers/openlayers/pull/7599) - Rename event variables ([@marcjansen](https://github.com/marcjansen))
* [#7605](https://github.com/openlayers/openlayers/pull/7605) - Better import and class name in ol/format/filter/ ([@fredj](https://github.com/fredj))
* [#7604](https://github.com/openlayers/openlayers/pull/7604) - Named exports from ol/functions ([@fredj](https://github.com/fredj))
* [#7603](https://github.com/openlayers/openlayers/pull/7603) - Simplify default export ([@fredj](https://github.com/fredj))
* [#7602](https://github.com/openlayers/openlayers/pull/7602) - Remove now unused DEVICE_ORIENTATION ([@fredj](https://github.com/fredj))
* [#7597](https://github.com/openlayers/openlayers/pull/7597) - More es6 named export ([@fredj](https://github.com/fredj))
* [#7600](https://github.com/openlayers/openlayers/pull/7600) - Simplify default export of ol/events/KeyCode ([@marcjansen](https://github.com/marcjansen))
* [#7594](https://github.com/openlayers/openlayers/pull/7594) - Rename control variables ([@tschaub](https://github.com/tschaub))
* [#7593](https://github.com/openlayers/openlayers/pull/7593) - Simplify default export ([@tschaub](https://github.com/tschaub))
* [#7591](https://github.com/openlayers/openlayers/pull/7591) - Rename geometry variables ([@tschaub](https://github.com/tschaub))
* [#7586](https://github.com/openlayers/openlayers/pull/7586) - Named exports from ol/dom ([@fredj](https://github.com/fredj))
* [#7581](https://github.com/openlayers/openlayers/pull/7581) - Named exports from ol/proj ([@tschaub](https://github.com/tschaub))
* [#7585](https://github.com/openlayers/openlayers/pull/7585) - Remove leftovers olx.animation typedefs ([@fredj](https://github.com/fredj))
* [#7584](https://github.com/openlayers/openlayers/pull/7584) - Named exports from ol/easing ([@fredj](https://github.com/fredj))
* [#7582](https://github.com/openlayers/openlayers/pull/7582) - Remove default export from ol/extent ([@ahocevar](https://github.com/ahocevar))
* [#7580](https://github.com/openlayers/openlayers/pull/7580) - No default export from lowercase modules ([@tschaub](https://github.com/tschaub))
* [#7575](https://github.com/openlayers/openlayers/pull/7575) - Add named exports for extent ([@ahocevar](https://github.com/ahocevar))
* [#7579](https://github.com/openlayers/openlayers/pull/7579) - VectorImageTile: call changed() before removing listeners on dispose ([@mbleichner](https://github.com/mbleichner))
* [#7578](https://github.com/openlayers/openlayers/pull/7578) - Remove deprecated functionality from 4.x ([@tschaub](https://github.com/tschaub))
* [#7577](https://github.com/openlayers/openlayers/pull/7577) - Redistribute things in ol/index.js ([@tschaub](https://github.com/tschaub))
* [#7576](https://github.com/openlayers/openlayers/pull/7576) - Named exports from ol/index.js ([@tschaub](https://github.com/tschaub))
* [#7570](https://github.com/openlayers/openlayers/pull/7570) - Transform sources to ES modules ([@tschaub](https://github.com/tschaub))
* [#7569](https://github.com/openlayers/openlayers/pull/7569) - Remove unnecessary require ([@tschaub](https://github.com/tschaub))
* [#7568](https://github.com/openlayers/openlayers/pull/7568) - Remove unneeded configs from test ([@ahocevar](https://github.com/ahocevar))
* [#7566](https://github.com/openlayers/openlayers/pull/7566) - Proper projection construction ([@tschaub](https://github.com/tschaub))
* [#7565](https://github.com/openlayers/openlayers/pull/7565) - Release v4.6.4 ([@openlayers](https://github.com/openlayers))
* [#7563](https://github.com/openlayers/openlayers/pull/7563) - Use full precision for the declutter box ([@ahocevar](https://github.com/ahocevar))
* [#7559](https://github.com/openlayers/openlayers/pull/7559) - Handle skipping and unskipping features with renderMode: 'image' ([@ahocevar](https://github.com/ahocevar))
* [#7562](https://github.com/openlayers/openlayers/pull/7562) - Remove unused, confusing projection code ([@ahocevar](https://github.com/ahocevar))
* [#7555](https://github.com/openlayers/openlayers/pull/7555) - Release v4.6.3 ([@openlayers](https://github.com/openlayers))
* [#7554](https://github.com/openlayers/openlayers/pull/7554) - Only compose image vector frame when the replay group has changed ([@ahocevar](https://github.com/ahocevar))
* [#7550](https://github.com/openlayers/openlayers/pull/7550) - Update examples to d3.js v4 ([@fredj](https://github.com/fredj))
* [#7548](https://github.com/openlayers/openlayers/pull/7548) - Fix pull request link ([@openlayers](https://github.com/openlayers))
* [#7547](https://github.com/openlayers/openlayers/pull/7547) - Release v4.6.2 ([@openlayers](https://github.com/openlayers))
* [#7546](https://github.com/openlayers/openlayers/pull/7546) - Do not request features for wrapped extent ([@ahocevar](https://github.com/ahocevar))
* [#7545](https://github.com/openlayers/openlayers/pull/7545) - Release v4.6.1 ([@openlayers](https://github.com/openlayers))
* [#7543](https://github.com/openlayers/openlayers/pull/7543) - Donut polygon labels do not get a chance to get rendered ([@ahocevar](https://github.com/ahocevar))
* [#7542](https://github.com/openlayers/openlayers/pull/7542) - Still respect deprecated exceedLength option ([@ahocevar](https://github.com/ahocevar))
* [#7541](https://github.com/openlayers/openlayers/pull/7541) - Fix case of vectorrendertype.js ([@ahocevar](https://github.com/ahocevar))
<details>
<summary>Dependency Updates</summary>
* [#8315](https://github.com/openlayers/openlayers/pull/8315) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8309](https://github.com/openlayers/openlayers/pull/8309) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8311](https://github.com/openlayers/openlayers/pull/8311) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8310](https://github.com/openlayers/openlayers/pull/8310) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8297](https://github.com/openlayers/openlayers/pull/8297) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8293](https://github.com/openlayers/openlayers/pull/8293) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8285](https://github.com/openlayers/openlayers/pull/8285) - Update google-closure-compiler to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8275](https://github.com/openlayers/openlayers/pull/8275) - Update serve to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8271](https://github.com/openlayers/openlayers/pull/8271) - chore(package): update google-closure-compiler to version 20180610.0.1 ([@openlayers](https://github.com/openlayers))
* [#8270](https://github.com/openlayers/openlayers/pull/8270) - chore(package): update rollup to version 0.60.7 ([@openlayers](https://github.com/openlayers))
* [#8266](https://github.com/openlayers/openlayers/pull/8266) - chore(package): update rollup to version 0.60.4 ([@openlayers](https://github.com/openlayers))
* [#8261](https://github.com/openlayers/openlayers/pull/8261) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8260](https://github.com/openlayers/openlayers/pull/8260) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8252](https://github.com/openlayers/openlayers/pull/8252) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8248](https://github.com/openlayers/openlayers/pull/8248) - Update serve to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8247](https://github.com/openlayers/openlayers/pull/8247) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8241](https://github.com/openlayers/openlayers/pull/8241) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8230](https://github.com/openlayers/openlayers/pull/8230) - Update serve to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8208](https://github.com/openlayers/openlayers/pull/8208) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8205](https://github.com/openlayers/openlayers/pull/8205) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8179](https://github.com/openlayers/openlayers/pull/8179) - Update google-closure-compiler to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8146](https://github.com/openlayers/openlayers/pull/8146) - Update coveralls to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8145](https://github.com/openlayers/openlayers/pull/8145) - Update fs-extra to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8140](https://github.com/openlayers/openlayers/pull/8140) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8131](https://github.com/openlayers/openlayers/pull/8131) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8130](https://github.com/openlayers/openlayers/pull/8130) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8128](https://github.com/openlayers/openlayers/pull/8128) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8124](https://github.com/openlayers/openlayers/pull/8124) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8102](https://github.com/openlayers/openlayers/pull/8102) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8095](https://github.com/openlayers/openlayers/pull/8095) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8094](https://github.com/openlayers/openlayers/pull/8094) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8093](https://github.com/openlayers/openlayers/pull/8093) - chore(package): update serve to version 6.5.5 ([@openlayers](https://github.com/openlayers))
* [#8090](https://github.com/openlayers/openlayers/pull/8090) - chore(package): update url-polyfill to version 1.0.13 ([@openlayers](https://github.com/openlayers))
* [#8091](https://github.com/openlayers/openlayers/pull/8091) - chore(package): update karma-firefox-launcher to version 1.1.0 ([@openlayers](https://github.com/openlayers))
* [#8085](https://github.com/openlayers/openlayers/pull/8085) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8071](https://github.com/openlayers/openlayers/pull/8071) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8060](https://github.com/openlayers/openlayers/pull/8060) - Update google-closure-compiler to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8039](https://github.com/openlayers/openlayers/pull/8039) - Update google-closure-compiler to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8028](https://github.com/openlayers/openlayers/pull/8028) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8019](https://github.com/openlayers/openlayers/pull/8019) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8017](https://github.com/openlayers/openlayers/pull/8017) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8018](https://github.com/openlayers/openlayers/pull/8018) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8014](https://github.com/openlayers/openlayers/pull/8014) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8009](https://github.com/openlayers/openlayers/pull/8009) - chore(package): update sinon to version 5.0.0 ([@openlayers](https://github.com/openlayers))
* [#8008](https://github.com/openlayers/openlayers/pull/8008) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#8000](https://github.com/openlayers/openlayers/pull/8000) - Update karma-webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7990](https://github.com/openlayers/openlayers/pull/7990) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7984](https://github.com/openlayers/openlayers/pull/7984) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7981](https://github.com/openlayers/openlayers/pull/7981) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7977](https://github.com/openlayers/openlayers/pull/7977) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7972](https://github.com/openlayers/openlayers/pull/7972) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7963](https://github.com/openlayers/openlayers/pull/7963) - chore(package): update url-polyfill to version 1.0.11 ([@openlayers](https://github.com/openlayers))
* [#7962](https://github.com/openlayers/openlayers/pull/7962) - chore(package): update serve to version 6.5.2 ([@openlayers](https://github.com/openlayers))
* [#7959](https://github.com/openlayers/openlayers/pull/7959) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7957](https://github.com/openlayers/openlayers/pull/7957) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7950](https://github.com/openlayers/openlayers/pull/7950) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7945](https://github.com/openlayers/openlayers/pull/7945) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7943](https://github.com/openlayers/openlayers/pull/7943) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7940](https://github.com/openlayers/openlayers/pull/7940) - Update babel-plugin-jsdoc-closure to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7938](https://github.com/openlayers/openlayers/pull/7938) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7925](https://github.com/openlayers/openlayers/pull/7925) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7921](https://github.com/openlayers/openlayers/pull/7921) - Update clean-css-cli to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7916](https://github.com/openlayers/openlayers/pull/7916) - chore(package): update html-webpack-plugin to version 3.0.1 ([@openlayers](https://github.com/openlayers))
* [#7905](https://github.com/openlayers/openlayers/pull/7905) - Update karma-webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7903](https://github.com/openlayers/openlayers/pull/7903) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7901](https://github.com/openlayers/openlayers/pull/7901) - Update karma-webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7898](https://github.com/openlayers/openlayers/pull/7898) - chore(package): update karma-webpack to version 2.0.11 ([@openlayers](https://github.com/openlayers))
* [#7893](https://github.com/openlayers/openlayers/pull/7893) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7891](https://github.com/openlayers/openlayers/pull/7891) - chore(package): update recast to version 0.14.4 ([@openlayers](https://github.com/openlayers))
* [#7886](https://github.com/openlayers/openlayers/pull/7886) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7882](https://github.com/openlayers/openlayers/pull/7882) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7876](https://github.com/openlayers/openlayers/pull/7876) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7877](https://github.com/openlayers/openlayers/pull/7877) - Update webpack-merge to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7865](https://github.com/openlayers/openlayers/pull/7865) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7866](https://github.com/openlayers/openlayers/pull/7866) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7867](https://github.com/openlayers/openlayers/pull/7867) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7858](https://github.com/openlayers/openlayers/pull/7858) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7850](https://github.com/openlayers/openlayers/pull/7850) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7849](https://github.com/openlayers/openlayers/pull/7849) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7848](https://github.com/openlayers/openlayers/pull/7848) - Update nomnom to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7847](https://github.com/openlayers/openlayers/pull/7847) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7845](https://github.com/openlayers/openlayers/pull/7845) - chore(package): update marked to version 0.3.14 ([@openlayers](https://github.com/openlayers))
* [#7841](https://github.com/openlayers/openlayers/pull/7841) - Greenkeeper/babel plugin jsdoc closure 1.2.0 ([@openlayers](https://github.com/openlayers))
* [#7822](https://github.com/openlayers/openlayers/pull/7822) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7813](https://github.com/openlayers/openlayers/pull/7813) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7809](https://github.com/openlayers/openlayers/pull/7809) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7812](https://github.com/openlayers/openlayers/pull/7812) - chore(package): update sinon to version 4.3.0 ([@openlayers](https://github.com/openlayers))
* [#7777](https://github.com/openlayers/openlayers/pull/7777) - Update babel-minify-webpack-plugin to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7759](https://github.com/openlayers/openlayers/pull/7759) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7746](https://github.com/openlayers/openlayers/pull/7746) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7735](https://github.com/openlayers/openlayers/pull/7735) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7729](https://github.com/openlayers/openlayers/pull/7729) - Update jquery to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7732](https://github.com/openlayers/openlayers/pull/7732) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7731](https://github.com/openlayers/openlayers/pull/7731) - Update webpack-dev-server to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7728](https://github.com/openlayers/openlayers/pull/7728) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7720](https://github.com/openlayers/openlayers/pull/7720) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7712](https://github.com/openlayers/openlayers/pull/7712) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7702](https://github.com/openlayers/openlayers/pull/7702) - Update webpack-dev-server to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7701](https://github.com/openlayers/openlayers/pull/7701) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7691](https://github.com/openlayers/openlayers/pull/7691) - Update webpack-dev-server to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7688](https://github.com/openlayers/openlayers/pull/7688) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7685](https://github.com/openlayers/openlayers/pull/7685) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7681](https://github.com/openlayers/openlayers/pull/7681) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7680](https://github.com/openlayers/openlayers/pull/7680) - Update webpack-dev-server to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7667](https://github.com/openlayers/openlayers/pull/7667) - Update mocha to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7656](https://github.com/openlayers/openlayers/pull/7656) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7655](https://github.com/openlayers/openlayers/pull/7655) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7651](https://github.com/openlayers/openlayers/pull/7651) - Update karma to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7647](https://github.com/openlayers/openlayers/pull/7647) - Update rbush to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7596](https://github.com/openlayers/openlayers/pull/7596) - Update karma-webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7589](https://github.com/openlayers/openlayers/pull/7589) - chore(package): update karma-webpack to version 2.0.8 ([@openlayers](https://github.com/openlayers))
* [#7571](https://github.com/openlayers/openlayers/pull/7571) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7567](https://github.com/openlayers/openlayers/pull/7567) - Update fs-extra to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7558](https://github.com/openlayers/openlayers/pull/7558) - Update eslint to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7552](https://github.com/openlayers/openlayers/pull/7552) - Update jscodeshift to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
* [#7551](https://github.com/openlayers/openlayers/pull/7551) - Update sinon to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
</details>

8
changelog/v5.0.1.md Normal file
View File

@@ -0,0 +1,8 @@
# 5.0.1
The v5.0.1 release helps reduce bundle sizes for bundlers that support the `"sideEffects": "false"`option in `package.json`, and fixes website documentation regarding cdn locations and debug build which has been replaced by source maps.
## Fixes
* [#8341](https://github.com/openlayers/openlayers/pull/8341) - Set sideEffects: false flag ([@ahocevar](https://github.com/ahocevar))
* [#8342](https://github.com/openlayers/openlayers/pull/8342) - Fix links and description in quickstart tutorial ([@ahocevar](https://github.com/ahocevar))

7
changelog/v5.0.2.md Normal file
View File

@@ -0,0 +1,7 @@
# 5.0.2
The v5.0.1 release updates the package readme with new example projects.
## Fixes
* [#8332](https://github.com/openlayers/openlayers/pull/8343) - Starter projects ([@tschaub](https://github.com/tschaub))

9
changelog/v5.0.3.md Normal file
View File

@@ -0,0 +1,9 @@
# 5.0.3
The v5.0.3 fixes a regression in the vector tile renderer and improves the built examples and release package.
## Fixes
* [#8364](https://github.com/openlayers/openlayers/pull/8364) - Make examples work in IE11 ([@ahocevar](https://github.com/ahocevar))
* [#8363](https://github.com/openlayers/openlayers/pull/8363) - Autogenerate src/ol/package.json ([@ahocevar](https://github.com/ahocevar))
* [#8371](https://github.com/openlayers/openlayers/pull/8371) - Skip rendering when there is no replay group ([@ahocevar](https://github.com/ahocevar))

View File

@@ -1,45 +0,0 @@
{
"exports": [],
"src": [
"src/**/*.js",
"build/ol.ext/*.js",
"build/examples/{{id}}.js"
],
"compile": {
"js": [
"externs/olx.js",
"externs/oli.js"
],
"externs": [
"externs/bingmaps.js",
"externs/cartodb.js",
"externs/bootstrap.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/example.js",
"externs/geojson.js",
"externs/jquery-1.9.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"lintChecks",
"analyzerChecks",
"missingProvide",
"unknownDefines"
],
"extra_annotation_name": [
"api", "observable"
],
"rewrite_polyfills": "false",
"compilation_level": "ADVANCED",
"warning_level": "VERBOSE",
"output_wrapper": "(function(){%output%})();",
"use_types_for_optimization": true,
"manage_closure_dependencies": true
}
}

View File

@@ -1,45 +0,0 @@
{
"exports": [],
"src": [
"src/**/*.js",
"build/ol.ext/*.js",
"build/compiled-examples/all.js"
],
"compile": {
"js": [
"externs/olx.js",
"externs/oli.js"
],
"externs": [
"externs/bingmaps.js",
"externs/bootstrap.js",
"externs/cartodb.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/example.js",
"externs/geojson.js",
"externs/jquery-1.9.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"lintChecks",
"analyzerChecks",
"unusedLocalVariables"
],
"extra_annotation_name": [
"api", "observable"
],
"rewrite_polyfills": "false",
"compilation_level": "ADVANCED",
"warning_level": "VERBOSE",
"output_wrapper": "(function(){%output%})();",
"use_types_for_optimization": true,
"manage_closure_dependencies": true
}
}

View File

@@ -1,38 +1,36 @@
{
"opts": {
"recurse": true,
"template": "config/jsdoc/api/template"
"opts": {
"recurse": true,
"template": "config/jsdoc/api/template"
},
"tags": {
"allowUnknownTags": true
},
"source": {
"includePattern": ".+\\.js(doc)?$",
"excludePattern": "(^|\\/|\\\\)_",
"include": [
"src/ol"
]
},
"plugins": [
"plugins/markdown",
"config/jsdoc/api/plugins/normalize-exports",
"config/jsdoc/api/plugins/inline-options",
"config/jsdoc/api/plugins/events",
"config/jsdoc/api/plugins/observable",
"config/jsdoc/api/plugins/api"
],
"markdown": {
"parser": "gfm"
},
"templates": {
"cleverLinks": true,
"monospaceLinks": true,
"default": {
"outputSourceFiles": false
},
"tags": {
"allowUnknownTags": true
},
"source": {
"includePattern": ".+\\.js(doc)?$",
"excludePattern": "(^|\\/|\\\\)_",
"include": [
"src",
"externs/oli.js",
"externs/olx.js"
]
},
"plugins": [
"plugins/markdown",
"config/jsdoc/api/plugins/inheritdoc",
"config/jsdoc/api/plugins/typedefs",
"config/jsdoc/api/plugins/events",
"config/jsdoc/api/plugins/observable",
"config/jsdoc/api/plugins/api"
],
"markdown": {
"parser": "gfm"
},
"templates": {
"cleverLinks": true,
"monospaceLinks": true,
"default": {
"outputSourceFiles": false
},
"applicationName": "OpenLayers"
},
"jsVersion": 180
"applicationName": "OpenLayers"
},
"jsVersion": 180
}

View File

@@ -1,43 +1,43 @@
<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 [map](ol.Map.html) is made of [layers](ol.layer.html), a [view](ol.View.html) to visualize them, [interactions](ol.interaction.html) to modify map content and [controls](ol.control.html) with UI components.</p>
[Overview](ol.Map.html)<br>
[Creation](ol.Map.html#Map)<br>
[Events](ol.MapBrowserEvent.html)</td>
<td><p>A [map](module-ol_Map-Map.html) is made of [layers](module-ol_layer_Base-BaseLayer.html), a [view](module-ol_View-View.html) to visualize them, [interactions](module-ol_interaction_Interaction-Interaction.html) to modify map content and [controls](module-ol_control_Control-Control.html) with UI components.</p>
[Overview](module-ol_Map-Map.html)<br>
[Creation](module-ol_Map-Map.html#Map)<br>
[Events](module-ol_MapBrowserEvent-MapBrowserEvent.html)</td>
<td><p>The view manages the visual parameters of the map view, like resolution or rotation.</p>
[ol.View](ol.View.html) with center, projection, resolution and rotation</td>
<td><p>Layers are lightweight containers that get their data from [sources](ol.source.html).</p>
[ol.layer.Tile](ol.layer.Tile.html)<br>
[ol.layer.Image](ol.layer.Image.html)<br>
[ol.layer.Vector](ol.layer.Vector.html)<br>
[ol.layer.VectorTile](ol.layer.VectorTile.html)</td>
[View](module-ol_View-View.html) with center, projection, resolution and rotation</td>
<td><p>Layers are lightweight containers that get their data from [sources](module-ol_source_Source-Source.html).</p>
[layer/Tile](module-ol_layer_Tile-TileLayer.html)<br>
[layer/Image](module-ol_layer_Image-ImageLayer.html)<br>
[layer/Vector](module-ol_layer_Vector-VectorLayer.html)<br>
[layer/VectorTile](module-ol_layer_VectorTile-VectorTileLayer.html)</td>
</tr><tr>
<th>Controls</th><th>Interactions</th><th>Sources and formats</th>
</tr><tr>
<td>[Map default controls](ol.control.html#.defaults)<br>
[All controls](ol.control.html)
<td>[Map default controls](module-ol_control_util.html#.defaults)<br>
[All controls](module-ol_control_Control-Control.html)
</td>
<td>
[Map default interactions](ol.interaction.html#.defaults)<br>
Interactions for [vector features](ol.Feature.html)
<ul><li>[ol.interaction.Select](ol.interaction.Select.html)</li>
<li>[ol.interaction.Draw](ol.interaction.Draw.html)</li>
<li>[ol.interaction.Modify](ol.interaction.Modify.html)</li></ul>
[All interactions](ol.interaction.html)</td>
<td>[Tile sources](ol.source.Tile.html) for [ol.layer.Tile](ol.layer.Tile.html)
<br>[Image sources](ol.source.Image.html) for [ol.layer.Image](ol.layer.Image.html)
<br>[Vector sources](ol.source.Vector.html) for [ol.layer.Vector](ol.layer.Vector.html)
<br>[Vector tile sources](ol.source.VectorTile.html) for [ol.layer.VectorTile](ol.layer.VectorTile.html)
<br>[Formats](ol.format.Feature.html) for reading/writing vector data
<br>[ol.format.WMSCapabilities](ol.format.WMSCapabilities.html)</td></tr>
[Map default interactions](module-ol_interaction.html#~defaults)<br>
Interactions for [vector features](module-ol_Feature-Feature.html)
<ul><li>[interaction/Select](module-ol_interaction_Select-Select.html)</li>
<li>[interaction/Draw](module-ol_interaction_Draw-Draw.html)</li>
<li>[interaction/Modify](module-ol_interaction_Modify-Modify.html)</li></ul>
[All interactions](module-ol_interaction_Interaction-Interaction.html)</td>
<td>[Tile sources](module-ol_source_Tile-TileSource.html) for [layer/Tile](module-ol_layer_Tile-TileLayer.html)
<br>[Image sources](module-ol_source_Image-ImageSource.html) for [layer/Image](module-ol_layer_Image-ImageLayer.html)
<br>[Vector sources](module-ol_source_Vector-VectorSource.html) for [layer/Vector](module-ol_layer_Vector-VectorLayer.html)
<br>[Vector tile sources](module-ol_source_VectorTile-VectorTile.html) for [layer/VectorTile](module-ol_layer_VectorTile-VectorTileLayer.html)
<br>[Formats](module-ol_format_Feature-FeatureFormat.html) for reading/writing vector data
<br>[format/WMSCapabilities](module-ol_format_WMSCapabilities-WMSCapabilities.html)</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 [ol.proj.transform()](ol.proj.html#.transform) and [ol.proj.transformExtent()](ol.proj.html#.transformExtent).</p>
[ol.proj](ol.proj.html)</td>
<td><p>Changes to all [ol.Objects](ol.Object.html) can be observed by calling the [object.on('propertychange')](ol.Object.html#on) method. Listeners receive an [ol.Object.Event](ol.Object.Event.html) with information on the changed property and old value.</p>
<tr><td><p>All coordinates and extents need to be provided in view projection (default: EPSG:3857). To transform, use [proj.transform()](module-ol_proj.html#.transform) and [proj.transformExtent()](module-ol_proj.html#.transformExtent).</p>
[ol/proj](module-ol_proj.html)</td>
<td><p>Changes to all [ol/Object](module-ol_Object-BaseObject.html)s can be observed by calling the [object.on('propertychange')](module-ol_Object-BaseObject.html#on) method. Listeners receive an [ol/Object~ObjectEvent](module-ol_Object-ObjectEvent.html) with information on the changed property and old value.</p>
<td>
[ol.Geolocation](ol.Geolocation.html)<br>
[ol.Overlay](ol.Overlay.html)<br></td>
[ol/Geolocation](module-ol_Geolocation.html)<br>
[ol/Overlay](module-ol_Overlay-Overlay.html)<br></td>
</tr></table>
&nbsp;
@@ -52,11 +52,4 @@ The OpenLayers API consists of
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.
*Note for Closure Compiler users compiling their application code together with OpenLayers*:
The names of types other than those in the list above (e.g. `ol.Coordinate`) are subject to change. It
is therefore recommended to either use the resolved type as listed in the API docs (e.g.
`Array.<number>` instead of `ol.Coordinate`), or pay attention to the upgrade notes, which will list
the changes for those types.
*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.

View File

@@ -1,5 +1,6 @@
/**
* Define an @api tag
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('api', {
@@ -8,32 +9,32 @@ exports.defineTags = function(dictionary) {
canHaveName: false,
onTagged: function(doclet, tag) {
includeTypes(doclet);
doclet.stability = "stable";
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.
*/
var api = [];
var classes = {};
var types = {};
const api = [];
const classes = {};
const types = {};
const modules = {};
function hasApiMembers(doclet) {
return doclet.longname.split('#')[0] == this.longname;
}
function includeAugments(doclet) {
var augments = doclet.augments;
const augments = doclet.augments;
if (augments) {
var cls;
for (var i = augments.length - 1; i >= 0; --i) {
let cls;
for (let i = augments.length - 1; i >= 0; --i) {
cls = classes[augments[i]];
if (cls) {
includeAugments(cls);
@@ -57,10 +58,8 @@ function includeAugments(doclet) {
}
});
}
if (cls.longname.indexOf('oli.') !== 0) {
cls._hideConstructor = true;
delete cls.undocumented;
}
cls._hideConstructor = true;
delete cls.undocumented;
}
}
}
@@ -68,25 +67,25 @@ function includeAugments(doclet) {
function extractTypes(item) {
item.type.names.forEach(function(type) {
var match = type.match(/^(.*<)?([^>]*)>?$/);
const match = type.match(/^(.*<)?([^>]*)>?$/);
if (match) {
modules[match[2]] = true;
types[match[2]] = true;
}
});
}
function includeTypes(doclet) {
if (doclet.params && doclet.kind != 'class') {
if (doclet.params) {
doclet.params.forEach(extractTypes);
}
if (doclet.returns) {
doclet.returns.forEach(extractTypes);
}
if (doclet.isEnum) {
types[doclet.meta.code.name] = true;
if (doclet.properties) {
doclet.properties.forEach(extractTypes);
}
if (doclet.type && doclet.meta.code.type == 'MemberExpression') {
// types in olx.js
extractTypes(doclet);
}
}
@@ -94,13 +93,9 @@ function includeTypes(doclet) {
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
// Keep track of api items - needed in parseComplete to determine classes
// with api members.
if (doclet.meta.filename == 'olx.js' && doclet.kind == 'typedef') {
doclet.undocumented = false;
}
const doclet = e.doclet;
if (doclet.stability) {
modules[doclet.longname.split('~').shift()] = true;
api.push(doclet);
}
// Mark explicity defined namespaces - needed in parseComplete to keep
@@ -109,14 +104,15 @@ exports.handlers = {
doclet.namespace_ = true;
}
if (doclet.kind == 'class') {
modules[doclet.longname.split('~').shift()] = true;
classes[doclet.longname] = doclet;
}
},
parseComplete: function(e) {
var doclets = e.doclets;
for (var i = doclets.length - 1; i >= 0; --i) {
var doclet = doclets[i];
const doclets = e.doclets;
for (let i = doclets.length - 1; i >= 0; --i) {
const doclet = doclets[i];
if (doclet.stability || doclet.namespace_) {
if (doclet.kind == 'class') {
includeAugments(doclet);
@@ -134,6 +130,13 @@ exports.handlers = {
// Always document namespaces and items with stability annotation
continue;
}
if (doclet.kind == 'module' && doclet.longname in modules) {
// Document all modules that are referenced by the API
continue;
}
if (doclet.isEnum || doclet.kind == 'typedef') {
continue;
}
if (doclet.kind == 'class' && api.some(hasApiMembers, doclet)) {
// Mark undocumented classes with documented members as unexported.
// This is used in ../template/tmpl/container.tmpl to hide the

View File

@@ -1,11 +1,11 @@
var events = {};
var classes = {};
const events = {};
const classes = {};
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
var cls;
const doclet = e.doclet;
let cls;
if (doclet.kind == 'event') {
cls = doclet.longname.split('#')[0];
if (!(cls in events)) {
@@ -18,8 +18,8 @@ exports.handlers = {
},
parseComplete: function(e) {
var doclets = e.doclets;
var doclet, i, ii, j, jj, event, fires;
const doclets = e.doclets;
let doclet, i, ii, j, jj, event, fires;
for (i = 0, ii = doclets.length - 1; i < ii; ++i) {
doclet = doclets[i];
if (doclet.fires) {
@@ -28,7 +28,7 @@ exports.handlers = {
for (j = 0, jj = doclet.fires.length; j < jj; ++j) {
event = doclet.fires[j].replace('event:', '');
if (events[event]) {
fires.push.apply(fires, events[event]);
fires.push.apply(fires, events[event]);
} else {
fires.push(doclet.fires[j]);
}

View File

@@ -1,109 +0,0 @@
/*
* This is a hack to prevent inheritDoc tags from entirely removing
* documentation of the method that inherits the documentation.
*
* TODO: Remove this hack when https://github.com/jsdoc3/jsdoc/issues/53
* is addressed.
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('inheritDoc', {
mustHaveValue: false,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
doclet.inheritdoc = true;
}
});
};
var lookup = {};
var incompleteByClass = {};
var keepKeys = ['comment', 'meta', 'name', 'memberof', 'longname', 'augment',
'stability'];
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
var 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) {
var ancestors, candidate, candidates, doclet, i, j, k, l, key;
var incompleteDoclet, stability, incomplete, incompletes;
var 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];
}
}
}
}
}
}
}
}
}
}
}
};

View File

@@ -0,0 +1,49 @@
/**
* @filedesc
* Inlines option params from typedefs
*/
const properties = {};
exports.handlers = {
/**
* Collects all typedefs, keyed by longname
* @param {Object} e Event object.
*/
newDoclet: function(e) {
if (e.doclet.kind == 'typedef' && e.doclet.properties) {
properties[e.doclet.longname] = e.doclet.properties;
}
},
/**
* Adds `options.*` params for options that match the longname of one of the
* collected typedefs.
* @param {Object} e Event object.
*/
parseComplete: function(e) {
const doclets = e.doclets;
for (let i = 0, ii = doclets.length; i < ii; ++i) {
const doclet = doclets[i];
if (doclet.params) {
const params = doclet.params;
for (let j = 0, jj = params.length; j < jj; ++j) {
const param = params[j];
if (param.type && param.type.names) {
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;
}));
}
}
}
}
}
}
};

View File

@@ -0,0 +1,106 @@
/**
* @filedesc
* Expands module path type to point to default export when no name is given
*/
const fs = require('fs');
const path = require('path');
let moduleRoot;
function addDefaultExportPath(obj) {
if (!Array.isArray(obj)) {
obj = obj.names;
}
obj.forEach((name, index) => {
const matches = name.match(/module\:([^>|),\.<]|)+/g);
if (matches) {
matches.forEach(module => {
if (!/[~\.]/.test(module)) {
const checkFile = path.resolve(moduleRoot, module.replace(/^module\:/, ''));
const file = fs.readFileSync(require.resolve(checkFile), 'utf-8');
const lines = file.split('\n');
let hasDefaultExport = false;
for (let i = 0, ii = lines.length; i < ii; ++i) {
hasDefaultExport = hasDefaultExport || /^export default [^\{]/.test(lines[i]);
const match = lines[i].match(/^export default ([A-Za-z_$][A-Za-z0-9_$]+);$/);
if (match) {
// Use variable name if default export is assigned to a variable.
obj[index] = name = name.replace(module, `${module}~${match[1]}`);
return;
}
}
if (hasDefaultExport) {
// Duplicate last part if default export is not assigned to a variable.
obj[index] = name = name.replace(module, `${module}~${module.split('/').pop()}`);
}
}
});
}
});
}
function replaceLinks(comment) {
const matches = comment.match(/\{@link [^\} #]+}/g);
if (matches) {
const modules = matches.map(m => {
const mm = m.match(/(module:[^\}]+)}$/);
if (mm) {
return mm[1];
}
}).filter(m => !!m);
const newModules = modules.concat();
addDefaultExportPath(newModules);
modules.forEach((module, i) => {
comment = comment.replace(module, newModules[i]);
});
}
return comment;
}
exports.handlers = {
/**
* Adds default export to module path types without name
* @param {Object} e Event object.
*/
newDoclet: function(e) {
const doclet = e.doclet;
if (doclet.kind == 'module') {
const levelsUp = doclet.longname.replace(/^module\:/, '').split('/');
if (doclet.meta.filename != 'index.js') {
levelsUp.pop();
}
const pathArgs = [doclet.meta.path].concat(levelsUp.map(() => '../'));
moduleRoot = path.resolve.apply(null, pathArgs);
} else {
if (doclet.description) {
doclet.description = replaceLinks(doclet.description);
}
if (doclet.classdesc) {
doclet.classdesc = replaceLinks(doclet.classdesc);
}
const module = doclet.longname.split('#').shift();
if (module.indexOf('module:') == 0 && module.indexOf('.') !== -1) {
doclet.longname = doclet.longname.replace(module, module.replace('.', '~'));
}
if (doclet.augments) {
addDefaultExportPath(doclet.augments);
}
if (doclet.params) {
doclet.params.forEach(p => addDefaultExportPath(p.type));
}
if (doclet.returns) {
doclet.returns.forEach(r => addDefaultExportPath(r.type));
}
if (doclet.properties) {
doclet.properties.forEach(p => addDefaultExportPath(p.type));
}
if (doclet.type) {
addDefaultExportPath(doclet.type);
}
}
}
};

View File

@@ -1,25 +1,25 @@
var classes = {};
var observables = {};
const classes = {};
const observables = {};
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
const doclet = e.doclet;
if (doclet.kind == 'class') {
classes[doclet.longname] = doclet;
}
},
parseComplete: function(e) {
var doclets = e.doclets;
var cls, doclet, event, i, ii, observable;
const doclets = e.doclets;
let cls, doclet, event, i, ii, observable;
for (i = 0, ii = doclets.length - 1; i < ii; ++i) {
doclet = doclets[i];
cls = classes[doclet.longname.split('#')[0]];
if (typeof doclet.observable == 'string' && cls) {
var name = doclet.name.replace(/^[sg]et/, '');
let name = doclet.name.replace(/^[sg]et/, '');
name = name.substr(0, 1).toLowerCase() + name.substr(1);
var key = doclet.longname.split('#')[0] + '#' + name;
const key = doclet.longname.split('#')[0] + '#' + name;
doclet.observable = key;
if (!observables[key]) {
observables[key] = {};
@@ -27,7 +27,7 @@ exports.handlers = {
observable = observables[key];
observable.name = name;
observable.readonly = typeof observable.readonly == 'boolean' ?
observable.readonly : true;
observable.readonly : true;
if (doclet.name.indexOf('get') === 0) {
observable.type = doclet.returns[0].type;
observable.description = doclet.returns[0].description;
@@ -47,7 +47,7 @@ exports.handlers = {
if (!cls.fires) {
cls.fires = [];
}
event = 'ol.Object.Event#event:change:' + name;
event = 'module:ol/Object~ObjectEvent#event:change:' + name;
if (cls.fires.indexOf(event) == -1) {
cls.fires.push(event);
}

View File

@@ -1,49 +1,27 @@
/*
* Converts olx.js @type annotations into properties of the previous @typedef.
* Changes @enum annotations into @typedef.
*/
var lastOlxTypedef = null;
var olxTypes = {};
// names of the olx typenames
var olxTypeNames = [];
// types that are undefined or typedefs containing undefined
var undefinedLikes = null;
function addSubparams(params) {
for (var j = 0, jj = params.length; j < jj; ++j) {
var param = params[j];
var types = param.type.names;
for (var k = 0, kk = types.length; k < kk; ++k) {
var name = types[k];
if (name in olxTypes) {
param.subparams = olxTypes[name];
// TODO addSubparams(param.subparams);
// TODO Do we need to support multiple object literal types per
// param?
break;
}
}
}
}
let undefinedLikes = null;
/**
* Changes the description of the param, if it is found to be a required
* option of an olxTypeName.
* Changes the description of the param if it is required.
* @param {Object} doclet The doclet.
* @returns {Object} The modified doclet.
*/
function markRequiredIfNeeded(doclet){
var memberof = doclet.memberof;
// only check doclets that belong to an olxTypeName
if (!memberof || olxTypeNames.indexOf(memberof) == -1) {
function markRequiredIfNeeded(doclet) {
const memberof = doclet.memberof;
if (!memberof) {
return doclet;
}
var types = doclet.type.names;
var isRequiredParam = true;
const types = doclet.type.names;
let isRequiredParam = true;
// iterate over all types that are like-undefined (see above for explanation)
for (var idx = undefinedLikes.length - 1; idx >= 0; idx--) {
var undefinedLike = undefinedLikes[idx];
for (let idx = undefinedLikes.length - 1; idx >= 0; idx--) {
const undefinedLike = undefinedLikes[idx];
// … if the current types contains a type that is undefined-like,
// it is not required.
if (types.indexOf(undefinedLike) != -1) {
@@ -52,9 +30,9 @@ function markRequiredIfNeeded(doclet){
}
if (isRequiredParam) {
var reqSnippet = '<span class="required-option">Required.</span></p>';
var endsWithP = /<\/p>$/i;
var description = doclet.description;
const reqSnippet = '<span class="required-option">Required.</span></p>';
const endsWithP = /<\/p>$/i;
let description = doclet.description;
if (description && endsWithP.test(description)) {
description = description.replace(endsWithP, ' ' + reqSnippet);
} else if (doclet.description === undefined) {
@@ -69,13 +47,14 @@ function markRequiredIfNeeded(doclet){
* Iterates over all doclets and finds the names of types that contain
* undefined. Stores the names in the global variable undefinedLikes, so
* that e.g. markRequiredIfNeeded can use these.
* @param {Array} doclets The doclets.
*/
function findTypesLikeUndefined(doclets) {
undefinedLikes = ['undefined']; // include type 'undefined' explicitly
for (var i = doclets.length - 1; i >= 0; --i) {
var doclet = doclets[i];
if(doclet.kind === 'typedef') {
var types = doclet.type.names;
for (let i = doclets.length - 1; i >= 0; --i) {
const doclet = doclets[i];
if (doclet.kind === 'typedef') {
const types = doclet.type.names;
if (types.indexOf('undefined') !== -1) {
// the typedef contains 'undefined', so it self is undefinedLike.
undefinedLikes.push(doclet.longname);
@@ -87,20 +66,8 @@ function findTypesLikeUndefined(doclets) {
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
if (doclet.meta.filename == 'olx.js') {
if (doclet.kind == 'typedef') {
lastOlxTypedef = doclet;
olxTypeNames.push(doclet.longname);
olxTypes[doclet.longname] = [];
doclet.properties = [];
} else if (lastOlxTypedef && doclet.memberof == lastOlxTypedef.longname) {
lastOlxTypedef.properties.push(doclet);
olxTypes[lastOlxTypedef.longname].push(doclet);
} else {
lastOlxTypedef = null;
}
} else if (doclet.isEnum) {
const doclet = e.doclet;
if (doclet.isEnum) {
// We never export enums, so we document them like typedefs
doclet.kind = 'typedef';
delete doclet.isEnum;
@@ -108,15 +75,10 @@ exports.handlers = {
},
parseComplete: function(e) {
var doclets = e.doclets;
const doclets = e.doclets;
findTypesLikeUndefined(doclets);
for (var i = doclets.length - 1; i >= 0; --i) {
var doclet = doclets[i];
var params = doclet.params;
if (params) {
addSubparams(params);
}
markRequiredIfNeeded(doclet);
for (let i = doclets.length - 1; i >= 0; --i) {
markRequiredIfNeeded(doclets[i]);
}
}

View File

@@ -47,21 +47,6 @@ ol.MapBrowserEventType = {
```
Note the value of the `@event` annotation. The text before the hash refers to the event class that the event belongs to, and the text after the hash is the type of the event.
To export event properties, they need to be defined in `externs/oli.js` (also see `readme.md` in `externs/`) and marked with an @api annotation:
```js
/** @interface */
oli.MapBrowserEvent;
/**
* @type {ol.Coordinate}
* @api
*/
oli.MapBrowserEvent.prototype.coordinate;
// ...
};
```
To document which events are fired by a class or method, the `@fires` annotation is used:
```js
/**

View File

@@ -1,152 +1,164 @@
/*global env: true */
var template = require('jsdoc/lib/jsdoc/template'),
fs = require('jsdoc/lib/jsdoc/fs'),
path = require('jsdoc/lib/jsdoc/path'),
taffy = require('taffydb').taffy,
handle = require('jsdoc/lib/jsdoc/util/error').handle,
helper = require('jsdoc/lib/jsdoc/util/templateHelper'),
_ = require('underscore'),
htmlsafe = helper.htmlsafe,
linkto = helper.linkto,
resolveAuthorLinks = helper.resolveAuthorLinks,
scopeToPunc = helper.scopeToPunc,
hasOwnProp = Object.prototype.hasOwnProperty,
data,
view,
outdir = env.opts.destination;
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) {
return property in this;
};
const template = require('jsdoc/lib/jsdoc/template');
const fs = require('jsdoc/lib/jsdoc/fs');
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;
const outdir = env.opts.destination;
// Work around an issue with hasOwnProperty in JSDoc's templateHelper.js.
//TODO Fix in JSDoc.
Object.prototype.hasOwnProperty = hasOwnProp;
let view;
let data;
function find(spec) {
return helper.find(data, spec);
return helper.find(data, 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) {
return helper.getAncestorLinks(data, doclet);
return helper.getAncestorLinks(data, doclet);
}
function hashToLink(doclet, hash) {
if ( !/^(#.+)/.test(hash) ) { return hash; }
if (!/^(#.+)/.test(hash)) {
return hash;
}
var url = helper.createLink(doclet);
let url = helper.createLink(doclet);
url = url.replace(/(#.+|$)/, hash);
return '<a href="' + url + '">' + hash + '</a>';
url = url.replace(/(#.+|$)/, hash);
return '<a href="' + url + '">' + hash + '</a>';
}
function needsSignature(doclet) {
var needsSig = false;
let needsSig = false;
// function and class definitions always get a signature
if (doclet.kind === 'function' || doclet.kind === 'class') {
needsSig = true;
}
// 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) {
// typedefs that contain functions get a signature, too
else if (doclet.kind === 'typedef' && doclet.type && doclet.type.names &&
doclet.type.names.length) {
for (var i = 0, l = doclet.type.names.length; i < l; i++) {
if (doclet.type.names[i].toLowerCase() === 'function') {
needsSig = true;
break;
}
}
for (let i = 0, l = doclet.type.names.length; i < l; i++) {
if (doclet.type.names[i].toLowerCase() === 'function') {
needsSig = true;
break;
}
}
}
return needsSig;
return needsSig;
}
function addSignatureParams(f) {
var params = helper.getSignatureParams(f, 'optional');
const params = helper.getSignatureParams(f, 'optional');
f.signature = (f.signature || '') + '('+params.join(', ')+')';
f.signature = (f.signature || '') + '(' + params.join(', ') + ')';
}
function addSignatureReturns(f) {
var returnTypes = helper.getSignatureReturns(f);
const returnTypes = helper.getSignatureReturns(f);
f.signature = '<span class="signature">'+(f.signature || '') + '</span>';
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>';
}
if (returnTypes.length) {
f.signature += '<span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">' + (returnTypes.length ? '{' + returnTypes.join('|') + '}' : '') + '</span>';
}
}
function addSignatureTypes(f) {
var types = helper.getSignatureTypes(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
var regexp = new RegExp('\\\\', 'g');
// always use forward slashes
const regexp = new RegExp('\\\\', 'g');
Object.keys(files).forEach(function(file) {
files[file].shortened = files[file].resolved.replace(commonPrefix, '')
.replace(regexp, '/');
});
Object.keys(files).forEach(function(file) {
files[file].shortened = files[file].resolved.replace(commonPrefix, '')
.replace(regexp, '/');
});
return files;
return files;
}
function resolveSourcePath(filepath) {
return path.resolve(process.cwd(), filepath);
return path.resolve(process.cwd(), filepath);
}
function getPathFromDoclet(doclet) {
if (!doclet.meta) {
return;
}
if (!doclet.meta) {
return;
}
var 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;
return filepath;
}
function generate(title, docs, filename, resolveLinks) {
resolveLinks = resolveLinks === false ? false : true;
resolveLinks = resolveLinks === false ? false : true;
var docData = {
filename: filename,
title: title,
docs: docs,
packageInfo: ( find({kind: 'package'}) || [] ) [0]
};
const docData = {
filename: filename,
title: title,
docs: docs,
packageInfo: (find({kind: 'package'}) || []) [0]
};
var outpath = path.join(outdir, filename),
html = view.render('container.tmpl', docData);
const outpath = path.join(outdir, filename);
let html = view.render('container.tmpl', docData);
if (resolveLinks) {
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
}
if (resolveLinks) {
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
}
fs.writeFileSync(outpath, html, 'utf8');
fs.writeFileSync(outpath, html, 'utf8');
}
function generateSourceFiles(sourceFiles) {
Object.keys(sourceFiles).forEach(function(file) {
var source;
// links are keyed to the shortened path in each doclet's `meta.filename` property
var sourceOutfile = helper.getUniqueFilename(sourceFiles[file].shortened);
helper.registerLink(sourceFiles[file].shortened, sourceOutfile);
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);
helper.registerLink(sourceFiles[file].shortened, sourceOutfile);
try {
source = {
kind: 'source',
code: helper.htmlsafe( fs.readFileSync(sourceFiles[file].resolved, 'utf8') )
};
}
catch(e) {
handle(e);
}
try {
source = {
kind: 'source',
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);
});
}
/**
@@ -161,346 +173,348 @@ function generateSourceFiles(sourceFiles) {
* @param {Array.<module:jsdoc/doclet.Doclet>} modules - The array of module doclets to search.
*/
function attachModuleSymbols(doclets, modules) {
var symbols = {};
const symbols = {};
// build a lookup table
doclets.forEach(function(symbol) {
symbols[symbol.longname] = symbol;
});
// build a lookup table
doclets.forEach(function(symbol) {
symbols[symbol.longname] = symbol;
});
return modules.map(function(module) {
if (symbols[module.longname]) {
module.module = symbols[module.longname];
module.module.name = module.module.name.replace('module:', 'require("') + '")';
}
});
modules.forEach(function(module) {
if (symbols[module.longname]) {
module.module = symbols[module.longname];
module.module.name = module.module.name.replace('module:', 'require("') + '")';
}
});
}
/**
* Create the navigation sidebar.
* @param {object} members The members that will be used to create the sidebar.
* @param {array<object>} members.classes
* @param {array<object>} members.externals
* @param {array<object>} members.globals
* @param {array<object>} members.mixins
* @param {array<object>} members.modules
* @param {array<object>} members.namespaces
* @param {array<object>} members.tutorials
* @param {array<object>} members.events
* @param {Array<Object>} members.classes Classes.
* @param {Array<Object>} members.externals Externals.
* @param {Array<Object>} members.globals Globals.
* @param {Array<Object>} members.mixins Mixins.
* @param {Array<Object>} members.modules Modules.
* @param {Array<Object>} members.namespaces Namespaces.
* @param {Array<Object>} members.tutorials Tutorials.
* @param {Array<Object>} members.events Events.
* @return {string} The HTML for the navigation sidebar.
*/
function buildNav(members) {
var nav = [];
// merge namespaces and classes, then sort
var merged = members.namespaces.concat(members.classes);
merged.sort(function (a, b) {
if (a.longname > b.longname)
return 1;
if (a.longname < b.longname)
return -1;
return 0;
});
_.each(merged, function (v) {
// exclude 'olx' and interfaces from sidebar
if (v.longname.indexOf('olx') !== 0 && v.interface !== true) {
if (v.kind == 'namespace') {
nav.push({
type: 'namespace',
longname: v.longname,
name: v.name,
members: find({
kind: 'member',
memberof: v.longname
}),
methods: find({
kind: 'function',
memberof: v.longname
}),
typedefs: find({
kind: 'typedef',
memberof: v.longname
}),
events: find({
kind: 'event',
memberof: v.longname
})
});
}
if (v.kind == 'class') {
nav.push({
type: 'class',
longname: v.longname,
name: v.name,
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
})
});
}
const nav = [];
// merge namespaces and classes, then sort
const merged = members.modules.concat(members.classes);
merged.sort(function(a, b) {
if (a.longname > b.longname) {
return 1;
}
if (a.longname < b.longname) {
return -1;
}
return 0;
});
_.each(merged, function(v) {
// exclude interfaces from sidebar
if (v.interface !== true) {
if (v.kind == 'module') {
nav.push({
type: 'module',
longname: v.longname,
name: v.name,
members: find({
kind: 'member',
memberof: v.longname
}),
methods: find({
kind: 'function',
memberof: v.longname
}),
typedefs: find({
kind: 'typedef',
memberof: v.longname
}),
events: find({
kind: 'event',
memberof: v.longname
})
});
}
});
return nav;
if (v.kind == 'class') {
nav.push({
type: 'class',
longname: v.longname,
name: v.name,
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
})
});
}
}
});
return nav;
}
/**
@param {TAFFY} taffyData See <http://taffydb.com/>.
@param {object} opts
@param {Tutorial} tutorials
* @param {Object} taffyData See <http://taffydb.com/>.
* @param {Object} opts Options.
* @param {Object} tutorials Tutorials.
*/
exports.publish = function(taffyData, opts, tutorials) {
data = taffyData;
data = taffyData;
var conf = env.conf.templates || {};
conf['default'] = conf['default'] || {};
const conf = env.conf.templates || {};
conf['default'] = conf['default'] || {};
var templatePath = opts.template;
view = new template.Template(templatePath + '/tmpl');
const templatePath = opts.template;
view = new template.Template(templatePath + '/tmpl');
// claim some special filenames in advance, so the All-Powerful Overseer of Filename Uniqueness
// doesn't try to hand them out later
var indexUrl = helper.getUniqueFilename('index');
// don't call registerLink() on this one! 'index' is also a valid longname
// claim some special filenames in advance, so the All-Powerful Overseer of Filename Uniqueness
// doesn't try to hand them out later
const indexUrl = helper.getUniqueFilename('index');
// don't call registerLink() on this one! 'index' is also a valid longname
var globalUrl = helper.getUniqueFilename('global');
helper.registerLink('global', globalUrl);
const globalUrl = helper.getUniqueFilename('global');
helper.registerLink('global', globalUrl);
// set up templating
view.layout = 'layout.tmpl';
// set up templating
view.layout = 'layout.tmpl';
// set up tutorials for helper
helper.setTutorials(tutorials);
// set up tutorials for helper
helper.setTutorials(tutorials);
data = helper.prune(data);
data.sort('longname, version, since');
helper.addEventListeners(data);
data = helper.prune(data);
data.sort('longname, version, since');
helper.addEventListeners(data);
var sourceFiles = {};
var sourceFilePaths = [];
data().each(function(doclet) {
doclet.attribs = '';
let sourceFiles = {};
const sourceFilePaths = [];
data().each(function(doclet) {
doclet.attribs = '';
if (doclet.examples) {
doclet.examples = doclet.examples.map(function(example) {
var caption, code;
if (doclet.examples) {
doclet.examples = doclet.examples.map(function(example) {
let caption, code;
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
};
});
}
if (doclet.see) {
doclet.see.forEach(function(seeItem, i) {
doclet.see[i] = hashToLink(doclet, seeItem);
});
if (example.match(/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) {
caption = RegExp.$1;
code = RegExp.$3;
}
// build a list of source files
var sourcePath;
var resolvedSourcePath;
if (doclet.meta) {
sourcePath = getPathFromDoclet(doclet);
resolvedSourcePath = resolveSourcePath(sourcePath);
sourceFiles[sourcePath] = {
resolved: resolvedSourcePath,
shortened: null
};
sourceFilePaths.push(resolvedSourcePath);
}
});
return {
caption: caption || '',
code: code || example
};
});
}
if (doclet.see) {
doclet.see.forEach(function(seeItem, i) {
doclet.see[i] = hashToLink(doclet, seeItem);
});
}
fs.mkPath(outdir);
// build a list of source files
let sourcePath;
let resolvedSourcePath;
if (doclet.meta) {
sourcePath = getPathFromDoclet(doclet);
resolvedSourcePath = resolveSourcePath(sourcePath);
sourceFiles[sourcePath] = {
resolved: resolvedSourcePath,
shortened: null
};
sourceFilePaths.push(resolvedSourcePath);
}
});
// copy the template's static files to outdir
var fromDir = path.join(templatePath, 'static');
var staticFiles = fs.ls(fromDir, 3);
fs.mkPath(outdir);
staticFiles.forEach(function(fileName) {
var toDir = fs.toDir( fileName.replace(fromDir, outdir) );
// copy the template's static files to outdir
const fromDir = path.join(templatePath, 'static');
const staticFiles = fs.ls(fromDir, 3);
staticFiles.forEach(function(fileName) {
const toDir = fs.toDir(fileName.replace(fromDir, outdir));
fs.mkPath(toDir);
fs.copyFileSync(fileName, toDir);
});
// copy user-specified static files to outdir
let staticFilePaths;
let staticFileFilter;
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();
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);
const toDir = fs.toDir(fileName.replace(sourcePath, outdir));
fs.mkPath(toDir);
fs.copyFileSync(fileName, toDir);
});
});
}
// copy user-specified static files to outdir
var staticFilePaths;
var staticFileFilter;
var 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();
if (sourceFilePaths.length) {
sourceFiles = shortenPaths(sourceFiles, path.commonPrefix(sourceFilePaths));
}
data().each(function(doclet) {
const url = helper.createLink(doclet);
helper.registerLink(doclet.longname, url);
staticFilePaths.forEach(function(filePath) {
var extraStaticFiles = staticFileScanner.scan([filePath], 10, staticFileFilter);
// replace the filename with a shortened version of the full path
let docletPath;
if (doclet.meta) {
docletPath = getPathFromDoclet(doclet);
docletPath = sourceFiles[docletPath].shortened;
if (docletPath) {
doclet.meta.filename = docletPath;
}
}
});
extraStaticFiles.forEach(function(fileName) {
var sourcePath = fs.statSync(filePath).isDirectory() ? filePath :
path.dirname(filePath);
var toDir = fs.toDir( fileName.replace(sourcePath, outdir) );
fs.mkPath(toDir);
fs.copyFileSync(fileName, toDir);
});
});
data().each(function(doclet) {
const url = helper.longnameToUrl[doclet.longname];
if (url.indexOf('#') > -1) {
doclet.id = helper.longnameToUrl[doclet.longname].split(/#/).pop();
} else {
doclet.id = doclet.name;
}
if (sourceFilePaths.length) {
sourceFiles = shortenPaths( sourceFiles, path.commonPrefix(sourceFilePaths) );
if (needsSignature(doclet)) {
addSignatureParams(doclet);
addSignatureReturns(doclet);
}
data().each(function(doclet) {
var url = helper.createLink(doclet);
helper.registerLink(doclet.longname, url);
});
// replace the filename with a shortened version of the full path
var docletPath;
if (doclet.meta) {
docletPath = getPathFromDoclet(doclet);
docletPath = sourceFiles[docletPath].shortened;
if (docletPath) {
doclet.meta.filename = docletPath;
}
}
});
// do this after the urls have all been generated
data().each(function(doclet) {
doclet.ancestors = getAncestorLinks(doclet);
data().each(function(doclet) {
var url = helper.longnameToUrl[doclet.longname];
if (url.indexOf('#') > -1) {
doclet.id = helper.longnameToUrl[doclet.longname].split(/#/).pop();
}
else {
doclet.id = doclet.name;
}
if ( needsSignature(doclet) ) {
addSignatureParams(doclet);
addSignatureReturns(doclet);
}
});
// do this after the urls have all been generated
data().each(function(doclet) {
doclet.ancestors = getAncestorLinks(doclet);
if (doclet.kind === 'member') {
addSignatureTypes(doclet);
}
if (doclet.kind === 'constant') {
addSignatureTypes(doclet);
doclet.kind = 'member';
}
});
var members = helper.getMembers(data);
members.tutorials = tutorials.children;
// add template helpers
view.find = find;
view.linkto = linkto;
view.resolveAuthorLinks = resolveAuthorLinks;
view.tutoriallink = tutoriallink;
view.htmlsafe = htmlsafe;
view.members = members; //@davidshimjs: To make navigation for customizing
// once for all
view.nav = buildNav(members);
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
if (conf['default'].outputSourceFiles) {
generateSourceFiles(sourceFiles);
if (doclet.kind === 'member') {
addSignatureTypes(doclet);
}
if (members.globals.length) { generate('Global', [{kind: 'globalobj'}], globalUrl); }
if (doclet.kind === 'constant') {
addSignatureTypes(doclet);
doclet.kind = 'member';
}
});
// index page displays information from package.json and lists files
var files = find({kind: 'file'});
const members = helper.getMembers(data);
members.tutorials = tutorials.children;
generate('Index',
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}].concat(files),
// add template helpers
view.find = find;
view.linkto = linkto;
view.resolveAuthorLinks = resolveAuthorLinks;
view.tutoriallink = tutoriallink;
view.htmlsafe = htmlsafe;
view.members = members; //@davidshimjs: To make navigation for customizing
// once for all
view.nav = buildNav(members);
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
if (conf['default'].outputSourceFiles) {
generateSourceFiles(sourceFiles);
}
if (members.globals.length) {
generate('Global', [{kind: 'globalobj'}], globalUrl);
}
// 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);
// set up the lists that we'll use to generate pages
var classes = taffy(members.classes);
var modules = taffy(members.modules);
var namespaces = taffy(members.namespaces);
var mixins = taffy(members.mixins);
var externals = taffy(members.externals);
// set up the lists that we'll use to generate pages
const classes = taffy(members.classes);
const modules = taffy(members.modules);
const namespaces = taffy(members.namespaces);
const mixins = taffy(members.mixins);
const externals = taffy(members.externals);
for (var longname in helper.longnameToUrl) {
if ( hasOwnProp.call(helper.longnameToUrl, longname) ) {
var myClasses = helper.find(classes, {longname: longname});
if (myClasses.length) {
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname]);
}
for (const longname in helper.longnameToUrl) {
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]);
}
var myModules = helper.find(modules, {longname: longname});
if (myModules.length) {
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
}
const myModules = helper.find(modules, {longname: longname});
if (myModules.length) {
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
}
var myNamespaces = helper.find(namespaces, {longname: longname});
if (myNamespaces.length) {
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
}
const myNamespaces = helper.find(namespaces, {longname: longname});
if (myNamespaces.length) {
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
}
var myMixins = helper.find(mixins, {longname: longname});
if (myMixins.length) {
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
}
const myMixins = helper.find(mixins, {longname: longname});
if (myMixins.length) {
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
}
var myExternals = helper.find(externals, {longname: longname});
if (myExternals.length) {
generate('External: ' + myExternals[0].name, myExternals, helper.longnameToUrl[longname]);
}
}
const myExternals = helper.find(externals, {longname: longname});
if (myExternals.length) {
generate('External: ' + myExternals[0].name, myExternals, helper.longnameToUrl[longname]);
}
}
}
// TODO: move the tutorial functions to templateHelper.js
function generateTutorial(title, tutorial, filename) {
var tutorialData = {
title: title,
header: tutorial.title,
content: tutorial.parse(),
children: tutorial.children
};
// TODO: move the tutorial functions to templateHelper.js
function generateTutorial(title, tutorial, filename) {
const tutorialData = {
title: title,
header: tutorial.title,
content: tutorial.parse(),
children: tutorial.children
};
var tutorialPath = path.join(outdir, filename),
html = view.render('tutorial.tmpl', tutorialData);
let html = view.render('tutorial.tmpl', tutorialData);
// yes, you can use {@link} in tutorials too!
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
// yes, you can use {@link} in tutorials too!
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
const tutorialPath = path.join(outdir, filename);
fs.writeFileSync(tutorialPath, html, 'utf8');
}
fs.writeFileSync(tutorialPath, html, 'utf8');
}
// 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));
saveChildren(child);
});
}
saveChildren(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));
saveChildren(child);
});
}
saveChildren(tutorials);
};

View File

@@ -85,7 +85,7 @@ $(function () {
var srcLinks = $('div.tag-source');
srcLinks.each(function(i, el) {
var textParts = el.innerHTML.trim().split(', ');
var link = 'https://github.com/openlayers/openlayers/blob/v' + currentVersion + '/' +
var link = 'https://github.com/openlayers/openlayers/blob/v' + currentVersion + '/src/ol/' +
textParts[0];
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
'<a href="' + link + textParts[1].replace('line ', '#L') + '">' +

View File

@@ -20,12 +20,10 @@
<br>
<?js if (doc.stability || doc.kind == 'namespace') {
var ancestors = doc.ancestors.map(a => a.replace(/>\./g, '>').replace(/\.</g, '<')).join('/');
var name = doc.name.toLowerCase();
var parts = [];
if (ancestors) {
parts.push(ancestors);
parts.push(ancestors.split('~').shift());
}
parts.push(name);
var importPath = parts.join('/');
?>
<pre class="prettyprint source"><code>import <?js= doc.name ?> from '<?js= importPath ?>';</code></pre>

View File

@@ -11,7 +11,7 @@ var self = this;
?>
<li class="item" data-name="<?js= item.longname ?>">
<span class="title">
<?js= self.linkto(item.longname, item.longname) ?>
<?js= self.linkto(item.longname, item.longname.replace('module:', '')) ?>
<?js if (item.type === 'namespace' &&
(item.members.length + item.typedefs.length + item.methods.length +
item.events.length > 0)) { ?>

View File

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

View File

@@ -8,7 +8,7 @@ exports.defineTags = function(dictionary) {
dictionary.defineTag('api', {
onTagged: function(doclet, tag) {
doclet.api = tag.text || 'experimental';
doclet.api = true;
}
});

View File

@@ -6,7 +6,7 @@
*/
var DEFAULT_VALUE = /default\s+is\s+`?(true|false)`?/i;
const DEFAULT_VALUE = /default\s+is\s+`?(true|false)`?/i;
/**
@@ -19,9 +19,9 @@ exports.defineTags = function(dictionary) {
canHaveType: true,
mustHaveValue: true,
onTagged: function(doclet, tag) {
var types = tag.value.type.names;
const types = tag.value.type.names;
if (types.length === 1 && types[0] === 'boolean') {
var match = tag.value.description.match(DEFAULT_VALUE);
const match = tag.value.description.match(DEFAULT_VALUE);
if (match) {
doclet.define = {
default: match[1] === 'true'

View File

@@ -2,8 +2,8 @@
* @fileoverview Generates JSON output based on exportable symbols (those with
* an api tag) and boolean defines (with a define tag and a default value).
*/
var assert = require('assert');
var path = require('path');
const assert = require('assert');
const path = require('path');
/**
@@ -15,67 +15,52 @@ var path = require('path');
exports.publish = function(data, opts) {
function getTypes(data) {
var types = [];
const types = [];
data.forEach(function(name) {
types.push(name.replace(/^function$/, 'Function'));
});
return types;
}
// get all doclets with the "api" property or define (excluding events) or
// with olx namespace
var classes = {};
var docs = data(
[
{define: {isObject: true}},
function() {
if (this.kind == 'class') {
if (!('extends' in this) || typeof this.api == 'string') {
classes[this.longname] = this;
return true;
}
// get all doclets with the "api" property or define (excluding events)
const classes = {};
const docs = data(
[
{define: {isObject: true}},
function() {
if (this.kind == 'class') {
if (!('extends' in this) || typeof this.api == 'boolean') {
classes[this.longname] = this;
return true;
}
return (typeof this.api == 'string' ||
this.meta && (/[\\\/]externs$/).test(this.meta.path));
}
],
{kind: {'!is': 'file'}},
{kind: {'!is': 'event'}}).get();
return (typeof this.api == 'boolean' ||
this.meta && (/[\\\/]externs$/).test(this.meta.path));
}
],
{kind: {'!is': 'file'}},
{kind: {'!is': 'event'}}).get();
// get symbols data, filter out those that are members of private classes
var symbols = [];
var defines = [];
var typedefs = [];
var externs = [];
var base = [];
var augments = {};
var symbolsByName = {};
const symbols = [];
const defines = [];
const typedefs = [];
const externs = [];
let base = [];
const augments = {};
const symbolsByName = {};
docs.filter(function(doc) {
var include = true;
var constructor = doc.memberof;
if (constructor && constructor.substr(-1) === '_') {
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);
'Unexpected export on private class: ' + doc.longname);
include = false;
}
return include;
}).forEach(function(doc) {
var isExterns = (/[\\\/]externs$/).test(doc.meta.path);
if (isExterns && doc.longname.indexOf('olx.') === 0) {
if (doc.kind == 'typedef') {
typedefs.push({
name: doc.longname,
types: ['{}']
});
} else {
var typedef = typedefs[typedefs.length - 1];
var type = typedef.types[0];
typedef.types[0] = type
.replace(/\}$/, ', ' + doc.longname.split('#')[1] +
': (' + getTypes(doc.type.names).join('|') + ')}')
.replace('{, ', '{');
}
} else if (doc.define) {
const isExterns = (/[\\\/]externs$/).test(doc.meta.path);
if (doc.define) {
defines.push({
name: doc.longname,
description: doc.description,
@@ -88,11 +73,10 @@ exports.publish = function(data, opts) {
types: getTypes(doc.type.names)
});
} else {
var symbol = {
const symbol = {
name: doc.longname,
kind: doc.kind,
description: doc.classdesc || doc.description,
stability: doc.api,
path: path.join(doc.meta.path, doc.meta.filename)
};
if (doc.augments) {
@@ -105,9 +89,9 @@ exports.publish = function(data, opts) {
symbol.types = getTypes(doc.type.names);
}
if (doc.params) {
var params = [];
const params = [];
doc.params.forEach(function(param) {
var paramInfo = {
const paramInfo = {
name: param.name
};
params.push(paramInfo);
@@ -142,10 +126,10 @@ exports.publish = function(data, opts) {
});
}
var target = isExterns ? externs : (doc.api ? symbols : base);
var existingSymbol = symbolsByName[symbol.name];
const target = isExterns ? externs : (doc.api ? symbols : base);
const existingSymbol = symbolsByName[symbol.name];
if (existingSymbol) {
var idx = target.indexOf(existingSymbol);
const idx = target.indexOf(existingSymbol);
target.splice(idx, 1);
}
target.push(symbol);
@@ -169,13 +153,13 @@ exports.publish = function(data, opts) {
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

@@ -4,7 +4,7 @@
*/
exports.defineTags = function(dictionary) {
var classTag = dictionary.lookUp('class');
const classTag = dictionary.lookUp('class');
dictionary.defineTag('interface', {
mustHaveValue: false,
onTagged: function(doclet, tag) {

View File

@@ -1,4 +0,0 @@
{
"exports": ["*"],
"umd": true
}

View File

@@ -1,38 +0,0 @@
{
"exports": ["*"],
"umd": true,
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/cartodb.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/geojson.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js"
],
"define": [
"ol.DEBUG_WEBGL=false"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"lintChecks",
"analyzerChecks"
],
"extra_annotation_name": [
"api", "observable"
],
"rewrite_polyfills": "false",
"compilation_level": "ADVANCED",
"warning_level": "VERBOSE",
"use_types_for_optimization": true,
"manage_closure_dependencies": true,
"create_source_map": "build/ol.js.map",
"source_map_format": "V3"
}
}

View File

@@ -1,3 +0,0 @@
# Configuration Files
This directory includes configuration files for the build scripts in and documentation templates.

21
config/rollup.js Normal file
View File

@@ -0,0 +1,21 @@
// Rollup configuration for the full build
import noderesolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import {uglify} from 'rollup-plugin-uglify';
import buble from 'rollup-plugin-buble';
import sourcemaps from 'rollup-plugin-sourcemaps';
export default {
input: 'src/index.js',
output: [
{file: 'build/ol.js', format: 'iife', sourcemap: true}
],
plugins: [
noderesolve(),
commonjs(),
buble(),
uglify(),
sourcemaps()
]
};

View File

@@ -43,7 +43,7 @@ Unknown `serverType` configured.
### 10
The default `geometryFunction` can only handle `ol.geom.Point` geometries.
The default `geometryFunction` can only handle `ol/geom/Point` geometries.
### 11
@@ -139,7 +139,7 @@ Invalid geometry layout. Must be `XY`, `XYZ`, `XYM` or `XYZM`.
### 36
Unknown SRS type. Expected `"name"` or `"EPSG"`.
Unknown SRS type. Expected `"name"`.
### 37
@@ -165,14 +165,6 @@ Expected an `ol.style.Style` or an array of `ol.style.Style`.
Expected `layers` to be an array or an `ol.Collection`.
### 44
`logo.href` should be a string.
### 45
`logo.src` should be a string.
### 46
Incorrect format for `renderer` option.

View File

@@ -21,9 +21,6 @@ Table of contents:
* [Why aren't there any features in my source?](#why-aren-t-there-any-features-in-my-source-)
* [How do I force a re-render of the map?](#how-do-i-force-a-re-render-of-the-map-)
* [Why are my features not found?](#why-are-my-features-not-found-)
* [How do I create a custom build of OpenLayers?](#how-do-i-create-a-custom-build-of-openlayers-)
* [Do I need to write my own code using Closure library?](#do-i-need-to-write-my-own-code-using-closure-library-)
* [Do I need to compress my code with Closure compiler?](#do-i-need-to-compress-my-code-with-closure-compiler-)
## What projection is OpenLayers using?
@@ -335,37 +332,3 @@ var vectorLayer = new ol.layer.Vector({
```
The recommended value is the size of the largest symbol, line width or label.
## How do I create a custom build of OpenLayers?
Please refer to the [official create custom builds tutorial](tutorials/custom-builds.html)
which explains how to create a custom build of OpenLayers with just those parts
included that you want.
## Do I need to write my own code using Closure library?
OpenLayers is built on top of the [Google Closure JavaScript
library](https://developers.google.com/closure/library/), but this
does not mean that you must use that library in your application code.
OpenLayers should play well with all sorts of JavaScript libraries out there,
and you are in no way forced to use a specific one. Choose one that looks
right for you.
## Do I need to compress my code with Closure compiler?
No, you don't need to do compress your code with the [Google Closure
compiler](https://developers.google.com/closure/compiler/).
It may be a good choice though, because when your application code and the
OpenLayers source code is compiled together using closure compiler, the
resulting build will most probably be the smallest in terms of byte-size. For
more details refer to the
[compile application and OpenLayers together tutorial](tutorials/closure.html).
If you don't want to use the closure compiler, or you can't, you are not at all
forced to use it.

View File

@@ -5,6 +5,11 @@ layout: doc.hbs
# Quick Start
This primer shows you how to put a simple map on a web page.
**For production, we strongly recommend bundling the application together with its dependencies, as explained in the [Building an OpenLayers Application](./tutorials/bundle.html) tutorial.**
## Put a map on a page
Below you'll find a complete working example. Create a new file, copy in the contents below, and open in a browser:
@@ -13,14 +18,14 @@ Below you'll find a complete working example. Create a new file, copy in the co
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://openlayers.org/en/{{ latest }}/css/ol.css" type="text/css">
<link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/{{ latest }}/css/ol.css" type="text/css">
<style>
.map {
height: 400px;
width: 100%;
}
</style>
<script src="https://openlayers.org/en/{{ latest }}/build/ol.js" type="text/javascript"></script>
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/{{ latest }}/build/ol.js"></script>
<title>OpenLayers example</title>
</head>
<body>
@@ -55,7 +60,7 @@ To include a map a web page you will need 3 things:
### Include OpenLayers
```xml
<script src="https://openlayers.org/en/{{ latest }}/build/ol.js" type="text/javascript"></script>
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/{{ latest }}/build/ol.js"></script>
```
The first part is to include the JavaScript library. For the purpose of this tutorial, here we simply point to the openlayers.org website to get the whole library. In a production environment, we would build a custom version of the library including only the module needed for our application.

View File

@@ -0,0 +1,49 @@
---
title: Introduction
layout: doc.hbs
---
# Introduction
## Objectives
OpenLayers is a modular, high-performance, feature-packed library for displaying and interacting with maps and geospatial data.
The library comes with built-in support for a wide range of commercial and free image and vector tile sources, and the most popular open and proprietary vector data formats. With OpenLayers's map projection support, data can be in any projection.
## Public API
OpenLayers is available as [`ol` npm package](https://npmjs.com/package/ol), which provides all modules of the officially supported [API](../../apidoc).
## Renderers and Browser Support
By default, OpenLayers uses a performance optimized Canvas renderer. An experimental WebGL renderer (without text rendering support) is also avaialble.
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](http://www.ecma-international.org/ecma-262/5.1/). This includes Chrome, Firefox, Safari and Edge. For older browsers and platforms like Internet Explorer (down to version 9) and Android 4.x, [polyfills](http://polyfill.io), the application bundle needs to be transpiled (e.g. using [Babel](https://babeljs.io)) and bundled with polyfills for `requestAnimationFrame`, `Element.prototype.classList` and `URL`.
The library is intended for use on both desktop/laptop and mobile devices, and supports pointer and touch interactions.
## Module and Naming Conventions
OpenLayers modules with CamelCase names provide classes as default exports, and may contain additional constants or functions as named exports:
```js
import Map from 'ol/Map';
import View from 'ol/View';
```
Class hierarchies grouped by their parent are provided in a subfolder of the package, e.g. `layer/`.
For convenience, these are also available as named exports, e.g.
```js
import {Map, View} from `ol`;
import {Tile, Vector} from `ol/layer`;
```
In addition to these re-exported classes, modules with lowercase names also provide constants or functions as named exports:
```js
import {inherits} from `ol`;
import {fromLonLat} from `ol/proj`;
```

View File

@@ -1,87 +0,0 @@
---
title: Basic project setup using NPM and Browserify
layout: doc.hbs
---
# Introduction
When going beyond modifying existing examples you might be looking for a way to setup your own code with dependency management together with external dependencies like OpenLayers.
This tutorial serves as a suggested project setup using NPM and Browserify for the most basic needs. There are several other options, and in particular you might be interested in a more modern one (ES2015) [using Webpack with OpenLayers](https://gist.github.com/tschaub/79025aef325cd2837364400a105405b8).
## Initial steps
Create a new empty directory for your project and navigate to it by running `mkdir new-project && cd new-project`. Initialize your project using `npm init` and answer the questions asked.
Add OpenLayers as dependency to your application with `npm install --save ol`.
At this point you can ask NPM to add required development dependencies by running
```
npm install --save-dev cssify browserify cssify http-server uglify-js watchify
npm install --save-dev babelify babel-plugin-transform-es2015-modules-commonjs
```
We will be using `cssify` to include the css definitions required by OpenLayers in our bundle. `watchify`, `http-server` and `uglify-js` are used to monitor for changes and to build into a minified bundle. `babelify` and `babel-plugin-transform-es2015-modules-commonjs` are used to make the `ol` package, which was created using ES2015 modules, work with CommonJS.
## Application code and index.html
Place your application code in `index.js`. Here is a simple starting point:
```js
require('ol/ol.css');
var ol_Map = require('ol/map').default;
var ol_layer_Tile = require('ol/layer/tile').default;
var ol_source_OSM = require('ol/source/osm').default;
var ol_View = require('ol/view').default;
var map = new ol_Map({
target: 'map',
layers: [
new ol_layer_Tile({
source: new ol_source_OSM()
})
],
view: new ol_View({
center: [0, 0],
zoom: 0
})
});
```
You will also need an `ìndex.html` file that will use your bundle. Here is a simple example:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Using Browserify with OpenLayers</title>
<style>
#map {
width: 400px;
height: 250px;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="bundle.js"></script>
</body>
</html>
```
## Creating a bundle
With simple scripts you can introduce the commands `npm run build` and `npm start` to manually build your bundle and watch for changes, respectively. Add the following to the script section in `package.json`:
```json
"scripts": {
"start": "watchify index.js -g cssify --outfile bundle.js & http-server",
"build": "browserify -g cssify index.js | uglifyjs --compress --output bundle.js"
}
```
Now to test your application open http://localhost:8080/ in your browser. `watchify` will update `bundle.js` whenever you change something. You simply need to reload the page in your browser to see the changes.
```
$ npm start
```
Note that `bundle.js` will contain your application code and all dependencies used in your application. From OpenLayers, it only contains the required components.

93
doc/tutorials/bundle.md Normal file
View File

@@ -0,0 +1,93 @@
---
title: Basic project setup using NPM and Parcel
layout: doc.hbs
---
# Introduction
Modern JavaScript works best when using and authoring modules. The recommended way of using OpenLayers is installing the [`ol`](https://npmjs.com/package/ol) package. This tutorial walks you through setting up a simple dev environment, which requires [node](https://nodejs.org) for everything to work.
In this tutorial, we will be using [Parcel](https://parceljs.org) to bundle our application. There are several other options, some of which are linked from the [README](https://npmjs.com/package/ol).
## Initial steps
Create a new empty directory for your project and navigate to it by running `mkdir new-project && cd new-project`. Initialize your project using `npm init` and answer the questions asked.
Add OpenLayers as dependency to your application with
npm install ol
At this point you can ask NPM to add required development dependencies by running
npm install --save-dev parcel-bundler
## Application code and index.html
Place your application code in `index.js`. Here is a simple starting point:
```js
import 'ol/ol.css';
import {Map, View} from 'ol';
import TileLayer from 'ol/layer/Tile';
import OSM from 'ol/source/OSM';
const map = new Map({
target: 'map',
layers: [
new TileLayer({
source: new OSM()
})
],
view: new View({
center: [0, 0],
zoom: 0
})
});
```
You will also need an `ìndex.html` file that will use your bundle. Here is a simple example:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Using Parcel with OpenLayers</title>
<style>
#map {
width: 400px;
height: 250px;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="./index.js"></script>
</body>
</html>
```
## Creating a bundle
With simple scripts you can introduce the commands `npm run build` and `npm start` to manually build your bundle and watch for changes, respectively. Add the following to the script section in `package.json`:
```json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "parcel index.html",
"build": "parcel build --public-url . index.html"
}
```
That's it. Now to run your application, enter
npm start
in your console. To test your application, open http://localhost:1234/ in your browser. Whenever you change something, the page will reload automatically to show the result of your changes.
Note that a single JavaScript file with all your application code and all dependencies used in your application has been created. From the OpenLayers package, it only contains the required components.
To create a production bundle of your application, simply type
npm run build
and copy the `dist/` folder to your production server.

View File

@@ -1,305 +0,0 @@
---
title: Compiling Application with Closure Compiler
layout: doc.hbs
---
# Compiling Application with Closure Compiler
**Note**: When building an application with dependencies that are available as [npm](https://npmjs.com/) packages, it will probably be easier to use the [ol](https://npmjs.com/package/ol) package and follow the instructions there.
The OpenLayers code uses the Closure Library, and it is compiled with the
Closure Compiler. Using OpenLayers in an application does not require using
Closure. But using Closure in an OpenLayers application is possible. And this
is what this tutorial is about.
When you want to include OpenLayers as separate script without bundling with your application, follow the [Creating custom builds](./custom-builds.html) tutorial instead.
This tutorial will teach you how to set up an OpenLayers application based on
the [`closure-util`](https://github.com/openlayers/closure-util) node package,
which provides utilities for working with Closure. Using `closure-util` is one
way to use Closure in a web application, but there are others. This tutorial
just covers the "`closure-util`" way.
The `closure-util` documentation is available on the [`closure-util` readme
page](https://github.com/openlayers/closure-util/blob/master/readme.md). You
don't need to read the `closure-util` documentation to follow this tutorial,
but it's available in `closure-util`'s [readme
file](https://github.com/openlayers/closure-util/blob/master/readme.md) if you
need it.
Also, the sample application built in this tutorial is
[available](https://github.com/openlayers/openlayers-closure-application) on
GitHub.
## Advantages of using Closure
This tutorial will show you how to use the Closure Compiler to compile an
application and OpenLayers together. Compiling the application code together
with the OpenLayers code has a number of advantages.
First of all, it allows you to only "pay" for the OpenLayers code your
application uses, as the compiler will exclude the OpenLayers code that the
application doesn't use. And there is no need to write and maintain a list of
"exports", which is necessary when creating custom builds of OpenLayers.
Also, compiling the application and OpenLayers together allows using
OpenLayers functions and objects that are not part of the official OpenLayers
3 API. Using non-API functions and objects may be risky, but it is mitigated by
the fact that the compiler will complain if you use functions or objects
that are not in OpenLayers anymore.
## Setting up the Application
First, create a directory for the application. We will name that directory
`openlayers-closure-application` in this tutorial.
$ mkdir openlayers-closure-application
Now change to that directory:
$ cd openlayers-closure-application
Our application will be a `node` application, and the `openlayers` and
`closure-util` node packages will be downloaded from the node package registry
using the `npm` command line tool.
So we're going to create a `package.json` file for the application, which every
node application includes. This file basically includes metadata for the
application.
Create the application's `package.json` file:
$ npm init
You can pretty much use the default answers to the questions `npm init` asks
you.
Now install OpenLayers using:
$ npm install openlayers --save
The `--save` flag persists the `openlayers` dependency in the application's
`package.json` file. You can edit `package.json` to verify that the dependency
was added.
`closure-util` is a dependency of the `openlayers` package, so it should have
been installed with `openlayers`. Use the following to verify that
`closure-util` is installed:
$ ./node_modules/openlayers/node_modules/.bin/closure-util
command argument is required
Usage: node closure-util <command> [options]
command
update-compiler Update the Compiler
update-library Update the Library
update Update both the Library and the Compiler
build Build with Closure Compiler
serve Start the development server
Options:
-l LEVEL, --loglevel LEVEL Log level [info]
## Create an OpenLayers map
You're now going to create a JavaScript file that creates an OpenLayers map.
This is the file that we will define the application's entry point.
First of all create an `src` directory at the root of the application:
$ mkdir src
Now add a file `main.js` to `src`, with the following content:
```js
goog.provide('app');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
/**
* @type {ol.PluggableMap}
*/
app.map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: [0, 0],
zoom: 4
})
});
```
`goog.provide('app')` creates the namespace `app` for the application. The
`goog.require` statements that follow define the OpenLayers constructors and
namespaces that the application uses. The rest of the code just creates the
OpenLayers map as you would do in any OpenLayers application.
## Compiling the Application
We're now going to compile the application and OpenLayers together, using the
Closure Compiler and `closure-util`. For this we need to create a JSON config
file, that we will then pass as an input file to the `closure-util` command.
The minimum config file looks like this:
```json
{
"lib": [
"node_modules/openlayers/src/**/*.js",
"node_modules/openlayers/build/ol.ext/**/*.js",
"src/**/*.js"
],
"compile": {
"closure_entry_point": "app",
"externs": [
"node_modules/openlayers/externs/bingmaps.js",
"node_modules/openlayers/externs/cartodb.js",
"node_modules/openlayers/externs/closure-compiler.js",
"node_modules/openlayers/externs/esrijson.js",
"node_modules/openlayers/externs/geojson.js",
"node_modules/openlayers/externs/proj4js.js",
"node_modules/openlayers/externs/tilejson.js",
"node_modules/openlayers/externs/topojson.js"
],
"define": [
"ol.ENABLE_WEBGL=false"
],
"js": [
"node_modules/openlayers/src/ol/typedefs.js",
"node_modules/openlayers/externs/olx.js",
"node_modules/openlayers/externs/oli.js"
],
"extra_annotation_name": [
"api", "observable"
],
"rewrite_polyfills": "false",
"compilation_level": "ADVANCED",
"warning_level": "VERBOSE",
"output_wrapper": "(function(){%output%})();",
"use_types_for_optimization": true
}
}
```
Create a `config.json` file with the above content at the root of the
application directory.
We can now use `closure-util` to compile the code:
$ ./node_modules/openlayers/node_modules/.bin/closure-util build config.json app.js
The resulting `app.js` file, which you can view in your editor if you're
curious, includes a minified version of the application code (`main.js`), and
the OpenLayers code that the application code uses.
Here is a version of `config.json` with more compilation checks enabled:
```json
{
"lib": [
"node_modules/openlayers/src/**/*.js",
"node_modules/openlayers/build/ol.ext/**/*.js",
"src/**/*.js"
],
"compile": {
"closure_entry_point": "app",
"externs": [
"node_modules/openlayers/externs/bingmaps.js",
"node_modules/openlayers/externs/cartodb.js",
"node_modules/openlayers/externs/closure-compiler.js",
"node_modules/openlayers/externs/esrijson.js",
"node_modules/openlayers/externs/geojson.js",
"node_modules/openlayers/externs/proj4js.js",
"node_modules/openlayers/externs/tilejson.js",
"node_modules/openlayers/externs/topojson.js"
],
"define": [
"ol.ENABLE_WEBGL=false"
],
"js": [
"node_modules/openlayers/src/ol/typedefs.js",
"node_modules/openlayers/externs/olx.js",
"node_modules/openlayers/externs/oli.js"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"unknownDefines",
"lintChecks",
"analyzerChecks"
],
"extra_annotation_name": [
"api", "observable"
],
"compilation_level": "ADVANCED",
"warning_level": "VERBOSE",
"output_wrapper": "(function(){%output%})();",
"use_types_for_optimization": true
}
}
```
## Create an HTML file for the Application
You can now go ahead and create a simple HTML for the application. Create
a `index.html` file with the following content at the root the application
directory:
```html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="node_modules/openlayers/css/ol.css" type="text/css">
<title>Simple example</title>
<style>
#map {
width: 600px;
height: 400px;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="app.js" type="text/javascript"></script>
</body>
</html>
```
Note that the page includes a `script` tag referencing the `app.js` file,
which is the file resulting from the compilation.
You are done!
## Run Application in Debug Mode
As a bonus, we're going to show how to use `closure-util` to run the
application in "debug" mode, where the original application and OpenLayers
scripts are loaded one by one in the page.
Start the `closure-util` development server:
$ ./node_modules/openlayers/node_modules/.bin/closure-util serve config.json
Now change the `script` tag to the following in the `index.html` file:
```html
<script src="@?main=src/main.js" type="text/javascript"></script>
```
Reload the page in your browser and you should see that scripts are now loaded
individually, making debugging much easier.

View File

@@ -6,48 +6,58 @@ layout: doc.hbs
# Basic Concepts
## Map
The core component of OpenLayers is the map (`ol.Map`). It is rendered to a `target` container (e.g. a `div` element on the web page that contains the map). All map properties can either be configured at construction time, or by using setter methods, e.g. `setTarget()`.
The core component of OpenLayers is the map (`Map`). It is rendered to a `target` container (e.g. a `div` element on the web page that contains the map). All map properties can either be configured at construction time, or by using setter methods, e.g. `setTarget()`.
```xml
<div id="map" style="width: 100%, height: 400px"></div>
<script>
var map = new ol.Map({target: 'map'});
import Map from 'ol/Map';
var map = new Map({target: 'map'});
</script>
```
## View
`ol.Map` is not responsible for things like center, zoom level and projection of the map. Instead, these are properties of an `ol.View` instance.
`Map` is not responsible for things like center, zoom level and projection of the map. Instead, these are properties of a `View` instance.
```js
map.setView(new ol.View({
import View from 'ol/View';
map.setView(new View({
center: [0, 0],
zoom: 2
}));
```
An `ol.View` also has a `projection`. The projection determines the coordinate system of the `center` and the units for map resolution calculations. If not specified (like in the above snippet), the default projection is Spherical Mercator (EPSG:3857), with meters as map units.
A `View` also has a `projection`. The projection determines the coordinate system of the `center` and the units for map resolution calculations. If not specified (like in the above snippet), the default projection is Spherical Mercator (EPSG:3857), with meters as map units.
The `zoom` option is a convenient way to specify the map resolution. The available zoom levels are determined by `maxZoom` (default: 28), `zoomFactor` (default: 2) and `maxResolution` (default is calculated in such a way that the projection's validity extent fits in a 256x256 pixel tile). Starting at zoom level 0 with a resolution of `maxResolution` units per pixel, subsequent zoom levels are calculated by dividing the previous zoom level's resolution by `zoomFactor`, until zoom level `maxZoom` is reached.
## Source
To get remote data for a layer, OpenLayers uses `ol.source.Source` subclasses. These are available for free and commercial map tile services like OpenStreetMap or Bing, for OGC sources like WMS or WMTS, and for vector data in formats like GeoJSON or KML.
To get remote data for a layer, OpenLayers uses `source/Source` subclasses. These are available for free and commercial map tile services like OpenStreetMap or Bing, for OGC sources like WMS or WMTS, and for vector data in formats like GeoJSON or KML.
```js
var osmSource = new ol.source.OSM();
import OSM from 'ol/source/OSM';
var osmSource = OSM();
```
## Layer
A layer is a visual representation of data from a `source`. OpenLayers has three basic types of layers: `ol.layer.Tile`, `ol.layer.Image` and `ol.layer.Vector`.
A layer is a visual representation of data from a `source`. OpenLayers has four basic types of layers: `layer/Tile`, `layer/Image`, `layer/Vector` and `layer/VectorTile`.
`ol.layer.Tile` is for layer sources that provide pre-rendered, tiled images in grids that are organized by zoom levels for specific resolutions.
`layer/Tile` is for layer sources that provide pre-rendered, tiled images in grids that are organized by zoom levels for specific resolutions.
`ol.layer.Image` is for server rendered images that are available for arbitrary extents and resolutions.
`layer/Image` is for server rendered images that are available for arbitrary extents and resolutions.
`ol.layer.Vector` is for vector data that is rendered client-side.
`layer/Vector` is for vector data that is rendered client-side.
`layer/VectorTile` is for tiled vector data that is rendered client-side.
```js
var osmLayer = new ol.layer.Tile({source: osmSource});
import TileLayer from 'ol/layer/Tile';
var osmLayer = new TileLayer({source: osmSource});
map.addLayer(osmLayer);
```
@@ -59,11 +69,16 @@ The above snippets can be conflated to a self contained map configuration with v
```xml
<div id="map" style="width: 100%, height: 400px"></div>
<script>
new ol.Map({
import Map from 'ol/Map';
import View from 'ol/View';
import OSM from 'ol/source/OSM';
import TileLayer from 'ol/source/Tile';
new Map({
layers: [
new ol.layer.Tile({source: new ol.source.OSM()})
new TileLayer({source: new ol.source.OSM()})
],
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
}),

View File

@@ -1,237 +0,0 @@
---
title: Custom builds
layout: doc.hbs
---
# Creating custom builds
OpenLayers is a big library providing a lot of functionality. So it is unlikely that an application will need and use all the functionality OpenLayers provides. This is why creating application-specific OpenLayers builds, with just the functionality your application needs, is often a good idea.
An alternative to creating custom builds is to compile your application code together with OpenLayers. See the [Compiling Application with Closure Compiler](closure.html) tutorial for more information.
This particular tutorial explains how to create custom builds of OpenLayers.
## Requirements
OpenLayers's build tools use Node and Java, so you need to have Node and Java installed on your machine. You can run `node --version` and `java -version` to test that Node and Java are installed, respectively. See [developing guide](https://github.com/openlayers/openlayers/blob/master/DEVELOPING.md) for minimum version numbers required.
## Download OpenLayers
Obviously, creating a custom build requires the OpenLayers source and specific build scripts.
To get the OpenLayers source and the build scripts you can clone the openlayers [repository](https://github.com/openlayers/openlayers), or you can download one of the release archives. You can also download the `openlayers` Node package from the Node package registry, using NPM (the Node Package Manager). This is the method we are going to use in this tutorial.
Create a directory:
$ mkdir openlayers
Download the OpenLayers distribution using NPM:
$ npm install openlayers
This will download the latest stable version of OpenLayers, and install it under `node_modules`. You can list the content of `node_modules` to verify that it effectively contains a directory named "openlayers".
The Node packages onto which the `openlayers` package depends are installed under `node_modules/openlayers/node_modules`. That directory should, for example, include `closure-util`, which is the utility library OpenLayers uses for Closure.
You should now have everything you need to create custom builds of OpenLayers!
## Create a build configuration file
Creating a custom build requires writing a build configuration file. The format of build configuration files is JSON. Here is a simple example of a build configuration file:
```json
{
"exports": [
"ol.Map",
"ol.View",
"ol.control.defaults",
"ol.layer.Tile",
"ol.source.OSM"
],
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/cartodb.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/geojson.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js"
],
"extra_annotation_name": [
"api", "observable"
],
"compilation_level": "ADVANCED",
"manage_closure_dependencies": true,
"rewrite_polyfills": false
}
}
```
Create a file named `ol-custom.json` with that content, and save it under the `node_modules/openlayers/build` directory. (You can save it to any location really.)
The most relevant part of this configuration object is the `"exports"` array. This array declares the functions/constructors you use in your JavaScript code. For example, the above configuration file is what you'd use for the following JavaScript code:
```js
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
controls: ol.control.defaults({
attributionOptions: {
collapsible: false
}
}),
view: new ol.View({
center: [0, 0],
zoom: 4
})
});
```
Note that this JavaScript code corresponds to OpenLayers's [`simple`](https://openlayers.org/en/master/examples/simple.html) example.
You are now ready to create your first OpenLayers build. Use the following command to create the build:
$ cd node_modules/openlayers
$ node tasks/build.js build/ol-custom.json build/ol-custom.js
The build command may take some time, but it should end with an output in the console such as the following:
info ol Parsing dependencies
info ol Compiling 364 sources
The build command should have created an `ol-custom.js` file in the `node_modules/openlayers/build` directory. You can verify that the file was created. You can even open it in your editor if you're curious.
As a test, you can use the following HTML file to verify that your custom build works as expected:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>OpenLayers example</title>
<link rel="stylesheet" href="node_modules/openlayers/css/ol.css" />
<style>
#map {
width: 600px;
height: 400px;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="node_modules/openlayers/build/ol-custom.js"></script>
<script>
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: [0, 0],
zoom: 4
})
});
</script>
</body>
</html>
```
## More on the config file
### `define`'s
Closure allows you to define constants that can be set at compile time. The OpenLayers code defines several such values.
Setting some of these to `false` means that the portions of the code relating to this setting become "dead", i.e. are never executed. As Closure Compiler's `ADVANCED` mode removes dead code, this makes the size of the advanced compiled file smaller.
You might have noticed that the build file you've just created is considerably smaller than the full build, but it can be reduced further. This is because both renderers and other optional code are included by default. We only need one renderer, and we do not use the optional code, so can exclude what we don't use by setting properties with `define`s. So add a define section to the config above:
```
"define": [
"ol.ENABLE_WEBGL=false",
"ol.ENABLE_PROJ4JS=false",
"ol.ENABLE_RASTER_REPROJECTION=false"
],
```
and re-run the build script. The build size should now be smaller.
### Externs
The Closure documentation explains that "externs" are for external names used in the code being compiled. The compiler includes externs for built-ins such as `document`. The `externs` directory of the OpenLayers code includes files for all those used in some part of the library. For example, if you use Bing Maps, you should include the Bing externs file in the `externs` section of the config file.
`oli.js` and `olx.js` are externs files for the OpenLayers API. For example `olx.js` includes extern definitions for OpenLayers's constructor options. `closure-compiler.js` fixes any issues that may arise with a specific compiler version. You should always use these three files as externs when creating custom builds.
### Other compiler options
There are a couple of other compiler options in the config file above. `manage_closure_dependencies` and `rewrite_polyfills` should always be used.
You can specify any of the other compiler options here as needed, such as the renaming reports, output manifest, or source maps. There is a full list of available options in [closure-util](https://github.com/openlayers/closure-util/blob/master/compiler-options.txt).
Note that `build.js` currently requires you to enter an output file and will write the output from the compiler to it; it does not use the `js_output_file` compiler option. If you specify this in the config file, there will be no compiler output, so `build.js`'s output file will be empty.
## A more complicated example
Now let's try a more complicated example: [`heatmaps-earthquakes`](https://openlayers.org/en/master/examples/heatmap-earthquakes.html). The build configuration file looks like this:
```json
{
"exports": [
"ol.layer.Heatmap",
"ol.source.Vector",
"ol.format.KML",
"ol.layer.Heatmap#getSource",
"ol.source.Vector#on",
"ol.source.Vector.Event#feature",
"ol.Feature#get",
"ol.Feature#set",
"ol.layer.Tile",
"ol.source.Stamen",
"ol.Map",
"ol.View",
"ol.layer.Heatmap#setRadius",
"ol.layer.Heatmap#setBlur"
],
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/cartodb.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/geojson.js",
"externs/olx.js",
"externs/oli.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js"
],
"define": [
"ol.ENABLE_WEBGL=false",
"ol.ENABLE_PROJ4JS=false",
"ol.ENABLE_RASTER_REPROJECTION=false"
],
"compilation_level": "ADVANCED",
"manage_closure_dependencies": true,
"rewrite_polyfills": false
}
}
```
The exports are given here in the order in which they occur in the `heatmaps-earthquakes` example's JavaScript code. In this example we not only use the `ol.` functions and constructors, but also `prototype` methods where the `ol` namespace is not directly used. In the code, we have for example `vector.getSource().on()`. This means we are using the `getSource` method of `layer.Heatmap` and the `on` method of `source.KML`, so this is what has to be exported. Similarly, `event.feature.get()` means we are using the `feature` property of `source.Vector.Event` and the `get` method of `Feature`. If any of these names are left out, the compile will complete successfully, but the missing names will be obfuscated and you will get a 'property undefined' error when you try and run the script.
## Maintaining the code
If you installed OpenLayers from the Node package, you can use `npm` to upgrade to the latest version. If you cloned the Github repo, simply pulling in the latest code may not be enough, as some of the packages used, for example, the compiler, may need upgrading too. Do this by using `npm install` rather than `npm update`.
## Conclusion
This tutorial should have given you the information you need to create custom builds, i.e. builds tailored to your application. See the [tasks readme](https://github.com/openlayers/openlayers/tree/master/tasks/readme.md) for more information on the build scripts and the properties you can use in the build configuration file.

View File

@@ -5,9 +5,7 @@ layout: doc.hbs
# Tutorials
* [Introduction to OpenLayers](introduction.html)
* [Building an OpenLayers Application](bundle.html)
* [Basic Concepts](concepts.html)
* [Create Custom Builds](custom-builds.html)
* [Bundle Application and OpenLayers using Browserify](browserify.html)
* [Compile Application and OpenLayers together](closure.html)
* [Some Background on OpenLayers](background.html)
* [Raster Reprojection](raster-reprojection.html)

View File

@@ -1,42 +0,0 @@
---
title: Introduction
layout: doc.hbs
---
# Introduction
## Objectives
With version 3, the OpenLayers web mapping library was fundamentally redesigned. The widely used version 2 dates from the early days of Javascript development, and was increasingly showing its age. So it has been rewritten from the ground up to use modern design patterns.
The initial release aims to support much of the functionality provided by version 2, with support for a wide range of commercial and free tile sources, and the most popular open-source vector data formats. As with version 2, data can be in any projection. The initial release also adds some additional functionality, such as the ability to easily rotate or animate maps.
It is also designed such that major new features, such as displaying 3D maps, or using WebGL to quickly display large vector data sets, can be added in later releases.
## Google Closure
OpenLayers was written in a way so it can be compiled with [__Closure Compiler__](https://developers.google.com/closure/compiler/). Its 'advanced' compilation mode offers a level of compression that exceeds anything else available.
## Public API
Using the advanced optimizations of the Closure Compiler means that properties and methods are renamed &ndash; `longMeaningfulName` might become `xB` &ndash; and so are effectively unusable in applications using the library. To be usable, they have to be explicitly `exported`. This means the exported names, those not renamed, effectively become the public API of the library. These __exportable__ properties and methods are marked in the source, and documented in the [API docs](../../apidoc). This is the officially supported API of the library. A build containing all these exportable names is known as a __full build__. A hosted version of this is available, which can be used by any application.
## Custom Builds
Unlike in, say, Node, where a module's exports are fixed in the source, with Closure Compiler, exports can be defined at compile time. This makes it easy to create builds that are customized to the needs of a particular site or application: a __custom build__ only exports those properties and methods needed by the site or application. As the full build is large, and will probably become larger as new features are added to the API, it's recommended that sites create a custom build for production software.
## Renderers and Browser Support
The library currently includes two renderers: Canvas and WebGL. Both of them support both raster data from tile/image servers, and vector data; WebGL however does not support labels. Clearly only those browsers that [support Canvas](http://caniuse.com/canvas) can use the Canvas renderer. Equally, the WebGL renderer can only be used on those devices and [browsers](http://caniuse.com/webgl) that support WebGL.
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`.
The library is intended for use on both desktop/laptop and mobile devices.
## Objects and Naming Conventions
The top-level namespace is `ol` (basically, `var ol = {};`). Subdivisions of this are:
* further namespaces, such as `ol.layer`; these have a lower-case initial
* simple objects containing static properties and methods, such as `ol.easing`; these also have a lower-case initial
* types, which have an upper-case initial. These are mainly 'classes', which here means a constructor function with prototypal inheritance, such as `ol.Map` or `ol.layer.Vector` (the Vector class within the layer namespace). There are however other, simpler, types, such as `ol.Extent`, which is an array.
Class namespaces, such as `ol.layer` have a base class type with the same name, such as `ol.layer.Layer`. These are mainly abstract classes, from which the other subclasses inherit.
Source files are similarly organised, with a directory for each class namespace. Names are however all lower-case, for example, `ol/layer/vector.js`.
OpenLayers follows the convention that the names of private properties and methods, that is, those that are not part of the API, end in an underscore. In general, instance properties are private and accessed using accessors.

View File

@@ -10,18 +10,22 @@ Transformation of the map projections of the image happens directly in a web bro
The view in any Proj4js supported coordinate reference system is possible and previously incompatible layers can now be combined and overlaid.
# Usage
The API usage is very simple. Just specify proper projection (using [EPSG](https://epsg.io) code) on `ol.View`:
``` javascript
var map = new ol.Map({
The API usage is very simple. Just specify proper projection (e.g. using [EPSG](https://epsg.io) code) on `ol/View`:
```js
import {Map, View} from `ol`;
import TileLayer from `ol/layer/Tile`;
import TileWMS from `ol/source/TileWMS`;
var map = new Map({
target: 'map',
view: new ol.View({
view: new View({
projection: 'EPSG:3857', //HERE IS THE VIEW PROJECTION
center: [0, 0],
zoom: 2
}),
layers: [
new ol.layer.Tile({
source: new ol.source.TileWMS({
new TileLayer({
source: new TileWMS({
projection: 'EPSG:4326', //HERE IS THE DATA SOURCE PROJECTION
url: 'http://demo.boundlessgeo.com/geoserver/wms',
params: {
@@ -32,7 +36,7 @@ var map = new ol.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.
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)
@@ -41,26 +45,29 @@ If a source (based on `ol.source.TileImage` or `ol.source.Image`) has a projecti
- [Image reprojection](https://openlayers.org/en/master/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.
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
npm install proj4
Following example shows definition of a [British National Grid](https://epsg.io/27700):
``` html
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.4.4/proj4.js"></script>
```
```js
import proj4 from 'proj4';
import {get as getProjection, register} from 'ol/proj';
``` javascript
proj4.defs('EPSG:27700', '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 ' +
'+x_0=400000 +y_0=-100000 +ellps=airy ' +
'+towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 ' +
'+units=m +no_defs');
var proj27700 = ol.proj.get('EPSG:27700');
register(proj4);
var proj27700 = getProjection('EPSG:27700');
proj27700.setExtent([0, 0, 700000, 1300000]);
```
### Change of the view projection
To switch the projection used to display the map you have to set a new `ol.View` with selected projection on the `ol.Map`:
To switch the projection used to display the map you have to set a new `ol/View` with selected projection on the `ol/Map`:
``` javascript
map.setView(new ol.View({
map.setView(new View({
projection: 'EPSG:27700',
center: [400000, 650000],
zoom: 4
@@ -69,16 +76,16 @@ map.setView(new ol.View({
## TileGrid and Extents
When reprojection is needed, new tiles (in the target projection) are under the hood created from the original source tiles.
The TileGrid of the reprojected tiles is by default internally constructed using `ol.tilegrid.getForProjection(projection)`.
The TileGrid of the reprojected tiles is by default internally constructed using `ol/tilegrid~getForProjection(projection)`.
The projection should have extent defined (see above) for this to work properly.
Alternatively, a custom target TileGrid can be constructed manually and set on the source instance using `ol.source.TileImage#setTileGridForProjection(projection, tilegrid)`.
Alternatively, a custom target TileGrid can be constructed manually and set on the source instance using `ol/source/TileImage~setTileGridForProjection(projection, tilegrid)`.
This TileGrid will then be used when reprojecting to the specified projection instead of creating the default one.
In certain cases, this can be used to optimize performance (by tweaking tile sizes) or visual quality (by specifying resolutions).
# How it works
The reprojection process is based on triangles -- the target raster is divided into a limited number of triangles with vertices transformed using `ol.proj` capabilities ([proj4js](http://proj4js.org/) is usually utilized to define custom transformations).
The reprojection process is based on triangles -- the target raster is divided into a limited number of triangles with vertices transformed using `ol/proj` capabilities ([proj4js](http://proj4js.org/) is usually utilized to define custom transformations).
The reprojection of pixels inside the triangle is approximated with an affine transformation (with rendering hardware-accelerated by the canvas 2d context):
<img src="raster-reprojection-resources/how-it-works.jpg" alt="How it works" width="600" />
@@ -102,12 +109,8 @@ For debugging, rendering of the reprojection edges can be enabled by `ol.source.
# Advanced
### Disabling reprojection
In case you are creating a custom build of OpenLayers and do not need the reprojection code, you can reduce the build size by setting `ol.ENABLE_RASTER_REPROJECTION` to `false`, which completely disables the reprojection support.
See [Custom builds](custom-builds.html#defines) tutorial on how to do this.
### Triangulation precision threshold
The default [triangulation error threshold](#dynamic-triangulation) in pixels is given by `ol.DEFAULT_RASTER_REPROJECTION_ERROR_THRESHOLD` (0.5 pixel).
The default [triangulation error threshold](#dynamic-triangulation) in pixels is given by `ERROR_THRESHOLD` (0.5 pixel).
In case a different threshold needs to be defined for different sources, the `reprojectionErrorThreshold` option can be passed when constructing the tile image source.
###Limiting visibility of reprojected map by extent
@@ -126,7 +129,7 @@ Setting such a limit is demonstrated in the [reprojection demo example](https://
### Resolution calculation
When determining source tiles to load, the ideal source resolution needs to be calculated.
The `ol.reproj.calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution)` function calculates the ideal value in order to achieve pixel mapping as close as possible to 1:1 during reprojection, which is then used to select proper zoom level from the source.
The `ol/reproj~calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution)` function calculates the ideal value in order to achieve pixel mapping as close as possible to 1:1 during reprojection, which is then used to select proper zoom level from the source.
It is, however, generally not practical to use the same source zoom level for the whole target zoom level -- different projections can have significantly different resolutions in different parts of the world (e.g. polar regions in EPSG:3857 vs EPSG:4326) and enforcing a single resolution for the whole zoom level would result in some tiles being scaled up/down, possibly requiring a huge number of source tiles to be loaded.
Therefore, the resolution mapping is calculated separately for each reprojected tile (in the middle of the tile extent).

View File

@@ -1,3 +1,10 @@
/*
* Jugl.js -- JavaScript Template Library
*
* Copyright 2007-2010 Tim Schaub
* Released under the MIT license. Please see
* http://github.com/tschaub/jugl/blob/master/license.txt for the full license.
*/
/*
* Jugl.js -- JavaScript Template Library
*

View File

@@ -1,36 +1,36 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
})
],
target: 'map',
controls: ol.control.defaults({
controls: defaultControls({
attributionOptions: {
collapsible: false
}
}),
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
});
document.getElementById('zoom-out').onclick = function() {
var view = map.getView();
var zoom = view.getZoom();
const view = map.getView();
const zoom = view.getZoom();
view.setZoom(zoom - 1);
};
document.getElementById('zoom-in').onclick = function() {
var view = map.getView();
var zoom = view.getZoom();
const view = map.getView();
const zoom = view.getZoom();
view.setZoom(zoom + 1);
};

View File

@@ -1,27 +1,27 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.easing');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.OSM');
import Map from '../src/ol/Map.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';
var london = ol.proj.fromLonLat([-0.12755, 51.507222]);
var moscow = ol.proj.fromLonLat([37.6178, 55.7517]);
var istanbul = ol.proj.fromLonLat([28.9744, 41.0128]);
var rome = ol.proj.fromLonLat([12.5, 41.9]);
var bern = ol.proj.fromLonLat([7.4458, 46.95]);
const london = fromLonLat([-0.12755, 51.507222]);
const moscow = fromLonLat([37.6178, 55.7517]);
const istanbul = fromLonLat([28.9744, 41.0128]);
const rome = fromLonLat([12.5, 41.9]);
const bern = fromLonLat([7.4458, 46.95]);
var view = new ol.View({
const view = new View({
center: istanbul,
zoom: 6
});
var map = new ol.Map({
const map = new Map({
target: 'map',
layers: [
new ol.layer.Tile({
new TileLayer({
preload: 4,
source: new ol.source.OSM()
source: new OSM()
})
],
// Improve user experience by loading tiles while animating. Will make
@@ -32,7 +32,9 @@ var map = new ol.Map({
// A bounce easing method (from https://github.com/DmitryBaranovskiy/raphael).
function bounce(t) {
var s = 7.5625, p = 2.75, l;
const s = 7.5625;
const p = 2.75;
let l;
if (t < (1 / p)) {
l = s * t * t;
} else {
@@ -75,15 +77,15 @@ onClick('rotate-right', function() {
onClick('rotate-around-rome', function() {
// Rotation animation takes the shortest arc, so animate in two parts
var rotation = view.getRotation();
const rotation = view.getRotation();
view.animate({
rotation: rotation + Math.PI,
anchor: rome,
easing: ol.easing.easeIn
easing: easeIn
}, {
rotation: rotation + 2 * Math.PI,
anchor: rome,
easing: ol.easing.easeOut
easing: easeOut
});
});
@@ -112,26 +114,26 @@ onClick('bounce-to-istanbul', function() {
onClick('spin-to-rome', function() {
// Rotation animation takes the shortest arc, so animate in two parts
var center = view.getCenter();
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: ol.easing.easeIn
easing: easeIn
}, {
center: rome,
rotation: 2 * Math.PI,
easing: ol.easing.easeOut
easing: easeOut
});
});
function flyTo(location, done) {
var duration = 2000;
var zoom = view.getZoom();
var parts = 2;
var called = false;
const duration = 2000;
const zoom = view.getZoom();
let parts = 2;
let called = false;
function callback(complete) {
--parts;
if (called) {
@@ -160,13 +162,13 @@ onClick('fly-to-bern', function() {
});
function tour() {
var locations = [london, bern, rome, moscow, istanbul];
var index = -1;
const locations = [london, bern, rome, moscow, istanbul];
let index = -1;
function next(more) {
if (more) {
++index;
if (index < locations.length) {
var delay = index === 0 ? 0 : 750;
const delay = index === 0 ? 0 : 750;
setTimeout(function() {
flyTo(locations[index], next);
}, delay);

View File

@@ -1,29 +1,27 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Image');
goog.require('ol.source.OSM');
goog.require('ol.source.ImageArcGISRest');
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';
var url = 'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
const url = 'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
'Specialty/ESRI_StateCityHighway_USA/MapServer';
var layers = [
new ol.layer.Tile({
source: new ol.source.OSM()
const layers = [
new TileLayer({
source: new OSM()
}),
new ol.layer.Image({
source: new ol.source.ImageArcGISRest({
new ImageLayer({
source: new ImageArcGISRest({
ratio: 1,
params: {},
url: url
})
})
];
var map = new ol.Map({
const map = new Map({
layers: layers,
target: 'map',
view: new ol.View({
view: new View({
center: [-10997148, 4569099],
zoom: 4
})

View File

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

View File

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

View File

@@ -1,29 +1,28 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.Attribution');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
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';
var attribution = new ol.control.Attribution({
const attribution = new Attribution({
collapsible: false
});
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
})
],
controls: ol.control.defaults({attribution: false}).extend([attribution]),
controls: defaultControls({attribution: false}).extend([attribution]),
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
});
function checkSize() {
var small = map.getSize()[0] < 600;
const small = map.getSize()[0] < 600;
attribution.setCollapsible(small);
attribution.setCollapsed(small);
}

View File

@@ -3,10 +3,11 @@ layout: example.html
title: Bing Maps
shortdesc: Example of a Bing Maps layer.
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>
<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:
As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<select id="layer-select">

View File

@@ -1,10 +1,10 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.BingMaps');
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';
var styles = [
const styles = [
'Road',
'RoadOnDemand',
'Aerial',
@@ -12,13 +12,13 @@ var styles = [
'collinsBart',
'ordnanceSurvey'
];
var layers = [];
var i, ii;
const layers = [];
let i, ii;
for (i = 0, ii = styles.length; i < ii; ++i) {
layers.push(new ol.layer.Tile({
layers.push(new TileLayer({
visible: false,
preload: Infinity,
source: new ol.source.BingMaps({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: styles[i]
// use maxZoom 19 to see stretched tiles instead of the BingMaps
@@ -27,22 +27,22 @@ for (i = 0, ii = styles.length; i < ii; ++i) {
})
}));
}
var map = new ol.Map({
const map = new Map({
layers: layers,
// Improve user experience by loading tiles while dragging/zooming. Will make
// zooming choppy on mobile or slow devices.
loadTilesWhileInteracting: true,
target: 'map',
view: new ol.View({
view: new View({
center: [-6655.5402445057125, 6709968.258934638],
zoom: 13
})
});
var select = document.getElementById('layer-select');
const select = document.getElementById('layer-select');
function onChange() {
var style = select.value;
for (var i = 0, ii = layers.length; i < ii; ++i) {
const style = select.value;
for (let i = 0, ii = layers.length; i < ii; ++i) {
layers[i].setVisible(styles[i] === style);
}
}

View File

@@ -1,29 +1,26 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.Point');
goog.require('ol.layer.Vector');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
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 VectorLayer from '../src/ol/layer/Vector.js';
import VectorSource from '../src/ol/source/Vector.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
// Create separate layers for red, green an blue circles.
//
// Every layer has one feature that is styled with a circle, together the
// features form the corners of an equilateral triangle and their styles overlap
var redLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: [new ol.Feature(new ol.geom.Point([0, 0]))]
const redLayer = new VectorLayer({
source: new VectorSource({
features: [new Feature(new Point([0, 0]))]
}),
style: new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
style: new Style({
image: new CircleStyle({
fill: new Fill({
color: 'rgba(255,0,0,0.8)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: 'rgb(255,0,0)',
width: 15
}),
@@ -31,17 +28,17 @@ var redLayer = new ol.layer.Vector({
})
})
});
var greenLayer = new ol.layer.Vector({
source: new ol.source.Vector({
const greenLayer = new VectorLayer({
source: new VectorSource({
// 433.013 is roughly 250 * Math.sqrt(3)
features: [new ol.Feature(new ol.geom.Point([250, 433.013]))]
features: [new Feature(new Point([250, 433.013]))]
}),
style: new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
style: new Style({
image: new CircleStyle({
fill: new Fill({
color: 'rgba(0,255,0,0.8)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: 'rgb(0,255,0)',
width: 15
}),
@@ -49,16 +46,16 @@ var greenLayer = new ol.layer.Vector({
})
})
});
var blueLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: [new ol.Feature(new ol.geom.Point([500, 0]))]
const blueLayer = new VectorLayer({
source: new VectorSource({
features: [new Feature(new Point([500, 0]))]
}),
style: new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
style: new Style({
image: new CircleStyle({
fill: new Fill({
color: 'rgba(0,0,255,0.8)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: 'rgb(0,0,255)',
width: 15
}),
@@ -69,14 +66,14 @@ var blueLayer = new ol.layer.Vector({
// Create the map, the view is centered on the triangle. Zooming and panning is
// restricted to a sane area
var map = new ol.Map({
const map = new Map({
layers: [
redLayer,
greenLayer,
blueLayer
],
target: 'map',
view: new ol.View({
view: new View({
center: [250, 220],
extent: [0, 0, 500, 500],
resolution: 4,
@@ -86,19 +83,19 @@ var map = new ol.Map({
});
// Get the form elements and bind the listeners
var select = document.getElementById('blend-mode');
var affectRed = document.getElementById('affect-red');
var affectGreen = document.getElementById('affect-green');
var affectBlue = document.getElementById('affect-blue');
const select = document.getElementById('blend-mode');
const affectRed = document.getElementById('affect-red');
const affectGreen = document.getElementById('affect-green');
const affectBlue = document.getElementById('affect-blue');
/**
* This method sets the globalCompositeOperation to the value of the select
* field and it is bound to the precompose event of the layers.
*
* @param {ol.render.Event} evt The render event.
* @param {module:ol/render/Event~RenderEvent} evt The render event.
*/
var setBlendModeFromSelect = function(evt) {
const setBlendModeFromSelect = function(evt) {
evt.context.globalCompositeOperation = select.value;
};
@@ -107,9 +104,9 @@ var setBlendModeFromSelect = function(evt) {
* This method resets the globalCompositeOperation to the default value of
* 'source-over' and it is bound to the postcompose event of the layers.
*
* @param {ol.render.Event} evt The render event.
* @param {module:ol/render/Event~RenderEvent} evt The render event.
*/
var resetBlendModeFromSelect = function(evt) {
const resetBlendModeFromSelect = function(evt) {
evt.context.globalCompositeOperation = 'source-over';
};
@@ -117,9 +114,9 @@ var resetBlendModeFromSelect = function(evt) {
/**
* Bind the pre- and postcompose handlers to the passed layer.
*
* @param {ol.layer.Vector} layer The layer to bind the handlers to.
* @param {module:ol/layer/Vector} layer The layer to bind the handlers to.
*/
var bindLayerListeners = function(layer) {
const bindLayerListeners = function(layer) {
layer.on('precompose', setBlendModeFromSelect);
layer.on('postcompose', resetBlendModeFromSelect);
};
@@ -128,9 +125,9 @@ var bindLayerListeners = function(layer) {
/**
* Unind the pre- and postcompose handlers to the passed layers.
*
* @param {ol.layer.Vector} layer The layer to unbind the handlers from.
* @param {module:ol/layer/Vector} layer The layer to unbind the handlers from.
*/
var unbindLayerListeners = function(layer) {
const unbindLayerListeners = function(layer) {
layer.un('precompose', setBlendModeFromSelect);
layer.un('postcompose', resetBlendModeFromSelect);
};
@@ -141,8 +138,8 @@ var unbindLayerListeners = function(layer) {
*
* @this {HTMLInputElement}
*/
var affectLayerClicked = function() {
var layer;
const affectLayerClicked = function() {
let layer;
if (this.id == 'affect-red') {
layer = redLayer;
} else if (this.id == 'affect-green') {

View File

@@ -4,7 +4,7 @@ title: Box Selection
shortdesc: Using a DragBox interaction to select features.
docs: >
<p>This example shows how to use a <code>DragBox</code> interaction to select features. Selected features are added
to the feature overlay of a select interaction (<code>ol.interaction.Select</code>) for highlighting.</p>
to the feature overlay of a select interaction (<code>ol/interaction/Select</code>) for highlighting.</p>
<p>Use <code>Ctrl+Drag</code> (<code>Command+Drag</code> on Mac) to draw boxes.</p>
tags: "DragBox, feature, selection, box"
---

View File

@@ -1,46 +1,43 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.events.condition');
goog.require('ol.format.GeoJSON');
goog.require('ol.interaction.DragBox');
goog.require('ol.interaction.Select');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
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';
var vectorSource = new ol.source.Vector({
const vectorSource = new VectorSource({
url: 'data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
format: new GeoJSON()
});
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
}),
new ol.layer.Vector({
new VectorLayer({
source: vectorSource
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
});
// a normal select interaction to handle click
var select = new ol.interaction.Select();
const select = new Select();
map.addInteraction(select);
var selectedFeatures = select.getFeatures();
const selectedFeatures = select.getFeatures();
// a DragBox interaction used to select features by drawing boxes
var dragBox = new ol.interaction.DragBox({
condition: ol.events.condition.platformModifierKeyOnly
const dragBox = new DragBox({
condition: platformModifierKeyOnly
});
map.addInteraction(dragBox);
@@ -48,7 +45,7 @@ map.addInteraction(dragBox);
dragBox.on('boxend', function() {
// features that intersect the box are added to the collection of
// selected features
var extent = dragBox.getGeometry().getExtent();
const extent = dragBox.getGeometry().getExtent();
vectorSource.forEachFeatureIntersectingExtent(extent, function(feature) {
selectedFeatures.push(feature);
});
@@ -59,10 +56,10 @@ dragBox.on('boxstart', function() {
selectedFeatures.clear();
});
var infoBox = document.getElementById('info');
const infoBox = document.getElementById('info');
selectedFeatures.on(['add', 'remove'], function() {
var names = selectedFeatures.getArray().map(function(feature) {
const names = selectedFeatures.getArray().map(function(feature) {
return feature.get('name');
});
if (names.length > 0) {

View File

@@ -1,16 +1,16 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
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';
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [-8730000, 5930000],
rotation: Math.PI / 5,
zoom: 8

View File

@@ -3,10 +3,11 @@ layout: example.html
title: Styling feature with CanvasGradient or CanvasPattern
shortdesc: Example showing the countries vector layer styled with patterns and gradients.
docs: >
First this example creates a reusable [`CanvasPattern`](https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern)
This example creates a [`CanvasPattern`](https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern)
and a [`CanvasGradient`](https://developer.mozilla.org/en/docs/Web/API/CanvasGradient). The countries are loaded from
a GeoJSON file. A style function determines for each country whether to use a fill with the pregenerated
CanvasGradient (rainbow colors) or a CanvasPattern (repeating stacked circles).
a GeoJSON file. A style function determines for each country whether to use a fill with the
CanvasGradient (rainbow colors) or a CanvasPattern (repeating stacked circles). **Note**: For seamless repeat patterns,
image width and height of the pattern image must be a factor of two (2, 4, 8, ..., 512).
tags: "canvas, gradient, pattern, style"
---
<div id="map" class="map"></div>

View File

@@ -1,31 +1,22 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.extent');
goog.require('ol.format.GeoJSON');
goog.require('ol.has');
goog.require('ol.layer.Vector');
goog.require('ol.proj');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
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 VectorLayer from '../src/ol/layer/Vector.js';
import {fromLonLat} from '../src/ol/proj.js';
import VectorSource from '../src/ol/source/Vector.js';
import {Fill, Stroke, Style} from '../src/ol/style.js';
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
// Gradient and pattern are in canvas pixel space, so we adjust for the
// renderer's pixel ratio
var pixelRatio = ol.has.DEVICE_PIXEL_RATIO;
const pixelRatio = DEVICE_PIXEL_RATIO;
// Generate a rainbow gradient
function gradient(feature, resolution) {
var extent = feature.getGeometry().getExtent();
// Gradient starts on the left edge of each feature, and ends on the right.
// Coordinate origin is the top-left corner of the extent of the geometry, so
// we just divide the geometry's extent width by resolution and multiply with
// pixelRatio to match the renderer's pixel coordinate system.
var grad = context.createLinearGradient(0, 0,
ol.extent.getWidth(extent) / resolution * pixelRatio, 0);
const gradient = (function() {
const grad = context.createLinearGradient(0, 0, 512 * pixelRatio, 0);
grad.addColorStop(0, 'red');
grad.addColorStop(1 / 6, 'orange');
grad.addColorStop(2 / 6, 'yellow');
@@ -34,33 +25,33 @@ function gradient(feature, resolution) {
grad.addColorStop(5 / 6, 'blue');
grad.addColorStop(1, 'purple');
return grad;
}
})();
// Generate a canvasPattern with two circles on white background
var pattern = (function() {
canvas.width = 11 * pixelRatio;
canvas.height = 11 * pixelRatio;
const pattern = (function() {
canvas.width = 8 * pixelRatio;
canvas.height = 8 * pixelRatio;
// white background
context.fillStyle = 'white';
context.fillRect(0, 0, canvas.width, canvas.height);
// outer circle
context.fillStyle = 'rgba(102, 0, 102, 0.5)';
context.beginPath();
context.arc(5 * pixelRatio, 5 * pixelRatio, 4 * pixelRatio, 0, 2 * Math.PI);
context.arc(4 * pixelRatio, 4 * pixelRatio, 3 * pixelRatio, 0, 2 * Math.PI);
context.fill();
// inner circle
context.fillStyle = 'rgb(55, 0, 170)';
context.beginPath();
context.arc(5 * pixelRatio, 5 * pixelRatio, 2 * pixelRatio, 0, 2 * Math.PI);
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
var fill = new ol.style.Fill();
var style = new ol.style.Style({
const fill = new Fill();
const style = new Style({
fill: fill,
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#333',
width: 2
})
@@ -70,33 +61,32 @@ var style = new ol.style.Style({
* The styling function for the vector layer, will return an array of styles
* which either contains the aboove gradient or pattern.
*
* @param {ol.Feature} feature The feature to style.
* @param {number} resolution Resolution.
* @return {ol.style.Style} The style to use for the feature.
* @param {module:ol/Feature~Feature} feature The feature to style.
* @return {module:ol/style/Style} The style to use for the feature.
*/
var getStackedStyle = function(feature, resolution) {
var id = feature.getId();
fill.setColor(id > 'J' ? gradient(feature, resolution) : pattern);
const getStackedStyle = function(feature) {
const id = feature.getId();
fill.setColor(id > 'J' ? gradient : pattern);
return style;
};
// Create a vector layer that makes use of the style function above…
var vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
const vectorLayer = new VectorLayer({
source: new VectorSource({
url: 'data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
format: new GeoJSON()
}),
style: getStackedStyle
});
// … finally create a map with that layer.
var map = new ol.Map({
const map = new Map({
layers: [
vectorLayer
],
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([7, 52]),
view: new View({
center: fromLonLat([16, 48]),
zoom: 3
})
});

View File

@@ -1,34 +1,32 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.OSM');
goog.require('ol.source.TileDebug');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {fromLonLat} from '../src/ol/proj.js';
import {OSM, TileDebug} from '../src/ol/source.js';
var osmSource = new ol.source.OSM();
var map = new ol.Map({
const osmSource = new OSM();
const map = new Map({
layers: [
new ol.layer.Tile({
new TileLayer({
source: osmSource
}),
new ol.layer.Tile({
source: new ol.source.TileDebug({
new TileLayer({
source: new TileDebug({
projection: 'EPSG:3857',
tileGrid: osmSource.getTileGrid()
})
})
],
target: 'map',
controls: ol.control.defaults({
controls: defaultControls({
attributionOptions: {
collapsible: false
}
}),
view: new ol.View({
center: ol.proj.transform(
[-0.1275, 51.507222], 'EPSG:4326', 'EPSG:3857'),
view: new View({
center: fromLonLat([-0.1275, 51.507222]),
zoom: 10
})
});

View File

@@ -1,10 +1,9 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.CartoDB');
goog.require('ol.source.OSM');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {CartoDB, OSM} from '../src/ol/source.js';
var mapConfig = {
const mapConfig = {
'layers': [{
'type': 'cartodb',
'options': {
@@ -15,22 +14,22 @@ var mapConfig = {
}]
};
var cartoDBSource = new ol.source.CartoDB({
const cartoDBSource = new CartoDB({
account: 'documentation',
config: mapConfig
});
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
}),
new ol.layer.Tile({
new TileLayer({
source: cartoDBSource
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})

View File

@@ -1,56 +1,51 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.format.GeoJSON');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.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';
var source = new ol.source.Vector({
const source = new VectorSource({
url: 'data/geojson/switzerland.geojson',
format: new ol.format.GeoJSON()
format: new GeoJSON()
});
var style = new ol.style.Style({
fill: new ol.style.Fill({
const style = new Style({
fill: new Fill({
color: 'rgba(255, 255, 255, 0.6)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#319FD3',
width: 1
}),
image: new ol.style.Circle({
image: new CircleStyle({
radius: 5,
fill: new ol.style.Fill({
fill: new Fill({
color: 'rgba(255, 255, 255, 0.6)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#319FD3',
width: 1
})
})
});
var vectorLayer = new ol.layer.Vector({
const vectorLayer = new VectorLayer({
source: source,
style: style
});
var view = new ol.View({
const view = new View({
center: [0, 0],
zoom: 1
});
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
}),
vectorLayer
],
target: 'map',
controls: ol.control.defaults({
controls: defaultControls({
attributionOptions: {
collapsible: false
}
@@ -58,40 +53,40 @@ var map = new ol.Map({
view: view
});
var zoomtoswitzerlandbest = document.getElementById('zoomtoswitzerlandbest');
const zoomtoswitzerlandbest = document.getElementById('zoomtoswitzerlandbest');
zoomtoswitzerlandbest.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
const feature = source.getFeatures()[0];
const polygon = /** @type {module:ol/geom/SimpleGeometry~SimpleGeometry} */ (feature.getGeometry());
view.fit(polygon, {padding: [170, 50, 30, 150], constrainResolution: false});
}, false);
var zoomtoswitzerlandconstrained =
const zoomtoswitzerlandconstrained =
document.getElementById('zoomtoswitzerlandconstrained');
zoomtoswitzerlandconstrained.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
const feature = source.getFeatures()[0];
const polygon = /** @type {module:ol/geom/SimpleGeometry~SimpleGeometry} */ (feature.getGeometry());
view.fit(polygon, {padding: [170, 50, 30, 150]});
}, false);
var zoomtoswitzerlandnearest =
const zoomtoswitzerlandnearest =
document.getElementById('zoomtoswitzerlandnearest');
zoomtoswitzerlandnearest.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
const feature = source.getFeatures()[0];
const polygon = /** @type {module:ol/geom/SimpleGeometry~SimpleGeometry} */ (feature.getGeometry());
view.fit(polygon, {padding: [170, 50, 30, 150], nearest: true});
}, false);
var zoomtolausanne = document.getElementById('zoomtolausanne');
const zoomtolausanne = document.getElementById('zoomtolausanne');
zoomtolausanne.addEventListener('click', function() {
var feature = source.getFeatures()[1];
var point = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
const feature = source.getFeatures()[1];
const point = /** @type {module:ol/geom/SimpleGeometry~SimpleGeometry} */ (feature.getGeometry());
view.fit(point, {padding: [170, 50, 30, 150], minResolution: 50});
}, false);
var centerlausanne = document.getElementById('centerlausanne');
const centerlausanne = document.getElementById('centerlausanne');
centerlausanne.addEventListener('click', function() {
var feature = source.getFeatures()[1];
var point = /** @type {ol.geom.Point} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
const feature = source.getFeatures()[1];
const point = /** @type {module:ol/geom/Point~Point} */ (feature.getGeometry());
const size = /** @type {module:ol/size~Size} */ (map.getSize());
view.centerOn(point.getCoordinates(), size, [570, 500]);
}, false);

20
examples/chaikin.html Normal file
View File

@@ -0,0 +1,20 @@
---
layout: example.html
title: Smoothing lines using Chaikins algorithm
shortdesc: This uses Chaikins algorithm to smooth drawn lines.
docs: >
This example uses the npm package [`chaikin-smooth`](https://www.npmjs.com/package/chaikin-smooth) which
implements [Chaikins algorithm](http://graphics.cs.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html)
to smooth drawn lines.
Start by drawing on the map. Once you finish a drawing, the feature's geometry will be smoothed
as configured via the form elements.
tags: "smooth, smoothing, chaikin"
---
<div id="map" class="map"></div>
<form class="form-inline">
<label for="shall-smoothen">Smooth drawn geometry?</label>
<input id="shall-smoothen" type="checkbox" checked><br>
<label for="iterations">Number of smoothings</label>
<input style="width: 250px;" type="range" id="iterations" min="2" max="10" step="1" value="5">
</form>

54
examples/chaikin.js Normal file
View File

@@ -0,0 +1,54 @@
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 smooth from 'chaikin-smooth';
function makeSmooth(path, numIterations) {
numIterations = Math.min(Math.max(numIterations, 1), 10);
while (numIterations > 0) {
path = smooth(path);
numIterations--;
}
return path;
}
const vectorSource = new VectorSource({});
const map = new Map({
layers: [
new TileLayer({
source: new OSM(),
opacity: 0.5
}),
new VectorLayer({
source: vectorSource
})
],
target: 'map',
view: new View({
center: [1078373.5950, 6871994.5910],
zoom: 5
})
});
const shallSmoothen = document.getElementById('shall-smoothen');
const numIterations = document.getElementById('iterations');
const draw = new Draw({
source: vectorSource,
type: 'LineString'
});
map.addInteraction(draw);
draw.on('drawend', function(event) {
if (!shallSmoothen.checked) {
return;
}
const feat = event.feature;
const geometry = feat.getGeometry();
const coords = geometry.getCoordinates();
const smoothened = makeSmooth(coords, parseInt(numIterations.value, 10) || 5);
geometry.setCoordinates(smoothened);
});

View File

@@ -1,7 +1,7 @@
---
layout: example.html
title: Clustered Features
shortdesc: Example of using ol.source.Cluster.
shortdesc: Example of using ol/source/Cluster.
docs: >
This example shows how to do clustering on point features.
tags: "cluster, vector"

View File

@@ -1,58 +1,51 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.Point');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.Cluster');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
goog.require('ol.style.Text');
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 {Cluster, OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style, Text} from '../src/ol/style.js';
var distance = document.getElementById('distance');
const distance = document.getElementById('distance');
var count = 20000;
var features = new Array(count);
var e = 4500000;
for (var i = 0; i < count; ++i) {
var coordinates = [2 * e * Math.random() - e, 2 * e * Math.random() - e];
features[i] = new ol.Feature(new ol.geom.Point(coordinates));
const count = 20000;
const features = new Array(count);
const e = 4500000;
for (let i = 0; i < count; ++i) {
const coordinates = [2 * e * Math.random() - e, 2 * e * Math.random() - e];
features[i] = new Feature(new Point(coordinates));
}
var source = new ol.source.Vector({
const source = new VectorSource({
features: features
});
var clusterSource = new ol.source.Cluster({
const clusterSource = new Cluster({
distance: parseInt(distance.value, 10),
source: source
});
var styleCache = {};
var clusters = new ol.layer.Vector({
const styleCache = {};
const clusters = new VectorLayer({
source: clusterSource,
style: function(feature) {
var size = feature.get('features').length;
var style = styleCache[size];
const size = feature.get('features').length;
let style = styleCache[size];
if (!style) {
style = new ol.style.Style({
image: new ol.style.Circle({
style = new Style({
image: new CircleStyle({
radius: 10,
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#fff'
}),
fill: new ol.style.Fill({
fill: new Fill({
color: '#3399CC'
})
}),
text: new ol.style.Text({
text: new Text({
text: size.toString(),
fill: new ol.style.Fill({
fill: new Fill({
color: '#fff'
})
})
@@ -63,14 +56,14 @@ var clusters = new ol.layer.Vector({
}
});
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
const raster = new TileLayer({
source: new OSM()
});
var map = new ol.Map({
const map = new Map({
layers: [raster, clusters],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})

View File

@@ -1,23 +1,21 @@
// NOCOMPILE
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Image');
goog.require('ol.source.Raster');
goog.require('ol.source.Stamen');
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.
*/
var Xn = 0.950470;
var Yn = 1;
var Zn = 1.088830;
var t0 = 4 / 29;
var t1 = 6 / 29;
var t2 = 3 * t1 * t1;
var t3 = t1 * t1 * t1;
var twoPi = 2 * Math.PI;
const Xn = 0.950470;
const Yn = 1;
const Zn = 1.088830;
const t0 = 4 / 29;
const t1 = 6 / 29;
const t2 = 3 * t1 * t1;
const t3 = t1 * t1 * t1;
const twoPi = 2 * Math.PI;
/**
@@ -26,23 +24,23 @@ var twoPi = 2 * Math.PI;
* @return {Array.<number>} A pixel in HCL space.
*/
function rgb2hcl(pixel) {
var red = rgb2xyz(pixel[0]);
var green = rgb2xyz(pixel[1]);
var blue = rgb2xyz(pixel[2]);
const red = rgb2xyz(pixel[0]);
const green = rgb2xyz(pixel[1]);
const blue = rgb2xyz(pixel[2]);
var x = xyz2lab(
(0.4124564 * red + 0.3575761 * green + 0.1804375 * blue) / Xn);
var y = xyz2lab(
(0.2126729 * red + 0.7151522 * green + 0.0721750 * blue) / Yn);
var z = xyz2lab(
(0.0193339 * red + 0.1191920 * green + 0.9503041 * blue) / Zn);
const x = xyz2lab(
(0.4124564 * red + 0.3575761 * green + 0.1804375 * blue) / Xn);
const y = xyz2lab(
(0.2126729 * red + 0.7151522 * green + 0.0721750 * blue) / Yn);
const z = xyz2lab(
(0.0193339 * red + 0.1191920 * green + 0.9503041 * blue) / Zn);
var l = 116 * y - 16;
var a = 500 * (x - y);
var b = 200 * (y - z);
const l = 116 * y - 16;
const a = 500 * (x - y);
const b = 200 * (y - z);
var c = Math.sqrt(a * a + b * b);
var h = Math.atan2(b, a);
const c = Math.sqrt(a * a + b * b);
let h = Math.atan2(b, a);
if (h < 0) {
h += twoPi;
}
@@ -61,16 +59,16 @@ function rgb2hcl(pixel) {
* @return {Array.<number>} A pixel in RGB space.
*/
function hcl2rgb(pixel) {
var h = pixel[0];
var c = pixel[1];
var l = pixel[2];
const h = pixel[0];
const c = pixel[1];
const l = pixel[2];
var a = Math.cos(h) * c;
var b = Math.sin(h) * c;
const a = Math.cos(h) * c;
const b = Math.sin(h) * c;
var y = (l + 16) / 116;
var x = isNaN(a) ? y : y + a / 500;
var z = isNaN(b) ? y : y - b / 200;
let y = (l + 16) / 116;
let x = isNaN(a) ? y : y + a / 500;
let z = isNaN(b) ? y : y - b / 200;
y = Yn * lab2xyz(y);
x = Xn * lab2xyz(x);
@@ -100,15 +98,15 @@ function xyz2rgb(x) {
12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
}
var raster = new ol.source.Raster({
sources: [new ol.source.Stamen({
const raster = new RasterSource({
sources: [new Stamen({
layer: 'watercolor',
transition: 0
})],
operation: function(pixels, data) {
var hcl = rgb2hcl(pixels[0]);
const hcl = rgb2hcl(pixels[0]);
var 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) {
@@ -139,33 +137,33 @@ var raster = new ol.source.Raster({
}
});
var controls = {};
const controls = {};
raster.on('beforeoperations', function(event) {
var data = event.data;
for (var id in controls) {
const data = event.data;
for (const id in controls) {
data[id] = Number(controls[id].value);
}
});
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Image({
new ImageLayer({
source: raster
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 2500000],
zoom: 2,
maxZoom: 18
})
});
var controlIds = ['hue', 'chroma', 'lightness'];
const controlIds = ['hue', 'chroma', 'lightness'];
controlIds.forEach(function(id) {
var control = document.getElementById(id);
var output = document.getElementById(id + 'Out');
const control = document.getElementById(id);
const output = document.getElementById(id + 'Out');
control.addEventListener('input', function() {
output.innerText = control.value;
raster.changed();

View File

@@ -1,17 +1,16 @@
goog.require('ol');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.Control');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
import {inherits} from '../src/ol/index.js';
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';
/**
* Define a namespace for the application.
*/
window.app = {};
var app = window.app;
const app = window.app;
//
@@ -21,35 +20,35 @@ var app = window.app;
/**
* @constructor
* @extends {ol.control.Control}
* @extends {module:ol/control/Control~Control}
* @param {Object=} opt_options Control options.
*/
app.RotateNorthControl = function(opt_options) {
var options = opt_options || {};
const options = opt_options || {};
var button = document.createElement('button');
const button = document.createElement('button');
button.innerHTML = 'N';
var this_ = this;
var handleRotateNorth = function() {
const this_ = this;
const handleRotateNorth = function() {
this_.getMap().getView().setRotation(0);
};
button.addEventListener('click', handleRotateNorth, false);
button.addEventListener('touchstart', handleRotateNorth, false);
var element = document.createElement('div');
const element = document.createElement('div');
element.className = 'rotate-north ol-unselectable ol-control';
element.appendChild(button);
ol.control.Control.call(this, {
Control.call(this, {
element: element,
target: options.target
});
};
ol.inherits(app.RotateNorthControl, ol.control.Control);
inherits(app.RotateNorthControl, Control);
//
@@ -57,8 +56,8 @@ ol.inherits(app.RotateNorthControl, ol.control.Control);
//
var map = new ol.Map({
controls: ol.control.defaults({
const map = new Map({
controls: defaultControls({
attributionOptions: {
collapsible: false
}
@@ -66,12 +65,12 @@ var map = new ol.Map({
new app.RotateNorthControl()
]),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 3,
rotation: 1

View File

@@ -1,9 +0,0 @@
---
layout: example.html
title: Custom Icon
shortdesc: Example using a custom attribution icon object
docs: >
This example creates a custom element for the attribution icon
tags: "icon, element"
---
<div id="map" class="map"><div id="popup"></div></div>

View File

@@ -1,27 +0,0 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var logoElement = document.createElement('a');
logoElement.href = 'https://www.osgeo.org/';
logoElement.target = '_blank';
var logoImage = document.createElement('img');
logoImage.src = 'https://www.osgeo.org/sites/all/themes/osgeo/logo.png';
logoElement.appendChild(logoImage);
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
}),
logo: logoElement
});

View File

@@ -3,8 +3,8 @@ layout: example.html
title: Custom Interactions
shortdesc: Example of a custom interaction.
docs: >
This example demonstrates creating a custom interaction by subclassing `ol.interaction.Pointer`.
Note that the built in interaction `ol.interaction.Translate` might be a better option for moving features.
This example demonstrates creating a custom interaction by subclassing `ol/interaction/Pointer`.
Note that the built in interaction `ol/interaction/Translate` might be a better option for moving features.
tags: "drag, feature, vector, editing, custom, interaction"
---
<div id="map" class="map"></div>

View File

@@ -1,35 +1,27 @@
goog.require('ol');
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.LineString');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.interaction');
goog.require('ol.interaction.Pointer');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.TileJSON');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Icon');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
import {inherits} from '../src/ol/index.js';
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';
/**
* Define a namespace for the application.
*/
var app = {};
const app = {};
/**
* @constructor
* @extends {ol.interaction.Pointer}
* @extends {module:ol/interaction/Pointer}
*/
app.Drag = function() {
ol.interaction.Pointer.call(this, {
PointerInteraction.call(this, {
handleDownEvent: app.Drag.prototype.handleDownEvent,
handleDragEvent: app.Drag.prototype.handleDragEvent,
handleMoveEvent: app.Drag.prototype.handleMoveEvent,
@@ -37,7 +29,7 @@ app.Drag = function() {
});
/**
* @type {ol.Pixel}
* @type {module:ol~Pixel}
* @private
*/
this.coordinate_ = null;
@@ -49,7 +41,7 @@ app.Drag = function() {
this.cursor_ = 'pointer';
/**
* @type {ol.Feature}
* @type {module:ol/Feature~Feature}
* @private
*/
this.feature_ = null;
@@ -61,20 +53,20 @@ app.Drag = function() {
this.previousCursor_ = undefined;
};
ol.inherits(app.Drag, ol.interaction.Pointer);
inherits(app.Drag, PointerInteraction);
/**
* @param {ol.MapBrowserEvent} evt Map browser event.
* @param {module:ol/MapBrowserEvent~MapBrowserEvent} evt Map browser event.
* @return {boolean} `true` to start the drag sequence.
*/
app.Drag.prototype.handleDownEvent = function(evt) {
var map = evt.map;
const map = evt.map;
var 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;
@@ -86,13 +78,13 @@ app.Drag.prototype.handleDownEvent = function(evt) {
/**
* @param {ol.MapBrowserEvent} evt Map browser event.
* @param {module:ol/MapBrowserEvent~MapBrowserEvent} evt Map browser event.
*/
app.Drag.prototype.handleDragEvent = function(evt) {
var deltaX = evt.coordinate[0] - this.coordinate_[0];
var deltaY = evt.coordinate[1] - this.coordinate_[1];
const deltaX = evt.coordinate[0] - this.coordinate_[0];
const deltaY = evt.coordinate[1] - this.coordinate_[1];
var geometry = this.feature_.getGeometry();
const geometry = this.feature_.getGeometry();
geometry.translate(deltaX, deltaY);
this.coordinate_[0] = evt.coordinate[0];
@@ -101,16 +93,16 @@ app.Drag.prototype.handleDragEvent = function(evt) {
/**
* @param {ol.MapBrowserEvent} evt Event.
* @param {module:ol/MapBrowserEvent~MapBrowserEvent} evt Event.
*/
app.Drag.prototype.handleMoveEvent = function(evt) {
if (this.cursor_) {
var map = evt.map;
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
var element = evt.map.getTargetElement();
const map = evt.map;
const feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
const element = evt.map.getTargetElement();
if (feature) {
if (element.style.cursor != this.cursor_) {
this.previousCursor_ = element.style.cursor;
@@ -134,48 +126,48 @@ app.Drag.prototype.handleUpEvent = function() {
};
var pointFeature = new ol.Feature(new ol.geom.Point([0, 0]));
const pointFeature = new Feature(new Point([0, 0]));
var lineFeature = new ol.Feature(
new ol.geom.LineString([[-1e7, 1e6], [-1e6, 3e6]]));
const lineFeature = new Feature(
new LineString([[-1e7, 1e6], [-1e6, 3e6]]));
var polygonFeature = new ol.Feature(
new ol.geom.Polygon([[[-3e6, -1e6], [-3e6, 1e6],
[-1e6, 1e6], [-1e6, -1e6], [-3e6, -1e6]]]));
const polygonFeature = new Feature(
new Polygon([[[-3e6, -1e6], [-3e6, 1e6],
[-1e6, 1e6], [-1e6, -1e6], [-3e6, -1e6]]]));
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([new app.Drag()]),
const map = new Map({
interactions: defaultInteractions().extend([new app.Drag()]),
layers: [
new ol.layer.Tile({
source: new ol.source.TileJSON({
new TileLayer({
source: new TileJSON({
url: 'https://api.tiles.mapbox.com/v3/mapbox.geography-class.json?secure'
})
}),
new ol.layer.Vector({
source: new ol.source.Vector({
new VectorLayer({
source: new VectorSource({
features: [pointFeature, lineFeature, polygonFeature]
}),
style: new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
style: new Style({
image: new Icon(/** @type {module:ol/style/Icon~Options} */ ({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.95,
src: 'data/icon.png'
})),
stroke: new ol.style.Stroke({
stroke: new Stroke({
width: 3,
color: [255, 0, 0, 1]
}),
fill: new ol.style.Fill({
fill: new Fill({
color: [0, 0, 255, 0.6]
})
})
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})

View File

@@ -6,7 +6,7 @@ docs: >
<p>The example loads TopoJSON geometries and uses d3 (<code>d3.geo.path</code>) to render these geometries to a canvas element that is then used as the image of an OpenLayers image layer.</p>
tags: "d3"
resources:
- https://d3js.org/d3.v3.min.js
- https://d3js.org/topojson.v1.min.js
- https://unpkg.com/d3@4.12.0/build/d3.js
- https://unpkg.com/topojson@3.0.2/dist/topojson.js
---
<div id="map" class="map"></div>

89
examples/d3.js vendored
View File

@@ -1,91 +1,84 @@
// NOCOMPILE
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.extent');
goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.ImageCanvas');
goog.require('ol.source.Stamen');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {getWidth, getCenter} from '../src/ol/extent.js';
import {Image as ImageLayer, Tile as TileLayer} from '../src/ol/layer.js';
import {fromLonLat, toLonLat} from '../src/ol/proj.js';
import {ImageCanvas as ImageCanvasSource, Stamen} from '../src/ol/source.js';
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.Stamen({
new TileLayer({
source: new Stamen({
layer: 'watercolor'
})
})
],
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([-97, 38]),
view: new View({
center: fromLonLat([-97, 38]),
zoom: 4
})
});
/**
* Load the topojson data and create an ol.layer.Image for that data.
* Load the topojson data and create an ol/layer/Image for that data.
*/
d3.json('data/topojson/us.json', function(error, us) {
var features = topojson.feature(us, us.objects.counties);
const features = topojson.feature(us, us.objects.counties);
/**
* This function uses d3 to render the topojson features to a canvas.
* @param {ol.Extent} extent Extent.
* @param {module:ol/extent~Extent} extent Extent.
* @param {number} resolution Resolution.
* @param {number} pixelRatio Pixel ratio.
* @param {ol.Size} size Size.
* @param {ol.proj.Projection} projection Projection.
* @param {module:ol/size~Size} size Size.
* @param {module:ol/proj/Projection~Projection} projection Projection.
* @return {HTMLCanvasElement} A canvas element.
*/
var canvasFunction = function(extent, resolution, pixelRatio,
size, projection) {
var canvasWidth = size[0];
var canvasHeight = size[1];
const canvasFunction = function(extent, resolution, pixelRatio, size, projection) {
const canvasWidth = size[0];
const canvasHeight = size[1];
var canvas = d3.select(document.createElement('canvas'));
const canvas = d3.select(document.createElement('canvas'));
canvas.attr('width', canvasWidth).attr('height', canvasHeight);
var context = canvas.node().getContext('2d');
const context = canvas.node().getContext('2d');
var d3Projection = d3.geo.mercator().scale(1).translate([0, 0]);
var d3Path = d3.geo.path().projection(d3Projection);
const d3Projection = d3.geoMercator().scale(1).translate([0, 0]);
let d3Path = d3.geoPath().projection(d3Projection);
var pixelBounds = d3Path.bounds(features);
var pixelBoundsWidth = pixelBounds[1][0] - pixelBounds[0][0];
var pixelBoundsHeight = pixelBounds[1][1] - pixelBounds[0][1];
const pixelBounds = d3Path.bounds(features);
const pixelBoundsWidth = pixelBounds[1][0] - pixelBounds[0][0];
const pixelBoundsHeight = pixelBounds[1][1] - pixelBounds[0][1];
var geoBounds = d3.geo.bounds(features);
var geoBoundsLeftBottom = ol.proj.transform(
geoBounds[0], 'EPSG:4326', projection);
var geoBoundsRightTop = ol.proj.transform(
geoBounds[1], 'EPSG:4326', projection);
var geoBoundsWidth = geoBoundsRightTop[0] - geoBoundsLeftBottom[0];
const geoBounds = d3.geoBounds(features);
const geoBoundsLeftBottom = fromLonLat(geoBounds[0], projection);
const geoBoundsRightTop = fromLonLat(geoBounds[1], projection);
let geoBoundsWidth = geoBoundsRightTop[0] - geoBoundsLeftBottom[0];
if (geoBoundsWidth < 0) {
geoBoundsWidth += ol.extent.getWidth(projection.getExtent());
geoBoundsWidth += getWidth(projection.getExtent());
}
var geoBoundsHeight = geoBoundsRightTop[1] - geoBoundsLeftBottom[1];
const geoBoundsHeight = geoBoundsRightTop[1] - geoBoundsLeftBottom[1];
var widthResolution = geoBoundsWidth / pixelBoundsWidth;
var heightResolution = geoBoundsHeight / pixelBoundsHeight;
var r = Math.max(widthResolution, heightResolution);
var scale = r / (resolution / pixelRatio);
const widthResolution = geoBoundsWidth / pixelBoundsWidth;
const heightResolution = geoBoundsHeight / pixelBoundsHeight;
const r = Math.max(widthResolution, heightResolution);
const scale = r / (resolution / pixelRatio);
var center = ol.proj.transform(ol.extent.getCenter(extent),
projection, 'EPSG:4326');
const center = toLonLat(getCenter(extent), projection);
d3Projection.scale(scale).center(center)
.translate([canvasWidth / 2, canvasHeight / 2]);
.translate([canvasWidth / 2, canvasHeight / 2]);
d3Path = d3Path.projection(d3Projection).context(context);
d3Path(features);
context.stroke();
return canvas[0][0];
return canvas.node();
};
var layer = new ol.layer.Image({
source: new ol.source.ImageCanvas({
const layer = new ImageLayer({
source: new ImageCanvasSource({
canvasFunction: canvasFunction,
projection: 'EPSG:3857'
})

View File

@@ -1,27 +1,22 @@
// NOCOMPILE
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.layer.Tile');
goog.require('ol.math');
goog.require('ol.proj');
goog.require('ol.source.OSM');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {toRadians} from '../src/ol/math.js';
import OSM from '../src/ol/source/OSM.js';
var projection = ol.proj.get('EPSG:3857');
var view = new ol.View({
const view = new View({
center: [0, 0],
projection: projection,
extent: projection.getExtent(),
zoom: 2
});
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
})
],
target: 'map',
controls: ol.control.defaults({
controls: defaultControls({
attributionOptions: {
collapsible: false
}
@@ -34,15 +29,15 @@ function el(id) {
}
var gn = new GyroNorm();
const gn = new GyroNorm();
gn.init().then(function() {
gn.start(function(event) {
var center = view.getCenter();
var resolution = view.getResolution();
var alpha = ol.math.toRadians(event.do.beta);
var beta = ol.math.toRadians(event.do.beta);
var gamma = ol.math.toRadians(event.do.gamma);
const center = view.getCenter();
const resolution = view.getResolution();
const alpha = toRadians(event.do.beta);
const beta = toRadians(event.do.beta);
const gamma = toRadians(event.do.gamma);
el('alpha').innerText = alpha + ' [rad]';
el('beta').innerText = beta + ' [rad]';

View File

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

View File

@@ -1,81 +1,71 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.GPX');
goog.require('ol.format.GeoJSON');
goog.require('ol.format.IGC');
goog.require('ol.format.KML');
goog.require('ol.format.TopoJSON');
goog.require('ol.interaction');
goog.require('ol.interaction.DragAndDrop');
goog.require('ol.layer.Vector');
goog.require('ol.layer.Tile');
goog.require('ol.source.BingMaps');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {GPX, GeoJSON, IGC, KML, TopoJSON} from '../src/ol/format.js';
import {defaults as defaultInteractions, DragAndDrop} from '../src/ol/interaction.js';
import {Vector as VectorLayer, Tile as TileLayer} from '../src/ol/layer.js';
import {BingMaps, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
var defaultStyle = {
'Point': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
const defaultStyle = {
'Point': new Style({
image: new CircleStyle({
fill: new Fill({
color: 'rgba(255,255,0,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#ff0',
width: 1
})
})
}),
'LineString': new ol.style.Style({
stroke: new ol.style.Stroke({
'LineString': new Style({
stroke: new Stroke({
color: '#f00',
width: 3
})
}),
'Polygon': new ol.style.Style({
fill: new ol.style.Fill({
'Polygon': new Style({
fill: new Fill({
color: 'rgba(0,255,255,0.5)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#0ff',
width: 1
})
}),
'MultiPoint': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
'MultiPoint': new Style({
image: new CircleStyle({
fill: new Fill({
color: 'rgba(255,0,255,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#f0f',
width: 1
})
})
}),
'MultiLineString': new ol.style.Style({
stroke: new ol.style.Stroke({
'MultiLineString': new Style({
stroke: new Stroke({
color: '#0f0',
width: 3
})
}),
'MultiPolygon': new ol.style.Style({
fill: new ol.style.Fill({
'MultiPolygon': new Style({
fill: new Fill({
color: 'rgba(0,0,255,0.5)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#00f',
width: 1
})
})
};
var styleFunction = function(feature, resolution) {
var featureStyleFunction = feature.getStyleFunction();
const styleFunction = function(feature, resolution) {
const featureStyleFunction = feature.getStyleFunction();
if (featureStyleFunction) {
return featureStyleFunction.call(feature, resolution);
} else {
@@ -83,38 +73,38 @@ var styleFunction = function(feature, resolution) {
}
};
var dragAndDropInteraction = new ol.interaction.DragAndDrop({
const dragAndDropInteraction = new DragAndDrop({
formatConstructors: [
ol.format.GPX,
ol.format.GeoJSON,
ol.format.IGC,
ol.format.KML,
ol.format.TopoJSON
GPX,
GeoJSON,
IGC,
KML,
TopoJSON
]
});
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([dragAndDropInteraction]),
const map = new Map({
interactions: defaultInteractions().extend([dragAndDropInteraction]),
layers: [
new ol.layer.Tile({
source: new ol.source.BingMaps({
new TileLayer({
source: new BingMaps({
imagerySet: 'Aerial',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
})
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
});
dragAndDropInteraction.on('addfeatures', function(event) {
var vectorSource = new ol.source.Vector({
const vectorSource = new VectorSource({
features: event.features
});
map.addLayer(new ol.layer.Vector({
map.addLayer(new VectorLayer({
renderMode: 'image',
source: vectorSource,
style: styleFunction
@@ -122,14 +112,14 @@ dragAndDropInteraction.on('addfeatures', function(event) {
map.getView().fit(vectorSource.getExtent());
});
var displayFeatureInfo = function(pixel) {
var features = [];
const displayFeatureInfo = function(pixel) {
const features = [];
map.forEachFeatureAtPixel(pixel, function(feature) {
features.push(feature);
});
if (features.length > 0) {
var info = [];
var i, ii;
const info = [];
let i, ii;
for (i = 0, ii = features.length; i < ii; ++i) {
info.push(features[i].get('name'));
}
@@ -143,7 +133,7 @@ map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
var pixel = map.getEventPixel(evt.originalEvent);
const pixel = map.getEventPixel(evt.originalEvent);
displayFeatureInfo(pixel);
});

View File

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

View File

@@ -1,81 +1,71 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.GPX');
goog.require('ol.format.GeoJSON');
goog.require('ol.format.IGC');
goog.require('ol.format.KML');
goog.require('ol.format.TopoJSON');
goog.require('ol.interaction');
goog.require('ol.interaction.DragAndDrop');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.BingMaps');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {GPX, GeoJSON, IGC, KML, TopoJSON} from '../src/ol/format.js';
import {defaults as defaultInteractions, DragAndDrop} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {BingMaps, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
var defaultStyle = {
'Point': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
const defaultStyle = {
'Point': new Style({
image: new CircleStyle({
fill: new Fill({
color: 'rgba(255,255,0,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#ff0',
width: 1
})
})
}),
'LineString': new ol.style.Style({
stroke: new ol.style.Stroke({
'LineString': new Style({
stroke: new Stroke({
color: '#f00',
width: 3
})
}),
'Polygon': new ol.style.Style({
fill: new ol.style.Fill({
'Polygon': new Style({
fill: new Fill({
color: 'rgba(0,255,255,0.5)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#0ff',
width: 1
})
}),
'MultiPoint': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
'MultiPoint': new Style({
image: new CircleStyle({
fill: new Fill({
color: 'rgba(255,0,255,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#f0f',
width: 1
})
})
}),
'MultiLineString': new ol.style.Style({
stroke: new ol.style.Stroke({
'MultiLineString': new Style({
stroke: new Stroke({
color: '#0f0',
width: 3
})
}),
'MultiPolygon': new ol.style.Style({
fill: new ol.style.Fill({
'MultiPolygon': new Style({
fill: new Fill({
color: 'rgba(0,0,255,0.5)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#00f',
width: 1
})
})
};
var styleFunction = function(feature, resolution) {
var featureStyleFunction = feature.getStyleFunction();
const styleFunction = function(feature, resolution) {
const featureStyleFunction = feature.getStyleFunction();
if (featureStyleFunction) {
return featureStyleFunction.call(feature, resolution);
} else {
@@ -83,52 +73,52 @@ var styleFunction = function(feature, resolution) {
}
};
var dragAndDropInteraction = new ol.interaction.DragAndDrop({
const dragAndDropInteraction = new DragAndDrop({
formatConstructors: [
ol.format.GPX,
ol.format.GeoJSON,
ol.format.IGC,
ol.format.KML,
ol.format.TopoJSON
GPX,
GeoJSON,
IGC,
KML,
TopoJSON
]
});
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([dragAndDropInteraction]),
const map = new Map({
interactions: defaultInteractions().extend([dragAndDropInteraction]),
layers: [
new ol.layer.Tile({
source: new ol.source.BingMaps({
new TileLayer({
source: new BingMaps({
imagerySet: 'Aerial',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
})
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
});
dragAndDropInteraction.on('addfeatures', function(event) {
var vectorSource = new ol.source.Vector({
const vectorSource = new VectorSource({
features: event.features
});
map.addLayer(new ol.layer.Vector({
map.addLayer(new VectorLayer({
source: vectorSource,
style: styleFunction
}));
map.getView().fit(vectorSource.getExtent());
});
var displayFeatureInfo = function(pixel) {
var features = [];
const displayFeatureInfo = function(pixel) {
const features = [];
map.forEachFeatureAtPixel(pixel, function(feature) {
features.push(feature);
});
if (features.length > 0) {
var info = [];
var i, ii;
const info = [];
let i, ii;
for (i = 0, ii = features.length; i < ii; ++i) {
info.push(features[i].get('name'));
}
@@ -142,7 +132,7 @@ map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
var pixel = map.getEventPixel(evt.originalEvent);
const pixel = map.getEventPixel(evt.originalEvent);
displayFeatureInfo(pixel);
});

View File

@@ -1,22 +1,21 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.interaction');
goog.require('ol.interaction.DragRotateAndZoom');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
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';
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([
new ol.interaction.DragRotateAndZoom()
const map = new Map({
interactions: defaultInteractions().extend([
new DragRotateAndZoom()
]),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})

View File

@@ -1,9 +1,9 @@
---
layout: example.html
title: Draw and Modify Features
shortdesc: Example of using the ol.interaction.Draw interaction together with the ol.interaction.Modify interaction.
shortdesc: Example of using the ol/interaction/Draw interaction together with the ol/interaction/Modify interaction.
docs: >
Example of using the ol.interaction.Draw interaction together with the ol.interaction.Modify interaction.
Example of using the ol/interaction/Draw interaction together with the ol/interaction/Modify interaction.
tags: "draw, edit, modify, vector, featureoverlay"
---
<div id="map" class="map"></div>

View File

@@ -1,63 +1,56 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.interaction.Draw');
goog.require('ol.interaction.Modify');
goog.require('ol.interaction.Snap');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
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';
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
const raster = new TileLayer({
source: new OSM()
});
var source = new ol.source.Vector();
var vector = new ol.layer.Vector({
const source = new VectorSource();
const vector = new VectorLayer({
source: source,
style: new ol.style.Style({
fill: new ol.style.Fill({
style: new Style({
fill: new Fill({
color: 'rgba(255, 255, 255, 0.2)'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#ffcc33',
width: 2
}),
image: new ol.style.Circle({
image: new CircleStyle({
radius: 7,
fill: new ol.style.Fill({
fill: new Fill({
color: '#ffcc33'
})
})
})
});
var map = new ol.Map({
const map = new Map({
layers: [raster, vector],
target: 'map',
view: new ol.View({
view: new View({
center: [-11000000, 4600000],
zoom: 4
})
});
var modify = new ol.interaction.Modify({source: source});
const modify = new Modify({source: source});
map.addInteraction(modify);
var draw, snap; // global so we can remove them later
var typeSelect = document.getElementById('type');
let draw, snap; // global so we can remove them later
const typeSelect = document.getElementById('type');
function addInteractions() {
draw = new ol.interaction.Draw({
draw = new Draw({
source: source,
type: typeSelect.value
});
map.addInteraction(draw);
snap = new ol.interaction.Snap({source: source});
snap = new Snap({source: source});
map.addInteraction(snap);
}

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