Compare commits

...

1356 Commits

Author SHA1 Message Date
ahocevar
c9f0f6f773 5.0.0-beta.10 2018-03-29 12:07:04 +02:00
Tim Schaub
1c3ca5812b 5.0.0-beta.9 2018-03-29 12:05:15 +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
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
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
Frédéric Junod
4990119f86 Merge pull request #7527 from openlayers/greenkeeper/eslint-4.12.1
Update eslint to the latest version 🚀
2017-11-30 08:27:18 +01:00
greenkeeper[bot]
741baa8d20 chore(package): update eslint to version 4.12.1 2017-11-30 06:05:47 +00: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
Andreas Hocevar
45d2f8debb Merge pull request #7521 from cs09g/patch-1
fix setMinZoom/setMaxZoom
2017-11-28 13:47:58 +01:00
cs09g
e745c63383 clamp when resolution is defined 2017-11-28 16:51:11 +09:00
Andreas Hocevar
5ed2f32621 Merge pull request #7519 from ahocevar/declutter-hit-detection
Reuse declutter tree for hit detection
2017-11-28 08:50:01 +01:00
Frédéric Junod
6e39926dd0 Merge pull request #7499 from openlayers/rm_attributions_FrameState
Remove attributions from olx.FrameState instances
2017-11-28 08:24:23 +01:00
cs09g
466d63ac41 fix setMinZoom/setMaxZoom
when view has resolutions property, setMinZoom/setMaxZoom doesn't work.
2017-11-28 16:20:26 +09:00
Andreas Hocevar
ac195c46b1 Reuse declutter tree for hit detection
Replaying for hit detection no longer declutters, but uses the declutter tree
from the previous rendered frame.
2017-11-28 01:36:47 +01:00
Andreas Hocevar
841e79b0e8 Merge pull request #7501 from ahocevar/vector-layer-image
Option to render vector layers as images
2017-11-27 18:11:10 +01:00
Andreas Hocevar
3c806f924e Address review comments 2017-11-27 17:54:16 +01:00
Andreas Hocevar
dde81d8585 Add renderMode option to ol.layer.Vector
This also deprecates ol.source.ImageVector.
2017-11-27 09:48:52 +01:00
Andreas Hocevar
29e3dd39e4 Merge pull request #7516 from ahocevar/overflow
Deprecate exceedLength and replace with overflow
2017-11-27 09:42:59 +01:00
Andreas Hocevar
674868a683 Deprecate exceedLength and replace with overflow 2017-11-27 09:25:41 +01:00
Andreas Hocevar
7ffed344d1 Merge pull request #7510 from ahocevar/states-no-fade
Do not fade the states layer
2017-11-27 08:47:40 +01:00
Andreas Hocevar
dce56ac73a Merge pull request #7513 from ahocevar/stroke-key
Make strokeKey safer
2017-11-27 08:47:09 +01:00
Andreas Hocevar
101b53e135 Merge pull request #7514 from ahocevar/less-aggressive-prune
Prune the label cache less aggressively
2017-11-27 08:46:42 +01:00
Andreas Hocevar
66d5d66129 Prune the label cache less aggressively 2017-11-26 23:30:58 +01:00
Andreas Hocevar
f426c1cd18 Make strokeKey safer 2017-11-26 12:50:14 +01:00
Andreas Hocevar
ceab6444b9 Merge pull request #7511 from openlayers/greenkeeper/rollup-0.52.0
Update rollup to the latest version 🚀
2017-11-26 10:47:41 +01:00
Marc Jansen
5085cd8d6a Merge pull request #7512 from openlayers/greenkeeper/eslint-4.12.0
Update eslint to the latest version 🚀
2017-11-26 10:25:07 +01:00
greenkeeper[bot]
4e0d52806c chore(package): update eslint to version 4.12.0 2017-11-26 05:41:40 +00:00
greenkeeper[bot]
ee8ccc33e0 fix(package): update rollup to version 0.52.0 2017-11-25 20:21:18 +00:00
Andreas Hocevar
5e43208d93 Do not fade the states layer 2017-11-25 10:08:43 +01:00
Frédéric Junod
7fbada28ac Merge pull request #7505 from fredj/rm_api_link
Remove ol.DeviceOrientation link from API index
2017-11-24 15:26:11 +01:00
Frederic Junod
2278715f85 Remove ol.DeviceOrientation link from API index
`ol.DeviceOrientation` is now deprecated
2017-11-24 12:39:05 +01:00
Frederic Junod
4f5613d2fa Remove attributions from olx.FrameState instances 2017-11-23 12:00:12 +01:00
Andreas Hocevar
c48685565d Merge pull request #7497 from nicholas-l/patch-1
Use getGeometry
2017-11-23 09:38:54 +01:00
Andreas Hocevar
0b3a92d89e Merge pull request #7495 from ahocevar/remove-layer-renderers-with-viewport
Remove layer renderers when viewport is removed
2017-11-23 08:58:18 +01:00
Frédéric Junod
53e675725b Merge pull request #7492 from fredj/type_cast_examples
Remove unneeded type cast from examples
2017-11-23 08:26:00 +01:00
Nicholas Latham
397c03a6b6 Use getGeometry
Use getGeometry for compatibility between RenderFeature and Feature
2017-11-23 15:13:47 +13:00
Andreas Hocevar
3e574529ad Remove layer renderers when viewport is removed 2017-11-22 23:56:28 +01:00
Frederic Junod
8aa591c04d Remove unneeded type cast from examples 2017-11-22 14:00:00 +01:00
Frédéric Junod
5d71dde8dd Merge pull request #7489 from fredj/draw_type_string
Allow string to be passed as ol.interaction.Draw type
2017-11-22 08:58:45 +01:00
Frederic Junod
c0d57ad005 Allow string to be passed as ol.interaction.Draw type 2017-11-21 09:55:54 +01:00
Frédéric Junod
ae6ba195f7 Merge pull request #7484 from openlayers/greenkeeper/closure-util-1.26.0
Update closure-util to the latest version 🚀
2017-11-17 15:01:06 +01:00
greenkeeper[bot]
f5c0ea3a28 fix(package): update closure-util to version 1.26.0 2017-11-17 12:32:57 +00:00
Frédéric Junod
f139b7001a Merge pull request #7445 from fredj/fs_css
Load css rules from full-screen.css in examples
2017-11-17 10:41:07 +01:00
Frédéric Junod
3e590f81ae Merge pull request #7481 from gberaudo/make_zoom_to_extent_extensible
Make zoom to extent control extensible
2017-11-17 09:10:50 +01:00
oterral
9cc7cca447 Fix #6835: doesn't break if Constraint does not exist 2017-11-17 09:00:44 +01:00
Andreas Hocevar
0bf7e95619 Merge pull request #7477 from ahocevar/text-style-keys
Make text states available for replay time
2017-11-16 19:59:45 +01:00
Andreas Hocevar
1aa54b52b0 Merge pull request #7482 from ahocevar/vectortile-unrotate
Reset rotation after rendering
2017-11-16 17:57:01 +01:00
Andreas Hocevar
006f8d49ec Reset rotation after rendering 2017-11-16 17:22:05 +01:00
Guillaume Beraudo
94e821f9bf Make zoom to extent control extensible 2017-11-16 15:54:13 +01:00
Andreas Hocevar
cbf24ebc4c Merge pull request #7480 from ahocevar/load-imagetile
Create a new image when loading tile after an error
2017-11-16 15:09:45 +01:00
Andreas Hocevar
f1aeb76ce8 Create a new image when loading after an error 2017-11-16 14:45:54 +01:00
Andreas Hocevar
000acfe854 Do not pass inexistent argument 2017-11-16 14:45:54 +01:00
Andreas Hocevar
8e9b69cb9b Merge pull request #7476 from ahocevar/reset-measurements
Reset text measurements when available fonts change
2017-11-16 13:43:04 +01:00
Andreas Hocevar
c35789ba73 Add and improve tests 2017-11-16 11:52:26 +01:00
Andreas Hocevar
ad8e4debbe Make text states available for replay time 2017-11-16 00:39:27 +01:00
Andreas Hocevar
febbba78dc Reset text measurements when available fonts change 2017-11-15 18:44:26 +01:00
Andreas Hocevar
4b0281bc8a Merge pull request #7454 from ahocevar/text-background-padding
Add text background rendering and text padding
2017-11-15 08:27:38 +01:00
Andreas Hocevar
c7f6c28d8e Merge pull request #7468 from chrismayer/chg-here-key
Add new API-key for HERE example
2017-11-14 12:34:17 +01:00
Christian Mayer
169e9583dd Add new HERE API-key to 'cloak' section
This adds the new API-key for the 'HERE Map Tile API' example to the
'cloak' section, so it is not visible in the example's code view.
2017-11-14 09:56:26 +01:00
Christian Mayer
b9540460ff Add new API-key for HERE example
Replace the existing API-key for the 'HERE Map Tile API' example
with a new one with a longer validity.
2017-11-14 09:09:17 +01:00
Frédéric Junod
697406cf59 Merge pull request #7465 from fredj/export_getAxisOrientation
Export ol.proj.Projection#getAxisOrientation function
2017-11-14 08:19:24 +01:00
Frederic Junod
c490fd4af8 Export ol.proj.Projection#getAxisOrientation function 2017-11-13 17:19:50 +01:00
Andreas Hocevar
53b85a9192 Add rendering tests 2017-11-13 13:58:11 +01:00
Andreas Hocevar
a77d01945f Merge pull request #7462 from ahocevar/scaleline-meters-per-unit
Respect metersPerUnit in ScaleLine control
2017-11-13 11:39:32 +01:00
Andreas Hocevar
9c45f9a8d6 Respect metersPerUnit in ScaleLine control 2017-11-13 11:09:54 +01:00
oterral
5a252e628b Fix #7460: use the matrixSet projection by default 2017-11-13 11:06:31 +01:00
Tim Schaub
a73170ca1d Merge pull request #7458 from tschaub/release-v4.5.0
Release v4.5.0
2017-11-12 17:19:14 -07:00
Andreas Hocevar
df90f1b78c Reuse more code 2017-11-12 22:49:32 +01:00
Andreas Hocevar
1afc686af9 Add text background rendering and text padding 2017-11-12 22:49:32 +01:00
Tim Schaub
c811bd488e Collapsed list of dependency changes 2017-11-12 11:35:32 -07:00
Tim Schaub
ce051b78a9 Update package version to 4.5.0 2017-11-12 11:25:08 -07:00
Tim Schaub
1103779432 Changelog for v4.5.0 2017-11-12 11:24:26 -07:00
Tim Schaub
bbec759c5e Merge pull request #7456 from tschaub/connect-retries
Retry if sauce connect fails
2017-11-12 07:29:49 -07:00
Tim Schaub
a2c5ce6925 Retry if sauce connect fails 2017-11-11 10:54:13 -07:00
Tim Schaub
54c69ae1c6 Merge pull request #7455 from openlayers/greenkeeper/eslint-4.11.0
Update eslint to the latest version 🚀
2017-11-10 20:13:19 -07:00
greenkeeper[bot]
0bd989e917 chore(package): update eslint to version 4.11.0 2017-11-11 00:00:58 +00:00
Frédéric Junod
93abd6fe57 Merge pull request #7447 from openlayers/greenkeeper/rollup-plugin-commonjs-8.2.6
chore(package): update rollup-plugin-commonjs to version 8.2.6
2017-11-10 11:14:53 +01:00
Frédéric Junod
3d8f39804e Merge pull request #7448 from openlayers/greenkeeper/debounce-1.1.0
chore(package): update debounce to version 1.1.0
2017-11-10 10:57:58 +01:00
greenkeeper[bot]
b2ef54d4a7 chore(package): update debounce to version 1.1.0 2017-11-10 10:35:55 +01:00
greenkeeper[bot]
09a324bc6b chore(package): update rollup-plugin-commonjs to version 8.2.6 2017-11-10 10:34:29 +01:00
Frédéric Junod
07631e4d1f Merge pull request #7451 from openlayers/greenkeeper/karma-1.7.1
chore(package): update karma to version 1.7.1
2017-11-10 10:32:14 +01:00
Frederic Junod
2825436983 Add missing .map:-ms-fullscreen css rule in example 2017-11-10 10:21:08 +01:00
greenkeeper[bot]
4aee919de2 chore(package): update karma to version 1.7.1 2017-11-10 10:18:42 +01:00
Andreas Hocevar
6cc3c47d95 Merge pull request #7440 from ahocevar/font-load
Attempt to make font loading tests more stable
2017-11-10 10:09:42 +01:00
Andreas Hocevar
55692c3da5 Merge pull request #7446 from openlayers/greenkeeper/rollup-0.51.3
fix(package): update rollup to version 0.51.3
2017-11-10 09:47:01 +01:00
Andreas Hocevar
dbfca19e09 Merge pull request #7444 from ahocevar/simpler-style-management
Simpler style management
2017-11-10 08:44:25 +01:00
Andreas Hocevar
4324d49813 Attempt to make font loading tests more stable
Also changes things to use setInterval() instead of setTimeout().
2017-11-10 08:34:30 +01:00
greenkeeper[bot]
2da2ae0154 fix(package): update rollup to version 0.51.3
Closes #7432
2017-11-10 07:14:09 +00:00
Andreas Hocevar
c6eca804f9 Refactor stroke style management to reuse code 2017-11-10 01:16:18 +01:00
Andreas Hocevar
47e6918072 Refactor setTextStyle() for better readability 2017-11-09 16:42:41 +01:00
Andreas Hocevar
c1181bdfe7 Merge pull request #7438 from ahocevar/source-projection
Call getProjection() only once
2017-11-09 14:44:20 +01:00
Tim Schaub
9a8afff0fa Merge pull request #7430 from tschaub/hexa
Add support for hex colors with alpha
2017-11-09 06:38:27 -07:00
Andreas Hocevar
0ec05f5795 Call getProjection() only once 2017-11-09 08:08:41 +01:00
Tim Schaub
6668d03122 Add support for hex colors with alpha 2017-11-08 09:53:22 -07:00
Tim Schaub
3a6fc7a1f2 Merge pull request #7431 from tschaub/defined-zoom
Avoid returning undefined zoom
2017-11-08 09:32:33 -07:00
Andreas Hocevar
be06224756 Merge pull request #7436 from pjeweb/patch-1
Always use source projection loading image tiles
2017-11-08 17:01:33 +01:00
pjeweb
b9313e76f4 Always use source projection loading image tiles
Use the defined source projection despite it being equivalent to the rendering projection to enable using the specified alias code name instead of the code provided by the renderer's projection object. For example: The server only knows the name "EPSG:900913", which is an alias for the equivalent "EPSG:3857", that the renderer uses (by default).
2017-11-08 14:36:46 +01:00
Tim Schaub
967118e699 Avoid returning undefined zoom 2017-11-07 18:40:58 -07: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
1025 changed files with 77379 additions and 87521 deletions

9
.babelrc Normal file
View File

@@ -0,0 +1,9 @@
{
"plugins": ["jsdoc-closure"],
"parserOpts": {
"parser": "recast"
},
"generatorOpts": {
"generator": "recast"
}
}

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

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@
/coverage/
/dist/
/node_modules/
src/index.js

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

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,159 @@
## Upgrade notes
### Next Release
### Next release
#### 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 following methods did get the optional this (i.e. opt_this) arguments removed. 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
* source/TileUTFGrid#forDataAtCoordinateAndResolution
* source/Vector#forEachFeature, #forEachFeatureInExtent, #forEachFeatureIntersectingExtent
### v4.6.0
#### 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()
})
});
```
### v4.5.0
#### Removed GeoJSON crs workaround for GeoServer

127
changelog/v4.5.0.md Normal file
View File

@@ -0,0 +1,127 @@
# 4.5.0
### Summary
The 4.5 release includes enhancements and fixes from 50 or so pull requests. Headlining this release, vector layers got a new `declutter` option that can be used to avoid overlapping labels. See the [street labels example](http://openlayers.org/en/latest/examples/street-labels.html) for a demonstration of this feature.
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.
We will be adding details to the wiki about upcoming changes in 5.0 and tips on how to upgrade. We'll likely have a few more 4.x releases before the 5.0 release. But 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
#### Removed GeoJSON crs workaround for GeoServer
Previous version of GeoServer returned invalid crs in GeoJSON output. The workaround in `ol.format.GeoJSON` used to read this crs code is now removed.
#### Deprecation of `ol.Attribution`
`ol.Attribution` is deprecated and will be removed in the next major version. Instead, you can construct a source with a string attribution or an array of strings. For dynamic attributions, you can provide a function that gets called with the current frame state.
Before:
```js
var source = new ol.source.XYZ({
attributions: [
new ol.Attribution({html: 'some attribution'})
]
});
```
After:
```js
var source = new ol.source.XYZ({
attributions: 'some attribution'
});
```
In addition to passing a string or an array of strings for the `attributions` option, you can also pass a function that will get called with the current frame state.
```js
var source = new ol.source.XYZ({
attributions: function(frameState) {
// inspect the frame state and return attributions
return 'some attribution'; // or ['multiple', 'attributions'] or null
}
});
```
## Detailed changes
See below for the full list of changes.
* [#7456](https://github.com/openlayers/openlayers/pull/7456) - Retry if sauce connect fails ([@tschaub](https://github.com/tschaub))
* [#7440](https://github.com/openlayers/openlayers/pull/7440) - Attempt to make font loading tests more stable ([@ahocevar](https://github.com/ahocevar))
* [#7444](https://github.com/openlayers/openlayers/pull/7444) - Simpler style management ([@ahocevar](https://github.com/ahocevar))
* [#7438](https://github.com/openlayers/openlayers/pull/7438) - Call getProjection() only once ([@ahocevar](https://github.com/ahocevar))
* [#7430](https://github.com/openlayers/openlayers/pull/7430) - Add support for hex colors with alpha ([@tschaub](https://github.com/tschaub))
* [#7431](https://github.com/openlayers/openlayers/pull/7431) - Avoid returning undefined zoom ([@tschaub](https://github.com/tschaub))
* [#7436](https://github.com/openlayers/openlayers/pull/7436) - Always use source projection loading image tiles ([@pjeweb](https://github.com/pjeweb))
* [#7433](https://github.com/openlayers/openlayers/pull/7433) - Don't use getHints if it's not needed ([@fredj](https://github.com/fredj))
* [#7362](https://github.com/openlayers/openlayers/pull/7362) - Added option to the ol.format.GeoJSON to allow the reading of the geometry_name from the geojson ([@Alexandre27](https://github.com/Alexandre27))
* [#7426](https://github.com/openlayers/openlayers/pull/7426) - Update InteractionOptions.prototype.handleEvent docs ([@glen-nu](https://github.com/glen-nu))
* [#7423](https://github.com/openlayers/openlayers/pull/7423) - Get rendered features by coordinate when wrapping ([@tschaub](https://github.com/tschaub))
* [#7421](https://github.com/openlayers/openlayers/pull/7421) - Keep longitude between -180 and 180 ([@tschaub](https://github.com/tschaub))
* [#7420](https://github.com/openlayers/openlayers/pull/7420) - Fix MapGuide example resolves #7325 ([@TDesjardins](https://github.com/TDesjardins))
* [#7340](https://github.com/openlayers/openlayers/pull/7340) - Clear label cache when fonts become available ([@ahocevar](https://github.com/ahocevar))
* [#7414](https://github.com/openlayers/openlayers/pull/7414) - Only split text at line angle changes ([@ahocevar](https://github.com/ahocevar))
* [#7411](https://github.com/openlayers/openlayers/pull/7411) - Add getLayers and setLayers functions to ol.format.WMSGetFeatureInfo ([@fredj](https://github.com/fredj))
* [#7328](https://github.com/openlayers/openlayers/pull/7328) - Declutter text and images ([@ahocevar](https://github.com/ahocevar))
* [#7406](https://github.com/openlayers/openlayers/pull/7406) - Add option to Zoomify source for setting custom extent ([@lasselaakkonen](https://github.com/lasselaakkonen))
* [#7410](https://github.com/openlayers/openlayers/pull/7410) - Add getFeatureType and setFeatureType functions to ol.format.WFS ([@fredj](https://github.com/fredj))
* [#7379](https://github.com/openlayers/openlayers/pull/7379) - Add support for custom tile size to Zoomify source ([@lasselaakkonen](https://github.com/lasselaakkonen))
* [#7376](https://github.com/openlayers/openlayers/pull/7376) - changed visibility of overlay properties to protected ([@virtualcitySYSTEMS](https://github.com/virtualcitySYSTEMS))
* [#7377](https://github.com/openlayers/openlayers/pull/7377) - Add support to specify CSS class name when creating ol.Overlay ([@notnotse](https://github.com/notnotse))
* [#7383](https://github.com/openlayers/openlayers/pull/7383) - Handle null tile coordinates correctly ([@ahocevar](https://github.com/ahocevar))
* [#7375](https://github.com/openlayers/openlayers/pull/7375) - Read 'Abstract', 'AccessConstraints' and 'Fees' in ol.format.OWS ([@fredj](https://github.com/fredj))
* [#7378](https://github.com/openlayers/openlayers/pull/7378) - Fix incorrect docs about ol.source.Raster ([@notnotse](https://github.com/notnotse))
* [#7371](https://github.com/openlayers/openlayers/pull/7371) - Add @api annotation to ol.VectorTile.getExtent ([@notnotse](https://github.com/notnotse))
* [#7369](https://github.com/openlayers/openlayers/pull/7369) - Always request the Bing API with the 'culture' value ([@fredj](https://github.com/fredj))
* [#7364](https://github.com/openlayers/openlayers/pull/7364) - Remove GeoJSON workaround for GeoServer ([@fredj](https://github.com/fredj))
* [#7355](https://github.com/openlayers/openlayers/pull/7355) - Pass pixel tolerance as a parameter to constructor of ol.interaction.Extent ([@marcosox](https://github.com/marcosox))
* [#7356](https://github.com/openlayers/openlayers/pull/7356) - Fix documentation for target option in the controls ([@EduardoNogueira](https://github.com/EduardoNogueira))
* [#7359](https://github.com/openlayers/openlayers/pull/7359) - Rename entry to input - regarding options to rollup lib - Issue #7358 ([@akkumar](https://github.com/akkumar))
* [#7357](https://github.com/openlayers/openlayers/pull/7357) - Release v4.4.2 ([@tschaub](https://github.com/tschaub))
* [#7350](https://github.com/openlayers/openlayers/pull/7350) - Calculate correct text box size ([@ahocevar](https://github.com/ahocevar))
* [#7349](https://github.com/openlayers/openlayers/pull/7349) - Do not use tileUrlFunction for renderer tile coordinates ([@ahocevar](https://github.com/ahocevar))
* [#7305](https://github.com/openlayers/openlayers/pull/7305) - Fix #7304: Re-calculate the resolution when the WMS source is reprojected ([@oterral](https://github.com/oterral))
* [#7346](https://github.com/openlayers/openlayers/pull/7346) - Pre-render text images for configured scale ([@ahocevar](https://github.com/ahocevar))
* [#7345](https://github.com/openlayers/openlayers/pull/7345) - Handle different lineWidth scaling in Safari ([@ahocevar](https://github.com/ahocevar))
* [#7344](https://github.com/openlayers/openlayers/pull/7344) - Make text height detection independent of css settings ([@ahocevar](https://github.com/ahocevar))
* [#7341](https://github.com/openlayers/openlayers/pull/7341) - Proper rendering of raster sources when there is a tile transition ([@tschaub](https://github.com/tschaub))
* [#7339](https://github.com/openlayers/openlayers/pull/7339) - Use correct text stroke on HiDPI devices ([@ahocevar](https://github.com/ahocevar))
* [#7327](https://github.com/openlayers/openlayers/pull/7327) - Prune the tile cache after updating a source's URL ([@tschaub](https://github.com/tschaub))
* [#7333](https://github.com/openlayers/openlayers/pull/7333) - Pluggable Map/Layers - function calls to handles and create ([@waxenegger](https://github.com/waxenegger))
* [#7329](https://github.com/openlayers/openlayers/pull/7329) - Reworked attribution handling ([@tschaub](https://github.com/tschaub))
* [#7337](https://github.com/openlayers/openlayers/pull/7337) - Always create a new blank image to avoid CSP violations ([@ahocevar](https://github.com/ahocevar))
* [#7330](https://github.com/openlayers/openlayers/pull/7330) - Add upgrade notes to 4.4.0 changelog ([@tschaub](https://github.com/tschaub))
* [#7321](https://github.com/openlayers/openlayers/pull/7321) - Release v4.4.1 ([@tschaub](https://github.com/tschaub))
* [#7323](https://github.com/openlayers/openlayers/pull/7323) - Only clear the canvas when needed ([@tschaub](https://github.com/tschaub))
* [#7313](https://github.com/openlayers/openlayers/pull/7313) - Use lowercase module identifiers until ol@5 ([@tschaub](https://github.com/tschaub))
* [#7316](https://github.com/openlayers/openlayers/pull/7316) - fix copy-paste error in 4.4.0 changelog ([@mprins](https://github.com/mprins))
* [#7315](https://github.com/openlayers/openlayers/pull/7315) - Add new ol.format.filter.Contains spatial operator ([@fredj](https://github.com/fredj))
* [#7311](https://github.com/openlayers/openlayers/pull/7311) - Release v4.4.0 ([@tschaub](https://github.com/tschaub))
Additionally a number of updates where made to our dependencies:
<details>
<summary>Click to expand</summary>
<ul>
<li><a href="https://github.com/openlayers/openlayers/pull/7455">#7455</a> - Update eslint to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7447">#7447</a> - chore(package): update rollup-plugin-commonjs to version 8.2.6 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7448">#7448</a> - chore(package): update debounce to version 1.1.0 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7451">#7451</a> - chore(package): update karma to version 1.7.1 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7446">#7446</a> - fix(package): update rollup to version 0.51.3 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7428">#7428</a> - Update sinon to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7425">#7425</a> - Update async to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7418">#7418</a> - Update sinon to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7416">#7416</a> - Update sinon to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7417">#7417</a> - Update phantomjs-prebuilt to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7399">#7399</a> - Update eslint to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7395">#7395</a> - Update closure-util to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7392">#7392</a> - Update sinon to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7380">#7380</a> - Update rollup-plugin-cleanup to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7366">#7366</a> - Update handlebars to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7360">#7360</a> - Update eslint to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7354">#7354</a> - Update closure-util to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7319">#7319</a> - Update closure-util to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
<li><a href="https://github.com/openlayers/openlayers/pull/7314">#7314</a> - Update mocha to the latest version 🚀 (<a href="https://github.com/openlayers">@openlayers</a>)</li>
</ul>
</details>

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

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

@@ -35,7 +35,7 @@ Interactions for [vector features](ol.Feature.html)
<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>
<td>[ol.DeviceOrientation](ol.DeviceOrientation.html)<br>
<td>
[ol.Geolocation](ol.Geolocation.html)<br>
[ol.Overlay](ol.Overlay.html)<br></td>
</tr></table>

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

@@ -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,7 +15,7 @@ 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'));
});
@@ -24,43 +24,43 @@ exports.publish = function(data, opts) {
// 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;
}
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);
const isExterns = (/[\\\/]externs$/).test(doc.meta.path);
if (isExterns && doc.longname.indexOf('olx.') === 0) {
if (doc.kind == 'typedef') {
typedefs.push({
@@ -68,12 +68,15 @@ exports.publish = function(data, opts) {
types: ['{}']
});
} else {
var typedef = typedefs[typedefs.length - 1];
var type = typedef.types[0];
const typedef = typedefs[typedefs.length - 1];
if (!typedef) {
throw new Error(`Expected to see a typedef before ${doc.longname} at ${doc.meta.filename}:${doc.meta.lineno}`);
}
const type = typedef.types[0];
typedef.types[0] = type
.replace(/\}$/, ', ' + doc.longname.split('#')[1] +
.replace(/\}$/, ', ' + doc.longname.split('#')[1] +
': (' + getTypes(doc.type.names).join('|') + ')}')
.replace('{, ', '{');
.replace('{, ', '{');
}
} else if (doc.define) {
defines.push({
@@ -88,11 +91,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 +107,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 +144,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 +171,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

@@ -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.

14
config/webpack.js Normal file
View File

@@ -0,0 +1,14 @@
const webpack = require('webpack');
const MinifyPlugin = require('babel-minify-webpack-plugin');
module.exports = {
entry: './src/index.js',
output: {
filename: 'build/ol.js'
},
devtool: 'source-map',
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),
new MinifyPlugin()
]
};

View File

@@ -44,10 +44,10 @@
}
.ol-selectable {
-webkit-touch-callout: default;
-webkit-user-select: auto;
-moz-user-select: auto;
-ms-user-select: auto;
user-select: auto;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
.ol-grabbing {
cursor: -webkit-grabbing;
@@ -179,9 +179,6 @@
.ol-attribution.ol-collapsed ul {
display: none;
}
.ol-attribution.ol-logo-only ul {
display: block;
}
.ol-attribution:not(.ol-collapsed) {
background: rgba(255,255,255,0.8);
}
@@ -192,17 +189,10 @@
height: 1.1em;
line-height: 1em;
}
.ol-attribution.ol-logo-only {
background: transparent;
bottom: .4em;
height: 1.1em;
line-height: 1em;
}
.ol-attribution.ol-uncollapsible img {
margin-top: -.2em;
max-height: 1.6em;
}
.ol-attribution.ol-logo-only button,
.ol-attribution.ol-uncollapsible button {
display: none;
}

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

@@ -107,7 +107,7 @@ In case you are creating a custom build of OpenLayers and do not need the reproj
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

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({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
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,29 @@
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 TileLayer from '../src/ol/layer/Tile.js';
import ImageLayer from '../src/ol/layer/Image.js';
import OSM from '../src/ol/source/OSM.js';
import ImageArcGISRest from '../src/ol/source/ImageArcGISRest.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

@@ -1,27 +1,27 @@
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 from '../src/ol/source/OSM.js';
import TileArcGISRest from '../src/ol/source/TileArcGISRest.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,29 @@
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} from '../src/ol/control.js';
import Attribution from '../src/ol/control/Attribution.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

@@ -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,29 @@
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 CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/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 +31,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 +49,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 +69,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,10 +86,10 @@ 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');
/**
@@ -98,7 +98,7 @@ var affectBlue = document.getElementById('affect-blue');
*
* @param {ol.render.Event} evt The render event.
*/
var setBlendModeFromSelect = function(evt) {
const setBlendModeFromSelect = function(evt) {
evt.context.globalCompositeOperation = select.value;
};
@@ -109,7 +109,7 @@ var setBlendModeFromSelect = function(evt) {
*
* @param {ol.render.Event} evt The render event.
*/
var resetBlendModeFromSelect = function(evt) {
const resetBlendModeFromSelect = function(evt) {
evt.context.globalCompositeOperation = 'source-over';
};
@@ -119,7 +119,7 @@ var resetBlendModeFromSelect = function(evt) {
*
* @param {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);
};
@@ -130,7 +130,7 @@ var bindLayerListeners = function(layer) {
*
* @param {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 +141,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

@@ -1,46 +1,46 @@
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 from '../src/ol/interaction/DragBox.js';
import Select from '../src/ol/interaction/Select.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.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 +48,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 +59,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

@@ -1,31 +1,31 @@
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 {getWidth} from '../src/ol/extent.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 from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/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();
const 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 grad = context.createLinearGradient(0, 0,
getWidth(extent) / resolution * pixelRatio, 0);
grad.addColorStop(0, 'red');
grad.addColorStop(1 / 6, 'orange');
grad.addColorStop(2 / 6, 'yellow');
@@ -37,7 +37,7 @@ function gradient(feature, resolution) {
}
// Generate a canvasPattern with two circles on white background
var pattern = (function() {
const pattern = (function() {
canvas.width = 11 * pixelRatio;
canvas.height = 11 * pixelRatio;
// white background
@@ -57,10 +57,10 @@ var pattern = (function() {
}());
// 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 +70,33 @@ 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 {module:ol/Feature~Feature} feature The feature to style.
* @param {number} resolution Resolution.
* @return {ol.style.Style} The style to use for the feature.
*/
var getStackedStyle = function(feature, resolution) {
var id = feature.getId();
const getStackedStyle = function(feature, resolution) {
const id = feature.getId();
fill.setColor(id > 'J' ? gradient(feature, resolution) : 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([7, 52]),
zoom: 3
})
});

View File

@@ -1,34 +1,33 @@
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 from '../src/ol/source/OSM.js';
import TileDebug from '../src/ol/source/TileDebug.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({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
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,10 @@
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 from '../src/ol/source/CartoDB.js';
import OSM from '../src/ol/source/OSM.js';
var mapConfig = {
const mapConfig = {
'layers': [{
'type': 'cartodb',
'options': {
@@ -15,22 +15,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,97 +1,97 @@
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 TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/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({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
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 {ol.Size} */ (map.getSize());
view.centerOn(point.getCoordinates(), size, [570, 500]);
}, false);

View File

@@ -1,58 +1,58 @@
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 TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import Cluster from '../src/ol/source/Cluster.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
import Text from '../src/ol/style/Text.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 +63,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,23 @@
// 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 RasterSource from '../src/ol/source/Raster.js';
import Stamen from '../src/ol/source/Stamen.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 +26,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 +61,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 +100,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 +139,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,17 @@
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} from '../src/ol/control.js';
import Control from '../src/ol/control/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 +21,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,21 +57,21 @@ ol.inherits(app.RotateNorthControl, ol.control.Control);
//
var map = new ol.Map({
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
const map = new Map({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}).extend([
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

@@ -1,26 +1,26 @@
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 from '../src/ol/geom/LineString.js';
import Point from '../src/ol/geom/Point.js';
import Polygon from '../src/ol/geom/Polygon.js';
import {defaults as defaultInteractions} from '../src/ol/interaction.js';
import PointerInteraction from '../src/ol/interaction/Pointer.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import TileJSON from '../src/ol/source/TileJSON.js';
import VectorSource from '../src/ol/source/Vector.js';
import Fill from '../src/ol/style/Fill.js';
import Icon from '../src/ol/style/Icon.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
/**
* Define a namespace for the application.
*/
var app = {};
const app = {};
/**
@@ -29,7 +29,7 @@ var app = {};
*/
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,
@@ -49,7 +49,7 @@ app.Drag = function() {
this.cursor_ = 'pointer';
/**
* @type {ol.Feature}
* @type {module:ol/Feature~Feature}
* @private
*/
this.feature_ = null;
@@ -61,20 +61,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,14 +86,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 = /** @type {ol.geom.SimpleGeometry} */
(this.feature_.getGeometry());
const geometry = this.feature_.getGeometry();
geometry.translate(deltaX, deltaY);
this.coordinate_[0] = evt.coordinate[0];
@@ -102,16 +101,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;
@@ -135,48 +134,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 {olx.style.IconOptions} */ ({
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>

84
examples/d3.js vendored
View File

@@ -1,25 +1,25 @@
// 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 ImageLayer from '../src/ol/layer/Image.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {fromLonLat, toLonLat} from '../src/ol/proj.js';
import ImageCanvasSource from '../src/ol/source/ImageCanvas.js';
import Stamen from '../src/ol/source/Stamen.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
})
});
@@ -29,7 +29,7 @@ var map = new ol.Map({
* 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.
@@ -37,55 +37,51 @@ d3.json('data/topojson/us.json', function(error, us) {
* @param {number} resolution Resolution.
* @param {number} pixelRatio Pixel ratio.
* @param {ol.Size} size Size.
* @param {ol.proj.Projection} projection Projection.
* @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,30 +1,26 @@
// 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({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
view: view
});
@@ -34,15 +30,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

@@ -1,9 +1,9 @@
---
layout: example.html
title: Drag-and-Drop Image Vector
shortdesc: Example of using the drag-and-drop interaction with a ol.source.ImageVector.
shortdesc: Example of using the drag-and-drop interaction with image vector rendering.
docs: >
Example of using the drag-and-drop interaction with a ol.source.ImageVector. 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

View File

@@ -1,82 +1,81 @@
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.Image');
goog.require('ol.layer.Tile');
goog.require('ol.source.BingMaps');
goog.require('ol.source.ImageVector');
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 from '../src/ol/format/GPX.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import IGC from '../src/ol/format/IGC.js';
import KML from '../src/ol/format/KML.js';
import TopoJSON from '../src/ol/format/TopoJSON.js';
import {defaults as defaultInteractions} from '../src/ol/interaction.js';
import DragAndDrop from '../src/ol/interaction/DragAndDrop.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/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 {
@@ -84,54 +83,53 @@ 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.Image({
source: new ol.source.ImageVector({
source: vectorSource,
style: styleFunction
})
map.addLayer(new VectorLayer({
renderMode: 'image',
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'));
}
@@ -145,7 +143,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,81 +1,81 @@
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 from '../src/ol/format/GPX.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import IGC from '../src/ol/format/IGC.js';
import KML from '../src/ol/format/KML.js';
import TopoJSON from '../src/ol/format/TopoJSON.js';
import {defaults as defaultInteractions} from '../src/ol/interaction.js';
import DragAndDrop from '../src/ol/interaction/DragAndDrop.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/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 +83,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 +142,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,22 @@
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} from '../src/ol/interaction.js';
import DragRotateAndZoom from '../src/ol/interaction/DragRotateAndZoom.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,63 +1,63 @@
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 from '../src/ol/interaction/Draw.js';
import Modify from '../src/ol/interaction/Modify.js';
import Snap from '../src/ol/interaction/Snap.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/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: /** @type {ol.geom.GeometryType} */ (typeSelect.value)
type: typeSelect.value
});
map.addInteraction(draw);
snap = new ol.interaction.Snap({source: source});
snap = new Snap({source: source});
map.addInteraction(snap);
}

View File

@@ -1,39 +1,39 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.interaction.Draw');
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 Draw from '../src/ol/interaction/Draw.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.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({wrapX: false});
const source = new VectorSource({wrapX: false});
var vector = new ol.layer.Vector({
const vector = new VectorLayer({
source: source
});
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 typeSelect = document.getElementById('type');
const typeSelect = document.getElementById('type');
var draw; // global so we can remove it later
let draw; // global so we can remove it later
function addInteraction() {
var value = typeSelect.value;
const value = typeSelect.value;
if (value !== 'None') {
draw = new ol.interaction.Draw({
draw = new Draw({
source: source,
type: /** @type {ol.geom.GeometryType} */ (typeSelect.value)
type: typeSelect.value
});
map.addInteraction(draw);
}

View File

@@ -1,39 +1,39 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.interaction.Draw');
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 Draw from '../src/ol/interaction/Draw.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.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({wrapX: false});
const source = new VectorSource({wrapX: false});
var vector = new ol.layer.Vector({
const vector = new VectorLayer({
source: source
});
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 typeSelect = document.getElementById('type');
const typeSelect = document.getElementById('type');
var draw; // global so we can remove it later
let draw; // global so we can remove it later
function addInteraction() {
var value = typeSelect.value;
const value = typeSelect.value;
if (value !== 'None') {
draw = new ol.interaction.Draw({
draw = new Draw({
source: source,
type: /** @type {ol.geom.GeometryType} */ (typeSelect.value),
type: typeSelect.value,
freehand: true
});
map.addInteraction(draw);

View File

@@ -1,63 +1,63 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.Polygon');
goog.require('ol.interaction.Draw');
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 Polygon from '../src/ol/geom/Polygon.js';
import Draw, {createRegularPolygon, createBox} from '../src/ol/interaction/Draw.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.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({wrapX: false});
const source = new VectorSource({wrapX: false});
var vector = new ol.layer.Vector({
const vector = new VectorLayer({
source: source
});
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 typeSelect = document.getElementById('type');
const typeSelect = document.getElementById('type');
var draw; // global so we can remove it later
let draw; // global so we can remove it later
function addInteraction() {
var value = typeSelect.value;
let value = typeSelect.value;
if (value !== 'None') {
var geometryFunction;
let geometryFunction;
if (value === 'Square') {
value = 'Circle';
geometryFunction = ol.interaction.Draw.createRegularPolygon(4);
geometryFunction = createRegularPolygon(4);
} else if (value === 'Box') {
value = 'Circle';
geometryFunction = ol.interaction.Draw.createBox();
geometryFunction = createBox();
} else if (value === 'Star') {
value = 'Circle';
geometryFunction = function(coordinates, geometry) {
if (!geometry) {
geometry = new ol.geom.Polygon(null);
geometry = new Polygon(null);
}
var center = coordinates[0];
var last = coordinates[1];
var dx = center[0] - last[0];
var dy = center[1] - last[1];
var radius = Math.sqrt(dx * dx + dy * dy);
var rotation = Math.atan2(dy, dx);
var newCoordinates = [];
var numPoints = 12;
for (var i = 0; i < numPoints; ++i) {
var angle = rotation + i * 2 * Math.PI / numPoints;
var fraction = i % 2 === 0 ? 1 : 0.5;
var offsetX = radius * fraction * Math.cos(angle);
var offsetY = radius * fraction * Math.sin(angle);
const center = coordinates[0];
const last = coordinates[1];
const dx = center[0] - last[0];
const dy = center[1] - last[1];
const radius = Math.sqrt(dx * dx + dy * dy);
const rotation = Math.atan2(dy, dx);
const newCoordinates = [];
const numPoints = 12;
for (let i = 0; i < numPoints; ++i) {
const angle = rotation + i * 2 * Math.PI / numPoints;
const fraction = i % 2 === 0 ? 1 : 0.5;
const offsetX = radius * fraction * Math.cos(angle);
const offsetY = radius * fraction * Math.sin(angle);
newCoordinates.push([center[0] + offsetX, center[1] + offsetY]);
}
newCoordinates.push(newCoordinates[0].slice());
@@ -65,9 +65,9 @@ function addInteraction() {
return geometry;
};
}
draw = new ol.interaction.Draw({
draw = new Draw({
source: source,
type: /** @type {ol.geom.GeometryType} */ (value),
type: value,
geometryFunction: geometryFunction
});
map.addInteraction(draw);

View File

@@ -1,74 +1,74 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.Point');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
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 MultiPoint from '../src/ol/geom/MultiPoint.js';
import Point from '../src/ol/geom/Point.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.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: [0, 0],
zoom: 2
})
});
var imageStyle = new ol.style.Style({
image: new ol.style.Circle({
const imageStyle = new Style({
image: new CircleStyle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'yellow'}),
stroke: new ol.style.Stroke({color: 'red', width: 1})
fill: new Fill({color: 'yellow'}),
stroke: new Stroke({color: 'red', width: 1})
})
});
var headInnerImageStyle = new ol.style.Style({
image: new ol.style.Circle({
const headInnerImageStyle = new Style({
image: new CircleStyle({
radius: 2,
snapToPixel: false,
fill: new ol.style.Fill({color: 'blue'})
fill: new Fill({color: 'blue'})
})
});
var headOuterImageStyle = new ol.style.Style({
image: new ol.style.Circle({
const headOuterImageStyle = new Style({
image: new CircleStyle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'black'})
fill: new Fill({color: 'black'})
})
});
var n = 200;
var omegaTheta = 30000; // Rotation period in ms
var R = 7e6;
var r = 2e6;
var p = 2e6;
const n = 200;
const omegaTheta = 30000; // Rotation period in ms
const R = 7e6;
const r = 2e6;
const p = 2e6;
map.on('postcompose', function(event) {
var vectorContext = event.vectorContext;
var frameState = event.frameState;
var theta = 2 * Math.PI * frameState.time / omegaTheta;
var coordinates = [];
var i;
const vectorContext = event.vectorContext;
const frameState = event.frameState;
const theta = 2 * Math.PI * frameState.time / omegaTheta;
const coordinates = [];
let i;
for (i = 0; i < n; ++i) {
var t = theta + 2 * Math.PI * i / n;
var x = (R + r) * Math.cos(t) + p * Math.cos((R + r) * t / r);
var y = (R + r) * Math.sin(t) + p * Math.sin((R + r) * t / r);
const t = theta + 2 * Math.PI * i / n;
const x = (R + r) * Math.cos(t) + p * Math.cos((R + r) * t / r);
const y = (R + r) * Math.sin(t) + p * Math.sin((R + r) * t / r);
coordinates.push([x, y]);
}
vectorContext.setStyle(imageStyle);
vectorContext.drawGeometry(new ol.geom.MultiPoint(coordinates));
vectorContext.drawGeometry(new MultiPoint(coordinates));
var headPoint = new ol.geom.Point(coordinates[coordinates.length - 1]);
const headPoint = new Point(coordinates[coordinates.length - 1]);
vectorContext.setStyle(headOuterImageStyle);
vectorContext.drawGeometry(headPoint);

View File

@@ -1,37 +1,37 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.extent');
goog.require('ol.format.KML');
goog.require('ol.interaction');
goog.require('ol.interaction.Select');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.Cluster');
goog.require('ol.source.Stamen');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.RegularShape');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
goog.require('ol.style.Text');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {createEmpty, getWidth, getHeight, extend} from '../src/ol/extent.js';
import KML from '../src/ol/format/KML.js';
import {defaults as defaultInteractions} from '../src/ol/interaction.js';
import Select from '../src/ol/interaction/Select.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import Cluster from '../src/ol/source/Cluster.js';
import Stamen from '../src/ol/source/Stamen.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import RegularShape from '../src/ol/style/RegularShape.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
import Text from '../src/ol/style/Text.js';
var earthquakeFill = new ol.style.Fill({
const earthquakeFill = new Fill({
color: 'rgba(255, 153, 0, 0.8)'
});
var earthquakeStroke = new ol.style.Stroke({
const earthquakeStroke = new Stroke({
color: 'rgba(255, 204, 0, 0.2)',
width: 1
});
var textFill = new ol.style.Fill({
const textFill = new Fill({
color: '#fff'
});
var textStroke = new ol.style.Stroke({
const textStroke = new Stroke({
color: 'rgba(0, 0, 0, 0.6)',
width: 3
});
var invisibleFill = new ol.style.Fill({
const invisibleFill = new Fill({
color: 'rgba(255, 255, 255, 0.01)'
});
@@ -39,13 +39,13 @@ function createEarthquakeStyle(feature) {
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
// standards-violating <magnitude> tag in each Placemark. We extract it
// from the Placemark's name instead.
var name = feature.get('name');
var magnitude = parseFloat(name.substr(2));
var radius = 5 + 20 * (magnitude - 5);
const name = feature.get('name');
const magnitude = parseFloat(name.substr(2));
const radius = 5 + 20 * (magnitude - 5);
return new ol.style.Style({
return new Style({
geometry: feature.getGeometry(),
image: new ol.style.RegularShape({
image: new RegularShape({
radius1: radius,
radius2: 3,
points: 5,
@@ -56,77 +56,78 @@ function createEarthquakeStyle(feature) {
});
}
var maxFeatureCount, vector;
function calculateClusterInfo(resolution) {
let maxFeatureCount;
let vector = null;
const calculateClusterInfo = function(resolution) {
maxFeatureCount = 0;
var features = vector.getSource().getFeatures();
var feature, radius;
for (var i = features.length - 1; i >= 0; --i) {
const features = vector.getSource().getFeatures();
let feature, radius;
for (let i = features.length - 1; i >= 0; --i) {
feature = features[i];
var originalFeatures = feature.get('features');
var extent = ol.extent.createEmpty();
var j, jj;
const originalFeatures = feature.get('features');
const extent = createEmpty();
let j, jj;
for (j = 0, jj = originalFeatures.length; j < jj; ++j) {
ol.extent.extend(extent, originalFeatures[j].getGeometry().getExtent());
extend(extent, originalFeatures[j].getGeometry().getExtent());
}
maxFeatureCount = Math.max(maxFeatureCount, jj);
radius = 0.25 * (ol.extent.getWidth(extent) + ol.extent.getHeight(extent)) /
radius = 0.25 * (getWidth(extent) + getHeight(extent)) /
resolution;
feature.set('radius', radius);
}
}
};
var currentResolution;
let currentResolution;
function styleFunction(feature, resolution) {
if (resolution != currentResolution) {
calculateClusterInfo(resolution);
currentResolution = resolution;
}
var style;
var size = feature.get('features').length;
let style;
const size = feature.get('features').length;
if (size > 1) {
style = new ol.style.Style({
image: new ol.style.Circle({
style = new Style({
image: new CircleStyle({
radius: feature.get('radius'),
fill: new ol.style.Fill({
fill: new Fill({
color: [255, 153, 0, Math.min(0.8, 0.4 + (size / maxFeatureCount))]
})
}),
text: new ol.style.Text({
text: new Text({
text: size.toString(),
fill: textFill,
stroke: textStroke
})
});
} else {
var originalFeature = feature.get('features')[0];
const originalFeature = feature.get('features')[0];
style = createEarthquakeStyle(originalFeature);
}
return style;
}
function selectStyleFunction(feature) {
var styles = [new ol.style.Style({
image: new ol.style.Circle({
const styles = [new Style({
image: new CircleStyle({
radius: feature.get('radius'),
fill: invisibleFill
})
})];
var originalFeatures = feature.get('features');
var originalFeature;
for (var i = originalFeatures.length - 1; i >= 0; --i) {
const originalFeatures = feature.get('features');
let originalFeature;
for (let i = originalFeatures.length - 1; i >= 0; --i) {
originalFeature = originalFeatures[i];
styles.push(createEarthquakeStyle(originalFeature));
}
return styles;
}
vector = new ol.layer.Vector({
source: new ol.source.Cluster({
vector = new VectorLayer({
source: new Cluster({
distance: 40,
source: new ol.source.Vector({
source: new VectorSource({
url: 'data/kml/2012_Earthquakes_Mag5.kml',
format: new ol.format.KML({
format: new KML({
extractStyles: false
})
})
@@ -134,15 +135,15 @@ vector = new ol.layer.Vector({
style: styleFunction
});
var raster = new ol.layer.Tile({
source: new ol.source.Stamen({
const raster = new TileLayer({
source: new Stamen({
layer: 'toner'
})
});
var map = new ol.Map({
const map = new Map({
layers: [raster, vector],
interactions: ol.interaction.defaults().extend([new ol.interaction.Select({
interactions: defaultInteractions().extend([new Select({
condition: function(evt) {
return evt.type == 'pointermove' ||
evt.type == 'singleclick';
@@ -150,7 +151,7 @@ var map = new ol.Map({
style: selectStyleFunction
})]),
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})

View File

@@ -1,47 +1,46 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.KML');
goog.require('ol.geom.Polygon');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.render');
goog.require('ol.source.Stamen');
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 Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import KML from '../src/ol/format/KML.js';
import Polygon from '../src/ol/geom/Polygon.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {toContext} from '../src/ol/render.js';
import Stamen from '../src/ol/source/Stamen.js';
import VectorSource from '../src/ol/source/Vector.js';
import Fill from '../src/ol/style/Fill.js';
import Icon from '../src/ol/style/Icon.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
var symbol = [[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]];
var scale;
var scaleFunction = function(coordinate) {
const symbol = [[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]];
let scale;
const scaleFunction = function(coordinate) {
return [coordinate[0] * scale, coordinate[1] * scale];
};
var styleCache = {};
var styleFunction = function(feature) {
const styleCache = {};
const styleFunction = function(feature) {
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
// standards-violating <magnitude> tag in each Placemark. We extract it from
// the Placemark's name instead.
var name = feature.get('name');
var magnitude = parseFloat(name.substr(2));
var size = parseInt(10 + 40 * (magnitude - 5), 10);
const name = feature.get('name');
const magnitude = parseFloat(name.substr(2));
const size = parseInt(10 + 40 * (magnitude - 5), 10);
scale = size / 10;
var style = styleCache[size];
let style = styleCache[size];
if (!style) {
var canvas =
/** @type {HTMLCanvasElement} */ (document.createElement('canvas'));
var vectorContext = ol.render.toContext(
/** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d')),
{size: [size, size], pixelRatio: 1});
vectorContext.setStyle(new ol.style.Style({
fill: new ol.style.Fill({color: 'rgba(255, 153, 0, 0.4)'}),
stroke: new ol.style.Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 2})
const canvas = /** @type {HTMLCanvasElement} */ (document.createElement('canvas'));
const vectorContext = toContext(
/** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d')),
{size: [size, size], pixelRatio: 1});
vectorContext.setStyle(new Style({
fill: new Fill({color: 'rgba(255, 153, 0, 0.4)'}),
stroke: new Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 2})
}));
vectorContext.drawGeometry(new ol.geom.Polygon([symbol.map(scaleFunction)]));
style = new ol.style.Style({
image: new ol.style.Icon({
vectorContext.drawGeometry(new Polygon([symbol.map(scaleFunction)]));
style = new Style({
image: new Icon({
img: canvas,
imgSize: [size, size],
rotation: 1.2
@@ -52,26 +51,26 @@ var styleFunction = function(feature) {
return style;
};
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
const vector = new VectorLayer({
source: new VectorSource({
url: 'data/kml/2012_Earthquakes_Mag5.kml',
format: new ol.format.KML({
format: new KML({
extractStyles: false
})
}),
style: styleFunction
});
var raster = new ol.layer.Tile({
source: new ol.source.Stamen({
const raster = new TileLayer({
source: new Stamen({
layer: 'toner'
})
});
var map = new ol.Map({
const map = new Map({
layers: [raster, vector],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})

View File

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

View File

@@ -1,33 +1,33 @@
// NOCOMPILE
// this example uses FileSaver.js for which we don't have an externs file.
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');
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 TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.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()
}),
new ol.layer.Vector({
source: new ol.source.Vector({
new VectorLayer({
source: new VectorSource({
url: 'data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
format: new GeoJSON()
})
})
],
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
@@ -35,7 +35,7 @@ var map = new ol.Map({
document.getElementById('export-png').addEventListener('click', function() {
map.once('postcompose', function(event) {
var canvas = event.context.canvas;
const canvas = event.context.canvas;
if (navigator.msSaveBlob) {
navigator.msSaveBlob(canvas.msToBlob(), 'map.png');
} else {

View File

@@ -1,47 +1,48 @@
// NOCOMPILE
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.format.WKT');
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 {defaults as defaultControls} from '../src/ol/control.js';
import WKT from '../src/ol/format/WKT.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {unByKey} from '../src/ol/Observable.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
const raster = new TileLayer({
source: new OSM()
});
var format = new ol.format.WKT();
var feature = format.readFeature(
'POLYGON((10.689697265625 -25.0927734375, 34.595947265625 ' +
const format = new WKT();
const feature = format.readFeature(
'POLYGON((10.689697265625 -25.0927734375, 34.595947265625 ' +
'-20.1708984375, 38.814697265625 -35.6396484375, 13.502197265625 ' +
'-39.1552734375, 10.689697265625 -25.0927734375))');
feature.getGeometry().transform('EPSG:4326', 'EPSG:3857');
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
const vector = new VectorLayer({
source: new VectorSource({
features: [feature]
})
});
var map = new ol.Map({
const map = new Map({
layers: [raster, vector],
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
});
var dims = {
const dims = {
a0: [1189, 841],
a1: [841, 594],
a2: [594, 420],
@@ -50,61 +51,75 @@ var dims = {
a5: [210, 148]
};
var loading = 0;
var loaded = 0;
let loading = 0;
let loaded = 0;
var exportButton = document.getElementById('export-pdf');
const exportButton = document.getElementById('export-pdf');
exportButton.addEventListener('click', function() {
exportButton.disabled = true;
document.body.style.cursor = 'progress';
var format = document.getElementById('format').value;
var resolution = document.getElementById('resolution').value;
var dim = dims[format];
var width = Math.round(dim[0] * resolution / 25.4);
var height = Math.round(dim[1] * resolution / 25.4);
var size = /** @type {ol.Size} */ (map.getSize());
var extent = map.getView().calculateExtent(size);
const format = document.getElementById('format').value;
const resolution = document.getElementById('resolution').value;
const dim = dims[format];
const width = Math.round(dim[0] * resolution / 25.4);
const height = Math.round(dim[1] * resolution / 25.4);
const size = /** @type {ol.Size} */ (map.getSize());
const extent = map.getView().calculateExtent(size);
var source = raster.getSource();
const source = raster.getSource();
var tileLoadStart = function() {
const tileLoadStart = function() {
++loading;
};
var tileLoadEnd = function() {
++loaded;
if (loading === loaded) {
var canvas = this;
window.setTimeout(function() {
loading = 0;
loaded = 0;
var data = canvas.toDataURL('image/png');
var pdf = new jsPDF('landscape', undefined, format);
pdf.addImage(data, 'JPEG', 0, 0, dim[0], dim[1]);
pdf.save('map.pdf');
source.un('tileloadstart', tileLoadStart);
source.un('tileloadend', tileLoadEnd, canvas);
source.un('tileloaderror', tileLoadEnd, canvas);
map.setSize(size);
map.getView().fit(extent);
map.renderSync();
exportButton.disabled = false;
document.body.style.cursor = 'auto';
}, 100);
}
};
let timer;
let keys = [];
function tileLoadEndFactory(canvas) {
return () => {
++loaded;
if (timer) {
clearTimeout(timer);
timer = null;
}
if (loading === loaded) {
timer = window.setTimeout(() => {
loading = 0;
loaded = 0;
const data = canvas.toDataURL('image/jpeg');
const pdf = new jsPDF('landscape', undefined, format);
pdf.addImage(data, 'JPEG', 0, 0, dim[0], dim[1]);
pdf.save('map.pdf');
keys.forEach(unByKey);
keys = [];
map.setSize(size);
map.getView().fit(extent, {size});
map.renderSync();
exportButton.disabled = false;
document.body.style.cursor = 'auto';
}, 500);
}
};
}
map.once('postcompose', function(event) {
source.on('tileloadstart', tileLoadStart);
source.on('tileloadend', tileLoadEnd, event.context.canvas);
source.on('tileloaderror', tileLoadEnd, event.context.canvas);
const canvas = event.context.canvas;
const tileLoadEnd = tileLoadEndFactory(canvas);
keys = [
source.on('tileloadstart', tileLoadStart),
source.on('tileloadend', tileLoadEnd),
source.on('tileloaderror', tileLoadEnd)
];
tileLoadEnd();
});
map.setSize([width, height]);
map.getView().fit(extent);
const printSize = [width, height];
map.setSize(printSize);
map.getView().fit(extent, {size: printSize});
loaded = -1;
map.renderSync();
}, false);

View File

@@ -1,36 +1,36 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.events.condition');
goog.require('ol.format.GeoJSON');
goog.require('ol.interaction.Extent');
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 ExtentInteraction from '../src/ol/interaction/Extent.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.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
})
});
var extent = new ol.interaction.Extent({
condition: ol.events.condition.platformModifierKeyOnly
const extent = new ExtentInteraction({
condition: platformModifierKeyOnly
});
map.addInteraction(extent);
extent.setActive(false);

View File

@@ -1,77 +1,76 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.Observable');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.easing');
goog.require('ol.geom.Point');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.proj');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
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 {unByKey} from '../src/ol/Observable.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.js';
import {easeOut} from '../src/ol/easing.js';
import Point from '../src/ol/geom/Point.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {fromLonLat} from '../src/ol/proj.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.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({
wrapX: false
})
})
],
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 1
})
});
var source = new ol.source.Vector({
const source = new VectorSource({
wrapX: false
});
var vector = new ol.layer.Vector({
const vector = new VectorLayer({
source: source
});
map.addLayer(vector);
function addRandomFeature() {
var x = Math.random() * 360 - 180;
var y = Math.random() * 180 - 90;
var geom = new ol.geom.Point(ol.proj.transform([x, y],
'EPSG:4326', 'EPSG:3857'));
var feature = new ol.Feature(geom);
const x = Math.random() * 360 - 180;
const y = Math.random() * 180 - 90;
const geom = new Point(fromLonLat([x, y]));
const feature = new Feature(geom);
source.addFeature(feature);
}
var duration = 3000;
const duration = 3000;
function flash(feature) {
var start = new Date().getTime();
var listenerKey;
const start = new Date().getTime();
const listenerKey = map.on('postcompose', animate);
function animate(event) {
var vectorContext = event.vectorContext;
var frameState = event.frameState;
var flashGeom = feature.getGeometry().clone();
var elapsed = frameState.time - start;
var elapsedRatio = elapsed / duration;
const vectorContext = event.vectorContext;
const frameState = event.frameState;
const flashGeom = feature.getGeometry().clone();
const elapsed = frameState.time - start;
const elapsedRatio = elapsed / duration;
// radius will be 5 at start and 30 at end.
var radius = ol.easing.easeOut(elapsedRatio) * 25 + 5;
var opacity = ol.easing.easeOut(1 - elapsedRatio);
const radius = easeOut(elapsedRatio) * 25 + 5;
const opacity = easeOut(1 - elapsedRatio);
var style = new ol.style.Style({
image: new ol.style.Circle({
const style = new Style({
image: new CircleStyle({
radius: radius,
snapToPixel: false,
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: 'rgba(255, 0, 0, ' + opacity + ')',
width: 0.25 + opacity
})
@@ -81,13 +80,12 @@ function flash(feature) {
vectorContext.setStyle(style);
vectorContext.drawGeometry(flashGeom);
if (elapsed > duration) {
ol.Observable.unByKey(listenerKey);
unByKey(listenerKey);
return;
}
// tell OpenLayers to continue postcompose animation
map.render();
}
listenerKey = map.on('postcompose', animate);
}
source.on('addfeature', function(e) {

View File

@@ -1,21 +1,21 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.Polyline');
goog.require('ol.geom.Point');
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.Icon');
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 Polyline from '../src/ol/format/Polyline.js';
import Point from '../src/ol/geom/Point.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Icon from '../src/ol/style/Icon.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
// This long string is placed here due to jsFiddle limitations.
// It is usually loaded with AJAX.
var polyline = [
const polyline = [
'hldhx@lnau`BCG_EaC??cFjAwDjF??uBlKMd@}@z@??aC^yk@z_@se@b[wFdE??wFfE}N',
'fIoGxB_I\\gG}@eHoCyTmPqGaBaHOoD\\??yVrGotA|N??o[N_STiwAtEmHGeHcAkiA}^',
'aMyBiHOkFNoI`CcVvM??gG^gF_@iJwC??eCcA]OoL}DwFyCaCgCcCwDcGwHsSoX??wI_E',
@@ -57,64 +57,64 @@ var polyline = [
'~@ym@yjA??a@cFd@kBrCgDbAUnAcBhAyAdk@et@??kF}D??OL'
].join('');
var route = /** @type {ol.geom.LineString} */ (new ol.format.Polyline({
const route = /** @type {module:ol/geom/LineString~LineString} */ (new Polyline({
factor: 1e6
}).readGeometry(polyline, {
dataProjection: 'EPSG:4326',
featureProjection: 'EPSG:3857'
}));
var routeCoords = route.getCoordinates();
var routeLength = routeCoords.length;
const routeCoords = route.getCoordinates();
const routeLength = routeCoords.length;
var routeFeature = new ol.Feature({
const routeFeature = new Feature({
type: 'route',
geometry: route
});
var geoMarker = new ol.Feature({
const geoMarker = new Feature({
type: 'geoMarker',
geometry: new ol.geom.Point(routeCoords[0])
geometry: new Point(routeCoords[0])
});
var startMarker = new ol.Feature({
const startMarker = new Feature({
type: 'icon',
geometry: new ol.geom.Point(routeCoords[0])
geometry: new Point(routeCoords[0])
});
var endMarker = new ol.Feature({
const endMarker = new Feature({
type: 'icon',
geometry: new ol.geom.Point(routeCoords[routeLength - 1])
geometry: new Point(routeCoords[routeLength - 1])
});
var styles = {
'route': new ol.style.Style({
stroke: new ol.style.Stroke({
const styles = {
'route': new Style({
stroke: new Stroke({
width: 6, color: [237, 212, 0, 0.8]
})
}),
'icon': new ol.style.Style({
image: new ol.style.Icon({
'icon': new Style({
image: new Icon({
anchor: [0.5, 1],
src: 'data/icon.png'
})
}),
'geoMarker': new ol.style.Style({
image: new ol.style.Circle({
'geoMarker': new Style({
image: new CircleStyle({
radius: 7,
snapToPixel: false,
fill: new ol.style.Fill({color: 'black'}),
stroke: new ol.style.Stroke({
fill: new Fill({color: 'black'}),
stroke: new Stroke({
color: 'white', width: 2
})
})
})
};
var animating = false;
var speed, now;
var speedInput = document.getElementById('speed');
var startButton = document.getElementById('start-animation');
let animating = false;
let speed, now;
const speedInput = document.getElementById('speed');
const startButton = document.getElementById('start-animation');
var vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
const vectorLayer = new VectorLayer({
source: new VectorSource({
features: [routeFeature, geoMarker, startMarker, endMarker]
}),
style: function(feature) {
@@ -126,19 +126,19 @@ var vectorLayer = new ol.layer.Vector({
}
});
var center = [-5639523.95, -3501274.52];
var map = new ol.Map({
const center = [-5639523.95, -3501274.52];
const map = new Map({
target: document.getElementById('map'),
loadTilesWhileAnimating: true,
view: new ol.View({
view: new View({
center: center,
zoom: 10,
minZoom: 2,
maxZoom: 19
}),
layers: [
new ol.layer.Tile({
source: new ol.source.BingMaps({
new TileLayer({
source: new BingMaps({
imagerySet: 'AerialWithLabels',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
})
@@ -147,23 +147,23 @@ var map = new ol.Map({
]
});
var moveFeature = function(event) {
var vectorContext = event.vectorContext;
var frameState = event.frameState;
const moveFeature = function(event) {
const vectorContext = event.vectorContext;
const frameState = event.frameState;
if (animating) {
var elapsedTime = frameState.time - now;
const elapsedTime = frameState.time - now;
// here the trick to increase speed is to jump some indexes
// on lineString coordinates
var index = Math.round(speed * elapsedTime / 1000);
const index = Math.round(speed * elapsedTime / 1000);
if (index >= routeLength) {
stopAnimation(true);
return;
}
var currentPoint = new ol.geom.Point(routeCoords[index]);
var feature = new ol.Feature(currentPoint);
const currentPoint = new Point(routeCoords[index]);
const feature = new Feature(currentPoint);
vectorContext.drawFeature(feature, styles.geoMarker);
}
// tell OpenLayers to continue the postcompose animation
@@ -196,9 +196,9 @@ function stopAnimation(ended) {
startButton.textContent = 'Start Animation';
// if animation cancelled set the marker at the beginning
var coord = ended ? routeCoords[routeLength - 1] : routeCoords[0];
/** @type {ol.geom.Point} */ (geoMarker.getGeometry())
.setCoordinates(coord);
const coord = ended ? routeCoords[routeLength - 1] : routeCoords[0];
/** @type {module:ol/geom/Point~Point} */ (geoMarker.getGeometry())
.setCoordinates(coord);
//remove listener
map.un('postcompose', moveFeature);
}

View File

@@ -1,102 +1,63 @@
// NOCOMPILE
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.LineString');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.proj');
goog.require('ol.source.Stamen');
goog.require('ol.source.Vector');
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 LineString from '../src/ol/geom/LineString.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import Stamen from '../src/ol/source/Stamen.js';
import VectorSource from '../src/ol/source/Vector.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.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: 'toner'
})
})
],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
});
var style = new ol.style.Style({
stroke: new ol.style.Stroke({
const style = new Style({
stroke: new Stroke({
color: '#EAE911',
width: 2
})
});
var flightsSource;
var addLater = function(feature, timeout) {
window.setTimeout(function() {
feature.set('start', new Date().getTime());
flightsSource.addFeature(feature);
}, timeout);
};
var pointsPerMs = 0.1;
var animateFlights = function(event) {
var vectorContext = event.vectorContext;
var frameState = event.frameState;
vectorContext.setStyle(style);
var features = flightsSource.getFeatures();
for (var i = 0; i < features.length; i++) {
var feature = features[i];
if (!feature.get('finished')) {
// only draw the lines for which the animation has not finished yet
var coords = feature.getGeometry().getCoordinates();
var elapsedTime = frameState.time - feature.get('start');
var elapsedPoints = elapsedTime * pointsPerMs;
if (elapsedPoints >= coords.length) {
feature.set('finished', true);
}
var maxIndex = Math.min(elapsedPoints, coords.length);
var currentLine = new ol.geom.LineString(coords.slice(0, maxIndex));
// directly draw the line with the vector context
vectorContext.drawGeometry(currentLine);
}
}
// tell OpenLayers to continue the animation
map.render();
};
flightsSource = new ol.source.Vector({
const flightsSource = new VectorSource({
wrapX: false,
attributions: 'Flight data by ' +
'<a href="http://openflights.org/data.html">OpenFlights</a>,',
loader: function() {
var url = 'data/openflights/flights.json';
const url = 'data/openflights/flights.json';
fetch(url).then(function(response) {
return response.json();
}).then(function(json) {
var flightsData = json.flights;
for (var i = 0; i < flightsData.length; i++) {
var flight = flightsData[i];
var from = flight[0];
var to = flight[1];
const flightsData = json.flights;
for (let i = 0; i < flightsData.length; i++) {
const flight = flightsData[i];
const from = flight[0];
const to = flight[1];
// create an arc circle between the two locations
var arcGenerator = new arc.GreatCircle(
{x: from[1], y: from[0]},
{x: to[1], y: to[0]});
const arcGenerator = new arc.GreatCircle(
{x: from[1], y: from[0]},
{x: to[1], y: to[0]});
var arcLine = arcGenerator.Arc(100, {offset: 10});
const arcLine = arcGenerator.Arc(100, {offset: 10});
if (arcLine.geometries.length === 1) {
var line = new ol.geom.LineString(arcLine.geometries[0].coords);
line.transform(ol.proj.get('EPSG:4326'), ol.proj.get('EPSG:3857'));
const line = new LineString(arcLine.geometries[0].coords);
line.transform('EPSG:4326', 'EPSG:3857');
var feature = new ol.Feature({
const feature = new Feature({
geometry: line,
finished: false
});
@@ -110,7 +71,7 @@ flightsSource = new ol.source.Vector({
}
});
var flightsLayer = new ol.layer.Vector({
const flightsLayer = new VectorLayer({
source: flightsSource,
style: function(feature) {
// if the animation is still active for a feature, do not
@@ -122,4 +83,42 @@ var flightsLayer = new ol.layer.Vector({
}
}
});
map.addLayer(flightsLayer);
const pointsPerMs = 0.1;
function animateFlights(event) {
const vectorContext = event.vectorContext;
const frameState = event.frameState;
vectorContext.setStyle(style);
const features = flightsSource.getFeatures();
for (let i = 0; i < features.length; i++) {
const feature = features[i];
if (!feature.get('finished')) {
// only draw the lines for which the animation has not finished yet
const coords = feature.getGeometry().getCoordinates();
const elapsedTime = frameState.time - feature.get('start');
const elapsedPoints = elapsedTime * pointsPerMs;
if (elapsedPoints >= coords.length) {
feature.set('finished', true);
}
const maxIndex = Math.min(elapsedPoints, coords.length);
const currentLine = new LineString(coords.slice(0, maxIndex));
// directly draw the line with the vector context
vectorContext.drawGeometry(currentLine);
}
}
// tell OpenLayers to continue the animation
map.render();
}
function addLater(feature, timeout) {
window.setTimeout(function() {
feature.set('start', new Date().getTime());
flightsSource.addFeature(feature);
}, timeout);
}

View File

@@ -1,76 +1,76 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.LineString');
goog.require('ol.layer.Vector');
goog.require('ol.source.Vector');
import Feature from '../src/ol/Feature.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import LineString from '../src/ol/geom/LineString.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import VectorSource from '../src/ol/source/Vector.js';
var radius = 10e6;
var cos30 = Math.cos(Math.PI / 6);
var sin30 = Math.sin(Math.PI / 6);
var rise = radius * sin30;
var run = radius * cos30;
const radius = 10e6;
const cos30 = Math.cos(Math.PI / 6);
const sin30 = Math.sin(Math.PI / 6);
const rise = radius * sin30;
const run = radius * cos30;
var triangle = new ol.geom.LineString([
const triangle = new LineString([
[0, radius], [run, -rise], [-run, -rise], [0, radius]
]);
var feature = new ol.Feature(triangle);
const feature = new Feature(triangle);
var layer = new ol.layer.Vector({
source: new ol.source.Vector({
const layer = new VectorLayer({
source: new VectorSource({
features: [feature]
})
});
var map = new ol.Map({
const map = new Map({
layers: [layer],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 1
})
});
function makeFractal(depth) {
var geometry = triangle.clone();
var graph = coordsToGraph(geometry.getCoordinates());
for (var i = 0; i < depth; ++i) {
var node = graph;
const geometry = triangle.clone();
const graph = coordsToGraph(geometry.getCoordinates());
for (let i = 0; i < depth; ++i) {
let node = graph;
while (node.next) {
var next = node.next;
const next = node.next;
injectNodes(node);
node = next;
}
}
var coordinates = graphToCoords(graph);
const coordinates = graphToCoords(graph);
document.getElementById('count').innerHTML = coordinates.length;
geometry.setCoordinates(coordinates);
feature.setGeometry(geometry);
}
function injectNodes(startNode) {
var endNode = startNode.next;
const endNode = startNode.next;
var start = startNode.point;
var end = startNode.next.point;
var dx = end[0] - start[0];
var dy = end[1] - start[1];
const start = startNode.point;
const end = startNode.next.point;
const dx = end[0] - start[0];
const dy = end[1] - start[1];
// first point at 1/3 along the segment
var firstNode = {
const firstNode = {
point: [start[0] + dx / 3, start[1] + dy / 3]
};
// second point at peak of _/\_
var r = Math.sqrt(dx * dx + dy * dy) / (2 * cos30);
var a = Math.atan2(dy, dx) + Math.PI / 6;
var secondNode = {
const r = Math.sqrt(dx * dx + dy * dy) / (2 * cos30);
const a = Math.atan2(dy, dx) + Math.PI / 6;
const secondNode = {
point: [start[0] + r * Math.cos(a), start[1] + r * Math.sin(a)]
};
// third point at 2/3 along the segment
var thirdNode = {
const thirdNode = {
point: [end[0] - dx / 3, end[1] - dy / 3]
};
@@ -82,11 +82,11 @@ function injectNodes(startNode) {
function coordsToGraph(coordinates) {
var graph = {
const graph = {
point: coordinates[0]
};
var length = coordinates.length;
for (var level = 0, node = graph; level < length - 1; ++level) {
const length = coordinates.length;
for (let level = 0, node = graph; level < length - 1; ++level) {
node.next = {
point: coordinates[level + 1]
};
@@ -96,20 +96,20 @@ function coordsToGraph(coordinates) {
}
function graphToCoords(graph) {
var coordinates = [graph.point];
for (var node = graph, i = 1; node.next; node = node.next, ++i) {
const coordinates = [graph.point];
for (let node = graph, i = 1; node.next; node = node.next, ++i) {
coordinates[i] = node.next.point;
}
return coordinates;
}
var depthInput = document.getElementById('depth');
const depthInput = document.getElementById('depth');
function update() {
makeFractal(Number(depthInput.value));
}
var updateTimer;
let updateTimer;
/**

View File

@@ -4,6 +4,9 @@
.map:-webkit-full-screen {
height: 100%;
}
.map:-ms-fullscreen {
height: 100%;
}
.map:fullscreen {
height: 100%;
}

View File

@@ -1,23 +1,23 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.FullScreen');
goog.require('ol.interaction');
goog.require('ol.interaction.DragRotateAndZoom');
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 {defaults as defaultControls} from '../src/ol/control.js';
import FullScreen from '../src/ol/control/FullScreen.js';
import {defaults as defaultInteractions} from '../src/ol/interaction.js';
import DragRotateAndZoom from '../src/ol/interaction/DragRotateAndZoom.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';
var map = new ol.Map({
controls: ol.control.defaults().extend([
new ol.control.FullScreen()
const map = new Map({
controls: defaultControls().extend([
new FullScreen()
]),
interactions: ol.interaction.defaults().extend([
new ol.interaction.DragRotateAndZoom()
interactions: defaultInteractions().extend([
new DragRotateAndZoom()
]),
layers: [
new ol.layer.Tile({
source: new ol.source.BingMaps({
new TileLayer({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'Aerial'
})
@@ -25,7 +25,7 @@ var map = new ol.Map({
],
// Use the canvas renderer because it's currently the fastest
target: 'map',
view: new ol.View({
view: new View({
center: [-33519607, 5616436],
rotation: -Math.PI / 8,
zoom: 8

View File

@@ -1,25 +1,25 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.FullScreen');
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 FullScreen from '../src/ol/control/FullScreen.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';
var view = new ol.View({
const view = new View({
center: [-9101767, 2822912],
zoom: 14
});
var map = new ol.Map({
controls: ol.control.defaults().extend([
new ol.control.FullScreen({
const map = new Map({
controls: defaultControls().extend([
new FullScreen({
source: 'fullscreen'
})
]),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
new TileLayer({
source: new OSM()
})
],
target: 'map',

View File

@@ -1,23 +1,23 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.FullScreen');
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 {defaults as defaultControls} from '../src/ol/control.js';
import FullScreen from '../src/ol/control/FullScreen.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';
var view = new ol.View({
const view = new View({
center: [-9101767, 2822912],
zoom: 14
});
var map = new ol.Map({
controls: ol.control.defaults().extend([
new ol.control.FullScreen()
const map = new Map({
controls: defaultControls().extend([
new FullScreen()
]),
layers: [
new ol.layer.Tile({
source: new ol.source.BingMaps({
new TileLayer({
source: new BingMaps({
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
imagerySet: 'Aerial'
})

View File

@@ -1,19 +1,19 @@
// NOCOMPILE
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.GeoJSON');
goog.require('ol.source.OSM');
goog.require('ol.source.VectorTile');
goog.require('ol.layer.Tile');
goog.require('ol.layer.VectorTile');
goog.require('ol.proj.Projection');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import OSM from '../src/ol/source/OSM.js';
import VectorTileSource from '../src/ol/source/VectorTile.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorTileLayer from '../src/ol/layer/VectorTile.js';
import Projection from '../src/ol/proj/Projection.js';
var replacer = function(key, value) {
const replacer = function(key, value) {
if (value.geometry) {
var type;
var rawType = value.type;
var geometry = value.geometry;
let type;
const rawType = value.type;
let geometry = value.geometry;
if (rawType === 1) {
type = 'MultiPoint';
@@ -48,44 +48,44 @@ var replacer = function(key, value) {
}
};
var tilePixels = new ol.proj.Projection({
const tilePixels = new Projection({
code: 'TILE_PIXELS',
units: 'tile-pixels'
});
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: [0, 0],
zoom: 2
})
});
var url = 'data/geojson/countries.geojson';
const url = 'data/geojson/countries.geojson';
fetch(url).then(function(response) {
return response.json();
}).then(function(json) {
var tileIndex = geojsonvt(json, {
const tileIndex = geojsonvt(json, {
extent: 4096,
debug: 1
});
var vectorSource = new ol.source.VectorTile({
format: new ol.format.GeoJSON(),
const vectorSource = new VectorTileSource({
format: new GeoJSON(),
tileLoadFunction: function(tile) {
var format = tile.getFormat();
var tileCoord = tile.getTileCoord();
var data = tileIndex.getTile(tileCoord[0], tileCoord[1], -tileCoord[2] - 1);
const format = tile.getFormat();
const tileCoord = tile.getTileCoord();
const data = tileIndex.getTile(tileCoord[0], tileCoord[1], -tileCoord[2] - 1);
var features = format.readFeatures(
JSON.stringify({
type: 'FeatureCollection',
features: data ? data.features : []
}, replacer));
const features = format.readFeatures(
JSON.stringify({
type: 'FeatureCollection',
features: data ? data.features : []
}, replacer));
tile.setLoader(function() {
tile.setFeatures(features);
tile.setProjection(tilePixels);
@@ -93,7 +93,7 @@ fetch(url).then(function(response) {
},
url: 'data:' // arbitrary url, we don't use it in the tileLoadFunction
});
var vectorLayer = new ol.layer.VectorTile({
const vectorLayer = new VectorTileLayer({
source: vectorSource
});
map.addLayer(vectorLayer);

View File

@@ -1,95 +1,95 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.format.GeoJSON');
goog.require('ol.geom.Circle');
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 Feature from '../src/ol/Feature.js';
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 Circle from '../src/ol/geom/Circle.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
var image = new ol.style.Circle({
const image = new CircleStyle({
radius: 5,
fill: null,
stroke: new ol.style.Stroke({color: 'red', width: 1})
stroke: new Stroke({color: 'red', width: 1})
});
var styles = {
'Point': new ol.style.Style({
const styles = {
'Point': new Style({
image: image
}),
'LineString': new ol.style.Style({
stroke: new ol.style.Stroke({
'LineString': new Style({
stroke: new Stroke({
color: 'green',
width: 1
})
}),
'MultiLineString': new ol.style.Style({
stroke: new ol.style.Stroke({
'MultiLineString': new Style({
stroke: new Stroke({
color: 'green',
width: 1
})
}),
'MultiPoint': new ol.style.Style({
'MultiPoint': new Style({
image: image
}),
'MultiPolygon': new ol.style.Style({
stroke: new ol.style.Stroke({
'MultiPolygon': new Style({
stroke: new Stroke({
color: 'yellow',
width: 1
}),
fill: new ol.style.Fill({
fill: new Fill({
color: 'rgba(255, 255, 0, 0.1)'
})
}),
'Polygon': new ol.style.Style({
stroke: new ol.style.Stroke({
'Polygon': new Style({
stroke: new Stroke({
color: 'blue',
lineDash: [4],
width: 3
}),
fill: new ol.style.Fill({
fill: new Fill({
color: 'rgba(0, 0, 255, 0.1)'
})
}),
'GeometryCollection': new ol.style.Style({
stroke: new ol.style.Stroke({
'GeometryCollection': new Style({
stroke: new Stroke({
color: 'magenta',
width: 2
}),
fill: new ol.style.Fill({
fill: new Fill({
color: 'magenta'
}),
image: new ol.style.Circle({
image: new CircleStyle({
radius: 10,
fill: null,
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: 'magenta'
})
})
}),
'Circle': new ol.style.Style({
stroke: new ol.style.Stroke({
'Circle': new Style({
stroke: new Stroke({
color: 'red',
width: 2
}),
fill: new ol.style.Fill({
fill: new Fill({
color: 'rgba(255,0,0,0.2)'
})
})
};
var styleFunction = function(feature) {
const styleFunction = function(feature) {
return styles[feature.getGeometry().getType()];
};
var geojsonObject = {
const geojsonObject = {
'type': 'FeatureCollection',
'crs': {
'type': 'name',
@@ -160,31 +160,31 @@ var geojsonObject = {
}]
};
var vectorSource = new ol.source.Vector({
features: (new ol.format.GeoJSON()).readFeatures(geojsonObject)
const vectorSource = new VectorSource({
features: (new GeoJSON()).readFeatures(geojsonObject)
});
vectorSource.addFeature(new ol.Feature(new ol.geom.Circle([5e6, 7e6], 1e6)));
vectorSource.addFeature(new Feature(new Circle([5e6, 7e6], 1e6)));
var vectorLayer = new ol.layer.Vector({
const vectorLayer = new VectorLayer({
source: vectorSource,
style: styleFunction
});
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({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})

View File

@@ -1,38 +1,38 @@
goog.require('ol.Geolocation');
goog.require('ol.Map');
goog.require('ol.Overlay');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.geom.LineString');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.OSM');
import Geolocation from '../src/ol/Geolocation.js';
import Map from '../src/ol/Map.js';
import Overlay from '../src/ol/Overlay.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.js';
import LineString from '../src/ol/geom/LineString.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {fromLonLat} from '../src/ol/proj.js';
import OSM from '../src/ol/source/OSM.js';
// creating the view
var view = new ol.View({
center: ol.proj.fromLonLat([5.8713, 45.6452]),
const view = new View({
center: fromLonLat([5.8713, 45.6452]),
zoom: 19
});
// creating the map
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({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
view: view
});
// Geolocation marker
var markerEl = document.getElementById('geolocation_marker');
var marker = new ol.Overlay({
const markerEl = document.getElementById('geolocation_marker');
const marker = new Overlay({
positioning: 'center-center',
element: markerEl,
stopEvent: false
@@ -42,38 +42,38 @@ map.addOverlay(marker);
// LineString to store the different geolocation positions. This LineString
// is time aware.
// The Z dimension is actually used to store the rotation (heading).
var positions = new ol.geom.LineString([],
/** @type {ol.geom.GeometryLayout} */ ('XYZM'));
const positions = new LineString([],
/** @type {module:ol/geom/GeometryLayout~GeometryLayout} */ ('XYZM'));
// Geolocation Control
var geolocation = new ol.Geolocation(/** @type {olx.GeolocationOptions} */ ({
const geolocation = new Geolocation({
projection: view.getProjection(),
trackingOptions: {
maximumAge: 10000,
enableHighAccuracy: true,
timeout: 600000
}
}));
});
var deltaMean = 500; // the geolocation sampling period mean in ms
let deltaMean = 500; // the geolocation sampling period mean in ms
// Listen to position changes
geolocation.on('change', function() {
var position = geolocation.getPosition();
var accuracy = geolocation.getAccuracy();
var heading = geolocation.getHeading() || 0;
var speed = geolocation.getSpeed() || 0;
var m = Date.now();
const position = geolocation.getPosition();
const accuracy = geolocation.getAccuracy();
const heading = geolocation.getHeading() || 0;
const speed = geolocation.getSpeed() || 0;
const m = Date.now();
addPosition(position, heading, m, speed);
var coords = positions.getCoordinates();
var len = coords.length;
const coords = positions.getCoordinates();
const len = coords.length;
if (len >= 2) {
deltaMean = (coords[len - 1][3] - coords[0][3]) / (len - 1);
}
var html = [
const html = [
'Position: ' + position[0].toFixed(2) + ', ' + position[1].toFixed(2),
'Accuracy: ' + accuracy,
'Heading: ' + Math.round(radToDeg(heading)) + '&deg;',
@@ -102,17 +102,17 @@ function mod(n) {
}
function addPosition(position, heading, m, speed) {
var x = position[0];
var y = position[1];
var fCoords = positions.getCoordinates();
var previous = fCoords[fCoords.length - 1];
var prevHeading = previous && previous[2];
const x = position[0];
const y = position[1];
const fCoords = positions.getCoordinates();
const previous = fCoords[fCoords.length - 1];
const prevHeading = previous && previous[2];
if (prevHeading) {
var headingDiff = heading - mod(prevHeading);
let headingDiff = heading - mod(prevHeading);
// force the rotation change to be less than 180°
if (Math.abs(headingDiff) > Math.PI) {
var sign = (headingDiff >= 0) ? 1 : -1;
const sign = (headingDiff >= 0) ? 1 : -1;
headingDiff = -sign * (2 * Math.PI - Math.abs(headingDiff));
}
heading = prevHeading + headingDiff;
@@ -133,8 +133,8 @@ function addPosition(position, heading, m, speed) {
// recenters the view by putting the given coordinates at 3/4 from the top or
// the screen
function getCenterWithHeading(position, rotation, resolution) {
var size = map.getSize();
var height = size[1];
const size = map.getSize();
const height = size[1];
return [
position[0] - Math.sin(rotation) * height * resolution * 1 / 4,
@@ -142,14 +142,14 @@ function getCenterWithHeading(position, rotation, resolution) {
];
}
var previousM = 0;
let previousM = 0;
function updateView() {
// use sampling period to get a smooth transition
var m = Date.now() - deltaMean * 1.5;
let m = Date.now() - deltaMean * 1.5;
m = Math.max(m, previousM);
previousM = m;
// interpolate position along positions LineString
var c = positions.getCoordinateAtM(m, true);
const c = positions.getCoordinateAtM(m, true);
if (c) {
view.setCenter(getCenterWithHeading(c, -c[2], view.getResolution()));
view.setRotation(-c[2]);
@@ -158,7 +158,7 @@ function updateView() {
}
// geolocate device
var geolocateBtn = document.getElementById('geolocate');
const geolocateBtn = document.getElementById('geolocate');
geolocateBtn.addEventListener('click', function() {
geolocation.setTracking(true); // Start position tracking
@@ -169,8 +169,8 @@ geolocateBtn.addEventListener('click', function() {
}, false);
// simulate device move
var simulationData;
var client = new XMLHttpRequest();
let simulationData;
const client = new XMLHttpRequest();
client.open('GET', 'data/geolocation-orientation.json');
@@ -182,20 +182,20 @@ client.onload = function() {
};
client.send();
var simulateBtn = document.getElementById('simulate');
const simulateBtn = document.getElementById('simulate');
simulateBtn.addEventListener('click', function() {
var coordinates = simulationData;
const coordinates = simulationData;
var first = coordinates.shift();
const first = coordinates.shift();
simulatePositionChange(first);
var prevDate = first.timestamp;
let prevDate = first.timestamp;
function geolocate() {
var position = coordinates.shift();
const position = coordinates.shift();
if (!position) {
return;
}
var newDate = position.timestamp;
const newDate = position.timestamp;
simulatePositionChange(position);
window.setTimeout(function() {
prevDate = newDate;
@@ -211,12 +211,10 @@ simulateBtn.addEventListener('click', function() {
}, false);
function simulatePositionChange(position) {
var coords = position.coords;
const coords = position.coords;
geolocation.set('accuracy', coords.accuracy);
geolocation.set('heading', degToRad(coords.heading));
var position_ = [coords.longitude, coords.latitude];
var projectedPosition = ol.proj.transform(position_, 'EPSG:4326',
'EPSG:3857');
const projectedPosition = fromLonLat([coords.longitude, coords.latitude]);
geolocation.set('position', projectedPosition);
geolocation.set('speed', coords.speed);
geolocation.changed();

View File

@@ -1,39 +1,43 @@
goog.require('ol.Feature');
goog.require('ol.Geolocation');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.geom.Point');
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 Feature from '../src/ol/Feature.js';
import Geolocation from '../src/ol/Geolocation.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.js';
import Point from '../src/ol/geom/Point.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
var view = new ol.View({
const view = new View({
center: [0, 0],
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({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
view: view
});
var geolocation = new ol.Geolocation({
const geolocation = new Geolocation({
// enableHighAccuracy must be set to true to have the heading value.
trackingOptions: {
enableHighAccuracy: true
},
projection: view.getProjection()
});
@@ -56,24 +60,24 @@ geolocation.on('change', function() {
// handle geolocation error.
geolocation.on('error', function(error) {
var info = document.getElementById('info');
const info = document.getElementById('info');
info.innerHTML = error.message;
info.style.display = '';
});
var accuracyFeature = new ol.Feature();
const accuracyFeature = new Feature();
geolocation.on('change:accuracyGeometry', function() {
accuracyFeature.setGeometry(geolocation.getAccuracyGeometry());
});
var positionFeature = new ol.Feature();
positionFeature.setStyle(new ol.style.Style({
image: new ol.style.Circle({
const positionFeature = new Feature();
positionFeature.setStyle(new Style({
image: new CircleStyle({
radius: 6,
fill: new ol.style.Fill({
fill: new Fill({
color: '#3399CC'
}),
stroke: new ol.style.Stroke({
stroke: new Stroke({
color: '#fff',
width: 2
})
@@ -81,14 +85,14 @@ positionFeature.setStyle(new ol.style.Style({
}));
geolocation.on('change:position', function() {
var coordinates = geolocation.getPosition();
const coordinates = geolocation.getPosition();
positionFeature.setGeometry(coordinates ?
new ol.geom.Point(coordinates) : null);
new Point(coordinates) : null);
});
new ol.layer.Vector({
new VectorLayer({
map: map,
source: new ol.source.Vector({
source: new VectorSource({
features: [accuracyFeature, positionFeature]
})
});

View File

@@ -1,26 +1,26 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Image');
goog.require('ol.source.ImageWMS');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import ImageLayer from '../src/ol/layer/Image.js';
import ImageWMS from '../src/ol/source/ImageWMS.js';
var wmsSource = new ol.source.ImageWMS({
const wmsSource = new ImageWMS({
url: 'https://ahocevar.com/geoserver/wms',
params: {'LAYERS': 'ne:ne'},
serverType: 'geoserver',
crossOrigin: 'anonymous'
});
var wmsLayer = new ol.layer.Image({
const wmsLayer = new ImageLayer({
source: wmsSource
});
var view = new ol.View({
const view = new View({
center: [0, 0],
zoom: 1
});
var map = new ol.Map({
const map = new Map({
layers: [wmsLayer],
target: 'map',
view: view
@@ -28,10 +28,10 @@ var map = new ol.Map({
map.on('singleclick', function(evt) {
document.getElementById('info').innerHTML = '';
var viewResolution = /** @type {number} */ (view.getResolution());
var url = wmsSource.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, 'EPSG:3857',
{'INFO_FORMAT': 'text/html'});
const viewResolution = /** @type {number} */ (view.getResolution());
const url = wmsSource.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, 'EPSG:3857',
{'INFO_FORMAT': 'text/html'});
if (url) {
document.getElementById('info').innerHTML =
'<iframe seamless src="' + url + '"></iframe>';
@@ -42,8 +42,8 @@ map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
var pixel = map.getEventPixel(evt.originalEvent);
var hit = map.forEachLayerAtPixel(pixel, function() {
const pixel = map.getEventPixel(evt.originalEvent);
const hit = map.forEachLayerAtPixel(pixel, function() {
return true;
});
map.getTargetElement().style.cursor = hit ? 'pointer' : '';

View File

@@ -1,21 +1,21 @@
goog.require('ol.format.WMSGetFeatureInfo');
import WMSGetFeatureInfo from '../src/ol/format/WMSGetFeatureInfo.js';
fetch('data/wmsgetfeatureinfo/osm-restaurant-hotel.xml').then(function(response) {
return response.text();
}).then(function(response) {
// this is the standard way to read the features
var allFeatures = new ol.format.WMSGetFeatureInfo().readFeatures(response);
const allFeatures = new WMSGetFeatureInfo().readFeatures(response);
document.getElementById('all').innerText = allFeatures.length.toString();
// when specifying the 'layers' options, only the features of those
// layers are returned by the format
var hotelFeatures = new ol.format.WMSGetFeatureInfo({
const hotelFeatures = new WMSGetFeatureInfo({
layers: ['hotel']
}).readFeatures(response);
document.getElementById('hotel').innerText = hotelFeatures.length.toString();
var restaurantFeatures = new ol.format.WMSGetFeatureInfo({
const restaurantFeatures = new WMSGetFeatureInfo({
layers: ['restaurant']
}).readFeatures(response);
document.getElementById('restaurant').innerText = restaurantFeatures.length.toString();

View File

@@ -1,26 +1,26 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.TileWMS');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import TileWMS from '../src/ol/source/TileWMS.js';
var wmsSource = new ol.source.TileWMS({
const wmsSource = new TileWMS({
url: 'https://ahocevar.com/geoserver/wms',
params: {'LAYERS': 'ne:ne', 'TILED': true},
serverType: 'geoserver',
crossOrigin: 'anonymous'
});
var wmsLayer = new ol.layer.Tile({
const wmsLayer = new TileLayer({
source: wmsSource
});
var view = new ol.View({
const view = new View({
center: [0, 0],
zoom: 1
});
var map = new ol.Map({
const map = new Map({
layers: [wmsLayer],
target: 'map',
view: view
@@ -28,10 +28,10 @@ var map = new ol.Map({
map.on('singleclick', function(evt) {
document.getElementById('info').innerHTML = '';
var viewResolution = /** @type {number} */ (view.getResolution());
var url = wmsSource.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, 'EPSG:3857',
{'INFO_FORMAT': 'text/html'});
const viewResolution = /** @type {number} */ (view.getResolution());
const url = wmsSource.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, 'EPSG:3857',
{'INFO_FORMAT': 'text/html'});
if (url) {
document.getElementById('info').innerHTML =
'<iframe seamless src="' + url + '"></iframe>';
@@ -42,8 +42,8 @@ map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
var pixel = map.getEventPixel(evt.originalEvent);
var hit = map.forEachLayerAtPixel(pixel, function() {
const pixel = map.getEventPixel(evt.originalEvent);
const hit = map.forEachLayerAtPixel(pixel, function() {
return true;
});
map.getTargetElement().style.cursor = hit ? 'pointer' : '';

View File

@@ -1,76 +1,76 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.GPX');
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 from '../src/ol/format/GPX.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
var raster = new ol.layer.Tile({
source: new ol.source.BingMaps({
const raster = new TileLayer({
source: new BingMaps({
imagerySet: 'Aerial',
key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5'
})
});
var style = {
'Point': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
const style = {
'Point': new Style({
image: new CircleStyle({
fill: new Fill({
color: 'rgba(255,255,0,0.4)'
}),
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
})
}),
'MultiLineString': new ol.style.Style({
stroke: new ol.style.Stroke({
'MultiLineString': new Style({
stroke: new Stroke({
color: '#0f0',
width: 3
})
})
};
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
const vector = new VectorLayer({
source: new VectorSource({
url: 'data/gpx/fells_loop.gpx',
format: new ol.format.GPX()
format: new GPX()
}),
style: function(feature) {
return style[feature.getGeometry().getType()];
}
});
var map = new ol.Map({
const map = new Map({
layers: [raster, vector],
target: document.getElementById('map'),
view: new ol.View({
view: new View({
center: [-7916041.528716288, 5228379.045749711],
zoom: 12
})
});
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('desc'));
}
@@ -86,7 +86,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,32 +1,31 @@
goog.require('ol.Graticule');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.OSM');
goog.require('ol.style.Stroke');
import Graticule from '../src/ol/Graticule.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {fromLonLat} from '../src/ol/proj.js';
import OSM from '../src/ol/source/OSM.js';
import Stroke from '../src/ol/style/Stroke.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({
wrapX: false
})
})
],
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([4.8, 47.75]),
extent: ol.proj.get('EPSG:3857').getExtent(),
view: new View({
center: fromLonLat([4.8, 47.75]),
zoom: 5
})
});
// Create the graticule component
var graticule = new ol.Graticule({
const graticule = new Graticule({
// the style to use for the lines, optional.
strokeStyle: new ol.style.Stroke({
strokeStyle: new Stroke({
color: 'rgba(255,120,0,0.9)',
width: 2,
lineDash: [0.5, 4]

View File

@@ -1,18 +1,18 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.KML');
goog.require('ol.layer.Heatmap');
goog.require('ol.layer.Tile');
goog.require('ol.source.Stamen');
goog.require('ol.source.Vector');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import KML from '../src/ol/format/KML.js';
import HeatmapLayer from '../src/ol/layer/Heatmap.js';
import TileLayer from '../src/ol/layer/Tile.js';
import Stamen from '../src/ol/source/Stamen.js';
import VectorSource from '../src/ol/source/Vector.js';
var blur = document.getElementById('blur');
var radius = document.getElementById('radius');
const blur = document.getElementById('blur');
const radius = document.getElementById('radius');
var vector = new ol.layer.Heatmap({
source: new ol.source.Vector({
const vector = new HeatmapLayer({
source: new VectorSource({
url: 'data/kml/2012_Earthquakes_Mag5.kml',
format: new ol.format.KML({
format: new KML({
extractStyles: false
})
}),
@@ -24,21 +24,21 @@ vector.getSource().on('addfeature', function(event) {
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
// standards-violating <magnitude> tag in each Placemark. We extract it from
// the Placemark's name instead.
var name = event.feature.get('name');
var magnitude = parseFloat(name.substr(2));
const name = event.feature.get('name');
const magnitude = parseFloat(name.substr(2));
event.feature.set('weight', magnitude - 5);
});
var raster = new ol.layer.Tile({
source: new ol.source.Stamen({
const raster = new TileLayer({
source: new Stamen({
layer: 'toner'
})
});
var map = new ol.Map({
const map = new Map({
layers: [raster, vector],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})

View File

@@ -7,8 +7,8 @@ docs: >
<p>Be sure to respect the <a href="https://legal.here.com/en/terms/serviceterms/us/">HERE Service Terms</a> when using their tile API.</p>
tags: "here, here-maps, here-tile-api"
cloak:
a2qhegvZZFIuJDkkqjhQ: Your HERE Maps appId from https://developer.here.com/
lPJ3iaFLJDhD8fIAyU582A: Your HERE Maps appCode from https://developer.here.com/
kDm0Jq1K4Ak7Bwtn8uvk: Your HERE Maps appId from https://developer.here.com/
xnmvc4dKZrDfGlvQHXSvwQ: Your HERE Maps appCode from https://developer.here.com/
---
<div id="map" class="map"></div>
<select id="layer-select">

View File

@@ -1,11 +1,11 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.XYZ');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import XYZ from '../src/ol/source/XYZ.js';
var appId = 'a2qhegvZZFIuJDkkqjhQ';
var appCode = 'lPJ3iaFLJDhD8fIAyU582A';
var hereLayers = [
const appId = 'kDm0Jq1K4Ak7Bwtn8uvk';
const appCode = 'xnmvc4dKZrDfGlvQHXSvwQ';
const hereLayers = [
{
base: 'base',
type: 'maptile',
@@ -49,17 +49,17 @@ var hereLayers = [
app_code: appCode
}
];
var urlTpl = 'https://{1-4}.{base}.maps.cit.api.here.com' +
const urlTpl = 'https://{1-4}.{base}.maps.cit.api.here.com' +
'/{type}/2.1/maptile/newest/{scheme}/{z}/{x}/{y}/256/png' +
'?app_id={app_id}&app_code={app_code}';
var layers = [];
var i, ii;
const layers = [];
let i, ii;
for (i = 0, ii = hereLayers.length; i < ii; ++i) {
var layerDesc = hereLayers[i];
layers.push(new ol.layer.Tile({
const layerDesc = hereLayers[i];
layers.push(new TileLayer({
visible: false,
preload: Infinity,
source: new ol.source.XYZ({
source: new XYZ({
url: createUrl(urlTpl, layerDesc),
attributions: 'Map Tiles &copy; ' + new Date().getFullYear() + ' ' +
'<a href="http://developer.here.com">HERE</a>'
@@ -67,13 +67,13 @@ for (i = 0, ii = hereLayers.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: [921371.9389, 6358337.7609],
zoom: 10
})
@@ -81,17 +81,17 @@ var map = new ol.Map({
function createUrl(tpl, layerDesc) {
return tpl
.replace('{base}', layerDesc.base)
.replace('{type}', layerDesc.type)
.replace('{scheme}', layerDesc.scheme)
.replace('{app_id}', layerDesc.app_id)
.replace('{app_code}', layerDesc.app_code);
.replace('{base}', layerDesc.base)
.replace('{type}', layerDesc.type)
.replace('{scheme}', layerDesc.scheme)
.replace('{app_id}', layerDesc.app_id)
.replace('{app_code}', layerDesc.app_code);
}
var select = document.getElementById('layer-select');
const select = document.getElementById('layer-select');
function onChange() {
var scheme = select.value;
for (var i = 0, ii = layers.length; i < ii; ++i) {
const scheme = select.value;
for (let i = 0, ii = layers.length; i < ii; ++i) {
layers[i].setVisible(hereLayers[i].scheme === scheme);
}
}

View File

@@ -1,49 +1,49 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.Feature');
goog.require('ol.geom.LineString');
goog.require('ol.style.Style');
goog.require('ol.style.Stroke');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import Feature from '../src/ol/Feature.js';
import LineString from '../src/ol/geom/LineString.js';
import Style from '../src/ol/style/Style.js';
import Stroke from '../src/ol/style/Stroke.js';
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
const raster = new TileLayer({
source: new OSM()
});
var style = new ol.style.Style({
stroke: new ol.style.Stroke({
const style = new Style({
stroke: new Stroke({
color: 'black',
width: 1
})
});
var feature = new ol.Feature(new ol.geom.LineString([[-4000000, 0], [4000000, 0]]));
const feature = new Feature(new LineString([[-4000000, 0], [4000000, 0]]));
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
const vector = new VectorLayer({
source: new VectorSource({
features: [feature]
}),
style: style
});
var map = new ol.Map({
const map = new Map({
layers: [raster, vector],
target: 'map',
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 2
})
});
var hitTolerance;
let hitTolerance;
var statusElement = document.getElementById('status');
const statusElement = document.getElementById('status');
map.on('singleclick', function(e) {
var hit = false;
let hit = false;
map.forEachFeatureAtPixel(e.pixel, function() {
hit = true;
}, {
@@ -59,16 +59,16 @@ map.on('singleclick', function(e) {
feature.changed();
});
var selectHitToleranceElement = document.getElementById('hitTolerance');
var circleCanvas = document.getElementById('circle');
const selectHitToleranceElement = document.getElementById('hitTolerance');
const circleCanvas = document.getElementById('circle');
var changeHitTolerance = function() {
const changeHitTolerance = function() {
hitTolerance = parseInt(selectHitToleranceElement.value, 10);
var size = 2 * hitTolerance + 2;
const size = 2 * hitTolerance + 2;
circleCanvas.width = size;
circleCanvas.height = size;
var ctx = circleCanvas.getContext('2d');
const ctx = circleCanvas.getContext('2d');
ctx.clearRect(0, 0, size, size);
ctx.beginPath();
ctx.arc(hitTolerance + 1, hitTolerance + 1, hitTolerance + 0.5, 0, 2 * Math.PI);

View File

@@ -1,46 +1,46 @@
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.proj');
goog.require('ol.source.TileJSON');
goog.require('ol.source.Vector');
goog.require('ol.style.Icon');
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 TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {fromLonLat} from '../src/ol/proj.js';
import TileJSON from '../src/ol/source/TileJSON.js';
import VectorSource from '../src/ol/source/Vector.js';
import Icon from '../src/ol/style/Icon.js';
import Style from '../src/ol/style/Style.js';
var rome = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([12.5, 41.9]))
const rome = new Feature({
geometry: new Point(fromLonLat([12.5, 41.9]))
});
var london = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([-0.12755, 51.507222]))
const london = new Feature({
geometry: new Point(fromLonLat([-0.12755, 51.507222]))
});
var madrid = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([-3.683333, 40.4]))
const madrid = new Feature({
geometry: new Point(fromLonLat([-3.683333, 40.4]))
});
rome.setStyle(new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
rome.setStyle(new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
color: '#8959A8',
crossOrigin: 'anonymous',
src: 'data/dot.png'
}))
}));
london.setStyle(new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
london.setStyle(new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
color: '#4271AE',
crossOrigin: 'anonymous',
src: 'data/dot.png'
}))
}));
madrid.setStyle(new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
madrid.setStyle(new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
color: [113, 140, 0],
crossOrigin: 'anonymous',
src: 'data/dot.png'
@@ -48,26 +48,26 @@ madrid.setStyle(new ol.style.Style({
}));
var vectorSource = new ol.source.Vector({
const vectorSource = new VectorSource({
features: [rome, london, madrid]
});
var vectorLayer = new ol.layer.Vector({
const vectorLayer = new VectorLayer({
source: vectorSource
});
var rasterLayer = new ol.layer.Tile({
source: new ol.source.TileJSON({
const rasterLayer = new TileLayer({
source: new TileJSON({
url: 'https://api.tiles.mapbox.com/v3/mapbox.geography-class.json?secure',
crossOrigin: ''
})
});
var map = new ol.Map({
const map = new Map({
layers: [rasterLayer, vectorLayer],
target: document.getElementById('map'),
view: new ol.View({
center: ol.proj.fromLonLat([2.896372, 44.60240]),
view: new View({
center: fromLonLat([2.896372, 44.60240]),
zoom: 3
})
});

View File

@@ -1,19 +1,19 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.Point');
goog.require('ol.interaction.Select');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.Stamen');
goog.require('ol.source.Vector');
goog.require('ol.style.Icon');
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 Select from '../src/ol/interaction/Select.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import Stamen from '../src/ol/source/Stamen.js';
import VectorSource from '../src/ol/source/Vector.js';
import Icon from '../src/ol/style/Icon.js';
import Style from '../src/ol/style/Style.js';
function createStyle(src, img) {
return new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
return new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
anchor: [0.5, 0.96],
crossOrigin: 'anonymous',
src: src,
@@ -23,41 +23,41 @@ function createStyle(src, img) {
});
}
var iconFeature = new ol.Feature(new ol.geom.Point([0, 0]));
const iconFeature = new Feature(new Point([0, 0]));
iconFeature.set('style', createStyle('data/icon.png', undefined));
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.Stamen({layer: 'watercolor'})
new TileLayer({
source: new Stamen({layer: 'watercolor'})
}),
new ol.layer.Vector({
new VectorLayer({
style: function(feature) {
return feature.get('style');
},
source: new ol.source.Vector({features: [iconFeature]})
source: new VectorSource({features: [iconFeature]})
})
],
target: document.getElementById('map'),
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 3
})
});
var selectStyle = {};
var select = new ol.interaction.Select({
const selectStyle = {};
const select = new Select({
style: function(feature) {
var image = feature.get('style').getImage().getImage();
const image = feature.get('style').getImage().getImage();
if (!selectStyle[image.src]) {
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
canvas.width = image.width;
canvas.height = image.height;
context.drawImage(image, 0, 0, image.width, image.height);
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
var data = imageData.data;
for (var i = 0, ii = data.length; i < ii; i = i + (i % 4 == 2 ? 2 : 1)) {
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const data = imageData.data;
for (let i = 0, ii = data.length; i < ii; i = i + (i % 4 == 2 ? 2 : 1)) {
data[i] = 255 - data[i];
}
context.putImageData(imageData, 0, 0);

View File

@@ -1,14 +1,14 @@
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.Icon');
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 Icon from '../src/ol/style/Icon.js';
import Style from '../src/ol/style/Style.js';
var iconInfo = [{
const iconInfo = [{
offset: [0, 0],
opacity: 1.0,
rotateWithView: true,
@@ -38,13 +38,13 @@ var iconInfo = [{
size: [44, 44]
}];
var i;
let i;
var iconCount = iconInfo.length;
var icons = new Array(iconCount);
const iconCount = iconInfo.length;
const icons = new Array(iconCount);
for (i = 0; i < iconCount; ++i) {
var info = iconInfo[i];
icons[i] = new ol.style.Icon({
const info = iconInfo[i];
icons[i] = new Icon({
offset: info.offset,
opacity: info.opacity,
rotateWithView: info.rotateWithView,
@@ -56,63 +56,63 @@ for (i = 0; i < iconCount; ++i) {
});
}
var featureCount = 50000;
var features = new Array(featureCount);
var feature, geometry;
var e = 25000000;
const featureCount = 50000;
const features = new Array(featureCount);
let feature, geometry;
const e = 25000000;
for (i = 0; i < featureCount; ++i) {
geometry = new ol.geom.Point(
[2 * e * Math.random() - e, 2 * e * Math.random() - e]);
feature = new ol.Feature(geometry);
geometry = new Point(
[2 * e * Math.random() - e, 2 * e * Math.random() - e]);
feature = new Feature(geometry);
feature.setStyle(
new ol.style.Style({
image: icons[i % (iconCount - 1)]
})
new Style({
image: icons[i % (iconCount - 1)]
})
);
features[i] = feature;
}
var vectorSource = new ol.source.Vector({
const vectorSource = new VectorSource({
features: features
});
var vector = new ol.layer.Vector({
const vector = new VectorLayer({
source: vectorSource
});
var map = new ol.Map({
const map = new Map({
renderer: /** @type {Array<ol.renderer.Type>} */ (['webgl', 'canvas']),
layers: [vector],
target: document.getElementById('map'),
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 5
})
});
var overlayFeatures = [];
const overlayFeatures = [];
for (i = 0; i < featureCount; i += 30) {
var clone = features[i].clone();
const clone = features[i].clone();
clone.setStyle(null);
overlayFeatures.push(clone);
}
new ol.layer.Vector({
new VectorLayer({
map: map,
source: new ol.source.Vector({
source: new VectorSource({
features: overlayFeatures
}),
style: new ol.style.Style({
style: new Style({
image: icons[iconCount - 1]
})
});
map.on('click', function(evt) {
var info = document.getElementById('info');
const info = document.getElementById('info');
info.innerHTML =
'Hold on a second, while I catch those butterflies for you ...';
window.setTimeout(function() {
var features = [];
const features = [];
map.forEachFeatureAtPixel(evt.pixel, function(feature) {
features.push(feature);
return false;
@@ -132,7 +132,7 @@ map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
var pixel = map.getEventPixel(evt.originalEvent);
var hit = map.hasFeatureAtPixel(pixel);
const pixel = map.getEventPixel(evt.originalEvent);
const hit = map.hasFeatureAtPixel(pixel);
map.getTarget().style.cursor = hit ? 'pointer' : '';
});

View File

@@ -1,25 +1,25 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.Overlay');
goog.require('ol.View');
goog.require('ol.geom.Point');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.TileJSON');
goog.require('ol.source.Vector');
goog.require('ol.style.Icon');
goog.require('ol.style.Style');
import Feature from '../src/ol/Feature.js';
import Map from '../src/ol/Map.js';
import Overlay from '../src/ol/Overlay.js';
import View from '../src/ol/View.js';
import Point from '../src/ol/geom/Point.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import TileJSON from '../src/ol/source/TileJSON.js';
import VectorSource from '../src/ol/source/Vector.js';
import Icon from '../src/ol/style/Icon.js';
import Style from '../src/ol/style/Style.js';
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point([0, 0]),
const iconFeature = new Feature({
geometry: new Point([0, 0]),
name: 'Null Island',
population: 4000,
rainfall: 500
});
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
const iconStyle = new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
@@ -29,33 +29,33 @@ var iconStyle = new ol.style.Style({
iconFeature.setStyle(iconStyle);
var vectorSource = new ol.source.Vector({
const vectorSource = new VectorSource({
features: [iconFeature]
});
var vectorLayer = new ol.layer.Vector({
const vectorLayer = new VectorLayer({
source: vectorSource
});
var rasterLayer = new ol.layer.Tile({
source: new ol.source.TileJSON({
const rasterLayer = new TileLayer({
source: new TileJSON({
url: 'https://api.tiles.mapbox.com/v3/mapbox.geography-class.json?secure',
crossOrigin: ''
})
});
var map = new ol.Map({
const map = new Map({
layers: [rasterLayer, vectorLayer],
target: document.getElementById('map'),
view: new ol.View({
view: new View({
center: [0, 0],
zoom: 3
})
});
var element = document.getElementById('popup');
const element = document.getElementById('popup');
var popup = new ol.Overlay({
const popup = new Overlay({
element: element,
positioning: 'bottom-center',
stopEvent: false,
@@ -65,12 +65,12 @@ map.addOverlay(popup);
// display popup on click
map.on('click', function(evt) {
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
const feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
if (feature) {
var coordinates = feature.getGeometry().getCoordinates();
const coordinates = feature.getGeometry().getCoordinates();
popup.setPosition(coordinates);
$(element).popover({
'placement': 'top',
@@ -89,7 +89,7 @@ map.on('pointermove', function(e) {
$(element).popover('destroy');
return;
}
var pixel = map.getEventPixel(e.originalEvent);
var hit = map.hasFeatureAtPixel(pixel);
const pixel = map.getEventPixel(e.originalEvent);
const hit = map.hasFeatureAtPixel(pixel);
map.getTarget().style.cursor = hit ? 'pointer' : '';
});

View File

@@ -1,21 +1,21 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.format.IGC');
goog.require('ol.geom.LineString');
goog.require('ol.geom.Point');
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 Feature from '../src/ol/Feature.js';
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.js';
import IGC from '../src/ol/format/IGC.js';
import LineString from '../src/ol/geom/LineString.js';
import Point from '../src/ol/geom/Point.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import OSM, {ATTRIBUTION} from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import CircleStyle from '../src/ol/style/Circle.js';
import Fill from '../src/ol/style/Fill.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
var colors = {
const colors = {
'Clement Latour': 'rgba(0, 0, 255, 0.7)',
'Damien de Baesnt': 'rgba(0, 215, 255, 0.7)',
'Sylvain Dhonneur': 'rgba(0, 165, 255, 0.7)',
@@ -23,13 +23,13 @@ var colors = {
'Ulrich Prinz': 'rgba(0, 215, 255, 0.7)'
};
var styleCache = {};
var styleFunction = function(feature) {
var color = colors[feature.get('PLT')];
var style = styleCache[color];
const styleCache = {};
const styleFunction = function(feature) {
const color = colors[feature.get('PLT')];
let style = styleCache[color];
if (!style) {
style = new ol.style.Style({
stroke: new ol.style.Stroke({
style = new Style({
stroke: new Stroke({
color: color,
width: 3
})
@@ -39,9 +39,9 @@ var styleFunction = function(feature) {
return style;
};
var vectorSource = new ol.source.Vector();
const vectorSource = new VectorSource();
var igcUrls = [
const igcUrls = [
'data/igc/Clement-Latour.igc',
'data/igc/Damien-de-Baenst.igc',
'data/igc/Sylvain-Dhonneur.igc',
@@ -50,7 +50,7 @@ var igcUrls = [
];
function get(url, callback) {
var client = new XMLHttpRequest();
const client = new XMLHttpRequest();
client.open('GET', url);
client.onload = function() {
callback(client.responseText);
@@ -58,81 +58,81 @@ function get(url, callback) {
client.send();
}
var igcFormat = new ol.format.IGC();
for (var i = 0; i < igcUrls.length; ++i) {
const igcFormat = new IGC();
for (let i = 0; i < igcUrls.length; ++i) {
get(igcUrls[i], function(data) {
var features = igcFormat.readFeatures(data,
{featureProjection: 'EPSG:3857'});
const features = igcFormat.readFeatures(data,
{featureProjection: 'EPSG:3857'});
vectorSource.addFeatures(features);
});
}
var time = {
const time = {
start: Infinity,
stop: -Infinity,
duration: 0
};
vectorSource.on('addfeature', function(event) {
var geometry = event.feature.getGeometry();
const geometry = event.feature.getGeometry();
time.start = Math.min(time.start, geometry.getFirstCoordinate()[2]);
time.stop = Math.max(time.stop, geometry.getLastCoordinate()[2]);
time.duration = time.stop - time.start;
});
var map = new ol.Map({
const map = new Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM({
new TileLayer({
source: new OSM({
attributions: [
'All maps © <a href="https://www.opencyclemap.org/">OpenCycleMap</a>',
ol.source.OSM.ATTRIBUTION
ATTRIBUTION
],
url: 'https://{a-c}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png' +
'?apikey=0e6fc415256d4fbb9b5166a718591d71'
})
}),
new ol.layer.Vector({
new VectorLayer({
source: vectorSource,
style: styleFunction
})
],
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
controls: defaultControls({
attributionOptions: {
collapsible: false
})
}
}),
view: new ol.View({
view: new View({
center: [703365.7089403362, 5714629.865071137],
zoom: 9
})
});
var point = null;
var line = null;
var displaySnap = function(coordinate) {
var closestFeature = vectorSource.getClosestFeatureToCoordinate(coordinate);
var info = document.getElementById('info');
let point = null;
let line = null;
const displaySnap = function(coordinate) {
const closestFeature = vectorSource.getClosestFeatureToCoordinate(coordinate);
const info = document.getElementById('info');
if (closestFeature === null) {
point = null;
line = null;
info.innerHTML = '&nbsp;';
} else {
var geometry = closestFeature.getGeometry();
var closestPoint = geometry.getClosestPoint(coordinate);
const geometry = closestFeature.getGeometry();
const closestPoint = geometry.getClosestPoint(coordinate);
if (point === null) {
point = new ol.geom.Point(closestPoint);
point = new Point(closestPoint);
} else {
point.setCoordinates(closestPoint);
}
var date = new Date(closestPoint[2] * 1000);
const date = new Date(closestPoint[2] * 1000);
info.innerHTML =
closestFeature.get('PLT') + ' (' + date.toUTCString() + ')';
var coordinates = [coordinate, [closestPoint[0], closestPoint[1]]];
const coordinates = [coordinate, [closestPoint[0], closestPoint[1]]];
if (line === null) {
line = new ol.geom.LineString(coordinates);
line = new LineString(coordinates);
} else {
line.setCoordinates(coordinates);
}
@@ -144,7 +144,7 @@ map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
var coordinate = map.getEventCoordinate(evt.originalEvent);
const coordinate = map.getEventCoordinate(evt.originalEvent);
displaySnap(coordinate);
});
@@ -152,20 +152,20 @@ map.on('click', function(evt) {
displaySnap(evt.coordinate);
});
var stroke = new ol.style.Stroke({
const stroke = new Stroke({
color: 'rgba(255,0,0,0.9)',
width: 1
});
var style = new ol.style.Style({
const style = new Style({
stroke: stroke,
image: new ol.style.Circle({
image: new CircleStyle({
radius: 5,
fill: null,
stroke: stroke
})
});
map.on('postcompose', function(evt) {
var vectorContext = evt.vectorContext;
const vectorContext = evt.vectorContext;
vectorContext.setStyle(style);
if (point !== null) {
vectorContext.drawGeometry(point);
@@ -175,13 +175,13 @@ map.on('postcompose', function(evt) {
}
});
var featureOverlay = new ol.layer.Vector({
source: new ol.source.Vector(),
const featureOverlay = new VectorLayer({
source: new VectorSource(),
map: map,
style: new ol.style.Style({
image: new ol.style.Circle({
style: new Style({
image: new CircleStyle({
radius: 5,
fill: new ol.style.Fill({
fill: new Fill({
color: 'rgba(255,0,0,0.9)'
})
})
@@ -189,14 +189,14 @@ var featureOverlay = new ol.layer.Vector({
});
document.getElementById('time').addEventListener('input', function() {
var value = parseInt(this.value, 10) / 100;
var m = time.start + (time.duration * value);
const value = parseInt(this.value, 10) / 100;
const m = time.start + (time.duration * value);
vectorSource.forEachFeature(function(feature) {
var geometry = /** @type {ol.geom.LineString} */ (feature.getGeometry());
var coordinate = geometry.getCoordinateAtM(m, true);
var highlight = feature.get('highlight');
const geometry = /** @type {module:ol/geom/LineString~LineString} */ (feature.getGeometry());
const coordinate = geometry.getCoordinateAtM(m, true);
let highlight = feature.get('highlight');
if (highlight === undefined) {
highlight = new ol.Feature(new ol.geom.Point(coordinate));
highlight = new Feature(new Point(coordinate));
feature.set('highlight', highlight);
featureOverlay.getSource().addFeature(highlight);
} else {

View File

@@ -1,25 +1,25 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
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 {fromLonLat} from '../src/ol/proj.js';
import BingMaps from '../src/ol/source/BingMaps.js';
var key = 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5';
const key = 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5';
var imagery = new ol.layer.Tile({
source: new ol.source.BingMaps({key: key, imagerySet: 'Aerial'})
const imagery = new TileLayer({
source: new BingMaps({key: key, imagerySet: 'Aerial'})
});
var map = new ol.Map({
const map = new Map({
layers: [imagery],
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([-120, 50]),
view: new View({
center: fromLonLat([-120, 50]),
zoom: 6
})
});
var kernels = {
const kernels = {
none: [
0, 0, 0,
0, 1, 0,
@@ -58,9 +58,9 @@ var kernels = {
};
function normalize(kernel) {
var len = kernel.length;
var normal = new Array(len);
var i, sum = 0;
const len = kernel.length;
const normal = new Array(len);
let i, sum = 0;
for (i = 0; i < len; ++i) {
sum += kernel[i];
}
@@ -76,8 +76,8 @@ function normalize(kernel) {
return normal;
}
var select = document.getElementById('kernel');
var selectedKernel = normalize(kernels[select.value]);
const select = document.getElementById('kernel');
let selectedKernel = normalize(kernels[select.value]);
/**
@@ -104,37 +104,37 @@ imagery.on('postcompose', function(event) {
* @param {Array.<number>} kernel Kernel.
*/
function convolve(context, kernel) {
var canvas = context.canvas;
var width = canvas.width;
var height = canvas.height;
const canvas = context.canvas;
const width = canvas.width;
const height = canvas.height;
var size = Math.sqrt(kernel.length);
var half = Math.floor(size / 2);
const size = Math.sqrt(kernel.length);
const half = Math.floor(size / 2);
var inputData = context.getImageData(0, 0, width, height).data;
const inputData = context.getImageData(0, 0, width, height).data;
var output = context.createImageData(width, height);
var outputData = output.data;
const output = context.createImageData(width, height);
const outputData = output.data;
for (var pixelY = 0; pixelY < height; ++pixelY) {
var pixelsAbove = pixelY * width;
for (var pixelX = 0; pixelX < width; ++pixelX) {
var r = 0, g = 0, b = 0, a = 0;
for (var kernelY = 0; kernelY < size; ++kernelY) {
for (var kernelX = 0; kernelX < size; ++kernelX) {
var weight = kernel[kernelY * size + kernelX];
var neighborY = Math.min(
height - 1, Math.max(0, pixelY + kernelY - half));
var neighborX = Math.min(
width - 1, Math.max(0, pixelX + kernelX - half));
var inputIndex = (neighborY * width + neighborX) * 4;
for (let pixelY = 0; pixelY < height; ++pixelY) {
const pixelsAbove = pixelY * width;
for (let pixelX = 0; pixelX < width; ++pixelX) {
let r = 0, g = 0, b = 0, a = 0;
for (let kernelY = 0; kernelY < size; ++kernelY) {
for (let kernelX = 0; kernelX < size; ++kernelX) {
const weight = kernel[kernelY * size + kernelX];
const neighborY = Math.min(
height - 1, Math.max(0, pixelY + kernelY - half));
const neighborX = Math.min(
width - 1, Math.max(0, pixelX + kernelX - half));
const inputIndex = (neighborY * width + neighborX) * 4;
r += inputData[inputIndex] * weight;
g += inputData[inputIndex + 1] * weight;
b += inputData[inputIndex + 2] * weight;
a += inputData[inputIndex + 3] * weight;
}
}
var outputIndex = (pixelsAbove + pixelX) * 4;
const outputIndex = (pixelsAbove + pixelX) * 4;
outputData[outputIndex] = r;
outputData[outputIndex + 1] = g;
outputData[outputIndex + 2] = b;

View File

@@ -1,7 +1,7 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Image');
goog.require('ol.source.ImageWMS');
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import ImageLayer from '../src/ol/layer/Image.js';
import ImageWMS from '../src/ol/source/ImageWMS.js';
/**
@@ -32,7 +32,7 @@ Progress.prototype.addLoading = function() {
* Increment the count of loaded tiles.
*/
Progress.prototype.addLoaded = function() {
var this_ = this;
const this_ = this;
setTimeout(function() {
++this_.loaded;
this_.update();
@@ -44,12 +44,12 @@ Progress.prototype.addLoaded = function() {
* Update the progress bar.
*/
Progress.prototype.update = function() {
var width = (this.loaded / this.loading * 100).toFixed(1) + '%';
const width = (this.loaded / this.loading * 100).toFixed(1) + '%';
this.el.style.width = width;
if (this.loading === this.loaded) {
this.loading = 0;
this.loaded = 0;
var this_ = this;
const this_ = this;
setTimeout(function() {
this_.hide();
}, 500);
@@ -75,9 +75,9 @@ Progress.prototype.hide = function() {
}
};
var progress = new Progress(document.getElementById('progress'));
const progress = new Progress(document.getElementById('progress'));
var source = new ol.source.ImageWMS({
const source = new ImageWMS({
url: 'https://ahocevar.com/geoserver/wms',
params: {'LAYERS': 'topp:states'},
serverType: 'geoserver'
@@ -94,13 +94,12 @@ source.on('imageloaderror', function() {
progress.addLoaded();
});
var map = new ol.Map({
logo: false,
const map = new Map({
layers: [
new ol.layer.Image({source: source})
new ImageLayer({source: source})
],
target: 'map',
view: new ol.View({
view: new View({
center: [-10997148, 4569099],
zoom: 4
})

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