Compare commits

..

774 Commits

Author SHA1 Message Date
Andreas Hocevar
4a73335839 Update package version to 3.14.2 2016-03-04 09:31:35 +01:00
Andreas Hocevar
124badb961 Changelog vor v3.14.2 2016-03-04 09:31:35 +01:00
Tim Schaub
8725b4fcf4 Merge pull request #4963 from tschaub/xhr-failures
Handle more XHR errors in the TileJSON source
2016-03-04 09:26:16 +01:00
Andreas Hocevar
d12dce1c03 Merge pull request #4960 from ahocevar/clip-rendered
Simplify clipping of lower resolution regions
2016-03-04 09:25:37 +01:00
Frédéric Junod
afb8efc0e9 Merge pull request #4958 from fredj/stop_wheel_events
Stop wheel events instead of DOMMouseScroll events
2016-03-04 09:25:14 +01:00
Andreas Hocevar
bef31dc386 Merge pull request #4956 from jonataswalker/fix-layout-examples
Fix Examples layout page
2016-03-04 09:24:54 +01:00
Tim Schaub
e8cd5e322f Merge pull request #4809 from fperucic/multpolygon-clone
Fix multipolygon clone.
2016-03-04 09:24:23 +01:00
Andreas Hocevar
b4c4a81afb Update package version to 3.14.1 2016-03-01 10:10:41 +01:00
Andreas Hocevar
7478e82b9a Changelog for v3.14.1 2016-03-01 10:10:06 +01:00
Andreas Hocevar
4b586df2b5 Merge pull request #4939 from ahocevar/clip-opacity
Fix rendering of opaque layers with opacity != 1
2016-03-01 10:05:07 +01:00
Andreas Hocevar
ed62203527 Merge pull request #4921 from ahocevar/unlisten-earlier-and-bind-to-target
Unlisten before calling listener and bind to target by default
2016-03-01 10:03:51 +01:00
Andreas Hocevar
73d4c3565c Update package version to 3.14.0 2016-02-24 09:51:15 +01:00
Andreas Hocevar
cc30f5f3da Changelog for v3.14.0 2016-02-24 09:50:45 +01:00
Andreas Hocevar
4e11a86b4e Merge pull request #4896 from ahocevar/xml-ignore-order
Ignore XML sequence when comparing GML
2016-02-24 08:59:30 +01:00
Frédéric Junod
9f21f1dac4 Merge pull request #4890 from fredj/kmlformat_cleanup
ol.format.KML cleanup
2016-02-24 08:47:29 +01:00
Frederic Junod
d0f71bf64f Remove old fixme 2016-02-24 08:37:30 +01:00
Frederic Junod
950bb1810c Remove unneeded type cast 2016-02-24 08:37:30 +01:00
Frederic Junod
81d0e9ea63 Use get(key) instead of getProperties()[key] 2016-02-24 08:37:30 +01:00
Tim Schaub
4b55175b7e Merge pull request #4894 from tschaub/raster-tests
Only run raster operations after image sources have loaded.
2016-02-23 16:10:07 -07:00
Andreas Hocevar
cdf9eda132 Ignore element order for FeatureCollection round trip 2016-02-23 23:36:12 +01:00
Andreas Hocevar
7a953a166e Add option to ignore element order in xmleq 2016-02-23 23:35:53 +01:00
Andreas Hocevar
f2d5d572ab Only composeFrame when prepareFrame prepared something to render 2016-02-23 13:56:39 -07:00
Tim Schaub
02904cda8e Guard against handlers handling events after done 2016-02-23 13:13:15 -07:00
Tim Schaub
24b7b27836 Listen once when calling done 2016-02-23 13:10:47 -07:00
Tim Schaub
9da8cd890e Simpler alias 2016-02-23 13:06:38 -07:00
Tim Schaub
eaab8e47ce More cleanup 2016-02-23 12:57:39 -07:00
Tim Schaub
b440872e60 Less crazy indentation 2016-02-23 12:50:33 -07:00
Tim Schaub
247eb62e3b Avoid shadowing 2016-02-23 12:48:27 -07:00
Andreas Hocevar
960c51f95d Merge pull request #4892 from ahocevar/fix-edge
Stricter check for ImageData constructor
2016-02-23 19:58:51 +01:00
Andreas Hocevar
8e489304c1 Stricter check for ImageData constructor 2016-02-23 19:43:06 +01:00
Andreas Hocevar
2df40f4b88 Merge pull request #4891 from ahocevar/fix-ie9-tests
Fix tests so they all pass in IE9
2016-02-23 18:52:18 +01:00
Andreas Hocevar
c2d4bf113d Fix tests so they all pass in IE9 2016-02-23 18:21:22 +01:00
Andreas Hocevar
806588edc6 Merge pull request #4889 from ahocevar/ie9-polyfill
Use requestAnimation polyfill for examples and update release notes
2016-02-23 16:07:23 +01:00
Andreas Hocevar
ad6c731823 Use requestAnimation polyfill for examples and update release notes 2016-02-23 15:56:03 +01:00
Andreas Hocevar
17749dbf96 Merge pull request #4887 from ahocevar/jsonp-test
Use less aggressive DOM function overrides
2016-02-23 14:27:14 +01:00
Andreas Hocevar
a8c6baa188 Use less aggressive DOM function overrides 2016-02-23 14:14:49 +01:00
Frédéric Junod
ef63908539 Merge pull request #4885 from fredj/non-null_divs
Mark overlayContainer and overlayContainerStopEvent as non-nullable
2016-02-23 13:47:58 +01:00
Frédéric Junod
d642fe6783 Merge pull request #4884 from fredj/isFinite
Remove use of goog.math.isFiniteNumber()
2016-02-23 11:29:16 +01:00
Frederic Junod
268d6eda8f Mark overlayContainer and overlayContainerStopEvent as non-nullable
And remove an unnecessary cast
2016-02-23 11:25:38 +01:00
Frederic Junod
84288cd8bb Remove use of goog.math.isFiniteNumber()
This replaces `goog.math.isFiniteNumber()` with `isFinite()`.
2016-02-23 10:03:44 +01:00
Frédéric Junod
996e119b25 Merge pull request #4881 from openlayers/greenkeeper-jquery-2.2.1
Update jquery to version 2.2.1 🚀
2016-02-23 08:51:27 +01:00
greenkeeperio-bot
f54a8ea432 chore(package): update jquery to version 2.2.1
http://greenkeeper.io/
2016-02-22 12:19:08 -07:00
Frédéric Junod
5b21d61688 Merge pull request #4780 from fredj/update_compiler
Adapt the code for the new closure-compiler version
2016-02-22 15:31:11 +01:00
Frederic Junod
1f04495dc3 Change layers type to Object in reprojection example 2016-02-22 10:05:05 +01:00
Frederic Junod
8373814243 Remove unused goog.log logger from ol.renderer.webgl.Map 2016-02-22 10:02:15 +01:00
Frederic Junod
d7c0aa4887 Add missing ol.render.Feature type annotation
Leftover from #4219
2016-02-22 10:02:15 +01:00
Frederic Junod
e6c2fa52f5 Remove unneeded type cast 2016-02-22 10:02:15 +01:00
Frederic Junod
17b667d6e0 Add missing type casts for goog.partial 2016-02-22 10:02:15 +01:00
Andreas Hocevar
81750ea6b1 Merge pull request #3453 from bjornharrtell/set-multi
Consider multi in add/remove/toggle select logic
2016-02-22 09:49:00 +01:00
Tobias Sauerwein
12b8624cdb Merge pull request #4876 from tsauerwein/drag-n-drop-target
Add `target` property to Drag&Drop interaction
2016-02-22 09:36:50 +01:00
Björn Harrtell
a546e09b96 Merge branch 'master' into set-multi 2016-02-22 09:30:25 +01:00
tsauerwein
1e8bbb0ae4 Add target property to drag&drop interaction 2016-02-22 09:25:30 +01:00
Andreas Hocevar
6c7d6817bd Merge pull request #4854 from ahocevar/fix-select-and-everything-that-relies-on-unmanaged-layers-and-skipped-features-this-time-for-real---hopefully
Always report skipped feature hits for the original layer
2016-02-22 09:23:28 +01:00
Tim Schaub
8e72eb8652 Merge pull request #4877 from openlayers/greenkeeper-eslint-2.2.0
Update eslint to version 2.2.0 🚀
2016-02-19 13:52:53 -07:00
greenkeeperio-bot
308e37a48e chore(package): update eslint to version 2.2.0
http://greenkeeper.io/
2016-02-19 11:02:24 -07:00
Frédéric Junod
82f6fb9e6d Merge pull request #4870 from fredj/gc
Reuse dragListenerKeys_ local variable
2016-02-19 15:54:29 +01:00
Petr Sloup
1d21f76ad3 Merge pull request #4721 from klokantech/raster-reproj-gutter
Fix reprojection of raster sources with gutter
2016-02-19 12:25:24 +01:00
Petr Sloup
59574da74c Fix reprojection of raster sources with gutter 2016-02-19 12:17:03 +01:00
Bart van den Eijnden
ccf47de448 Merge pull request #4874 from bartvde/wfst-empty-update
Assert we have a feature id
2016-02-19 10:01:56 +01:00
Bart van den Eijnden
84b418b5c6 Assert we have a feature id 2016-02-19 09:41:13 +01:00
Petr Sloup
7b8feaa48f Merge pull request #4869 from klokantech/improve-reproj-precision
Improve precision of ol.reproj.render
2016-02-19 09:14:32 +01:00
Frederic Junod
612280c676 Fix variable declaration in constructor 2016-02-18 16:38:09 +01:00
Frederic Junod
35579ab714 Reuse dragListenerKeys_ local variable
Reuse the array instead of recreating a new one.
2016-02-18 16:26:04 +01:00
Petr Sloup
83e251621a Improve precision of ol.reproj.render 2016-02-18 16:25:12 +01:00
Andreas Hocevar
6e7b130a45 Merge pull request #4866 from ahocevar/requestanimationframe-polyfill
Use requestAnimationFrame polyfill (for IE9)
2016-02-18 11:42:39 +01:00
Andreas Hocevar
69aa277848 Use requestAnimationFrame polyfill (for IE9) 2016-02-18 11:30:58 +01:00
Frédéric Junod
a9675576d3 Merge pull request #4863 from fredj/rm_goog.dom
Remove use of goog.dom.createElement
2016-02-18 11:07:23 +01:00
Frédéric Junod
38e43e018c Merge pull request #4864 from fredj/rm_goog.dom.getElementsByClass
Use querySelectorAll instead of goog.dom.getElementsByClass
2016-02-18 11:06:55 +01:00
Andreas Hocevar
7cc43d36ef Merge pull request #4597 from ahocevar/direct-render
Render tiles directly to the map canvas
2016-02-18 11:06:34 +01:00
Frederic Junod
9cb86df61c Use querySelectorAll instead of goog.dom.getElementsByClass 2016-02-18 10:03:38 +01:00
Frederic Junod
00fbb77c19 Remove use of goog.dom.createElement 2016-02-18 09:55:36 +01:00
Andreas Hocevar
2d2ebe0e12 Merge pull request #4862 from ahocevar/osgeo-badge
Add OSGeo badge
2016-02-18 09:53:59 +01:00
Andreas Hocevar
92da3629d7 Add OSGeo badge 2016-02-18 09:47:45 +01:00
Björn Harrtell
7822f5ce5d Consider multi in add/remove/toggle select logic 2016-02-17 13:18:06 +01:00
Björn Harrtell
f77480ec28 Add tests excercising the add/remove/toggle select logic with and without multi 2016-02-17 13:15:45 +01:00
Björn Harrtell
2d6ce527e2 Merge branch 'fix-select-and-everything-that-relies-on-unmanaged-layers-and-skipped-features-this-time-for-real---hopefully' into set-multi 2016-02-17 13:07:24 +01:00
Frédéric Junod
9baa296a49 Merge pull request #4845 from gberaudo/fix_geolocation_error_type
Fix geolocation error cast
2016-02-17 11:02:30 +01:00
Marc Jansen
f36c02b0b8 Merge pull request #4851 from marcjansen/rm-goog-isboolean
Don't use goog.isBoolean()
2016-02-17 10:58:09 +01:00
Andreas Hocevar
5bc00d8535 Continue passing null instead of unmanaged layer to forEachFeatureAtCoordinate 2016-02-17 08:59:45 +01:00
Andreas Hocevar
9f0fefd42d Hit-detect skipped features, but not on unmanaged layer 2016-02-17 00:54:31 +01:00
Marc Jansen
068960e4b2 Don't use goog.isBoolean() 2016-02-16 23:52:20 +01:00
Marc Jansen
6276bbce38 Merge pull request #4852 from marcjansen/rm-goog-isstring
Don't use goog.isString()
2016-02-16 23:51:22 +01:00
Marc Jansen
5e4e9100e4 Don't use goog.isString() 2016-02-16 23:37:38 +01:00
Marc Jansen
c836f97ec3 Merge pull request #4849 from openlayers/logo-doc-minor
Fix docs of LogoOptions.prototype.src
2016-02-16 16:46:27 +01:00
Marc Jansen
e8ed9c7e49 Fix docs of LogoOptions.src 2016-02-16 16:36:02 +01:00
Andreas Hocevar
bcf379cc8e Merge pull request #4794 from ahocevar/fixed-tileloading
Make tile loading count no longer depend on source count
2016-02-16 15:51:55 +01:00
Guillaume Beraudo
7e6115a763 Fix geolocation error cast
Despite the dispatchEvent method accepting a hash with a "target" property of
"undefined", closure may still require the "target" property to be
explicit.
2016-02-16 11:36:24 +01:00
Frédéric Junod
a5e463464a Merge pull request #4843 from fredj/goog.dom.getParentElement
Remove use of goog.dom.getParentElement
2016-02-16 08:35:27 +01:00
Frédéric Junod
126e065d77 Merge pull request #4839 from fredj/collection_template
Add template type to ol.Collection
2016-02-16 08:34:23 +01:00
Tim Schaub
1902d597ef Merge pull request #4847 from openlayers/greenkeeper-eslint-2.1.0
Update eslint to version 2.1.0 🚀
2016-02-15 16:50:52 -07:00
Tim Schaub
03761642ed Correct indentation 2016-02-15 16:39:56 -07:00
Andreas Hocevar
44c6972f31 Merge pull request #4632 from bjnsn/fill-color-overload
Overloading fill color (polygon or text) with CanvasPattern and CanvasGradient
2016-02-15 20:01:35 +01:00
greenkeeperio-bot
55d56d65bc chore(package): update eslint to version 2.1.0
http://greenkeeper.io/
2016-02-15 12:00:49 -07:00
Brett Johnson
7f02b63ccc Overloading fill color (polygon or text) with CanvasPattern and CanvasGradient. 2016-02-15 08:30:56 -08:00
Frederic Junod
25f5776d8e Remove use of goog.dom.getParentElement 2016-02-15 17:13:04 +01:00
Andreas Hocevar
952b99742e Add tests, remove unused code, encapsulate repeated code in functions 2016-02-15 17:00:06 +01:00
Andreas Hocevar
a109062b1f Rotate map canvas after composition 2016-02-15 17:00:06 +01:00
Frédéric Junod
aa508acde4 Merge pull request #4842 from fredj/rm_goog.dom.createDom
Remove use of goog.dom.createDom
2016-02-15 16:55:10 +01:00
Frederic Junod
296ec9799f Remove use of goog.dom.createDom 2016-02-15 16:40:07 +01:00
Frédéric Junod
34392b464c Merge pull request #4808 from fredj/type_cleanup
Type cleanup
2016-02-15 12:01:40 +01:00
Frédéric Junod
7431990f70 Merge pull request #4737 from fredj/dnd_projection
Use olx.format.ReadOptions in ol.interaction.DragAndDrop
2016-02-15 09:37:14 +01:00
Frederic Junod
e7c57ada95 Use olx.format.ReadOptions in ol.interaction.DragAndDrop
Don't reproject the geometries in ol.interaction.DragAndDrop; use
the `featureProjection` option in `format.readFeatures`
2016-02-15 09:26:00 +01:00
Frederic Junod
7003920163 Fix olx.source.XYZOptions#tileGrid type
The typedef is already correct
2016-02-15 09:25:01 +01:00
Frederic Junod
332d6e9d5c Add missing olx.source.XYZOptions#opaque property 2016-02-15 09:25:01 +01:00
Frederic Junod
95fd0e177f Fix olx.render.ToContextOptions#pixelRatio type
The typedef is already correct
2016-02-15 09:25:01 +01:00
Frederic Junod
cf083e4f42 Remove return value from olx.interaction.PointerOptions functions
handleDragEvent and handleMoveEvent functions do not return a boolean value.
The typedef is already correct.
2016-02-15 09:25:01 +01:00
Frederic Junod
2f3c25cb95 Fix olx.control.RotateOptions#label type
Use the same as the typedef, leftover from a096ec5
2016-02-15 09:25:01 +01:00
Frederic Junod
df977d50b6 Fix type cast in ol.layer.Base constructor
ol.layer.Base takes a olx.layer.BaseOptions not olx.layer.LayerOptions
2016-02-15 09:25:01 +01:00
Andreas Hocevar
ff07f3a385 Merge pull request #4830 from ahocevar/proj4-tests
Make sure window.proj4 is always restored in tests
2016-02-15 09:22:54 +01:00
Frederic Junod
0303604c37 Add template type to ol.Collection 2016-02-15 09:06:57 +01:00
Andreas Hocevar
27f1fb6fc6 Merge pull request #4838 from ahocevar/regex-instead-of-endswith
Use regular expression instead of String#endsWith() check
2016-02-14 23:24:36 +01:00
Andreas Hocevar
cd2dfc7f10 Use regular expression instead of String#endsWith() check 2016-02-14 23:15:15 +01:00
Andreas Hocevar
09517659b1 Merge pull request #4837 from openlayers/greenkeeper-metalsmith-layouts-1.5.4
Update metalsmith-layouts to version 1.5.4 🚀
2016-02-14 18:54:05 +01:00
Andreas Hocevar
c27b1e4e3b Merge pull request #4836 from ahocevar/ua-lowercase
Use lowercase for all user agent checks
2016-02-14 16:14:26 +01:00
greenkeeperio-bot
58416b9883 chore(package): update metalsmith-layouts to version 1.5.4
http://greenkeeper.io/
2016-02-14 07:42:11 -07:00
Andreas Hocevar
0432c863c7 Use lowercase for all user agent checks 2016-02-14 14:53:30 +01:00
Tim Schaub
2336bbf5ef Merge pull request #4833 from tschaub/linter-config
Upgrade linter and config.
2016-02-13 14:19:15 -07:00
Tim Schaub
160294e05d Upgrade linter and config 2016-02-13 14:07:50 -07:00
Tim Schaub
a11ab03b99 Merge pull request #4831 from jonataswalker/add-examples-header-nav
Add navigation header to examples page
2016-02-13 08:30:20 -07:00
jonataswalker
9dbf9541e9 Add navigation header to Examples page 2016-02-13 12:39:42 -02:00
Andreas Hocevar
27908edea1 Make sure window.proj4 is always restored in tests 2016-02-13 14:09:25 +01:00
Marc Jansen
d15992bfc2 Merge pull request #4824 from marcjansen/rm-goog-string-newlines
Don't use goog.string.newlines.*
2016-02-12 15:20:44 +01:00
Marc Jansen
f1fdfb7971 Don't use goog.string.newlines.* 2016-02-12 15:07:56 +01:00
Marc Jansen
726e5613b3 Merge pull request #4825 from marcjansen/rm-goog-string-isempty
Don't use goog.string.isEmpty
2016-02-12 15:05:46 +01:00
Marc Jansen
48ff0b90d3 Don't use goog.string.isEmpty 2016-02-12 14:12:44 +01:00
Andreas Hocevar
98b823c5fc Render tiles directly to the map canvas
This change removes the overhead of rendering tiles to an intermediate canvas.
2016-02-12 12:54:19 +01:00
Andreas Hocevar
557372203f Merge pull request #4823 from ahocevar/layers-not-required
Fix type for layers option on ol.interaction.Select
2016-02-12 12:53:44 +01:00
Andreas Hocevar
6fbe160159 Fix type for layers option on ol.interaction.Select 2016-02-12 12:42:38 +01:00
Frédéric Junod
d7e275a309 Merge pull request #4815 from fredj/synthetic_wrap
wrapX false in synthetic examples
2016-02-11 11:49:45 +01:00
Frédéric Junod
0704453aff Merge pull request #4810 from gberaudo/control_undefined_checks
Add checks for undefined in controls
2016-02-11 11:26:23 +01:00
Guillaume Beraudo
3e9683d88d Fix checks for undefined in zoomtoextentcontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo
4722d341af Fix checks for undefined in zoomslidercontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo
b53d74285b Fix checks for undefined in zoom control 2016-02-11 11:03:35 +01:00
Guillaume Beraudo
6c1d0f1bbe Fix checks for undefined in scaline control 2016-02-11 11:03:35 +01:00
Guillaume Beraudo
cf5006617c Fix checks for undefined in rotate control 2016-02-11 11:03:35 +01:00
Guillaume Beraudo
adb5b78cb6 Fix checks for undefined in overviewmapcontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo
6779ab5e29 Fix checks for undefined in mousepositioncontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo
a513754d25 Fix checks for undefined in fullscreencontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo
9703be932d Fix checks for undefined in attributioncontrol 2016-02-11 11:03:35 +01:00
Frédéric Junod
0493f3f5f8 Merge pull request #4787 from pfanguin/precision_coordinate_hdms
Add precision parameter for HDMS coordinate
2016-02-11 11:03:13 +01:00
Frederic Junod
a664dbb507 Set wrapX to false in synthetic examples 2016-02-11 09:34:38 +01:00
Frederic Junod
f3a3d34f71 Remove outdated performance results 2016-02-11 09:32:47 +01:00
pfanguin
b584a9aeb5 Add precision parameter for HDMS coordinate 2016-02-11 09:15:41 +01:00
Frédéric Junod
c621f8606b Merge pull request #4811 from fredj/style_struct
Make ol.style.Style a @struct
2016-02-11 08:33:03 +01:00
Frederic Junod
f7e20377ec Make ol.style.Style a @struct
And take into account that `styles` may be a style or an array of style.
2016-02-10 17:07:10 +01:00
Tim Schaub
a924908f12 Merge pull request #4800 from openlayers/greenkeeper-phantomjs-prebuilt-2.1.4
Update phantomjs-prebuilt to version 2.1.4 🚀
2016-02-06 18:20:37 -07:00
Frédéric Junod
2035bec7ad Merge pull request #4792 from fredj/snapinteraction_listen_key
Use ol.events.listen instead of ol.Observable#on
2016-02-06 19:01:55 +01:00
greenkeeperio-bot
42100e0ab1 chore(package): update phantomjs-prebuilt to version 2.1.4
http://greenkeeper.io/
2016-02-06 10:10:57 -07:00
Marc Jansen
00583e9b39 Merge pull request #4796 from marcjansen/rm-goog-isstring
Remove use of goog.isString()
2016-02-06 13:06:06 +01:00
Marc Jansen
efa82dccf9 Remove use of goog.isString() 2016-02-06 12:56:55 +01:00
Andreas Hocevar
057633c2c4 Merge pull request #4795 from ahocevar/goog-cleanup
Cleanup after goog.array, goog.object and goog.isDef removal
2016-02-05 21:38:57 +01:00
Andreas Hocevar
d0eb6322c3 Cleanup after goog.array, goog.object and goog.isDef removal 2016-02-05 14:52:52 +01:00
Andreas Hocevar
3f36e0967f Make tile loading count no longer depend on source count 2016-02-05 09:38:16 +01:00
Frederic Junod
a44e71aad1 Use ol.events.listen instead of ol.Observable#on
`ol.Observable#on` may return an array of `ol.events.Key`, `ol.events.listen` always
return a single `ol.events.Key`.
2016-02-04 17:24:29 +01:00
Frédéric Junod
57c5632de2 Merge pull request #4791 from fredj/unnecessary_cast
Remove unnecessary cast
2016-02-04 16:21:17 +01:00
Frederic Junod
8c6883db34 Remove unnecessary cast 2016-02-04 15:52:28 +01:00
Tim Schaub
ca5eaddfa0 Merge pull request #4778 from tschaub/no-goog-object
Remove use of goog.object.
2016-02-04 07:14:37 -07:00
Andreas Hocevar
0c23d9a7ff Keep track of tile source count 2016-02-04 06:54:45 -07:00
Tim Schaub
72ea0ecfd8 Remove remaining goog.object use from tests 2016-02-04 06:54:45 -07:00
Tim Schaub
d67f33bcd6 Remove use of goog.object.unsafeClone() 2016-02-04 06:54:44 -07:00
Tim Schaub
e2fe897811 Replace goog.object.getValues() with ol.object.getValues() 2016-02-04 06:54:44 -07:00
Tim Schaub
417dbf36c8 Remove use of goog.object.setIfUndefined() 2016-02-04 06:54:44 -07:00
Tim Schaub
fd394151fd Replace goog.object.clear() with ol.object.clear() 2016-02-04 06:54:44 -07:00
Tim Schaub
f38d8bf824 Remove use of goog.object.get() 2016-02-04 06:54:44 -07:00
Tim Schaub
8b9c393820 Remove use of goog.object.some() 2016-02-04 06:54:44 -07:00
Tim Schaub
8aecb3270c Replace goog.object.isEmpty() with ol.object.isEmpty() 2016-02-04 06:54:44 -07:00
Tim Schaub
0dce343d4f Remove use of goog.object.getCount() 2016-02-04 06:54:44 -07:00
Tim Schaub
1a9367228d Remove use of goog.object.contains() and findKey() 2016-02-04 06:54:44 -07:00
Tim Schaub
554887ae14 Remove use of goog.object.forEach() 2016-02-04 06:54:44 -07:00
Tim Schaub
3c0ef430db Use ol.object.assign() instead of goog.object.extend() 2016-02-04 06:54:43 -07:00
Tim Schaub
a74af66d5f Use ol.object.assign() instead of goog.object.clone() 2016-02-04 06:54:43 -07:00
Tim Schaub
619e070d80 Use ol.object.assign() in object.getPoperties() 2016-02-04 06:54:43 -07:00
Tim Schaub
3a4b504a5d Add polyfill for Object.assign() 2016-02-04 06:54:43 -07:00
Frédéric Junod
17a2466894 Merge pull request #4789 from fredj/use_ol.array
Use ol.array instead of goog.array
2016-02-04 14:38:34 +01:00
Frederic Junod
a2171124e1 Remove unneeded goog.array.ASSUME_NATIVE_FUNCTIONS define 2016-02-04 14:25:46 +01:00
Frederic Junod
49b210973e Use ol.array instead of goog.array 2016-02-04 14:21:26 +01:00
Frédéric Junod
aedbf45c8c Merge pull request #4788 from fredj/cleanup
Remove unnecessary newlines
2016-02-04 13:21:29 +01:00
Frederic Junod
c43de104ce Remove unnecessary newlines 2016-02-04 12:24:20 +01:00
Frédéric Junod
ff1f44773a Merge pull request #4783 from fredj/release-v3.13.1
Release v3.13.1
2016-02-04 08:27:35 +01:00
Tim Schaub
8444d066f5 Merge pull request #4731 from gberaudo/remove_unnecessary_casts
Remove all remaining unnecessary casts
2016-02-03 10:30:36 -07:00
Frederic Junod
f73dbc513b Update package version to 3.13.1 2016-02-03 17:04:10 +01:00
Frederic Junod
edb4f233b0 Changelog for v3.13.1 2016-02-03 17:03:28 +01:00
Guillaume Beraudo
a910ab626a Add test for URL template expansion 2016-02-03 16:54:29 +01:00
Andreas Hocevar
04db1c3e4d Expand urls before setting this.urls 2016-02-03 16:53:44 +01:00
Andreas Hocevar
b9b4778d05 Properly detect feature on unmanaged layer for toggle selection 2016-02-03 16:52:05 +01:00
Guillaume Beraudo
46fc1c2a1b Prevent unnecessary casts 2016-02-03 16:26:43 +01:00
Guillaume Beraudo
289e571fb0 Remove all remaining unnecessary casts
There is still such a cast in the goog library itself.
See https://github.com/google/closure-library/pull/637
2016-02-03 16:26:43 +01:00
Marc Jansen
473cbba26e Merge pull request #4776 from marcjansen/array-test-typo
Correct assertion message in ol.array.binarySearch-test
2016-02-03 14:57:44 +01:00
Marc Jansen
a29e7027ca Correct assertion message in binarySearch-test 2016-02-03 14:50:33 +01:00
Andreas Hocevar
00116b7c74 Merge pull request #4711 from ahocevar/no-goog-events
Removal of goog.events.*
2016-02-03 14:05:32 +01:00
Andreas Hocevar
a848321842 Merge pull request #4777 from gberaudo/expanded-urls
Fix source.UrlTile URL expansion
2016-02-03 13:03:37 +01:00
Guillaume Beraudo
42df157a04 Add test for URL template expansion 2016-02-03 12:49:12 +01:00
Andreas Hocevar
af1f2bdda8 Expand urls before setting this.urls 2016-02-03 12:49:12 +01:00
Andreas Hocevar
7a8d15fe47 Use more consistent variable names and reduce findListener_ calls 2016-02-03 11:19:38 +01:00
Tim Schaub
f3b97d6bef Use string instead of string|ol.events.EventType 2016-02-03 11:19:38 +01:00
Tim Schaub
f10c90bdba Simpler type for ol.events.Key
Instead of having `ol.events.Key` be a listener object or an array of listener objects, it should be less error prone to have it just be a single listener object.

To avoid using too many functions with multiple return types, the `ol.events.*` functions for registering and unregistering listeners no longer accept an array of event types (and only a single key is returned when registering).

To make it convenient for users to register multiple listeners at once, the `observable.on()` method accepts an array of event types.  Internally in the library, we should use the less risky `ol.events.listen()`.
2016-02-03 11:19:38 +01:00
Andreas Hocevar
78f44dcc8a Improve XHR and ol.net.jsonp result/failure handling 2016-02-03 11:19:38 +01:00
Tim Schaub
e48ab95735 Use originalEvent instead of browserEvent 2016-02-03 11:19:38 +01:00
Tim Schaub
c62e76ab67 Remove support for useCapture 2016-02-03 11:19:38 +01:00
Tim Schaub
80df1f5ae8 Move opt_useCapture arg to the end of the list 2016-02-03 11:19:38 +01:00
Andreas Hocevar
dc0393acff Add map tests for resize and animationDelay 2016-02-03 11:19:38 +01:00
Andreas Hocevar
73f5e11039 Add tests for ol.control.ZoomSlider 2016-02-03 11:19:38 +01:00
Andreas Hocevar
ac1d7572e4 Add tests for scroll zoom 2016-02-03 11:19:38 +01:00
Andreas Hocevar
ec6f2e575b Add tests for keyboard pan and zoom 2016-02-03 11:19:38 +01:00
Andreas Hocevar
8b171d3ca6 Add tests for file dragging 2016-02-03 11:19:38 +01:00
Andreas Hocevar
136c8af878 Add tests and documentation for ol.net.jsonp
ol.net.Jsonp was renamed to ol.net.jsonp, because it is not a constructor.
2016-02-03 11:19:38 +01:00
Andreas Hocevar
8d0ef13505 Add tests and documentation for goog.events.* 2016-02-03 11:19:38 +01:00
Andreas Hocevar
cf4556f115 Add tests and documentation for ol.events.Event 2016-02-03 11:19:38 +01:00
Andreas Hocevar
5ba8b13ccf Add tests and documentation of ol.events.EventTarget 2016-02-03 11:19:38 +01:00
Andreas Hocevar
c51d717657 Refactor event manager to remove memory leaks 2016-02-03 11:19:38 +01:00
Andreas Hocevar
d7497f9686 Always provide useCapture and async args to browser 2016-02-03 11:19:38 +01:00
Andreas Hocevar
f35d0106b8 Remove goog.net.* and goog.async.AnimationDelay 2016-02-03 11:19:38 +01:00
Andreas Hocevar
2b451e7893 Remove goog.dom.ViewportSizeMonitor 2016-02-03 11:19:38 +01:00
Andreas Hocevar
7e27ba1d42 Remove goog.fx.Dragger 2016-02-03 11:19:38 +01:00
Andreas Hocevar
6ac3f30c8f Remove goog.events.MouseWheelEvent and goog.events.MouseWheelHandler 2016-02-03 11:19:38 +01:00
Andreas Hocevar
1a6daa297e Remove goog.events.KeyHandler 2016-02-03 11:19:38 +01:00
Andreas Hocevar
0f216659f9 Remove goog.fs.FileReader and goog.events.FileDropHandler 2016-02-03 11:19:38 +01:00
Andreas Hocevar
3f2d79b7fe Replace goog.events.Event/EventTarget system with our own
This also removes goog.events.listen, goog.events.unlisten,
goog.events.unlistenByKey and goog.events.BrowserEvent.
2016-02-03 11:19:38 +01:00
Frédéric Junod
d87482e415 Merge pull request #4730 from fredj/geolocation_error_doc
Document ol.Geolocation error event
2016-02-03 11:11:23 +01:00
Bart van den Eijnden
9f2e2cd1e8 Merge pull request #4772 from adube/fix-namespaceuri
Use node.setAttribute to set namespaceURI of a node
2016-02-03 08:55:25 +01:00
Tim Schaub
cf7d30d41c Merge pull request #4774 from openlayers/greenkeeper-graceful-fs-4.1.3
Update graceful-fs to version 4.1.3 🚀
2016-02-02 21:58:17 -07:00
Tim Schaub
e5428a0738 Merge pull request #4680 from nicholas-l/removeGoogArray
Remove goog array.
2016-02-02 21:51:39 -07:00
Andreas Hocevar
ebc98ec1bb Address TODOs
To make sure that our binarySearch implementation meets the requirements of
the library, I added more tests for ol.geom.flat.interpolate.lineString, only
to find out that it does not handle line strings with repeated vertices
properly, regardless of what binarySearch implementation is used.
2016-02-03 11:41:41 +13:00
Nicholas L
1771df0109 Change binary search to return the lowest position 2016-02-03 11:41:41 +13:00
Marc Jansen
6586c7f007 Add tests stubs 2016-02-03 11:41:41 +13:00
Marc Jansen
665fdbdc2b Add tests for ol.array.extend 2016-02-03 11:41:41 +13:00
Marc Jansen
57f4d8cefb Add tests for ol.array.equals 2016-02-03 11:41:40 +13:00
Marc Jansen
31e1fbaf40 Add tests for ol.array.binarySearch 2016-02-03 11:41:40 +13:00
Marc Jansen
434349cb55 Check length of arrays when checking equality 2016-02-03 11:41:40 +13:00
Marc Jansen
4b17721a33 Sort tested methods alphabetically 2016-02-03 11:41:40 +13:00
Andreas Hocevar
2fb33ba940 Type fixes and simplifications 2016-02-03 11:41:40 +13:00
Nicholas L
d81af7594c Update JSDocs/functions after review 2016-02-03 11:41:40 +13:00
Nicholas L
e08a88b76c Remove low and high from binarysearch, use numberSafeCompareFunction 2016-02-03 11:41:40 +13:00
Nicholas L
ef0e95847f Remove goog.array.binarySearch 2016-02-03 11:41:40 +13:00
Nicholas L
9bcf624382 Forgot to remove a require 2016-02-03 11:41:39 +13:00
Nicholas L
5bd3fb494c Remove goog.array.repeat 2016-02-03 11:41:39 +13:00
Nicholas L
ab793a58b6 Remove goog.array.isSorted 2016-02-03 11:41:39 +13:00
Nicholas L
9b492f49c7 Remove goog.array.findIndex 2016-02-03 11:41:39 +13:00
Nicholas L
d820b54443 Remove goog.array.equals and goog.array.stableSort 2016-02-03 11:41:39 +13:00
Nicholas L
640c59d9af Remove goog.array.find 2016-02-03 11:41:39 +13:00
Nicholas L
d743ada8fd Remove goog.array.remove 2016-02-03 11:41:39 +13:00
Nicholas L
d1b6a17773 Remove goog.array.extend 2016-02-03 11:41:38 +13:00
Nicholas L
1089934486 Remove goog.array.removeAt 2016-02-03 11:41:38 +13:00
Nicholas L
0d5168ca0b Remove goog.array.insertAt 2016-02-03 11:41:38 +13:00
Nicholas L
39ead1bb49 Remove use of goog.array.flatten 2016-02-03 11:41:38 +13:00
greenkeeperio-bot
29a644d48c chore(package): update graceful-fs to version 4.1.3
http://greenkeeper.io/
2016-02-02 14:47:26 -07:00
Alexandre Dubé
3264d9a6ea Use node.setAttribute to set namespaceURI 2016-02-02 13:36:24 -05:00
Frédéric Junod
21b740ccf9 Merge pull request #4771 from fredj/nbsp
Use innerHTML instead of innerText to populate the status element
2016-02-02 17:21:14 +01:00
Frederic Junod
6c2302f6d3 Use innerHTML instead of innerText to populate the status element 2016-02-02 17:12:17 +01:00
Frédéric Junod
a1fbe2428f Merge pull request #4769 from fredj/osm_opaque
Add opaque option to olx.source.OSMOptions
2016-02-02 17:04:17 +01:00
Frederic Junod
7b202c4112 Add opaque option for OpenSeaMap source 2016-02-02 13:45:07 +01:00
Frederic Junod
44e17c440d Remove crossOrigin null option for OpenSeaMap source 2016-02-02 13:44:56 +01:00
Frederic Junod
d8330d56a0 Add opaque option to olx.source.OSMOptions 2016-02-02 13:42:05 +01:00
Frederic Junod
c989de3175 Document ol.Geolocation error event 2016-02-02 11:48:47 +01:00
Andreas Hocevar
39b9ba87fc Merge pull request #4736 from ahocevar/fix-select
Properly detect feature on unmanaged layer for toggle selection
2016-02-02 08:58:16 +01:00
Andreas Hocevar
b6fa480c97 Merge pull request #4756 from adube/fix-vector-tile-override
Remove VectorTile getSource re-definition of return value
2016-01-31 07:39:39 +01:00
Andreas Hocevar
ecb2a42900 Properly detect feature on unmanaged layer for toggle selection 2016-01-30 18:13:48 +01:00
Andreas Hocevar
dad92e723c Merge pull request #4733 from ahocevar/fix-scale
Avoid rendering too big and too small images for vector tiles
2016-01-30 17:51:35 +01:00
Tim Schaub
ae74ff1db7 Merge pull request #4754 from tschaub/upgrade-mocha
Upgrade to mocha@2.4.5.
2016-01-29 07:11:00 -07:00
Alexandre Dubé
0a51e4ac32 Remove VectorTile getSource re-definition of return value 2016-01-29 08:33:39 -05:00
Tim Schaub
80f6fb5802 Merge pull request #4750 from openlayers/greenkeeper-metalsmith-layouts-1.4.4
Update metalsmith-layouts to version 1.4.4 🚀
2016-01-28 17:57:20 -07:00
Tim Schaub
9cda669b3b Upgrade to mocha@2.4.5 2016-01-28 17:46:50 -07:00
Tim Schaub
8b64e9b3ea Merge pull request #4751 from openlayers/greenkeeper-phantomjs-2.1.3
Update phantomjs to version 2.1.3 🚀
2016-01-28 11:40:03 -07:00
Tim Schaub
950ce4c88e Merge pull request #4741 from openlayers/check-phantom-version
Report on installed versions in Travis.
2016-01-28 09:28:07 -07:00
Tim Schaub
f67a52d9ef Merge pull request #4742 from tschaub/update-eslint
Upgrade to eslint@2.0.0-beta.2.
2016-01-28 09:26:56 -07:00
Tim Schaub
6f525bfd2e Use new package name 2016-01-28 09:26:23 -07:00
greenkeeperio-bot
552d77f041 chore(package): update phantomjs to version 2.1.3
http://greenkeeper.io/
2016-01-27 21:54:47 -07:00
Tim Schaub
474fd8d47e Merge pull request #4746 from tschaub/roll-back-mocha
Downgrade to mocha@2.3.4.
2016-01-27 15:41:55 -07:00
greenkeeperio-bot
5e6b4e55c5 chore(package): update metalsmith-layouts to version 1.4.4
http://greenkeeper.io/
2016-01-27 14:03:59 -07:00
Tim Schaub
10c6d86d13 Merge pull request #4740 from openlayers/greenkeeper-fs-extra-0.26.5
Update fs-extra to version 0.26.5 🚀
2016-01-27 13:36:08 -07:00
Tim Schaub
49a5c832ea Report dependency versions 2016-01-27 13:33:53 -07:00
Tim Schaub
415ac07a60 Downgrade to mocha@2.3.4 2016-01-27 11:11:01 -07:00
Tim Schaub
aff41cfcc0 Upgrade to eslint@2.0.0-beta.2 2016-01-27 09:35:01 -07:00
greenkeeperio-bot
aca849ffb1 chore(package): update fs-extra to version 0.26.5
http://greenkeeper.io/
2016-01-27 08:54:37 -07:00
Frédéric Junod
a9cbea1563 Merge pull request #4738 from fredj/more_tests
Add unit tests for ol.control.Rotate and ol.control.Zoom
2016-01-27 16:46:25 +01:00
Frederic Junod
2b523fff7c Add tests for ol.control.Zoom 2016-01-27 15:46:06 +01:00
Frederic Junod
e53d8226db Add tests for ol.control.Rotate 2016-01-27 15:46:06 +01:00
Petr Sloup
9562756eeb Merge pull request #4718 from klokantech/raster-reproj-tile-error
Improve raster reprojection behavior when tiles fail to load
2016-01-27 15:05:36 +01:00
Petr Sloup
a05c932973 Improve raster reprojection behavior when tiles fail to load 2016-01-27 14:56:18 +01:00
Frédéric Junod
398a292053 Merge pull request #4734 from openlayers/greenkeeper-sinon-1.17.3
Update sinon to version 1.17.3 🚀
2016-01-27 14:18:39 +01:00
Frédéric Junod
551a2edf4b Merge pull request #4726 from openlayers/greenkeeper-mocha-2.4.2
Update mocha to version 2.4.2 🚀
2016-01-27 14:18:19 +01:00
Andreas Hocevar
9bf2242626 Merge pull request #4725 from ahocevar/vectortile-projection
Untangle vector tile feature reprojection
2016-01-27 14:12:16 +01:00
Frédéric Junod
be3e985344 Merge pull request #4735 from fredj/defaultDataProjection_jsdoc
Add default value for defaultDataProjection
2016-01-27 13:59:57 +01:00
Frédéric Junod
58abb9b165 Merge pull request #4732 from fredj/see_jsdoc
Fix '@see' link in src/ol/deviceorientation.js
2016-01-27 13:59:49 +01:00
Frederic Junod
98da9f1800 Add default value for defaultDataProjection 2016-01-27 13:39:21 +01:00
Andreas Hocevar
44764ec1d1 Use rendered tile size limit to avoid big images
When using tile sets with a high tilePixelRatio, the maximum pixel size can
trouble the browser. Instead, we now use replay rendering by tile size limits
instead of resolution ratio limits.
2016-01-27 13:38:56 +01:00
greenkeeperio-bot
f4582d2f46 chore(package): update sinon to version 1.17.3
http://greenkeeper.io/
2016-01-27 04:51:59 -07:00
Frederic Junod
e674255ebe Fix '@see' link in src/ol/deviceorientation.js 2016-01-27 12:31:08 +01:00
Andreas Hocevar
7b78c215ae Merge pull request #4720 from ahocevar/tileloadfunction-docs
Improve tileLoadFunction docs
2016-01-27 10:32:12 +01:00
Andreas Hocevar
52c6739b95 Improve tileLoadFunction docs 2016-01-27 10:17:46 +01:00
Andreas Hocevar
6290fb3227 Merge pull request #4717 from openlayers/greenkeeper-phantomjs-2.1.2
Update phantomjs to version 2.1.2 🚀
2016-01-27 10:08:06 +01:00
Andreas Hocevar
ebcccd2cf7 Merge pull request #4727 from nicholas-l/phantomjs2
Fix phantomjs
2016-01-27 09:56:47 +01:00
Nicholas L
73b6adba49 Remove polyfill and incorrect dependency 2016-01-27 21:52:50 +13:00
Nicholas L
d8631c35eb Fix phantomjs 2016-01-27 20:36:10 +13:00
greenkeeperio-bot
4c2b17a42e chore(package): update mocha to version 2.4.2
http://greenkeeper.io/
2016-01-26 17:47:01 -07:00
Andreas Hocevar
483376deb2 Untangle vector tile feature reprojection 2016-01-27 00:42:51 +01:00
Marc Jansen
d091f3f835 Merge pull request #4679 from gaf-ag/fullscreentarget
Add a source option for the full screen control
2016-01-26 17:37:27 +01:00
Yashar Moradi
299a62804c source option added to ol.control.FullScreen including an example 2016-01-26 09:27:39 +01:00
greenkeeperio-bot
98338565d0 chore(package): update phantomjs to version 2.1.2
http://greenkeeper.io/
2016-01-25 15:58:53 -07:00
Frédéric Junod
682e65fead Merge pull request #4712 from fredj/jsdoc_return
Add missing JSDoc tags
2016-01-25 15:00:19 +01:00
Frederic Junod
b7cbd20b6f Add missing JSDoc tags 2016-01-25 14:37:45 +01:00
Bart van den Eijnden
0b70124cdd Merge pull request #4700 from adube/feature-wmsgetfeatureinfo-layername
Add 'layers' option for WMSGetFeatureInfo format
2016-01-21 17:05:00 +01:00
Alexandre Dubé
906a132e89 Add layerName option for WMSGetFeatureInfo format
This option allows the format to read only features of a
given layer. This is useful if you wish to make a single
query to a WMS server with multiple layers in it.
2016-01-21 10:54:26 -05:00
Frédéric Junod
b9c3981261 Merge pull request #4705 from gberaudo/remaining_source_state_casts
Remove remaining unnecessary ol.source.State casts
2016-01-21 16:34:20 +01:00
Guillaume Beraudo
9132d91f66 Remove remaining unnecessary ol.source.State casts 2016-01-21 16:05:06 +01:00
Tim Schaub
f2c1fd207e Merge pull request #4703 from gberaudo/source_options_fixes
Source options fixes.
2016-01-21 07:54:26 -07:00
Guillaume Beraudo
d32d6e6851 Simplify source state option
The ol.source.State is already a string.
Removed extra union and cast.
2016-01-21 14:40:58 +01:00
Guillaume Beraudo
f0e396678c Add missing cacheSize attribute 2016-01-21 14:39:42 +01:00
Frédéric Junod
7787bc2c07 Merge pull request #4698 from fredj/regular_shape_rotate_with_view
Add rotateWithView option to ol.style.RegularShape
2016-01-21 11:20:04 +01:00
Frederic Junod
aec4e468e3 Add rotateWithView option to ol.style.RegularShape 2016-01-21 11:09:20 +01:00
Andreas Hocevar
7d168cb6e2 Merge pull request #4697 from gberaudo/bind_tileurl_function
Bind tileUrlFunction to the source
2016-01-20 22:10:47 +01:00
Guillaume Beraudo
d2cc04d770 Bind tileUrlFunction to the source
In order to have the function returned by ol.source.UrlTile#getTileUrlFunction()
to return a url even when executed outside the context of the source, then it
should be bound to the source.
2016-01-20 17:54:32 +01:00
Frédéric Junod
ccdb189e77 Merge pull request #4693 from openlayers/release-v3.13.0
Release v3.13.0
2016-01-20 15:35:16 +01:00
Frederic Junod
b5e7a2673d Update package version to 3.13.0 2016-01-20 14:59:08 +01:00
Frederic Junod
e782e1262c Changelog for v3.13.0 2016-01-20 14:59:08 +01:00
Frédéric Junod
2975b92fea Merge pull request #4694 from fredj/lint_errors
Fix eslint errors in wms-time example
2016-01-20 14:53:37 +01:00
Frederic Junod
031c31d367 Fix no-use-before-define eslint error 2016-01-20 14:43:27 +01:00
Frederic Junod
30d8d6efd7 Remove unused variable 2016-01-20 14:43:10 +01:00
Bart van den Eijnden
268298d2d8 Merge pull request #4527 from bartvde/wmstime_new
Add support for smooth TileWMS dimensions
2016-01-20 14:14:16 +01:00
Tim Schaub
10837fb91a Merge pull request #4691 from tschaub/bing
Updated Bing Maps key.
2016-01-20 06:01:49 -07:00
Andreas Hocevar
7277e295e6 Merge pull request #4673 from ahocevar/fixed-tileurlfunction
Respect fixed tile url functions when setting url(s)
2016-01-20 13:28:32 +01:00
Tim Schaub
85ead5486c New Bing Maps key 2016-01-19 14:08:51 -07:00
Frédéric Junod
b134b080db Merge pull request #4689 from openlayers/revert-4581-no-render-on-interaction-start
Revert "Do not render in handleDownEvent"
2016-01-19 15:48:19 +01:00
Frédéric Junod
eb395894e1 Revert "Do not render in handleDownEvent" 2016-01-19 15:26:10 +01:00
Andreas Hocevar
86c7f950d6 Add setUrl tests 2016-01-19 13:40:47 +01:00
Andreas Hocevar
4b441dc503 Respect fixed tile url functions when setting url(s) 2016-01-19 13:40:47 +01:00
Marc Jansen
1ad3d4e764 Merge pull request #4688 from marcjansen/focus-map
Give map a focus-outline in accessible-example
2016-01-19 11:58:12 +01:00
Marc Jansen
f0b0e00b06 Give map a focus-outline in accessible-example 2016-01-19 11:16:20 +01:00
Frédéric Junod
4dbc4c5bfd Merge pull request #4642 from alexbrault/colour-ex
Move the icon style color to its own example
2016-01-19 08:43:21 +01:00
Frédéric Junod
d8296e5dac Merge pull request #4685 from fredj/rm_check-whitespace
Remove bin/check-whitespace.py
2016-01-19 08:37:29 +01:00
Alexandre Brault
2d151fb353 Remove popup code from color example 2016-01-18 22:40:04 -05:00
Alexandre Brault
341ba5b859 Move the icon style color to its own example 2016-01-18 22:36:34 -05:00
Tim Schaub
308565f8f4 Merge pull request #4684 from openlayers/greenkeeper-eslint-config-openlayers-3.0.0
Update eslint-config-openlayers to version 3.0.0 🚀
2016-01-18 10:21:33 -07:00
Frederic Junod
5b98066d16 Remove bin/check-whitespace.py 2016-01-18 16:50:16 +01:00
greenkeeperio-bot
93ed1ee50a chore(package): update eslint-config-openlayers to version 3.0.0
http://greenkeeper.io/
2016-01-18 08:46:43 -07:00
Andreas Hocevar
5961431505 Merge pull request #4677 from ahocevar/pixel-proj
Make pixel projection handling work in compiled mode
2016-01-15 22:06:42 +01:00
Andreas Hocevar
d6a8c9465e Make pixel projection handling work in compiled mode
The compiler seems to have trouble with functions that can run with
different 'this' types. By moving the units handling to the callback, this
issue can be avoided.
2016-01-15 20:59:16 +01:00
Tim Schaub
dc820fced4 Merge pull request #4639 from nicholas-l/googBind
Remove use of goog.bind and use ES5 .bind.
2016-01-15 09:41:11 -08:00
Nicholas L
db3ad70a3d Remove use of goog.bind and use ES5 .bind 2016-01-15 22:10:55 +13:00
Frédéric Junod
5b40190cbe Merge pull request #4655 from openlayers/greenkeeper-browserify-13.0.0
Update browserify to version 13.0.0 🚀
2016-01-13 13:48:52 +01:00
Andreas Hocevar
69ad741dd4 Merge pull request #4666 from WeaveTeam/dragbox-dragevent-pr
Add a 'boxdrag' event to ol.interaction.DragBox. Resolves #4563 .
2016-01-13 12:43:26 +01:00
Frédéric Junod
ffb9674243 Merge pull request #4669 from fredj/eslint_contributing
Remove reference to Closure Linter in CONTRIBUTING.md
2016-01-13 12:19:48 +01:00
Frederic Junod
22dab733f0 Remove reference to Closure Linter in CONTRIBUTING.md
See #4602
2016-01-13 12:01:29 +01:00
Frédéric Junod
ace3ac4f1d Merge pull request #4665 from openlayers/greenkeeper-istanbul-0.4.2
Update istanbul to version 0.4.2 🚀
2016-01-13 08:47:15 +01:00
greenkeeperio-bot
3a368809fb chore(package): update istanbul to version 0.4.2
http://greenkeeper.io/
2016-01-13 08:35:28 +01:00
Frédéric Junod
50daa17c2a Merge pull request #4663 from openlayers/greenkeeper-glob-6.0.4
Update glob to version 6.0.4 🚀
2016-01-13 08:32:44 +01:00
Petr Sloup
cd308e47d2 Merge pull request #4667 from klokantech/mapquest-opaque-fix
Fix rendering of transparent MapQuest layer type
2016-01-13 07:01:30 +01:00
Petr Sloup
5dfb4199ca Fix rendering of transparent MapQuest layer type 2016-01-12 23:23:16 +01:00
Philip "digitalfox" Kovac
83e173d91f Add a 'boxdrag' event to ol.interaction.DragBox. Resolves #4563 . 2016-01-12 17:16:56 -05:00
Marc Jansen
fdc2f9d97e Merge pull request #4661 from gaf-ag/devdocnodejs
Fixes #4654 Developer Documentation Updated
2016-01-12 18:22:08 +01:00
Yashar Moradi
f725a46220 Fixes #4654 Metalsmith v2.0 and above uses generators which are not supported out of the box by node.js 0.12.x and below. 2016-01-12 18:00:16 +01:00
Frédéric Junod
08e51d1c8e Merge pull request #4658 from openlayers/greenkeeper-jquery-2.2.0
Update jquery to version 2.2.0 🚀
2016-01-12 16:09:50 +01:00
Bart van den Eijnden
3f5a8085b6 Merge pull request #4659 from bartvde/drawimage-safari-fix
Make sure icons show up in Safari
2016-01-12 16:07:16 +01:00
Bart van den Eijnden
4ef1f5e63f Make sure icons show up in Safari
Make sure that drawImage calls don't exceed source image dimensions.
2016-01-12 15:57:11 +01:00
Frédéric Junod
936cd6a028 Merge pull request #4652 from fredj/simplify_fullscreen
Use map.getTargetElement instead of map.getTarget
2016-01-12 11:48:14 +01:00
Frederic Junod
3df9ae8c5e Use map.getTargetElement instead of map.getTarget 2016-01-12 11:36:07 +01:00
greenkeeperio-bot
63b17022f6 chore(package): update browserify to version 13.0.0
http://greenkeeper.io/
2016-01-12 02:19:02 -08:00
greenkeeperio-bot
d2ecb1e819 chore(package): update glob to version 6.0.4
http://greenkeeper.io/
2016-01-12 02:08:16 -08:00
greenkeeperio-bot
1757fa973b chore(package): update jquery to version 2.2.0
http://greenkeeper.io/
2016-01-12 01:58:35 -08:00
Petr Sloup
dccf867308 Merge pull request #4649 from klokantech/getopaque-doc-fix
Missing parameter description for ol.source.Tile#getOpaque
2016-01-12 09:27:41 +01:00
Petr Sloup
3607cddcca Missing parameter description for ol.source.Tile#getOpaque 2016-01-12 09:16:40 +01:00
Tim Schaub
c9e2b384e7 Merge pull request #4602 from tschaub/eslint
Use ESLint.
2016-01-12 00:09:15 -08:00
Petr Sloup
11bd31c15b Merge pull request #4628 from klokantech/opaque-reprojection-fix
Fix for reprojecting opaque tile sources
2016-01-12 09:06:14 +01:00
Petr Sloup
2c3ed38714 Fix for reprojecting opaque tile sources 2016-01-12 08:58:16 +01:00
Frédéric Junod
5504916b80 Merge pull request #4618 from openlayers/greenkeeper-resemblejs-2.1.0
Update resemblejs to version 2.1.0 🚀
2016-01-12 08:56:42 +01:00
Tim Schaub
fd77ab64ad Use eslint@2.0.0-beta.1 2016-01-11 23:37:29 -08:00
Tim Schaub
13a981c94b Fewer blank lines 2016-01-11 22:03:23 -08:00
Tim Schaub
8d80924ba8 Remove gjslint.py 2016-01-11 22:03:12 -08:00
Tim Schaub
0a5d15db50 Remove jshint 2016-01-11 18:58:02 -08:00
Tim Schaub
8f0ecc4df2 Run ESLint with make lint 2016-01-11 18:56:09 -08:00
Tim Schaub
534124ec2f Lint free rendering tests 2016-01-11 18:56:09 -08:00
Tim Schaub
8c38d22b60 Lint free examples 2016-01-11 18:56:09 -08:00
Tim Schaub
0555bb081a Test indentation 2016-01-11 18:56:09 -08:00
Tim Schaub
3cf8618fc7 Prefer single line assignment to 80 character limit 2016-01-11 18:56:08 -08:00
Tim Schaub
59a66c7aaa Remaining valid-jsdoc corrections 2016-01-11 18:56:08 -08:00
Tim Schaub
e6f6dcc230 Partial valid-jsdoc corrections 2016-01-11 18:56:08 -08:00
Tim Schaub
b1d00af58b More globals 2016-01-11 18:56:08 -08:00
Tim Schaub
fd0e2436da Always provide a default case for switch 2016-01-11 18:56:08 -08:00
Tim Schaub
932bf4deb3 Explicitly mark fall-throughs 2016-01-11 18:56:08 -08:00
Tim Schaub
54df314936 Consistent curly brace style 2016-01-11 18:56:08 -08:00
Tim Schaub
ec10b661f3 Use block scoping 2016-01-11 18:56:08 -08:00
Tim Schaub
29a723166d No empty blocks 2016-01-11 18:56:07 -08:00
Tim Schaub
4e0cddcb41 Lint-free tests 2016-01-11 18:56:07 -08:00
Tim Schaub
cca86886f1 Define variables before use 2016-01-11 18:56:07 -08:00
Tim Schaub
3602a37c96 Remove this commit with ESLint 2.0 2016-01-11 18:56:07 -08:00
Tim Schaub
f627f7679b Valid JSDoc annotations 2016-01-11 18:56:07 -08:00
Tim Schaub
154b8babc4 Allow console use in Phantom 2016-01-11 18:56:07 -08:00
Tim Schaub
3f23dfb87b Indentation 2016-01-11 18:56:07 -08:00
Tim Schaub
aac1d921c7 Unused variables 2016-01-11 18:56:07 -08:00
Tim Schaub
179b241aec Declare variables before assignment 2016-01-11 18:56:07 -08:00
Tim Schaub
f0fc4d4e73 Curly brace spacing 2016-01-11 18:56:06 -08:00
Tim Schaub
9ae748408a Statement inside curly braces on its own line 2016-01-11 18:56:06 -08:00
Tim Schaub
8ab5a338b5 Unused origins 2016-01-11 18:56:06 -08:00
Tim Schaub
227c984d89 More test globals 2016-01-11 18:56:06 -08:00
Tim Schaub
abd0d66e66 Lint-free tileurlfunction.test.js 2016-01-11 18:56:06 -08:00
Tim Schaub
23eebf396c Lint-free view.test.js 2016-01-11 18:56:06 -08:00
Tim Schaub
98dedfd2ff Custom lint configuration for test directory 2016-01-11 18:56:06 -08:00
Tim Schaub
681948e71c Lint-free test-extensions.js 2016-01-11 18:56:06 -08:00
Tim Schaub
b3578325cb Lint free tasks 2016-01-11 18:56:06 -08:00
Tim Schaub
b0a70b0ca6 Correcting invalid JSDoc blocks 2016-01-11 18:56:05 -08:00
Tim Schaub
38d0e98ff5 Whitespace 2016-01-11 18:56:05 -08:00
Tim Schaub
23f3e21ba4 Unused variables 2016-01-11 18:56:05 -08:00
Tim Schaub
1d65bab158 Dangling commas 2016-01-11 18:56:05 -08:00
Tim Schaub
80f9a7c5a5 Use ESLint 2016-01-11 18:56:05 -08:00
Andreas Hocevar
c2f90f21db Merge pull request #4647 from ahocevar/snap-round-to-pixel
Proper rounding for possibly negative numbers
2016-01-11 16:34:24 +01:00
Andreas Hocevar
a3147c5d08 Proper rounding for possibly negative numbers 2016-01-11 16:25:09 +01:00
Tim Schaub
7222af3284 Merge pull request #4641 from tschaub/icon
Remove extra options from icon example.
2016-01-11 05:14:04 -07:00
Andreas Hocevar
d916e8ccaf Merge pull request #4629 from ahocevar/scaleline
Simplify scaleline calculation
2016-01-11 10:12:53 +01:00
Tim Schaub
5001272a2e Remove extra options from icon example 2016-01-10 17:02:02 -07:00
Andreas Hocevar
d05b519f2f Merge pull request #4457 from alexbrault/colour-icon
Add color option to ol.style.Icon
2016-01-10 23:19:54 +01:00
Andreas Hocevar
0f8373dd2d Merge pull request #4638 from ahocevar/proj-extent
Do not rely on projection extent
2016-01-08 10:44:59 +01:00
Andreas Hocevar
dfb534f1d4 Do not rely on projection extent 2016-01-08 10:25:56 +01:00
Tim Schaub
7a644730a5 Merge pull request #4635 from openlayers/greenkeeper-async-1.5.2
Update async to version 1.5.2 🚀
2016-01-07 18:16:20 -07:00
greenkeeperio-bot
4066d38e4a chore(package): update async to version 1.5.2
http://greenkeeper.io/
2016-01-07 17:08:46 -07:00
Andreas Hocevar
393a95e41c Properly handle modulo of negative numbers 2016-01-07 20:19:40 +01:00
Andreas Hocevar
7a8451adeb Add example with US scale line and reprojection 2016-01-07 20:14:45 +01:00
Andreas Hocevar
b8fc917016 Do not depend on units for resolutions calculation 2016-01-07 20:14:44 +01:00
Andreas Hocevar
6b8da1237c Simplify scaleline calculation 2016-01-07 20:14:44 +01:00
Andreas Hocevar
5c49e399ce Merge pull request #4581 from ahocevar/no-render-on-interaction-start
Do not render in handleDownEvent
2016-01-07 18:24:39 +01:00
Frédéric Junod
32dadc008b Merge pull request #4541 from fredj/linestring_interpolated_point
Add new ol.geom.LineString#getCoordinateAt function
2016-01-07 18:02:21 +01:00
Frédéric Junod
aff6449c74 Merge pull request #4489 from openlayers/greenkeeper-phantomjs-1.9.19
Update phantomjs to version 1.9.19 🚀
2016-01-07 15:34:34 +01:00
Petr Sloup
2237dc8e72 Merge pull request #4625 from klokantech/tilejson-xhr-default
Use XHR by default to load TileJSON in ol.source.TileJSON
2016-01-07 15:30:10 +01:00
greenkeeperio-bot
a4b34c16d7 chore(package): update phantomjs to version 1.9.19
http://greenkeeper.io/
2016-01-07 15:14:16 +01:00
Frederic Junod
e336947e8d Add new ol.geom.LineString#getCoordinateAt function 2016-01-07 11:32:25 +01:00
Petr Sloup
bc0d783f50 Use XHR by default to load TileJSON in ol.source.TileJSON 2016-01-07 09:19:23 +01:00
Tim Schaub
4ba443e829 Merge pull request #4622 from openlayers/greenkeeper-fs-extra-0.26.4
Update fs-extra to version 0.26.4 🚀
2016-01-06 12:48:02 -07:00
Andreas Hocevar
3d8adaab67 Merge pull request #4630 from ahocevar/meters-per-unit
Simplify meters per unit handling
2016-01-06 14:06:43 +01:00
Andreas Hocevar
24f8cba0a1 Simplify meters per unit handling 2016-01-06 13:53:55 +01:00
Frédéric Junod
607d8ad154 Merge pull request #4490 from openlayers/greenkeeper-istanbul-0.4.1
Update istanbul to version 0.4.1 🚀
2016-01-06 12:35:00 +01:00
Andreas Hocevar
cde6dce939 Merge pull request #4574 from WeaveTeam/dragbox-config-pr
Added boxEndCondition to DragBoxOptions to replace the hardcoded chec…
2016-01-06 11:47:56 +01:00
Frédéric Junod
1caaf6d75f Merge pull request #4553 from openlayers/greenkeeper-mustache-2.2.1
Update mustache to version 2.2.1 🚀
2016-01-06 11:43:33 +01:00
Frédéric Junod
1300cde76c Merge pull request #4626 from simonseyock/master
Fixed documentation error
2016-01-06 11:40:49 +01:00
Simon Seyock
310023e179 Fixed documentation error
The imageLoad function option of all ol.source.Image subclasses are not of type ol.TileLoadFunctionType but of type ol.ImageLoadFunctionType.
2016-01-06 11:31:54 +01:00
Frédéric Junod
8c6d9c9e66 Merge pull request #4606 from fredj/ol.DragBoxEvent_MapBrowserEvent
Include originating MapBrowserEvent in ol.DragBoxEvent
2016-01-06 09:15:32 +01:00
greenkeeperio-bot
bd6566f85b chore(package): update fs-extra to version 0.26.4
http://greenkeeper.io/
2016-01-05 22:38:23 -07:00
Tim Schaub
b8d69e0f3b Merge pull request #4614 from tschaub/one-fewer-interface
Remove checksum interface.
2016-01-05 11:16:34 -07:00
Philip "digitalfox" Kovac
10e2510f0f Added boxEndCondition to DragBoxOptions to replace the hardcoded check against DRAG_BOX_HYSTERESIS_PIXELS_SQUARED. 2016-01-05 13:14:30 -05:00
Andreas Hocevar
15be53e98c Merge pull request #4613 from ahocevar/select-self
Include own layer in layerFilter and only select unselected features
2016-01-05 17:48:20 +01:00
Frédéric Junod
ce3030268b Merge pull request #4612 from fredj/vector_event_type
Set oli.source.VectorEvent#feature to ol.Feature|undefined
2016-01-05 15:11:48 +01:00
Tim Schaub
aeffd48ccb Remove checksum interface 2016-01-05 07:07:45 -07:00
Frédéric Junod
2f1975636a Merge pull request #4620 from fredj/polyline_option_factor
Fix olx.format.PolylineOptions#factor type
2016-01-05 15:07:26 +01:00
Frédéric Junod
b7be16eac7 Merge pull request #4621 from fredj/gpx_option_readExtensions
Fix olx.format.GPXOptions#readExtensions type
2016-01-05 14:59:51 +01:00
Frederic Junod
d55afd57b5 Fix olx.format.GPXOptions#readExtensions type
This property is optional.
2016-01-05 13:55:14 +01:00
Petr Sloup
22b1460595 Merge pull request #4619 from klokantech/tilejson-xhr
Add option to load TileJSON via XHR
2016-01-05 13:48:23 +01:00
Frederic Junod
efc601a76d Fix olx.format.PolylineOptions#factor type
This property is optional.
2016-01-05 13:44:01 +01:00
Petr Sloup
ffd9ace84e Add option to load TileJSON via XHR 2016-01-05 13:40:20 +01:00
greenkeeperio-bot
251cddfa96 chore(package): update resemblejs to version 2.1.0
http://greenkeeper.io/
2016-01-05 04:54:25 -07:00
Bart van den Eijnden
d9b89a8ebe Merge pull request #4617 from gberaudo/type_geojson_writeFeatureObject
Add missing return type to GeoJSON format
2016-01-05 11:17:39 +01:00
Guillaume Beraudo
a1c72d8890 Add missing return type to GeoJSON format 2016-01-05 11:02:23 +01:00
Marc Jansen
9fe3d8b2e2 Merge pull request #4615 from marcjansen/copyright-2016
Adjust copyright to include 2016
2016-01-05 11:01:25 +01:00
Marc Jansen
52667c1166 Adjust copyright to include 2016 2016-01-05 08:54:32 +01:00
Frédéric Junod
de1f18417a Merge pull request #4616 from openlayers/greenkeeper-closure-util-1.10.0
Update closure-util to version 1.10.0 🚀
2016-01-05 08:42:47 +01:00
greenkeeperio-bot
acd8b3ddc1 chore(package): update closure-util to version 1.10.0
http://greenkeeper.io/
2016-01-05 00:31:44 -07:00
Andreas Hocevar
a65d2d4078 Include own layer in layerFilter and only select unselected features
When selecting an already selected feature, it will be on the Select
interaction's featureOverlay_. So we need to include that featureOverlay_
in the layer filter, regardless of what the user set as layer filter.

When in toggle mode, we need to make sure that we only select features that
are not already included in the selection.
2016-01-04 21:55:00 +01:00
Andreas Hocevar
9f43716723 Merge pull request #4596 from ahocevar/tile-key
Use consistent tile coordinate keys
2016-01-04 19:27:47 +01:00
Bart van den Eijnden
d6235e714e Merge pull request #4609 from bartvde/proj4js
Add ol.proj.setProj4 function
2016-01-04 19:08:30 +01:00
Bart van den Eijnden
cdf9a8e84d Add ol.proj.setProj4 function 2016-01-04 18:51:04 +01:00
Frederic Junod
437412362e Set oli.source.VectorEvent#feature to ol.Feature|undefined
This commit remove incoherency between the class and the interface.
2016-01-04 16:44:23 +01:00
Frederic Junod
7a364e0593 Include originating MapBrowserEvent in ol.DragBoxEvent 2016-01-04 13:29:26 +01:00
Tim Schaub
65b90df4b8 Merge pull request #4603 from openlayers/greenkeeper-async-1.5.1
Update async to version 1.5.1 🚀
2016-01-03 11:39:50 -07:00
Tim Schaub
38fd9f2685 Merge pull request #4604 from openlayers/greenkeeper-clean-css-3.4.9
Update clean-css to version 3.4.9 🚀
2016-01-03 11:39:01 -07:00
greenkeeperio-bot
de3e3d74ce chore(package): update clean-css to version 3.4.9
http://greenkeeper.io/
2016-01-03 08:28:55 -07:00
greenkeeperio-bot
becaf20ee9 chore(package): update async to version 1.5.1
http://greenkeeper.io/
2016-01-02 16:42:26 -07:00
Alexandre Brault
3f16b340fc Accept string as color input 2016-01-01 12:16:50 -05:00
Alexandre Brault
5c70d37da6 Don't tint the icon if the image is tainted 2016-01-01 12:16:50 -05:00
Alexandre Brault
c0b6eac0c2 Add color option to ol.style.Icon 2016-01-01 12:16:50 -05:00
Marc Jansen
a34c0e262b Merge pull request #4600 from openlayers/greenkeeper-glob-6.0.3
Update glob to version 6.0.3 🚀
2015-12-29 08:06:41 +01:00
greenkeeperio-bot
31a1aae02e chore(package): update glob to version 6.0.3
http://greenkeeper.io/
2015-12-28 16:51:47 -07:00
Andreas Hocevar
b208550e6e Merge pull request #4595 from ahocevar/opaque-xyz
Pass 'opaque' option on to superclass
2015-12-28 14:40:59 +01:00
Petr Sloup
cd1304aaae Merge pull request #4598 from klokantech/tilepixelratio
Make ol.source.Tile#getTilePixelRatio work correctly for all sources
2015-12-28 13:31:59 +01:00
Petr Sloup
767ac44e99 Make ol.source.Tile#getTilePixelRatio work for all sources
Even for sources which serve dynamic tile sizes based on devicePixelRatio
2015-12-28 13:19:03 +01:00
Petr Sloup
28240adaf5 Merge pull request #4594 from klokantech/tilequeue-reproj-jam
Fix for TileQueue gradually choking up when using raster reprojection
2015-12-28 13:17:39 +01:00
Petr Sloup
9cdf7678bb Make ol.reproj.Tile#load always async for consistency 2015-12-28 09:30:12 +01:00
Andreas Hocevar
300b5cad44 Use consistent tile coordinate keys
Tile coordinate keys from ol.tilecoord.toString() are different than the ones
from Array.prototype.toString(). Both were used, potentially causing problems.
This change makes them consistent and removes the now unnecessary
ol.tileCoord.toString() function.
2015-12-27 17:59:51 +01:00
Andreas Hocevar
72ec3fd48d Pass 'opaque' option on to superclass 2015-12-27 17:08:54 +01:00
Petr Sloup
e1712eb44a Initiate tile load only after registering it as loading 2015-12-26 10:49:21 +01:00
Andreas Hocevar
552063aeac Do not render in handleDownEvent 2015-12-18 18:21:32 +01:00
Andreas Hocevar
dad58ba622 Merge pull request #4557 from ahocevar/vectortile-canvas
Conditionally render tiles to a separate tile canvas
2015-12-18 10:43:52 +01:00
Andreas Hocevar
bbc49ca805 Merge pull request #4580 from openlayers/greenkeeper-fs-extra-0.26.3
Update fs-extra to version 0.26.3 🚀
2015-12-18 08:05:36 +01:00
Andreas Hocevar
38bb1569af Remove no longer needed buffer for direct rendering 2015-12-18 00:27:42 +01:00
greenkeeperio-bot
e07c0ec829 chore(package): update fs-extra to version 0.26.3
http://greenkeeper.io/
2015-12-17 10:21:32 -07:00
Bart van den Eijnden
6dbb4e6737 Merge pull request #4579 from openlayers/v3.12.x
Release v3.12.1
2015-12-17 16:20:01 +01:00
Bart van den Eijnden
863cc1bae3 Update package version to 3.12.1 2015-12-17 15:31:19 +01:00
Bart van den Eijnden
60179e9ab9 Changelog for v3.12.1 2015-12-17 15:30:57 +01:00
Andreas Hocevar
a512a5b115 Merge pull request #4578 from ahocevar/apidoc-landingpage
Fix apidoc landing page markup
2015-12-17 15:24:33 +01:00
Bart van den Eijnden
46647373ee Merge pull request #4570 from bartvde/numbersafe
Rename defaultSort to numberSafeCompareFunction on ol.array
2015-12-17 15:24:13 +01:00
Bart van den Eijnden
4b7e8f5f83 Merge pull request #4567 from bartvde/issue-4566
Always pass on a compare function to sort
2015-12-17 15:23:50 +01:00
Andreas Hocevar
20be8980e1 Merge pull request #4578 from ahocevar/apidoc-landingpage
Fix apidoc landing page markup
2015-12-17 15:15:04 +01:00
Andreas Hocevar
34139f4dce Fix apidoc landing page markup 2015-12-17 15:13:26 +01:00
Andreas Hocevar
9affb99899 More sensible split between direct and canvas rendering 2015-12-17 10:58:35 +01:00
Marc Jansen
f395a0f8c5 Merge pull request #4575 from openlayers/greenkeeper-rbush-1.4.2
Update rbush to version 1.4.2 🚀
2015-12-17 08:14:54 +01:00
Andreas Hocevar
80f10ce824 Avoid unnecessary calculation in loops 2015-12-17 00:17:28 +01:00
Andreas Hocevar
46a266fa5c Fix replays on transformed contexts 2015-12-17 00:17:27 +01:00
Andreas Hocevar
4f2df30f1d Avoid clipping by rendering tiles with rotated labels
This only works when the device pixel ratio is 1. Labels are incorrectly
positioned and not at all rotated for other pixel ratios. I cannot find the
cause for this problem.
2015-12-17 00:17:27 +01:00
Andreas Hocevar
c1b16217f2 Conditionally render tiles to a separate tile canvas
Because clip geometries are anti-aliased in most browsers, there will be tiny
gaps between tiles. If tiles are rendered to a tile canvas which is then drawn
to the map canvas upon composition, these gaps can be avoided. For rotated
views, it is stil necessary to clip the tile, but in this case a 1-pixel
buffer is used.

This change also brings a huge performance improvement for panning, because
the fully rendered tiles can be reused.

Because of the added cost of using drawImage in addition to replaying the tile
replay group, we fall back to directly drawing to the map canvas when the tile
canvas would be too large, or during interaction/animation when resolution or
rotation change.
2015-12-17 00:17:27 +01:00
greenkeeperio-bot
34fb85a9d7 chore(package): update rbush to version 1.4.2
http://greenkeeper.io/
2015-12-16 16:01:49 -07:00
Marc Jansen
6bc6fd9cbc Merge pull request #4571 from marcjansen/select-i-docs
Correct typedef of selectinteraction options obj
2015-12-16 14:55:19 +01:00
Marc Jansen
945f1e7580 Correct typedef of selectinteraction options obj
The key `features` of the constructor options that can be passed to
`ol.interaction.Select` can also be `undefined`.
2015-12-16 14:42:39 +01:00
Bart van den Eijnden
ae90c32f01 Merge pull request #4570 from bartvde/numbersafe
Rename defaultSort to numberSafeCompareFunction on ol.array
2015-12-16 13:50:59 +01:00
Bart van den Eijnden
25e0053a13 Rename defaultSort to numberSafeCompareFunction on ol.array 2015-12-16 13:40:05 +01:00
Bart van den Eijnden
88255fd776 Merge pull request #4567 from bartvde/issue-4566
Always pass on a compare function to sort
2015-12-16 11:35:59 +01:00
Bart van den Eijnden
e0be143ed5 Always pass on a compare function to sort 2015-12-16 10:54:46 +01:00
Bart van den Eijnden
dd4e88525e Merge pull request #4001 from bartvde/jspdf2
Export PDF's using jsPDF
2015-12-15 11:43:04 +01:00
Bart van den Eijnden
5d64762bcb Merge pull request #4562 from openlayers/release-v3.12.0
Release v3.12.0
2015-12-15 11:10:24 +01:00
Bart van den Eijnden
7c98e922c3 Update package version to 3.12.0 2015-12-15 10:57:53 +01:00
Bart van den Eijnden
41c81dec88 Changelog for v3.12.0 2015-12-15 10:57:30 +01:00
Bart van den Eijnden
887e90af1e Merge pull request #4559 from bartvde/kml-ff-test
Fix up failing KML test in Firefox
2015-12-15 10:45:42 +01:00
Bart van den Eijnden
69c44e50df Merge pull request #4561 from bartvde/ie-featureloader-test
Exclude feature loader MVT test from IE9
2015-12-15 10:40:58 +01:00
Bart van den Eijnden
bd4c1f8da6 Fix up failing KML test in Firefox 2015-12-15 10:34:47 +01:00
Bart van den Eijnden
95443d0c88 Exclude feature loader MVT test from IE9 2015-12-15 10:30:20 +01:00
Andreas Hocevar
9b1416da29 Merge pull request #4552 from ahocevar/fix-proj-compiler-issue
Make sure compiled code calls ol.VectorTile#setProjection
2015-12-13 13:31:47 +01:00
greenkeeperio-bot
195e802f7c chore(package): update mustache to version 2.2.1
http://greenkeeper.io/
2015-12-13 04:07:08 -07:00
Petr Sloup
48c8f9ea84 Merge pull request #4551 from klokantech/rasterreproj-wrapx
Handle tile coordinate wrapping when reprojecting raster tiles
2015-12-11 16:45:28 +01:00
Petr Sloup
9f5d85f2c6 Handle tile coordinate wrapping when reprojecting raster tiles 2015-12-11 16:35:23 +01:00
Andreas Hocevar
c4237c7858 Merge pull request #4544 from openlayers/greenkeeper-vector-tile-1.2.0
Update vector-tile to version 1.2.0 🚀
2015-12-11 15:36:08 +01:00
Andreas Hocevar
fbb59d29b9 Make sure compiled code calls ol.VectorTile#setProjection 2015-12-11 15:20:21 +01:00
Bart van den Eijnden
554aaf1574 Merge pull request #4537 from bartvde/issue-4312
Allow specifying non default DPI on ol.source.TileArcGISRest
2015-12-11 13:42:26 +01:00
Andreas Hocevar
2ebcadfcd5 Merge pull request #4548 from ahocevar/vectortile-docs
Improve vector tile related docs
2015-12-11 12:16:35 +01:00
Andreas Hocevar
d9bb3adbe8 Improve vector tile related docs 2015-12-11 12:01:24 +01:00
Tobias Sauerwein
070a6b11f0 Merge pull request #4549 from tsauerwein/multiline-example
Update vector label example
2015-12-11 10:25:57 +01:00
tsauerwein
43e1c86b6e Update vector label example 2015-12-11 10:14:02 +01:00
Bart van den Eijnden
b0b202f112 Merge pull request #4512 from flightaware/label-newlines
Support for multi-line labels (improved)
2015-12-11 09:38:07 +01:00
Marc Jansen
2fdf7f508d Merge pull request #4546 from openlayers/greenkeeper-coveralls-2.11.6
Update coveralls to version 2.11.6 🚀
2015-12-11 07:54:57 +01:00
greenkeeperio-bot
e14197c060 chore(package): update coveralls to version 2.11.6
http://greenkeeper.io/
2015-12-10 18:12:22 -07:00
greenkeeperio-bot
814fd858d8 chore(package): update vector-tile to version 1.2.0
http://greenkeeper.io/
2015-12-10 12:16:18 -07:00
Philip Clifton
97995cf20b Add newline support for text 2015-12-10 11:24:39 -06:00
Frédéric Junod
8fc85198b0 Merge pull request #4539 from fredj/examples_index
Ignore index.html in example list
2015-12-10 10:47:56 +01:00
Frederic Junod
2b64a7af7b Ignore index.html in example list
Fixes #3685
2015-12-10 10:18:23 +01:00
Frédéric Junod
fc2c9176a6 Merge pull request #4536 from fredj/tilequeue_listen_in_enqueue
Register the change callback when the tile is enqueued
2015-12-10 09:08:31 +01:00
Frederic Junod
7192644c07 Register the change callback when the tile is enqueued 2015-12-09 17:15:47 +01:00
Bart van den Eijnden
992870e2d2 Allow specifying non default DPI on ol.source.TileArcGISRest 2015-12-09 15:27:20 +01:00
Frederic Junod
ad3c6713da Return if the element is added to the ol.structs.PriorityQueue 2015-12-09 15:27:07 +01:00
Andreas Hocevar
3fef07f9e9 Merge pull request #4528 from ahocevar/simplify-tile-featureloader
Remove redundant code from ol.featureloader.tile
2015-12-09 14:12:17 +01:00
Bart van den Eijnden
0c3aed0083 Add support for smooth TileWMS dimensions 2015-12-09 14:06:47 +01:00
Andreas Hocevar
a5abd8df23 Merge pull request #4535 from ahocevar/osm-example-style
Do not use an array for a single style
2015-12-09 10:50:31 +01:00
Andreas Hocevar
73158b8c71 Do not use an array for a single style 2015-12-09 10:10:41 +01:00
Frédéric Junod
4f85cbec54 Merge pull request #4532 from fredj/dimensions_nonull
Mark olx.source.WMTSOptions#dimensions as not null
2015-12-09 08:59:06 +01:00
Andreas Hocevar
8f4c6a5bbf Remove redundant code from ol.featureloader.tile 2015-12-08 18:30:25 +01:00
Frederic Junod
5b7227a0bf Mark olx.source.WMTSOptions#dimensions as not null 2015-12-08 17:46:49 +01:00
Frédéric Junod
f387bb75bf Merge pull request #4530 from fredj/goog.isNull
Remove use of goog.isNull
2015-12-08 16:43:20 +01:00
Frédéric Junod
e27bfc4fa6 Merge pull request #4529 from fredj/coding_style
Update coding style rules
2015-12-08 16:23:48 +01:00
Frederic Junod
aa2838cdcd Remove use of goog.isNull 2015-12-08 16:05:38 +01:00
Frederic Junod
be16ba01ca Update coding style rules 2015-12-08 14:52:06 +01:00
Andreas Hocevar
3413f6d138 Merge pull request #4518 from ahocevar/osm-vector-tiles
Add support for OSM vector tiles
2015-12-08 11:01:49 +01:00
Andreas Hocevar
954a5077cf Merge pull request #4524 from ahocevar/custom-symbols
Add example for rendering custom point symbols
2015-12-07 22:22:20 +01:00
Andreas Hocevar
0050f00703 Add example for rendering custom point symbols 2015-12-07 21:41:42 +01:00
Andreas Hocevar
867bcce1cc Merge pull request #4523 from ahocevar/render-to-context
Allow rendering geometries to an arbitrary canvas
2015-12-07 19:13:47 +01:00
Andreas Hocevar
257abb63d7 Allow rendering geometries to an arbitrary canvas 2015-12-07 17:27:04 +01:00
Erik Timmers
004e7ad0d0 Add PDF example 2015-12-07 13:53:37 +01:00
Andreas Hocevar
ba93698c20 Merge pull request #4525 from ahocevar/test-render-retina
Make render tests work on more devices
2015-12-07 11:32:13 +01:00
Andreas Hocevar
35064a45f7 Merge pull request #4515 from ahocevar/icon-canvas
Accept HTMLCanvasElement for an icon's img
2015-12-07 11:26:02 +01:00
Andreas Hocevar
a940cdd6a7 Add support for OSM vector tiles 2015-12-07 11:15:25 +01:00
Andreas Hocevar
e978133b85 Make render tests work on more devices
By setting a device pixel ratio of 1.0 and increasing the tolerance for raster
reprojection tests, the render tests now also run from the console on OSX
devices with retina display.
2015-12-06 17:59:49 +01:00
Andreas Hocevar
0b4c0ee41c Merge pull request #4521 from ahocevar/imagestyle-docs
Fix imagestyle docs
2015-12-06 11:43:13 +01:00
Andreas Hocevar
5a1588a2dc Fix imagestyle docs 2015-12-06 11:33:40 +01:00
Andreas Hocevar
abb680d28f Accept HTMLCanvasElement for an icon's img 2015-12-04 14:14:01 +01:00
Frédéric Junod
8fcedb03a4 Merge pull request #4508 from fredj/rm_unused_underscore
Remove unused files
2015-12-04 13:44:56 +01:00
Frédéric Junod
7ecb6700fb Merge pull request #4487 from fredj/css_cleanup
Remove fallback css color
2015-12-04 13:44:41 +01:00
Frédéric Junod
4892a2f039 Merge pull request #4502 from fredj/optionsFromCapabilities_jsdoc
Improve ol.source.WMTS.optionsFromCapabilities jsdoc layout
2015-12-04 13:44:27 +01:00
Frédéric Junod
9363a6a340 Merge pull request #4511 from fredj/cleanup
Minor code cleanup
2015-12-02 16:05:42 +01:00
Frederic Junod
6e58be72bb Remove unused goog.require 2015-12-02 14:08:34 +01:00
Frederic Junod
6530fbe6c3 Remove '*.pyc' from .{git,npm}ignore
Not needed since the removal of pake (see #95)
2015-12-02 14:07:37 +01:00
Bart van den Eijnden
612aa3493b Merge pull request #4510 from GeoCat/master
Adding a check just in case the projection is not defined/supported
2015-12-02 11:54:27 +01:00
María Arias de Reyna
609e94a58a Adding a check just in case the projection is not defined/supported on current app. It will just ignore it, as if there was no containerSrs defined. 2015-12-02 11:44:24 +01:00
Frédéric Junod
652638e902 Merge pull request #4505 from fredj/rm_goog_object_getKeys
Remove use of goog.object.getKeys
2015-12-02 09:13:29 +01:00
Frederic Junod
7149113ab6 Remove unused files 2015-12-01 15:50:51 +01:00
Andreas Hocevar
2215f49617 Merge pull request #4472 from ahocevar/layer-filter
Do not ignore layer filter for unmanaged layers
2015-12-01 12:01:58 +01:00
Andreas Hocevar
40fec9ca35 Mention behaviour change in upgrade notes 2015-11-30 17:53:19 +01:00
Éric Lemoine
279eae1dba Do not ignore layer filter for unmanaged layers
PR #3883 made `forEachFeatureAtPixel` ignore unmanaged layers. This commit reverts that change.
2015-11-30 17:53:19 +01:00
Frederic Junod
cf1b1822b8 Remove use of goog.object.getKeys 2015-11-30 17:34:53 +01:00
Frédéric Junod
952a282756 Merge pull request #4476 from fredj/rm_goog.functions.constant
Remove use of goog.functions.constant
2015-11-30 16:22:47 +01:00
Frederic Junod
51b62fb188 Improve ol.source.WMTS.optionsFromCapabilities jsdoc layout 2015-11-30 12:39:24 +01:00
Frédéric Junod
5a123d0840 Merge pull request #4484 from fredj/rm_goog.dom.createDom
Remove use of goog.dom.createDom
2015-11-25 13:31:56 +01:00
Frederic Junod
a186254e14 Remove use of goog.dom.createDom 2015-11-25 12:40:45 +01:00
greenkeeperio-bot
8b0bd11fc8 chore(package): update istanbul to version 0.4.1
http://greenkeeper.io/
2015-11-24 11:46:44 -07:00
Frédéric Junod
d96d82939a Merge pull request #4486 from fredj/DragZoom_vector_doc
Remove note about DragZoom and vector support
2015-11-24 17:23:55 +01:00
Frederic Junod
1ebdba13a6 Remove note about DragZoom and vector support 2015-11-24 17:04:05 +01:00
Frederic Junod
f6326fcc99 Simplify css color notation 2015-11-24 17:01:22 +01:00
Frederic Junod
c8e35afecb Remove fallback css color
All browsers supports CSS3 color: http://caniuse.com/#feat=css3-colors
2015-11-24 16:42:38 +01:00
Frédéric Junod
a2e3f28060 Merge pull request #4483 from fredj/rm_goog.object.containsKey
Remove use of goog.object.containsKey
2015-11-24 16:25:40 +01:00
Bart van den Eijnden
ef54dddbbc Merge pull request #4475 from bartvde/ie-test-failures
Fix up failing tests in Internet Explorer
2015-11-24 14:53:24 +01:00
Bart van den Eijnden
46b7f80fef Skip tests for ol.format.MVT in IE9 2015-11-24 14:43:40 +01:00
Andreas Hocevar
890b515e44 Conditionally skip ol.source.Raster tests 2015-11-24 14:43:40 +01:00
Bart van den Eijnden
7174f65da3 Make test pass on Firefox on OSX as well 2015-11-24 14:43:40 +01:00
Bart van den Eijnden
fb52d472d2 Make regularshape tests pass on Safari on OSX
The threshold needed to be even higher for Safari on OSX.
2015-11-24 14:42:50 +01:00
Bart van den Eijnden
5f0ea2c2c7 Make the rendering tests pass in IE11
For 2 test cases, the thresholds were also too low for Chrome on OSX.
2015-11-24 14:35:18 +01:00
Frédéric Junod
f0048a5611 Merge pull request #4485 from fredj/overlay_dom_simplify
Use appendChild instead of goog.dom.append
2015-11-24 14:10:53 +01:00
Frederic Junod
a9cd2cd278 Use appendChild instead of goog.dom.append 2015-11-24 13:45:54 +01:00
Frederic Junod
8d72589743 Remove use of goog.object.containsKey 2015-11-24 10:17:01 +01:00
Frédéric Junod
90e224bd96 Merge pull request #4481 from fredj/cleanup
Remove blur workaround in ol.control.Attribution
2015-11-24 08:37:46 +01:00
Frederic Junod
290a83e2ed Remove blur workaround in ol.control.Attribution
leftover from #3954
2015-11-23 16:18:36 +01:00
Frédéric Junod
44a3595d77 Merge pull request #4479 from fredj/export_interaction_getMap
Export ol.interaction.Interaction#getMap function
2015-11-23 15:54:14 +01:00
Frederic Junod
6525bda9fd Export ol.interaction.Interaction#getMap function 2015-11-23 15:35:36 +01:00
Frédéric Junod
1b36050621 Merge pull request #4478 from fredj/apidoc
Fix olx.control.FullScreenOptions#label apidoc
2015-11-23 14:56:40 +01:00
Frederic Junod
7cc2a070e8 Fix olx.control.FullScreenOptions#label apidoc 2015-11-23 14:43:23 +01:00
Bart van den Eijnden
230f24208b Fix up EsriJSON format tests in IE9 2015-11-23 14:03:18 +01:00
Frédéric Junod
0ecf981673 Merge pull request #4477 from fredj/use_ol.nullFunction
Replace goog.nullFunction with ol.nullFunction
2015-11-23 12:19:19 +01:00
Frederic Junod
cacf2629fd Replace goog.nullFunction with ol.nullFunction 2015-11-23 11:18:34 +01:00
Frederic Junod
2c935dc4e0 Remove use of goog.functions.constant 2015-11-23 11:09:09 +01:00
Bart van den Eijnden
a2d7f56933 Fix up ol.source.TileWMS tests in IE 2015-11-23 10:38:19 +01:00
Bart van den Eijnden
b338c77726 Fix up ol.source.TileArcGISRest tests in IE 2015-11-23 10:23:54 +01:00
Bart van den Eijnden
40e9f0eaf2 Fix up ol.format.GPX tests in IE 2015-11-23 10:05:17 +01:00
Frédéric Junod
a2011b035d Merge pull request #4474 from fredj/rm_goog.dom
Remove use of goog.dom.createElement and goog.dom.createTextNode
2015-11-23 09:54:00 +01:00
Frederic Junod
e34c18a26e Remove use of goog.dom.createTextNode 2015-11-23 09:23:58 +01:00
Frederic Junod
1092f6b2a2 Remove use of goog.dom.createElement 2015-11-23 09:22:39 +01:00
Tim Schaub
6897e3cc52 Merge pull request #4469 from bjornharrtell/jsts_0.17
Upgrade to JSTS 0.17.0 in example
2015-11-21 12:22:12 -07:00
Björn Harrtell
2242224a0f Upgrade to JSTS 0.17.0 in example 2015-11-21 16:33:26 +01:00
Andreas Hocevar
f63963403b Merge pull request #4465 from openlayers/greenkeeper-handlebars-4.0.5
Update handlebars to version 4.0.5 🚀
2015-11-20 09:27:06 +01:00
greenkeeperio-bot
498e3aa3ee chore(package): update handlebars to version 4.0.5
http://greenkeeper.io/
2015-11-19 22:07:30 -07:00
Tim Schaub
b0c14cfe05 Merge pull request #4464 from openlayers/v3.11.x
Merge in changes from the 3.11.2 release.
2015-11-19 13:08:17 -07:00
Frédéric Junod
0259977fa9 Merge pull request #4463 from fredj/rm_goog.array.sort
Remove use of goog.array.sort
2015-11-19 20:24:08 +01:00
Tim Schaub
eb5607544c Update package version to 3.11.2 2015-11-19 11:32:41 -07:00
Tim Schaub
4999c792f1 Changelog for v3.11.2 2015-11-19 11:28:02 -07:00
Andreas Hocevar
5af338f92b Fix select interaction regression caused by #4391 2015-11-19 10:53:57 -07:00
Frederic Junod
071aad4815 Check ol.source.UrlTile#urls property for null value
Fixes #4446
2015-11-19 10:53:12 -07:00
Andreas Hocevar
a43cca7720 Allow '' for crossOrigin (as Anonymous alias)
This fixes a regression introduced by the goog.isDef removal.

From the HTML 5 spec: "The empty string is also a valid keyword, and
maps to the Anonymous state"
2015-11-19 10:48:35 -07:00
Andreas Hocevar
aa260f800e Merge pull request #4450 from ahocevar/fix-select
Fix select interaction regression caused by #4391
2015-11-19 18:20:04 +01:00
Frederic Junod
a4fb2501d8 Remove use of goog.array.sort
Fixes #4160
2015-11-19 16:53:11 +01:00
Frédéric Junod
627abaf1a7 Merge pull request #4458 from fredj/lint
Remove extra space in type annotation
2015-11-19 12:00:49 +01:00
Frederic Junod
5ead77bcd1 Remove extra space in type annotation 2015-11-19 10:03:42 +01:00
Tim Schaub
9ffed70ffd Merge pull request #4420 from openlayers/strapless
Remove Bootstrap and jQuery from example snippets.
2015-11-18 11:20:39 -07:00
Tim Schaub
cbfd533d49 Revert to jQuery for editing with Esri and IE 9 2015-11-18 10:21:00 -07:00
Tim Schaub
d3ff8d7fb0 More consistent markup 2015-11-18 10:06:35 -07:00
Tim Schaub
19fe73e78e Doc typos 2015-11-18 09:56:16 -07:00
Tim Schaub
72a0f70e7a Update simple title 2015-11-18 09:56:16 -07:00
Tim Schaub
645a0ce2d4 Update flight animation example 2015-11-18 09:56:16 -07:00
Tim Schaub
d19bf0970b Rename strapless template 2015-11-18 09:56:15 -07:00
Tim Schaub
10eb041199 Remove old example template 2015-11-18 09:56:15 -07:00
Tim Schaub
99ca4047dd Convert forgotten examples to strapless template 2015-11-18 09:56:15 -07:00
Tim Schaub
d838214f96 Convert X-Z examples to strapless template 2015-11-18 09:56:15 -07:00
Tim Schaub
c463321643 Convert WMTS examples to strapless template 2015-11-18 09:56:15 -07:00
Tim Schaub
a94a00de1d Convert WMS examples to strapless template 2015-11-18 09:56:15 -07:00
Tim Schaub
9a35c08300 Convert WKT example to strapless template 2015-11-18 09:56:15 -07:00
Tim Schaub
8bd97532df Convert V examples to strapless template 2015-11-18 09:56:15 -07:00
Tim Schaub
baed03d50d Convert S-T examples to strapless template 2015-11-18 09:56:15 -07:00
Tim Schaub
c984bedd09 Convert R examples to strapless template 2015-11-18 09:56:14 -07:00
Tim Schaub
e6343ca272 Convert M-P examples to strapless template 2015-11-18 09:56:14 -07:00
Tim Schaub
f88681951a Convert L examples to use strapless template 2015-11-18 09:56:14 -07:00
Tim Schaub
87fcca91bd Convert K examples to strapless template 2015-11-18 09:56:14 -07:00
Tim Schaub
6fd6b794ef Use fetch instead of $.ajax in JSTS example 2015-11-18 09:56:14 -07:00
Tim Schaub
2fff18fd0c Use cdn.polyfill.io for polyfills 2015-11-18 09:56:14 -07:00
Tim Schaub
91a772a952 Convert H-I examples to strapless template 2015-11-18 09:56:14 -07:00
Tim Schaub
88ec3b9f6c Convert F-G examples to strapless template 2015-11-18 09:56:14 -07:00
Tim Schaub
2e8f4806d2 Give the docs some breathing room 2015-11-18 09:56:14 -07:00
Tim Schaub
b8cf2b213b Make the titles more like titles 2015-11-18 09:56:14 -07:00
Tim Schaub
3035bbdfd3 Convert D-E examples to strapless template 2015-11-18 09:56:14 -07:00
Tim Schaub
c3165252f8 Move title above map 2015-11-18 09:56:13 -07:00
Tim Schaub
5a511c7591 Remove "// NOCOMPILE" lines from examples 2015-11-18 09:56:13 -07:00
Tim Schaub
48be3ee572 Simplify the simple example 2015-11-18 09:56:13 -07:00
Tim Schaub
734712bf9c Convert A-C examples to strapless template 2015-11-18 09:56:13 -07:00
Tim Schaub
a2f84b144f Avoid including bootstrap.min.css twice 2015-11-18 09:56:13 -07:00
Tim Schaub
74f2b4cb74 Intentional indentation and newlines 2015-11-18 09:56:13 -07:00
Tim Schaub
58d22350d8 New template that removes Bootstrap and jQuery from code snippet 2015-11-18 09:56:13 -07:00
Tim Schaub
b69e453061 Merge pull request #4442 from tschaub/new-jsdoc
Use jsdoc@3.4.0.
2015-11-18 09:27:21 -07:00
Andreas Hocevar
a8cd6b735f Fix select interaction regression caused by #4391 2015-11-18 11:57:18 +01:00
Bart van den Eijnden
51d5182592 Merge pull request #4449 from bartvde/issue-4445
Change the label of the full screen button to be more intuitive
2015-11-18 11:53:04 +01:00
Frédéric Junod
6240162ecf Merge pull request #4448 from fredj/ol.source.UrlTile_urls
Check ol.source.UrlTile#urls property for null value
2015-11-18 11:47:56 +01:00
Bart van den Eijnden
5c592731f3 Change the label of the full screen button to be more intuitive (closes #4445) 2015-11-18 11:42:27 +01:00
Frederic Junod
aef097e348 Check ol.source.UrlTile#urls property for null value
Fixes #4446
2015-11-18 11:30:14 +01:00
Petr Sloup
77ca38aa10 Merge pull request #4440 from klokantech/rasterreproj_tutorial
Raster reprojection tutorial
2015-11-18 09:40:40 +01:00
Petr Sloup
0b23eae429 Language fixes for raster reprojection tutorial 2015-11-18 09:27:35 +01:00
Petr Sloup
b92565a096 Add raster reprojection tutorial 2015-11-18 09:27:35 +01:00
Tim Schaub
3dcc2843ae Write directly to stdout in publish script 2015-11-17 18:06:29 -07:00
Tim Schaub
34dd7b76b1 Use jsdoc@3.4.0 2015-11-17 18:04:16 -07:00
Andreas Hocevar
b435723b8c Merge pull request #4439 from ahocevar/crossorigin-regression
Allow '' for crossOrigin (as Anonymous alias)
2015-11-17 16:39:34 +01:00
Andreas Hocevar
749dacc749 Allow '' for crossOrigin (as Anonymous alias)
This fixes a regression introduced by the goog.isDef removal.

From the HTML 5 spec: "The empty string is also a valid keyword, and
maps to the Anonymous state"
2015-11-17 12:55:48 +01:00
Frédéric Junod
fd44295b17 Merge pull request #4429 from fredj/object_change_evt
Dispatch a change event only if the value changes
2015-11-17 12:51:26 +01:00
Frédéric Junod
17e69f9326 Merge pull request #4435 from fredj/rm_cast
Remove unnecessary cast
2015-11-17 11:07:31 +01:00
Frédéric Junod
b44d1f4fec Merge pull request #4434 from fredj/lint
Remove unused local variables
2015-11-17 11:07:12 +01:00
Frederic Junod
10ed2997d8 Remove unnecessary cast
See 4977f3607b
2015-11-17 10:41:09 +01:00
Frederic Junod
bfd33becbc Remove unused local variables 2015-11-17 10:20:40 +01:00
Frédéric Junod
50c28cdd60 Merge pull request #4433 from fredj/lint
Remove unused local variables
2015-11-17 10:15:11 +01:00
Frederic Junod
764875147a Remove unused local variables 2015-11-17 09:57:56 +01:00
Tobias Sauerwein
440a8bdea7 Merge pull request #4140 from tsauerwein/animation-flights
Add flight animation example
2015-11-17 09:49:44 +01:00
tsauerwein
faf9e467e4 Use map.render() in examples 2015-11-17 09:26:28 +01:00
tsauerwein
072a347a54 Add flight animation example 2015-11-17 09:26:28 +01:00
Andreas Hocevar
eee205c688 Merge pull request #4428 from ahocevar/imagewms-imagesize-regression-test
Add imageSize regression test for ol.source.ImageWMS
2015-11-16 23:08:47 +01:00
Andreas Hocevar
f0dbedd39d Add imageSize regression test for ol.source.ImageWMS 2015-11-16 22:20:35 +01:00
Andreas Hocevar
f4ad1214e7 Merge pull request #4426 from ahocevar/nicer-staticimage
Improve ol.source.StaticImage
2015-11-16 22:15:48 +01:00
Frederic Junod
ca575bd35d Dispatch a change event only if the value is different 2015-11-16 16:48:00 +01:00
Andreas Hocevar
fabda7c4b2 Improve ol.source.StaticImage
Brings back the imgSize property, and puts all image load handler
code in a single listener.
2015-11-16 11:55:10 +01:00
Frédéric Junod
18c41bfc19 Merge pull request #4425 from fredj/duration_eq_0
Test number property with !== undefined
2015-11-16 09:53:32 +01:00
Frederic Junod
dfbe7447c9 Test number property with !== undefined
Fixes #4424
2015-11-16 09:39:35 +01:00
Tim Schaub
5e0b0e69a5 Merge pull request #4423 from openlayers/greenkeeper-mocha-2.3.4
Update mocha to version 2.3.4 🚀
2015-11-15 15:15:28 -07:00
greenkeeperio-bot
6280ed2201 chore(package): update mocha to version 2.3.4
http://greenkeeper.io/
2015-11-15 13:39:37 -07:00
Tim Schaub
44cfb190f3 Merge pull request #4416 from openlayers/greenkeeper-clean-css-3.4.8
Update clean-css to version 3.4.8 🚀
2015-11-13 09:22:54 -07:00
Andreas Hocevar
f86a7455c4 Merge pull request #4415 from ahocevar/fix-imagesize
Scale StaticImage image to imageExtent
2015-11-13 13:15:46 +01:00
greenkeeperio-bot
69c332b023 chore(package): update clean-css to version 3.4.8
http://greenkeeper.io/
2015-11-13 05:06:22 -07:00
Andreas Hocevar
6280b35035 Scale StaticImage image to imageExtent
The imageSize property was only used to determine the scale. It's usage was
never documented nor tested nor shown in an example, so I removed it because I
considered its presence a bug.
2015-11-13 12:23:31 +01:00
Andreas Hocevar
4a97e26bd9 Merge pull request #4414 from ahocevar/imageurlfunction-bye-bye
Remove ol.ImageUrlFunction
2015-11-13 11:40:43 +01:00
Andreas Hocevar
152dc6e5d0 Remove ol.ImageUrlFunction
This was only used in ol.source.ImageMapGuide, and added unnecessary
overhead there.
2015-11-13 11:27:44 +01:00
Éric Lemoine
f5a148e6b3 Merge pull request #4389 from elemoine/dynamic-params
Smooth transitions on parameter changes
2015-11-13 08:41:42 +01:00
Tim Schaub
a8a796f922 Merge pull request #4410 from openlayers/v3.11.x
Merge in changes from the 3.11.1 release.
2015-11-12 16:53:41 -07:00
Tim Schaub
4c19e13bf6 Update package version to 3.11.1 2015-11-12 16:17:57 -07:00
Tim Schaub
1c6a56f781 Changelog for v3.11.1 2015-11-12 16:17:06 -07:00
Bart van den Eijnden
3aabc44746 Merge pull request #4413 from bartvde/issue-4406
Revert "Merge pull request #4339 from bartvde/issue-4337"
2015-11-12 20:45:27 +01:00
Bart van den Eijnden
b426fa5509 Revert "Merge pull request #4339 from bartvde/issue-4337"
This reverts commit 7f4c6e3634, reversing
changes made to c5dac0aa70.
2015-11-12 20:29:54 +01:00
Andreas Hocevar
70d376f215 Merge pull request #4412 from ahocevar/revert-4344
Revert "Merge pull request #4344 from bartvde/issue-2844"
2015-11-12 19:36:27 +01:00
Andreas Hocevar
c5f4710b8d Revert "Merge pull request #4344 from bartvde/issue-2844"
This reverts commit e5c44b37c9, reversing
changes made to 7f4c6e3634.
2015-11-12 19:17:07 +01:00
Andreas Hocevar
14338e9c16 Merge pull request #4408 from ahocevar/fix-imagewms-ratio-3.11.x
Use ratio when calculating ImageWMS width and height
2015-11-12 18:30:31 +01:00
Tim Schaub
41a232de60 Merge pull request #4401 from tschaub/style
Allow style function to return a style.
2015-11-12 10:21:19 -07:00
Andreas Hocevar
ce5ab5b59c Use ratio when calculating width and height 2015-11-12 18:10:10 +01:00
Éric Lemoine
c3c8c4fa73 Add an wmts-dimensions example 2015-11-12 14:47:02 +01:00
Éric Lemoine
0f70a21ba6 Implement getKeyParams in ol.source.WMTS 2015-11-12 14:40:36 +01:00
Éric Lemoine
132861e175 Use interim tiles when changing dynamic parameters 2015-11-12 14:40:35 +01:00
Bart van den Eijnden
bd1febeb41 Merge pull request #4404 from oterral/writstyles
Set correctly the opt_this parameter when writing a KML document
2015-11-12 13:25:31 +01:00
oterral
f588fcf7b0 Set correctly the opt_this parameter when writing a KML document 2015-11-12 11:54:06 +01:00
Tim Schaub
99a902a311 Get rid of extra style arrays in examples 2015-11-11 18:24:08 -07:00
Tim Schaub
e8c99e4e63 Allow style function to return a style 2015-11-11 17:21:24 -07:00
Tim Schaub
afba132c13 Merge pull request #4397 from openlayers/greenkeeper-glob-6.0.1
Update glob to version 6.0.1 🚀
2015-11-11 15:56:29 -07:00
Tim Schaub
8a7907e4cf Merge pull request #4362 from tamarmot/rotate_reset_north
Rotate control now takes optional resetNorth function.
2015-11-11 15:54:22 -07:00
Tim Schaub
bb5377fb8c Merge pull request #4399 from openlayers/release-v3.11.0
Release v3.11.0.
2015-11-11 14:46:44 -07:00
Tim Schaub
657af1983d Update package version to 3.11.0 2015-11-11 14:25:37 -07:00
Tim Schaub
ab7e608129 Changelog for v3.11.0 2015-11-11 14:24:56 -07:00
Tim Schaub
0c2c058534 Merge pull request #4394 from openlayers/silent-update
Allow ol.Object property update without notification.
2015-11-11 12:59:06 -07:00
greenkeeperio-bot
a52187a276 chore(package): update glob to version 6.0.1
http://greenkeeper.io/
2015-11-11 12:48:38 -07:00
Tim Schaub
a9987de308 Merge pull request #4395 from adube/api-styletext-offsetxy
Flag ol.style.Text setOffsetX and Y as @api.
2015-11-11 11:15:17 -07:00
Tim Schaub
c02fdf2393 Doc corrections and truthy check 2015-11-11 11:12:58 -07:00
Alexandre Dubé
ca50e9e5b7 Flag ol.style.Text setOffsetX and Y as @api 2015-11-11 12:44:12 -05:00
DavidHequet
069a81db74 Allow ol.Object property update without notification
Add an optional notify argument to object set and setProperties methods.

If the argument is not provided, set and setProperties trigger an event.

If you update many objects or do so frequently and do not need notification, performance is improved by setting silent to true.
2015-11-11 10:35:30 -07:00
Andreas Hocevar
df460d2ed1 Merge pull request #4393 from ahocevar/faster-vector-tiles
Faster vector tiles
2015-11-10 19:15:30 +01:00
Andreas Hocevar
b29b969cfe Avoid goog.getUid() with empty skippedFeaturesHash 2015-11-10 19:01:03 +01:00
Andreas Hocevar
a020251f69 Do not use fractional stroke widths 2015-11-10 18:43:28 +01:00
Tim Schaub
b2292cc6fd Merge pull request #4392 from openlayers/greenkeeper-clean-css-3.4.7
Update clean-css to version 3.4.7 🚀
2015-11-10 08:47:50 -07:00
greenkeeperio-bot
647c1a6351 chore(package): update clean-css to version 3.4.7
http://greenkeeper.io/
2015-11-10 07:55:13 -07:00
Andreas Hocevar
bfbb802b85 Merge pull request #4391 from ahocevar/unmanaged-layer-foreachfeatureatpixel
Pass null as forEachFeatureAtPixel layer arg for unmanaged layers
2015-11-09 10:19:26 +01:00
Andreas Hocevar
a446147902 Add upgrade note about forEachFeatureAtPixel change 2015-11-09 09:45:21 +01:00
Andreas Hocevar
d968f32456 Exclude unmanaged layers from selection 2015-11-09 09:45:21 +01:00
Andreas Hocevar
1aea2c2b0c Pass null as forEachFeatureAtPixel layer arg for unmanaged layers 2015-11-09 09:45:21 +01:00
Andreas Hocevar
5b817f3146 Merge pull request #4390 from ahocevar/fix-mocha-phantomjs-usage
Fix usage of mocha-phantomjs-core after update
2015-11-07 07:37:08 +01:00
Andreas Hocevar
a58f66a9a9 Fix usage of mocha-phantomjs-core after update 2015-11-06 20:34:30 +01:00
Andreas Hocevar
8e15f80d7a Merge pull request #4387 from ahocevar/common-renderer-default
Add default argument to getRendererFromQueryString
2015-11-06 17:11:35 +01:00
Andreas Hocevar
a35b3a5f52 Add default argument to getRendererFromQueryString 2015-11-06 16:58:58 +01:00
Éric Lemoine
9cf26f1fac Merge pull request #4376 from elemoine/kml-non-icon
Make KML format ignore image styles that aren't icons
2015-11-06 16:46:10 +01:00
Bart van den Eijnden
fadf63cbd0 Merge pull request #4385 from oterral/scaledflt
Don't transform the scale specified by the user
2015-11-06 16:23:41 +01:00
Éric Lemoine
daa970fe4c Make KML format ignore image styles that aren't icons 2015-11-06 15:35:20 +01:00
Andreas Hocevar
3254e08785 Merge pull request #4388 from ahocevar/fix-mocha-phantomjs
Quick-fix running tests with PhantomJS
2015-11-06 15:04:27 +01:00
Andreas Hocevar
544f951c14 Quick-fix running tests with PhantomJS 2015-11-06 14:50:58 +01:00
oterral
08a640b793 Don't transform the scale specified by the user 2015-11-06 14:29:16 +01:00
Éric Lemoine
d29f3b9068 Merge pull request #4378 from elemoine/kml-write-styles
Add a writeStyles option to KML format
2015-11-06 11:26:48 +01:00
Andreas Hocevar
d68991e982 Merge pull request #4375 from simonseyock/master
Fixed documentation typo (ol.source.ImageWMS)
2015-11-05 08:11:26 +01:00
Éric Lemoine
5c536aafc7 Add a writeStyles option to KML format 2015-11-04 17:12:04 +01:00
Simon Seyock
757d46541c Fixed documentation error
the imageLoadFunction you can give the constructor of ol.source.ImageWMS is an ol.ImageLoadFunctionType not an ol.TileLoadFunctionType
2015-11-04 12:56:41 +01:00
Éric Lemoine
dc3bf0d04b Merge pull request #4371 from dtreiter/master
Fix typo in closure compilation tutorial
2015-11-03 21:52:52 +01:00
Daniel Reiter
9cde0ab860 Fix typo in closure compilation tutorial 2015-11-03 14:37:37 -06:00
Bart van den Eijnden
bb00f4dafd Merge pull request #4370 from jonataswalker/getLayer-improve-docs
Improve ol.interaction.Select#getLayer documentation.
2015-11-03 18:58:52 +01:00
jonataswalker
16670e4015 Improve ol.interaction.Select#getLayer documentation. 2015-11-03 14:35:17 -02:00
Tim Schaub
4b85dd89a5 Merge pull request #4365 from openlayers/greenkeeper-fs-extra-0.26.2
Update fs-extra to version 0.26.2 🚀
2015-11-03 07:45:46 -08:00
Tim Schaub
71f7c70279 Merge pull request #4366 from openlayers/greenkeeper-resemblejs-2.0.1
Update resemblejs to version 2.0.1 🚀
2015-11-03 07:43:49 -08:00
Marc Jansen
2d24c8942e Merge pull request #4368 from marcjansen/fix-4367
Append KML placemark text style to existing styles
2015-11-03 15:06:33 +01:00
Marc Jansen
d24dcc7753 Be less verbose when creating text style 2015-11-03 14:27:06 +01:00
Marc Jansen
bea1501bb7 Append textStyle to existing style 2015-11-03 14:26:16 +01:00
greenkeeperio-bot
5751d342ff chore(package): update resemblejs to version 2.0.1
http://greenkeeper.io/
2015-11-03 02:21:55 -08:00
greenkeeperio-bot
8514a85353 chore(package): update fs-extra to version 0.26.2
http://greenkeeper.io/
2015-11-02 19:07:52 -08:00
Tamar Cohen
4a163b54f3 Rotate control now takes optional resetNorth function 2015-11-02 10:06:59 -08:00
Éric Lemoine
ad85e0e98d Merge pull request #4361 from elemoine/gpx
Make GPX format not fail on unsupported geometries
2015-11-02 17:54:47 +01:00
Frédéric Junod
66a99dd6c4 Merge pull request #4360 from fredj/getExtent_undef
Update getExtent return value jsdoc tag
2015-11-02 16:56:08 +01:00
Frederic Junod
eb762b6f4a Update getExtent return value jsdoc tag
The extent is never `null`; if the source is empty, the extent is
`[Infinity, Infinity, -Infinity, -Infinity]`
2015-11-02 16:30:54 +01:00
Éric Lemoine
14a1add08d Make GPX format no fail on unsupported geometries 2015-11-02 16:26:17 +01:00
Éric Lemoine
cbd1aee0cc Remove describe('readFeatures') in GPX tests
Just a remove an unnecessary level of nesting. No functional change.
2015-11-02 15:58:47 +01:00
Frédéric Junod
135d66dac7 Merge pull request #4359 from openlayers/greenkeeper-closure-util-1.9.0
Update closure-util to version 1.9.0 🚀
2015-11-02 14:31:26 +01:00
greenkeeperio-bot
3f30072de5 chore(package): update closure-util to version 1.9.0
http://greenkeeper.io/
2015-11-02 05:44:34 -07:00
Tim Schaub
925a89ecdb Merge pull request #4357 from openlayers/greenkeeper-update-all
Update all dependencies.
2015-11-01 10:31:01 -07:00
Tim Schaub
d5c7f805ab Unregister postrender listener in tests 2015-11-01 09:03:23 -07:00
greenkeeperio-bot
67f42ed33a chore(package): update dependencies
http://greenkeeper.io/
2015-11-01 08:30:06 -07:00
Tim Schaub
610ed7294f Merge pull request #4356 from tschaub/metalsmith-updates
Update Metalsmith and layouts plugin.
2015-11-01 08:28:08 -07:00
Tim Schaub
6c813020c2 Correct error message for missing layout property 2015-11-01 08:15:05 -07:00
Tim Schaub
0149924551 Update Metalsmith and layout plugin 2015-11-01 02:18:09 -07:00
Tim Schaub
85264111cd Merge pull request #4355 from tschaub/phantom-update
Update PhantomJS.
2015-11-01 01:57:38 -07:00
Tim Schaub
921d736340 Run tests with Node 4 on Trusty 2015-11-01 01:19:07 -07:00
Tim Schaub
98c9b0eb39 Update phantomjs and use mocha-phantomjs-core 2015-11-01 01:18:59 -07:00
Tim Schaub
7946298e67 Merge pull request #4353 from tschaub/jsdoc-forked
Resolve path to jsdoc-fork.
2015-10-31 15:23:41 -06:00
Tim Schaub
c0271e3509 Prune before installing 2015-10-31 15:11:54 -06:00
Tim Schaub
ad3ee7cb33 Correctly resolve path to jsdoc 2015-10-31 15:10:05 -06:00
679 changed files with 18434 additions and 8484 deletions

2
.eslintignore Normal file
View File

@@ -0,0 +1,2 @@
examples/Jugl.js
examples/resources/

1
.gitignore vendored
View File

@@ -1,4 +1,3 @@
*.pyc
/build/
/node_modules/
/dist/

View File

@@ -1,5 +0,0 @@
{
"-W030": true,
"-W083": true,
"-W069": true
}

View File

@@ -1,2 +1 @@
*.pyc
/build/

View File

@@ -1,5 +1,10 @@
language: python
sudo: false
language: node_js
node_js:
- "4"
cache:
directories:
- node_modules
@@ -7,11 +12,12 @@ env:
- DISPLAY=:99.0
before_install:
- "npm install -g npm && npm install"
- "npm prune"
before_script:
- "rm src/ol/renderer/webgl/*shader.js"
- "sh -e /etc/init.d/xvfb start"
- "npm ls"
script: "make ci"

View File

@@ -81,8 +81,7 @@ include:
OpenLayers 3 follows [Google's JavaScript Style
Guide](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml).
This is checked using the [Closure
Linter](https://developers.google.com/closure/utilities/) in strict mode. You
This is checked using [ESLint](http://eslint.org/), you
can run the linter locally on your machine before committing using the `lint`
target:
@@ -102,13 +101,6 @@ style of the existing OpenLayers 3 code, which includes:
* Do not use assignments inside expressions.
* Avoid the use of `goog.array.clone` with arrays (use slice instead).
* Use `array.length = 0` instead of `goog.array.clear`.
* Use bracket notation instead of `goog.object.set` and `goog.object.get` (with
two arguments).
* Use uppercase for `@const` variables.
### Configure your editor

View File

@@ -25,11 +25,11 @@ The minimum requirements are:
* GNU Make
* Git
* [Node.js](http://nodejs.org/) (0.10.x or higher)
* Python 2.6 or 2.7 with a couple of extra modules (see below)
* [Node.js](http://nodejs.org/) (higher than 0.12.x)
* Python 2.6 or 2.7
* Java 7 (JRE and JDK)
The executables `git`, `node`, `python` and `java` should be in your `PATH`.
The executables `git`, `node`, and `java` should be in your `PATH`.
You can check your configuration by running:
@@ -39,17 +39,6 @@ To install the Node.js dependencies run
$ npm install
To install the extra Python modules, run:
$ sudo pip install -r requirements.txt
or
$ cat requirements.txt | sudo xargs easy_install
depending on your OS and Python installation.
(You can also install the Python modules in a Python virtual environment if you want to.)
## Working with the build tool
As an ol3 developer you will use `make` to run build targets defined in the

View File

@@ -1,4 +1,4 @@
Copyright 2005-2015 OpenLayers Contributors. All rights reserved.
Copyright 2005-2016 OpenLayers Contributors. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

View File

@@ -93,8 +93,7 @@ compile-examples: build/compiled-examples/all.combined.js
.PHONY: clean
clean:
rm -f build/timestamps/gjslint-timestamp
rm -f build/timestamps/jshint-timestamp
rm -f build/timestamps/eslint-timestamp
rm -f build/timestamps/check-*-timestamp
rm -f build/ol.css
rm -f build/ol.js
@@ -120,9 +119,8 @@ examples: $(BUILD_EXAMPLES)
install: build/timestamps/node-modules-timestamp
.PHONY: lint
lint: build/timestamps/gjslint-timestamp build/timestamps/jshint-timestamp \
build/timestamps/check-requires-timestamp \
build/timestamps/check-whitespace-timestamp
lint: build/timestamps/eslint-timestamp \
build/timestamps/check-requires-timestamp
.PHONY: npm-install
npm-install: build/timestamps/node-modules-timestamp
@@ -183,7 +181,7 @@ build/timestamps/check-%-timestamp: $(BUILD_HOSTED)/examples/%.html \
$(BUILD_HOSTED)/build/ol.js \
$(BUILD_HOSTED)/css/ol.css
@mkdir -p $(@D)
./node_modules/.bin/phantomjs --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $(addsuffix ?mode=advanced, $<)
./node_modules/.bin/phantomjs --local-to-remote-url-access=true --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $<
@touch $@
build/timestamps/check-requires-timestamp: $(SRC_JS) $(EXAMPLES_JS) \
@@ -193,13 +191,6 @@ build/timestamps/check-requires-timestamp: $(SRC_JS) $(EXAMPLES_JS) \
@python bin/check-requires.py $(CLOSURE_LIB) $^
@touch $@
build/timestamps/check-whitespace-timestamp: $(SRC_JS) $(EXAMPLES_JS) \
$(SPEC_JS) $(SPEC_RENDERING_JS) \
$(SRC_JSDOC)
@mkdir -p $(@D)
@python bin/check-whitespace.py $^
@touch $@
build/compiled-examples/all.js: $(EXAMPLES_JS)
@mkdir -p $(@D)
@python bin/combine-examples.py $^ > $@
@@ -231,13 +222,6 @@ build/timestamps/jsdoc-$(BRANCH)-timestamp: config/jsdoc/api/index.md \
./node_modules/.bin/jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json -d $(BUILD_HOSTED)/apidoc
@touch $@
build/timestamps/gjslint-timestamp: $(SRC_JS) $(SPEC_JS) $(SPEC_RENDERING_JS) \
$(EXAMPLES_JS)
@mkdir -p $(@D)
@echo "Running gjslint..."
@gjslint --jslint_error=all --custom_jsdoc_tags=event,fires,function,classdesc,api,observable --strict $?
@touch $@
$(BUILD_HOSTED_EXAMPLES_JS): $(BUILD_HOSTED)/examples/%.js: build/examples/%.js
@mkdir -p $(@D)
@python bin/split-example.py $< $(@D)
@@ -271,13 +255,12 @@ $(BUILD_HOSTED)/build/ol-deps.js: host-libraries
--root_with_prefix "$(BUILD_HOSTED)/closure-library/third_party ../../third_party" \
--output_file $@
build/timestamps/jshint-timestamp: $(SRC_JS) $(SPEC_JS) $(SPEC_RENDERING_JS) \
build/timestamps/eslint-timestamp: $(SRC_JS) $(SPEC_JS) $(SPEC_RENDERING_JS) \
$(TASKS_JS) $(EXAMPLES_JS) \
examples/resources/common.js \
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
@echo "Running jshint..."
@./node_modules/.bin/jshint --verbose $?
@echo "Running eslint..."
@./node_modules/.bin/eslint $?
@touch $@
build/timestamps/node-modules-timestamp: package.json

View File

@@ -2,6 +2,7 @@
[![Travis CI Status](https://secure.travis-ci.org/openlayers/ol3.svg)](http://travis-ci.org/#!/openlayers/ol3)
[![Coverage Status](https://coveralls.io/repos/openlayers/ol3/badge.svg?branch=master)](https://coveralls.io/r/openlayers/ol3?branch=master)
[![OSGeo Project](https://img.shields.io/badge/OSGeo-Project-brightgreen.svg)](http://osgeo.org/)
[OpenLayers 3](http://openlayers.org/) is a high-performance, feature-packed library for creating interactive maps on the web.

View File

@@ -1,46 +0,0 @@
import logging
import re
import sys
logging.basicConfig(format='%(asctime)s %(name)s: %(message)s',
level=logging.INFO)
logger = logging.getLogger('check-whitespace')
CR_RE = re.compile(r'\r')
LEADING_WHITESPACE_RE = re.compile(r'\s+')
TRAILING_WHITESPACE_RE = re.compile(r'\s+\n\Z')
NO_NEWLINE_RE = re.compile(r'[^\n]\Z')
ALL_WHITESPACE_RE = re.compile(r'\s+\Z')
def check_whitespace(*filenames):
errors = 0
for filename in sorted(filenames):
whitespace = False
for lineno, line in enumerate(open(filename, 'rU')):
if lineno == 0 and LEADING_WHITESPACE_RE.match(line):
logger.info('%s:%d: leading whitespace', filename, lineno + 1)
errors += 1
if CR_RE.search(line):
logger.info('%s:%d: carriage return character in line',
filename, lineno + 1)
errors += 1
if TRAILING_WHITESPACE_RE.search(line):
logger.info('%s:%d: trailing whitespace', filename, lineno + 1)
errors += 1
if NO_NEWLINE_RE.search(line):
logger.info('%s:%d: no newline at end of file', filename,
lineno + 1)
errors += 1
whitespace = ALL_WHITESPACE_RE.match(line)
if whitespace:
logger.info('%s: trailing whitespace at end of file', filename)
errors += 1
return errors
if __name__ == "__main__":
errors = check_whitespace(*sys.argv[1:])
if errors > 0:
logger.error('%d whitespace errors' % (errors,))
sys.exit(1)

View File

@@ -1,5 +1,86 @@
## Upgrade notes
### v3.14.0
#### Internet Explorer 9 support
As of this release, OpenLayers requires a `requestAnimationFrame`/`cancelAnimationFrame` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features/#requestAnimationFrame.
#### Layer pre-/postcompose event changes
It is the responsibility of the application to undo any canvas transform changes at the end of a layer 'precompose' or 'postcompose' handler. Previously, it was ok to set a null transform. The API now guarantees a device pixel coordinate system on the canvas with its origin in the top left corner of the map. However, applications should not rely on the underlying canvas being the same size as the visible viewport.
Old code:
```js
layer.on('precompose', function(e) {
// rely on canvas dimensions to move coordinate origin to center
e.context.translate(e.context.canvas.width / 2, e.context.canvas.height / 2);
e.context.scale(3, 3);
// draw an x in the center of the viewport
e.context.moveTo(-20, -20);
e.context.lineTo(20, 20);
e.context.moveTo(-20, 20);
e.context.lineTo(20, -20);
// rely on the canvas having a null transform
e.context.setTransform(1, 0, 0, 1, 0, 0);
});
```
New code:
```js
layer.on('precompose', function(e) {
// use map size and pixel ratio to move coordinate origin to center
var size = map.getSize();
var pixelRatio = e.frameState.pixelRatio;
e.context.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
e.context.scale(3, 3);
// draw an x in the center of the viewport
e.context.moveTo(-20, -20);
e.context.lineTo(20, 20);
e.context.moveTo(-20, 20);
e.context.lineTo(20, -20);
// undo all transforms
e.context.scale(1 / 3, 1 / 3);
e.context.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
});
```
### v3.13.0
#### `proj4js` integration
Before this release, OpenLayers depended on the global proj4 namespace. When using a module loader like Browserify, you might not want to depend on the global `proj4` namespace. You can use the `ol.proj.setProj4` function to set the proj4 function object. For example in a browserify ES6 environment:
```js
import ol from 'openlayers';
import proj4 from 'proj4';
ol.proj.setProj4(proj4);
```
#### `ol.source.TileJSON` changes
The `ol.source.TileJSON` now uses `XMLHttpRequest` to load the TileJSON instead of JSONP with callback.
When using server without proper CORS support, `jsonp: true` option can be passed to the constructor to get the same behavior as before:
```js
new ol.source.TileJSON({
url: 'http://serverwithoutcors.com/tilejson.json',
jsonp: true
})
```
Also for Mapbox v3, make sure you use urls ending with `.json` (which are able to handle both `XMLHttpRequest` and JSONP) instead of `.jsonp`.
### v3.12.0
#### `ol.Map#forEachFeatureAtPixel` changes
The optional `layerFilter` function is now also called for unmanaged layers. To get the same behaviour as before, wrap your layer filter code in an if block like this:
```js
function layerFilter(layer) {
if (map.getLayers().getArray().indexOf(layer) !== -1) {
// existing layer filter code
}
}
```
### v3.11.0
#### `ol.format.KML` changes
@@ -46,6 +127,12 @@ but with additional css:
With the introduction of true vector tile support, `ol.source.TileVector` becomes obsolete. Change your code to use `ol.layer.VectorTile` and `ol.source.VectorTile` instead of `ol.layer.Vector` and `ol.source.TileVector`.
#### `ol.Map#forEachFeatureAtPixel` changes for unmanaged layers
`ol.Map#forEachFeatureAtPixel` will still be called for unmanaged layers, but the 2nd argument to the callback function will be `null` instead of a reference to the unmanaged layer. This brings back the behavior of the abandoned `ol.FeatureOverlay` that was replaced by unmanaged layers.
If you are affected by this change, please change your unmanaged layer to a regular layer by using e.g. `ol.Map#addLayer` instead of `ol.layer.Layer#setMap`.
### v3.10.0
#### `ol.layer.Layer` changes

136
changelog/v3.11.0.md Normal file
View File

@@ -0,0 +1,136 @@
# v3.11.0
## Summary
The v3.11.0 release includes features and fixes from 73 pull requests since the v3.10.1 release. New features and improvements include:
* Support for raster reprojection - load raster sources in one projection and view them in another.
* Support for Mapbox Vector Tiles!
* Improved KML support, GeoJSON & TopoJSON fixes, and much more. See below for the full list.
## Upgrade notes
#### `ol.format.KML` changes
KML icons are scaled 50% so that the rendering better matches Google Earth rendering.
If a KML placemark has a name and is a point, an `ol.style.Text` is created with the name displayed to the right of the icon (if there is an icon).
This can be controlled with the showPointNames option which defaults to true.
To disable rendering of the point names for placemarks, use the option:
new ol.format.KML({ showPointNames: false });
#### `ol.interaction.DragBox` and `ol.interaction.DragZoom` changes
Styling is no longer done with `ol.Style`, but with pure CSS. The `style` constructor option is no longer required, and no longer available. Instead, there is a `className` option for the CSS selector. The default for `ol.interaction.DragBox` is `ol-dragbox`, and `ol.interaction.DragZoom` uses `ol-dragzoom`. If you previously had
```js
new ol.interaction.DragZoom({
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'red',
width: 3
}),
fill: new ol.style.Fill({
color: [255, 255, 255, 0.4]
})
})
});
```
you'll now just need
```js
new ol.interaction.DragZoom();
```
but with additional css:
```css
.ol-dragzoom {
border-color: red;
border-width: 3px;
background-color: rgba(255,255,255,0.4);
}
```
#### Removal of `ol.source.TileVector`
With the introduction of true vector tile support, `ol.source.TileVector` becomes obsolete. Change your code to use `ol.layer.VectorTile` and `ol.source.VectorTile` instead of `ol.layer.Vector` and `ol.source.TileVector`.
#### `ol.Map#forEachFeatureAtPixel` changes for unmanaged layers
`ol.Map#forEachFeatureAtPixel` will still be called for unmanaged layers, but the 2nd argument to the callback function will be `null` instead of a reference to the unmanaged layer. This brings back the behavior of the abandoned `ol.FeatureOverlay` that was replaced by unmanaged layers.
If you are affected by this change, please change your unmanaged layer to a regular layer by using e.g. `ol.Map#addLayer` instead of `ol.layer.Layer#setMap`.
## Full list of changes
* [#4394](https://github.com/openlayers/ol3/pull/4394) - Allow ol.Object property update without notification. ([@DavidHequet](https://github.com/DavidHequet))
* [#4395](https://github.com/openlayers/ol3/pull/4395) - Flag ol.style.Text setOffsetX and Y as @api. ([@adube](https://github.com/adube))
* [#4393](https://github.com/openlayers/ol3/pull/4393) - Faster vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#4392](https://github.com/openlayers/ol3/pull/4392) - Update clean-css to version 3.4.7 🚀 ([@openlayers](https://github.com/openlayers))
* [#4391](https://github.com/openlayers/ol3/pull/4391) - Pass null as forEachFeatureAtPixel layer arg for unmanaged layers ([@ahocevar](https://github.com/ahocevar))
* [#4390](https://github.com/openlayers/ol3/pull/4390) - Fix usage of mocha-phantomjs-core after update ([@ahocevar](https://github.com/ahocevar))
* [#4387](https://github.com/openlayers/ol3/pull/4387) - Add default argument to getRendererFromQueryString ([@ahocevar](https://github.com/ahocevar))
* [#4376](https://github.com/openlayers/ol3/pull/4376) - Make KML format ignore image styles that aren't icons ([@elemoine](https://github.com/elemoine))
* [#4385](https://github.com/openlayers/ol3/pull/4385) - Don't transform the scale specified by the user ([@oterral](https://github.com/oterral))
* [#4388](https://github.com/openlayers/ol3/pull/4388) - Quick-fix running tests with PhantomJS ([@ahocevar](https://github.com/ahocevar))
* [#4378](https://github.com/openlayers/ol3/pull/4378) - Add a writeStyles option to KML format ([@elemoine](https://github.com/elemoine))
* [#4375](https://github.com/openlayers/ol3/pull/4375) - Fixed documentation typo (ol.source.ImageWMS) ([@simonseyock](https://github.com/simonseyock))
* [#4371](https://github.com/openlayers/ol3/pull/4371) - Fix typo in closure compilation tutorial ([@dtreiter](https://github.com/dtreiter))
* [#4370](https://github.com/openlayers/ol3/pull/4370) - Improve ol.interaction.Select#getLayer documentation. ([@jonataswalker](https://github.com/jonataswalker))
* [#4365](https://github.com/openlayers/ol3/pull/4365) - Update fs-extra to version 0.26.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#4366](https://github.com/openlayers/ol3/pull/4366) - Update resemblejs to version 2.0.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#4368](https://github.com/openlayers/ol3/pull/4368) - Append KML placemark text style to existing styles ([@marcjansen](https://github.com/marcjansen))
* [#4361](https://github.com/openlayers/ol3/pull/4361) - Make GPX format not fail on unsupported geometries ([@elemoine](https://github.com/elemoine))
* [#4360](https://github.com/openlayers/ol3/pull/4360) - Update getExtent return value jsdoc tag ([@fredj](https://github.com/fredj))
* [#4359](https://github.com/openlayers/ol3/pull/4359) - Update closure-util to version 1.9.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4357](https://github.com/openlayers/ol3/pull/4357) - Update all dependencies. ([@openlayers](https://github.com/openlayers))
* [#4356](https://github.com/openlayers/ol3/pull/4356) - Update Metalsmith and layouts plugin. ([@tschaub](https://github.com/tschaub))
* [#4355](https://github.com/openlayers/ol3/pull/4355) - Update PhantomJS. ([@tschaub](https://github.com/tschaub))
* [#4353](https://github.com/openlayers/ol3/pull/4353) - Resolve path to jsdoc-fork. ([@tschaub](https://github.com/tschaub))
* [#3627](https://github.com/openlayers/ol3/pull/3627) - Make package.json compatible for npm frontend use. ([@ThomasG77](https://github.com/ThomasG77))
* [#4163](https://github.com/openlayers/ol3/pull/4163) - Fixes for building with Node 4.x. ([@tschaub](https://github.com/tschaub))
* [#4347](https://github.com/openlayers/ol3/pull/4347) - Use require.resolve() to find jsdoc. ([@tschaub](https://github.com/tschaub))
* [#4291](https://github.com/openlayers/ol3/pull/4291) - Add 'Move a feature along a line' example. ([@jonataswalker](https://github.com/jonataswalker))
* [#4344](https://github.com/openlayers/ol3/pull/4344) - Allow different resolutions in x and y direction for ol.source.ImageStatic ([@bartvde](https://github.com/bartvde))
* [#4339](https://github.com/openlayers/ol3/pull/4339) - Make sure drawImage width and height are not too big ([@bartvde](https://github.com/bartvde))
* [#4334](https://github.com/openlayers/ol3/pull/4334) - Check view extent within image extent ([@ahocevar](https://github.com/ahocevar))
* [#4332](https://github.com/openlayers/ol3/pull/4332) - Fix write out GeoJSON features with id equal to 0 ([@fredj](https://github.com/fredj))
* [#4331](https://github.com/openlayers/ol3/pull/4331) - Allow TopoJSON features with id equal to 0 ([@fredj](https://github.com/fredj))
* [#4330](https://github.com/openlayers/ol3/pull/4330) - ol.format.TopoJSON is read only, update the jsdoc ([@openlayers](https://github.com/openlayers))
* [#4327](https://github.com/openlayers/ol3/pull/4327) - Allow GeoJSON features with id equal to 0 ([@fredj](https://github.com/fredj))
* [#4219](https://github.com/openlayers/ol3/pull/4219) - Support tiled vector data and Mapbox vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#4322](https://github.com/openlayers/ol3/pull/4322) - Add wrapX override support for ol.source.Cluster ([@FRizZL](https://github.com/FRizZL))
* [#4316](https://github.com/openlayers/ol3/pull/4316) - Render name labels if the geometry is a point in KML format (@tamarmot) ([@marcjansen](https://github.com/marcjansen))
* [#4313](https://github.com/openlayers/ol3/pull/4313) - Align logos nicely with attribution text ([@ahocevar](https://github.com/ahocevar))
* [#4297](https://github.com/openlayers/ol3/pull/4297) - Create standalone versions of ol.ext packages ([@ahocevar](https://github.com/ahocevar))
* [#4302](https://github.com/openlayers/ol3/pull/4302) - scale icons by 0.5 so they are not huge ([@tamarmot](https://github.com/tamarmot))
* [#4301](https://github.com/openlayers/ol3/pull/4301) - Remove jshint -W069 tags in source code ([@fredj](https://github.com/fredj))
* [#4273](https://github.com/openlayers/ol3/pull/4273) - Expand docs on ol.source url prop. ([@Barryrowe](https://github.com/Barryrowe))
* [#4293](https://github.com/openlayers/ol3/pull/4293) - Refine the pull request process ([@ahocevar](https://github.com/ahocevar))
* [#4289](https://github.com/openlayers/ol3/pull/4289) - Restrict maxZoom of the static-image example ([@ahocevar](https://github.com/ahocevar))
* [#4275](https://github.com/openlayers/ol3/pull/4275) - Fix ol.events.condition.mouseOnly parameter type ([@fredj](https://github.com/fredj))
* [#4248](https://github.com/openlayers/ol3/pull/4248) - Use Math.cosh of ES6/2015 if available ([@marcjansen](https://github.com/marcjansen))
* [#4286](https://github.com/openlayers/ol3/pull/4286) - Add a color manipulation example. ([@tschaub](https://github.com/tschaub))
* [#4122](https://github.com/openlayers/ol3/pull/4122) - Raster reprojection ([@klokantech](https://github.com/klokantech))
* [#4283](https://github.com/openlayers/ol3/pull/4283) - Flag ol.tilegrid.TileGrid getTileCoordExtent as @api ([@adube](https://github.com/adube))
* [#4280](https://github.com/openlayers/ol3/pull/4280) - Use overlay container instead of viewport for ol.render.Box ([@ahocevar](https://github.com/ahocevar))
* [#4278](https://github.com/openlayers/ol3/pull/4278) - Use DOM instead of map canvas for ol.render.Box ([@ahocevar](https://github.com/ahocevar))
* [#4277](https://github.com/openlayers/ol3/pull/4277) - Improve the box select example ([@fredj](https://github.com/fredj))
* [#4276](https://github.com/openlayers/ol3/pull/4276) - Better ol.events.condition.platformModifierKeyOnly documentation ([@fredj](https://github.com/fredj))
* [#4102](https://github.com/openlayers/ol3/pull/4102) - Export ol.Observable#dispatchEvent function ([@fredj](https://github.com/fredj))
* [#4261](https://github.com/openlayers/ol3/pull/4261) - ol.events.condition.mouseOnly may be wrong ([@fredj](https://github.com/fredj))
* [#4269](https://github.com/openlayers/ol3/pull/4269) - Fix Zoom control duration option - allow `0` as value ([@adube](https://github.com/adube))
* [#4268](https://github.com/openlayers/ol3/pull/4268) - Add method for retrieving ol.Overlay by id ([@jonataswalker](https://github.com/jonataswalker))
* [#4257](https://github.com/openlayers/ol3/pull/4257) - Remove unused ol.math-methods ([@marcjansen](https://github.com/marcjansen))
* [#4270](https://github.com/openlayers/ol3/pull/4270) - Fix Keyboard zoom interation options ([@adube](https://github.com/adube))
* [#4272](https://github.com/openlayers/ol3/pull/4272) - Allow the DragZoom interaction created in defaults to use zoomDuration option. ([@adube](https://github.com/adube))
* [#4271](https://github.com/openlayers/ol3/pull/4271) - Fix DragZoom interaction duration, allow `0` value ([@adube](https://github.com/adube))
* [#4267](https://github.com/openlayers/ol3/pull/4267) - Example usability improvements ([@ahocevar](https://github.com/ahocevar))
* [#4263](https://github.com/openlayers/ol3/pull/4263) - Add back CSSProperties.prototype.touchAction extern ([@fredj](https://github.com/fredj))
* [#4259](https://github.com/openlayers/ol3/pull/4259) - Remove use of toDegrees/toRadians util functions ([@marcjansen](https://github.com/marcjansen))
* [#4258](https://github.com/openlayers/ol3/pull/4258) - Remove usage of goog.dom.TagName enum ([@marcjansen](https://github.com/marcjansen))
* [#4255](https://github.com/openlayers/ol3/pull/4255) - Fix zoom slider width for retina displays ([@ahocevar](https://github.com/ahocevar))
* [#4249](https://github.com/openlayers/ol3/pull/4249) - Make whole example box clickable ([@ahocevar](https://github.com/ahocevar))
* [#4045](https://github.com/openlayers/ol3/pull/4045) - Add parser for dimension property from WMTS Capabilities.xml ([@Jenselme](https://github.com/Jenselme))
* [#4161](https://github.com/openlayers/ol3/pull/4161) - Add `translatestart`, `translateend` and `translating` events to `ol.interaction.Translate` ([@jonataswalker](https://github.com/jonataswalker))
* [#4186](https://github.com/openlayers/ol3/pull/4186) - Do not export ol.webgl.Context ([@elemoine](https://github.com/elemoine))
* [#4239](https://github.com/openlayers/ol3/pull/4239) - Changing highlighted to highlight ([@austinkeeley](https://github.com/austinkeeley))
* [#3727](https://github.com/openlayers/ol3/pull/3727) - Added getOverviewMap getter method in overviewmapcontrol.js ([@bogdanvaduva](https://github.com/bogdanvaduva))

11
changelog/v3.11.1.md Normal file
View File

@@ -0,0 +1,11 @@
# v3.11.1
## Summary
The v3.11.1 release is a patch release that addresses a few regressions in the v3.11.0 release. See the [v3.11.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.11.0) for details on upgrading from v3.10.
## Fixes
* [#4413](https://github.com/openlayers/ol3/pull/4413) - Revert "Merge pull request #4339 from bartvde/issue-4337" ([@bartvde](https://github.com/bartvde))
* [#4412](https://github.com/openlayers/ol3/pull/4412) - Revert "Merge pull request #4344 from bartvde/issue-2844" ([@ahocevar](https://github.com/ahocevar))
* [#4408](https://github.com/openlayers/ol3/pull/4408) - Use ratio when calculating ImageWMS width and height ([@ahocevar](https://github.com/ahocevar))

11
changelog/v3.11.2.md Normal file
View File

@@ -0,0 +1,11 @@
# v3.11.2
## Summary
The v3.11.2 release is a patch release that addresses a few regressions in the v3.11.1 release. See the [v3.11.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.11.0) for details on upgrading from v3.10.
## Fixes
* [#4450](https://github.com/openlayers/ol3/pull/4450) - Fix select interaction regression caused by #4391 ([@ahocevar](https://github.com/ahocevar))
* [#4448](https://github.com/openlayers/ol3/pull/4448) - Check ol.source.UrlTile#urls property for null value ([@fredj](https://github.com/fredj))
* [#4439](https://github.com/openlayers/ol3/pull/4439) - Allow '' for crossOrigin (as Anonymous alias) ([@ahocevar](https://github.com/ahocevar))

96
changelog/v3.12.0.md Normal file
View File

@@ -0,0 +1,96 @@
# v3.12.0
## Summary
The v3.12.0 release includes features and fixes from 71 pull requests since the v3.11.2 release. New features and improvements include:
* Tile coordinate wrapping for raster reprojection.
* Support for multi-line labels.
* Allow rendering geometries to an arbitrary canvas (useful for vector legends).
## Upgrade notes
#### `ol.Map#forEachFeatureAtPixel` changes
The optional `layerFilter` function is now also called for unmanaged layers. To get the same behaviour as before, wrap your layer filter code in an if block like this:
```js
function layerFilter(layer) {
if (map.getLayers().getArray().indexOf(layer) !== -1) {
// existing layer filter code
}
}
```
## Full list of changes
* [#4559](https://github.com/openlayers/ol3/pull/4559) - Fix up failing KML test in Firefox ([@bartvde](https://github.com/bartvde))
* [#4561](https://github.com/openlayers/ol3/pull/4561) - Exclude feature loader MVT test from IE9 ([@bartvde](https://github.com/bartvde))
* [#4552](https://github.com/openlayers/ol3/pull/4552) - Make sure compiled code calls ol.VectorTile#setProjection ([@ahocevar](https://github.com/ahocevar))
* [#4551](https://github.com/openlayers/ol3/pull/4551) - Handle tile coordinate wrapping when reprojecting raster tiles ([@klokantech](https://github.com/klokantech))
* [#4544](https://github.com/openlayers/ol3/pull/4544) - Update vector-tile to version 1.2.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4537](https://github.com/openlayers/ol3/pull/4537) - Allow specifying non default DPI on ol.source.TileArcGISRest ([@bartvde](https://github.com/bartvde))
* [#4548](https://github.com/openlayers/ol3/pull/4548) - Improve vector tile related docs ([@ahocevar](https://github.com/ahocevar))
* [#4549](https://github.com/openlayers/ol3/pull/4549) - Update vector label example ([@tsauerwein](https://github.com/tsauerwein))
* [#4512](https://github.com/openlayers/ol3/pull/4512) - Support for multi-line labels (improved) ([@flightaware](https://github.com/flightaware))
* [#4546](https://github.com/openlayers/ol3/pull/4546) - Update coveralls to version 2.11.6 🚀 ([@openlayers](https://github.com/openlayers))
* [#4539](https://github.com/openlayers/ol3/pull/4539) - Ignore index.html in example list ([@fredj](https://github.com/fredj))
* [#4536](https://github.com/openlayers/ol3/pull/4536) - Register the change callback when the tile is enqueued ([@fredj](https://github.com/fredj))
* [#4528](https://github.com/openlayers/ol3/pull/4528) - Remove redundant code from ol.featureloader.tile ([@ahocevar](https://github.com/ahocevar))
* [#4535](https://github.com/openlayers/ol3/pull/4535) - Do not use an array for a single style ([@ahocevar](https://github.com/ahocevar))
* [#4532](https://github.com/openlayers/ol3/pull/4532) - Mark olx.source.WMTSOptions#dimensions as not null ([@fredj](https://github.com/fredj))
* [#4530](https://github.com/openlayers/ol3/pull/4530) - Remove use of goog.isNull ([@fredj](https://github.com/fredj))
* [#4529](https://github.com/openlayers/ol3/pull/4529) - Update coding style rules ([@fredj](https://github.com/fredj))
* [#4518](https://github.com/openlayers/ol3/pull/4518) - Add support for OSM vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#4524](https://github.com/openlayers/ol3/pull/4524) - Add example for rendering custom point symbols ([@ahocevar](https://github.com/ahocevar))
* [#4523](https://github.com/openlayers/ol3/pull/4523) - Allow rendering geometries to an arbitrary canvas ([@ahocevar](https://github.com/ahocevar))
* [#4525](https://github.com/openlayers/ol3/pull/4525) - Make render tests work on more devices ([@ahocevar](https://github.com/ahocevar))
* [#4515](https://github.com/openlayers/ol3/pull/4515) - Accept HTMLCanvasElement for an icon's img ([@ahocevar](https://github.com/ahocevar))
* [#4521](https://github.com/openlayers/ol3/pull/4521) - Fix imagestyle docs ([@ahocevar](https://github.com/ahocevar))
* [#4508](https://github.com/openlayers/ol3/pull/4508) - Remove unused files ([@fredj](https://github.com/fredj))
* [#4487](https://github.com/openlayers/ol3/pull/4487) - Remove fallback css color ([@fredj](https://github.com/fredj))
* [#4502](https://github.com/openlayers/ol3/pull/4502) - Improve ol.source.WMTS.optionsFromCapabilities jsdoc layout ([@fredj](https://github.com/fredj))
* [#4511](https://github.com/openlayers/ol3/pull/4511) - Minor code cleanup ([@fredj](https://github.com/fredj))
* [#4510](https://github.com/openlayers/ol3/pull/4510) - Adding a check just in case the projection is not defined/supported ([@GeoCat](https://github.com/GeoCat))
* [#4505](https://github.com/openlayers/ol3/pull/4505) - Remove use of goog.object.getKeys ([@fredj](https://github.com/fredj))
* [#4472](https://github.com/openlayers/ol3/pull/4472) - Do not ignore layer filter for unmanaged layers ([@ahocevar](https://github.com/ahocevar))
* [#4476](https://github.com/openlayers/ol3/pull/4476) - Remove use of goog.functions.constant ([@fredj](https://github.com/fredj))
* [#4484](https://github.com/openlayers/ol3/pull/4484) - Remove use of goog.dom.createDom ([@fredj](https://github.com/fredj))
* [#4486](https://github.com/openlayers/ol3/pull/4486) - Remove note about DragZoom and vector support ([@fredj](https://github.com/fredj))
* [#4483](https://github.com/openlayers/ol3/pull/4483) - Remove use of goog.object.containsKey ([@fredj](https://github.com/fredj))
* [#4475](https://github.com/openlayers/ol3/pull/4475) - Fix up failing tests in Internet Explorer ([@bartvde](https://github.com/bartvde))
* [#4485](https://github.com/openlayers/ol3/pull/4485) - Use appendChild instead of goog.dom.append ([@fredj](https://github.com/fredj))
* [#4481](https://github.com/openlayers/ol3/pull/4481) - Remove blur workaround in ol.control.Attribution ([@fredj](https://github.com/fredj))
* [#4479](https://github.com/openlayers/ol3/pull/4479) - Export ol.interaction.Interaction#getMap function ([@fredj](https://github.com/fredj))
* [#4478](https://github.com/openlayers/ol3/pull/4478) - Fix olx.control.FullScreenOptions#label apidoc ([@fredj](https://github.com/fredj))
* [#4477](https://github.com/openlayers/ol3/pull/4477) - Replace goog.nullFunction with ol.nullFunction ([@fredj](https://github.com/fredj))
* [#4474](https://github.com/openlayers/ol3/pull/4474) - Remove use of goog.dom.createElement and goog.dom.createTextNode ([@fredj](https://github.com/fredj))
* [#4469](https://github.com/openlayers/ol3/pull/4469) - Upgrade to JSTS 0.17.0 in example ([@bjornharrtell](https://github.com/bjornharrtell))
* [#4465](https://github.com/openlayers/ol3/pull/4465) - Update handlebars to version 4.0.5 🚀 ([@openlayers](https://github.com/openlayers))
* [#4464](https://github.com/openlayers/ol3/pull/4464) - Merge in changes from the 3.11.2 release. ([@openlayers](https://github.com/openlayers))
* [#4463](https://github.com/openlayers/ol3/pull/4463) - Remove use of goog.array.sort ([@fredj](https://github.com/fredj))
* [#4450](https://github.com/openlayers/ol3/pull/4450) - Fix select interaction regression caused by #4391 ([@ahocevar](https://github.com/ahocevar))
* [#4458](https://github.com/openlayers/ol3/pull/4458) - Remove extra space in type annotation ([@fredj](https://github.com/fredj))
* [#4420](https://github.com/openlayers/ol3/pull/4420) - Remove Bootstrap and jQuery from example snippets. ([@openlayers](https://github.com/openlayers))
* [#4442](https://github.com/openlayers/ol3/pull/4442) - Use jsdoc@3.4.0. ([@tschaub](https://github.com/tschaub))
* [#4449](https://github.com/openlayers/ol3/pull/4449) - Change the label of the full screen button to be more intuitive ([@bartvde](https://github.com/bartvde))
* [#4448](https://github.com/openlayers/ol3/pull/4448) - Check ol.source.UrlTile#urls property for null value ([@fredj](https://github.com/fredj))
* [#4440](https://github.com/openlayers/ol3/pull/4440) - Raster reprojection tutorial ([@klokantech](https://github.com/klokantech))
* [#4439](https://github.com/openlayers/ol3/pull/4439) - Allow '' for crossOrigin (as Anonymous alias) ([@ahocevar](https://github.com/ahocevar))
* [#4429](https://github.com/openlayers/ol3/pull/4429) - Dispatch a change event only if the value changes ([@fredj](https://github.com/fredj))
* [#4435](https://github.com/openlayers/ol3/pull/4435) - Remove unnecessary cast ([@fredj](https://github.com/fredj))
* [#4434](https://github.com/openlayers/ol3/pull/4434) - Remove unused local variables ([@fredj](https://github.com/fredj))
* [#4433](https://github.com/openlayers/ol3/pull/4433) - Remove unused local variables ([@fredj](https://github.com/fredj))
* [#4140](https://github.com/openlayers/ol3/pull/4140) - Add flight animation example ([@tsauerwein](https://github.com/tsauerwein))
* [#4428](https://github.com/openlayers/ol3/pull/4428) - Add imageSize regression test for ol.source.ImageWMS ([@ahocevar](https://github.com/ahocevar))
* [#4426](https://github.com/openlayers/ol3/pull/4426) - Improve ol.source.StaticImage ([@ahocevar](https://github.com/ahocevar))
* [#4425](https://github.com/openlayers/ol3/pull/4425) - Test number property with !== undefined ([@fredj](https://github.com/fredj))
* [#4423](https://github.com/openlayers/ol3/pull/4423) - Update mocha to version 2.3.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4416](https://github.com/openlayers/ol3/pull/4416) - Update clean-css to version 3.4.8 🚀 ([@openlayers](https://github.com/openlayers))
* [#4415](https://github.com/openlayers/ol3/pull/4415) - Scale StaticImage image to imageExtent ([@ahocevar](https://github.com/ahocevar))
* [#4414](https://github.com/openlayers/ol3/pull/4414) - Remove ol.ImageUrlFunction ([@ahocevar](https://github.com/ahocevar))
* [#4389](https://github.com/openlayers/ol3/pull/4389) - Smooth transitions on parameter changes ([@elemoine](https://github.com/elemoine))
* [#4410](https://github.com/openlayers/ol3/pull/4410) - Merge in changes from the 3.11.1 release. ([@openlayers](https://github.com/openlayers))
* [#4401](https://github.com/openlayers/ol3/pull/4401) - Allow style function to return a style. ([@tschaub](https://github.com/tschaub))
* [#4404](https://github.com/openlayers/ol3/pull/4404) - Set correctly the opt_this parameter when writing a KML document ([@oterral](https://github.com/oterral))
* [#4397](https://github.com/openlayers/ol3/pull/4397) - Update glob to version 6.0.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#4362](https://github.com/openlayers/ol3/pull/4362) - Rotate control now takes optional resetNorth function. ([@tamarmot](https://github.com/tamarmot))

11
changelog/v3.12.1.md Normal file
View File

@@ -0,0 +1,11 @@
# v3.12.1
## Summary
The v3.12.1 release is a patch release that addresses a few regressions in the v3.12.0 release. See the [v3.12.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.12.0) for details on upgrading from v3.11.
## Fixes
* [#4578](https://github.com/openlayers/ol3/pull/4578) - Fix apidoc landing page markup ([@ahocevar](https://github.com/ahocevar))
* [#4570](https://github.com/openlayers/ol3/pull/4570) - Rename defaultSort to numberSafeCompareFunction on ol.array ([@bartvde](https://github.com/bartvde))
* [#4567](https://github.com/openlayers/ol3/pull/4567) - Always pass on a compare function to sort ([@bartvde](https://github.com/bartvde))

109
changelog/v3.13.0.md Normal file
View File

@@ -0,0 +1,109 @@
# v3.13.0
## Summary
The v3.13.0 release includes features and fixes from 68 pull requests since the v3.12.1 release. New features and improvements include:
* Improved tiles rendering for the canvas renderer
* Improved MapQuest rendering
* Add color option to ol.style.Icon
* Load TileJSON sources via XMLHttpRequest by default
* Add new ol.geom.LineString#getCoordinateAt function
* Simplify meters per unit handling
* Use ESLint as a replacement for gjslint.py and jshint
## Upgrade notes
#### `proj4js` integration
Before this release, OpenLayers depended on the global proj4 namespace. When using a module loader like Browserify, you might not want to depend on the global `proj4` namespace. You can use the `ol.proj.setProj4` function to set the proj4 function object. For example in a browserify ES6 environment:
```js
import ol from 'openlayers';
import proj4 from 'proj4';
ol.proj.setProj4(proj4);
```
#### `ol.source.TileJSON` changes
The `ol.source.TileJSON` now uses `XMLHttpRequest` to load the TileJSON instead of JSONP with callback.
When using server without proper CORS support, `jsonp: true` option can be passed to the constructor to get the same behavior as before:
```js
new ol.source.TileJSON({
url: 'http://serverwithoutcors.com/tilejson.json',
jsonp: true
})
```
Also for Mapbox v3, make sure you use urls ending with `.json` (which are able to handle both `XMLHttpRequest` and JSONP) instead of `.jsonp`.
## Full list of changes
* [#4694](https://github.com/openlayers/ol3/pull/4694) - Fix eslint errors in wms-time example ([@fredj](https://github.com/fredj))
* [#4527](https://github.com/openlayers/ol3/pull/4527) - Add support for smooth TileWMS dimensions ([@bartvde](https://github.com/bartvde))
* [#4691](https://github.com/openlayers/ol3/pull/4691) - Updated Bing Maps key. ([@tschaub](https://github.com/tschaub))
* [#4673](https://github.com/openlayers/ol3/pull/4673) - Respect fixed tile url functions when setting url(s) ([@ahocevar](https://github.com/ahocevar))
* [#4689](https://github.com/openlayers/ol3/pull/4689) - Revert "Do not render in handleDownEvent" ([@openlayers](https://github.com/openlayers))
* [#4688](https://github.com/openlayers/ol3/pull/4688) - Give map a focus-outline in accessible-example ([@marcjansen](https://github.com/marcjansen))
* [#4642](https://github.com/openlayers/ol3/pull/4642) - Move the icon style color to its own example ([@alexbrault](https://github.com/alexbrault))
* [#4685](https://github.com/openlayers/ol3/pull/4685) - Remove bin/check-whitespace.py ([@fredj](https://github.com/fredj))
* [#4684](https://github.com/openlayers/ol3/pull/4684) - Update eslint-config-openlayers to version 3.0.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4677](https://github.com/openlayers/ol3/pull/4677) - Make pixel projection handling work in compiled mode ([@ahocevar](https://github.com/ahocevar))
* [#4639](https://github.com/openlayers/ol3/pull/4639) - Remove use of goog.bind and use ES5 .bind. ([@nicholas-l](https://github.com/nicholas-l))
* [#4655](https://github.com/openlayers/ol3/pull/4655) - Update browserify to version 13.0.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4666](https://github.com/openlayers/ol3/pull/4666) - Add a 'boxdrag' event to ol.interaction.DragBox. Resolves #4563 . ([@WeaveTeam](https://github.com/WeaveTeam))
* [#4669](https://github.com/openlayers/ol3/pull/4669) - Remove reference to Closure Linter in CONTRIBUTING.md ([@fredj](https://github.com/fredj))
* [#4665](https://github.com/openlayers/ol3/pull/4665) - Update istanbul to version 0.4.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#4663](https://github.com/openlayers/ol3/pull/4663) - Update glob to version 6.0.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4667](https://github.com/openlayers/ol3/pull/4667) - Fix rendering of transparent MapQuest layer type ([@klokantech](https://github.com/klokantech))
* [#4661](https://github.com/openlayers/ol3/pull/4661) - Fixes #4654 Developer Documentation Updated ([@gaf-ag](https://github.com/gaf-ag))
* [#4658](https://github.com/openlayers/ol3/pull/4658) - Update jquery to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4659](https://github.com/openlayers/ol3/pull/4659) - Make sure icons show up in Safari ([@bartvde](https://github.com/bartvde))
* [#4652](https://github.com/openlayers/ol3/pull/4652) - Use map.getTargetElement instead of map.getTarget ([@fredj](https://github.com/fredj))
* [#4649](https://github.com/openlayers/ol3/pull/4649) - Missing parameter description for ol.source.Tile#getOpaque ([@klokantech](https://github.com/klokantech))
* [#4602](https://github.com/openlayers/ol3/pull/4602) - Use ESLint. ([@tschaub](https://github.com/tschaub))
* [#4628](https://github.com/openlayers/ol3/pull/4628) - Fix for reprojecting opaque tile sources ([@klokantech](https://github.com/klokantech))
* [#4618](https://github.com/openlayers/ol3/pull/4618) - Update resemblejs to version 2.1.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4647](https://github.com/openlayers/ol3/pull/4647) - Proper rounding for possibly negative numbers ([@ahocevar](https://github.com/ahocevar))
* [#4641](https://github.com/openlayers/ol3/pull/4641) - Remove extra options from icon example. ([@tschaub](https://github.com/tschaub))
* [#4629](https://github.com/openlayers/ol3/pull/4629) - Simplify scaleline calculation ([@ahocevar](https://github.com/ahocevar))
* [#4457](https://github.com/openlayers/ol3/pull/4457) - Add color option to ol.style.Icon ([@alexbrault](https://github.com/alexbrault))
* [#4638](https://github.com/openlayers/ol3/pull/4638) - Do not rely on projection extent ([@ahocevar](https://github.com/ahocevar))
* [#4635](https://github.com/openlayers/ol3/pull/4635) - Update async to version 1.5.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#4581](https://github.com/openlayers/ol3/pull/4581) - Do not render in handleDownEvent ([@ahocevar](https://github.com/ahocevar))
* [#4541](https://github.com/openlayers/ol3/pull/4541) - Add new ol.geom.LineString#getCoordinateAt function ([@fredj](https://github.com/fredj))
* [#4489](https://github.com/openlayers/ol3/pull/4489) - Update phantomjs to version 1.9.19 🚀 ([@openlayers](https://github.com/openlayers))
* [#4625](https://github.com/openlayers/ol3/pull/4625) - Use XHR by default to load TileJSON in ol.source.TileJSON ([@klokantech](https://github.com/klokantech))
* [#4622](https://github.com/openlayers/ol3/pull/4622) - Update fs-extra to version 0.26.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4630](https://github.com/openlayers/ol3/pull/4630) - Simplify meters per unit handling ([@ahocevar](https://github.com/ahocevar))
* [#4490](https://github.com/openlayers/ol3/pull/4490) - Update istanbul to version 0.4.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#4574](https://github.com/openlayers/ol3/pull/4574) - Added boxEndCondition to DragBoxOptions to replace the hardcoded chec… ([@WeaveTeam](https://github.com/WeaveTeam))
* [#4553](https://github.com/openlayers/ol3/pull/4553) - Update mustache to version 2.2.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#4626](https://github.com/openlayers/ol3/pull/4626) - Fixed documentation error ([@simonseyock](https://github.com/simonseyock))
* [#4606](https://github.com/openlayers/ol3/pull/4606) - Include originating MapBrowserEvent in ol.DragBoxEvent ([@fredj](https://github.com/fredj))
* [#4614](https://github.com/openlayers/ol3/pull/4614) - Remove checksum interface. ([@tschaub](https://github.com/tschaub))
* [#4613](https://github.com/openlayers/ol3/pull/4613) - Include own layer in layerFilter and only select unselected features ([@ahocevar](https://github.com/ahocevar))
* [#4612](https://github.com/openlayers/ol3/pull/4612) - Set oli.source.VectorEvent#feature to ol.Feature|undefined ([@fredj](https://github.com/fredj))
* [#4620](https://github.com/openlayers/ol3/pull/4620) - Fix olx.format.PolylineOptions#factor type ([@fredj](https://github.com/fredj))
* [#4621](https://github.com/openlayers/ol3/pull/4621) - Fix olx.format.GPXOptions#readExtensions type ([@fredj](https://github.com/fredj))
* [#4619](https://github.com/openlayers/ol3/pull/4619) - Add option to load TileJSON via XHR ([@klokantech](https://github.com/klokantech))
* [#4617](https://github.com/openlayers/ol3/pull/4617) - Add missing return type to GeoJSON format ([@gberaudo](https://github.com/gberaudo))
* [#4615](https://github.com/openlayers/ol3/pull/4615) - Adjust copyright to include 2016 ([@marcjansen](https://github.com/marcjansen))
* [#4616](https://github.com/openlayers/ol3/pull/4616) - Update closure-util to version 1.10.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4596](https://github.com/openlayers/ol3/pull/4596) - Use consistent tile coordinate keys ([@ahocevar](https://github.com/ahocevar))
* [#4609](https://github.com/openlayers/ol3/pull/4609) - Add ol.proj.setProj4 function ([@bartvde](https://github.com/bartvde))
* [#4603](https://github.com/openlayers/ol3/pull/4603) - Update async to version 1.5.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#4604](https://github.com/openlayers/ol3/pull/4604) - Update clean-css to version 3.4.9 🚀 ([@openlayers](https://github.com/openlayers))
* [#4600](https://github.com/openlayers/ol3/pull/4600) - Update glob to version 6.0.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#4595](https://github.com/openlayers/ol3/pull/4595) - Pass 'opaque' option on to superclass ([@ahocevar](https://github.com/ahocevar))
* [#4598](https://github.com/openlayers/ol3/pull/4598) - Make ol.source.Tile#getTilePixelRatio work correctly for all sources ([@klokantech](https://github.com/klokantech))
* [#4594](https://github.com/openlayers/ol3/pull/4594) - Fix for TileQueue gradually choking up when using raster reprojection ([@klokantech](https://github.com/klokantech))
* [#4557](https://github.com/openlayers/ol3/pull/4557) - Conditionally render tiles to a separate tile canvas ([@ahocevar](https://github.com/ahocevar))
* [#4580](https://github.com/openlayers/ol3/pull/4580) - Update fs-extra to version 0.26.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#4579](https://github.com/openlayers/ol3/pull/4579) - Release v3.12.1 ([@openlayers](https://github.com/openlayers))
* [#4578](https://github.com/openlayers/ol3/pull/4578) - Fix apidoc landing page markup ([@ahocevar](https://github.com/ahocevar))
* [#4575](https://github.com/openlayers/ol3/pull/4575) - Update rbush to version 1.4.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#4571](https://github.com/openlayers/ol3/pull/4571) - Correct typedef of selectinteraction options obj ([@marcjansen](https://github.com/marcjansen))
* [#4570](https://github.com/openlayers/ol3/pull/4570) - Rename defaultSort to numberSafeCompareFunction on ol.array ([@bartvde](https://github.com/bartvde))
* [#4567](https://github.com/openlayers/ol3/pull/4567) - Always pass on a compare function to sort ([@bartvde](https://github.com/bartvde))
* [#4001](https://github.com/openlayers/ol3/pull/4001) - Export PDF's using jsPDF ([@bartvde](https://github.com/bartvde))

10
changelog/v3.13.1.md Normal file
View File

@@ -0,0 +1,10 @@
# v3.13.1
## Summary
The v3.13.1 release is a patch release that addresses a few regressions in the v3.13.0 release. See the [v3.13.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.13.0) for details on upgrading from v3.12.
## Fixes
* [#4736](https://github.com/openlayers/ol3/pull/4736) - Properly detect feature on unmanaged layer for toggle selection ([@ahocevar](https://github.com/ahocevar))
* [#4777](https://github.com/openlayers/ol3/pull/4777) - Fix source.UrlTile URL expansion ([@gberaudo](https://github.com/gberaudo))

154
changelog/v3.14.0.md Normal file
View File

@@ -0,0 +1,154 @@
# v3.14.0
## Summary
The v3.14.0 release includes features and fixes from 93 pull requests since the v3.13.1 release. New features and improvements include:
* New `source` option for the `ol.control.FullScreen`, to allow including other elements besides the map in a full screen view (#4679).
* New `target` property for the Drag&Drop interaction allows using a different drop target than the map viewport (#4876).
* `ol.style.RegularShape` has a new `rotateWithView` option, for controlling how regular shape symbols are rendered on rotated views (#4698).
* New `layers` option for `ol.format.WMSGetFeatureInfo` format, to selectively only read features from specific layers (#4700).
* New `precision` parameter for formatting coordinates with `ol.coordinate.toStringHDMS` (#4787).
* Smarter tile queue for improved tile loading user experience when more than one tile layer is used (#4794).
* Improved rendering performance for tile layers by rendering tiles directly to the map canvas (#4597).
* The `goog.events` event system was replaced with our own lightweight event system. This significally reduces the build size (#4711). Replacement of other `goog.*` components with ES5 features or custom code marks a huge step towards the complete removal of the Closure Library dependency.
## Upgrade notes
#### Internet Explorer 9 support
As of this release, OpenLayers requires a `requestAnimationFrame`/`cancelAnimationFrame` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features/#requestAnimationFrame.
#### Layer pre-/postcompose event changes
It is the responsibility of the application to undo any canvas transform changes at the end of a layer 'precompose' or 'postcompose' handler. Previously, it was ok to set a null transform. The API now guarantees a device pixel coordinate system on the canvas with its origin in the top left corner of the map. However, applications should not rely on the underlying canvas being the same size as the visible viewport.
Old code:
```js
layer.on('precompose', function(e) {
// rely on canvas dimensions to move coordinate origin to center
e.context.translate(e.context.canvas.width / 2, e.context.canvas.height / 2);
e.context.scale(3, 3);
// draw an x in the center of the viewport
e.context.moveTo(-20, -20);
e.context.lineTo(20, 20);
e.context.moveTo(-20, 20);
e.context.lineTo(20, -20);
// rely on the canvas having a null transform
e.context.setTransform(1, 0, 0, 1, 0, 0);
});
```
New code:
```js
layer.on('precompose', function(e) {
// use map size and pixel ratio to move coordinate origin to center
var size = map.getSize();
var pixelRatio = e.frameState.pixelRatio;
e.context.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
e.context.scale(3, 3);
// draw an x in the center of the viewport
e.context.moveTo(-20, -20);
e.context.lineTo(20, 20);
e.context.moveTo(-20, 20);
e.context.lineTo(20, -20);
// undo all transforms
e.context.scale(1 / 3, 1 / 3);
e.context.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
});
```
## Full list of changes
* [#4896](https://github.com/openlayers/ol3/pull/4896) - Ignore XML sequence when comparing GML ([@ahocevar](https://github.com/ahocevar))
* [#4890](https://github.com/openlayers/ol3/pull/4890) - ol.format.KML cleanup ([@fredj](https://github.com/fredj))
* [#4894](https://github.com/openlayers/ol3/pull/4894) - Only run raster operations after image sources have loaded. ([@tschaub](https://github.com/tschaub))
* [#4892](https://github.com/openlayers/ol3/pull/4892) - Stricter check for ImageData constructor ([@ahocevar](https://github.com/ahocevar))
* [#4891](https://github.com/openlayers/ol3/pull/4891) - Fix tests so they all pass in IE9 ([@ahocevar](https://github.com/ahocevar))
* [#4889](https://github.com/openlayers/ol3/pull/4889) - Use requestAnimation polyfill for examples and update release notes ([@ahocevar](https://github.com/ahocevar))
* [#4887](https://github.com/openlayers/ol3/pull/4887) - Use less aggressive DOM function overrides ([@ahocevar](https://github.com/ahocevar))
* [#4885](https://github.com/openlayers/ol3/pull/4885) - Mark overlayContainer and overlayContainerStopEvent as non-nullable ([@fredj](https://github.com/fredj))
* [#4884](https://github.com/openlayers/ol3/pull/4884) - Remove use of goog.math.isFiniteNumber() ([@fredj](https://github.com/fredj))
* [#4881](https://github.com/openlayers/ol3/pull/4881) - Update jquery to version 2.2.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#4780](https://github.com/openlayers/ol3/pull/4780) - Adapt the code for the new closure-compiler version ([@fredj](https://github.com/fredj))
* [#3453](https://github.com/openlayers/ol3/pull/3453) - Consider multi in add/remove/toggle select logic ([@bjornharrtell](https://github.com/bjornharrtell))
* [#4876](https://github.com/openlayers/ol3/pull/4876) - Add `target` property to Drag&Drop interaction ([@tsauerwein](https://github.com/tsauerwein))
* [#4854](https://github.com/openlayers/ol3/pull/4854) - Always report skipped feature hits for the original layer ([@ahocevar](https://github.com/ahocevar))
* [#4877](https://github.com/openlayers/ol3/pull/4877) - Update eslint to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4870](https://github.com/openlayers/ol3/pull/4870) - Reuse dragListenerKeys_ local variable ([@fredj](https://github.com/fredj))
* [#4721](https://github.com/openlayers/ol3/pull/4721) - Fix reprojection of raster sources with gutter ([@klokantech](https://github.com/klokantech))
* [#4874](https://github.com/openlayers/ol3/pull/4874) - Assert we have a feature id ([@bartvde](https://github.com/bartvde))
* [#4869](https://github.com/openlayers/ol3/pull/4869) - Improve precision of ol.reproj.render ([@klokantech](https://github.com/klokantech))
* [#4866](https://github.com/openlayers/ol3/pull/4866) - Use requestAnimationFrame polyfill (for IE9) ([@ahocevar](https://github.com/ahocevar))
* [#4863](https://github.com/openlayers/ol3/pull/4863) - Remove use of goog.dom.createElement ([@fredj](https://github.com/fredj))
* [#4864](https://github.com/openlayers/ol3/pull/4864) - Use querySelectorAll instead of goog.dom.getElementsByClass ([@fredj](https://github.com/fredj))
* [#4597](https://github.com/openlayers/ol3/pull/4597) - Render tiles directly to the map canvas ([@ahocevar](https://github.com/ahocevar))
* [#4862](https://github.com/openlayers/ol3/pull/4862) - Add OSGeo badge ([@ahocevar](https://github.com/ahocevar))
* [#4845](https://github.com/openlayers/ol3/pull/4845) - Fix geolocation error cast ([@gberaudo](https://github.com/gberaudo))
* [#4851](https://github.com/openlayers/ol3/pull/4851) - Don't use goog.isBoolean() ([@marcjansen](https://github.com/marcjansen))
* [#4852](https://github.com/openlayers/ol3/pull/4852) - Don't use goog.isString() ([@marcjansen](https://github.com/marcjansen))
* [#4849](https://github.com/openlayers/ol3/pull/4849) - Fix docs of LogoOptions.prototype.src ([@openlayers](https://github.com/openlayers))
* [#4794](https://github.com/openlayers/ol3/pull/4794) - Make tile loading count no longer depend on source count ([@ahocevar](https://github.com/ahocevar))
* [#4843](https://github.com/openlayers/ol3/pull/4843) - Remove use of goog.dom.getParentElement ([@fredj](https://github.com/fredj))
* [#4839](https://github.com/openlayers/ol3/pull/4839) - Add template type to ol.Collection ([@fredj](https://github.com/fredj))
* [#4847](https://github.com/openlayers/ol3/pull/4847) - Update eslint to version 2.1.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4632](https://github.com/openlayers/ol3/pull/4632) - Overloading fill color (polygon or text) with CanvasPattern and CanvasGradient ([@bjnsn](https://github.com/bjnsn))
* [#4842](https://github.com/openlayers/ol3/pull/4842) - Remove use of goog.dom.createDom ([@fredj](https://github.com/fredj))
* [#4808](https://github.com/openlayers/ol3/pull/4808) - Type cleanup ([@fredj](https://github.com/fredj))
* [#4737](https://github.com/openlayers/ol3/pull/4737) - Use olx.format.ReadOptions in ol.interaction.DragAndDrop ([@fredj](https://github.com/fredj))
* [#4830](https://github.com/openlayers/ol3/pull/4830) - Make sure window.proj4 is always restored in tests ([@ahocevar](https://github.com/ahocevar))
* [#4838](https://github.com/openlayers/ol3/pull/4838) - Use regular expression instead of String#endsWith() check ([@ahocevar](https://github.com/ahocevar))
* [#4837](https://github.com/openlayers/ol3/pull/4837) - Update metalsmith-layouts to version 1.5.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4836](https://github.com/openlayers/ol3/pull/4836) - Use lowercase for all user agent checks ([@ahocevar](https://github.com/ahocevar))
* [#4833](https://github.com/openlayers/ol3/pull/4833) - Upgrade linter and config. ([@tschaub](https://github.com/tschaub))
* [#4831](https://github.com/openlayers/ol3/pull/4831) - Add navigation header to examples page ([@jonataswalker](https://github.com/jonataswalker))
* [#4824](https://github.com/openlayers/ol3/pull/4824) - Don't use goog.string.newlines.* ([@marcjansen](https://github.com/marcjansen))
* [#4825](https://github.com/openlayers/ol3/pull/4825) - Don't use goog.string.isEmpty ([@marcjansen](https://github.com/marcjansen))
* [#4823](https://github.com/openlayers/ol3/pull/4823) - Fix type for layers option on ol.interaction.Select ([@ahocevar](https://github.com/ahocevar))
* [#4815](https://github.com/openlayers/ol3/pull/4815) - wrapX false in synthetic examples ([@fredj](https://github.com/fredj))
* [#4810](https://github.com/openlayers/ol3/pull/4810) - Add checks for undefined in controls ([@gberaudo](https://github.com/gberaudo))
* [#4787](https://github.com/openlayers/ol3/pull/4787) - Add precision parameter for HDMS coordinate ([@pfanguin](https://github.com/pfanguin))
* [#4811](https://github.com/openlayers/ol3/pull/4811) - Make ol.style.Style a @struct ([@fredj](https://github.com/fredj))
* [#4800](https://github.com/openlayers/ol3/pull/4800) - Update phantomjs-prebuilt to version 2.1.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4792](https://github.com/openlayers/ol3/pull/4792) - Use ol.events.listen instead of ol.Observable#on ([@fredj](https://github.com/fredj))
* [#4796](https://github.com/openlayers/ol3/pull/4796) - Remove use of goog.isString() ([@marcjansen](https://github.com/marcjansen))
* [#4795](https://github.com/openlayers/ol3/pull/4795) - Cleanup after goog.array, goog.object and goog.isDef removal ([@ahocevar](https://github.com/ahocevar))
* [#4791](https://github.com/openlayers/ol3/pull/4791) - Remove unnecessary cast ([@fredj](https://github.com/fredj))
* [#4778](https://github.com/openlayers/ol3/pull/4778) - Remove use of goog.object. ([@tschaub](https://github.com/tschaub))
* [#4789](https://github.com/openlayers/ol3/pull/4789) - Use ol.array instead of goog.array ([@fredj](https://github.com/fredj))
* [#4788](https://github.com/openlayers/ol3/pull/4788) - Remove unnecessary newlines ([@fredj](https://github.com/fredj))
* [#4731](https://github.com/openlayers/ol3/pull/4731) - Remove all remaining unnecessary casts ([@gberaudo](https://github.com/gberaudo))
* [#4776](https://github.com/openlayers/ol3/pull/4776) - Correct assertion message in ol.array.binarySearch-test ([@marcjansen](https://github.com/marcjansen))
* [#4711](https://github.com/openlayers/ol3/pull/4711) - Removal of goog.events.* ([@ahocevar](https://github.com/ahocevar))
* [#4777](https://github.com/openlayers/ol3/pull/4777) - Fix source.UrlTile URL expansion ([@gberaudo](https://github.com/gberaudo))
* [#4730](https://github.com/openlayers/ol3/pull/4730) - Document ol.Geolocation error event ([@fredj](https://github.com/fredj))
* [#4772](https://github.com/openlayers/ol3/pull/4772) - Use node.setAttribute to set namespaceURI of a node ([@adube](https://github.com/adube))
* [#4774](https://github.com/openlayers/ol3/pull/4774) - Update graceful-fs to version 4.1.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#4680](https://github.com/openlayers/ol3/pull/4680) - Remove goog array. ([@nicholas-l](https://github.com/nicholas-l))
* [#4771](https://github.com/openlayers/ol3/pull/4771) - Use innerHTML instead of innerText to populate the status element ([@fredj](https://github.com/fredj))
* [#4769](https://github.com/openlayers/ol3/pull/4769) - Add opaque option to olx.source.OSMOptions ([@fredj](https://github.com/fredj))
* [#4736](https://github.com/openlayers/ol3/pull/4736) - Properly detect feature on unmanaged layer for toggle selection ([@ahocevar](https://github.com/ahocevar))
* [#4756](https://github.com/openlayers/ol3/pull/4756) - Remove VectorTile getSource re-definition of return value ([@adube](https://github.com/adube))
* [#4733](https://github.com/openlayers/ol3/pull/4733) - Avoid rendering too big and too small images for vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#4754](https://github.com/openlayers/ol3/pull/4754) - Upgrade to mocha@2.4.5. ([@tschaub](https://github.com/tschaub))
* [#4750](https://github.com/openlayers/ol3/pull/4750) - Update metalsmith-layouts to version 1.4.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4751](https://github.com/openlayers/ol3/pull/4751) - Update phantomjs to version 2.1.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#4741](https://github.com/openlayers/ol3/pull/4741) - Report on installed versions in Travis. ([@openlayers](https://github.com/openlayers))
* [#4742](https://github.com/openlayers/ol3/pull/4742) - Upgrade to eslint@2.0.0-beta.2. ([@tschaub](https://github.com/tschaub))
* [#4746](https://github.com/openlayers/ol3/pull/4746) - Downgrade to mocha@2.3.4. ([@tschaub](https://github.com/tschaub))
* [#4740](https://github.com/openlayers/ol3/pull/4740) - Update fs-extra to version 0.26.5 🚀 ([@openlayers](https://github.com/openlayers))
* [#4738](https://github.com/openlayers/ol3/pull/4738) - Add unit tests for ol.control.Rotate and ol.control.Zoom ([@fredj](https://github.com/fredj))
* [#4718](https://github.com/openlayers/ol3/pull/4718) - Improve raster reprojection behavior when tiles fail to load ([@klokantech](https://github.com/klokantech))
* [#4734](https://github.com/openlayers/ol3/pull/4734) - Update sinon to version 1.17.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#4726](https://github.com/openlayers/ol3/pull/4726) - Update mocha to version 2.4.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#4725](https://github.com/openlayers/ol3/pull/4725) - Untangle vector tile feature reprojection ([@ahocevar](https://github.com/ahocevar))
* [#4735](https://github.com/openlayers/ol3/pull/4735) - Add default value for defaultDataProjection ([@fredj](https://github.com/fredj))
* [#4732](https://github.com/openlayers/ol3/pull/4732) - Fix '@see' link in src/ol/deviceorientation.js ([@fredj](https://github.com/fredj))
* [#4720](https://github.com/openlayers/ol3/pull/4720) - Improve tileLoadFunction docs ([@ahocevar](https://github.com/ahocevar))
* [#4717](https://github.com/openlayers/ol3/pull/4717) - Update phantomjs to version 2.1.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#4679](https://github.com/openlayers/ol3/pull/4679) - Add a source option for the full screen control ([@gaf-ag](https://github.com/gaf-ag))
* [#4712](https://github.com/openlayers/ol3/pull/4712) - Add missing JSDoc tags ([@fredj](https://github.com/fredj))
* [#4700](https://github.com/openlayers/ol3/pull/4700) - Add 'layers' option for WMSGetFeatureInfo format ([@adube](https://github.com/adube))
* [#4705](https://github.com/openlayers/ol3/pull/4705) - Remove remaining unnecessary ol.source.State casts ([@gberaudo](https://github.com/gberaudo))
* [#4703](https://github.com/openlayers/ol3/pull/4703) - Source options fixes. ([@gberaudo](https://github.com/gberaudo))
* [#4698](https://github.com/openlayers/ol3/pull/4698) - Add rotateWithView option to ol.style.RegularShape ([@fredj](https://github.com/fredj))
* [#4697](https://github.com/openlayers/ol3/pull/4697) - Bind tileUrlFunction to the source ([@gberaudo](https://github.com/gberaudo))

10
changelog/v3.14.1.md Normal file
View File

@@ -0,0 +1,10 @@
# v3.14.1
## Summary
The v3.14.1 release is a patch release that addresses a few regressions in the v3.14.0 release. See the [v3.14.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.14.0) for details on upgrading from v3.13.x.
## Fixes
* [#4939](https://github.com/openlayers/ol3/pull/4939) - Fix rendering of opaque layers with opacity != 1 ([@ahocevar](https://github.com/ahocevar))
* [#4921](https://github.com/openlayers/ol3/pull/4921) - Unlisten before calling listener and bind to target by default ([@ahocevar](https://github.com/ahocevar))

13
changelog/v3.14.2.md Normal file
View File

@@ -0,0 +1,13 @@
# v3.14.2
## Summary
The v3.14.2 release is a patch release that addresses a few regressions in the v3.14.1 release. See the [v3.14.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.14.0) for details on upgrading from v3.13.x.
## Fixes
* [#4963](https://github.com/openlayers/ol3/pull/4963) - Handle more XHR errors in the TileJSON source ([@tschaub](https://github.com/tschaub))
* [#4960](https://github.com/openlayers/ol3/pull/4960) - Simplify clipping of lower resolution regions ([@ahocevar](https://github.com/ahocevar))
* [#4958](https://github.com/openlayers/ol3/pull/4958) - Stop wheel events instead of DOMMouseScroll events ([@fredj](https://github.com/fredj))
* [#4956](https://github.com/openlayers/ol3/pull/4956) - Fix Examples layout page ([@jonataswalker](https://github.com/jonataswalker))
* [#4809](https://github.com/openlayers/ol3/pull/4809) - Fix multipolygon clone. ([@fperucic](https://github.com/fperucic))

View File

@@ -24,7 +24,6 @@
"externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"

View File

@@ -18,13 +18,13 @@
"externs/example.js",
"externs/fastclick.js",
"externs/geojson.js",
"externs/jspdf.js",
"externs/jquery-1.9.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"

View File

@@ -1,8 +1,8 @@
<!doctype html>
<html lang="en">
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" type="text/css">
@@ -11,27 +11,39 @@
<link rel="stylesheet" href="./resources/layout.css" type="text/css">
{{{ extraHead.local }}}
{{{ css.tag }}}
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,requestAnimationFrame"></script>
<script src="./resources/zeroclipboard/ZeroClipboard.min.js"></script>
<title>{{ title }}</title>
</head>
<body>
<header class="navbar" role="navigation">
<div class="container" id="navbar-inner-container">
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png">&nbsp;OpenLayers 3 Examples</a>
<div class="container">
<div class="display-table pull-left" id="navbar-logo-container">
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png">&nbsp;OpenLayers 3 Examples</a>
</div>
<ul class="nav navbar-nav pull-right">
<li><a href="../doc">Docs</a></li>
<li><a class="active" href="index.html">Examples</a></li>
<li><a href="../apidoc">API</a></li>
<li><a href="https://github.com/openlayers/ol3">Code</a></li>
</ul>
</div>
</header>
<div class="container-fluid">
{{{ contents }}}
<div class="row-fluid">
<div class="span12">
<h4 id="title">{{ title }}</h4>
{{{ contents }}}
</div>
</div>
<div class="row-fluid">
<div class="span12">
<p id="shortdesc">{{ shortdesc }}</p>
<div id="docs">{{ md docs }}</div>
<div id="tags">{{ tags }}</div>
<div id="api-links">Related API documentation: {{{ js.apiHtml }}}</div>
</div>
</div>
@@ -41,47 +53,33 @@
<a id="copy-button"><i class="fa fa-clipboard"></i> Copy</a>
<a id="jsfiddle-button"><i class="fa fa-jsfiddle"></i> Edit</a>
</div>
<form method="POST" id="jsfiddle-form" target="_blank" action="http://jsfiddle.net/api/post/jquery/1.11.0/">
<form method="POST" id="jsfiddle-form" target="_blank" action="http://jsfiddle.net/api/post/library/pure/">
<textarea class="hidden" name="js">{{ js.source }}</textarea>
<textarea class="hidden" name="css">{{ css.source }}</textarea>
<textarea class="hidden" name="html">{{ contents }}</textarea>
<input type="hidden" name="wrap" value="l">
<input type="hidden" name="resources" value="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css,https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js,http://openlayers.org/en/v{{ olVersion }}/css/ol.css,http://openlayers.org/en/v{{ olVersion }}/build/ol.js{{ extraResources }}">
<input type="hidden" name="resources" value="http://openlayers.org/en/v{{ olVersion }}/css/ol.css,http://openlayers.org/en/v{{ olVersion }}/build/ol.js{{ extraResources }}">
</form>
<pre><code id="example-source" class="language-markup">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;{{ title }}&lt;/title&gt;
&lt;script src="https://code.jquery.com/jquery-1.11.2.min.js"&gt;&lt;/script&gt;
&lt;link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"&gt;
&lt;script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"&gt;&lt;/script&gt;
&lt;link rel="stylesheet" href="http://openlayers.org/en/v{{ olVersion }}/css/ol.css" type="text/css"&gt;
&lt;script src="http://openlayers.org/en/v{{ olVersion }}/build/ol.js"&gt;&lt;/script&gt;
{{ extraHead.remote }}
{{#if css.source}}
&lt;style&gt;
{{ css.source }}
&lt;/style&gt;
{{/if}}
&lt;/head&gt;
&lt;body&gt;
&lt;div class="container-fluid"&gt;
{{ contents }}
&lt;/div&gt;
&lt;script&gt;
{{ js.source }}
&lt;/script&gt;
&lt;/body&gt;
&lt;head&gt;
&lt;title&gt;{{ title }}&lt;/title&gt;
&lt;link rel="stylesheet" href="http://openlayers.org/en/v{{ olVersion }}/css/ol.css" type="text/css"&gt;
&lt;script src="http://openlayers.org/en/v{{ olVersion }}/build/ol.js"&gt;&lt;/script&gt;{{#if extraHead.remote}}
{{ indent extraHead.remote spaces=4 }}{{/if}}{{#if css.source}}
&lt;style&gt;
{{ indent css.source spaces=6 }} &lt;/style&gt;{{/if}}
&lt;/head&gt;
&lt;body&gt;
{{ indent contents spaces=4 }} &lt;script&gt;
{{ indent js.source spaces=6 }} &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
</div>
</div>
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="./resources/common.js"></script>
<script src="./resources/prism/prism.min.js"></script>
{{{ js.tag }}}
</body>
</html>

View File

@@ -16,6 +16,4 @@ To enable this, examples have the following, not needed in application code:
* html files load `resources/common.js` and some scripts use `common.getRendererFromQueryString()` to set the map renderer; application code would not need these
* in addition, examples use Twitter Bootstrap and jQuery; this is of course not a requirement - you may use whichever presentation/helper libraries you wish
At the bottom of each example generated in the `build/examples` folder, a modified version of its source code is shown. That modified version can be run standalone and is usually used as starting point for users to extend examples into their own application.

View File

@@ -16,7 +16,7 @@
]
},
"plugins": [
"node_modules/jsdoc-fork/plugins/markdown",
"node_modules/jsdoc/plugins/markdown",
"config/jsdoc/api/plugins/inheritdoc",
"config/jsdoc/api/plugins/typedefs",
"config/jsdoc/api/plugins/events",

View File

@@ -10,7 +10,8 @@
<td><p>Layers are lightweight containers that get their data from [sources](ol.source.html).</p>
[ol.layer.Tile](ol.layer.Tile.html)<br>
[ol.layer.Image](ol.layer.Image.html)<br>
[ol.layer.Vector](ol.layer.Vector.html)</td>
[ol.layer.Vector](ol.layer.Vector.html)<br>
[ol.layer.VectorTile](ol.layer.VectorTile.html)</td>
</tr><tr>
<th>Controls</th><th>Interactions</th><th>Sources and formats</th>
</tr><tr>
@@ -27,6 +28,7 @@ Interactions for [vector features](ol.Feature.html)
<td>[Tile sources](ol.source.Tile.html) for [ol.layer.Tile](ol.layer.Tile.html)
<br>[Image sources](ol.source.Image.html) for [ol.layer.Image](ol.layer.Image.html)
<br>[Vector sources](ol.source.Vector.html) for [ol.layer.Vector](ol.layer.Vector.html)
<br>[Vector tile sources](ol.source.VectorTile.html) for [ol.layer.VectorTile](ol.layer.VectorTile.html)
<br>[Formats](ol.format.Feature.html) for reading/writing vector data
<br>[ol.format.WMSCapabilities](ol.format.WMSCapabilities.html)</td></tr>
<tr><th>Projections</th><th>Observable objects</th><th>Other components</th></tr>

View File

@@ -16,7 +16,7 @@ exports.defineTags = function(dictionary) {
doclet.stability = level;
} else {
var errorText = util.format('Invalid stability level (%s) in %s line %s', tag.text, doclet.meta.filename, doclet.meta.lineno);
require('jsdoc-fork/lib/jsdoc/util/error').handle( new Error(errorText) );
require('jsdoc/lib/jsdoc/util/error').handle( new Error(errorText) );
}
}
});

View File

@@ -1,10 +1,10 @@
/*global env: true */
var template = require('jsdoc-fork/lib/jsdoc/template'),
fs = require('jsdoc-fork/lib/jsdoc/fs'),
path = require('jsdoc-fork/lib/jsdoc/path'),
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-fork/lib/jsdoc/util/error').handle,
helper = require('jsdoc-fork/lib/jsdoc/util/templateHelper'),
handle = require('jsdoc/lib/jsdoc/util/error').handle,
helper = require('jsdoc/lib/jsdoc/util/templateHelper'),
_ = require('underscore'),
htmlsafe = helper.htmlsafe,
linkto = helper.linkto,
@@ -350,8 +350,8 @@ exports.publish = function(taffyData, opts, tutorials) {
var staticFileScanner;
if (conf['default'].staticFiles) {
staticFilePaths = conf['default'].staticFiles.paths || [];
staticFileFilter = new (require('jsdoc-fork/lib/jsdoc/src/filter')).Filter(conf['default'].staticFiles);
staticFileScanner = new (require('jsdoc-fork/lib/jsdoc/src/scanner')).Scanner();
staticFileFilter = new (require('jsdoc/lib/jsdoc/src/filter')).Filter(conf['default'].staticFiles);
staticFileScanner = new (require('jsdoc/lib/jsdoc/src/scanner')).Scanner();
staticFilePaths.forEach(function(filePath) {
var extraStaticFiles = staticFileScanner.scan([filePath], 10, staticFileFilter);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -6,8 +6,6 @@ var assert = require('assert');
var fs = require('fs');
var path = require('path');
var Promise = require('bluebird');
/**
* Publish hook for the JSDoc template. Writes to JSON stdout.
@@ -171,17 +169,13 @@ exports.publish = function(data, opts) {
return (symbol.name in augments || symbol.virtual);
});
return new Promise(function(resolve, reject) {
process.stdout.write(
JSON.stringify({
symbols: symbols,
defines: defines,
typedefs: typedefs,
externs: externs,
base: base
}, null, 2), resolve);
});
process.stdout.write(
JSON.stringify({
symbols: symbols,
defines: defines,
typedefs: typedefs,
externs: externs,
base: base
}, null, 2));
};

View File

@@ -14,7 +14,6 @@
"externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"
@@ -24,9 +23,14 @@
],
"jscomp_off": [
"useOfGoogBase",
"unnecessaryCasts",
"lintChecks"
],
"hide_warnings_for": [
"node_modules/closure-util"
],
"jscomp_warning": [
"unnecessaryCasts"
],
"extra_annotation_name": [
"api", "observable"
],

View File

@@ -11,7 +11,6 @@
}
.ol-scale-line {
background: #95b9e6;
background: rgba(0,60,136,0.3);
border-radius: 4px;
bottom: 8px;
@@ -20,9 +19,9 @@
position: absolute;
}
.ol-scale-line-inner {
border: 1px solid #eeeeee;
border: 1px solid #eee;
border-top: none;
color: #eeeeee;
color: #eee;
font-size: 10px;
text-align: center;
margin: 1px;
@@ -47,7 +46,6 @@
.ol-control {
position: absolute;
background-color: #eee;
background-color: rgba(255,255,255,0.4);
border-radius: 4px;
padding: 2px;
@@ -95,7 +93,6 @@
height: 1.375em;
width: 1.375em;
line-height: .4em;
background-color: #7b98bc;
background-color: rgba(0,60,136,0.5);
border: none;
border-radius: 2px;
@@ -122,7 +119,6 @@
.ol-control button:hover,
.ol-control button:focus {
text-decoration: none;
background-color: #4c6079;
background-color: rgba(0,60,136,0.7);
}
.ol-zoom .ol-zoom-in {

View File

@@ -167,7 +167,6 @@ The minimum config file looks like this:
"node_modules/openlayers/externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false",
@@ -223,7 +222,6 @@ Here is a version of `config.json` with more compilation checks enabled:
"node_modules/openlayers/externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false",
@@ -312,7 +310,7 @@ directory:
```
Note that the page includes a `script` tag referencing the `app.js` file,
which is the file resuted from the compilation.
which is the file resulting from the compilation.
You are done!

View File

@@ -60,7 +60,6 @@ Creating a custom build requires writing a build configuration file. The format
"externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"

View File

@@ -10,3 +10,4 @@ layout: doc.hbs
* [Create Custom Builds](custom-builds.html)
* [Bundle Application and OpenLayers using Browserify](browserify.html)
* [Compile Application and OpenLayers together](closure.html)
* [Raster Reprojection](raster-reprojection.html)

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,132 @@
---
title: Raster Reprojection
layout: doc.hbs
---
# Raster Reprojection
OpenLayers 3 has an ability to display raster data from WMS, WMTS, static images and many other sources in a different coordinate system than delivered from the server.
Transformation of the map projections of the image happens directly in a web browser.
The view in any Proj4js supported coordinate reference system is possible and previously incompatible layers can now be combined and overlaid.
# Usage
The API usage is very simple. Just specify proper projection (using [EPSG](http://epsg.io) code) on `ol.View`:
``` javascript
var map = new ol.Map({
target: 'map',
view: new ol.View({
projection: 'EPSG:3857', //HERE IS THE VIEW PROJECTION
center: [0, 0],
zoom: 2
}),
layers: [
new ol.layer.Tile({
source: new ol.source.TileWMS({
projection: 'EPSG:4326', //HERE IS THE DATA SOURCE PROJECTION
url: 'http://demo.boundlessgeo.com/geoserver/wms',
params: {
'LAYERS': 'ne:NE1_HR_LC_SR_W_DR'
}
})
})
]
});
```
If a source (based on `ol.source.TileImage` or `ol.source.Image`) has a projection different from the current `ol.View`s projection then the reprojection happens automatically under the hood.
### Examples
- [Raster reprojection demo](http://openlayers.org/en/master/examples/reprojection.html)
- [OpenStreetMap to WGS84 reprojection](http://openlayers.org/en/master/examples/reprojection-wgs84.html)
- [Reprojection with EPSG.io database search](http://openlayers.org/en/master/examples/reprojection-by-code.html)
- [Image reprojection](http://openlayers.org/en/master/examples/reprojection-image.html)
### Custom projection
The easiest way to use a custom projection is to add the [Proj4js](http://proj4js.org/) library to your project and then define the projection using a proj4 definition string.
Following example shows definition of a [British National Grid](http://epsg.io/27700):
``` html
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.12/proj4.js"></script>
```
``` javascript
proj4.defs('EPSG:27700', '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 ' +
'+x_0=400000 +y_0=-100000 +ellps=airy ' +
'+towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 ' +
'+units=m +no_defs');
var proj27700 = ol.proj.get('EPSG:27700');
proj27700.setExtent([0, 0, 700000, 1300000]);
```
### Change of the view projection
To switch the projection used to display the map you have to set a new `ol.View` with selected projection on the `ol.Map`:
``` javascript
map.setView(new ol.View({
projection: 'EPSG:27700',
center: [400000, 650000],
zoom: 4
}));
```
## TileGrid and Extents
When reprojection is needed, new tiles (in the target projection) are under the hood created from the original source tiles.
The TileGrid of the reprojected tiles is by default internally constructed using `ol.tilegrid.getForProjection(projection)`.
The projection should have extent defined (see above) for this to work properly.
Alternatively, a custom target TileGrid can be constructed manually and set on the source instance using `ol.source.TileImage#setTileGridForProjection(projection, tilegrid)`.
This TileGrid will then be used when reprojecting to the specified projection instead of creating the default one.
In certain cases, this can be used to optimize performance (by tweaking tile sizes) or visual quality (by specifying resolutions).
# How it works
The reprojection process is based on triangles -- the target raster is divided into a limited number of triangles with vertices transformed using `ol.proj` capabilities ([proj4js](http://proj4js.org/) is usually utilized to define custom transformations).
The reprojection of pixels inside the triangle is approximated with an affine transformation (with rendering hardware-accelerated by the canvas 2d context):
<img src="raster-reprojection-resources/how-it-works.jpg" alt="How it works" width="600" />
This way we can support a wide range of projections from proj4js (or even custom transformation functions) on almost any hardware (with canvas 2d support) with a relatively small number of actual transformation calculations.
The precision of the reprojection is then limited by the number of triangles.
The reprojection process preserves transparency on the raster data supplied from the source (png or gif) and the gaps and no-data pixels generated by reprojection are automatically transparent.
###Dynamic triangulation
The above image above shows a noticeable error (especially on the edges) when the original image (left; EPSG:27700) is transformed with only a limited number of triangles (right; EPSG:3857).
The error can be minimized by increasing the number of triangles used.
Since some transformations require a more detail triangulation network, the dynamic triangulation process automatically measures reprojection error and iteratively subdivides to meet a specific error threshold:
<img src="raster-reprojection-resources/iterative-triangulation.png" alt="Iterative triangulation" width="600" />
For debugging, rendering of the reprojection edges can be enabled by `ol.source.TileImage#setRenderReprojectionEdges(true)`.
# Advanced
### Disabling reprojection
In case you are creating a custom build of OpenLayers and do not need the reprojection code, you can reduce the build size by setting `ol.ENABLE_RASTER_REPROJECTION` to `false`, which completely disables the reprojection support.
See [Custom builds](custom-builds.html#defines) tutorial on how to do this.
### Triangulation precision threshold
The default [triangulation error threshold](#dynamic-triangulation) in pixels is given by `ol.DEFAULT_RASTER_REPROJECTION_ERROR_THRESHOLD` (0.5 pixel).
In case a different threshold needs to be defined for different sources, the `reprojectionErrorThreshold` option can be passed when constructing the tile image source.
###Limiting visibility of reprojected map by extent
The reprojection algorithm uses inverse transformation (from *view projection* to *data projection*).
For certain coordinate systems this can result in a "double occurrence" of the source data on a map.
For example, when reprojecting a map of Switzerland from EPSG:21781 to EPSG:3857, it is displayed twice: once at the proper place in Europe, but also in the Pacific Ocean near New Zealand, on the opposite side of the globe.
<img src="raster-reprojection-resources/double-occurrence.jpg" alt="Double occurrence of a reprojected map" width="600" />
Although this is mathematically correct behavior of the inverse transformation, visibility of the layer on multiple places is not expected by users.
A possible general solution would be to calculate the forward transformation for every vertex as well - but this would significantly decrease performance (especially for computationally expensive transformations).
Therefore a recommended workaround is to define a proper visibility extent on the `ol.layer.Tile` in the view projection.
Setting such a limit is demonstrated in the [reprojection demo example](http://openlayers.org/en/master/examples/reprojection.html).
### Resolution calculation
When determining source tiles to load, the ideal source resolution needs to be calculated.
The `ol.reproj.calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution)` function calculates the ideal value in order to achieve pixel mapping as close as possible to 1:1 during reprojection, which is then used to select proper zoom level from the source.
It is, however, generally not practical to use the same source zoom level for the whole target zoom level -- different projections can have significantly different resolutions in different parts of the world (e.g. polar regions in EPSG:3857 vs EPSG:4326) and enforcing a single resolution for the whole zoom level would result in some tiles being scaled up/down, possibly requiring a huge number of source tiles to be loaded.
Therefore, the resolution mapping is calculated separately for each reprojected tile (in the middle of the tile extent).

17
examples/.eslintrc Normal file
View File

@@ -0,0 +1,17 @@
{
"globals": {
"FastClick": false,
"$": false,
"arc": false,
"common": false,
"createMapboxStreetsV6Style": false,
"d3": false,
"jsPDF": false,
"jsts": false,
"topojson": false,
"turf": false
},
"rules": {
"no-unused-vars": [2, {"varsIgnorePattern": "^map"}]
}
}

View File

@@ -14,3 +14,6 @@ a.skiplink:focus {
background-color: #fff;
padding: 0.3em;
}
#map:focus {
outline: #4A74A8 solid 0.15em;
}

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: Accessibility example
layout: example.html
title: Accessible Map
shortdesc: Example of an accessible map.
docs: >
This page's `map` element has its `tabindex` attribute set to `"0"`, that makes it focusable. To focus the map element you can either navigate to it using the "tab" key or use the skip link. When the `map` element is focused the + and - keys can be used to zoom in and out and the arrow keys can be used to pan.
@@ -10,11 +10,7 @@ docs: >
tags: "accessibility, tabindex"
---
<div class="row-fluid">
<div class="span12">
<a class="skiplink" href="#map">Go to map</a>
<div id="map" class="map" tabindex="0"></div>
<button id="zoom-out">Zoom out</button>
<button id="zoom-in">Zoom in</button>
</div>
</div>
<a class="skiplink" href="#map">Go to map</a>
<div id="map" class="map" tabindex="0"></div>
<button id="zoom-out">Zoom out</button>
<button id="zoom-in">Zoom in</button>

View File

@@ -1,27 +1,19 @@
---
template: example.html
title: Animation example
layout: example.html
title: View Animation
shortdesc: Demonstrates animated pan, zoom, and rotation.
docs: >
This example shows how to use the beforeRender function on the Map to run one
or more animations.
tags: "animation"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<button id="rotate-left" title="Rotate clockwise"></button>
<button id="rotate-right" title="Rotate counterclockwise"></button>
<button id="rotate-around-rome">Rotate around Rome</button>
<button id="pan-to-london">Pan to London</button>
<button id="elastic-to-moscow">Elastic to Moscow</button>
<button id="bounce-to-istanbul">Bounce to Istanbul</button>
<button id="spin-to-rome">Spin to Rome</button>
<button id="fly-to-bern">Fly to Bern</button>
<button id="spiral-to-madrid">Spiral to Madrid</button>
</div>
</div>
<div id="map" class="map"></div>
<button id="rotate-left" title="Rotate clockwise"></button>
<button id="rotate-right" title="Rotate counterclockwise"></button>
<button id="rotate-around-rome">Rotate around Rome</button>
<button id="pan-to-london">Pan to London</button>
<button id="elastic-to-moscow">Elastic to Moscow</button>
<button id="bounce-to-istanbul">Bounce to Istanbul</button>
<button id="spin-to-rome">Spin to Rome</button>
<button id="fly-to-bern">Fly to Bern</button>
<button id="spiral-to-madrid">Spiral to Madrid</button>

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: Tiled ArcGIS MapServer example
layout: example.html
title: Tiled ArcGIS MapServer
shortdesc: Example of a tiled ArcGIS layer.
docs: >
This example shows how to use an ArcGIS REST MapService as tiles.
@@ -9,8 +9,4 @@ docs: >
<code>ol.source.XYZ</code> instead.
tags: arcgis, tile, tilelayer"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: Attributions example
layout: example.html
title: Attributions
shortdesc: Example of a attributions visibily change on map resize, to collapse them on small maps.
docs: >
When the map gets too small because of a resize, the attribution will be collapsed.
@@ -8,8 +8,4 @@ docs: >
of the map gets smaller than 600 pixels.
tags: "attributions, openstreetmap"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -14,7 +14,7 @@ var map = new ol.Map({
source: new ol.source.OSM()
})
],
controls: ol.control.defaults({ attribution: false }).extend([attribution]),
controls: ol.control.defaults({attribution: false}).extend([attribution]),
renderer: common.getRendererFromQueryString(),
target: 'map',
view: new ol.View({

View File

@@ -1,22 +1,18 @@
---
template: example.html
title: Bing Maps example
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>
tags: "bing, bing-maps"
cloak:
Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<select id="layer-select">
<option value="Aerial">Aerial</option>
<option value="AerialWithLabels" selected>Aerial with labels</option>
<option value="Road">Road</option>
<option value="collinsBart">Collins Bart</option>
<option value="ordnanceSurvey">Ordnance Survey</option>
</select>
</div>
</div>
<div id="map" class="map"></div>
<select id="layer-select">
<option value="Aerial">Aerial</option>
<option value="AerialWithLabels" selected>Aerial with labels</option>
<option value="Road">Road</option>
<option value="collinsBart">Collins Bart</option>
<option value="ordnanceSurvey">Ordnance Survey</option>
</select>

View File

@@ -18,7 +18,7 @@ for (i = 0, ii = styles.length; i < ii; ++i) {
visible: false,
preload: Infinity,
source: new ol.source.BingMaps({
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3',
key: 'AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF',
imagerySet: styles[i]
// use maxZoom 19 to see stretched tiles instead of the BingMaps
// "no photos at this zoom level" tiles

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: Blend modes example
layout: example.html
title: Blend Modes
shortdesc: Shows how to change the canvas compositing / blending mode in post- and precompose eventhandlers.
docs: >
<p>This example shows how to change the canvas compositing / blending mode in
@@ -20,57 +20,49 @@ docs: >
checkboxes.</p>
tags: "blendmode, blend-mode, blend mode, blendingmode, blending-mode, blending mode, composition, compositing, canvas, vector"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<form class="form-horizontal">
<label>
<select id="blend-mode" class="form-control">
<option value="source-over">source-over (default)</option>
<option>source-in</option>
<option>source-out</option>
<option>source-atop</option>
<option>destination-over</option>
<option>destination-in</option>
<option>destination-out</option>
<option>destination-atop</option>
<option>lighter</option>
<option>copy</option>
<option>xor</option>
<option>multiply</option>
<option>screen</option>
<option>overlay</option>
<option>darken</option>
<option>lighten</option>
<option>color-dodge</option>
<option>color-burn</option>
<option>hard-light</option>
<option>soft-light</option>
<option selected>difference</option>
<option>exclusion</option>
<option>hue</option>
<option>saturation</option>
<option>color</option>
<option>luminosity</option>
</select>
Canvas compositing / blending mode
</label>
<label>
<input type="checkbox" id="affect-red" checked>
Red circle affected
</label>
<label>
<input type="checkbox" id="affect-green" checked>
Green circle affected
</label>
<label>
<input type="checkbox" id="affect-blue" checked>
Blue circle affected
</label>
</form>
</div>
</div>
<div id="map" class="map"></div>
<form class="form-horizontal">
<label>
<select id="blend-mode" class="form-control">
<option value="source-over">source-over (default)</option>
<option>source-in</option>
<option>source-out</option>
<option>source-atop</option>
<option>destination-over</option>
<option>destination-in</option>
<option>destination-out</option>
<option>destination-atop</option>
<option>lighter</option>
<option>copy</option>
<option>xor</option>
<option>multiply</option>
<option>screen</option>
<option>overlay</option>
<option>darken</option>
<option>lighten</option>
<option>color-dodge</option>
<option>color-burn</option>
<option>hard-light</option>
<option>soft-light</option>
<option selected>difference</option>
<option>exclusion</option>
<option>hue</option>
<option>saturation</option>
<option>color</option>
<option>luminosity</option>
</select>
Canvas compositing / blending mode
</label>
<label>
<input type="checkbox" id="affect-red" checked>
Red circle affected
</label>
<label>
<input type="checkbox" id="affect-green" checked>
Green circle affected
</label>
<label>
<input type="checkbox" id="affect-blue" checked>
Blue circle affected
</label>
</form>

View File

@@ -85,8 +85,13 @@ var map = new ol.Map({
})
});
// Get the form elements and bind the listeners
var select = document.getElementById('blend-mode');
var affectRed = document.getElementById('affect-red');
var affectGreen = document.getElementById('affect-green');
var affectBlue = document.getElementById('affect-blue');
// Various helper methods and event handlers
/**
* This method sets the globalCompositeOperation to the value of the select
* field and it is bound to the precompose event of the layers.
@@ -154,12 +159,6 @@ var affectLayerClicked = function() {
};
// Get the form elements and bind the listeners
var select = document.getElementById('blend-mode');
var affectRed = document.getElementById('affect-red');
var affectGreen = document.getElementById('affect-green');
var affectBlue = document.getElementById('affect-blue');
// Rerender map when blend mode changes
select.addEventListener('change', function() {
map.render();

View File

@@ -1,20 +1,12 @@
---
template: example.html
title: Box selection example
layout: example.html
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>
<p>Use <code>Ctrl+drag</code> (<code>Meta+drag</code> on Mac) to draw boxes.</p>
<p>Use <code>Ctrl+Drag</code> (<code>Command+Drag</code> on Mac) to draw boxes.</p>
tags: "DragBox, feature, selection, box"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
<div class="span4 offset4 pull-right">
<div id="info" class="alert alert-success">
&nbsp;
</div>
</div>
</div>
<div id="map" class="map"></div>
<div id="info">No countries selected</div>

View File

@@ -48,7 +48,7 @@ map.addInteraction(dragBox);
var infoBox = document.getElementById('info');
dragBox.on('boxend', function(e) {
dragBox.on('boxend', function() {
// features that intersect the box are added to the collection of
// selected features, and their names are displayed in the "info"
// div
@@ -64,7 +64,7 @@ dragBox.on('boxend', function(e) {
});
// clear selection when drawing a new box and when clicking on the map
dragBox.on('boxstart', function(e) {
dragBox.on('boxstart', function() {
selectedFeatures.clear();
infoBox.innerHTML = '&nbsp;';
});

View File

@@ -1,4 +1,3 @@
.tooltip-inner {
white-space: nowrap;
}

View File

@@ -1,13 +1,13 @@
---
template: example.html
title: Custom tooltips example
layout: example.html
title: Custom Tooltips
shortdesc: This example shows how to customize the buttons tooltips with Bootstrap.
docs: >
This example shows how to customize the buttons tooltips with <a href="http://getbootstrap.com/javascript/#tooltips">Bootstrap</a>.
tags: "custom, tooltip"
resources:
- https://code.jquery.com/jquery-1.11.2.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -1,17 +1,13 @@
---
template: example.html
title: Canvas tiles example
layout: example.html
title: Canvas Tiles
shortdesc: Renders tiles with coordinates for debugging.
docs: >
The black grid tiles are generated on the client with an HTML5 canvas. The
displayed tile coordinates are OpenLayers tile coordinates. These increase
from bottom to top, but standard XYZ tiling scheme coordinates increase from
top to bottom. To calculate the `y` for a standard XYZ tile coordinate, use
`-y - 1`.
`-y - 1`.
tags: "layers, openstreetmap, canvas"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: Advanced View Positioning example
layout: example.html
title: Advanced View Positioning
shortdesc: This example demonstrates how a map's view can be adjusted so a geometry or coordinate is positioned at a specific pixel location.
docs: >
This example demonstrates how a map's view can be
@@ -10,25 +10,19 @@ docs: >
is used to fit a geometry in the view with the same padding. The
view's <code>centerOn</code> method is used to position a coordinate (Lausanne)
at a specific pixel location (the center of the black box).
<p>Use <code>Alt</code>+<code>Shift</code>+drag to rotate the map.</p>
<p>Use <code>Alt+Shift+Drag</code> to rotate the map.</p>
tags: "center, rotation, openstreetmap"
---
<div class="row-fluid">
<div class="span12 mapcontainer">
<div id="map" class="map"></div>
<div class="padding-top"></div>
<div class="padding-left"></div>
<div class="padding-right"></div>
<div class="padding-bottom"></div>
<div class="center"></div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<button id="zoomtoswitzerlandbest">Zoom to Switzerland</button> (best fit),<br/>
<button id="zoomtoswitzerlandconstrained">Zoom to Switzerland</button> (respect resolution constraint).<br/>
<button id="zoomtoswitzerlandnearest">Zoom to Switzerland</button> (nearest),<br/>
<button id="zoomtolausanne">Zoom to Lausanne</button> (with min resolution),<br/>
<button id="centerlausanne">Center on Lausanne</button>
</div>
<div class="mapcontainer">
<div id="map" class="map"></div>
<div class="padding-top"></div>
<div class="padding-left"></div>
<div class="padding-right"></div>
<div class="padding-bottom"></div>
<div class="center"></div>
</div>
<button id="zoomtoswitzerlandbest">Zoom to Switzerland</button> (best fit),<br/>
<button id="zoomtoswitzerlandconstrained">Zoom to Switzerland</button> (respect resolution constraint).<br/>
<button id="zoomtoswitzerlandnearest">Zoom to Switzerland</button> (nearest),<br/>
<button id="zoomtolausanne">Zoom to Lausanne</button> (with min resolution),<br/>
<button id="centerlausanne">Center on Lausanne</button>

View File

@@ -65,14 +65,7 @@ zoomtoswitzerlandbest.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.fit(
polygon,
size,
{
padding: [170, 50, 30, 150],
constrainResolution: false
}
);
view.fit(polygon, size, {padding: [170, 50, 30, 150], constrainResolution: false});
}, false);
var zoomtoswitzerlandconstrained =
@@ -81,13 +74,7 @@ zoomtoswitzerlandconstrained.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.fit(
polygon,
size,
{
padding: [170, 50, 30, 150]
}
);
view.fit(polygon, size, {padding: [170, 50, 30, 150]});
}, false);
var zoomtoswitzerlandnearest =
@@ -96,14 +83,7 @@ zoomtoswitzerlandnearest.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.fit(
polygon,
size,
{
padding: [170, 50, 30, 150],
nearest: true
}
);
view.fit(polygon, size, {padding: [170, 50, 30, 150], nearest: true});
}, false);
var zoomtolausanne = document.getElementById('zoomtolausanne');
@@ -111,14 +91,7 @@ zoomtolausanne.addEventListener('click', function() {
var feature = source.getFeatures()[1];
var point = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.fit(
point,
size,
{
padding: [170, 50, 30, 150],
minResolution: 50
}
);
view.fit(point, size, {padding: [170, 50, 30, 150], minResolution: 50});
}, false);
var centerlausanne = document.getElementById('centerlausanne');
@@ -126,9 +99,5 @@ centerlausanne.addEventListener('click', function() {
var feature = source.getFeatures()[1];
var point = /** @type {ol.geom.Point} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.centerOn(
point.getCoordinates(),
size,
[570, 500]
);
view.centerOn(point.getCoordinates(), size, [570, 500]);
}, false);

View File

@@ -1,13 +1,9 @@
---
template: example.html
title: Clustering example
layout: example.html
title: Clustered Features
shortdesc: Example of using <code>ol.source.Cluster</code>.
docs: >
This example shows how to do clustering on point features.
tags: "cluster, vector"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -34,11 +34,11 @@ var clusterSource = new ol.source.Cluster({
var styleCache = {};
var clusters = new ol.layer.Vector({
source: clusterSource,
style: function(feature, resolution) {
style: function(feature) {
var size = feature.get('features').length;
var style = styleCache[size];
if (!style) {
style = [new ol.style.Style({
style = new ol.style.Style({
image: new ol.style.Circle({
radius: 10,
stroke: new ol.style.Stroke({
@@ -54,7 +54,7 @@ var clusters = new ol.layer.Vector({
color: '#fff'
})
})
})];
});
styleCache[size] = style;
}
return style;
@@ -65,10 +65,6 @@ var raster = new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
});
var raw = new ol.layer.Vector({
source: source
});
var map = new ol.Map({
layers: [raster, clusters],
renderer: 'canvas',

View File

@@ -1,30 +1,26 @@
---
template: example.html
title: Manipulating colors with a raster source
layout: example.html
title: Color Manipulation
shortdesc: Demonstrates color manipulation with a raster source.
docs: >
A raster source allows arbitrary manipulation of pixel values. In this example, RGB values on the input tile source are adjusted in a pixel-wise operation before being rendered with a second raster source. The raster operation takes pixels in in RGB space, converts them to HCL color space, adjusts the values based on the controls above, and then converts them back to RGB space for rendering.
tags: "color, hue, lightness, chroma"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<table class="controls">
<tr>
<td>hue</td>
<td><span id="hueOut"></span>°</td>
<td><input id="hue" type="range" min="-180" max="180" value="0"/></td>
</tr>
<tr>
<td>chroma</td>
<td><span id="chromaOut"></span> %</td>
<td><input id="chroma" type="range" min="0" max="100" value="100"/></td>
</tr>
<tr>
<td>lightness</td>
<td><span id="lightnessOut"></span> %</td>
<td><input id="lightness" type="range" min="0" max="100" value="100"/></td>
</tr>
</table>
</div>
</div>
<div id="map" class="map"></div>
<table class="controls">
<tr>
<td>hue</td>
<td><span id="hueOut"></span>°</td>
<td><input id="hue" type="range" min="-180" max="180" value="0"/></td>
</tr>
<tr>
<td>chroma</td>
<td><span id="chromaOut"></span> %</td>
<td><input id="chroma" type="range" min="0" max="100" value="100"/></td>
</tr>
<tr>
<td>lightness</td>
<td><span id="lightnessOut"></span> %</td>
<td><input id="lightness" type="range" min="0" max="100" value="100"/></td>
</tr>
</table>

View File

@@ -138,6 +138,8 @@ var raster = new ol.source.Raster({
}
});
var controls = {};
raster.on('beforeoperations', function(event) {
var data = event.data;
for (var id in controls) {
@@ -160,7 +162,6 @@ var map = new ol.Map({
});
var controlIds = ['hue', 'chroma', 'lightness'];
var controls = {};
controlIds.forEach(function(id) {
var control = document.getElementById(id);
var output = document.getElementById(id + 'Out');

View File

@@ -1,13 +1,9 @@
---
template: example.html
title: Custom control example
layout: example.html
title: Custom Controls
shortdesc: Shows how to create custom controls.
docs: >
This example creates a "rotate to north" button.
tags: "custom, control"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -19,7 +19,6 @@ var app = window.app;
//
/**
* @constructor
* @extends {ol.control.Control}
@@ -33,7 +32,7 @@ app.RotateNorthControl = function(opt_options) {
button.innerHTML = 'N';
var this_ = this;
var handleRotateNorth = function(e) {
var handleRotateNorth = function() {
this_.getMap().getView().setRotation(0);
};
@@ -75,7 +74,7 @@ var map = new ol.Map({
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2,
zoom: 3,
rotation: 1
})
});

View File

@@ -1,14 +1,10 @@
---
template: example.html
title: Custom interaction example
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.
tags: "drag, feature, vector, editing, custom, interaction"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -19,9 +19,7 @@ goog.require('ol.style.Style');
/**
* Define a namespace for the application.
*/
window.app = {};
var app = window.app;
var app = {};
/**
@@ -73,7 +71,7 @@ app.Drag.prototype.handleDownEvent = function(evt) {
var map = evt.map;
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, layer) {
function(feature) {
return feature;
});
@@ -90,13 +88,6 @@ app.Drag.prototype.handleDownEvent = function(evt) {
* @param {ol.MapBrowserEvent} evt Map browser event.
*/
app.Drag.prototype.handleDragEvent = function(evt) {
var map = evt.map;
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, layer) {
return feature;
});
var deltaX = evt.coordinate[0] - this.coordinate_[0];
var deltaY = evt.coordinate[1] - this.coordinate_[1];
@@ -116,7 +107,7 @@ app.Drag.prototype.handleMoveEvent = function(evt) {
if (this.cursor_) {
var map = evt.map;
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, layer) {
function(feature) {
return feature;
});
var element = evt.map.getTargetElement();
@@ -134,10 +125,9 @@ app.Drag.prototype.handleMoveEvent = function(evt) {
/**
* @param {ol.MapBrowserEvent} evt Map browser event.
* @return {boolean} `false` to stop the drag sequence.
*/
app.Drag.prototype.handleUpEvent = function(evt) {
app.Drag.prototype.handleUpEvent = function() {
this.coordinate_ = null;
this.feature_ = null;
return false;
@@ -159,7 +149,7 @@ var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.TileJSON({
url: 'http://api.tiles.mapbox.com/v3/mapbox.geography-class.jsonp'
url: 'http://api.tiles.mapbox.com/v3/mapbox.geography-class.json'
})
}),
new ol.layer.Vector({

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: d3 integration example
layout: example.html
title: d3 Integration
shortdesc: Example of using ol3 and d3 together.
docs: >
<p>The example loads TopoJSON geometries and uses d3 (<code>d3.geo.path</code>) to render these geometries to a canvas element that is then used as the image of an ol3 image layer.</p>
@@ -9,8 +9,4 @@ resources:
- http://d3js.org/d3.v3.min.js
- http://d3js.org/topojson.v1.min.js
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

3
examples/d3.js vendored
View File

@@ -1,5 +1,4 @@
// NOCOMPILE
// this example uses d3 for which we don't have an externs file.
goog.require('ol');
goog.require('ol.Map');
goog.require('ol.View');
@@ -40,7 +39,7 @@ d3.json('data/topojson/us.json', function(error, us) {
* @param {number} pixelRatio Pixel ratio.
* @param {ol.Size} size Size.
* @param {ol.proj.Projection} projection Projection.
* @return {HTMLCanvasElement}
* @return {HTMLCanvasElement} A canvas element.
*/
var canvasFunction = function(extent, resolution, pixelRatio,
size, projection) {

BIN
examples/data/dot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,283 @@
<?xml version="1.0" encoding="UTF-8"?>
<msGMLOutput
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<restaurant_layer>
<gml:name>Restaurants</gml:name>
<restaurant_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537750.006175,150923.784252 537750.006175,150923.784252</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537750.006175,150923.784252</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Château d&#39;Ouchy</display_name>
<name>Château d&#39;Ouchy</name>
<osm_id>1230808910</osm_id>
<access></access>
<aerialway></aerialway>
<amenity>restaurant</amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism></tourism>
<waterway></waterway>
<wood></wood>
</restaurant_feature>
<restaurant_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537770.247124,150975.613968 537770.247124,150975.613968</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537770.247124,150975.613968</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Cafe du Vieil Ouchy</display_name>
<name>Cafe du Vieil Ouchy</name>
<osm_id>1433812389</osm_id>
<access></access>
<aerialway></aerialway>
<amenity>restaurant</amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator>Carine Duca</operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism></tourism>
<waterway></waterway>
<wood></wood>
</restaurant_feature>
<restaurant_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537789.197617,150976.218227 537789.197617,150976.218227</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537789.197617,150976.218227</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Creperie</display_name>
<name>Creperie</name>
<osm_id>1433812391</osm_id>
<access></access>
<aerialway></aerialway>
<amenity>restaurant</amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism></tourism>
<waterway></waterway>
<wood></wood>
</restaurant_feature>
<restaurant_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537810.679909,150983.377694 537810.679909,150983.377694</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537810.679909,150983.377694</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>1433812390</display_name>
<name></name>
<osm_id>1433812390</osm_id>
<access></access>
<aerialway></aerialway>
<amenity>restaurant</amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism></tourism>
<waterway></waterway>
<wood></wood>
</restaurant_feature>
</restaurant_layer>
<hotel_layer>
<gml:name>Hôtels</gml:name>
<hotel_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537762.425297,150971.904013 537762.425297,150971.904013</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537762.425297,150971.904013</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Hotel du port</display_name>
<name>Hotel du port</name>
<osm_id>2886793101</osm_id>
<access></access>
<aerialway></aerialway>
<amenity></amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism>hotel</tourism>
<waterway></waterway>
<wood></wood>
</hotel_feature>
<hotel_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537798.352160,150985.584164 537798.352160,150985.584164</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537798.352160,150985.584164</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Angleterre</display_name>
<name>Angleterre</name>
<osm_id>1433812387</osm_id>
<access></access>
<aerialway></aerialway>
<amenity></amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism>hotel</tourism>
<waterway></waterway>
<wood></wood>
</hotel_feature>
</hotel_layer>
</msGMLOutput>

View File

@@ -1,23 +1,19 @@
---
template: example.html
title: Device-Orientation example
layout: example.html
title: Device Orientation
shortdesc: Listen to DeviceOrientation events.
docs: >
This example shows how to track changes in device orientation.
tags: "orientation, openstreetmap"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<div class="span12">
<h4 id="title">Device orientation example</h4>
<label class="checkbox" for="track">
<input id="track" type="checkbox"/>track changes
</label>
<p>&alpha; : <code id="alpha"></code></p>
<p>&beta; : <code id="beta"></code></p>
<p>&gamma; : <code id="gamma"></code></p>
<p>heading : <code id="heading"></code></p>
</div>
</div>
</div>
<div id="map" class="map"></div>
<label>
track changes
<input id="track" type="checkbox"/>
</label>
<p>
α : <code id="alpha"></code>&nbsp;&nbsp;
β : <code id="beta"></code>&nbsp;&nbsp;
γ : <code id="gamma"></code>&nbsp;&nbsp;
heading : <code id="heading"></code>
</p>

View File

@@ -39,7 +39,7 @@ el('track').addEventListener('change', function() {
deviceOrientation.setTracking(this.checked);
});
deviceOrientation.on('change', function(event) {
deviceOrientation.on('change', function() {
el('alpha').innerText = deviceOrientation.getAlpha() + ' [rad]';
el('beta').innerText = deviceOrientation.getBeta() + ' [rad]';
el('gamma').innerText = deviceOrientation.getGamma() + ' [rad]';

View File

@@ -1,21 +1,12 @@
---
template: example.html
title: Drag-and-Drop image vector example
shortdesc: Example of using the drag-and-drop interaction with a ol.source.ImageVector. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. Each file is rendered to an image on the client.
layout: example.html
title: Drag-and-Drop Image Vector
shortdesc: Example of using the drag-and-drop interaction with a ol.source.ImageVector.
docs: >
Example of using the drag-and-drop interaction with a ol.source.ImageVector. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. Each file is rendered to
an image on the client.
Example of using the drag-and-drop interaction with a ol.source.ImageVector. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. Each file is rendered to an image on the client.
tags: "drag-and-drop-image-vector, gpx, geojson, igc, kml, topojson, vector, image"
cloak:
Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<div class="span4 offset4 pull-right">
<div id="info" class="alert alert-success">
&nbsp;
</div>
</div>
</div>
</div>
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -19,7 +19,7 @@ goog.require('ol.style.Style');
var defaultStyle = {
'Point': [new ol.style.Style({
'Point': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,255,0,0.5)'
@@ -30,14 +30,14 @@ var defaultStyle = {
width: 1
})
})
})],
'LineString': [new ol.style.Style({
}),
'LineString': new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#f00',
width: 3
})
})],
'Polygon': [new ol.style.Style({
}),
'Polygon': new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,255,255,0.5)'
}),
@@ -45,8 +45,8 @@ var defaultStyle = {
color: '#0ff',
width: 1
})
})],
'MultiPoint': [new ol.style.Style({
}),
'MultiPoint': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,0,255,0.5)'
@@ -57,14 +57,14 @@ var defaultStyle = {
width: 1
})
})
})],
'MultiLineString': [new ol.style.Style({
}),
'MultiLineString': new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#0f0',
width: 3
})
})],
'MultiPolygon': [new ol.style.Style({
}),
'MultiPolygon': new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,0,255,0.5)'
}),
@@ -72,7 +72,7 @@ var defaultStyle = {
color: '#00f',
width: 1
})
})]
})
};
var styleFunction = function(feature, resolution) {
@@ -100,7 +100,7 @@ var map = new ol.Map({
new ol.layer.Tile({
source: new ol.source.BingMaps({
imagerySet: 'Aerial',
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3'
key: 'AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF'
})
})
],
@@ -128,7 +128,7 @@ dragAndDropInteraction.on('addfeatures', function(event) {
var displayFeatureInfo = function(pixel) {
var features = [];
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
map.forEachFeatureAtPixel(pixel, function(feature) {
features.push(feature);
});
if (features.length > 0) {

View File

@@ -1,21 +1,12 @@
---
template: example.html
title: Drag-and-Drop example
shortdesc: 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.
layout: example.html
title: Drag-and-Drop
shortdesc: Example of using the drag-and-drop interaction.
docs: >
Example of using the drag-and-drop interaction. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. There is no projection transform support, so this will
only work with data in EPSG:4326 and EPSG:3857.
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:
Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<div class="span4 offset4 pull-right">
<div id="info" class="alert alert-success">
&nbsp;
</div>
</div>
</div>
</div>
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -18,7 +18,7 @@ goog.require('ol.style.Style');
var defaultStyle = {
'Point': [new ol.style.Style({
'Point': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,255,0,0.5)'
@@ -29,14 +29,14 @@ var defaultStyle = {
width: 1
})
})
})],
'LineString': [new ol.style.Style({
}),
'LineString': new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#f00',
width: 3
})
})],
'Polygon': [new ol.style.Style({
}),
'Polygon': new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,255,255,0.5)'
}),
@@ -44,8 +44,8 @@ var defaultStyle = {
color: '#0ff',
width: 1
})
})],
'MultiPoint': [new ol.style.Style({
}),
'MultiPoint': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,0,255,0.5)'
@@ -56,14 +56,14 @@ var defaultStyle = {
width: 1
})
})
})],
'MultiLineString': [new ol.style.Style({
}),
'MultiLineString': new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#0f0',
width: 3
})
})],
'MultiPolygon': [new ol.style.Style({
}),
'MultiPolygon': new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,0,255,0.5)'
}),
@@ -71,7 +71,7 @@ var defaultStyle = {
color: '#00f',
width: 1
})
})]
})
};
var styleFunction = function(feature, resolution) {
@@ -99,7 +99,7 @@ var map = new ol.Map({
new ol.layer.Tile({
source: new ol.source.BingMaps({
imagerySet: 'Aerial',
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3'
key: 'AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF'
})
})
],
@@ -124,7 +124,7 @@ dragAndDropInteraction.on('addfeatures', function(event) {
var displayFeatureInfo = function(pixel) {
var features = [];
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
map.forEachFeatureAtPixel(pixel, function(feature) {
features.push(feature);
});
if (features.length > 0) {

View File

@@ -1,13 +1,9 @@
---
template: example.html
title: Drag rotate and zoom example
layout: example.html
title: Drag, Rotate, and Zoom
shortdesc: A single interaction to drag, rotate, and zoom.
docs: >
<p><code>Shift</code> + Drag to rotate and zoom the map around its center.</p>
<p><code>Shift+Drag</code> to rotate and zoom the map around its center.</p>
tags: "drag, rotate, zoom, interaction"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -1,21 +1,17 @@
---
template: example.html
title: Draw and modify features example
layout: example.html
title: Draw and Modify Features
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.
tags: "draw, edit, modify, vector, featureoverlay"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
<form class="form-inline">
<label>Geometry type &nbsp;</label>
<select id="type">
<option value="Point">Point</option>
<option value="LineString">LineString</option>
<option value="Polygon">Polygon</option>
</select>
</form>
</div>
<div id="map" class="map"></div>
<form class="form-inline">
<label>Geometry type &nbsp;</label>
<select id="type">
<option value="Point">Point</option>
<option value="LineString">LineString</option>
<option value="Polygon">Polygon</option>
</select>
</form>

View File

@@ -60,6 +60,8 @@ var modify = new ol.interaction.Modify({
map.addInteraction(modify);
var draw; // global so we can remove it later
var typeSelect = document.getElementById('type');
function addInteraction() {
draw = new ol.interaction.Draw({
features: features,
@@ -68,14 +70,11 @@ function addInteraction() {
map.addInteraction(draw);
}
var typeSelect = document.getElementById('type');
/**
* Let user change the geometry type.
* @param {Event} e Change event.
* Handle change event.
*/
typeSelect.onchange = function(e) {
typeSelect.onchange = function() {
map.removeInteraction(draw);
addInteraction();
};

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: Draw features example
layout: example.html
title: Draw Features
shortdesc: Example of using the ol.interaction.Draw interaction.
docs: >
Example of using the Draw interaction. Select a geometry type from the
@@ -12,20 +12,16 @@ docs: >
points and creates a rectangular box.
tags: "draw, edit, freehand, vector"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<form class="form-inline">
<label>Geometry type &nbsp;</label>
<select id="type">
<option value="None">None</option>
<option value="Point">Point</option>
<option value="LineString">LineString</option>
<option value="Polygon">Polygon</option>
<option value="Circle">Circle</option>
<option value="Square">Square</option>
<option value="Box">Box</option>
</select>
</form>
</div>
</div>
<div id="map" class="map"></div>
<form class="form-inline">
<label>Geometry type &nbsp;</label>
<select id="type">
<option value="Point">Point</option>
<option value="LineString">LineString</option>
<option value="Polygon">Polygon</option>
<option value="Circle">Circle</option>
<option value="Square">Square</option>
<option value="Box">Box</option>
<option value="None">None</option>
</select>
</form>

View File

@@ -83,10 +83,9 @@ function addInteraction() {
/**
* Let user change the geometry type.
* @param {Event} e Change event.
* Handle change event.
*/
typeSelect.onchange = function(e) {
typeSelect.onchange = function() {
map.removeInteraction(draw);
addInteraction();
};

View File

@@ -1,13 +1,9 @@
---
template: example.html
title: Dynamic data example
layout: example.html
title: Dynamic Data
shortdesc: Example of dynamic data.
docs: >
Example of dynamic data.
tags: "dynamic-data"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -1,5 +1,5 @@
---
template: example.html
layout: example.html
title: Earthquake Clusters
shortdesc: Demonstrates the use of style geometries to render source features of a cluster.
docs: >
@@ -9,8 +9,4 @@ docs: >
<p>To achieve this, we make heavy use of style functions and <code>ol.style.Style#geometry</code>.</p>
tags: "KML, vector, style, geometry, cluster"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -56,7 +56,7 @@ function createEarthquakeStyle(feature) {
});
}
var maxFeatureCount;
var maxFeatureCount, vector;
function calculateClusterInfo(resolution) {
maxFeatureCount = 0;
var features = vector.getSource().getFeatures();
@@ -65,7 +65,8 @@ function calculateClusterInfo(resolution) {
feature = features[i];
var originalFeatures = feature.get('features');
var extent = ol.extent.createEmpty();
for (var j = 0, jj = originalFeatures.length; j < jj; ++j) {
var j, jj;
for (j = 0, jj = originalFeatures.length; j < jj; ++j) {
ol.extent.extend(extent, originalFeatures[j].getGeometry().getExtent());
}
maxFeatureCount = Math.max(maxFeatureCount, jj);
@@ -84,7 +85,7 @@ function styleFunction(feature, resolution) {
var style;
var size = feature.get('features').length;
if (size > 1) {
style = [new ol.style.Style({
style = new ol.style.Style({
image: new ol.style.Circle({
radius: feature.get('radius'),
fill: new ol.style.Fill({
@@ -96,15 +97,15 @@ function styleFunction(feature, resolution) {
fill: textFill,
stroke: textStroke
})
})];
});
} else {
var originalFeature = feature.get('features')[0];
style = [createEarthquakeStyle(originalFeature)];
style = createEarthquakeStyle(originalFeature);
}
return style;
}
function selectStyleFunction(feature, resolution) {
function selectStyleFunction(feature) {
var styles = [new ol.style.Style({
image: new ol.style.Circle({
radius: feature.get('radius'),
@@ -120,7 +121,7 @@ function selectStyleFunction(feature, resolution) {
return styles;
}
var vector = new ol.layer.Vector({
vector = new ol.layer.Vector({
source: new ol.source.Cluster({
distance: 40,
source: new ol.source.Vector({

View File

@@ -0,0 +1,9 @@
---
layout: example.html
title: Earthquakes with custom symbols
shortdesc: Demonstrates the use of `ol.render.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"
---
<div id="map" class="map"></div>

View File

@@ -0,0 +1,71 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.KML');
goog.require('ol.geom.Polygon');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.render');
goog.require('ol.source.Stamen');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Icon');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var styleCache = {};
var styleFunction = function(feature) {
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
// standards-violating <magnitude> tag in each Placemark. We extract it from
// the Placemark's name instead.
var name = feature.get('name');
var magnitude = parseFloat(name.substr(2));
var size = parseInt(10 + 40 * (magnitude - 5), 10);
var style = styleCache[size];
if (!style) {
var canvas =
/** @type {HTMLCanvasElement} */ (document.createElement('canvas'));
var render = ol.render.toContext(
/** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d')),
{size: [size + 2, size + 2], pixelRatio: size / 10});
render.setFillStrokeStyle(
new ol.style.Fill({color: 'rgba(255, 153, 0, 0.4)'}),
new ol.style.Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 1}));
render.drawPolygonGeometry(new ol.geom.Polygon(
[[[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]]]));
style = new ol.style.Style({
image: new ol.style.Icon({
img: canvas,
imgSize: [canvas.width, canvas.height],
rotation: 1.2
})
});
styleCache[size] = style;
}
return style;
};
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
url: 'data/kml/2012_Earthquakes_Mag5.kml',
format: new ol.format.KML({
extractStyles: false
})
}),
style: styleFunction
});
var raster = new ol.layer.Tile({
source: new ol.source.Stamen({
layer: 'toner'
})
});
var map = new ol.Map({
layers: [raster, vector],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});

View File

@@ -1,13 +1,9 @@
---
template: example.html
title: EPSG:4326 example
layout: example.html
title: EPSG:4326
shortdesc: Example of a map in EPSG:4326.
docs: >
This example shows how to create a map in EPSG:4326.
tags: "epsg4326"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -1,18 +1,14 @@
---
template: example.html
title: Export map example
layout: example.html
title: Map Export
shortdesc: Example of exporting a map as a PNG image.
docs: >
Example of exporting a map as a PNG image.
tags: "export, png, openstreetmap"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<div id="no-download" class="alert alert-danger" style="display: none">
This example requires a browser that supports the
<a href="http://caniuse.com/#feat=download">link download</a> attribute.
</div>
<a id="export-png" class="btn btn-default" download="map.png"><i class="fa fa-download"></i> Export PNG</a>
</div>
<div id="map" class="map"></div>
<div id="no-download" class="alert alert-danger" style="display: none">
This example requires a browser that supports the
<a href="http://caniuse.com/#feat=download">link download</a> attribute.
</div>
<a id="export-png" class="btn btn-default" download="map.png"><i class="fa fa-download"></i> Download PNG</a>

View File

@@ -34,7 +34,7 @@ var map = new ol.Map({
var exportPNGElement = document.getElementById('export-png');
if ('download' in exportPNGElement) {
exportPNGElement.addEventListener('click', function(e) {
exportPNGElement.addEventListener('click', function() {
map.once('postcompose', function(event) {
var canvas = event.context.canvas;
exportPNGElement.href = canvas.toDataURL('image/png');

3
examples/export-pdf.css Normal file
View File

@@ -0,0 +1,3 @@
.map {
max-width: 566px;
}

33
examples/export-pdf.html Normal file
View File

@@ -0,0 +1,33 @@
---
layout: example.html
title: Export PDF example
shortdesc: Example of exporting a map as a PDF.
docs: >
Example of exporting a map as a PDF using the <a href="https://github.com/MrRio/jsPDF" target="_blank">jsPDF</a> library.
tags: "export, pdf, openstreetmap"
resources:
- http://mrrio.github.io/jsPDF/dist/jspdf.min.js
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<form class="form">
<label>Page size </label>
<select id="format">
<option value="a0">A0 (slow)</option>
<option value="a1">A1</option>
<option value="a2">A2</option>
<option value="a3">A3</option>
<option value="a4" selected>A4</option>
<option value="a5">A5 (fast)</option>
</select>
<label>Resolution </label>
<select id="resolution">
<option value="72">72 dpi (fast)</option>
<option value="150">150 dpi</option>
<option value="300">300 dpi (slow)</option>
</select>
</form>
<button id="export-pdf">Export PDF</button>

109
examples/export-pdf.js Normal file
View File

@@ -0,0 +1,109 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.format.WKT');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
});
var format = new ol.format.WKT();
var feature = format.readFeature(
'POLYGON((10.689697265625 -25.0927734375, 34.595947265625 ' +
'-20.1708984375, 38.814697265625 -35.6396484375, 13.502197265625 ' +
'-39.1552734375, 10.689697265625 -25.0927734375))');
feature.getGeometry().transform('EPSG:4326', 'EPSG:3857');
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
features: [feature]
})
});
var map = new ol.Map({
layers: [raster, vector],
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
var dims = {
a0: [1189, 841],
a1: [841, 594],
a2: [594, 420],
a3: [420, 297],
a4: [297, 210],
a5: [210, 148]
};
var loading = 0;
var loaded = 0;
var exportButton = document.getElementById('export-pdf');
exportButton.addEventListener('click', function() {
exportButton.disabled = true;
document.body.style.cursor = 'progress';
var format = document.getElementById('format').value;
var resolution = document.getElementById('resolution').value;
var dim = dims[format];
var width = Math.round(dim[0] * resolution / 25.4);
var height = Math.round(dim[1] * resolution / 25.4);
var size = /** @type {ol.Size} */ (map.getSize());
var extent = map.getView().calculateExtent(size);
var source = raster.getSource();
var tileLoadStart = function() {
++loading;
};
var tileLoadEnd = function() {
++loaded;
if (loading === loaded) {
var canvas = this;
window.setTimeout(function() {
loading = 0;
loaded = 0;
var data = canvas.toDataURL('image/png');
var pdf = new jsPDF('landscape', undefined, format);
pdf.addImage(data, 'JPEG', 0, 0, dim[0], dim[1]);
pdf.save('map.pdf');
source.un('tileloadstart', tileLoadStart);
source.un('tileloadend', tileLoadEnd, canvas);
source.un('tileloaderror', tileLoadEnd, canvas);
map.setSize(size);
map.getView().fit(extent, size);
map.renderSync();
exportButton.disabled = false;
document.body.style.cursor = 'auto';
}, 100);
}
};
map.once('postcompose', function(event) {
source.on('tileloadstart', tileLoadStart);
source.on('tileloadend', tileLoadEnd, event.context.canvas);
source.on('tileloaderror', tileLoadEnd, event.context.canvas);
});
map.setSize([width, height]);
map.getView().fit(extent, /** @type {ol.Size} */ (map.getSize()));
map.renderSync();
}, false);

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: Feature animation example
layout: example.html
title: Custom Animation
shortdesc: Demonstrates how to animate features.
docs: >
This example shows how to use <b>postcompose</b> and <b>vectorContext</b> to
@@ -8,8 +8,4 @@ docs: >
is added to the layer.
tags: "animation, vector, feature, flash"
---
<div class="row">
<div class="span8">
<div id="map" class="map"></div>
</div>
</div>
<div id="map" class="map"></div>

View File

@@ -83,7 +83,7 @@ function flash(feature) {
return;
}
// tell OL3 to continue postcompose animation
frameState.animate = true;
map.render();
}
listenerKey = map.on('postcompose', animate);
}

View File

@@ -1,6 +1,6 @@
---
template: example.html
title: Animate a feature movement
layout: example.html
title: Marker Animation
shortdesc: Demonstrates how to move a feature along a line.
docs: >
This example shows how to use <b>postcompose</b> and <b>vectorContext</b> to
@@ -8,17 +8,9 @@ docs: >
is being used.
tags: "animation, feature, postcompose, polyline"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<label for="speed">
speed:&nbsp;
<input id="speed" type="range" min="10" max="999" step="10" value="60">
</label>
<button id="start-animation">Start Animation</button>
</div>
</div>
<div id="map" class="map"></div>
<label for="speed">
speed:&nbsp;
<input id="speed" type="range" min="10" max="999" step="10" value="60">
</label>
<button id="start-animation">Start Animation</button>

View File

@@ -108,16 +108,21 @@ var styles = {
})
};
var animating = false;
var speed, now;
var speedInput = document.getElementById('speed');
var startButton = document.getElementById('start-animation');
var vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: [routeFeature, geoMarker, startMarker, endMarker]
}),
style: function(feature, resolution) {
style: function(feature) {
// hide geoMarker if animation is active
if (animating && feature.get('type') === 'geoMarker') {
return [];
return null;
}
return [styles[feature.get('type')]];
return styles[feature.get('type')];
}
});
@@ -135,7 +140,7 @@ var map = new ol.Map({
new ol.layer.Tile({
source: new ol.source.BingMaps({
imagerySet: 'AerialWithLabels',
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3'
key: 'AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF'
})
}),
vectorLayer
@@ -198,8 +203,4 @@ function stopAnimation(ended) {
map.un('postcompose', moveFeature);
}
var speed, now;
var animating = false;
var speedInput = document.getElementById('speed');
var startButton = document.getElementById('start-animation');
startButton.addEventListener('click', startAnimation, false);

View File

@@ -0,0 +1,17 @@
---
layout: example.html
title: Flight Animation
shortdesc: Demonstrates how to animate flights with ´postcompose´.
docs: >
This example shows how to use <b>postcompose</b> and <b>vectorContext</b> to
animate flights. A great circle arc between two airports is calculated using
<a href="https://github.com/springmeyer/arc.js">arc.js</a> and then the flight
paths are animated with <b>postcompose</b>. The flight data is provided by
<a href="http://openflights.org/data.html">OpenFlights</a> (a simplified data
set from the <a href="https://www.mapbox.com/mapbox.js/example/v1.0.0/animating-flight-paths/">
Mapbox.js documentation</a> is used).
tags: "animation, vector, feature, flights, arc"
resources:
- https://api.mapbox.com/mapbox.js/plugins/arc.js/v0.1.0/arc.js
---
<div id="map" class="map"></div>

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