Compare commits

..

660 Commits

Author SHA1 Message Date
Frederic Junod
9a57c8745e Update package version to 3.15.0 2016-04-04 10:40:12 +02:00
Frederic Junod
84401c132f Changelog for v3.15.0 2016-04-04 10:40:12 +02:00
Nicholas Latham
2ee1969de7 Remove goog.math.modulo and goog.math.lerp 2016-04-04 09:43:24 +02:00
Frédéric Junod
19fd3d6987 Merge pull request #5152 from fredj/cartodb_cleanup
Cartodb cleanup
2016-04-04 09:38:41 +02:00
Frédéric Junod
4b14c86fd1 Merge pull request #4804 from fredj/rm_goog.isArray
Use Array.isArray instead of goog.isArray
2016-04-04 09:25:41 +02:00
Andreas Hocevar
c535cf04e2 Merge pull request #5149 from ahocevar/batch-polygon-fill-stroke
Batch polygon fill and stroke instructions
2016-04-04 09:17:52 +02:00
Frederic Junod
80e984a9c3 Use Array.isArray instead of goog.isArray 2016-04-04 09:06:29 +02:00
Andreas Hocevar
fb4992b580 Merge pull request #5159 from openlayers/greenkeeper-eslint-2.6.0
Update eslint to version 2.6.0 🚀
2016-04-02 10:47:25 +02:00
Andreas Hocevar
4141572725 Merge pull request #5160 from openlayers/greenkeeper-clean-css-3.4.11
Update clean-css to version 3.4.11 🚀
2016-04-02 10:46:17 +02:00
greenkeeperio-bot
02f4f8b1d5 chore(package): update clean-css to version 3.4.11
http://greenkeeper.io/
2016-04-01 14:52:42 -06:00
greenkeeperio-bot
0dc7313afb chore(package): update eslint to version 2.6.0
http://greenkeeper.io/
2016-04-01 12:14:37 -06:00
Andreas Hocevar
3ba2d71784 Merge pull request #5157 from probins/measure
Improve docs for measure example
2016-04-01 17:49:29 +02:00
Peter Robins
3416991166 Improve docs for measure example 2016-04-01 13:39:06 +00:00
Frédéric Junod
106657572d Merge pull request #5155 from fredj/ff_zoomify_tests
Fix ol.source.Zoomify tests on firefox
2016-04-01 14:15:51 +02:00
Frederic Junod
c9aff61110 Fix ol.source.Zoomify tests on firefox 2016-04-01 13:36:43 +02:00
Frederic Junod
e222409f50 Add externs for CartoDB response 2016-04-01 10:55:38 +02:00
Frederic Junod
b96de85044 Add cacheSize option to olx.source.CartoDBOptions 2016-04-01 10:44:31 +02:00
Frederic Junod
3f0de09dd7 Fix ol.source.CartoDB goog.base params 2016-04-01 10:44:31 +02:00
Frederic Junod
13a0eb4ca7 Add jsdoc tags in ol.source.CartoDB constructor 2016-04-01 10:44:31 +02:00
Frederic Junod
fb6353a816 Fix olx.source.CartoDBOptions definition 2016-04-01 10:44:31 +02:00
Frederic Junod
24665747b3 Fix cartodb links 2016-04-01 10:44:31 +02:00
Frederic Junod
c2749bbdd1 Fix olx.source.CartoDBOptions#attributions type 2016-04-01 10:44:31 +02:00
Marc Jansen
4077886165 Merge pull request #5086 from bjornharrtell/rm_goog.functions
Get rid of goog.functions
2016-04-01 10:44:03 +02:00
Björn Harrtell
44e04be67f Get rid of goog.functions 2016-04-01 10:32:15 +02:00
Frédéric Junod
baf5287ad2 Merge pull request #5105 from fredj/stamen_minZoom
Support minZoom in ol.source.Stamen
2016-04-01 09:56:20 +02:00
Frederic Junod
548e4abd35 Support minZoom in ol.source.Stamen 2016-04-01 09:46:36 +02:00
Tim Schaub
cc9d4d8794 Merge pull request #4926 from aisaacs/cartodb
Add CartoDB tile source.
2016-03-31 17:35:54 -07:00
Andreas Hocevar
ee53fd772d Remove unnecessary duplicated polygon close points 2016-03-31 14:47:07 +02:00
Andreas Hocevar
18f3d7243d Batch polygon fill and stroke instructions 2016-03-31 13:26:42 +02:00
Marc Jansen
dfc1bb7592 Merge pull request #5151 from marcjansen/fse-fs
Use fs-extra as fs, remove usage of graceful-fs
2016-03-31 11:34:39 +02:00
Marc Jansen
5a00289e8e Remove usage of graceful-fs 2016-03-31 10:30:58 +02:00
Marc Jansen
d3de8c38b5 Use fs-extra as fs 2016-03-31 10:30:58 +02:00
Andreas Hocevar
627632ce1b Merge pull request #5124 from nicholas-l/removeDOMClassList
Removed goog.dom.classlist
2016-03-31 10:25:05 +02:00
Frédéric Junod
c3447873b6 Merge pull request #5150 from fredj/rm_wrench
Use fs-extra instead of wrench
2016-03-31 10:10:36 +02:00
Frederic Junod
03d78cdd1c Use removeSync function from fs-extra 2016-03-31 09:52:26 +02:00
Frederic Junod
19b0c65e4c Use fs-extra instead of wrench 2016-03-31 09:27:56 +02:00
nicholas
4d26305564 Add polyfill for IE 2016-03-31 19:25:42 +13:00
nicholas
863589e5ed Remove commented out code 2016-03-31 19:09:13 +13:00
nicholas
68fd5267c2 Removed goog.dom.classlist.enable 2016-03-31 19:09:13 +13:00
nicholas
126e49cd39 Removed goog.dom.classlist.contains 2016-03-31 19:09:13 +13:00
nicholas
b9073013db Remove goog.classlist.toggle 2016-03-31 19:09:13 +13:00
nicholas
8f8068b88c Removed goog.dom.classlist 2016-03-31 19:09:13 +13:00
Alessandro Isaacs
85f11b093d Use XHR 2016-03-30 15:05:43 -07:00
Alessandro Isaacs
4a33db370b Update example yml 2016-03-30 11:45:20 -07:00
Alessandro Isaacs
2fd6352a57 Use https always 2016-03-30 11:45:20 -07:00
Alessandro Isaacs
94998c8ec7 Update olx 2016-03-30 11:45:20 -07:00
Alessandro Isaacs
8389c16315 Add CartoDB tile source. 2016-03-30 11:45:20 -07:00
Marc Jansen
cf9e24feb1 Merge pull request #5109 from marcjansen/tileutfgridsource-tests
Add some tests for ol.source.TileUTFGrid
2016-03-30 17:49:39 +02:00
Marc Jansen
f4b4e26f19 Add some tests for ol.source.TileUTFGrid 2016-03-30 16:46:35 +02:00
Frédéric Junod
e5012856a1 Merge pull request #5139 from openlayers/greenkeeper-closure-util-1.13.0
Update closure-util to version 1.13.0 🚀
2016-03-30 14:53:55 +02:00
Frederic Junod
927d73d410 Add missing return jsdoc annotations 2016-03-30 09:02:12 +02:00
Frederic Junod
f29bc74b7f Ignore unnecessaryCasts errors 2016-03-30 09:02:12 +02:00
greenkeeperio-bot
03038b123f chore(package): update closure-util to version 1.13.0
http://greenkeeper.io/
2016-03-30 09:02:11 +02:00
Frédéric Junod
bc1b9b9677 Merge pull request #5141 from fredj/reuse_array
Reuse dragListenerKeys_ variable in ol.control.ZoomSlider
2016-03-30 08:55:56 +02:00
Frederic Junod
0bb3f1e228 Reuse dragListenerKeys_ variable in ol.control.ZoomSlider 2016-03-29 16:52:28 +02:00
Frédéric Junod
8ef230768b Merge pull request #5118 from fredj/rm_goog.dom.classlist
Remove goog.dom.classlist usage
2016-03-29 10:46:13 +02:00
Frederic Junod
64654e1e72 Remove goog.dom.classlist usage 2016-03-29 10:28:20 +02:00
Marc Jansen
ae905593b3 Merge pull request #5115 from marcjansen/line-dash-doc
Clarify that lineDash has no effect in IE 10 and below
2016-03-29 10:15:09 +02:00
Marc Jansen
09370952fd Clarify that lineDash has no effect in IE < 10 2016-03-29 09:58:41 +02:00
Frédéric Junod
9425088610 Merge pull request #5136 from openlayers/greenkeeper-eslint-2.5.3
Update eslint to version 2.5.3 🚀
2016-03-29 09:54:22 +02:00
greenkeeperio-bot
94f83b53df chore(package): update eslint to version 2.5.3
http://greenkeeper.io/
2016-03-29 09:22:58 +02:00
Frédéric Junod
b3796aa3a1 Merge pull request #5123 from openlayers/greenkeeper-coveralls-2.11.9
Update coveralls to version 2.11.9 🚀
2016-03-29 09:17:26 +02:00
greenkeeperio-bot
5276fd0580 chore(package): update coveralls to version 2.11.9
http://greenkeeper.io/
2016-03-29 09:06:01 +02:00
Frédéric Junod
2f67fca2a6 Merge pull request #5131 from openlayers/greenkeeper-phantomjs-prebuilt-2.1.7
Update phantomjs-prebuilt to version 2.1.7 🚀
2016-03-29 09:03:24 +02:00
greenkeeperio-bot
690152a07b chore(package): update phantomjs-prebuilt to version 2.1.7
http://greenkeeper.io/
2016-03-25 15:51:40 -06:00
Andreas Hocevar
feabf58740 Merge pull request #5122 from probins/patch-1
Update browser support info in intro tutorial
2016-03-25 19:14:18 +01:00
Peter Robins
8bf208558d Update browser support info in intro tutorial 2016-03-25 14:53:45 +00:00
Andreas Hocevar
d9d46bc1f7 Merge pull request #5112 from probins/decimals
Add decimals option to format write
2016-03-25 10:44:28 +01:00
Andreas Hocevar
f835364822 Merge pull request #5120 from ahocevar/utfgrid-config
Add tileJSON option to ol.source.TileUTFGrid
2016-03-24 23:13:19 +01:00
Andreas Hocevar
c0de5a6835 Add tileJSON option to ol.source.TileUTFGrid 2016-03-24 23:02:28 +01:00
Peter Robins
a18bf636f8 Add decimals option to format write 2016-03-24 17:14:02 +00:00
Frédéric Junod
2159a35bb8 Merge pull request #5119 from drnextgis/issue#5117
Add ol.source.Raster events on API docs page
2016-03-24 17:41:19 +01:00
drnextgis
f9a16898a5 Add ol.source.Raster events on API docs page 2016-03-24 22:25:48 +06:00
Andreas Hocevar
35ac1c4577 Merge pull request #5116 from ahocevar/responsive-examples
Improve examples pages on mobile devices a bit
2016-03-24 15:51:01 +01:00
Andreas Hocevar
26ed4c33a3 Improve examples pages on mobile devices a bit
Only show navigation when there is enough space.
2016-03-24 15:12:04 +01:00
Andreas Hocevar
3e5e271331 Merge pull request #5113 from AvatharDG/patch-1
Memory leak in ol.control.FullScreen
2016-03-24 11:09:04 +01:00
AvatharDG
e752a8cea3 Update fullscreencontrol.js 2016-03-24 09:41:01 +01:00
AvatharDG
290f8b5c7d Update fullscreencontrol.js 2016-03-24 09:39:31 +01:00
AvatharDG
c9cb9b6d36 Memory leak in ol.control.FullScreen
Register and unregister listener in setMap method.
2016-03-24 09:35:10 +01:00
Frédéric Junod
ce61fb300c Merge pull request #5111 from fredj/examples_cleanup
Remove CSS filter in examples
2016-03-23 17:18:26 +01:00
Frederic Junod
92ef1724d1 Remove CSS filter in examples
Was used to set the opacity for IE <= 8
2016-03-23 17:01:12 +01:00
Frédéric Junod
fe5219eb84 Merge pull request #5108 from fredj/rm_ol.xml.getAttributeNodeNS
Remove unused ol.xml.getAttributeNodeNS function
2016-03-23 15:39:37 +01:00
Frederic Junod
e9cf0bbf6e Remove unused ol.xml.getAttributeNodeNS function 2016-03-23 14:45:06 +01:00
Frédéric Junod
051ed439ca Merge pull request #5106 from fredj/rm_goog.math.Vec2
Get rid of goog.math.Vec2
2016-03-23 14:41:38 +01:00
Frederic Junod
e126df11e7 Remove use of goog.math.Vec2 2016-03-23 14:16:20 +01:00
Marc Jansen
e742181fe9 Merge pull request #5096 from marcjansen/zoomify-tests
Add tests for ol.source.Zoomify
2016-03-23 09:40:46 +01:00
Marc Jansen
399d8ce326 Add tests for ol.source.Zoomify 2016-03-23 09:22:17 +01:00
Marc Jansen
9fc2f5c19f Merge pull request #5102 from openlayers/jsonp-typo
Fix typo in API docs
2016-03-23 09:19:32 +01:00
Marc Jansen
0554c7f685 Fix typo in API docs 2016-03-23 09:11:10 +01:00
Andreas Hocevar
587817af94 Merge pull request #5098 from bjornharrtell/gl-log
Reintroduce log messages for relevant WebGL assertions
2016-03-22 17:54:44 +01:00
Björn Harrtell
a2a3ca84e2 Reintroduce log messages for relevant WebGL assertions 2016-03-22 16:35:46 +01:00
Andreas Hocevar
1634aaa9dd Merge pull request #5094 from probins/patch-2
FAQ: answer question 4
2016-03-22 14:53:28 +01:00
Peter Robins
f35887d6e7 FAQ: answer question 4 2016-03-22 13:17:44 +00:00
Frédéric Junod
14bed81994 Merge pull request #5092 from drnextgis/issue#5091
add raster.jsdoc
2016-03-22 09:55:35 +01:00
drnextgis
e00149562a add raster.jsdoc 2016-03-22 14:07:31 +06:00
Andreas Hocevar
0f86b1df69 Merge pull request #5081 from drnextgis/issue#3850
Snap to vertices or edges
2016-03-21 22:52:08 +01:00
Andreas Hocevar
5001f0896e Merge pull request #5090 from probins/patch-1
Update custom-builds.md
2016-03-21 17:56:18 +01:00
Andreas Hocevar
579ce6c5ad Merge pull request #5089 from probins/point
Test for both transform coords should use roughlyEqual
2016-03-21 16:53:03 +01:00
Peter Robins
4e3d6bd556 Update custom-builds.md 2016-03-21 14:37:40 +00:00
Peter Robins
caf3e4b062 Test for both transform coords should use roughlyEqual 2016-03-21 14:21:56 +00:00
Andreas Hocevar
cf6baf2cd1 Merge pull request #5080 from probins/geomcoll
Fix geojson write GeometryCollection
2016-03-21 13:28:46 +01:00
Peter Robins
e65c522cb4 Fix geojson write GeometryCollection 2016-03-21 12:11:31 +00:00
Andreas Hocevar
1e8f0026eb Merge pull request #5088 from probins/patch-1
DEVELOPING.md: remove section on running Travis on fork
2016-03-21 12:09:44 +01:00
Peter Robins
bd47db8a55 DEVELOPING.md: remove section on running Travis on fork 2016-03-21 10:32:24 +00:00
drnextgis
d41bfde25d snap to vertices or edges 2016-03-21 16:19:36 +06:00
Andreas Hocevar
7990bb3bf6 Merge pull request #5087 from drnextgis/issue#2974
assertion to check that there's a DOM node for target element
2016-03-21 11:11:59 +01:00
drnextgis
c6f568f99b assertion to check that there's a DOM node for target element 2016-03-21 16:02:13 +06:00
Frédéric Junod
f380f34468 Merge pull request #5069 from openlayers/greenkeeper-jquery-2.2.2
Update jquery to version 2.2.2 🚀
2016-03-21 08:53:49 +01:00
greenkeeperio-bot
d8f7aa193c chore(package): update jquery to version 2.2.2
http://greenkeeper.io/
2016-03-21 08:44:06 +01:00
Tim Schaub
d7ad543c12 Merge pull request #5083 from tschaub/canvas-immediate
Remove unnecessary lineTo calls in immediate polygon rendering
2016-03-20 21:50:40 -06:00
Tim Schaub
8437f95c86 Merge pull request #5082 from bjornharrtell/rm_goog.log
Get rid of goog.log.
2016-03-19 20:16:06 -06:00
Tim Schaub
01d2b84ee1 Merge pull request #5079 from tschaub/word
Correcting a typo in the upgrade notes
2016-03-19 16:55:13 -06:00
Tim Schaub
cd70f58e34 Rendering tests for vector context 2016-03-19 16:45:26 -06:00
Björn Harrtell
234e8c2fde Get rid of goog.log 2016-03-19 23:12:56 +01:00
Tim Schaub
22d03cb2ee Avoid duplicate lineTo and correctly close rings 2016-03-19 16:12:38 -06:00
Andreas Hocevar
309843b53d Merge pull request #5076 from openlayers/greenkeeper-phantomjs-prebuilt-2.1.6
Update phantomjs-prebuilt to version 2.1.6 🚀
2016-03-19 19:02:32 +01:00
Tim Schaub
f0cca94456 Correcting a typo in the upgrade notes 2016-03-18 22:41:19 -06:00
Tim Schaub
a421b4fb65 Merge pull request #5077 from tschaub/more-immediate
Make immediate API uniformly synchronous.
2016-03-18 18:00:33 -06:00
Tim Schaub
ed71cf74f6 Upgrade note on zIndex for drawFeature() styles 2016-03-18 17:52:16 -06:00
Tim Schaub
0eb7e8220d Immediate rendering for all vector contexts 2016-03-18 17:31:14 -06:00
Tim Schaub
f0814628b7 Synchronous rendering only 2016-03-18 17:26:10 -06:00
Tim Schaub
ec2daf2118 Make drawFeature() immediate 2016-03-18 17:26:10 -06:00
Tim Schaub
ef0487c3ab Merge pull request #5072 from tschaub/immediate-api
Add setStyle() and drawGeometry() to the immediate rendering API.
2016-03-18 17:18:08 -06:00
Tim Schaub
42c2dd8702 More geometry 2016-03-18 17:04:50 -06:00
Tim Schaub
42f41e1cf4 Variable named geometry 2016-03-18 17:04:50 -06:00
Tim Schaub
05cf57dcfc Remove unused arg 2016-03-18 17:04:50 -06:00
Tim Schaub
51dfe89425 Add assert message 2016-03-18 17:04:49 -06:00
Tim Schaub
1339d6b3a6 Correct to upgrade notes 2016-03-18 17:04:49 -06:00
Tim Schaub
d0b2016bb6 Add setStyle() to WebGL immediate API 2016-03-18 17:04:49 -06:00
Tim Schaub
f77c7dded2 Add drawGeometry() to WebGL immediate API 2016-03-18 17:04:49 -06:00
Tim Schaub
88f8515fb6 Shorter names for drawing methods 2016-03-18 17:04:44 -06:00
Tim Schaub
2133d6d081 Document the immediate rendering API 2016-03-18 17:03:18 -06:00
Tim Schaub
ef40f66c93 Use setStyle() and drawGeometry() in examples 2016-03-18 17:03:18 -06:00
Tim Schaub
cf0c4dcf3f Add methods to base class 2016-03-18 17:03:17 -06:00
Tim Schaub
873e4176c6 Add vectorContext.drawGeometry() method 2016-03-18 17:03:17 -06:00
Tim Schaub
8f0f278832 Add vectorContext.setStyle() method 2016-03-18 17:03:17 -06:00
Andreas Hocevar
109bda60d0 Merge pull request #5074 from ahocevar/stitch-rotated-tiles
Do not rotate map canvas after composition
2016-03-18 23:29:14 +01:00
greenkeeperio-bot
3492628dc4 chore(package): update phantomjs-prebuilt to version 2.1.6
http://greenkeeper.io/
2016-03-18 16:03:52 -06:00
Andreas Hocevar
19cfc140a8 Merge pull request #5071 from drnextgis/issue#5070
correct way to determine freehand mode is enabled
2016-03-18 23:02:32 +01:00
Andreas Hocevar
577e45cd97 Do not rotate map canvas after composition
This requires to draw tile layers to an intermediate canvas again, but
only when the view is rotated.
2016-03-18 21:53:19 +01:00
drnextgis
658a2b317e correct way to determine freehand mode is enabled 2016-03-18 11:10:27 +06:00
Bart van den Eijnden
9c573a5b3c Merge pull request #5066 from bartvde/getters
Add more getters to ol.source.Vector
2016-03-17 15:58:31 +01:00
Bart van den Eijnden
908d4051cd Add more getters to ol.source.Vector 2016-03-17 15:35:51 +01:00
Marc Jansen
a81150508d Merge pull request #5064 from probins/clonedocs
Fix inconsistency in geom docs
2016-03-17 11:45:20 +01:00
Peter Robins
8f9a8e9bb1 Fix inconsistency in geom docs 2016-03-17 10:13:30 +00:00
Andreas Hocevar
5ba64024ab Merge pull request #5063 from drnextgis/issue#5062
Remove inappropriate information from API docs
2016-03-17 09:34:07 +01:00
drnextgis
f4bb232279 remove inappropriate information from API docs 2016-03-17 12:50:52 +06:00
Marc Jansen
242a0937a3 Merge pull request #5061 from drnextgis/apidoc
Remove redundant required option
2016-03-17 07:22:01 +01:00
drnextgis
a857a66a98 remove redundant required option 2016-03-17 07:19:11 +06:00
Andreas Hocevar
def755f1eb Merge pull request #5058 from probins/patch-1
Note in docs that DOM renderer can also render vectors
2016-03-16 17:34:06 +01:00
Peter Robins
6f2747cf14 Note in docs that DOM renderer can also render vectors 2016-03-16 16:30:59 +00:00
Frédéric Junod
0181e525ce Merge pull request #5056 from probins/patch-1
Note in docs that WebGL can render points
2016-03-16 17:01:22 +01:00
Peter Robins
5da0fe3300 Note in docs that WebGL can render points 2016-03-16 15:41:57 +00:00
Andreas Hocevar
2f079ad059 Merge pull request #5055 from probins/kmlscalecruft
Fix cruft on kml scale output
2016-03-16 16:34:01 +01:00
Peter Robins
9ba4208616 Fix cruft on kml scale output 2016-03-16 15:12:23 +00:00
Frédéric Junod
4b5bb42961 Merge pull request #5051 from fredj/remove_aborted_tiles
Handle aborted tiles in ol.TileQueue
2016-03-16 14:38:59 +01:00
Frederic Junod
24886f2710 Add more ol.TileQueue tests 2016-03-16 14:21:21 +01:00
Frederic Junod
c30ecace75 Handle aborted tiles in ol.TileQueue 2016-03-16 14:21:20 +01:00
Frederic Junod
b0984070db Don't load an already loading tile 2016-03-16 14:21:20 +01:00
Marc Jansen
1c57686d1f Merge pull request #5049 from marcjansen/assume-getComputedStyle
Supported browsers all have getComputedStyle
2016-03-16 11:30:06 +01:00
Marc Jansen
0d24be6767 Supported browsers all have getComputedStyle 2016-03-16 11:16:14 +01:00
Marc Jansen
074eff1efd Merge pull request #5048 from marcjansen/dom-tests
Add tests for ol.dom methods
2016-03-16 10:59:40 +01:00
Marc Jansen
648011c64d Remove unneeded and wrong goog.provide 2016-03-16 10:48:06 +01:00
Marc Jansen
37899a3feb Add tests for ol.dom methods 2016-03-16 10:48:06 +01:00
Andreas Hocevar
d46407f7b6 Merge pull request #5031 from drnextgis/zoomout
support zooming out for ol.interaction.DragZoom
2016-03-16 10:45:09 +01:00
drnextgis
7b1e92580d zooming out option for ol.interaction.DragZoom 2016-03-16 11:47:18 +06:00
Andreas Hocevar
88701db4c4 Merge pull request #5036 from ahocevar/icon-imgsize
Use imgSize when provided
2016-03-15 18:56:27 +01:00
Andreas Hocevar
339c7c5c23 Use imgSize when provided 2016-03-15 16:17:11 +01:00
Andreas Hocevar
08b19549ce Merge pull request #5020 from openlayers/greenkeeper-gaze-1.0.0
Update gaze to version 1.0.0 🚀
2016-03-15 14:58:05 +01:00
Andreas Hocevar
f58b7cf347 Merge pull request #5039 from openlayers/greenkeeper-fs-extra-0.26.6
Update fs-extra to version 0.26.6 🚀
2016-03-15 14:39:52 +01:00
Andreas Hocevar
3186a411b2 Update closure-util to compatible version 1.12.0 2016-03-15 14:28:42 +01:00
greenkeeperio-bot
10fa741476 chore(package): update fs-extra to version 0.26.6
http://greenkeeper.io/
2016-03-15 04:46:30 -07:00
Andreas Hocevar
44d0578389 Merge pull request #5033 from probins/patch-1
Document GPX geometry output types
2016-03-15 00:18:03 +01:00
Peter Robins
0a3b7e56a9 Document GPX geometry output types 2016-03-14 16:56:23 +00:00
Andreas Hocevar
9db16bfa94 Merge pull request #5024 from ahocevar/less-aggressive-canvas-resizing
Resize the map canvas less aggressively
2016-03-14 09:41:53 +01:00
Frédéric Junod
c0b27bca8f Merge pull request #5000 from fredj/rm_goog.style.setBorderBoxSize
Remove use of goog.math.Size and goog.style.setBorderBoxSize
2016-03-14 08:53:32 +01:00
Frederic Junod
93abfc9a03 Remove use of goog.style.setBorderBoxSize 2016-03-14 08:45:18 +01:00
Frederic Junod
8eb3e55aa0 Remove use of goog.math.Size 2016-03-14 08:45:18 +01:00
Bart van den Eijnden
a2175afcad Merge pull request #5027 from probins/patch-1
Clarify default value of featureProjection on geometry write
2016-03-14 08:39:02 +01:00
Peter Robins
67e511765a Clarify default value of featureProjection on write 2016-03-13 16:30:30 +00:00
Andreas Hocevar
5b21ab8811 Merge pull request #5019 from openlayers/greenkeeper-eslint-2.4.0
Update eslint to version 2.4.0 🚀
2016-03-12 16:36:52 +01:00
Andreas Hocevar
a3cc322593 Fix indentation 2016-03-12 16:25:38 +01:00
Andreas Hocevar
600c139a61 Resize the map canvas less aggressively 2016-03-12 14:13:28 +01:00
greenkeeperio-bot
6c191d0fef chore(package): update gaze to version 1.0.0
http://greenkeeper.io/
2016-03-11 21:54:46 -07:00
greenkeeperio-bot
9365fbdb7e chore(package): update eslint to version 2.4.0
http://greenkeeper.io/
2016-03-11 15:06:34 -07:00
Marc Jansen
9cc628939a Merge pull request #5016 from marcjansen/centerflatgeom-tests
Add basic tests for ol.geom.flat.center
2016-03-11 17:22:13 +01:00
Marc Jansen
410dddaa46 Add basic tests for ol.geom.flat.center 2016-03-11 13:51:10 +01:00
Andreas Hocevar
7230b83cbd Merge pull request #5015 from openlayers/greenkeeper-proj4-2.3.14
Update proj4 to version 2.3.14 🚀
2016-03-11 11:37:20 +01:00
greenkeeperio-bot
194c47d962 chore(package): update proj4 to version 2.3.14
http://greenkeeper.io/
2016-03-11 02:45:20 -07:00
Marc Jansen
da40527077 Merge pull request #5013 from openlayers/test-typo
Fix typo in test description
2016-03-11 09:45:28 +01:00
Marc Jansen
c1263af9b1 Fix typo in test description 2016-03-11 09:25:50 +01:00
Marc Jansen
3197972e14 Merge pull request #5007 from marcjansen/plain-attr
Accept simpler forms of specifying attribution(s) for sources.
2016-03-11 09:15:03 +01:00
Marc Jansen
5b43e8a31e Use simple forms to create attributions in examples 2016-03-11 09:04:06 +01:00
Marc Jansen
df4f1c1389 Accept simpler attributions in sources 2016-03-11 09:04:06 +01:00
Andreas Hocevar
74006a91fe Merge pull request #5011 from ahocevar/vectortile-setprojection
Add missing setProjection function to ol.VectorTile API
2016-03-10 20:01:29 +01:00
Andreas Hocevar
fdee0d73de Merge pull request #5010 from ahocevar/event-docs-externs
Add and fix API docs for ol.events.Event stack
2016-03-10 19:57:57 +01:00
Andreas Hocevar
3164dc874e Add missing setProjection function to ol.VectorTile API 2016-03-10 19:50:30 +01:00
Andreas Hocevar
7c5e1b808d Add and fix API docs for ol.events.Event stack 2016-03-10 17:35:55 +01:00
Andreas Hocevar
fb6cd4f586 Merge pull request #5009 from gberaudo/update_tutorials
Update tutorials
2016-03-10 16:20:35 +01:00
Guillaume Beraudo
166dd98b72 Simplify and modernize closure tutorial
Use jscomp_error * and keep most advanced options for the last example.
2016-03-10 16:04:46 +01:00
Guillaume Beraudo
fedf477f29 Simplify custom-builds tutorial
Remove, the disturbing goog.dom.ASSUME_STANDARDS_MODE define.
Remove jscomp_off stuff.
2016-03-10 16:03:03 +01:00
Andreas Hocevar
bf30e86b84 Merge pull request #5006 from ahocevar/update-slimerjs
Use the maintained slimerjs package
2016-03-10 13:53:52 +01:00
Andreas Hocevar
6062128b4b Use the maintained slimerjs package 2016-03-10 12:25:16 +01:00
Frédéric Junod
cda6d678dc Merge pull request #5003 from fredj/jsdoc_rotate
Add 'function' jsdoc tag to ol.geom.Geometry#rotate
2016-03-10 08:39:48 +01:00
Frederic Junod
0dd36736c7 Add 'function' jsdoc tag to ol.geom.Geometry#rotate
Otherwise the function is in the 'Members' section of the API documentation.
2016-03-10 08:30:10 +01:00
Tim Schaub
6e45eef2a0 Merge pull request #5002 from openlayers/greenkeeper-eslint-config-openlayers-4.1.0
Update eslint-config-openlayers to version 4.1.0 🚀
2016-03-09 07:13:31 -07:00
greenkeeperio-bot
a118eeded9 chore(package): update eslint-config-openlayers to version 4.1.0
http://greenkeeper.io/
2016-03-09 05:44:50 -07:00
Frédéric Junod
ef2121bb70 Merge pull request #4999 from fredj/rm_goog.dom.removeNode
Remove use of goog.dom.removeNode
2016-03-09 13:16:51 +01:00
Frederic Junod
8a6962da9e Remove use of goog.dom.removeNode 2016-03-09 11:45:04 +01:00
Frédéric Junod
02aee14600 Merge pull request #4990 from fredj/getTileJSON
Add new ol.source.TileJSON#getTileJSON function
2016-03-09 11:44:35 +01:00
Frederic Junod
4157882f2e Add new ol.source.TileJSON#getTileJSON function 2016-03-09 10:55:19 +01:00
Frédéric Junod
441a7c093f Merge pull request #4998 from fredj/rm_map_isDef
Remove unused ol.Map#isDef function
2016-03-09 09:26:28 +01:00
Frederic Junod
cb251f1648 Remove unused ol.Map#isDef function 2016-03-09 08:36:36 +01:00
Tim Schaub
0b3155a47e Merge pull request #4995 from tschaub/uncolored
Remove unused ol.color functions.
2016-03-08 10:29:38 -07:00
Tim Schaub
249f3b2e47 Tests for ol.color.asString() 2016-03-08 10:05:54 -07:00
Tim Schaub
40397aa39e Tests for ol.color.asArray() 2016-03-08 10:05:54 -07:00
Tim Schaub
47a18d41f0 Remove unused ol.color.equals() 2016-03-08 10:05:53 -07:00
Tim Schaub
9ea9b29a69 Remove unused ol.color.transform() 2016-03-08 10:05:53 -07:00
Tim Schaub
8b1ad633be Remove unused ol.color.stringOrColorEquals() 2016-03-08 10:05:53 -07:00
Tim Schaub
7cf433eb68 Remove unused ol.color.blend() 2016-03-08 10:05:53 -07:00
Andreas Hocevar
091e8059c5 Merge pull request #4991 from ahocevar/soft-remove-listeners
Do not remove listeners while dispatching event
2016-03-08 17:46:03 +01:00
Frédéric Junod
fd256027ec Merge pull request #4984 from fredj/geom_rotate
Add new ol.geom.Geometry#rotate function
2016-03-08 17:17:09 +01:00
Frederic Junod
d5564a04db Add new ol.geom.Geometry#rotate function 2016-03-08 17:05:19 +01:00
Andreas Hocevar
0377e4a322 Add tests for corner cases 2016-03-08 17:04:25 +01:00
Frédéric Junod
6c74e90c5d Merge pull request #4994 from jonataswalker/array-alpha-color
Add alpha default value to ol.Color array form
2016-03-08 17:04:19 +01:00
jonataswalker
2564bb3e58 Add alpha default value to ol.Color array form 2016-03-08 12:43:42 -03:00
Andreas Hocevar
8a279dd94b Do not reset pendingRemovals if event is dispatched again 2016-03-08 15:54:51 +01:00
Andreas Hocevar
acd76a10b6 Clean up when propagation is stopped 2016-03-08 15:54:17 +01:00
Marc Jansen
b5dc619e0e Merge pull request #4992 from marcjansen/coverage-reporter
Allow configuration of the test reporter
2016-03-08 13:21:18 +01:00
Andreas Hocevar
93f26a90d0 Do not remove listeners while dispatching event 2016-03-08 13:11:22 +01:00
Marc Jansen
8c487d3036 Allow configuration of the test reporter
The reporter for the standard tests is still 'spec'; the one for the
gathering of code coverage is set to 'dot' to not clutter the output
of the logfile on travis.
2016-03-08 11:26:00 +01:00
Frédéric Junod
951b400227 Merge pull request #4988 from openlayers/greenkeeper-phantomjs-prebuilt-2.1.5
Update phantomjs-prebuilt to version 2.1.5 🚀
2016-03-08 08:35:20 +01:00
greenkeeperio-bot
f3479a4bc4 chore(package): update phantomjs-prebuilt to version 2.1.5
http://greenkeeper.io/
2016-03-07 11:31:59 -07:00
Andreas Hocevar
26078e1f34 Merge pull request #4983 from ahocevar/bing-maps-portal-url
Update Bing Maps Portal url
2016-03-07 15:33:34 +01:00
Andreas Hocevar
1cbb482900 Update Bing Maps Portal url 2016-03-07 14:52:14 +01:00
Frédéric Junod
a3d7a216d5 Merge pull request #4981 from fredj/dispose_viewport
Remove the viewport on map dispose
2016-03-07 12:10:11 +01:00
Frederic Junod
263f5bb8ab Remove the viewport on map dispose 2016-03-07 11:46:18 +01:00
Frédéric Junod
44de935ef0 Merge pull request #4980 from fredj/unused_require
Remove unused goog.require
2016-03-07 09:59:29 +01:00
Frederic Junod
8b95602211 Remove unused goog.require 2016-03-07 09:33:15 +01:00
Marc Jansen
dc2faea5eb Merge pull request #4977 from marcjansen/length-tests
Add basic tests for ol.geom.flat.length methods
2016-03-07 09:28:42 +01:00
Marc Jansen
2113c749b1 Add basic tests for ol.geom.flat.length methods 2016-03-06 15:08:40 +01:00
Andreas Hocevar
7fe1d1d68c Merge pull request #4973 from openlayers/greenkeeper-eslint-2.3.0
Update eslint to version 2.3.0 🚀
2016-03-05 07:38:29 +01:00
greenkeeperio-bot
bfb73c992e chore(package): update eslint to version 2.3.0
http://greenkeeper.io/
2016-03-04 17:57:19 -07:00
Andreas Hocevar
f1fee79ca4 Merge pull request #4971 from openlayers/release-v3.14.2
Release v3.14.2
2016-03-04 09:36:58 +01:00
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
Tim Schaub
82020bcd1f Merge pull request #4970 from tschaub/disposable-tests
Tests for ol.Disposable.
2016-03-03 09:35:29 -07:00
Frédéric Junod
258765dc48 Merge pull request #4967 from fredj/missing_goog.inherits
Add missing goog.inherits for ol.render.canvas.Immediate
2016-03-03 17:26:13 +01:00
Tim Schaub
787e5d4dbf Assert that map renderer is a disposable 2016-03-03 09:18:04 -07:00
Frederic Junod
3793bb18ae Add missing goog.inherits for ol.render.canvas.Immediate 2016-03-03 17:12:19 +01:00
Tim Schaub
167ee487d6 Assert that render box is a disposable 2016-03-03 09:05:08 -07:00
Tim Schaub
beb80ce987 Assert that event target is a disposable 2016-03-03 09:05:08 -07:00
Tim Schaub
0ab9dd8bd0 Tests for ol.Disposable 2016-03-03 09:05:02 -07:00
Frédéric Junod
9ba059a159 Merge pull request #4955 from fredj/ie_xml_workaround
Remove IE workarounds in src/ol/xml.js
2016-03-03 15:59:14 +01:00
Frederic Junod
7da7cba812 Don't use goog.dom.xml.createDocument
Use DOMImplementation.createDocument instead, available for IE >= 9
2016-03-03 15:46:29 +01:00
Frederic Junod
b09f7e30b2 Get rid of goog.dom.xml.serialize
Use XMLSerializer.serializeToString() function instead, available for IE >= 9
2016-03-03 15:46:29 +01:00
Frederic Junod
57f7811cd0 Remove ol.xml.isNode workaround for IE 2016-03-03 15:46:29 +01:00
Frederic Junod
90b4eea1cd Remove ol.xml.isDocument workaround for IE 2016-03-03 15:46:29 +01:00
Frederic Junod
544de3b91c Remove ol.xml.setAttributeNS workaround for IE 2016-03-03 15:46:29 +01:00
Frederic Junod
811eea0d3a Remove ol.xml.getAttributeNodeNS workaround for IE 2016-03-03 15:46:29 +01:00
Frederic Junod
e210328dba Remove ol.xml.getAttributeNS workaround for IE 2016-03-03 15:46:29 +01:00
Frederic Junod
1e98f1227b Remove ol.xml.createElementNS workaround for IE 2016-03-03 15:46:29 +01:00
Frederic Junod
b87a912ecc Remove ol.xml.getLocalName workaround for IE
This property is available for IE >= 9
2016-03-03 15:46:29 +01:00
Andreas Hocevar
750a01aa80 Merge pull request #4960 from ahocevar/clip-rendered
Simplify clipping of lower resolution regions
2016-03-03 15:44:47 +01:00
Tim Schaub
143af1e091 Merge pull request #4950 from tschaub/dispose
Remove use of goog.Disposable().
2016-03-03 07:44:39 -07:00
Tim Schaub
e1f0e8d75b No need for ol.webgl.Context to be an event target 2016-03-03 07:28:34 -07:00
Tim Schaub
2f9d4e68eb Unregister all listeners on the WebGL context's canvas 2016-03-03 07:26:45 -07:00
Tim Schaub
afb64ed2bf Make ol.webgl.Context an ol.events.EventTarget 2016-03-02 16:32:25 -07:00
Tim Schaub
71faef3dfd One fewer anonymous function 2016-03-02 15:44:07 -07:00
Tim Schaub
09eee46822 Use ol.Disposable instead of goog.Disposable 2016-03-02 15:44:07 -07:00
Tim Schaub
ae4d8195c0 Remove use of goog.dispose() 2016-03-02 15:44:06 -07:00
Tim Schaub
df4f154a93 Unused goog.dispose requires 2016-03-02 15:44:06 -07:00
Tim Schaub
34d8d77344 Merge pull request #4963 from tschaub/xhr-failures
Handle more XHR errors in the TileJSON source
2016-03-02 15:40:43 -07:00
Tim Schaub
c9852250e4 Merge pull request #4962 from tschaub/untestable
Skip tests where features are not available
2016-03-02 15:21:36 -07:00
Tim Schaub
1877910b7e Handle more XHR errors in the TileJSON source 2016-03-02 14:42:28 -07:00
Tim Schaub
9c594bc997 Use where function in MVT tests 2016-03-02 13:22:33 -07:00
Tim Schaub
1925e39b69 Allow tests to be ignored by feature 2016-03-02 13:20:37 -07:00
Andreas Hocevar
0c8bec2126 Merge pull request #4956 from jonataswalker/fix-layout-examples
Fix Examples layout page
2016-03-02 19:09:42 +01:00
jonataswalker
8b2259bf25 Fix Examples layout page 2016-03-02 14:37:19 -03:00
Andreas Hocevar
8ba04ac77a Simplify clipping of lower resolution regions 2016-03-02 15:54:06 +01:00
Frédéric Junod
f6f22b155c Merge pull request #4958 from fredj/stop_wheel_events
Stop wheel events instead of DOMMouseScroll events
2016-03-02 15:36:38 +01:00
Frederic Junod
2cb48d3d62 Stop wheel events instead of DOMMouseScroll events 2016-03-02 15:25:22 +01:00
Tim Schaub
e3b88b8785 Merge pull request #4947 from tschaub/pixelworks
IE support for ol.source.Raster.
2016-03-01 15:13:48 -07:00
Tim Schaub
efdc892219 Run ol.source.Raster tests in Phantom 2016-03-01 13:50:31 -07:00
Tim Schaub
5aa175241a No need to check for ImageData constructor in the tests 2016-03-01 13:43:55 -07:00
Tim Schaub
bc01fdb59a Return ImageData-like objects for IE support 2016-03-01 13:34:50 -07:00
Tim Schaub
66f23c1aed Upgrade to pixelworks@1.1.0 2016-03-01 13:34:50 -07:00
Andreas Hocevar
4cebe3d92b Merge pull request #4944 from openlayers/greenkeeper-resemblejs-2.2.0
Update resemblejs to version 2.2.0 🚀
2016-03-01 17:58:34 +01:00
greenkeeperio-bot
ad0a13ebb2 chore(package): update resemblejs to version 2.2.0
http://greenkeeper.io/
2016-03-01 06:46:51 -07:00
Frédéric Junod
e8e5dc6332 Merge pull request #4942 from fredj/unused_example_data
Remove unused files in examples/data/
2016-03-01 12:43:58 +01:00
Frederic Junod
f271fdb993 Remove unused files in examples/data/ 2016-03-01 12:26:06 +01:00
Frédéric Junod
fbbbcf5cdb Merge pull request #4805 from fredj/cacheSize
Add new cacheSize option to ol.source
2016-03-01 10:46:00 +01:00
Andreas Hocevar
9fe2970fb3 Merge pull request #4940 from openlayers/release-v3.14.1
Release v3.14.1
2016-03-01 10:20:50 +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
fbb3ffc9e5 Merge pull request #4939 from ahocevar/clip-opacity
Fix rendering of opaque layers with opacity != 1
2016-03-01 09:43:24 +01:00
Frederic Junod
9819aa38f5 Remove ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK 2016-03-01 09:05:12 +01:00
Frederic Junod
58d8b290af Add new cacheSize option to ol.source
Option added to:
 - olx.source.BingMapsOptions
 - olx.source.MapQuestOptions
 - olx.source.OSMOptions
 - olx.source.StamenOptions
 - olx.source.TileArcGISRestOptions
 - olx.source.TileImageOptions
 - olx.source.TileJSONOptions
 - olx.source.TileWMSOptions
 - olx.source.VectorTileOptions
 - olx.source.XYZOptions
 - olx.source.WMTSOptions
 - olx.source.ZoomifyOptions
2016-03-01 09:05:12 +01:00
Andreas Hocevar
16f63a7e0c Calculate low resolution tile clipping like current tile position 2016-02-29 21:30:57 +01:00
Andreas Hocevar
23172a3695 Use tile position coordinates for clip geometry outer ring 2016-02-29 21:28:20 +01:00
Andreas Hocevar
8553da6679 Refactor tile position calculation for readability 2016-02-29 21:23:19 +01:00
Andreas Hocevar
8256ff60b6 Consider layer opacity for lower resolution tile clipping 2016-02-29 21:13:31 +01:00
Frédéric Junod
d5fb6dda49 Merge pull request #4938 from fredj/rm_goog.dom.getFirstElementChild
Get rid of goog.dom.getFirstElementChild
2016-02-29 17:13:10 +01:00
Frederic Junod
e9a5fadacc Get rid of goog.dom.getFirstElementChild
Use [firstElementChild](https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/firstElementChild) instead.
2016-02-29 16:59:29 +01:00
Frédéric Junod
8465875b24 Merge pull request #4937 from fredj/rm_goog.json
Get rid of goog.json
2016-02-29 16:56:32 +01:00
Frédéric Junod
41c12bcea9 Merge pull request #4936 from fredj/getfeatureinfo-layers
Remove jquery from getfeatureinfo-layers example
2016-02-29 16:37:46 +01:00
Frederic Junod
cf23d0541c Get rid of goog.json
Use JSON.parse and JSON.stringify instead.
2016-02-29 16:19:32 +01:00
Frederic Junod
aaf03a8fc2 Remove jquery from getfeatureinfo-layers example 2016-02-29 15:32:28 +01:00
Frédéric Junod
5b38eaa116 Merge pull request #4930 from fredj/custom-builds.md
Use ADVANCED instead of ADVANCED_OPTIMIZATIONS
2016-02-29 10:40:19 +01:00
Andreas Hocevar
9b8ab88e41 Merge pull request #4917 from ahocevar/flexible-cluster
Make ol.source.Cluster more flexible by adding a geometryFunction option
2016-02-29 10:40:12 +01:00
Frédéric Junod
3194d0ebd4 Merge pull request #4918 from fredj/canvas_clear
Don't change the canvas size to clear it
2016-02-29 10:40:00 +01:00
Frederic Junod
2a1bc70b97 Don't change the canvas size to clear it 2016-02-29 09:23:42 +01:00
Frederic Junod
2427d0e684 Use ADVANCED instead of ADVANCED_OPTIMIZATIONS 2016-02-29 08:39:54 +01:00
Frédéric Junod
941f220f3d Merge pull request #4923 from xlhomme/patch-1
Update custom-builds.md
2016-02-29 08:37:58 +01:00
Frédéric Junod
50aad8f42d Merge pull request #4929 from openlayers/greenkeeper-clean-css-3.4.10
Update clean-css to version 3.4.10 🚀
2016-02-29 08:26:01 +01:00
greenkeeperio-bot
24069fa7bf chore(package): update clean-css to version 3.4.10
http://greenkeeper.io/
2016-02-29 00:10:03 -07:00
Tim Schaub
0e5dfec3bf Merge pull request #4928 from bjornharrtell/jsts-upgrade2
Upgrade to JSTS 1.0.2 in example
2016-02-28 21:50:13 -07:00
Björn Harrtell
7b6820a012 Upgrade to JSTS 1.0.2 in example 2016-02-28 20:31:44 +01:00
Tim Schaub
a172e04d5b Merge pull request #4927 from bjornharrtell/jsts-upgrade
Upgrade JSTS in example.
2016-02-27 09:01:47 -07:00
Tim Schaub
750830b887 Merge pull request #4809 from fperucic/multpolygon-clone
Fix multipolygon clone.
2016-02-27 09:00:17 -07:00
Fran Peručić
a51e7804b8 added a test 2016-02-27 13:03:19 +01:00
Björn Harrtell
94debcfc3a Upgrade JSTS in example 2016-02-27 09:08:17 +01:00
Andreas Hocevar
c5d3dfd41c Merge pull request #4924 from openlayers/greenkeeper-coveralls-2.11.8
Update coveralls to version 2.11.8 🚀
2016-02-26 21:24:29 +01:00
greenkeeperio-bot
7491b90c30 chore(package): update coveralls to version 2.11.8
http://greenkeeper.io/
2016-02-26 12:40:20 -07:00
xavier lhomme
e3f25ee71f Update custom-builds.md
not sure we should add 
"ol.layer.Heatmap#setRadius",
"ol.layer.Heatmap#setBlur"
but it's work.
2016-02-26 19:45:59 +01:00
Andreas Hocevar
588dd54fb6 Merge pull request #4921 from ahocevar/unlisten-earlier-and-bind-to-target
Unlisten before calling listener and bind to target by default
2016-02-25 18:04:39 +01:00
Andreas Hocevar
00a0f14743 Unlisten before calling listener and bind to target by default 2016-02-25 17:48:15 +01:00
Tim Schaub
ef42267cfe Merge pull request #4868 from sebasbaumh/refreshSource
Allow to refresh a source and reload its data.
2016-02-25 07:15:46 -07:00
Andreas Hocevar
0407e779f9 Make ol.source.Cluster more flexible by adding a geometryFunction option 2016-02-25 15:02:41 +01:00
Frédéric Junod
78d6d5ab1b Merge pull request #4903 from fredj/rm_goog.style.getRelativePosition
Remove use of goog.style.getRelativePosition
2016-02-25 14:29:34 +01:00
Frédéric Junod
fa180cfa13 Merge pull request #4902 from fredj/getBoundingClientRect
Remove use of goog.style.getClientPosition
2016-02-25 11:05:56 +01:00
Frédéric Junod
d190d27534 Merge pull request #4916 from fredj/writeFeatureObject_return
Fix ol.format.GeoJSON#writeFeatureObject return type
2016-02-25 10:22:28 +01:00
Frederic Junod
916127d8f6 Fix ol.format.GeoJSON#writeFeatureObject return type 2016-02-25 10:09:37 +01:00
Frédéric Junod
7583d8d434 Merge pull request #4909 from fredj/dom_vector_clear
Add ol.renderer.dom.VectorLayer#clearFrame
2016-02-25 10:08:14 +01:00
Frédéric Junod
b19aa01b72 Merge pull request #4915 from fredj/object
Use {} instead of Object
2016-02-25 09:51:12 +01:00
Frederic Junod
148ef7afef Use {} instead of Object
We probably have these to trick the compiler but it's not needed anymore
2016-02-25 09:15:33 +01:00
Frédéric Junod
5ad42f3b25 Merge pull request #4914 from sebasbaumh/exportEquivalent
Export ol.proj.equivalent
2016-02-25 08:55:35 +01:00
Sebastian Baumhekel
33bcd7194f Export ol.proj.equivalent
The function ol.proj.equivalent is used for comparing two projections,
but not exposed publicly. It should be accessible using a public API to
be able to compare projections in the same way as OpenLayers does.

A test for the ol.proj.equivalent function itself already exists in
https://github.com/openlayers/ol3/blob/master/test/spec/ol/proj/proj.test.js

github issue #4913
2016-02-25 08:40:56 +01:00
Frederic Junod
edf2096b1b Remove use of goog.style.getClientPosition
Use Element.getBoundingClientRect() instead.
2016-02-25 08:36:40 +01:00
Sebastian Baumhekel
7fcf2650ee Allow to refresh a source and reload its data.
Provide an API to refresh a source and reload its data in an associated
layer, as for example already loaded tiles in a ol.source.Tile source
are not refreshed. Additionally a test for the new
ol.source.Source.refresh() function is provided.

Currently internal state is not cleaned up, e.g. already loaded tiles
in a `ol.source.Tile` source are still cached and not reloaded at all.

github issue #4867 (https://github.com/openlayers/ol3/issues/4867)
2016-02-25 08:05:56 +01:00
Frederic Junod
81e563b2b3 Remove use of goog.style.getRelativePosition
Use Element.getBoundingClientRect() and Event.clientX/Event.clientY instead.
2016-02-24 17:28:46 +01:00
Frédéric Junod
68088341d6 Merge pull request #4908 from fredj/rm_goog.math.Rect
Remove use of goog.math.Rect
2016-02-24 17:15:44 +01:00
Frederic Junod
348f61951c Add ol.renderer.dom.VectorLayer#clearFrame 2016-02-24 16:13:35 +01:00
Frederic Junod
48064306a1 Remove use of goog.math.Rect 2016-02-24 14:32:58 +01:00
Frederic Junod
373393dce7 Add missing 'private' jsdoc tag 2016-02-24 14:32:57 +01:00
Frédéric Junod
bd5c85acc3 Merge pull request #4900 from fredj/ol.format.XML_struct
Make ol.format.XML a @struct
2016-02-24 14:24:39 +01:00
Frédéric Junod
8a6afb3836 Merge pull request #4880 from openlayers/greenkeeper-closure-util-1.11.0
Update closure-util to version 1.11.0 🚀
2016-02-24 14:18:01 +01:00
Frédéric Junod
d8d7ae8e1b Merge pull request #4905 from fredj/rm_goog.style.setPosition
Remove use of goog.style.setPosition
2016-02-24 14:17:36 +01:00
Frederic Junod
805b81cea7 Remove use of goog.style.setPosition
Use element.style.left and element.style.top instead
2016-02-24 12:23:10 +01:00
Frédéric Junod
514243a8e9 Merge pull request #4879 from openlayers/greenkeeper-metalsmith-layouts-1.6.4
Update metalsmith-layouts to version 1.6.4 🚀
2016-02-24 12:05:02 +01:00
Andreas Hocevar
37113837d1 Merge pull request #4901 from openlayers/release-v3.14.0
Release v3.14.0
2016-02-24 09:53:01 +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
Frédéric Junod
8395bea72d Merge pull request #4899 from fredj/srsName
Use ol.format.GMLBase#srsName instead of undeclared srsName_
2016-02-24 09:43:49 +01:00
Frederic Junod
ac17a2f2a7 Make ol.format.XML a @struct
And replace the undeclared `this.version` by a local variable.
2016-02-24 09:25:41 +01:00
Frederic Junod
a365f185cc Use ol.format.GMLBase#srsName instead of undeclared srsName_
The variable was changed from private to protected in 8182396
2016-02-24 09:20:22 +01:00
greenkeeperio-bot
7e7d8ac4e2 chore(package): update closure-util to version 1.11.0
- Remove closure-util.json, we're now using the same library version as closure-util
 - Disable analyzerChecks errors from closure-compiler
 - Remove WheelEvent constants from externs (fixed upstream)
 - Activate the unnecessaryCasts compiler check
2016-02-24 09:02:25 +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
345763fcd3 chore(package): update metalsmith-layouts to version 1.6.4
http://greenkeeper.io/
2016-02-23 08:50:58 +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
Fran Peručić
b46cc5a241 fix multipolygon clone 2016-02-10 15:06:00 +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
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
404 changed files with 11657 additions and 4872 deletions

View File

@@ -17,6 +17,7 @@ before_install:
before_script:
- "rm src/ol/renderer/webgl/*shader.js"
- "sh -e /etc/init.d/xvfb start"
- "npm ls"
script: "make ci"

View File

@@ -101,20 +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 `v !== undefined` instead of `goog.isDef(v)` and `v === null` instead of
`goog.isNull(v)`.
* Use ECMAScript 5.1 functions instead of the `goog` equivalents. For example,
use `Object.keys(obj)` instead of `goog.object.getKeys(obj)`, `arr.forEach(f)`
instead of `goog.array.forEach(arr, f)`, etc ...
* 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

@@ -11,14 +11,6 @@ The Travis CI hook is enabled on the Github repository. This means every pull re
is run through a full test suite to ensure it compiles and passes the tests. Failing
pull requests will not be merged.
Although not mandatory, it is also recommended to set up Travis CI for your ol3 fork.
For that go to your ol3 fork's Service Hooks page and set up the Travis hook.
Then every time you push to your fork, the test suite will be run. This means
errors can be caught before creating a pull request. For those making
small or occasional contributions, this may be enough to check that your contributions
are ok; in this case, you do not need to install the build tools on your local environment
as described below.
### Development dependencies
The minimum requirements are:

View File

@@ -181,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) \

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,7 +1,98 @@
## Upgrade notes
### v3.15.0
#### Internet Explorer 9 support
As of this release, OpenLayers requires a `classList` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features#Element_prototype_classList.
#### Immediate rendering API
Listeners for `precompose`, `render`, and `postcompose` receive an event with a `vectorContext` property with methods for immediate vector rendering. The previous geometry drawing methods have been replaced with a single `vectorContext.drawGeometry(geometry)` method. If you were using any of the following experimental methods on the vector context, replace them with `drawGeometry`:
* Removed experimental geometry drawing methods: `drawPointGeometry`, `drawLineStringGeometry`, `drawPolygonGeometry`, `drawMultiPointGeometry`, `drawMultiLineStringGeometry`, `drawMultiPolygonGeometry`, and `drawCircleGeometry` (all have been replaced with `drawGeometry`).
In addition, the previous methods for setting style parts have been replaced with a single `vectorContext.setStyle(style)` method. If you were using any of the following experimental methods on the vector context, replace them with `setStyle`:
* Removed experimental style setting methods: `setFillStrokeStyle`, `setImageStyle`, `setTextStyle` (all have been replaced with `setStyle`).
Below is an example of how the vector context might have been used in the past:
```js
// OLD WAY, NO LONGER SUPPORTED
map.on('postcompose', function(event) {
event.vectorContext.setFillStrokeStyle(style.getFill(), style.getStroke());
event.vectorContext.drawPointGeometry(geometry);
});
```
Here is an example of how you could accomplish the same with the new methods:
```js
// NEW WAY, USE THIS INSTEAD OF THE CODE ABOVE
map.on('postcompose', function(event) {
event.vectorContext.setStyle(style);
event.vectorContext.drawGeometry(geometry);
});
```
A final change to the immediate rendering API is that `vectorContext.drawFeature()` calls are now "immediate" as well. The drawing now occurs synchronously. This means that any `zIndex` in a style passed to `drawFeature()` will be ignored. To achieve `zIndex` ordering, order your calls to `drawFeature()` instead.
#### Removal of `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK`
The `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK` define has been removed. The size of the cache can now be defined on every tile based `ol.source`:
```js
new ol.layer.Tile({
source: new ol.source.OSM({
cacheSize: 128
})
})
```
The default cache size is `2048`.
### 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

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

204
changelog/v3.15.0.md Normal file
View File

@@ -0,0 +1,204 @@
# v3.15.0
## Summary
The v3.15.0 release includes features and fixes from 136 pull requests since the v3.14.2 release. New features and improvements include:
* Make ol.source.Cluster more flexible by adding a geometryFunction option (#4917).
* Add new CartoDB tile source (#4926).
* Improved rendering performance for vector layers by batching polygon fill and stroke instructions (#5149).
* Make the tile cache size configurable (#4805).
* Add new ol.geom.Geometry#rotate function (#4984).
* Accept simpler forms of specifying attribution(s) for sources (#5007).
* Support zooming out for ol.interaction.DragZoom (#5031).
## Upgrade notes
### v3.15.0
#### Internet Explorer 9 support
As of this release, OpenLayers requires a `classList` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features#Element_prototype_classList.
#### Immediate rendering API
Listeners for `precompose`, `render`, and `postcompose` receive an event with a `vectorContext` property with methods for immediate vector rendering. The previous geometry drawing methods have been replaced with a single `vectorContext.drawGeometry(geometry)` method. If you were using any of the following experimental methods on the vector context, replace them with `drawGeometry`:
* Removed experimental geometry drawing methods: `drawPointGeometry`, `drawLineStringGeometry`, `drawPolygonGeometry`, `drawMultiPointGeometry`, `drawMultiLineStringGeometry`, `drawMultiPolygonGeometry`, and `drawCircleGeometry` (all have been replaced with `drawGeometry`).
In addition, the previous methods for setting style parts have been replaced with a single `vectorContext.setStyle(style)` method. If you were using any of the following experimental methods on the vector context, replace them with `setStyle`:
* Removed experimental style setting methods: `setFillStrokeStyle`, `setImageStyle`, `setTextStyle` (all have been replaced with `setStyle`).
Below is an example of how the vector context might have been used in the past:
```js
// OLD WAY, NO LONGER SUPPORTED
map.on('postcompose', function(event) {
event.vectorContext.setFillStrokeStyle(style.getFill(), style.getStroke());
event.vectorContext.drawPointGeometry(geometry);
});
```
Here is an example of how you could accomplish the same with the new methods:
```js
// NEW WAY, USE THIS INSTEAD OF THE CODE ABOVE
map.on('postcompose', function(event) {
event.vectorContext.setStyle(style);
event.vectorContext.drawGeometry(geometry);
});
```
A final change to the immediate rendering API is that `vectorContext.drawFeature()` calls are now "immediate" as well. The drawing now occurs synchronously. This means that any `zIndex` in a style passed to `drawFeature()` will be ignored. To achieve `zIndex` ordering, order your calls to `drawFeature()` instead.
#### Removal of `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK`
The `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK` define has been removed. The size of the cache can now be defined on every tile based `ol.source`:
```js
new ol.layer.Tile({
source: new ol.source.OSM({
cacheSize: 128
})
})
```
The default cache size is `2048`.
## Full list of changes
* [#4775](https://github.com/openlayers/ol3/pull/4775) - Remove goog.math.modulo and goog.math.lerp ([@nicholas-l](https://github.com/nicholas-l))
* [#5152](https://github.com/openlayers/ol3/pull/5152) - Cartodb cleanup ([@fredj](https://github.com/fredj))
* [#4804](https://github.com/openlayers/ol3/pull/4804) - Use Array.isArray instead of goog.isArray ([@fredj](https://github.com/fredj))
* [#5149](https://github.com/openlayers/ol3/pull/5149) - Batch polygon fill and stroke instructions ([@ahocevar](https://github.com/ahocevar))
* [#5159](https://github.com/openlayers/ol3/pull/5159) - Update eslint to version 2.6.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5160](https://github.com/openlayers/ol3/pull/5160) - Update clean-css to version 3.4.11 🚀 ([@openlayers](https://github.com/openlayers))
* [#5157](https://github.com/openlayers/ol3/pull/5157) - Improve docs for measure example ([@probins](https://github.com/probins))
* [#5155](https://github.com/openlayers/ol3/pull/5155) - Fix ol.source.Zoomify tests on firefox ([@fredj](https://github.com/fredj))
* [#5086](https://github.com/openlayers/ol3/pull/5086) - Get rid of goog.functions ([@bjornharrtell](https://github.com/bjornharrtell))
* [#5105](https://github.com/openlayers/ol3/pull/5105) - Support minZoom in ol.source.Stamen ([@fredj](https://github.com/fredj))
* [#4926](https://github.com/openlayers/ol3/pull/4926) - Add CartoDB tile source. ([@aisaacs](https://github.com/aisaacs))
* [#5151](https://github.com/openlayers/ol3/pull/5151) - Use fs-extra as fs, remove usage of graceful-fs ([@marcjansen](https://github.com/marcjansen))
* [#5124](https://github.com/openlayers/ol3/pull/5124) - Removed goog.dom.classlist ([@nicholas-l](https://github.com/nicholas-l))
* [#5150](https://github.com/openlayers/ol3/pull/5150) - Use fs-extra instead of wrench ([@fredj](https://github.com/fredj))
* [#5109](https://github.com/openlayers/ol3/pull/5109) - Add some tests for ol.source.TileUTFGrid ([@marcjansen](https://github.com/marcjansen))
* [#5139](https://github.com/openlayers/ol3/pull/5139) - Update closure-util to version 1.13.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5141](https://github.com/openlayers/ol3/pull/5141) - Reuse dragListenerKeys_ variable in ol.control.ZoomSlider ([@fredj](https://github.com/fredj))
* [#5118](https://github.com/openlayers/ol3/pull/5118) - Remove goog.dom.classlist usage ([@fredj](https://github.com/fredj))
* [#5115](https://github.com/openlayers/ol3/pull/5115) - Clarify that lineDash has no effect in IE 10 and below ([@marcjansen](https://github.com/marcjansen))
* [#5136](https://github.com/openlayers/ol3/pull/5136) - Update eslint to version 2.5.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#5123](https://github.com/openlayers/ol3/pull/5123) - Update coveralls to version 2.11.9 🚀 ([@openlayers](https://github.com/openlayers))
* [#5131](https://github.com/openlayers/ol3/pull/5131) - Update phantomjs-prebuilt to version 2.1.7 🚀 ([@openlayers](https://github.com/openlayers))
* [#5122](https://github.com/openlayers/ol3/pull/5122) - Update browser support info in intro tutorial ([@probins](https://github.com/probins))
* [#5112](https://github.com/openlayers/ol3/pull/5112) - Add decimals option to format write ([@probins](https://github.com/probins))
* [#5120](https://github.com/openlayers/ol3/pull/5120) - Add tileJSON option to ol.source.TileUTFGrid ([@ahocevar](https://github.com/ahocevar))
* [#5119](https://github.com/openlayers/ol3/pull/5119) - Add ol.source.Raster events on API docs page ([@drnextgis](https://github.com/drnextgis))
* [#5116](https://github.com/openlayers/ol3/pull/5116) - Improve examples pages on mobile devices a bit ([@ahocevar](https://github.com/ahocevar))
* [#5113](https://github.com/openlayers/ol3/pull/5113) - Memory leak in ol.control.FullScreen ([@AvatharDG](https://github.com/AvatharDG))
* [#5111](https://github.com/openlayers/ol3/pull/5111) - Remove CSS filter in examples ([@fredj](https://github.com/fredj))
* [#5108](https://github.com/openlayers/ol3/pull/5108) - Remove unused ol.xml.getAttributeNodeNS function ([@fredj](https://github.com/fredj))
* [#5106](https://github.com/openlayers/ol3/pull/5106) - Get rid of goog.math.Vec2 ([@fredj](https://github.com/fredj))
* [#5096](https://github.com/openlayers/ol3/pull/5096) - Add tests for ol.source.Zoomify ([@marcjansen](https://github.com/marcjansen))
* [#5102](https://github.com/openlayers/ol3/pull/5102) - Fix typo in API docs ([@openlayers](https://github.com/openlayers))
* [#5098](https://github.com/openlayers/ol3/pull/5098) - Reintroduce log messages for relevant WebGL assertions ([@bjornharrtell](https://github.com/bjornharrtell))
* [#5094](https://github.com/openlayers/ol3/pull/5094) - FAQ: answer question 4 ([@probins](https://github.com/probins))
* [#5092](https://github.com/openlayers/ol3/pull/5092) - add raster.jsdoc ([@drnextgis](https://github.com/drnextgis))
* [#5081](https://github.com/openlayers/ol3/pull/5081) - Snap to vertices or edges ([@drnextgis](https://github.com/drnextgis))
* [#5090](https://github.com/openlayers/ol3/pull/5090) - Update custom-builds.md ([@probins](https://github.com/probins))
* [#5089](https://github.com/openlayers/ol3/pull/5089) - Test for both transform coords should use roughlyEqual ([@probins](https://github.com/probins))
* [#5080](https://github.com/openlayers/ol3/pull/5080) - Fix geojson write GeometryCollection ([@probins](https://github.com/probins))
* [#5088](https://github.com/openlayers/ol3/pull/5088) - DEVELOPING.md: remove section on running Travis on fork ([@probins](https://github.com/probins))
* [#5087](https://github.com/openlayers/ol3/pull/5087) - assertion to check that there's a DOM node for target element ([@drnextgis](https://github.com/drnextgis))
* [#5069](https://github.com/openlayers/ol3/pull/5069) - Update jquery to version 2.2.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#5083](https://github.com/openlayers/ol3/pull/5083) - Remove unnecessary lineTo calls in immediate polygon rendering ([@tschaub](https://github.com/tschaub))
* [#5082](https://github.com/openlayers/ol3/pull/5082) - Get rid of goog.log. ([@bjornharrtell](https://github.com/bjornharrtell))
* [#5079](https://github.com/openlayers/ol3/pull/5079) - Correcting a typo in the upgrade notes ([@tschaub](https://github.com/tschaub))
* [#5076](https://github.com/openlayers/ol3/pull/5076) - Update phantomjs-prebuilt to version 2.1.6 🚀 ([@openlayers](https://github.com/openlayers))
* [#5077](https://github.com/openlayers/ol3/pull/5077) - Make immediate API uniformly synchronous. ([@tschaub](https://github.com/tschaub))
* [#5072](https://github.com/openlayers/ol3/pull/5072) - Add setStyle() and drawGeometry() to the immediate rendering API. ([@tschaub](https://github.com/tschaub))
* [#5074](https://github.com/openlayers/ol3/pull/5074) - Do not rotate map canvas after composition ([@ahocevar](https://github.com/ahocevar))
* [#5071](https://github.com/openlayers/ol3/pull/5071) - correct way to determine freehand mode is enabled ([@drnextgis](https://github.com/drnextgis))
* [#5066](https://github.com/openlayers/ol3/pull/5066) - Add more getters to ol.source.Vector ([@bartvde](https://github.com/bartvde))
* [#5064](https://github.com/openlayers/ol3/pull/5064) - Fix inconsistency in geom docs ([@probins](https://github.com/probins))
* [#5063](https://github.com/openlayers/ol3/pull/5063) - Remove inappropriate information from API docs ([@drnextgis](https://github.com/drnextgis))
* [#5061](https://github.com/openlayers/ol3/pull/5061) - Remove redundant required option ([@drnextgis](https://github.com/drnextgis))
* [#5058](https://github.com/openlayers/ol3/pull/5058) - Note in docs that DOM renderer can also render vectors ([@probins](https://github.com/probins))
* [#5056](https://github.com/openlayers/ol3/pull/5056) - Note in docs that WebGL can render points ([@probins](https://github.com/probins))
* [#5055](https://github.com/openlayers/ol3/pull/5055) - Fix cruft on kml scale output ([@probins](https://github.com/probins))
* [#5051](https://github.com/openlayers/ol3/pull/5051) - Handle aborted tiles in ol.TileQueue ([@fredj](https://github.com/fredj))
* [#5049](https://github.com/openlayers/ol3/pull/5049) - Supported browsers all have getComputedStyle ([@marcjansen](https://github.com/marcjansen))
* [#5048](https://github.com/openlayers/ol3/pull/5048) - Add tests for ol.dom methods ([@marcjansen](https://github.com/marcjansen))
* [#5031](https://github.com/openlayers/ol3/pull/5031) - support zooming out for ol.interaction.DragZoom ([@drnextgis](https://github.com/drnextgis))
* [#5036](https://github.com/openlayers/ol3/pull/5036) - Use imgSize when provided ([@ahocevar](https://github.com/ahocevar))
* [#5020](https://github.com/openlayers/ol3/pull/5020) - Update gaze to version 1.0.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5039](https://github.com/openlayers/ol3/pull/5039) - Update fs-extra to version 0.26.6 🚀 ([@openlayers](https://github.com/openlayers))
* [#5033](https://github.com/openlayers/ol3/pull/5033) - Document GPX geometry output types ([@probins](https://github.com/probins))
* [#5024](https://github.com/openlayers/ol3/pull/5024) - Resize the map canvas less aggressively ([@ahocevar](https://github.com/ahocevar))
* [#5000](https://github.com/openlayers/ol3/pull/5000) - Remove use of goog.math.Size and goog.style.setBorderBoxSize ([@fredj](https://github.com/fredj))
* [#5027](https://github.com/openlayers/ol3/pull/5027) - Clarify default value of featureProjection on geometry write ([@probins](https://github.com/probins))
* [#5019](https://github.com/openlayers/ol3/pull/5019) - Update eslint to version 2.4.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5016](https://github.com/openlayers/ol3/pull/5016) - Add basic tests for ol.geom.flat.center ([@marcjansen](https://github.com/marcjansen))
* [#5015](https://github.com/openlayers/ol3/pull/5015) - Update proj4 to version 2.3.14 🚀 ([@openlayers](https://github.com/openlayers))
* [#5013](https://github.com/openlayers/ol3/pull/5013) - Fix typo in test description ([@openlayers](https://github.com/openlayers))
* [#5007](https://github.com/openlayers/ol3/pull/5007) - Accept simpler forms of specifying attribution(s) for sources. ([@marcjansen](https://github.com/marcjansen))
* [#5011](https://github.com/openlayers/ol3/pull/5011) - Add missing setProjection function to ol.VectorTile API ([@ahocevar](https://github.com/ahocevar))
* [#5010](https://github.com/openlayers/ol3/pull/5010) - Add and fix API docs for ol.events.Event stack ([@ahocevar](https://github.com/ahocevar))
* [#5009](https://github.com/openlayers/ol3/pull/5009) - Update tutorials ([@gberaudo](https://github.com/gberaudo))
* [#5006](https://github.com/openlayers/ol3/pull/5006) - Use the maintained slimerjs package ([@ahocevar](https://github.com/ahocevar))
* [#5003](https://github.com/openlayers/ol3/pull/5003) - Add 'function' jsdoc tag to ol.geom.Geometry#rotate ([@fredj](https://github.com/fredj))
* [#5002](https://github.com/openlayers/ol3/pull/5002) - Update eslint-config-openlayers to version 4.1.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4999](https://github.com/openlayers/ol3/pull/4999) - Remove use of goog.dom.removeNode ([@fredj](https://github.com/fredj))
* [#4990](https://github.com/openlayers/ol3/pull/4990) - Add new ol.source.TileJSON#getTileJSON function ([@fredj](https://github.com/fredj))
* [#4998](https://github.com/openlayers/ol3/pull/4998) - Remove unused ol.Map#isDef function ([@fredj](https://github.com/fredj))
* [#4995](https://github.com/openlayers/ol3/pull/4995) - Remove unused ol.color functions. ([@tschaub](https://github.com/tschaub))
* [#4991](https://github.com/openlayers/ol3/pull/4991) - Do not remove listeners while dispatching event ([@ahocevar](https://github.com/ahocevar))
* [#4984](https://github.com/openlayers/ol3/pull/4984) - Add new ol.geom.Geometry#rotate function ([@fredj](https://github.com/fredj))
* [#4994](https://github.com/openlayers/ol3/pull/4994) - Add alpha default value to ol.Color array form ([@jonataswalker](https://github.com/jonataswalker))
* [#4992](https://github.com/openlayers/ol3/pull/4992) - Allow configuration of the test reporter ([@marcjansen](https://github.com/marcjansen))
* [#4988](https://github.com/openlayers/ol3/pull/4988) - Update phantomjs-prebuilt to version 2.1.5 🚀 ([@openlayers](https://github.com/openlayers))
* [#4983](https://github.com/openlayers/ol3/pull/4983) - Update Bing Maps Portal url ([@ahocevar](https://github.com/ahocevar))
* [#4981](https://github.com/openlayers/ol3/pull/4981) - Remove the viewport on map dispose ([@fredj](https://github.com/fredj))
* [#4980](https://github.com/openlayers/ol3/pull/4980) - Remove unused goog.require ([@fredj](https://github.com/fredj))
* [#4977](https://github.com/openlayers/ol3/pull/4977) - Add basic tests for ol.geom.flat.length methods ([@marcjansen](https://github.com/marcjansen))
* [#4973](https://github.com/openlayers/ol3/pull/4973) - Update eslint to version 2.3.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4971](https://github.com/openlayers/ol3/pull/4971) - Release v3.14.2 ([@openlayers](https://github.com/openlayers))
* [#4970](https://github.com/openlayers/ol3/pull/4970) - Tests for ol.Disposable. ([@tschaub](https://github.com/tschaub))
* [#4967](https://github.com/openlayers/ol3/pull/4967) - Add missing goog.inherits for ol.render.canvas.Immediate ([@fredj](https://github.com/fredj))
* [#4955](https://github.com/openlayers/ol3/pull/4955) - Remove IE workarounds in src/ol/xml.js ([@fredj](https://github.com/fredj))
* [#4960](https://github.com/openlayers/ol3/pull/4960) - Simplify clipping of lower resolution regions ([@ahocevar](https://github.com/ahocevar))
* [#4950](https://github.com/openlayers/ol3/pull/4950) - Remove use of goog.Disposable(). ([@tschaub](https://github.com/tschaub))
* [#4963](https://github.com/openlayers/ol3/pull/4963) - Handle more XHR errors in the TileJSON source ([@tschaub](https://github.com/tschaub))
* [#4962](https://github.com/openlayers/ol3/pull/4962) - Skip tests where features are not available ([@tschaub](https://github.com/tschaub))
* [#4956](https://github.com/openlayers/ol3/pull/4956) - Fix Examples layout page ([@jonataswalker](https://github.com/jonataswalker))
* [#4958](https://github.com/openlayers/ol3/pull/4958) - Stop wheel events instead of DOMMouseScroll events ([@fredj](https://github.com/fredj))
* [#4947](https://github.com/openlayers/ol3/pull/4947) - IE support for ol.source.Raster. ([@tschaub](https://github.com/tschaub))
* [#4944](https://github.com/openlayers/ol3/pull/4944) - Update resemblejs to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4942](https://github.com/openlayers/ol3/pull/4942) - Remove unused files in examples/data/ ([@fredj](https://github.com/fredj))
* [#4805](https://github.com/openlayers/ol3/pull/4805) - Add new cacheSize option to ol.source ([@fredj](https://github.com/fredj))
* [#4940](https://github.com/openlayers/ol3/pull/4940) - Release v3.14.1 ([@openlayers](https://github.com/openlayers))
* [#4939](https://github.com/openlayers/ol3/pull/4939) - Fix rendering of opaque layers with opacity != 1 ([@ahocevar](https://github.com/ahocevar))
* [#4938](https://github.com/openlayers/ol3/pull/4938) - Get rid of goog.dom.getFirstElementChild ([@fredj](https://github.com/fredj))
* [#4937](https://github.com/openlayers/ol3/pull/4937) - Get rid of goog.json ([@fredj](https://github.com/fredj))
* [#4936](https://github.com/openlayers/ol3/pull/4936) - Remove jquery from getfeatureinfo-layers example ([@fredj](https://github.com/fredj))
* [#4930](https://github.com/openlayers/ol3/pull/4930) - Use ADVANCED instead of ADVANCED_OPTIMIZATIONS ([@fredj](https://github.com/fredj))
* [#4917](https://github.com/openlayers/ol3/pull/4917) - Make ol.source.Cluster more flexible by adding a geometryFunction option ([@ahocevar](https://github.com/ahocevar))
* [#4918](https://github.com/openlayers/ol3/pull/4918) - Don't change the canvas size to clear it ([@fredj](https://github.com/fredj))
* [#4923](https://github.com/openlayers/ol3/pull/4923) - Update custom-builds.md ([@xlhomme](https://github.com/xlhomme))
* [#4929](https://github.com/openlayers/ol3/pull/4929) - Update clean-css to version 3.4.10 🚀 ([@openlayers](https://github.com/openlayers))
* [#4928](https://github.com/openlayers/ol3/pull/4928) - Upgrade to JSTS 1.0.2 in example ([@bjornharrtell](https://github.com/bjornharrtell))
* [#4927](https://github.com/openlayers/ol3/pull/4927) - Upgrade JSTS in example. ([@bjornharrtell](https://github.com/bjornharrtell))
* [#4809](https://github.com/openlayers/ol3/pull/4809) - Fix multipolygon clone. ([@fperucic](https://github.com/fperucic))
* [#4924](https://github.com/openlayers/ol3/pull/4924) - Update coveralls to version 2.11.8 🚀 ([@openlayers](https://github.com/openlayers))
* [#4921](https://github.com/openlayers/ol3/pull/4921) - Unlisten before calling listener and bind to target by default ([@ahocevar](https://github.com/ahocevar))
* [#4868](https://github.com/openlayers/ol3/pull/4868) - Allow to refresh a source and reload its data. ([@sebasbaumh](https://github.com/sebasbaumh))
* [#4903](https://github.com/openlayers/ol3/pull/4903) - Remove use of goog.style.getRelativePosition ([@fredj](https://github.com/fredj))
* [#4902](https://github.com/openlayers/ol3/pull/4902) - Remove use of goog.style.getClientPosition ([@fredj](https://github.com/fredj))
* [#4916](https://github.com/openlayers/ol3/pull/4916) - Fix ol.format.GeoJSON#writeFeatureObject return type ([@fredj](https://github.com/fredj))
* [#4909](https://github.com/openlayers/ol3/pull/4909) - Add ol.renderer.dom.VectorLayer#clearFrame ([@fredj](https://github.com/fredj))
* [#4915](https://github.com/openlayers/ol3/pull/4915) - Use {} instead of Object ([@fredj](https://github.com/fredj))
* [#4914](https://github.com/openlayers/ol3/pull/4914) - Export ol.proj.equivalent ([@sebasbaumh](https://github.com/sebasbaumh))
* [#4908](https://github.com/openlayers/ol3/pull/4908) - Remove use of goog.math.Rect ([@fredj](https://github.com/fredj))
* [#4900](https://github.com/openlayers/ol3/pull/4900) - Make ol.format.XML a @struct ([@fredj](https://github.com/fredj))
* [#4880](https://github.com/openlayers/ol3/pull/4880) - Update closure-util to version 1.11.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4905](https://github.com/openlayers/ol3/pull/4905) - Remove use of goog.style.setPosition ([@fredj](https://github.com/fredj))
* [#4879](https://github.com/openlayers/ol3/pull/4879) - Update metalsmith-layouts to version 1.6.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4901](https://github.com/openlayers/ol3/pull/4901) - Release v3.14.0 ([@openlayers](https://github.com/openlayers))
* [#4899](https://github.com/openlayers/ol3/pull/4899) - Use ol.format.GMLBase#srsName instead of undeclared srsName_ ([@fredj](https://github.com/fredj))

View File

@@ -1,3 +0,0 @@
{
"library_url": "https://github.com/google/closure-library/archive/5b25e65.zip"
}

View File

@@ -12,6 +12,7 @@
],
"externs": [
"externs/bingmaps.js",
"externs/cartodb.js",
"externs/bootstrap.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
@@ -24,18 +25,17 @@
"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"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"useOfGoogBase",
"unnecessaryCasts",
"useOfGoogBase",
"lintChecks",
"analyzerChecks",
"missingProvide",
"unknownDefines"
],

View File

@@ -13,6 +13,7 @@
"externs": [
"externs/bingmaps.js",
"externs/bootstrap.js",
"externs/cartodb.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/example.js",
@@ -25,18 +26,17 @@
"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"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"useOfGoogBase",
"unnecessaryCasts",
"lintChecks"
"useOfGoogBase",
"lintChecks",
"analyzerChecks"
],
"extra_annotation_name": [
"api", "observable"

View File

@@ -11,15 +11,26 @@
<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,Function.prototype.bind|gated"></script>
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,requestAnimationFrame,Element.prototype.classList"></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 Examples</a>
</div>
<!-- menu items that get hidden below 768px width -->
<nav class='collapse navbar-collapse navbar-responsive-collapse'>
<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>
</nav>
</div>
</header>

View File

@@ -4,6 +4,7 @@
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/cartodb.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/geojson.js",
@@ -14,18 +15,17 @@
"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"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"useOfGoogBase",
"unnecessaryCasts",
"lintChecks"
"useOfGoogBase",
"lintChecks",
"analyzerChecks"
],
"extra_annotation_name": [
"api", "observable"

View File

@@ -161,6 +161,22 @@ var swissCoord = ol.proj.transform([8.23, 46.86], 'EPSG:4326', 'EPSG:21781');
## Why is the order of a coordinate [lon,lat], and not [lat,lon]?
Because of two different and incompatible conventions. Latitude and longitude
are normally given in that order. Maps are 2D representations/projections
of the earth's surface, with coordinates expressed in the `x,y` grid of the
[Cartesian system](https://en.wikipedia.org/wiki/Cartesian_coordinate_system).
As they are by convention drawn with west on the left and north at the top,
this means that `x` represents longitude, and `y` latitude. As stated above,
OpenLayers is designed to handle all projections, but the default view is in
projected Cartesian coordinates. It would make no sense to have duplicate
functions to handle coordinates in both the Cartesian `x,y` and `lat,lon`
systems, so the degrees of latitude and longitude should be entered as though
they were Cartesian, in other words, they are `lon,lat`.
If you have difficulty remembering which way round it is, use the language code
for English, `en`, as a mnemonic: East before North.
#### A practical example
So you want to center your map on a certain place on the earth and obviously you
need to have its coordinates for this. Let's assume you want your map centered
on Schladming, a beautiful place in Austria. Head over to the wikipedia

View File

@@ -167,9 +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",
"ol.ENABLE_DOM=false",
"ol.ENABLE_WEBGL=false"
@@ -178,9 +175,6 @@ The minimum config file looks like this:
"node_modules/openlayers/externs/olx.js",
"node_modules/openlayers/externs/oli.js"
],
"jscomp_off": [
"unknownDefines"
],
"extra_annotation_name": [
"api", "observable"
],
@@ -223,9 +217,7 @@ 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",
"ol.ENABLE_DOM=false",
"ol.ENABLE_WEBGL=false"
@@ -235,41 +227,13 @@ Here is a version of `config.json` with more compilation checks enabled:
"node_modules/openlayers/externs/oli.js"
],
"jscomp_error": [
"accessControls",
"ambiguousFunctionDecl",
"checkEventfulObjectDisposal",
"checkRegExp",
"checkTypes",
"checkVars",
"const",
"constantProperty",
"deprecated",
"duplicateMessage",
"es3",
"es5Strict",
"externsValidation",
"fileoverviewTags",
"globalThis",
"internetExplorerChecks",
"invalidCasts",
"misplacedTypeAnnotation",
"missingGetCssName",
"missingProperties",
"missingProvide",
"missingRequire",
"missingReturn",
"newCheckTypes",
"nonStandardJsDocs",
"suspiciousCode",
"strictModuleDepCheck",
"typeInvalidation",
"undefinedNames",
"undefinedVars",
"uselessCode",
"visibility"
"*"
],
"jscomp_off": [
"unknownDefines"
"useOfGoogBase",
"lintChecks",
"analyzerChecks"
],
"extra_annotation_name": [
"api", "observable"

View File

@@ -13,7 +13,7 @@ This particular tutorial explains how to create custom builds of OpenLayers 3.
## Requirements
OpenLayers 3's build tools use Node and Java, so you need to have Node and Java installed on your machine. You can run `node --version` and `java -version` to test that Node and Java are installed, respectively.
OpenLayers 3's build tools use Node and Java, so you need to have Node and Java installed on your machine. You can run `node --version` and `java -version` to test that Node and Java are installed, respectively. See [developing guide](https://github.com/openlayers/ol3/blob/master/DEVELOPING.md) for minimum version numbers required.
## Download OpenLayers
@@ -60,18 +60,12 @@ 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"
],
"jscomp_off": [
"unknownDefines"
],
"extra_annotation_name": [
"api", "observable"
],
"compilation_level": "ADVANCED_OPTIMIZATIONS",
"compilation_level": "ADVANCED",
"manage_closure_dependencies": true
}
}
@@ -193,16 +187,19 @@ Now let's try a more complicated example: [`heatmaps-earthquakes`](http://openla
{
"exports": [
"ol.layer.Heatmap",
"ol.source.KML",
"ol.source.Vector",
"ol.format.KML",
"ol.layer.Heatmap#getSource",
"ol.source.KML#on",
"ol.source.Vector#on",
"ol.source.VectorEvent#feature",
"ol.Feature#get",
"ol.Feature#set",
"ol.layer.Tile",
"ol.source.Stamen",
"ol.Map",
"ol.View"
"ol.View",
"ol.layer.Heatmap#setRadius",
"ol.layer.Heatmap#setBlur"
],
"compile": {
"externs": [
@@ -214,10 +211,9 @@ Now let's try a more complicated example: [`heatmaps-earthquakes`](http://openla
"ol.ENABLE_WEBGL=false",
"ol.ENABLE_PROJ4JS=false",
"ol.ENABLE_IMAGE=false",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.DEBUG=false"
],
"compilation_level": "ADVANCED_OPTIMIZATIONS",
"compilation_level": "ADVANCED",
"manage_closure_dependencies": true
}
}
@@ -227,6 +223,10 @@ The exports are given here in the order in which they occur in the `heatmaps-ear
As this example uses a vector layer it is necessary to remove `"ol.ENABLE_VECTOR=false"` in the `define` section of the configuration.
## Maintaining the code
If you installed OpenLayers from the Node package, you can use `npm` to upgrade to the latest version. If you cloned the Github repo, simply pulling in the latest code may not be enough, as some of the packages used, for example, the compiler, may need upgrading too. Do this by using `npm install` rather than `npm update`.
## Conclusion
This tutorial should have given you the information you need to create custom builds, i.e. builds tailored to your application. See the [tasks readme](https://github.com/openlayers/ol3/tree/master/tasks/readme.md) for more information on the build scripts and the properties you can use in the build configuration file.

View File

@@ -24,7 +24,7 @@ Although Closure library functions are widely used within OL3, none of them are
Unlike in, say, Node, where a module's exports are fixed in the source, with Closure Compiler, exports can be defined at compile time. This makes it easy to create builds that are customized to the needs of a particular site or application: a __custom build__ only exports those properties and methods needed by the site or application. As the full build is large, and will probably become larger as new features are added to the API, it's recommended that sites create a custom build for production software.
## Renderers and Browser Support
The library currently includes three renderers: Canvas, DOM, and WebGL. All three support raster data from tile/image servers, but only the Canvas renderer currently supports vector data. This means that only those browsers that [support Canvas](http://caniuse.com/canvas) can handle vector data. In particular, this excludes Internet Explorer versions before 9, though there is some support for those in the DOM renderer. Clearly, the WebGL renderer can only be used on those devices and browsers supporting WebGL.
The library currently includes three renderers: Canvas, DOM, and WebGL. All three support both raster data from tile/image servers, and vector data; WebGL however only supports Point vectors and does not support labels. Clearly only those browsers that [support Canvas](http://caniuse.com/canvas) can use the Canvas renderer. Equally, the WebGL renderer can only be used on those devices and [browsers](http://caniuse.com/webgl) that support WebGL. Internet Explorer versions before 9 are not supported at all.
The library is intended for use on both desktop/laptop and mobile devices.

View File

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

26
examples/cartodb.html Normal file
View File

@@ -0,0 +1,26 @@
---
layout: example.html
title: CartoDB source example
shortdesc: Example of a cartodb map.
docs: >
A simple example with an anonymous cartodb map
tags: "simple, openstreetmap, attribution"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<div>
<form class="form-horizontal">
<label>
Show countries larger than
<select id="country-area" class="form-control">
<option value="0" default>0 ㎢</option>
<option value="5000">5000 ㎢</option>
<option value="10000">10000 ㎢</option>
<option value="50000">50000 ㎢</option>
<option value="100000">100000 ㎢</option>
</select>
</label>
</form>
</div>
</div>

48
examples/cartodb.js Normal file
View File

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

File diff suppressed because one or more lines are too long

View File

@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
<sld:NamedLayer>
<sld:Name>countries</sld:Name>
<sld:UserStyle>
<sld:Name>countries</sld:Name>
<sld:Title>A sample style for countries</sld:Title>
<sld:IsDefault>1</sld:IsDefault>
<sld:Abstract>A sample style for countries</sld:Abstract>
<sld:FeatureTypeStyle>
<sld:Name>name</sld:Name>
<sld:Rule>
<sld:Name>Sample</sld:Name>
<sld:Title>Sample</sld:Title>
<sld:PolygonSymbolizer>
<sld:Fill>
<sld:CssParameter name="fill">#ff0000</sld:CssParameter>
<sld:CssParameter name="fill-opacity">0.6</sld:CssParameter>
</sld:Fill>
<sld:Stroke>
<sld:CssParameter name="stroke">#00FF00</sld:CssParameter>
<sld:CssParameter name="stroke-opacity">0.5</sld:CssParameter>
<sld:CssParameter name="stroke-width">4</sld:CssParameter>
</sld:Stroke>
</sld:PolygonSymbolizer>
</sld:Rule>
<sld:Rule>
<sld:MaxScaleDenominator>20000000</sld:MaxScaleDenominator>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>name</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">10</sld:CssParameter>
<sld:CssParameter name="font-style">Normal</sld:CssParameter>
</sld:Font>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>

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

@@ -6,7 +6,7 @@ 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.
tags: "drag-and-drop-image-vector, gpx, geojson, igc, kml, topojson, vector, image"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

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

View File

@@ -25,11 +25,13 @@ var map = new ol.Map({
})
});
var imageStyle = new ol.style.Circle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'yellow'}),
stroke: new ol.style.Stroke({color: 'red', width: 1})
var imageStyle = new ol.style.Style({
image: new ol.style.Circle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'yellow'}),
stroke: new ol.style.Stroke({color: 'red', width: 1})
})
});
var headInnerImageStyle = new ol.style.Style({
@@ -40,10 +42,12 @@ var headInnerImageStyle = new ol.style.Style({
})
});
var headOuterImageStyle = new ol.style.Circle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'black'})
var headOuterImageStyle = new ol.style.Style({
image: new ol.style.Circle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'black'})
})
});
var n = 200;
@@ -63,16 +67,16 @@ map.on('postcompose', function(event) {
var y = (R + r) * Math.sin(t) + p * Math.sin((R + r) * t / r);
coordinates.push([x, y]);
}
vectorContext.setImageStyle(imageStyle);
vectorContext.drawMultiPointGeometry(
new ol.geom.MultiPoint(coordinates), null);
vectorContext.setStyle(imageStyle);
vectorContext.drawGeometry(new ol.geom.MultiPoint(coordinates));
var headPoint = new ol.geom.Point(coordinates[coordinates.length - 1]);
var headFeature = new ol.Feature(headPoint);
vectorContext.drawFeature(headFeature, headInnerImageStyle);
vectorContext.setImageStyle(headOuterImageStyle);
vectorContext.drawMultiPointGeometry(headPoint, null);
vectorContext.setStyle(headOuterImageStyle);
vectorContext.drawGeometry(headPoint);
vectorContext.setStyle(headInnerImageStyle);
vectorContext.drawGeometry(headPoint);
map.render();
});

View File

@@ -9,7 +9,6 @@
}
.tooltip.in {
opacity: 1;
filter: alpha(opacity=100);
}
.tooltip.top .tooltip-arrow {
border-top-color: white;

View File

@@ -25,13 +25,14 @@ var styleFunction = function(feature) {
if (!style) {
var canvas =
/** @type {HTMLCanvasElement} */ (document.createElement('canvas'));
var render = ol.render.toContext(
var vectorContext = 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(
vectorContext.setStyle(new ol.style.Style({
fill: new ol.style.Fill({color: 'rgba(255, 153, 0, 0.4)'}),
stroke: new ol.style.Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 1})
}));
vectorContext.drawGeometry(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({

View File

@@ -12,6 +12,7 @@ goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var map = new ol.Map({
@@ -67,17 +68,19 @@ function flash(feature) {
var radius = ol.easing.easeOut(elapsedRatio) * 25 + 5;
var opacity = ol.easing.easeOut(1 - elapsedRatio);
var flashStyle = new ol.style.Circle({
radius: radius,
snapToPixel: false,
stroke: new ol.style.Stroke({
color: 'rgba(255, 0, 0, ' + opacity + ')',
width: 1
var style = new ol.style.Style({
image: new ol.style.Circle({
radius: radius,
snapToPixel: false,
stroke: new ol.style.Stroke({
color: 'rgba(255, 0, 0, ' + opacity + ')',
width: 0.25 + opacity
})
})
});
vectorContext.setImageStyle(flashStyle);
vectorContext.drawPointGeometry(flashGeom, null);
vectorContext.setStyle(style);
vectorContext.drawGeometry(flashGeom);
if (elapsed > duration) {
ol.Observable.unByKey(listenerKey);
return;

View File

@@ -27,12 +27,11 @@ var map = new ol.Map({
})
});
var defaultStroke = new ol.style.Stroke({
color: '#EAE911',
width: 2
});
var defaultStyle = new ol.style.Style({
stroke: defaultStroke
var style = new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#EAE911',
width: 2
})
});
var flightsSource;
@@ -47,14 +46,13 @@ var pointsPerMs = 0.1;
var animateFlights = function(event) {
var vectorContext = event.vectorContext;
var frameState = event.frameState;
vectorContext.setFillStrokeStyle(null, defaultStroke);
vectorContext.setStyle(style);
var features = flightsSource.getFeatures();
for (var i = 0; i < features.length; i++) {
var feature = features[i];
if (!feature.get('finished')) {
// only draw the lines for which the animation has not
// finished yet
// only draw the lines for which the animation has not finished yet
var coords = feature.getGeometry().getCoordinates();
var elapsedTime = frameState.time - feature.get('start');
var elapsedPoints = elapsedTime * pointsPerMs;
@@ -67,19 +65,17 @@ var animateFlights = function(event) {
var currentLine = new ol.geom.LineString(coords.slice(0, maxIndex));
// directly draw the line with the vector context
vectorContext.drawLineStringGeometry(currentLine, feature);
vectorContext.drawGeometry(currentLine);
}
}
// tell OL3 to continue the postcompose animation
// tell OL3 to continue the animation
map.render();
};
flightsSource = new ol.source.Vector({
wrapX: false,
attributions: [new ol.Attribution({
html: 'Flight data by ' +
'<a href="http://openflights.org/data.html">OpenFlights</a>,'
})],
attributions: 'Flight data by ' +
'<a href="http://openflights.org/data.html">OpenFlights</a>,',
loader: function() {
var url = 'data/openflights/flights.json';
fetch(url).then(function(response) {
@@ -121,7 +117,7 @@ var flightsLayer = new ol.layer.Vector({
// if the animation is still active for a feature, do not
// render the feature with the layer style
if (feature.get('finished')) {
return defaultStyle;
return style;
} else {
return null;
}

View File

@@ -33,7 +33,7 @@ var map = new ol.Map({
});
function makeFractal(depth) {
var geometry = /** @type {ol.geom.LineString} */ (triangle.clone());
var geometry = triangle.clone();
var graph = coordsToGraph(geometry.getCoordinates());
for (var i = 0; i < depth; ++i) {
var node = graph;

View File

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

View File

@@ -0,0 +1,44 @@
.fullscreen:-moz-full-screen {
height: 100%;
}
.fullscreen:-webkit-full-screen {
height: 100%;
}
.fullscreen:-ms-fullscreen {
height: 100%;
}
.fullscreen:fullscreen {
height: 100%;
}
.fullscreen {
margin-bottom: 10px;
width: 100%;
height: 400px;
}
.ol-rotate {
top: 3em;
}
.map {
width: 80%;
height: 100%;
float: left;
}
.sidepanel {
background: #1F6B75;
width: 20%;
height: 100%;
float: left;
}
.sidepanel-title {
width: 100%;
font-size: 3em;
color: #ffffff;
display: block;
text-align: center;
}

View File

@@ -0,0 +1,16 @@
---
layout: example.html
title: Full Screen Control with extended source element
shortdesc: Example of a full screen control with a source option definition.
docs: >
<p>Click the control in the top right corner to go full screen. Click it again to exit full screen.</p>
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
tags: "full-screen, source, fullScreenSource, osm, osm-maps"
---
<div id="fullscreen" class="fullscreen">
<div id="map" class="map"></div>
<div class="sidepanel">
<span class="sidepanel-title">Side Panel</span>
</div>
</div>

View File

@@ -0,0 +1,28 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.FullScreen');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var view = new ol.View({
center: [-9101767, 2822912],
zoom: 14
});
var map = new ol.Map({
controls: ol.control.defaults().extend([
new ol.control.FullScreen({
source: 'fullscreen'
})
]),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
renderer: common.getRendererFromQueryString(),
target: 'map',
view: view
});

View File

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

View File

@@ -13,7 +13,6 @@ tags: "fullscreen, geolocation, orientation, mobile"
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="./resources/layout.css" type="text/css">
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Function.prototype.bind|gated"></script>
<title>Mobile Geolocation Tracking with Orientation</title>
<style type="text/css">
html, body, .map {

View File

@@ -0,0 +1,26 @@
---
layout: example.html
title: WMS GetFeatureInfo (Layers)
shortdesc: >
Shows how to fetch features per layer name in a single WMS GetFeatureInfo
request
docs: >
Demonstrates the use of the `layers` option in the
`ol.format.WMSGetFeatureInfo` format object, which allows features returned
by a single WMS GetFeatureInfo request that asks for more than one layer
to be read by layer name.
---
<table id="info">
<tr>
<td>All features:</td>
<td id="all"></td>
</tr>
<tr>
<td>Hotel features:</td>
<td id="hotel"></td>
</tr>
<tr>
<td>Restaurant features:</td>
<td id="restaurant"></td>
</tr>
</table>

View File

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

View File

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

View File

@@ -86,10 +86,7 @@ var map = new ol.Map({
new ol.layer.Tile({
source: new ol.source.OSM({
attributions: [
new ol.Attribution({
html: 'All maps &copy; ' +
'<a href="http://www.opencyclemap.org/">OpenCycleMap</a>'
}),
'All maps © <a href="http://www.opencyclemap.org/">OpenCycleMap</a>',
ol.source.OSM.ATTRIBUTION
],
url: 'http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png'
@@ -155,27 +152,26 @@ map.on('click', function(evt) {
displaySnap(evt.coordinate);
});
var imageStyle = new ol.style.Circle({
radius: 5,
fill: null,
stroke: new ol.style.Stroke({
color: 'rgba(255,0,0,0.9)',
width: 1
})
});
var strokeStyle = new ol.style.Stroke({
var stroke = new ol.style.Stroke({
color: 'rgba(255,0,0,0.9)',
width: 1
})
var style = new ol.style.Style({
stroke: stroke,
image: new ol.style.Circle({
radius: 5,
fill: null,
stroke: stroke
})
});
map.on('postcompose', function(evt) {
var vectorContext = evt.vectorContext;
vectorContext.setStyle(style);
if (point !== null) {
vectorContext.setImageStyle(imageStyle);
vectorContext.drawPointGeometry(point);
vectorContext.drawGeometry(point);
}
if (line !== null) {
vectorContext.setFillStrokeStyle(null, strokeStyle);
vectorContext.drawLineStringGeometry(line);
vectorContext.drawGeometry(line);
}
});
@@ -187,8 +183,7 @@ var featureOverlay = new ol.layer.Vector({
radius: 5,
fill: new ol.style.Fill({
color: 'rgba(255,0,0,0.9)'
}),
stroke: null
})
})
})
});

View File

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

View File

@@ -11,9 +11,6 @@
body {
padding-top: 70px;
}
.navbar-form {
margin-top: 12px;
}
input.search-query {
color: #333;
}
@@ -186,11 +183,22 @@
<header class="navbar navbar-fixed-top" role="navigation">
<div class="container">
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png">&nbsp;OpenLayers 3 Examples</a>
<form class="navbar-form navbar-left" role="search">
<input name="q" type="text" id="keywords" class="search-query" placeholder="Search" autofocus>
<span id="count"></span>
</form>
<div class="display-table pull-left">
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png">&nbsp;OpenLayers 3 Examples</a>
<form class="navbar-form" role="search">
<input name="q" type="text" id="keywords" class="search-query" placeholder="Search" autofocus>
<span id="count"></span>
</form>
</div>
<!-- menu items that get hidden below 768px width -->
<nav class='collapse navbar-collapse navbar-responsive-collapse'>
<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>
</nav>
</div>
</header>

View File

@@ -7,7 +7,6 @@ docs: >
with OpenLayers 3.
tags: "vector, jsts, buffer"
resources:
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/lib/0.17.0/javascript.util.min.js
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/lib/0.17.0/jsts.min.js
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/1.0.2/jsts.min.js
---
<div id="map" class="map"></div>

View File

@@ -18,7 +18,7 @@ fetch('data/geojson/roads-seoul.geojson').then(function(response) {
var format = new ol.format.GeoJSON();
var features = format.readFeatures(json, {featureProjection: 'EPSG:3857'});
var parser = new jsts.io.olParser();
var parser = new jsts.io.OL3Parser();
for (var i = 0; i < features.length; i++) {
var feature = features[i];

View File

@@ -9,7 +9,6 @@
}
.tooltip.in {
opacity: 1;
filter: alpha(opacity=100);
}
.tooltip.top .tooltip-arrow {
border-top-color: white;

View File

@@ -6,7 +6,7 @@ docs: >
This example uses the <code>ol.format.KML</code> to parse KML for rendering with a vector source.
tags: "KML"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>

View File

@@ -25,8 +25,10 @@ var map = new ol.Map({
osm.on('precompose', function(event) {
var ctx = event.context;
ctx.save();
ctx.translate(ctx.canvas.width / 2, ctx.canvas.height / 2);
ctx.scale(3, 3);
var pixelRatio = event.frameState.pixelRatio;
var size = map.getSize();
ctx.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
ctx.scale(3 * pixelRatio, 3 * pixelRatio);
ctx.translate(-75, -80);
ctx.beginPath();
ctx.moveTo(75, 40);
@@ -37,7 +39,9 @@ osm.on('precompose', function(event) {
ctx.bezierCurveTo(130, 62.5, 130, 25, 100, 25);
ctx.bezierCurveTo(85, 25, 75, 37, 75, 40);
ctx.clip();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.translate(75, 80);
ctx.scale(1 / 3 / pixelRatio, 1 / 3 / pixelRatio);
ctx.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
});
osm.on('postcompose', function(event) {

View File

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

View File

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

View File

@@ -3,8 +3,7 @@ layout: example.html
title: Localized OpenStreetMap
shortdesc: Example of a localized OpenStreetMap map with a custom tile server and a custom attribution.
docs: >
<p>The base layer is <a href="http://www.opencyclemap.org/">OpenCycleMap</a> with an overlay from <a href="http://www.openseamap.org/">OpenSeaMap</a>. The OpenSeaMap tile server
does not support <a href="http://enable-cors.org/">CORS</a> headers.</p>
tags: "cors, localized-openstreetmap, openseamap, openstreetmap"
<p>The base layer is <a href="http://www.opencyclemap.org/">OpenCycleMap</a> with an overlay from <a href="http://www.openseamap.org/">OpenSeaMap</a>.
tags: "localized-openstreetmap, openseamap, openstreetmap"
---
<div id="map" class="map"></div>

View File

@@ -9,10 +9,7 @@ goog.require('ol.source.OSM');
var openCycleMapLayer = new ol.layer.Tile({
source: new ol.source.OSM({
attributions: [
new ol.Attribution({
html: 'All maps &copy; ' +
'<a href="http://www.opencyclemap.org/">OpenCycleMap</a>'
}),
'All maps © <a href="http://www.opencyclemap.org/">OpenCycleMap</a>',
ol.source.OSM.ATTRIBUTION
],
url: 'http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png'
@@ -22,13 +19,10 @@ var openCycleMapLayer = new ol.layer.Tile({
var openSeaMapLayer = new ol.layer.Tile({
source: new ol.source.OSM({
attributions: [
new ol.Attribution({
html: 'All maps &copy; ' +
'<a href="http://www.openseamap.org/">OpenSeaMap</a>'
}),
'All maps © <a href="http://www.openseamap.org/">OpenSeaMap</a>',
ol.source.OSM.ATTRIBUTION
],
crossOrigin: null,
opaque: false,
url: 'http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png'
})
});

View File

@@ -45,11 +45,9 @@ var map = new ol.Map({
new ol.layer.VectorTile({
preload: Infinity,
source: new ol.source.VectorTile({
attributions: [new ol.Attribution({
html: '© <a href="https://www.mapbox.com/map-feedback/">Mapbox</a> ' +
'© <a href="http://www.openstreetmap.org/copyright">' +
'OpenStreetMap contributors</a>'
})],
attributions: '© <a href="https://www.mapbox.com/map-feedback/">Mapbox</a> ' +
'© <a href="http://www.openstreetmap.org/copyright">' +
'OpenStreetMap contributors</a>',
format: new ol.format.MVT(),
tileGrid: new ol.tilegrid.TileGrid({
extent: ol.proj.get('EPSG:3857').getExtent(),

View File

@@ -17,11 +17,9 @@ var map = new ol.Map({
layers: [
new ol.layer.VectorTile({
source: new ol.source.VectorTile({
attributions: [new ol.Attribution({
html: '© <a href="https://www.mapbox.com/map-feedback/">Mapbox</a> ' +
'© <a href="http://www.openstreetmap.org/copyright">' +
'OpenStreetMap contributors</a>'
})],
attributions: '© <a href="https://www.mapbox.com/map-feedback/">Mapbox</a> ' +
'© <a href="http://www.openstreetmap.org/copyright">' +
'OpenStreetMap contributors</a>',
format: new ol.format.MVT(),
tileGrid: ol.tilegrid.createXYZ({maxZoom: 22}),
tilePixelRatio: 16,

View File

@@ -1,19 +1,19 @@
---
layout: example.html
title: Measure
shortdesc: Example of using the ol.interaction.Draw interaction for creating simple measuring application.
shortdesc: Example of using the ol.interaction.Draw interaction to create a simple measuring application.
docs: >
<p><i>NOTE: If use geodesic measures is not checked, measure is done in simple way on projected plane. Earth curvature is not taken into account</i></p>
<p><i>NOTE: By default, length and area are calculated using the projected coordinates. This is not accurate for projections like Mercator where the projected meters do not correspond to meters on the ground. To get a standarized measurement across all projections, use the geodesic measures.</i></p>
tags: "draw, edit, measure, vector"
resources:
- https://code.jquery.com/jquery-1.11.2.min.js
---
<div id="map" class="map"></div>
<form class="form-inline">
<label>Geometry type &nbsp;</label>
<label>Measurement type &nbsp;</label>
<select id="type">
<option value="length">Length</option>
<option value="area">Area</option>
<option value="length">Length (LineString)</option>
<option value="area">Area (Polygon)</option>
</select>
<label class="checkbox">
<input type="checkbox" id="geodesic">

View File

@@ -174,7 +174,7 @@ var formatLength = function(line) {
/**
* Format length output.
* Format area output.
* @param {ol.geom.Polygon} polygon The polygon.
* @return {string} Formatted area.
*/
@@ -243,10 +243,10 @@ function addInteraction() {
var geom = evt.target;
var output;
if (geom instanceof ol.geom.Polygon) {
output = formatArea(/** @type {ol.geom.Polygon} */ (geom));
output = formatArea(geom);
tooltipCoord = geom.getInteriorPoint().getCoordinates();
} else if (geom instanceof ol.geom.LineString) {
output = formatLength(/** @type {ol.geom.LineString} */ (geom));
output = formatLength(geom);
tooltipCoord = geom.getLastCoordinate();
}
measureTooltipElement.innerHTML = output;

View File

@@ -4,7 +4,7 @@ title: Full-Screen Mobile
shortdesc: Example of a full screen map.
tags: "fullscreen, geolocation, mobile"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<!doctype html>
<html lang="en">
@@ -13,7 +13,6 @@ cloak:
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>Mobile full screen example</title>
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Function.prototype.bind|gated"></script>
<style type="text/css">
html, body, .map {
margin: 0;

View File

@@ -6,7 +6,7 @@ docs: >
<p>The map on the top preloads low resolution tiles. The map on the bottom does not use any preloading. Try zooming out and panning to see the difference.</p>
tags: "preload, bing"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map1" class="map"></div>
<div id="map2" class="map"></div>

View File

@@ -22,7 +22,7 @@ tags: "raster, pixel"
resources:
- http://d3js.org/d3.v3.min.js
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div class="rel">
<div id="map" class="map"></div>

View File

@@ -25,7 +25,7 @@ docs: >
</p>
tags: "raster, region growing"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map" style="cursor: pointer"></div>
<table class="controls">

View File

@@ -59,7 +59,7 @@ function growRegion(inputs, data) {
}
edge = newedge;
}
return new ImageData(outputData, width, height);
return {data: outputData, width: width, height: height};
}
function next4Edges(edge) {

View File

@@ -5,21 +5,25 @@ goog.require('ol.render');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var canvas = document.getElementById('canvas');
var render = ol.render.toContext(canvas.getContext('2d'), {size: [100, 100]});
var vectorContext = ol.render.toContext(canvas.getContext('2d'), {size: [100, 100]});
var fill = new ol.style.Fill({color: 'blue'});
var stroke = new ol.style.Stroke({color: 'black'});
render.setFillStrokeStyle(fill, stroke);
render.setImageStyle(new ol.style.Circle({
radius: 10,
var style = new ol.style.Style({
fill: fill,
stroke: stroke
}));
stroke: stroke,
image: new ol.style.Circle({
radius: 10,
fill: fill,
stroke: stroke
})
})
vectorContext.setStyle(style);
render.drawLineStringGeometry(new ol.geom.LineString([[10, 10], [90, 90]]));
render.drawPolygonGeometry(
new ol.geom.Polygon([[[2, 2], [98, 2], [2, 98], [2, 2]]]));
render.drawPointGeometry(new ol.geom.Point([88, 88]));
vectorContext.drawGeometry(new ol.geom.LineString([[10, 10], [90, 90]]));
vectorContext.drawGeometry(new ol.geom.Polygon([[[2, 2], [98, 2], [2, 98], [2, 2]]]));
vectorContext.drawGeometry(new ol.geom.Point([88, 88]));

View File

@@ -53,7 +53,7 @@ var proj54009 = ol.proj.get('ESRI:54009');
proj54009.setExtent([-18e6, -9e6, 18e6, 9e6]);
var layers = [];
var layers = {};
layers['bng'] = new ol.layer.Tile({
source: new ol.source.XYZ({
@@ -81,12 +81,8 @@ layers['wms4326'] = new ol.layer.Tile({
layers['wms21781'] = new ol.layer.Tile({
source: new ol.source.TileWMS({
attributions: [new ol.Attribution({
html: '&copy; ' +
'<a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">' +
'Pixelmap 1:1000000 / geo.admin.ch</a>'
})],
attributions: '© <a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">Pixelmap 1:1000000 / geo.admin.ch</a>',
crossOrigin: 'anonymous',
params: {
'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale',
@@ -120,10 +116,8 @@ layers['grandcanyon'] = new ol.layer.Tile({
crossOrigin: '',
tilePixelRatio: 2,
maxZoom: 15,
attributions: [new ol.Attribution({
html: 'Tiles &copy; USGS, rendered with ' +
'<a href="http://www.maptiler.com/">MapTiler</a>'
})]
attributions: 'Tiles © USGS, rendered with ' +
'<a href="http://www.maptiler.com/">MapTiler</a>'
})
});

View File

@@ -22,7 +22,7 @@
return;
}
var container = document.getElementById('navbar-inner-container');
var container = document.getElementById('navbar-logo-container');
if (!container) {
return;
}
@@ -74,7 +74,7 @@
select.className = 'input-medium';
form.className = 'navbar-form pull-right';
form.className = 'navbar-form version-form';
form.appendChild(select);
container.appendChild(form);

View File

@@ -26,6 +26,22 @@ body {
margin-right: 5px;
display: inline-block;
}
.nav>li>a:hover, .nav>li>a:focus, .nav>li>a.active {
background-color: #268591;
}
.navbar-nav>li>a {
color: white;
}
.display-table {
display: table;
}
.version-form, .navbar-form {
display: table-cell;
vertical-align: middle;
}
.version-form {
color: #333;
}
#title {
margin-top: 0;

View File

@@ -71,7 +71,7 @@ var changeInteraction = function() {
if (select !== null) {
map.addInteraction(select);
select.on('select', function(e) {
document.getElementById('status').innerText = '&nbsp;' +
document.getElementById('status').innerHTML = '&nbsp;' +
e.target.getFeatures().getLength() +
' selected features (last operation selected ' + e.selected.length +
' and deselected ' + e.deselected.length + ' features)';

View File

@@ -99,7 +99,7 @@ function shade(inputs, data) {
}
}
return new ImageData(shadeData, width, height);
return {data: shadeData, width: width, height: height};
}
var elevation = new ol.source.XYZ({

View File

@@ -21,11 +21,7 @@ var map = new ol.Map({
layers: [
new ol.layer.Image({
source: new ol.source.ImageStatic({
attributions: [
new ol.Attribution({
html: '&copy; <a href="http://xkcd.com/license.html">xkcd</a>'
})
],
attributions: '© <a href="http://xkcd.com/license.html">xkcd</a>',
url: 'http://imgs.xkcd.com/comics/online_communities.png',
projection: projection,
imageExtent: extent

View File

@@ -7,60 +7,3 @@ docs: >
tags: "vector"
---
<div id="map" class="map"></div>
<p>Performance results:</p>
<table border="1">
<thead>
<tr>
<th>Device/Browser</th>
<th>200 lines</th>
<th>500 lines</th>
<th>1000 lines</th>
<th>2000 lines</th>
<th>5000 lines</th>
<th>10000 lines</th>
<th>20000 lines</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mac Book Air / Chrome 33 canary</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
</tr>
<tr>
<td>Mac Book Air / FireFox 25</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
<td>22 fps</td>
<td>6 fps</td>
</tr>
<tr>
<td>Mac Book Air / Safari 7</td>
<td>60 fps</td>
<td>60 fps</td>
<td>60 fps</td>
<td>40 fps</td>
<td>10 fps</td>
<td>N/A</td>
<td>N/A</td>
</tr>
<tr>
<td>iPhone 4S / iOS 7 / Safari</td>
<td>60 fps</td>
<td>33 fps</td>
<td>15 fps</td>
<td>5 fps</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
</tr>
</tbody>
</table>

View File

@@ -38,7 +38,8 @@ for (i = 0; i < count; ++i) {
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
features: features
features: features,
wrapX: false
}),
style: new ol.style.Style({
stroke: new ol.style.Stroke({

View File

@@ -41,7 +41,8 @@ var styles = {
};
var vectorSource = new ol.source.Vector({
features: features
features: features,
wrapX: false
});
var vector = new ol.layer.Vector({
source: vectorSource,
@@ -95,27 +96,26 @@ map.on('click', function(evt) {
displaySnap(evt.coordinate);
});
var imageStyle = new ol.style.Circle({
radius: 10,
fill: null,
stroke: new ol.style.Stroke({
color: 'rgba(255,255,0,0.9)',
width: 3
})
});
var strokeStyle = new ol.style.Stroke({
var stroke = new ol.style.Stroke({
color: 'rgba(255,255,0,0.9)',
width: 3
});
var style = new ol.style.Style({
stroke: stroke,
image: new ol.style.Circle({
radius: 10,
stroke: stroke
})
});
map.on('postcompose', function(evt) {
var vectorContext = evt.vectorContext;
vectorContext.setStyle(style);
if (point !== null) {
vectorContext.setImageStyle(imageStyle);
vectorContext.drawPointGeometry(point);
vectorContext.drawGeometry(point);
}
if (line !== null) {
vectorContext.setFillStrokeStyle(null, strokeStyle);
vectorContext.drawLineStringGeometry(line);
vectorContext.drawGeometry(line);
}
});

View File

@@ -53,14 +53,10 @@ var vector = new ol.layer.Vector({
source: vectorSource
});
var attribution = new ol.Attribution({
html: 'Tiles &copy; <a href="http://services.arcgisonline.com/ArcGIS/' +
'rest/services/World_Topo_Map/MapServer">ArcGIS</a>'
});
var raster = new ol.layer.Tile({
source: new ol.source.XYZ({
attributions: [attribution],
attributions: 'Tiles © <a href="http://services.arcgisonline.com/ArcGIS/' +
'rest/services/World_Topo_Map/MapServer">ArcGIS</a>',
url: 'http://server.arcgisonline.com/ArcGIS/rest/services/' +
'World_Topo_Map/MapServer/tile/{z}/{y}/{x}'
})

View File

@@ -95,15 +95,10 @@ var vector = new ol.layer.Vector({
}
});
var attribution = new ol.Attribution({
html: 'Tiles &copy; <a href="http://services.arcgisonline.com/ArcGIS/' +
'rest/services/World_Topo_Map/MapServer">ArcGIS</a>'
});
var raster = new ol.layer.Tile({
source: new ol.source.XYZ({
attributions: [attribution],
attributions: 'Tiles © <a href="http://services.arcgisonline.com/ArcGIS/' +
'rest/services/World_Topo_Map/MapServer">ArcGIS</a>',
url: 'http://server.arcgisonline.com/ArcGIS/rest/services/' +
'World_Topo_Map/MapServer/tile/{z}/{y}/{x}'
})

View File

@@ -6,6 +6,6 @@ docs: >
OSM XML vector data is loaded dynamically from a server using a tiling strategy.
tags: "vector, osm, xml, loading, server"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>

View File

@@ -6,6 +6,6 @@ docs: >
This example loads new features from GeoServer WFS when the view extent changes.
tags: "vector, WFS, bbox, loading, server"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>

View File

@@ -48,12 +48,8 @@ var layers = [
source: new ol.source.TileWMS({
url: 'http://wms.geo.admin.ch/',
crossOrigin: 'anonymous',
attributions: [new ol.Attribution({
html: '&copy; ' +
'<a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">' +
'Pixelmap 1:1000000 / geo.admin.ch</a>'
})],
attributions: '© <a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">Pixelmap 1:1000000 / geo.admin.ch</a>',
params: {
'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale',
'FORMAT': 'image/jpeg'
@@ -66,12 +62,8 @@ var layers = [
source: new ol.source.TileWMS({
url: 'http://wms.geo.admin.ch/',
crossOrigin: 'anonymous',
attributions: [new ol.Attribution({
html: '&copy; ' +
'<a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">' +
'National parks / geo.admin.ch</a>'
})],
attributions: '© <a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">National parks / geo.admin.ch</a>',
params: {'LAYERS': 'ch.bafu.schutzgebiete-paerke_nationaler_bedeutung'},
serverType: 'mapserver'
})

View File

@@ -36,12 +36,8 @@ var layers = [
source: new ol.source.ImageWMS({
url: 'http://wms.geo.admin.ch/',
crossOrigin: 'anonymous',
attributions: [new ol.Attribution({
html: '&copy; ' +
'<a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">' +
'Pixelmap 1:1000000 / geo.admin.ch</a>'
})],
attributions: '© <a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">Pixelmap 1:1000000 / geo.admin.ch</a>',
params: {
'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale',
'FORMAT': 'image/jpeg'
@@ -54,12 +50,8 @@ var layers = [
source: new ol.source.ImageWMS({
url: 'http://wms.geo.admin.ch/',
crossOrigin: 'anonymous',
attributions: [new ol.Attribution({
html: '&copy; ' +
'<a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">' +
'National parks / geo.admin.ch</a>'
})],
attributions: '© <a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">National parks / geo.admin.ch</a>',
params: {'LAYERS': 'ch.bafu.schutzgebiete-paerke_nationaler_bedeutung'},
serverType: /** @type {ol.source.wms.ServerType} */ ('mapserver')
})

View File

@@ -11,12 +11,8 @@ goog.require('ol.source.TileWMS');
var layers = [
new ol.layer.Tile({
source: new ol.source.TileWMS({
attributions: [new ol.Attribution({
html: '&copy; ' +
'<a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">' +
'Pixelmap 1:1000000 / geo.admin.ch</a>'
})],
attributions: '© <a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">Pixelmap 1:1000000 / geo.admin.ch</a>',
crossOrigin: 'anonymous',
params: {
'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale',
@@ -27,12 +23,8 @@ var layers = [
}),
new ol.layer.Image({
source: new ol.source.ImageWMS({
attributions: [new ol.Attribution({
html: '&copy; ' +
'<a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">' +
'National parks / geo.admin.ch</a>'
})],
attributions: '© <a href="http://www.geo.admin.ch/internet/geoportal/' +
'en/home.html">National parks / geo.admin.ch</a>',
crossOrigin: 'anonymous',
params: {'LAYERS': 'ch.bafu.schutzgebiete-paerke_nationaler_bedeutung'},
serverType: 'mapserver',

View File

@@ -33,13 +33,9 @@ var wmtsSource = new ol.source.WMTS({
format: 'image/png',
matrixSet: 'EPSG:3857',
attributions: [
new ol.Attribution({
html: '<a href="http://scalgo.com">SCALGO</a>'
}),
new ol.Attribution({
html: '<a href="http://www.cgiar-csi.org/data/' +
'srtm-90m-digital-elevation-database-v4-1">CGIAR-CSI SRTM</a>'
})
'<a href="http://scalgo.com">SCALGO</a>',
'<a href="http://www.cgiar-csi.org/data/' +
'srtm-90m-digital-elevation-database-v4-1">CGIAR-CSI SRTM</a>'
],
tileGrid: tileGrid,
style: 'default',

View File

@@ -21,12 +21,6 @@ for (var z = 0; z < 14; ++z) {
matrixIds[z] = z;
}
var attribution = new ol.Attribution({
html: 'Tiles &copy; <a href="http://services.arcgisonline.com/arcgis/rest/' +
'services/Demographics/USA_Population_Density/MapServer/">ArcGIS</a>'
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
@@ -36,7 +30,8 @@ var map = new ol.Map({
new ol.layer.Tile({
opacity: 0.7,
source: new ol.source.WMTS({
attributions: [attribution],
attributions: 'Tiles © <a href="http://services.arcgisonline.com/arcgis/rest/' +
'services/Demographics/USA_Population_Density/MapServer/">ArcGIS</a>',
url: 'http://services.arcgisonline.com/arcgis/rest/' +
'services/Demographics/USA_Population_Density/MapServer/WMTS/',
layer: '0',

View File

@@ -6,7 +6,7 @@ goog.require('ol.proj');
goog.require('ol.source.XYZ');
var attribution = new ol.Attribution({
html: 'Copyright:&copy; 2013 ESRI, i-cubed, GeoEye'
html: 'Copyright:© 2013 ESRI, i-cubed, GeoEye'
});
var projection = ol.proj.get('EPSG:4326');

View File

@@ -7,7 +7,7 @@ goog.require('ol.source.XYZ');
var attribution = new ol.Attribution({
html: 'Tiles &copy; <a href="http://services.arcgisonline.com/ArcGIS/' +
html: 'Tiles © <a href="http://services.arcgisonline.com/ArcGIS/' +
'rest/services/World_Topo_Map/MapServer">ArcGIS</a>'
});

View File

@@ -6,12 +6,6 @@ goog.require('ol.proj');
goog.require('ol.source.OSM');
goog.require('ol.source.XYZ');
var attribution = new ol.Attribution({
html: 'Tiles &copy; USGS, rendered with ' +
'<a href="http://www.maptiler.com/">MapTiler</a>'
});
var mapMinZoom = 1;
var mapMaxZoom = 15;
var mapExtent = [-112.261791, 35.983744, -112.113981, 36.132062];
@@ -25,7 +19,8 @@ var map = new ol.Map({
new ol.layer.Tile({
extent: ol.proj.transformExtent(mapExtent, 'EPSG:4326', 'EPSG:3857'),
source: new ol.source.XYZ({
attributions: [attribution],
attributions: 'Tiles © USGS, rendered with ' +
'<a href="http://www.maptiler.com/">MapTiler</a>',
url: 'http://tileserver.maptiler.com/grandcanyon@2x/{z}/{x}/{y}.png',
tilePixelRatio: 2, // THIS IS IMPORTANT
minZoom: mapMinZoom,

View File

@@ -6,6 +6,6 @@ docs: >
This map has a view that is constrained between zoom levels 9 and 13. This is done using the `minZoom` and `maxZoom` view options.
tags: "bing, zoom, minZoom, maxZoom"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>

34
externs/cartodb.js Normal file
View File

@@ -0,0 +1,34 @@
/**
* @externs
*/
/**
* @constructor
*/
var CartoDBLayerInfo = function() {};
/**
* @type {string}
*/
CartoDBLayerInfo.prototype.layergroupid;
/**
* @type {string}
*/
CartoDBLayerInfo.prototype.updated_at;
/**
* @type {Object}
*/
CartoDBLayerInfo.prototype.metadata;
/**
* @type {{http: string, https: string}}
*/
CartoDBLayerInfo.prototype.cdn_url;

View File

@@ -9,6 +9,33 @@
var oli;
/**
* @interface
*/
oli.events.Event = function() {};
/**
* @type {Object}
*/
oli.events.Event.prototype.target;
/**
* @type {string}
*/
oli.events.Event.prototype.type;
/**
*/
oli.events.Event.prototype.preventDefault = function() {};
/**
*/
oli.events.Event.prototype.stopPropagation = function() {};
/**
* @interface
@@ -22,7 +49,6 @@ oli.CollectionEvent = function() {};
oli.CollectionEvent.prototype.element;
/**
* @interface
*/
@@ -41,7 +67,6 @@ oli.DragBoxEvent.prototype.coordinate;
oli.DragBoxEvent.prototype.mapBrowserEvent;
/**
* @interface
*/
@@ -54,7 +79,6 @@ oli.DrawEvent = function() {};
oli.DrawEvent.prototype.feature;
/**
* @interface
*/
@@ -73,7 +97,6 @@ oli.ModifyEvent.prototype.features;
oli.ModifyEvent.prototype.mapBrowserPointerEvent;
/**
* @interface
*/
@@ -92,7 +115,6 @@ oli.ObjectEvent.prototype.key;
oli.ObjectEvent.prototype.oldValue;
/**
* @interface
*/
@@ -123,7 +145,6 @@ oli.MapBrowserEvent.prototype.pixel;
oli.MapBrowserEvent.prototype.dragging;
/**
* @interface
*/
@@ -166,7 +187,6 @@ oli.SelectEvent.prototype.selected;
oli.SelectEvent.prototype.mapBrowserEvent;
/**
* @type {Object}
*/
@@ -186,7 +206,6 @@ oli.control.Control = function() {};
oli.control.Control.prototype.setMap = function(map) {};
/**
* @type {Object}
*/
@@ -217,7 +236,6 @@ oli.interaction.DragAndDropEvent.prototype.projection;
oli.interaction.DragAndDropEvent.prototype.file;
/**
* @interface
*/
@@ -242,7 +260,6 @@ oli.interaction.TranslateEvent.prototype.coordinate;
oli.render;
/**
* @interface
*/

File diff suppressed because it is too large Load Diff

View File

@@ -28,7 +28,7 @@ In the source file (`src/ol/MapBrowserEvent.js`), the class needs to implement t
* @constructor
* @implements {oli.MapBrowserEvent}
*/
ol.MapBrowserEvent = function(type, map, browserEvent, opt_frameState) {
ol.MapBrowserEvent = function(type, map, originalEvent, opt_frameState) {
// ...

View File

@@ -1,6 +1,6 @@
{
"name": "openlayers",
"version": "3.13.1",
"version": "3.15.0",
"description": "Build tools and sources for developing OpenLayers based mapping applications",
"keywords": [
"map",
@@ -32,48 +32,47 @@
"dependencies": {
"async": "1.5.2",
"browserify": "13.0.0",
"closure-util": "1.10.0",
"closure-util": "1.13.0",
"derequire": "2.0.3",
"fs-extra": "0.26.4",
"fs-extra": "0.26.6",
"glob": "6.0.4",
"graceful-fs": "4.1.2",
"handlebars": "4.0.5",
"jsdoc": "3.4.0",
"marked": "0.3.5",
"metalsmith": "2.1.0",
"metalsmith-layouts": "1.4.2",
"metalsmith-layouts": "1.6.4",
"nomnom": "1.8.1",
"pbf": "1.3.5",
"pixelworks": "1.0.0",
"pixelworks": "1.1.0",
"rbush": "1.4.2",
"temp": "0.8.3",
"vector-tile": "1.2.0",
"walk": "2.3.9"
},
"devDependencies": {
"clean-css": "3.4.9",
"coveralls": "2.11.6",
"clean-css": "3.4.11",
"coveralls": "2.11.9",
"debounce": "^1.0.0",
"eslint": "v2.0.0-beta.1",
"eslint-config-openlayers": "^3.0.0",
"eslint": "2.6.0",
"eslint-config-openlayers": "4.1.0",
"expect.js": "0.3.1",
"gaze": "^0.5.1",
"gaze": "^1.0.0",
"istanbul": "0.4.2",
"jquery": "2.2.0",
"mocha": "2.3.4",
"jquery": "2.2.2",
"mocha": "2.4.5",
"mocha-phantomjs-core": "^1.3.0",
"mustache": "2.2.1",
"phantomjs": "1.9.19",
"proj4": "2.3.12",
"resemblejs": "2.1.0",
"sinon": "1.17.2",
"slimerjs-edge": "0.10.0-pre-3",
"wrench": "1.5.8"
"phantomjs-prebuilt": "2.1.7",
"proj4": "2.3.14",
"resemblejs": "2.2.0",
"sinon": "1.17.3",
"slimerjs": "0.906.1"
},
"eslintConfig": {
"extends": "openlayers",
"globals": {
"ArrayBuffer": false,
"Float32Array": false,
"Uint16Array": false,
"Uint32Array": false,
"Uint8Array": false,

View File

@@ -24,6 +24,7 @@ ol.animation.bounce = function(options) {
/**
* @param {ol.Map} map Map.
* @param {?olx.FrameState} frameState Frame state.
* @return {boolean} Run this function in the next frame.
*/
function(map, frameState) {
if (frameState.time < start) {
@@ -62,6 +63,7 @@ ol.animation.pan = function(options) {
/**
* @param {ol.Map} map Map.
* @param {?olx.FrameState} frameState Frame state.
* @return {boolean} Run this function in the next frame.
*/
function(map, frameState) {
if (frameState.time < start) {
@@ -103,6 +105,7 @@ ol.animation.rotate = function(options) {
/**
* @param {ol.Map} map Map.
* @param {?olx.FrameState} frameState Frame state.
* @return {boolean} Run this function in the next frame.
*/
function(map, frameState) {
if (frameState.time < start) {
@@ -146,6 +149,7 @@ ol.animation.zoom = function(options) {
/**
* @param {ol.Map} map Map.
* @param {?olx.FrameState} frameState Frame state.
* @return {boolean} Run this function in the next frame.
*/
function(map, frameState) {
if (frameState.time < start) {

View File

@@ -1,16 +1,50 @@
goog.provide('ol.array');
goog.require('goog.array');
goog.require('goog.asserts');
/**
* Performs a binary search on the provided sorted list and returns the index of the item if found. If it can't be found it'll return -1.
* https://github.com/darkskyapp/binary-search
*
* @param {Array.<*>} haystack Items to search through.
* @param {*} needle The item to look for.
* @param {Function=} opt_comparator Comparator function.
* @return {number} The index of the item if found, -1 if not.
*/
ol.array.binarySearch = function(haystack, needle, opt_comparator) {
var mid, cmp;
var comparator = opt_comparator || ol.array.numberSafeCompareFunction;
var low = 0;
var high = haystack.length;
var found = false;
while (low < high) {
/* Note that "(low + high) >>> 1" may overflow, and results in a typecast
* to double (which gives the wrong results). */
mid = low + (high - low >> 1);
cmp = +comparator(haystack[mid], needle);
if (cmp < 0.0) { /* Too low. */
low = mid + 1;
} else { /* Key found or too high */
high = mid;
found = !cmp;
}
}
/* Key not found. */
return found ? low : ~low;
}
/**
* @param {Array.<number>} arr Array.
* @param {number} target Target.
* @return {number} Index.
*/
ol.array.binaryFindNearest = function(arr, target) {
var index = goog.array.binarySearch(arr, target,
var index = ol.array.binarySearch(arr, target,
/**
* @param {number} a A.
* @param {number} b B.
@@ -127,3 +161,143 @@ ol.array.reverseSubArray = function(arr, begin, end) {
--end;
}
};
/**
* @param {Array.<*>} arr Array.
* @return {!Array.<?>} Flattened Array.
*/
ol.array.flatten = function(arr) {
var data = arr.reduce(function(flattened, value) {
if (Array.isArray(value)) {
return flattened.concat(ol.array.flatten(value));
} else {
return flattened.concat(value);
}
}, []);
return data;
};
/**
* @param {Array.<VALUE>} arr The array to modify.
* @param {Array.<VALUE>|VALUE} data The elements or arrays of elements
* to add to arr.
* @template VALUE
*/
ol.array.extend = function(arr, data) {
var i;
var extension = goog.isArrayLike(data) ? data : [data];
var length = extension.length
for (i = 0; i < length; i++) {
arr[arr.length] = extension[i];
}
}
/**
* @param {Array.<VALUE>} arr The array to modify.
* @param {VALUE} obj The element to remove.
* @template VALUE
* @return {boolean} If the element was removed.
*/
ol.array.remove = function(arr, obj) {
var i = arr.indexOf(obj);
var found = i > -1;
if (found) {
arr.splice(i, 1);
}
return found;
}
/**
* @param {Array.<VALUE>} arr The array to search in.
* @param {function(VALUE, number, ?) : boolean} func The function to compare.
* @template VALUE
* @return {VALUE} The element found.
*/
ol.array.find = function(arr, func) {
var length = arr.length >>> 0;
var value;
for (var i = 0; i < length; i++) {
value = arr[i];
if (func(value, i, arr)) {
return value;
}
}
return null;
}
/**
* @param {Array|Uint8ClampedArray} arr1 The first array to compare.
* @param {Array|Uint8ClampedArray} arr2 The second array to compare.
* @return {boolean} Whether the two arrays are equal.
*/
ol.array.equals = function(arr1, arr2) {
var len1 = arr1.length;
if (len1 !== arr2.length) {
return false;
}
for (var i = 0; i < len1; i++) {
if (arr1[i] !== arr2[i]) {
return false;
}
}
return true;
}
/**
* @param {Array.<*>} arr The array to sort (modifies original).
* @param {Function} compareFnc Comparison function.
*/
ol.array.stableSort = function(arr, compareFnc) {
var length = arr.length;
var tmp = Array(arr.length);
var i;
for (i = 0; i < length; i++) {
tmp[i] = {index: i, value: arr[i]};
}
tmp.sort(function(a, b) {
return compareFnc(a.value, b.value) || a.index - b.index;
});
for (i = 0; i < arr.length; i++) {
arr[i] = tmp[i].value;
}
}
/**
* @param {Array.<*>} arr The array to search in.
* @param {Function} func Comparison function.
* @return {number} Return index.
*/
ol.array.findIndex = function(arr, func) {
var index;
var found = !arr.every(function(el, idx) {
index = idx;
return !func(el, idx, arr);
});
return found ? index : -1;
}
/**
* @param {Array.<*>} arr The array to test.
* @param {Function=} opt_func Comparison function.
* @param {boolean=} opt_strict Strictly sorted (default false).
* @return {boolean} Return index.
*/
ol.array.isSorted = function(arr, opt_func, opt_strict) {
var compare = opt_func || ol.array.numberSafeCompareFunction;
return arr.every(function(currentVal, index) {
if (index === 0) {
return true;
}
var res = compare(arr[index - 1], currentVal);
return !(res > 0 || opt_strict && res === 0);
});
}

View File

@@ -1,7 +1,7 @@
goog.provide('ol.Attribution');
goog.require('goog.math');
goog.require('ol.TileRange');
goog.require('ol.math');
/**
@@ -80,8 +80,8 @@ ol.Attribution.prototype.intersectsAnyTileRange = function(tileRanges, tileGrid,
if (tileRange.minX < extentTileRange.minX ||
tileRange.maxX > extentTileRange.maxX) {
if (testTileRange.intersects(new ol.TileRange(
goog.math.modulo(tileRange.minX, width),
goog.math.modulo(tileRange.maxX, width),
ol.math.modulo(tileRange.minX, width),
ol.math.modulo(tileRange.maxX, width),
tileRange.minY, tileRange.maxY))) {
return true;
}

View File

@@ -7,8 +7,7 @@ goog.provide('ol.Collection');
goog.provide('ol.CollectionEvent');
goog.provide('ol.CollectionEventType');
goog.require('goog.array');
goog.require('goog.events.Event');
goog.require('ol.events.Event');
goog.require('ol.Object');
@@ -37,7 +36,7 @@ ol.CollectionEventType = {
* type.
*
* @constructor
* @extends {goog.events.Event}
* @extends {ol.events.Event}
* @implements {oli.CollectionEvent}
* @param {ol.CollectionEventType} type Type.
* @param {*=} opt_element Element.
@@ -55,7 +54,7 @@ ol.CollectionEvent = function(type, opt_element, opt_target) {
this.element = opt_element;
};
goog.inherits(ol.CollectionEvent, goog.events.Event);
goog.inherits(ol.CollectionEvent, ol.events.Event);
/**
@@ -180,7 +179,7 @@ ol.Collection.prototype.getLength = function() {
* @api stable
*/
ol.Collection.prototype.insertAt = function(index, elem) {
goog.array.insertAt(this.array_, elem, index);
this.array_.splice(index, 0, elem);
this.updateLength_();
this.dispatchEvent(
new ol.CollectionEvent(ol.CollectionEventType.ADD, elem, this));
@@ -238,7 +237,7 @@ ol.Collection.prototype.remove = function(elem) {
*/
ol.Collection.prototype.removeAt = function(index) {
var prev = this.array_[index];
goog.array.removeAt(this.array_, index);
this.array_.splice(index, 1);
this.updateLength_();
this.dispatchEvent(
new ol.CollectionEvent(ol.CollectionEventType.REMOVE, prev, this));

View File

@@ -9,7 +9,6 @@ goog.provide('ol.color');
goog.require('goog.asserts');
goog.require('goog.color');
goog.require('goog.color.names');
goog.require('goog.vec.Mat4');
goog.require('ol');
goog.require('ol.math');
@@ -17,7 +16,8 @@ goog.require('ol.math');
/**
* A color represented as a short array [red, green, blue, alpha].
* red, green, and blue should be integers in the range 0..255 inclusive.
* alpha should be a float in the range 0..1 inclusive.
* alpha should be a float in the range 0..1 inclusive. If no alpha value is
* given then `1` will be used.
* @typedef {Array.<number>}
* @api
*/
@@ -53,48 +53,6 @@ ol.color.rgbaColorRe_ =
/^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i;
/**
* @param {ol.Color} dst Destination.
* @param {ol.Color} src Source.
* @param {ol.Color=} opt_color Color.
* @return {ol.Color} Color.
*/
ol.color.blend = function(dst, src, opt_color) {
// http://en.wikipedia.org/wiki/Alpha_compositing
// FIXME do we need to scale by 255?
var out = opt_color ? opt_color : [];
var dstA = dst[3];
var srcA = src[3];
if (dstA == 1) {
out[0] = (src[0] * srcA + dst[0] * (1 - srcA) + 0.5) | 0;
out[1] = (src[1] * srcA + dst[1] * (1 - srcA) + 0.5) | 0;
out[2] = (src[2] * srcA + dst[2] * (1 - srcA) + 0.5) | 0;
out[3] = 1;
} else if (srcA === 0) {
out[0] = dst[0];
out[1] = dst[1];
out[2] = dst[2];
out[3] = dstA;
} else {
var outA = srcA + dstA * (1 - srcA);
if (outA === 0) {
out[0] = 0;
out[1] = 0;
out[2] = 0;
out[3] = 0;
} else {
out[0] = ((src[0] * srcA + dst[0] * dstA * (1 - srcA)) / outA + 0.5) | 0;
out[1] = ((src[1] * srcA + dst[1] * dstA * (1 - srcA)) / outA + 0.5) | 0;
out[2] = ((src[2] * srcA + dst[2] * dstA * (1 - srcA)) / outA + 0.5) | 0;
out[3] = outA;
}
}
goog.asserts.assert(ol.color.isValid(out),
'Output color of blend should be a valid color');
return out;
};
/**
* Return the color as an array. This function maintains a cache of calculated
* arrays which means the result should not be modified.
@@ -103,10 +61,10 @@ ol.color.blend = function(dst, src, opt_color) {
* @api
*/
ol.color.asArray = function(color) {
if (goog.isArray(color)) {
if (Array.isArray(color)) {
return color;
} else {
goog.asserts.assert(goog.isString(color), 'Color should be a string');
goog.asserts.assert(typeof color === 'string', 'Color should be a string');
return ol.color.fromString(color);
}
};
@@ -119,27 +77,15 @@ ol.color.asArray = function(color) {
* @api
*/
ol.color.asString = function(color) {
if (goog.isString(color)) {
if (typeof color === 'string') {
return color;
} else {
goog.asserts.assert(goog.isArray(color), 'Color should be an array');
goog.asserts.assert(Array.isArray(color), 'Color should be an array');
return ol.color.toString(color);
}
};
/**
* @param {ol.Color} color1 Color1.
* @param {ol.Color} color2 Color2.
* @return {boolean} Equals.
*/
ol.color.equals = function(color1, color2) {
return color1 === color2 || (
color1[0] == color2[0] && color1[1] == color2[1] &&
color1[2] == color2[2] && color1[3] == color2[3]);
};
/**
* @param {string} s String.
* @return {ol.Color} Color.
@@ -293,40 +239,6 @@ ol.color.toString = function(color) {
if (b != (b | 0)) {
b = (b + 0.5) | 0;
}
var a = color[3];
var a = color[3] === undefined ? 1 : color[3];
return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';
};
/**
* @param {!ol.Color} color Color.
* @param {goog.vec.Mat4.Number} transform Transform.
* @param {!ol.Color=} opt_color Color.
* @return {ol.Color} Transformed color.
*/
ol.color.transform = function(color, transform, opt_color) {
var result = opt_color ? opt_color : [];
result = goog.vec.Mat4.multVec3(transform, color, result);
goog.asserts.assert(goog.isArray(result), 'result should be an array');
result[3] = color[3];
return ol.color.normalize(result, result);
};
/**
* @param {ol.Color|string} color1 Color2.
* @param {ol.Color|string} color2 Color2.
* @return {boolean} Equals.
*/
ol.color.stringOrColorEquals = function(color1, color2) {
if (color1 === color2 || color1 == color2) {
return true;
}
if (goog.isString(color1)) {
color1 = ol.color.fromString(color1);
}
if (goog.isString(color2)) {
color2 = ol.color.fromString(color2);
}
return ol.color.equals(color1, color2);
};

41
src/ol/colorlike.js Normal file
View File

@@ -0,0 +1,41 @@
goog.provide('ol.ColorLike');
goog.provide('ol.colorlike');
goog.require('ol.color');
/**
* A type accepted by CanvasRenderingContext2D.fillStyle.
* Represents a color, pattern, or gradient.
*
* @typedef {string|CanvasPattern|CanvasGradient}
* @api
*/
ol.ColorLike;
/**
* @param {ol.Color|ol.ColorLike} color Color.
* @return {ol.ColorLike} The color as an ol.ColorLike
* @api
*/
ol.colorlike.asColorLike = function(color) {
if (ol.colorlike.isColorLike(color)) {
return /** @type {string|CanvasPattern|CanvasGradient} */ (color);
} else {
return ol.color.asString(/** @type {ol.Color} */ (color));
}
};
/**
* @param {?} color The value that is potentially an ol.ColorLike
* @return {boolean} Whether the color is an ol.ColorLike
*/
ol.colorlike.isColorLike = function(color) {
return (
typeof color === 'string' ||
color instanceof CanvasPattern ||
color instanceof CanvasGradient
);
};

View File

@@ -4,15 +4,14 @@ goog.provide('ol.control.Attribution');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('goog.dom.classlist');
goog.require('goog.events');
goog.require('goog.events.EventType');
goog.require('goog.object');
goog.require('goog.style');
goog.require('ol');
goog.require('ol.Attribution');
goog.require('ol.control.Control');
goog.require('ol.css');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.object');
goog.require('ol.source.Tile');
@@ -64,27 +63,27 @@ ol.control.Attribution = function(opt_options) {
this.collapsed_ = false;
}
var className = options.className ? options.className : 'ol-attribution';
var className = options.className !== undefined ? options.className : 'ol-attribution';
var tipLabel = options.tipLabel ? options.tipLabel : 'Attributions';
var tipLabel = options.tipLabel !== undefined ? options.tipLabel : 'Attributions';
var collapseLabel = options.collapseLabel ? options.collapseLabel : '\u00BB';
var collapseLabel = options.collapseLabel !== undefined ? options.collapseLabel : '\u00BB';
/**
* @private
* @type {Node}
*/
this.collapseLabel_ = goog.isString(collapseLabel) ?
this.collapseLabel_ = typeof collapseLabel === 'string' ?
goog.dom.createDom('SPAN', {}, collapseLabel) :
collapseLabel;
var label = options.label ? options.label : 'i';
var label = options.label !== undefined ? options.label : 'i';
/**
* @private
* @type {Node}
*/
this.label_ = goog.isString(label) ?
this.label_ = typeof label === 'string' ?
goog.dom.createDom('SPAN', {}, label) :
label;
@@ -95,8 +94,7 @@ ol.control.Attribution = function(opt_options) {
'title': tipLabel
}, activeLabel);
goog.events.listen(button, goog.events.EventType.CLICK,
this.handleClick_, false, this);
ol.events.listen(button, ol.events.EventType.CLICK, this.handleClick_, this);
var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
ol.css.CLASS_CONTROL +
@@ -151,7 +149,7 @@ ol.control.Attribution.prototype.getSourceAttributions = function(frameState) {
var intersectsTileRange;
var layerStatesArray = frameState.layerStatesArray;
/** @type {Object.<string, ol.Attribution>} */
var attributions = goog.object.clone(frameState.attributions);
var attributions = ol.object.assign({}, frameState.attributions);
/** @type {Object.<string, ol.Attribution>} */
var hiddenAttributions = {};
var projection = frameState.viewState.projection;
@@ -268,17 +266,17 @@ ol.control.Attribution.prototype.updateElement_ = function(frameState) {
}
var renderVisible =
!goog.object.isEmpty(this.attributionElementRenderedVisible_) ||
!goog.object.isEmpty(frameState.logos);
!ol.object.isEmpty(this.attributionElementRenderedVisible_) ||
!ol.object.isEmpty(frameState.logos);
if (this.renderedVisible_ != renderVisible) {
goog.style.setElementShown(this.element, renderVisible);
this.renderedVisible_ = renderVisible;
}
if (renderVisible &&
goog.object.isEmpty(this.attributionElementRenderedVisible_)) {
goog.dom.classlist.add(this.element, 'ol-logo-only');
ol.object.isEmpty(this.attributionElementRenderedVisible_)) {
this.element.classList.add('ol-logo-only');
} else {
goog.dom.classlist.remove(this.element, 'ol-logo-only');
this.element.classList.remove('ol-logo-only');
}
this.insertLogos_(frameState);
@@ -322,13 +320,13 @@ ol.control.Attribution.prototype.insertLogos_ = function(frameState) {
}
}
goog.style.setElementShown(this.logoLi_, !goog.object.isEmpty(logos));
goog.style.setElementShown(this.logoLi_, !ol.object.isEmpty(logos));
};
/**
* @param {goog.events.BrowserEvent} event The event to handle
* @param {Event} event The event to handle
* @private
*/
ol.control.Attribution.prototype.handleClick_ = function(event) {
@@ -341,7 +339,7 @@ ol.control.Attribution.prototype.handleClick_ = function(event) {
* @private
*/
ol.control.Attribution.prototype.handleToggle_ = function() {
goog.dom.classlist.toggle(this.element, 'ol-collapsed');
this.element.classList.toggle('ol-collapsed');
if (this.collapsed_) {
goog.dom.replaceNode(this.collapseLabel_, this.label_);
} else {
@@ -371,7 +369,7 @@ ol.control.Attribution.prototype.setCollapsible = function(collapsible) {
return;
}
this.collapsible_ = collapsible;
goog.dom.classlist.toggle(this.element, 'ol-uncollapsible');
this.element.classList.toggle('ol-uncollapsible');
if (!collapsible && this.collapsed_) {
this.handleToggle_();
}

View File

@@ -1,7 +1,7 @@
goog.provide('ol.control.Control');
goog.require('goog.dom');
goog.require('goog.events');
goog.require('ol.events');
goog.require('ol');
goog.require('ol.MapEventType');
goog.require('ol.Object');
@@ -60,7 +60,7 @@ ol.control.Control = function(options) {
/**
* @protected
* @type {!Array.<?number>}
* @type {!Array.<ol.events.Key>}
*/
this.listenerKeys = [];
@@ -107,18 +107,18 @@ ol.control.Control.prototype.setMap = function(map) {
if (this.map_) {
goog.dom.removeNode(this.element);
}
if (this.listenerKeys.length > 0) {
this.listenerKeys.forEach(goog.events.unlistenByKey);
this.listenerKeys.length = 0;
for (var i = 0, ii = this.listenerKeys.length; i < ii; ++i) {
ol.events.unlistenByKey(this.listenerKeys[i]);
}
this.listenerKeys.length = 0;
this.map_ = map;
if (this.map_) {
var target = this.target_ ?
this.target_ : map.getOverlayContainerStopEvent();
target.appendChild(this.element);
if (this.render !== ol.nullFunction) {
this.listenerKeys.push(goog.events.listen(map,
ol.MapEventType.POSTRENDER, this.render, false, this));
this.listenerKeys.push(ol.events.listen(map,
ol.MapEventType.POSTRENDER, this.render, this));
}
map.render();
}

View File

@@ -2,11 +2,10 @@ goog.provide('ol.control.FullScreen');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('goog.dom.classlist');
goog.require('goog.dom.fullscreen');
goog.require('goog.dom.fullscreen.EventType');
goog.require('goog.events');
goog.require('goog.events.EventType');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol');
goog.require('ol.control.Control');
goog.require('ol.css');
@@ -15,6 +14,10 @@ goog.require('ol.css');
/**
* @classdesc
* Provides a button that when clicked fills up the full screen with the map.
* The full screen source element is by default the element containing the map viewport unless
* overriden by providing the `source` option. In which case, the dom
* element introduced using this parameter will be displayed in full screen.
*
* When in full screen mode, a close button is shown to exit full screen mode.
* The [Fullscreen API](http://www.w3.org/TR/fullscreen/) is used to
* toggle the map in full screen mode.
@@ -33,24 +36,25 @@ ol.control.FullScreen = function(opt_options) {
* @private
* @type {string}
*/
this.cssClassName_ = options.className ? options.className : 'ol-full-screen';
this.cssClassName_ = options.className !== undefined ? options.className :
'ol-full-screen';
var label = options.label ? options.label : '\u2922';
var label = options.label !== undefined ? options.label : '\u2922';
/**
* @private
* @type {Node}
*/
this.labelNode_ = goog.isString(label) ?
this.labelNode_ = typeof label === 'string' ?
document.createTextNode(label) : label;
var labelActive = options.labelActive ? options.labelActive : '\u00d7';
var labelActive = options.labelActive !== undefined ? options.labelActive : '\u00d7';
/**
* @private
* @type {Node}
*/
this.labelActiveNode_ = goog.isString(labelActive) ?
this.labelActiveNode_ = typeof labelActive === 'string' ?
document.createTextNode(labelActive) : labelActive;
var tipLabel = options.tipLabel ? options.tipLabel : 'Toggle full-screen';
@@ -60,12 +64,8 @@ ol.control.FullScreen = function(opt_options) {
'title': tipLabel
}, this.labelNode_);
goog.events.listen(button, goog.events.EventType.CLICK,
this.handleClick_, false, this);
goog.events.listen(goog.global.document,
goog.dom.fullscreen.EventType.CHANGE,
this.handleFullScreenChange_, false, this);
ol.events.listen(button, ol.events.EventType.CLICK,
this.handleClick_, this);
var cssClasses = this.cssClassName_ + ' ' + ol.css.CLASS_UNSELECTABLE +
' ' + ol.css.CLASS_CONTROL + ' ' +
@@ -83,12 +83,18 @@ ol.control.FullScreen = function(opt_options) {
*/
this.keys_ = options.keys !== undefined ? options.keys : false;
/**
* @private
* @type {Element|string|undefined}
*/
this.source_ = options.source;
};
goog.inherits(ol.control.FullScreen, ol.control.Control);
/**
* @param {goog.events.BrowserEvent} event The event to handle
* @param {Event} event The event to handle
* @private
*/
ol.control.FullScreen.prototype.handleClick_ = function(event) {
@@ -111,7 +117,8 @@ ol.control.FullScreen.prototype.handleFullScreen_ = function() {
if (goog.dom.fullscreen.isFullScreen()) {
goog.dom.fullscreen.exitFullScreen();
} else {
var element = map.getTargetElement();
var element = this.source_ ?
goog.dom.getElement(this.source_) : map.getTargetElement();
goog.asserts.assert(element, 'element should be defined');
if (this.keys_) {
goog.dom.fullscreen.requestFullScreenWithKeys(element);
@@ -126,18 +133,31 @@ ol.control.FullScreen.prototype.handleFullScreen_ = function() {
* @private
*/
ol.control.FullScreen.prototype.handleFullScreenChange_ = function() {
var opened = this.cssClassName_ + '-true';
var closed = this.cssClassName_ + '-false';
var button = goog.dom.getFirstElementChild(this.element);
var button = this.element.firstElementChild;
var map = this.getMap();
if (goog.dom.fullscreen.isFullScreen()) {
goog.dom.classlist.swap(button, closed, opened);
button.className = this.cssClassName_ + '-true';
goog.dom.replaceNode(this.labelActiveNode_, this.labelNode_);
} else {
goog.dom.classlist.swap(button, opened, closed);
button.className = this.cssClassName_ + '-false';
goog.dom.replaceNode(this.labelNode_, this.labelActiveNode_);
}
if (map) {
map.updateSize();
}
};
/**
* @inheritDoc
* @api stable
*/
ol.control.FullScreen.prototype.setMap = function(map) {
goog.base(this, 'setMap', map);
if (map) {
this.listenerKeys.push(
ol.events.listen(goog.global.document, goog.dom.fullscreen.EventType.CHANGE,
this.handleFullScreenChange_, this)
);
}
};

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