Compare commits

..

282 Commits

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

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

View File

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

View File

@@ -2,6 +2,39 @@
### Next release
#### Removal of the renderer option for maps
The `renderer` option has been removed from the `Map` constructor. The purpose of this change is to avoid bundling code in your application that you do not need. Previously, code for both the Canvas and WebGL renderers was included in all applications - even though most people only use one renderer. The `Map` constructor now gives you a Canvas (2D) based renderer. If you want to try the WebGL renderer, you can import the constructor from `ol/WebGLMap`.
Old code:
```js
import Map from 'ol/Map';
const canvasMap = new Map({
renderer: ['canvas']
// other options...
});
const webglMap = new Map({
renderer: ['webgl']
// other options...
});
```
New code:
```js
import Map from 'ol/Map';
import WebGLMap from 'ol/WebGLMap';
const canvasMap = new Map({
// options...
});
const webglMap = new WebGLMap({
// options...
});
```
#### Removal of ol.FeatureStyleFunction
The signature of the vector style function passed to the feature has changed. The function now always takes the `feature` and the `resolution` as arguments, the `feature` is no longer bound to `this`.

View File

@@ -11,8 +11,7 @@
"excludePattern": "(^|\\/|\\\\)_",
"include": [
"src",
"externs/oli.js",
"externs/olx.js"
"externs/oli.js"
]
},
"plugins": [

View File

@@ -1,5 +1,6 @@
/**
* Define an @api tag
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('api', {
@@ -8,32 +9,31 @@ exports.defineTags = function(dictionary) {
canHaveName: false,
onTagged: function(doclet, tag) {
includeTypes(doclet);
doclet.stability = "stable";
doclet.stability = 'stable';
}
});
};
/*
* Based on @api annotations, and assuming that items with no @api annotation
* should not be documented, this plugin removes undocumented symbols
* from the documentation.
*/
var api = [];
var classes = {};
var types = {};
const api = [];
const classes = {};
const types = {};
function hasApiMembers(doclet) {
return doclet.longname.split('#')[0] == this.longname;
}
function includeAugments(doclet) {
var augments = doclet.augments;
const augments = doclet.augments;
if (augments) {
var cls;
for (var i = augments.length - 1; i >= 0; --i) {
let cls;
for (let i = augments.length - 1; i >= 0; --i) {
cls = classes[augments[i]];
if (cls) {
includeAugments(cls);
@@ -68,7 +68,7 @@ function includeAugments(doclet) {
function extractTypes(item) {
item.type.names.forEach(function(type) {
var match = type.match(/^(.*<)?([^>]*)>?$/);
const match = type.match(/^(.*<)?([^>]*)>?$/);
if (match) {
types[match[2]] = true;
}
@@ -86,7 +86,6 @@ function includeTypes(doclet) {
types[doclet.meta.code.name] = true;
}
if (doclet.type && doclet.meta.code.type == 'MemberExpression') {
// types in olx.js
extractTypes(doclet);
}
}
@@ -94,12 +93,7 @@ function includeTypes(doclet) {
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
// Keep track of api items - needed in parseComplete to determine classes
// with api members.
if (doclet.meta.filename == 'olx.js' && doclet.kind == 'typedef') {
doclet.undocumented = false;
}
const doclet = e.doclet;
if (doclet.stability) {
api.push(doclet);
}
@@ -114,9 +108,9 @@ exports.handlers = {
},
parseComplete: function(e) {
var doclets = e.doclets;
for (var i = doclets.length - 1; i >= 0; --i) {
var doclet = doclets[i];
const doclets = e.doclets;
for (let i = doclets.length - 1; i >= 0; --i) {
const doclet = doclets[i];
if (doclet.stability || doclet.namespace_) {
if (doclet.kind == 'class') {
includeAugments(doclet);

View File

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

View File

@@ -19,16 +19,16 @@ exports.defineTags = function(dictionary) {
};
var lookup = {};
var incompleteByClass = {};
var keepKeys = ['comment', 'meta', 'name', 'memberof', 'longname', 'augment',
'stability'];
const lookup = {};
const incompleteByClass = {};
const keepKeys = ['comment', 'meta', 'name', 'memberof', 'longname', 'augment',
'stability'];
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
var incompletes;
const doclet = e.doclet;
let incompletes;
if (!(doclet.longname in lookup)) {
lookup[doclet.longname] = [];
}
@@ -45,9 +45,9 @@ exports.handlers = {
},
parseComplete: function(e) {
var ancestors, candidate, candidates, doclet, i, j, k, l, key;
var incompleteDoclet, stability, incomplete, incompletes;
var doclets = e.doclets;
let ancestors, candidate, candidates, doclet, i, j, k, l, key;
let incompleteDoclet, stability, incomplete, incompletes;
const doclets = e.doclets;
for (i = doclets.length - 1; i >= 0; --i) {
doclet = doclets[i];
if (doclet.augments) {

View File

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

View File

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

View File

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

View File

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

View File

@@ -22,8 +22,7 @@ exports.publish = function(data, opts) {
return types;
}
// get all doclets with the "api" property or define (excluding events) or
// with olx namespace
// get all doclets with the "api" property or define (excluding events)
const classes = {};
const docs = data(
[
@@ -61,24 +60,7 @@ exports.publish = function(data, opts) {
return include;
}).forEach(function(doc) {
const isExterns = (/[\\\/]externs$/).test(doc.meta.path);
if (isExterns && doc.longname.indexOf('olx.') === 0) {
if (doc.kind == 'typedef') {
typedefs.push({
name: doc.longname,
types: ['{}']
});
} else {
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] +
': (' + getTypes(doc.type.names).join('|') + ')}')
.replace('{, ', '{');
}
} else if (doc.define) {
if (doc.define) {
defines.push({
name: doc.longname,
description: doc.description,

View File

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

View File

@@ -139,7 +139,7 @@ Invalid geometry layout. Must be `XY`, `XYZ`, `XYM` or `XYZM`.
### 36
Unknown SRS type. Expected `"name"` or `"EPSG"`.
Unknown SRS type. Expected `"name"`.
### 37

View File

@@ -176,8 +176,6 @@ The minimum config file looks like this:
"ol.ENABLE_WEBGL=false"
],
"js": [
"node_modules/openlayers/src/ol/typedefs.js",
"node_modules/openlayers/externs/olx.js",
"node_modules/openlayers/externs/oli.js"
],
"extra_annotation_name": [
@@ -228,8 +226,6 @@ Here is a version of `config.json` with more compilation checks enabled:
"ol.ENABLE_WEBGL=false"
],
"js": [
"node_modules/openlayers/src/ol/typedefs.js",
"node_modules/openlayers/externs/olx.js",
"node_modules/openlayers/externs/oli.js"
],
"jscomp_error": [

View File

@@ -56,7 +56,6 @@ Creating a custom build requires writing a build configuration file. The format
"externs/esrijson.js",
"externs/geojson.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js"
@@ -169,8 +168,6 @@ and re-run the build script. The build size should now be smaller.
The Closure documentation explains that "externs" are for external names used in the code being compiled. The compiler includes externs for built-ins such as `document`. The `externs` directory of the OpenLayers code includes files for all those used in some part of the library. For example, if you use Bing Maps, you should include the Bing externs file in the `externs` section of the config file.
`oli.js` and `olx.js` are externs files for the OpenLayers API. For example `olx.js` includes extern definitions for OpenLayers's constructor options. `closure-compiler.js` fixes any issues that may arise with a specific compiler version. You should always use these three files as externs when creating custom builds.
### Other compiler options
There are a couple of other compiler options in the config file above. `manage_closure_dependencies` and `rewrite_polyfills` should always be used.
@@ -208,7 +205,6 @@ Now let's try a more complicated example: [`heatmaps-earthquakes`](https://openl
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/geojson.js",
"externs/olx.js",
"externs/oli.js",
"externs/proj4js.js",
"externs/tilejson.js",

View File

@@ -1,9 +1,7 @@
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';
import {Tile as TileLayer, Image as ImageLayer} from '../src/ol/layer.js';
import {OSM, ImageArcGISRest} from '../src/ol/source.js';
const url = 'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
'Specialty/ESRI_StateCityHighway_USA/MapServer';

View File

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

View File

@@ -1,8 +1,7 @@
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';
import {OSM, TileArcGISRest} from '../src/ol/source.js';
const url = 'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
'Specialty/ESRI_StateCityHighway_USA/MapServer';

View File

@@ -1,7 +1,6 @@
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 {defaults as defaultControls, Attribution} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';

View File

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

View File

@@ -4,10 +4,7 @@ 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';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
// Create separate layers for red, green an blue circles.
@@ -96,7 +93,7 @@ const affectBlue = document.getElementById('affect-blue');
* This method sets the globalCompositeOperation to the value of the select
* field and it is bound to the precompose event of the layers.
*
* @param {ol.render.Event} evt The render event.
* @param {module:ol/render/Event~RenderEvent} evt The render event.
*/
const setBlendModeFromSelect = function(evt) {
evt.context.globalCompositeOperation = select.value;
@@ -107,7 +104,7 @@ const setBlendModeFromSelect = function(evt) {
* This method resets the globalCompositeOperation to the default value of
* 'source-over' and it is bound to the postcompose event of the layers.
*
* @param {ol.render.Event} evt The render event.
* @param {module:ol/render/Event~RenderEvent} evt The render event.
*/
const resetBlendModeFromSelect = function(evt) {
evt.context.globalCompositeOperation = 'source-over';
@@ -117,7 +114,7 @@ const resetBlendModeFromSelect = function(evt) {
/**
* Bind the pre- and postcompose handlers to the passed layer.
*
* @param {ol.layer.Vector} layer The layer to bind the handlers to.
* @param {module:ol/layer/Vector} layer The layer to bind the handlers to.
*/
const bindLayerListeners = function(layer) {
layer.on('precompose', setBlendModeFromSelect);
@@ -128,7 +125,7 @@ const bindLayerListeners = function(layer) {
/**
* Unind the pre- and postcompose handlers to the passed layers.
*
* @param {ol.layer.Vector} layer The layer to unbind the handlers from.
* @param {module:ol/layer/Vector} layer The layer to unbind the handlers from.
*/
const unbindLayerListeners = function(layer) {
layer.un('precompose', setBlendModeFromSelect);

View File

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

View File

@@ -2,12 +2,9 @@ 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';
import {DragBox, Select} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
const vectorSource = new VectorSource({

View File

@@ -6,9 +6,7 @@ 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';
import {Fill, Stroke, Style} from '../src/ol/style.js';
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
@@ -72,7 +70,7 @@ const style = new 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.
* @return {module:ol/style/Style} The style to use for the feature.
*/
const getStackedStyle = function(feature, resolution) {
const id = feature.getId();

View File

@@ -3,8 +3,7 @@ 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';
import {OSM, TileDebug} from '../src/ol/source.js';
const osmSource = new OSM();

View File

@@ -1,8 +1,7 @@
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';
import {CartoDB, OSM} from '../src/ol/source.js';
const mapConfig = {
'layers': [{

View File

@@ -2,14 +2,9 @@ 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';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const source = new VectorSource({
url: 'data/geojson/switzerland.geojson',
@@ -92,6 +87,6 @@ const centerlausanne = document.getElementById('centerlausanne');
centerlausanne.addEventListener('click', function() {
const feature = source.getFeatures()[1];
const point = /** @type {module:ol/geom/Point~Point} */ (feature.getGeometry());
const size = /** @type {ol.Size} */ (map.getSize());
const size = /** @type {module:ol/size~Size} */ (map.getSize());
view.centerOn(point.getCoordinates(), size, [570, 500]);
}, false);

20
examples/chaikin.html Normal file
View File

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

54
examples/chaikin.js Normal file
View File

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

View File

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

View File

@@ -2,16 +2,9 @@ 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';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {Cluster, OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style, Text} from '../src/ol/style.js';
const distance = document.getElementById('distance');

View File

@@ -2,8 +2,7 @@
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';
import {Raster as RasterSource, Stamen} from '../src/ol/source.js';
/**

View File

@@ -1,8 +1,7 @@
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 {defaults as defaultControls, Control} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';

View File

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

View File

@@ -2,19 +2,11 @@ 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';
import {LineString, Point, Polygon} from '../src/ol/geom.js';
import {defaults as defaultInteractions, Pointer as PointerInteraction} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {TileJSON, Vector as VectorSource} from '../src/ol/source.js';
import {Fill, Icon, Stroke, Style} from '../src/ol/style.js';
/**
@@ -25,7 +17,7 @@ const app = {};
/**
* @constructor
* @extends {ol.interaction.Pointer}
* @extends {module:ol/interaction/Pointer}
*/
app.Drag = function() {
@@ -37,7 +29,7 @@ app.Drag = function() {
});
/**
* @type {ol.Pixel}
* @type {module:ol~Pixel}
* @private
*/
this.coordinate_ = null;
@@ -157,7 +149,7 @@ const map = new Map({
features: [pointFeature, lineFeature, polygonFeature]
}),
style: new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
image: new Icon(/** @type {module:ol/style/Icon~Options} */ ({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',

12
examples/d3.js vendored
View File

@@ -2,11 +2,9 @@
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 {Image as ImageLayer, Tile as TileLayer} from '../src/ol/layer.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';
import {ImageCanvas as ImageCanvasSource, Stamen} from '../src/ol/source.js';
const map = new Map({
@@ -26,17 +24,17 @@ const map = new Map({
/**
* Load the topojson data and create an ol.layer.Image for that data.
* Load the topojson data and create an ol/layer/Image for that data.
*/
d3.json('data/topojson/us.json', function(error, us) {
const features = topojson.feature(us, us.objects.counties);
/**
* This function uses d3 to render the topojson features to a canvas.
* @param {ol.Extent} extent Extent.
* @param {module:ol/extent~Extent} extent Extent.
* @param {number} resolution Resolution.
* @param {number} pixelRatio Pixel ratio.
* @param {ol.Size} size Size.
* @param {module:ol/size~Size} size Size.
* @param {module:ol/proj/Projection~Projection} projection Projection.
* @return {HTMLCanvasElement} A canvas element.
*/

View File

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

View File

@@ -1,20 +1,10 @@
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';
import {GPX, GeoJSON, IGC, KML, TopoJSON} from '../src/ol/format.js';
import {defaults as defaultInteractions, DragAndDrop} from '../src/ol/interaction.js';
import {Vector as VectorLayer, Tile as TileLayer} from '../src/ol/layer.js';
import {BingMaps, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const defaultStyle = {

View File

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

View File

@@ -1,20 +1,10 @@
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';
import {GPX, GeoJSON, IGC, KML, TopoJSON} from '../src/ol/format.js';
import {defaults as defaultInteractions, DragAndDrop} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {BingMaps, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const defaultStyle = {

View File

@@ -1,7 +1,6 @@
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 {defaults as defaultInteractions, DragRotateAndZoom} from '../src/ol/interaction.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';

View File

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

View File

@@ -1,16 +1,9 @@
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';
import {Draw, Modify, Snap} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const raster = new TileLayer({
source: new OSM()

View File

@@ -1,7 +1,7 @@
---
layout: example.html
title: Draw Features
shortdesc: Example of using the ol.interaction.Draw interaction.
shortdesc: Example of using the ol/interaction/Draw interaction.
docs: >
Example of using the Draw interaction. Select a geometry type from the
dropdown above to start drawing. To finish drawing, click the last

View File

@@ -1,10 +1,8 @@
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';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
const raster = new TileLayer({
source: new OSM()

View File

@@ -1,13 +1,13 @@
---
layout: example.html
title: Freehand Drawing
shortdesc: Example using the ol.interaction.Draw interaction in freehand mode.
shortdesc: Example using the ol/interaction/Draw interaction in freehand mode.
docs: >
This example demonstrates the `ol.interaction.Draw` in freehand mode. During
This example demonstrates the `ol/interaction/Draw` in freehand mode. During
freehand drawing, points are added while dragging. Set `freehand: true` to
enable freehand mode. Note that freehand mode can be conditionally enabled
by using the `freehandCondition` option. For example to toggle freehand mode
with the `Shift` key, use `freehandCondition: ol.events.condition.shiftKeyOnly`.
with the `Shift` key, use `freehandCondition: shiftKeyOnly`.
tags: "draw, edit, freehand, vector"
---
<div id="map" class="map"></div>

View File

@@ -1,10 +1,8 @@
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';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
const raster = new TileLayer({
source: new OSM()

View File

@@ -1,10 +1,10 @@
---
layout: example.html
title: Draw Shapes
shortdesc: Using the ol.interaction.Draw to create regular shapes
shortdesc: Using the ol/interaction/Draw to create regular shapes
docs: >
This demonstrates the use of the `geometryFunction` option for the
`ol.interaction.Draw`. Select a shape type from the dropdown above to start
`ol/interaction/Draw`. Select a shape type from the dropdown above to start
drawing. To activate freehand drawing, hold the `Shift` key. Square drawing is
achieved by using `type: 'Circle'` type with a `geometryFunction` that creates
a 4-sided regular polygon instead of a circle. Box drawing uses `type: 'Circle'`

View File

@@ -2,10 +2,8 @@ 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';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
const raster = new TileLayer({
source: new OSM()

View File

@@ -1,13 +1,9 @@
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 {MultiPoint, Point} from '../src/ol/geom.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';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const map = new Map({

View File

@@ -6,7 +6,7 @@ docs: >
<p>This example parses a KML file and renders the features as clusters on a vector layer. The styling in this example is quite involved. Single earthquake locations
(rendered as stars) have a size relative to their magnitude. Clusters have an opacity relative to the number of features in the cluster, and a size that represents
the extent of the features that make up the cluster. When clicking or hovering on a cluster, the individual features that make up the cluster will be shown.</p>
<p>To achieve this, we make heavy use of style functions and <code>ol.style.Style#geometry</code>.</p>
<p>To achieve this, we make heavy use of style functions.</p>
tags: "KML, vector, style, geometry, cluster"
---
<div id="map" class="map"></div>

View File

@@ -2,19 +2,10 @@ 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';
import {defaults as defaultInteractions, Select} from '../src/ol/interaction.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {Cluster, Stamen, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, RegularShape, Stroke, Style, Text} from '../src/ol/style.js';
const earthquakeFill = new Fill({

View File

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

View File

@@ -2,15 +2,11 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {toContext} from '../src/ol/render.js';
import Stamen from '../src/ol/source/Stamen.js';
import VectorSource from '../src/ol/source/Vector.js';
import 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';
import {Fill, Icon, Stroke, Style} from '../src/ol/style.js';
const symbol = [[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]];

View File

@@ -1,7 +1,6 @@
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 {defaults as defaultControls, ScaleLine} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import TileWMS from '../src/ol/source/TileWMS.js';

View File

@@ -4,10 +4,8 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
const map = new Map({
layers: [

View File

@@ -3,11 +3,9 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {unByKey} from '../src/ol/Observable.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
const raster = new TileLayer({
source: new OSM()
@@ -66,7 +64,7 @@ exportButton.addEventListener('click', function() {
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 size = /** @type {module:ol/size~Size} */ (map.getSize());
const extent = map.getView().calculateExtent(size);
const source = raster.getSource();

View File

@@ -3,10 +3,8 @@ 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';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
const vectorSource = new VectorSource({
url: 'data/geojson/countries.geojson',
@@ -36,12 +34,12 @@ map.addInteraction(extent);
extent.setActive(false);
//Enable interaction by holding shift
this.addEventListener('keydown', function(event) {
window.addEventListener('keydown', function(event) {
if (event.keyCode == 16) {
extent.setActive(true);
}
});
this.addEventListener('keyup', function(event) {
window.addEventListener('keyup', function(event) {
if (event.keyCode == 16) {
extent.setActive(false);
}

View File

@@ -5,14 +5,10 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Stroke, Style} from '../src/ol/style.js';
const map = new Map({

View File

@@ -8,7 +8,8 @@ docs: >
is being used.
tags: "animation, feature, postcompose, polyline"
cloak:
As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<label for="speed">

View File

@@ -3,15 +3,10 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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';
import {Circle as CircleStyle, Fill, Icon, Stroke, Style} from '../src/ol/style.js';
// This long string is placed here due to jsFiddle limitations.
// It is usually loaded with AJAX.

View File

@@ -3,12 +3,10 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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';
import {Stroke, Style} from '../src/ol/style.js';
const map = new Map({
layers: [

View File

@@ -7,6 +7,7 @@ docs: >
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
tags: "full-screen, drag, rotate, zoom, bing, bing-maps"
cloak:
As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>

View File

@@ -1,9 +1,7 @@
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 {defaults as defaultControls, FullScreen} from '../src/ol/control.js';
import {defaults as defaultInteractions, DragRotateAndZoom} from '../src/ol/interaction.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';

View File

@@ -1,7 +1,6 @@
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 defaultControls, FullScreen} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import OSM from '../src/ol/source/OSM.js';

View File

@@ -7,6 +7,7 @@ docs: >
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
tags: "full-screen, bing, bing-maps"
cloak:
As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>

View File

@@ -1,7 +1,6 @@
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 defaultControls, FullScreen} from '../src/ol/control.js';
import TileLayer from '../src/ol/layer/Tile.js';
import BingMaps from '../src/ol/source/BingMaps.js';

View File

@@ -4,8 +4,7 @@ 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 {Tile as TileLayer, VectorTile as VectorTileLayer} from '../src/ol/layer.js';
import Projection from '../src/ol/proj/Projection.js';

View File

@@ -4,14 +4,9 @@ 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';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const image = new CircleStyle({

View File

@@ -4,14 +4,9 @@ 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';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const view = new View({
center: [0, 0],

View File

@@ -6,7 +6,7 @@ shortdesc: >
request
docs: >
Demonstrates the use of the `layers` option in the
`ol.format.WMSGetFeatureInfo` format object, which allows features returned
`ol/format/WMSGetFeatureInfo` format object, which allows features returned
by a single WMS GetFeatureInfo request that asks for more than one layer
to be read by layer name.
---

View File

@@ -6,7 +6,8 @@ docs: >
Example of using the GPX source.
tags: "GPX"
cloak:
As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -1,14 +1,10 @@
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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const raster = new TileLayer({
source: new BingMaps({

View File

@@ -3,7 +3,7 @@ layout: example.html
title: Earthquakes Heatmap
shortdesc: Demonstrates the use of a heatmap layer.
docs: >
This example parses a KML file and renders the features as a <code>ol.layer.Heatmap</code> layer.
This example parses a KML file and renders the features as a <code>ol/layer/Heatmap</code> layer.
tags: "heatmap, kml, vector, style"
---
<div id="map" class="map"></div>

View File

@@ -1,8 +1,7 @@
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 {Heatmap as HeatmapLayer, Tile as TileLayer} from '../src/ol/layer.js';
import Stamen from '../src/ol/source/Stamen.js';
import VectorSource from '../src/ol/source/Vector.js';

View File

@@ -3,12 +3,14 @@ layout: example.html
title: HERE Map Tile API
shortdesc: Example of a map with map tiles from HERE.
docs: >
<p><a href="https://developer.here.com/rest-apis/documentation/enterprise-map-tile">HERE Map Tile API</a> used with <code>ol.source.XYZ</code>.</p>
<p><a href="https://developer.here.com/rest-apis/documentation/enterprise-map-tile">HERE Map Tile API</a> used with <code>ol/source/XYZ</code>.</p>
<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:
kDm0Jq1K4Ak7Bwtn8uvk: Your HERE Maps appId from https://developer.here.com/
xnmvc4dKZrDfGlvQHXSvwQ: Your HERE Maps appCode from https://developer.here.com/
- key: kDm0Jq1K4Ak7Bwtn8uvk
value: Your HERE Maps appId from https://developer.here.com/
- key: xnmvc4dKZrDfGlvQHXSvwQ
value: Your HERE Maps appCode from https://developer.here.com/
---
<div id="map" class="map"></div>
<select id="layer-select">

View File

@@ -1,13 +1,10 @@
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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.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';
import {Stroke, Style} from '../src/ol/style.js';
const raster = new TileLayer({
source: new OSM()

View File

@@ -4,7 +4,7 @@ title: Icon Colors
shortdesc: Example assigning a custom color to an icon
docs: >
Example assigning a custom color to an icon. The features in this examples are all using the same image with the different colors coming from the javascript file.
Note that icon files need to obey the same origin policy or send proper CORS headers for this to work. When relying on CORS headers, the `ol.style.Icon` must be configured with `crossOrigin: 'anonymous'`.
Note that icon files need to obey the same origin policy or send proper CORS headers for this to work. When relying on CORS headers, the `ol/style/Icon` must be configured with `crossOrigin: 'anonymous'`.
tags: "vector, style, icon, marker"
resources:
---

View File

@@ -2,13 +2,11 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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';
import {Icon, Style} from '../src/ol/style.js';
const rome = new Feature({
@@ -24,7 +22,7 @@ const madrid = new Feature({
});
rome.setStyle(new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
image: new Icon(/** @type {module:ol/style/Icon~Options} */ ({
color: '#8959A8',
crossOrigin: 'anonymous',
src: 'data/dot.png'
@@ -32,7 +30,7 @@ rome.setStyle(new Style({
}));
london.setStyle(new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
image: new Icon(/** @type {module:ol/style/Icon~Options} */ ({
color: '#4271AE',
crossOrigin: 'anonymous',
src: 'data/dot.png'
@@ -40,7 +38,7 @@ london.setStyle(new Style({
}));
madrid.setStyle(new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
image: new Icon(/** @type {module:ol/style/Icon~Options} */ ({
color: [113, 140, 0],
crossOrigin: 'anonymous',
src: 'data/dot.png'

View File

@@ -3,17 +3,15 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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';
import {Icon, Style} from '../src/ol/style.js';
function createStyle(src, img) {
return new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
image: new Icon(/** @type {module:ol/style/Icon~Options} */ ({
anchor: [0.5, 0.96],
crossOrigin: 'anonymous',
src: src,

View File

@@ -1,11 +1,10 @@
import Feature from '../src/ol/Feature.js';
import Map from '../src/ol/Map.js';
import Map from '../src/ol/WebGLMap.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';
import {Icon, Style} from '../src/ol/style.js';
const iconInfo = [{
@@ -80,7 +79,6 @@ const vector = new VectorLayer({
});
const map = new Map({
renderer: /** @type {Array<ol.renderer.Type>} */ (['webgl', 'canvas']),
layers: [vector],
target: document.getElementById('map'),
view: new View({

View File

@@ -3,12 +3,10 @@ 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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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';
import {Icon, Style} from '../src/ol/style.js';
const iconFeature = new Feature({
@@ -19,7 +17,7 @@ const iconFeature = new Feature({
});
const iconStyle = new Style({
image: new Icon(/** @type {olx.style.IconOptions} */ ({
image: new Icon(/** @type {module:ol/style/Icon~Options} */ ({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',

View File

@@ -6,7 +6,8 @@ docs: >
<p>The five tracks contain a total of 49,707 unique coordinates. Zoom in to see more detail. The background layer is from <a href="https://www.opencyclemap.org/">OpenCycleMap</a>.</p>
tags: "complex-geometry, closest-feature, igc, opencyclemap"
cloak:
0e6fc415256d4fbb9b5166a718591d71: Your API key from http://www.thunderforest.com/docs/apikeys/ here
- key: 0e6fc415256d4fbb9b5166a718591d71
value: Your API key from http://www.thunderforest.com/docs/apikeys/ here
---
<div id="map" class="map"></div>

View File

@@ -3,16 +3,11 @@ 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 {LineString, Point} from '../src/ol/geom.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const colors = {

View File

@@ -8,7 +8,8 @@ docs: >
In this example, the <code>postcompose</code> listener applies a filter to the image data.</p>
tags: "filter, image manipulation"
cloak:
As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<select id="kernel" name="kernel">

View File

@@ -3,7 +3,7 @@ layout: example.html
title: Image Vector Layer
shortdesc: Example of an image vector layer.
docs: >
<p>This example uses <code>ol.layer.Vector</code> with `renderMode: 'image'`. This mode results in faster rendering during interaction and animations, at the cost of less accurate rendering.</p>
<p>This example uses <code>ol/layer/Vector</code> with `renderMode: 'image'`. This mode results in faster rendering during interaction and animations, at the cost of less accurate rendering.</p>
tags: "vector, image"
---
<div id="map" class="map"></div>

View File

@@ -3,10 +3,7 @@ import View from '../src/ol/View.js';
import GeoJSON from '../src/ol/format/GeoJSON.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import VectorSource from '../src/ol/source/Vector.js';
import Fill 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';
import {Fill, Stroke, Style, Text} from '../src/ol/style.js';
const style = new Style({

View File

@@ -3,8 +3,7 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.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 {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {fromLonLat} from '../src/ol/proj.js';
import OSM from '../src/ol/source/OSM.js';
import VectorSource from '../src/ol/source/Vector.js';

View File

@@ -1,14 +1,10 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import KML from '../src/ol/format/KML.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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 Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
const styleCache = {};

View File

@@ -3,7 +3,7 @@ layout: example.html
title: Timezones in KML
shortdesc: Demonstrates rendering timezones from KML.
docs: >
This example parses a KML file and renders the features as a vector layer. The layer is given a <code>ol.style.Style</code> that fills timezones
This example parses a KML file and renders the features as a vector layer. The layer is given a <code>ol/style/Style</code> that fills timezones
yellow with an opacity calculated based on the current offset to local noon.
tags: "KML, vector, style"
resources:

View File

@@ -1,13 +1,10 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import KML from '../src/ol/format/KML.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.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 Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
import {Fill, Stroke, Style} from '../src/ol/style.js';
/*

View File

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

View File

@@ -1,8 +1,7 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import KML from '../src/ol/format/KML.js';
import TileLayer from '../src/ol/layer/Tile.js';
import VectorLayer from '../src/ol/layer/Vector.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import BingMaps from '../src/ol/source/BingMaps.js';
import VectorSource from '../src/ol/source/Vector.js';

View File

@@ -1,4 +1,4 @@
import Map from '../src/ol/Map.js';
import Map from '../src/ol/WebGLMap.js';
import View from '../src/ol/View.js';
import {defaults as defaultControls} from '../src/ol/control.js';
import {WEBGL} from '../src/ol/has.js';
@@ -19,7 +19,6 @@ if (!WEBGL) {
const map = new Map({
layers: [osm],
renderer: /** @type {Array<ol.renderer.Type>} */ (['webgl', 'canvas']),
target: 'map',
controls: defaultControls({
attributionOptions: {

View File

@@ -1,7 +1,6 @@
import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import LayerGroup from '../src/ol/layer/Group.js';
import TileLayer from '../src/ol/layer/Tile.js';
import {Group as LayerGroup, Tile as TileLayer} from '../src/ol/layer.js';
import {fromLonLat} from '../src/ol/proj.js';
import OSM from '../src/ol/source/OSM.js';
import TileJSON from '../src/ol/source/TileJSON.js';

View File

@@ -10,6 +10,7 @@ docs: >
<p>Move around the map to see the effect. Use the ↑ up and ↓ down arrow keys to adjust the spyglass size.</p>
tags: "spy, image manipulation"
cloak:
As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>

View File

@@ -6,7 +6,8 @@ docs: >
Example of a Layer swipe map.
tags: "swipe, openstreetmap"
cloak:
As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5: Your Bing Maps Key from http://www.bingmapsportal.com/ here
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
value: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<input id="swipe" type="range" style="width: 100%">

View File

@@ -4,10 +4,7 @@ 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 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 {Fill, RegularShape, Stroke, Style} from '../src/ol/style.js';
const stroke = new Stroke({color: 'black', width: 1});

View File

@@ -2,13 +2,9 @@ import Map from '../src/ol/Map.js';
import View from '../src/ol/View.js';
import Point from '../src/ol/geom/Point.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';
import Icon from '../src/ol/style/Icon.js';
import Stroke from '../src/ol/style/Stroke.js';
import Style from '../src/ol/style/Style.js';
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
import {Icon, Stroke, Style} from '../src/ol/style.js';
const raster = new TileLayer({
source: new OSM()

View File

@@ -6,7 +6,8 @@ docs: >
<p>The base layer is <a href="https://www.opencyclemap.org/">OpenCycleMap</a> with an overlay from <a href="http://www.openseamap.org/">OpenSeaMap</a>.
tags: "localized-openstreetmap, openseamap, openstreetmap"
cloak:
0e6fc415256d4fbb9b5166a718591d71: Your API key from http://www.thunderforest.com/docs/apikeys/ here
- key: 0e6fc415256d4fbb9b5166a718591d71
value: Your API key from http://www.thunderforest.com/docs/apikeys/ here
---
<div id="map" class="map"></div>

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