Compare commits

...

594 Commits

Author SHA1 Message Date
Éric Lemoine
5df0b4ec3b Merge pull request #2641 from elemoine/sphere
Add @api to ol.Sphere
2014-08-29 12:10:00 +02:00
Éric Lemoine
f7f4c7b686 Remove @api annotation from ol.sphere.WGS84 2014-08-29 11:57:44 +02:00
Éric Lemoine
ad8a1f5fb6 Make tissot example use ol.Sphere 2014-08-29 11:57:44 +02:00
Éric Lemoine
f452f5545a Add @classdesc to ol.Sphere 2014-08-29 11:57:44 +02:00
Éric Lemoine
91b567293e Merge pull request #2652 from fredj/collection-doc
Improve ol.Collection documentation
2014-08-29 11:49:28 +02:00
Éric Lemoine
40fb661864 Add @api to ol.Sphere 2014-08-29 11:22:08 +02:00
Andreas Hocevar
90604fab2a Merge pull request #2644 from ahocevar/extends-externs
Add @extends annotations to generated externs
2014-08-29 10:49:42 +02:00
Éric Lemoine
5c88d8d84e Merge pull request #2655 from tschaub/new-domain
Using the openlayers.org domain
2014-08-29 08:16:12 +02:00
Frederic Junod
aa40504dd5 Improve ol.Collection documentation 2014-08-29 07:27:35 +02:00
Tim Schaub
fc13499f31 Using the openlayers.org domain 2014-08-28 16:15:41 -06:00
Andreas Hocevar
f724cb65bc Add base classes to info.json and generated externs
This ensures that the inheritance chain is intact, even if the base
class is not exportable.
2014-08-28 19:02:49 +02:00
Éric Lemoine
41ee554969 Merge pull request #2629 from elemoine/apistable-format
Add @api stable annotations to ol.format
2014-08-28 17:37:06 +02:00
Éric Lemoine
00bf5462ba Merge pull request #2609 from elemoine/view-stability
Annotate stable view functions and options
2014-08-28 17:36:49 +02:00
Éric Lemoine
1152b0327b Merge pull request #2612 from elemoine/proj-stability
Add @api stable annotations to ol.proj
2014-08-28 17:19:24 +02:00
Éric Lemoine
7c9c4c6462 Merge pull request #2614 from elemoine/tilegrid-stability
Add @api stable annotations tilegrid functions and options
2014-08-28 17:16:18 +02:00
Éric Lemoine
b099ac8e32 Merge pull request #2622 from elemoine/apistable-condition
Add @api stable annotations to ol.events.condition
2014-08-28 17:13:03 +02:00
Éric Lemoine
f8b9896dd3 Add @api stable annotations to Feature format 2014-08-28 17:10:25 +02:00
Éric Lemoine
52c5897ccc Add @api stable annotations to olx.format.WriteOptions 2014-08-28 17:10:25 +02:00
Éric Lemoine
3338d56792 Add @api stable annotations to olx.format.ReadOptions 2014-08-28 17:10:25 +02:00
Éric Lemoine
c8c59c3657 Add @api stable annotations for WKT format 2014-08-28 17:10:24 +02:00
Éric Lemoine
5eced4a015 Add @api stable annotations for WFS format 2014-08-28 17:10:24 +02:00
Éric Lemoine
de4131f207 Add @api stable annotations for TopoJSON format 2014-08-28 17:10:24 +02:00
Éric Lemoine
ceb0cc54ce Add @api stable annotations for Polyline format 2014-08-28 17:10:23 +02:00
Éric Lemoine
a09b5d61ae Add @api stable annotations for OSMXML format 2014-08-28 17:10:23 +02:00
Éric Lemoine
e0c173bd24 Add @api stable annotations for KML format 2014-08-28 17:10:23 +02:00
Éric Lemoine
5120248188 Add @api stable annotations for GPX format 2014-08-28 17:10:23 +02:00
Éric Lemoine
1f9ab58623 Add @api stable annotations for GML format 2014-08-28 17:10:22 +02:00
Andreas Hocevar
bc2044d48b Walk up the inheritance chain to an exportable constructor 2014-08-28 15:11:09 +02:00
Andreas Hocevar
a0c76aa5ee Do not extend goog.* types 2014-08-28 15:11:09 +02:00
Andreas Hocevar
80ea1772e2 Add @extends annotations to generated externs 2014-08-28 15:11:09 +02:00
Frédéric Junod
507dd4d534 Merge pull request #2630 from fredj/misc
Improve ol.structs.LRUCache type annotation
2014-08-28 13:59:30 +02:00
Andreas Hocevar
d2eceab25e Merge pull request #2643 from ahocevar/interface-externs
Handle interfaces in the generate-externs task
2014-08-28 13:22:15 +02:00
Éric Lemoine
99071b2bef Merge pull request #2638 from elemoine/setstyle
Allow passing undefined to ol.layer.Vector#setStyle
2014-08-28 12:12:38 +02:00
Andreas Hocevar
4d933f0764 Merge pull request #2645 from ahocevar/nullable-externs
Support nullable params and returns in generated externs
2014-08-28 11:52:26 +02:00
Andreas Hocevar
663fef3dfd Support nullable params and returns in generated externs 2014-08-27 18:18:49 +02:00
Andreas Hocevar
e560f529c6 Handle interfaces in the generate-externs task 2014-08-27 16:13:12 +02:00
Frédéric Junod
4e8abb62f9 Merge pull request #2639 from fredj/osmxml-options
Fix ol.source.OSMXML options
2014-08-27 15:11:03 +02:00
Frédéric Junod
95ba8c76e3 Merge pull request #2640 from fredj/geom-clone-return
Improve ol.geom.*.clone() return type annotation
2014-08-27 15:10:13 +02:00
Éric Lemoine
56d4d68459 Mark all WMTS functions/options as experimental 2014-08-27 14:44:21 +02:00
Frederic Junod
42312c6c73 Improve ol.geom.*.clone() return type annotation 2014-08-27 13:30:06 +02:00
Frederic Junod
eaca8c1691 Pass options.urls property to ol.source.OSMXML parent class 2014-08-27 12:31:09 +02:00
Éric Lemoine
03d321ce1f Better docs for ol.layer.Vector#setStyle 2014-08-27 12:26:10 +02:00
Éric Lemoine
9cc0841efb Allow passing undefined to ol.layer.Vector#setStyle 2014-08-27 12:26:10 +02:00
Frederic Junod
d3c2e40c84 remove unused olx.source.OSMXMLOptions#defaultStyle property 2014-08-27 11:19:15 +02:00
Andreas Hocevar
b7ca592334 Merge pull request #2635 from ahocevar/typedefs-after-symbols
Process typedefs last when generating externs
2014-08-27 10:54:27 +02:00
Frédéric Junod
20131bf54a Merge pull request #2637 from fredj/kinetic-optim
Don't compute velocity if not needed
2014-08-27 10:52:13 +02:00
Frederic Junod
5cdd96b131 Don't compute velocity if not needed 2014-08-27 10:40:36 +02:00
Antoine Abt
55005cfb21 Merge pull request #2619 from simonseyock/ol3-overlay-offset
Making ol.Overlay accept offset values if positioning right or bottom
2014-08-27 09:33:07 +02:00
Frederic Junod
1a4580f6f8 Add missing array type in ol.structs.LRUCache#getValues 2014-08-27 09:25:41 +02:00
Frederic Junod
25093b371d Improve ol.structs.LRUCache type annotation 2014-08-27 09:09:52 +02:00
Andreas Hocevar
e9457461af Process typedefs last
Becasue typedefs sometimes use namespaces that are actually
constructors, we need to process typedefs after symbols to avoid
duplicate entries for such namespace types.
2014-08-26 22:21:25 +02:00
Éric Lemoine
68b3691cd6 Merge pull request #2634 from probins/patch-1
Minor improvement to comment in style/style
2014-08-26 18:55:00 +02:00
Peter Robins
4005c986f6 Minor improvement to comment in style/style 2014-08-26 17:34:05 +01:00
Éric Lemoine
df23bd1ff7 Merge pull request #2633 from elemoine/signature
Fix ol.style.defaultStyleFunction signature
2014-08-26 17:24:45 +02:00
Éric Lemoine
0d92d7abc1 Better comments in ol.style.defaultStyleFunction 2014-08-26 17:10:07 +02:00
Éric Lemoine
89019ea233 Fix ol.style.defaultStyleFunction signature 2014-08-26 17:09:43 +02:00
Antoine Abt
dea670f754 Merge pull request #2632 from tonio/attrib_styles
Small tweaks to attributions max-width
2014-08-26 15:52:36 +02:00
Antoine Abt
a046dc1bab Fix attributions width 2014-08-26 15:29:11 +02:00
Frédéric Junod
0e9744d967 Merge pull request #2631 from fredj/osm-maxzoom
Set default ol.source.OSM maxZoom to 19
2014-08-26 15:19:52 +02:00
Frederic Junod
b611aff8e4 Set default ol.source.OSM maxZoom to 19 2014-08-26 14:21:32 +02:00
Éric Lemoine
9ecd60601c Merge pull request #2627 from elemoine/inherits
Fix ol.inherits docs
2014-08-26 11:24:01 +02:00
Frédéric Junod
1e0b366202 Merge pull request #2628 from fredj/scale-line
Take the 'us' and 'nautical' units into account in scale line control
2014-08-26 11:03:48 +02:00
Frederic Junod
8c8fd64ecb Add 'us' and 'nautical' units in scale-line example 2014-08-26 10:37:52 +02:00
Frederic Junod
58e3561ba5 Take the 'us' and 'nautical' units into account
When converting pointResolution from degrees to meters
2014-08-26 10:36:55 +02:00
Éric Lemoine
26df575bfe Add @api stable annotations for GeoJSON format 2014-08-26 10:36:27 +02:00
Éric Lemoine
d3d41c8217 Fix ol.inherits docs 2014-08-26 10:13:10 +02:00
Éric Lemoine
b83e639301 Merge pull request #2624 from gingerik/wkt-call-stack
Fix potentially exceeding call stack limit
2014-08-26 08:57:31 +02:00
Erik Timmers
eef87fdaac Fix potentially exceeding call stack limit
Fixes #2590. Improves parsing time.
2014-08-26 08:28:18 +02:00
Éric Lemoine
c02793e42b Add @api stable to ol.MapEvent 2014-08-25 17:36:22 +02:00
Éric Lemoine
db452759c9 Add @api stable to ol.MapBrowserEvent 2014-08-25 17:36:10 +02:00
Éric Lemoine
43ee0158f8 Add @api stable to ol.events.condition built-ins 2014-08-25 17:25:06 +02:00
Éric Lemoine
dcd2e425a2 Add @api stable to ol.events.ConditionType 2014-08-25 17:24:57 +02:00
Bart van den Eijnden
069a2d9f20 Merge pull request #2617 from bartvde/kml-earthquakes
kml earthquakes example is broken
2014-08-25 17:17:03 +02:00
Frédéric Junod
dda700c1e4 Merge pull request #2618 from fredj/geom-clone
Indicates that ol.geom.Geometry#clone never return null
2014-08-25 17:10:20 +02:00
simonseyock
52e06a8ff7 Making ol.Overlay accept offset values if positioning right or bottom
When ol.Overlay has set positioning is set to right or bottom, no offset is applied. I added the missing calculations.
I made 2 fiddles showing the bahaviour before and after.
The divs in hte fiddles are named after their positioning (anchor point)! Not the actual position!
Before: http://jsfiddle.net/simon_seyock/ob7ggtx6/
As you can see, on div named "bottom-right" no offset at all is applied. On "bottom-center" it is only applied horizontally and on "center-right" only vertically.
After: http://jsfiddle.net/simon_seyock/sL2f3nL9/2/
All offsets are applied correctly, you could draw a straight line through the anchor points of every div.
2014-08-25 16:55:33 +02:00
Bart van den Eijnden
8107a0582a Use extractStyles false in KML earthquakes example 2014-08-25 16:51:21 +02:00
Frederic Junod
6e3354ab7b Indicates that ol.geom.Geometry#clone never return null 2014-08-25 16:44:52 +02:00
Tim Schaub
b5a6ffc144 Merge pull request #2608 from tschaub/more-stable
Mark ol.RendererType enum as stable.
2014-08-25 07:39:38 -06:00
Éric Lemoine
5aca42fe64 Merge pull request #2610 from elemoine/geoloc-stability
Annotate stable geolocation functions and options
2014-08-25 13:14:53 +02:00
Éric Lemoine
2e89d69743 Add @api stable annotations to olx.tilegrid.WMTSOptions 2014-08-25 12:37:37 +02:00
Éric Lemoine
b0e87fac76 Add @api stable annotations to ol.tilegrid.WMTS 2014-08-25 11:00:13 +02:00
Éric Lemoine
e4fc8fa119 Add @api stable annotations to olx.tilegrid.TileGridOptions 2014-08-25 11:00:13 +02:00
Éric Lemoine
137d74e5a0 Add @api stable annotations to ol.tilegrid.TileGrid 2014-08-25 11:00:13 +02:00
Éric Lemoine
016daf3c68 Mark ol.TransformFunction as stable 2014-08-25 10:30:04 +02:00
Éric Lemoine
cc4d793c64 Add @api stable annotations to ol.proj 2014-08-25 10:27:25 +02:00
Éric Lemoine
522820fc97 Merge pull request #2611 from elemoine/pixel-stability
Add @api stable annotation to ol.Pixel
2014-08-25 10:20:08 +02:00
Éric Lemoine
a1d91042b1 Add @api stable annotation to ol.Pixel 2014-08-25 10:00:10 +02:00
Éric Lemoine
c97e19b4ff Better docs for ol.Geolocation projection option 2014-08-25 09:56:48 +02:00
Éric Lemoine
759419593a Add @api stable annotations to olx.GeolocationOptions 2014-08-25 09:56:29 +02:00
Éric Lemoine
250b588db4 Add @api stable annotations to ol.Geolocation 2014-08-25 09:56:01 +02:00
Éric Lemoine
c89ea54179 Better docs for fitExtent and calculateExtent 2014-08-25 09:28:31 +02:00
Éric Lemoine
3533dba7ac Add @api stable annotations to olx.ViewOptions 2014-08-25 09:20:24 +02:00
Éric Lemoine
f4c8f176ec Add @api stable annotations to ol.View 2014-08-25 09:19:58 +02:00
Éric Lemoine
cd4063b0d8 Merge pull request #2602 from elemoine/layer-extent
Fix Uncaught RangeError in canvas tile renderer
2014-08-25 09:13:01 +02:00
Bart van den Eijnden
ddb4d9ae83 Merge pull request #2151 from bartvde/license
Builds should include license
2014-08-25 08:27:23 +02:00
Tim Schaub
61d759acc7 Add unstable class to typedefs in navigation menu 2014-08-24 18:35:18 -06:00
Tim Schaub
79efcc78a5 Add unstable class to member definitions 2014-08-24 18:31:23 -06:00
Tim Schaub
38b2a46b59 Mark ol.RendererType enum as stable 2014-08-24 18:22:19 -06:00
Tim Schaub
38b58e9860 Merge pull request #2606 from tschaub/stable-map-options
Annotate stable map options.
2014-08-24 18:16:27 -06:00
Tim Schaub
c899324eb5 Merge pull request #2605 from tschaub/stable-doc
Hide unstable items from the API docs by default.
2014-08-24 18:09:50 -06:00
Éric Lemoine
73df93969a No composeFrame if layer and view don't intersect
ol.renderer.canvas.TileLayer#prepareFrame immediately returns false if the layer extent and the view extent do not intersect.
2014-08-24 14:55:13 +02:00
Éric Lemoine
def1af4492 No composeFrame if prepareFrame returns false 2014-08-24 14:55:13 +02:00
Éric Lemoine
284031bd1e Merge pull request #2607 from probins/patch-1
Clarify that draganddrop example doesn't include projection transforms
2014-08-23 15:32:23 +02:00
Peter Robins
0010cb787f Clarify that draganddrop example doesn't include projection transforms 2014-08-23 12:09:17 +01:00
Tim Schaub
e17e909ffa Annotate stable map options 2014-08-22 17:43:51 -06:00
Tim Schaub
a8999f601b Hide unstable items by default, provide checkbox for toggling 2014-08-22 17:30:29 -06:00
Tim Schaub
ecaedff890 Add "unstable" class to unstable items
This also removes the events from the sidebar.  These are repeated on the main page and only add unnecessary length to the sidebar.
2014-08-22 17:28:50 -06:00
Tim Schaub
787688ef33 Copy stability from doclet to observable 2014-08-22 17:27:29 -06:00
Éric Lemoine
07b5b448dc Merge pull request #2596 from elemoine/apistable-coordinate
Add @api stable annotations for ol.coordinate
2014-08-22 19:02:17 +02:00
Éric Lemoine
9a4b45921d Merge pull request #2552 from elemoine/apistable
Add @api stable annotations for the ol.layer namespace
2014-08-22 19:01:13 +02:00
Éric Lemoine
fa2206e7a4 Merge pull request #2601 from probins/dbf
Rename ol.dom.browserfeature back to BrowserFeature
2014-08-22 19:00:44 +02:00
Éric Lemoine
5ce4e748f5 Add docs for the tile layer preload option 2014-08-22 18:38:22 +02:00
Éric Lemoine
1b86a4967f Merge pull request #2600 from elemoine/apistable-size
Add @api stable annotation to ol.Size
2014-08-22 18:02:40 +02:00
Éric Lemoine
32dce80fb6 Merge pull request #2598 from elemoine/apistable-extent
Add @api stable annotations for ol.extent
2014-08-22 18:02:33 +02:00
Éric Lemoine
886941b48e Merge pull request #2597 from elemoine/apistable-attribution
Add @api stable annotations for ol.Attribution
2014-08-22 18:02:20 +02:00
Éric Lemoine
546b42df07 Remove @api annotation from ol.coordinate.fromProjectedArray 2014-08-22 18:01:31 +02:00
Éric Lemoine
678d4ef01c Merge pull request #2555 from elemoine/apistable1
Add @api stable annotations for the ol.source namespace
2014-08-22 17:57:23 +02:00
Éric Lemoine
f369f9a076 Merge pull request #2599 from elemoine/apistable-control-defaultsoptions
Add @api stable annotations for olx.control.DefaultsOptions
2014-08-22 17:37:33 +02:00
Peter Robins
18a1c1c0d7 Rename ol.dom.browserfeature back to BrowserFeature 2014-08-22 15:32:01 +00:00
Éric Lemoine
c2e93adae0 Add @api stable annotation to ol.Size 2014-08-22 17:21:46 +02:00
Éric Lemoine
db546a60ea Add missing "rotate" field to DefaultsOptions typedef 2014-08-22 17:18:36 +02:00
Éric Lemoine
83b086db4f Add @api stable annotations for olx.control.DefaultsOptions 2014-08-22 17:12:01 +02:00
Éric Lemoine
22fd6872f4 Add @api stable annotations for ol.extent 2014-08-22 17:04:24 +02:00
Éric Lemoine
89e086e586 Add @api stable annotations for ol.Attribution 2014-08-22 16:59:18 +02:00
Éric Lemoine
7a2bad543f Merge pull request #2595 from probins/patch-1
Fix typo in generate-exports
2014-08-22 16:56:15 +02:00
Peter Robins
8dab12f0d4 Fix typo in generate-exports 2014-08-22 15:42:24 +01:00
Tim Schaub
19843d301c Merge pull request #2586 from tschaub/has
Rename ol.browserfeature to ol.has.
2014-08-22 08:02:55 -06:00
Tim Schaub
90fc5b2a4d Merge pull request #2587 from tschaub/shuffle
Directory renaming.
2014-08-22 07:49:42 -06:00
Tim Schaub
f11e5de156 Mark exportable ol.has properties as stable 2014-08-22 07:36:05 -06:00
Tim Schaub
947b049799 Rename ol.browserfeature to ol.has 2014-08-22 07:34:35 -06:00
Tim Schaub
f17c33f631 Rename buildcfg to config 2014-08-22 07:28:05 -06:00
Tim Schaub
c7ba6f4c6e Rename doc template from apidoc to api 2014-08-22 07:28:05 -06:00
Tim Schaub
1fd0bada51 Move apidoc config with other build related config 2014-08-22 07:28:05 -06:00
Tim Schaub
403e87f697 Merge pull request #2588 from tschaub/unstable
Mark map.beforeRender as unstable.
2014-08-22 07:16:49 -06:00
Éric Lemoine
bbeb4442a5 Add @api annotations to ol.layer.Tile 2014-08-22 11:24:07 +02:00
Éric Lemoine
3ced2d8266 Add @api stable annotations to ol.layer.Vector 2014-08-22 11:24:07 +02:00
Éric Lemoine
1085d4f152 Add @api stable annotations to ol.layer.Tile 2014-08-22 11:24:07 +02:00
Éric Lemoine
ee745f8c9e Add @api stable annotations to ol.layer.Image 2014-08-22 11:24:06 +02:00
Éric Lemoine
e50ba2172f Add @api stable annotations to ol.layer.Group 2014-08-22 11:24:06 +02:00
Éric Lemoine
15487d1ce9 Add @api stable annotations to ol.layer.Layer 2014-08-22 11:24:06 +02:00
Éric Lemoine
efc32b14df Add @api stable annotations to ol.layer.Base 2014-08-22 11:24:06 +02:00
Éric Lemoine
54ff843075 Add @api stable annotations for olx.source.ImageMapGuideOptions 2014-08-22 11:08:50 +02:00
Éric Lemoine
daf7715bc6 Add @api stable annotations for ol.source.ImageMapGuide 2014-08-22 11:07:35 +02:00
Éric Lemoine
495d807aba Add @api stable annotations for olx.source.ZoomifyOptions 2014-08-22 10:43:01 +02:00
Éric Lemoine
b5dcfeac42 Add @api stable annotations for olx.source.XYZOptions 2014-08-22 10:41:38 +02:00
Éric Lemoine
895694e8e8 Add @api stable annotations for olx.source.WMTSOptions 2014-08-22 10:38:21 +02:00
Éric Lemoine
96d91c684e Add @api stable annotations for olx.source.VectorOptions 2014-08-22 10:34:53 +02:00
Éric Lemoine
3ee72c35a6 Add @api stable annotations for olx.source.TileWMSOptions 2014-08-22 10:32:32 +02:00
Éric Lemoine
328f049d04 Add @api stable annotations for olx.source.TileJSONOptions 2014-08-22 10:32:32 +02:00
Éric Lemoine
6724e1520f Add @api stable annotations for olx.source.StamenOptions 2014-08-22 10:32:32 +02:00
Éric Lemoine
6bbb699771 Add @api stable annotations for olx.source.OSMOptions 2014-08-22 10:32:32 +02:00
Éric Lemoine
580943e700 Add @api stable annotations for olx.source.MapQuestOptions 2014-08-22 10:24:15 +02:00
Éric Lemoine
67c44b4e9e Add @api stable annotations for olx.source.ImageWMSOptions 2014-08-22 10:19:37 +02:00
Éric Lemoine
a7a255c235 Add @api stable annotations for olx.source.ImageStaticOptions 2014-08-22 10:19:37 +02:00
Éric Lemoine
3049b56db1 Add @api stable annotations for olx.source.BingMapsOptions 2014-08-22 10:19:37 +02:00
Éric Lemoine
72aa61885a Add @api stable annotations for ol.source.Zoomify 2014-08-22 10:19:37 +02:00
Éric Lemoine
0fc4d0de98 Add @api stable annotations for ol.source.XYZ 2014-08-22 10:19:37 +02:00
Éric Lemoine
50564f8d67 Remove ol.source.WMTS.optionsFromCapabilities from the API 2014-08-22 10:19:36 +02:00
Éric Lemoine
abe6fb7611 Add @api stable annotations for ol.source.WMTS 2014-08-22 10:19:36 +02:00
Éric Lemoine
02dc7bcc9e Add @api stable annotations for ol.source.Vector 2014-08-22 10:19:36 +02:00
Éric Lemoine
68fc7e5251 Add @api stable annotations for ol.source.TileWMS 2014-08-22 10:12:54 +02:00
Éric Lemoine
cea9bd6a4a Add @api stable annotations for ol.source.Tile 2014-08-22 10:12:54 +02:00
Éric Lemoine
4cc9187414 Add @api stable annotations for ol.source.TileJSON 2014-08-22 10:12:54 +02:00
Éric Lemoine
e9c2e72000 Add @api stable annotations for ol.source.Stamen 2014-08-22 10:12:54 +02:00
Éric Lemoine
16359b8af0 Add @api stable annotations for ol.source.Source 2014-08-22 10:12:54 +02:00
Éric Lemoine
823dc41cdf Add @api stable annotations for ol.source.OSM 2014-08-22 10:12:54 +02:00
Éric Lemoine
69b99cb9ed Add @api stable annotations for ol.source.MapQuest 2014-08-22 10:12:54 +02:00
Éric Lemoine
7596133db1 Add @api stable annotations for ol.source.ImageWMS 2014-08-22 10:12:54 +02:00
Éric Lemoine
f7088fc500 Add @api stable annotations for ol.source.ImageStatic 2014-08-22 10:12:54 +02:00
Bart van den Eijnden
a5dd13c5f1 Add a reference to the license to the build 2014-08-22 10:10:21 +02:00
Éric Lemoine
d71ca642d2 Add @api stable annotations for ol.source.BingMaps 2014-08-22 09:32:14 +02:00
Éric Lemoine
807ddccecf Merge pull request #2589 from tschaub/olx-property-stability
Document stability for olx properties
2014-08-22 09:27:48 +02:00
Éric Lemoine
3e38b1d88a Merge pull request #2561 from elemoine/apistable2
Add @api stable annotations for ol.Observable
2014-08-22 09:17:47 +02:00
Éric Lemoine
f3930d751e Add @api stable annotations for ol.Observable 2014-08-22 09:16:28 +02:00
Éric Lemoine
7383a1df06 Merge pull request #2565 from elemoine/apistable5
Add @api stable annotations for ol.Feature and the ol.geom namespace
2014-08-22 07:37:28 +02:00
Tim Schaub
9c4689206b Document stability for options 2014-08-21 22:14:48 -06:00
Tim Schaub
525456e6cd Only document olx properties marked as part of the API
And mark all olx properties with @api.  The stability level will be used to determine what can change between minor releases.
2014-08-21 21:49:06 -06:00
Tim Schaub
9975d842f1 Mark map.beforeRender as unstable 2014-08-21 20:31:05 -06:00
Tim Schaub
fc303cdec7 Merge pull request #2577 from tschaub/stability-info
Write out stability info for symbols.
2014-08-21 13:41:11 -06:00
Frédéric Junod
a9195771ca Merge pull request #2584 from openlayers/error-by-fail
Replace 'throw new Error' by 'goog.asserts.fail'
2014-08-21 18:33:46 +02:00
Éric Lemoine
58a77478a3 Merge pull request #2582 from elemoine/wmsgfi
Support for "Stateless GetFeatureInfo"
2014-08-21 18:07:39 +02:00
Tobias Sauerwein
a231086a8b Merge pull request #2407 from ahocevar/format-projection
Options for feature readers and writers to support transforms
2014-08-21 17:58:10 +02:00
Frederic Junod
fb1d7e0c50 Replace 'throw new Error' by 'goog.asserts.fail' 2014-08-21 15:22:01 +02:00
Frédéric Junod
15a516fd62 Merge pull request #2583 from fredj/readFeature-doc
Update ol.format.GeoJSON#readFeature documentation
2014-08-21 13:30:56 +02:00
Éric Lemoine
43bd2b740b Add @api stable annotations for ol.coordinate 2014-08-21 13:24:57 +02:00
Frederic Junod
b5a3e90bb4 Update ol.format.GeoJSON#readFeature documentation
An error is only thrown in development mode: goog.asserts.assert are removed
by the compiler.
2014-08-21 12:36:53 +02:00
Éric Lemoine
2e29ae8bc5 Add a getfeatureinfo-image example 2014-08-21 11:54:49 +02:00
Éric Lemoine
89686b783f Rename getfeatureinfo example to getfeatureinfo-tile 2014-08-21 11:52:47 +02:00
Éric Lemoine
fbab52b09f Enable ProjectionLike on getGetFeatureInfoUrl
This commit follows up on #2348.
2014-08-21 11:45:10 +02:00
tsauerwein
939e167c0b Rename "adaptOptionsWithDefaultDataProjection" 2014-08-21 11:39:01 +02:00
Éric Lemoine
d1bb2724a5 Stateless GetFeatureInfo for ol.source.ImageWMS 2014-08-21 11:29:44 +02:00
Éric Lemoine
5a9d75a04f Stateless GetFeatureInfo for ol.source.TileWMS 2014-08-21 11:29:44 +02:00
Éric Lemoine
55db958290 Merge pull request #2564 from elemoine/apistable4
Add @api stable annotations for the ol.control namespace
2014-08-21 11:02:56 +02:00
Éric Lemoine
a54a485faf Merge pull request #2562 from elemoine/apistable3
Add @api stable annotations for ol.Overlay
2014-08-21 11:00:26 +02:00
Éric Lemoine
4764cbc908 Remove the ol.geom.RawMultiPolygon type 2014-08-21 10:56:50 +02:00
Éric Lemoine
95d7598227 Remove the ol.geom.RawMultiLineString type 2014-08-21 10:56:50 +02:00
Éric Lemoine
d17993794d Remove the ol.geom.RawMultiPoint type 2014-08-21 10:56:50 +02:00
Éric Lemoine
47c1f1908e Remove the ol.geom.RawPolygon type 2014-08-21 10:56:50 +02:00
Éric Lemoine
838415218f Remove the ol.geom.RawLinearRing type 2014-08-21 10:56:50 +02:00
Éric Lemoine
fb1c764a38 Remove the ol.geom.RawLineString type 2014-08-21 10:56:50 +02:00
Éric Lemoine
72bcb2db80 Remove the ol.geom.RawPoint type 2014-08-21 10:56:49 +02:00
Éric Lemoine
feba61af25 Add @api stable annotations for ol.geom.SimpleGeometry 2014-08-21 10:56:49 +02:00
Éric Lemoine
e9eb22bc47 Add @api stable annotations for ol.geom.Polygon 2014-08-21 10:56:49 +02:00
Éric Lemoine
b865958efb Add @api stable annotations for ol.geom.Point 2014-08-21 10:56:49 +02:00
Éric Lemoine
2c5464aa76 Add @api stable annotations for ol.geom.MultiPolygon 2014-08-21 10:56:49 +02:00
Éric Lemoine
6ecd31fe62 Add @api stable annotations for ol.geom.MultiPoint 2014-08-21 10:56:49 +02:00
Éric Lemoine
ce7fda71af Add @api stable annotations for ol.geom.MultiLineString 2014-08-21 10:56:49 +02:00
Éric Lemoine
180c6aa7a9 Add @api stable annotations for ol.geom.LineString 2014-08-21 10:56:49 +02:00
Éric Lemoine
516be9041e Add @api stable annotations for ol.geom.LinearRing 2014-08-21 10:56:49 +02:00
Éric Lemoine
5ccb0fae07 Add @api stable annotations for ol.geom.GeometryCollection 2014-08-21 10:56:49 +02:00
Éric Lemoine
9b0ce7b80c Add @api stable annotations for ol.geom.Geometry 2014-08-21 10:56:49 +02:00
Éric Lemoine
300146e15b Merge pull request #2580 from probins/patch-1
Small improvements to description of ol.Map example
2014-08-21 10:21:49 +02:00
Peter Robins
b858421220 Small improvements to description of ol.Map example 2014-08-21 08:46:40 +01:00
Frédéric Junod
dcf05af210 Merge pull request #2579 from probins/patch-1
Remove link to non-existent ol.ViewOptions
2014-08-21 09:43:54 +02:00
Peter Robins
44d9955dae Remove link to non-existent ol.ViewOptions 2014-08-21 08:34:54 +01:00
Frédéric Junod
fa512f1ed0 Merge pull request #2545 from fredj/cleanup
Miscellaneous coding style fixes
2014-08-21 07:44:07 +02:00
Tim Schaub
bc680ef101 Write out stability info for symbols 2014-08-20 16:17:27 -06:00
Bart van den Eijnden
dd2d896983 Merge pull request #2570 from bartvde/gml-wfs-docs
document that ol.format.GML is GML v3 SF profile only now
2014-08-20 22:55:55 +02:00
Bart van den Eijnden
45d4f32078 Document the supported GML and WFS versions 2014-08-20 21:50:51 +02:00
Antoine Abt
81b66a7906 Merge pull request #2575 from tonio/vectoropacity
Restore opacity after drawing vector layers
2014-08-20 15:47:07 +02:00
Éric Lemoine
d906efa24c Merge pull request #2509 from probins/apimismatch
Fix missing API docs
2014-08-20 15:40:25 +02:00
Antoine Abt
b034e114d6 Restore opacity after drawing vector layers 2014-08-20 15:34:48 +02:00
Frédéric Junod
42e8fb544a Merge pull request #2571 from fredj/rotatecontrol-cleanup
ol.control.Rotate cleanup and optimization
2014-08-20 11:59:57 +02:00
Frederic Junod
7f086e138a Remove unnecessary local variable 2014-08-20 11:17:44 +02:00
Éric Lemoine
817862ef59 Merge pull request #2572 from probins/proj
Document aliases for EPSG:4326/3857
2014-08-20 11:16:33 +02:00
Peter Robins
ac63a453c2 Document aliases for EPSG:4326/3857 2014-08-20 09:03:46 +00:00
Frederic Junod
27ae50e673 Only update rotate control element when it's needed
To avoid a lot of 'Recalculate style' events by the browser.
2014-08-20 10:58:18 +02:00
Frederic Junod
7c14399133 Add missing jsdoc tag 2014-08-20 10:58:18 +02:00
Frederic Junod
113888120f Use goog.math.toDegrees 2014-08-20 10:58:17 +02:00
Tim Schaub
c7f45819ae Merge pull request #2482 from tschaub/lint-tasks
Lint tasks.
2014-08-19 12:30:26 -06:00
Tim Schaub
f498080d78 Fail if tasks have lint 2014-08-19 12:15:11 -06:00
Tim Schaub
30bfa1bf19 Remove additional lint from new tasks 2014-08-19 12:15:11 -06:00
Tim Schaub
7f5ed26d8d Merge pull request #1124 from tschaub/xyz
Allow tilegrid creation from projection or extent.
2014-08-19 11:59:52 -06:00
Tim Schaub
6bd0d7efae Additional documentation 2014-08-19 10:30:38 -06:00
Tim Schaub
1ede97ae18 Respect the tileSize option for XYZ grids 2014-08-19 10:30:37 -06:00
Tim Schaub
ee487ca308 Sources may be configured with a projection, tile grids with an extent
An XYZ tile grid is constructed with an extent defining the bounds of the tile grid.
2014-08-19 10:30:27 -06:00
Éric Lemoine
239a90cd55 Add @api stable annotations for ol.Feature 2014-08-19 17:12:46 +02:00
Éric Lemoine
24651ba21e Add @api stable annotations for ol.control.FullScreen 2014-08-19 16:59:22 +02:00
Éric Lemoine
26ec1d5924 Add @api stable annotations for ol.control.ZoomToExtent 2014-08-19 16:59:18 +02:00
Éric Lemoine
967bbebaa0 Add @api stable annotations for ol.control.ZoomSlider 2014-08-19 16:59:14 +02:00
Éric Lemoine
c3e0b5f282 Add @api stable annotations for ol.control.Zoom 2014-08-19 16:59:10 +02:00
Éric Lemoine
d8afc96aa3 Add @api stable annotations for ol.control.ScaleLine 2014-08-19 16:59:06 +02:00
Éric Lemoine
975e81a041 Add @api stable annotations for ol.control.Rotate 2014-08-19 16:59:02 +02:00
Éric Lemoine
39431dff9e Add @api stable annotations for ol.control.MousePosition 2014-08-19 16:58:53 +02:00
Éric Lemoine
ecbf3bc692 Add @api stable annotations for ol.control.defaults 2014-08-19 16:58:49 +02:00
Éric Lemoine
602deafc86 Add @api stable annotations for ol.control.Attribution 2014-08-19 16:46:44 +02:00
Éric Lemoine
7c01d3a57c Add @api stable annotations for ol.control.Control 2014-08-19 16:46:12 +02:00
Éric Lemoine
365caa6f19 Merge pull request #2559 from elemoine/loader
Change comment in loader_hosted_examples.js
2014-08-19 12:33:04 +02:00
Éric Lemoine
879ace1c9a Add @api stable annotations for ol.Overlay 2014-08-19 12:32:01 +02:00
Frédéric Junod
27ad6c33bc Merge pull request #2560 from fredj/optim
Don't create unnecessary closure
2014-08-19 12:28:34 +02:00
Éric Lemoine
2c9e822808 Merge pull request #2410 from probins/taskreadme
Additional clarifications for tasks/readme
2014-08-19 12:27:25 +02:00
Éric Lemoine
96269c0b24 Change comment in loader_hosted_examples.js
The hosted examples do not use the ol-debug.js build. They use ol.js in "production" mode, and they load scripts one by one in "development" mode.
2014-08-19 12:14:38 +02:00
Frederic Junod
1439ceafa1 Simplify goog.object.forEach call 2014-08-19 11:58:50 +02:00
Frederic Junod
102f214afe Remove unnecessary local variable 2014-08-19 11:58:25 +02:00
Frederic Junod
0f4e56978b Remove unnecessary newlines 2014-08-19 11:58:25 +02:00
Frederic Junod
35e4134047 Don't create unnecessary closure 2014-08-19 11:39:44 +02:00
Frédéric Junod
59826ce490 Merge pull request #2558 from fredj/optim
Don't create unnecessary closure in constructor
2014-08-19 11:02:31 +02:00
Éric Lemoine
db490e11b5 Merge pull request #2557 from elemoine/rename-mapguide
Rename ol.source.MapGuide to ol.source.ImageMapGuide
2014-08-19 10:20:52 +02:00
Frederic Junod
2b3e0bf699 Don't create unnecessary closure in constructor 2014-08-19 09:55:18 +02:00
Éric Lemoine
ec81c05cce Rename ol.source.MapGuide to ol.source.ImageMapGuide 2014-08-19 09:44:15 +02:00
tsauerwein
b30ed6b934 Put options on objectStack for xml formats 2014-08-19 09:42:44 +02:00
Tim Schaub
e97f79b4ab Respect XYZ source projection 2014-08-18 23:03:33 -06:00
Tim Schaub
33b68123ac Add jshint config for tasks and remove lint 2014-08-18 17:22:57 -06:00
Tim Schaub
63ad916ca7 Function for creating tile grids from extents 2014-08-18 17:10:26 -06:00
Tim Schaub
dd5e7693da General purpose getCorner function for extents 2014-08-18 14:55:49 -06:00
Éric Lemoine
711c4bbc8c Merge pull request #2450 from probins/events
Improve and standardise event docs
2014-08-18 17:35:59 +02:00
Peter Robins
7a5a5d75e7 Improve and standardise event docs 2014-08-18 15:17:02 +00:00
Éric Lemoine
8f7f814d32 Merge pull request #2465 from probins/color
Expand docs for color options
2014-08-18 16:53:39 +02:00
Peter Robins
d5e1c27fc1 Expand docs for color options 2014-08-18 14:37:38 +00:00
Éric Lemoine
e53213d730 Merge pull request #2537 from probins/browserfeature
Rename BrowserFeature to browserfeature
2014-08-18 16:23:28 +02:00
Antoine Abt
344452bd22 Merge pull request #2443 from tonio/tile-vector
More data in tile-vector examples
2014-08-18 15:59:20 +02:00
tsauerwein
e7864be2be Fix ol.format.transformWithOptions 2014-08-18 15:48:29 +02:00
tsauerwein
539e4a23b9 Introduce defaultDataProjection for formats 2014-08-18 15:31:06 +02:00
Frédéric Junod
b92a0338c9 Merge pull request #2547 from fredj/proj-api
Export more functions from ol.proj.Projection
2014-08-18 15:00:13 +02:00
Éric Lemoine
a7e32469fa Merge pull request #2512 from petrsloup/olcs-missing-api
Make API of raster sources more convenient
2014-08-18 14:23:49 +02:00
Frederic Junod
d7c2e27d50 Export ol.proj.Projection#getMetersPerUnit function 2014-08-18 14:21:10 +02:00
Frederic Junod
e39e9c2230 Export ol.proj.Projection#isGlobal function 2014-08-18 14:21:10 +02:00
Antoine Abt
139ea4c7d2 Merge pull request #2513 from probins/editstyle
Move createDefaultEditingStyles() to ol.style
2014-08-18 14:11:35 +02:00
Petr Sloup
d7027a6a64 Export getLayers and setLayers methods of ol.layer.Group
This is nicer than having to use .get("layers") and .set("layers", x).
2014-08-18 13:48:42 +02:00
Petr Sloup
1d5c746974 Export getHTML method of ol.Attribution to the api 2014-08-18 13:48:34 +02:00
Petr Sloup
0ac90e62b9 Added some api annotations required for accessing layer properties 2014-08-18 13:48:14 +02:00
Éric Lemoine
c83ae8a284 Merge pull request #2544 from elemoine/mapguide
Params not correctly handled in MapGuide source
2014-08-18 13:21:34 +02:00
Éric Lemoine
e7083aef1d Params not correctly handled in MapGuide source 2014-08-18 12:17:32 +02:00
Frédéric Junod
c7bf94e69b Merge pull request #2528 from fredj/wmts-source-optim
ol.source.WMTS optimization
2014-08-18 11:24:41 +02:00
Éric Lemoine
9072fb1f2f Merge pull request #2543 from elemoine/foreachfeature
Do not hit-detect the same feature multiple times
2014-08-18 10:38:38 +02:00
Frederic Junod
b484801e4f Use tmpExtent in ol.source.WMTS tileUrlFunction 2014-08-18 10:35:14 +02:00
Frederic Junod
8076401c0f Use opt_tileCoord in ol.source.WMTS tileUrlFunction 2014-08-18 10:35:14 +02:00
Éric Lemoine
c81dfdc69b Do not hit-detect the same feature multiple times
In other words forEachFeatureAtPixel should not call the user-provided callback more than once for a given feature.
2014-08-18 10:24:12 +02:00
Éric Lemoine
0779b4ef79 Merge pull request #2539 from elemoine/tilecoord
Change ol.TileCoord to Array.<number>
2014-08-18 10:21:35 +02:00
Éric Lemoine
ba035abb1f Change ol.TileCoord to an Array 2014-08-18 09:33:24 +02:00
Paul Spencer
1fc620b7bb Merge pull request #2527 from pagameba/cluster-fix
Return rather than fail if resolution is not defined
2014-08-16 19:26:37 -04:00
Peter Robins
e35531e7c6 Rename BrowserFeature to browserfeature 2014-08-15 13:53:20 +00:00
Éric Lemoine
0d20b337a0 Merge pull request #2348 from probins/getget
Enable ProjectionLike on getGetFeatureInfoUrl
2014-08-15 11:37:20 +02:00
Peter Robins
7b32b8e561 Enable ProjectionLike on getGetFeatureInfoUrl 2014-08-15 08:42:40 +00:00
Frédéric Junod
7097be3d00 Merge pull request #2532 from fredj/tilerange-cleanup
Add ol.TileRange#containsXY function
2014-08-14 13:59:23 +02:00
Frédéric Junod
db6c87a9bd Merge pull request #2529 from petrsloup/source-state-fix
Fix for invalid initial state of certain sources
2014-08-14 12:23:49 +02:00
Éric Lemoine
a16a678ca7 Be stricter with types 2014-08-14 10:56:48 +02:00
Frederic Junod
14fc16b91d Add ol.TileRange#containsXY function 2014-08-14 10:50:19 +02:00
Frédéric Junod
8c3a72497c Merge pull request #2531 from fredj/debugtile-cleanup
Remove unneeded ol.DebugTile_#tileCoord_ variable
2014-08-14 10:17:36 +02:00
Frederic Junod
abc01b5f10 Remove unneeded ol.DebugTile_#tileCoord_ variable 2014-08-14 09:43:05 +02:00
Petr Sloup
5d31d2044a Added "state" property of olx.source.TileImageOptions to the olx externs 2014-08-14 09:32:27 +02:00
Petr Sloup
4b24eb6eb2 Added 'state' constructor option to Tile and TileImage sources 2014-08-13 17:11:29 +02:00
Frédéric Junod
ff209d8759 Merge pull request #2526 from fredj/xyz-retina
Fix incorrect maximum extent in xyz-retina example
2014-08-13 16:40:25 +02:00
tsauerwein
1205d0fe1e Fix ol.format.GML.readProjectionFromNode 2014-08-13 10:32:26 +02:00
Frederic Junod
3b817d8db3 Fix attribution in xyz-retina example 2014-08-13 08:59:42 +02:00
Paul Spencer
fb242b5316 Return rather than fail if resolution is not defined 2014-08-12 20:27:17 -04:00
Frederic Junod
2b8426fb47 Fix incorrect maximum extent in xyz-retina example 2014-08-12 18:09:00 +02:00
Frédéric Junod
4fb905170a Merge pull request #2525 from fredj/reuse-tileRange
Reuse tileRange in ol.renderer.Layer#manageTilePyramid
2014-08-12 17:53:56 +02:00
Éric Lemoine
9cf653f0f2 Merge pull request #2510 from elemoine/check
Make the check target build ol.js
2014-08-12 17:49:53 +02:00
Frederic Junod
f2638ddfbf Reuse tileRange in ol.renderer.Layer#manageTilePyramid
This avoids a lot of garbage.
2014-08-12 14:37:46 +02:00
Éric Lemoine
c16622be9e Merge pull request #2519 from probins/view
Small corrections to ol.View docs
2014-08-12 09:19:39 +02:00
Peter Robins
5247903a4a Small corrections to ol.View docs 2014-08-12 07:13:10 +00:00
Andreas Hocevar
45f24ee097 Merge pull request #2518 from probins/centercon
Remove centerConstraintType from API
2014-08-11 20:22:06 +02:00
Peter Robins
8bc5a928a7 Remove centerConstraintType from API 2014-08-11 17:15:08 +00:00
Andreas Hocevar
e69f065a23 Merge pull request #2479 from ahocevar/generate-externs
Node task to generate externs for OpenLayers 3
2014-08-11 18:29:04 +02:00
Peter Robins
ed2f2befdf Move createDefaultEditingStyles() to ol.style 2014-08-11 15:39:21 +00:00
Frédéric Junod
6ca3e83492 Merge pull request #2511 from fredj/cleanup
Remove unused goog.require
2014-08-11 15:31:00 +02:00
Éric Lemoine
b3b5572763 Make the check target build ol.js 2014-08-11 14:22:01 +02:00
tsauerwein
294afe16fe Fix compiler type errors 2014-08-11 14:04:31 +02:00
Frederic Junod
ddd16b6985 Remove unused goog.require 2014-08-11 13:49:30 +02:00
tsauerwein
3ff180b224 Implement read transforms for ol.format.WFS 2014-08-11 12:22:29 +02:00
tsauerwein
48ed2e861e Implement read/write transforms for ol.format.Polyline 2014-08-11 11:59:27 +02:00
Peter Robins
d9976ca207 Fix missing API docs 2014-08-11 09:35:16 +00:00
tsauerwein
f8560df793 Implement read transforms for ol.format.IGC 2014-08-11 10:51:34 +02:00
tsauerwein
9bc70f3459 Implement read/write transforms for ol.format.WKT 2014-08-11 10:17:31 +02:00
Andreas Hocevar
286db65d34 Use {*} instead of {goog.*} types in externs file 2014-08-09 09:05:54 +02:00
Andreas Hocevar
e294ca1868 Keep track of all symbols
This avoids that we add parent namespaces of symbols that were already
added because they have their own definition in the externs.
2014-08-09 08:53:25 +02:00
Andreas Hocevar
8a56f455f1 Define constructor before its members 2014-08-09 08:53:24 +02:00
Andreas Hocevar
63abbe2597 Prepend 'var ' for root symbols 2014-08-09 08:53:24 +02:00
Andreas Hocevar
9780e9f0c0 Dereference typedef 2014-08-09 08:53:24 +02:00
Andreas Hocevar
a35f361683 Build types only for olx.* symbols from externs 2014-08-09 08:53:24 +02:00
Andreas Hocevar
9e814f119f Do not process file type doclets 2014-08-09 08:53:24 +02:00
Andreas Hocevar
e8eebd8846 Allow to provide externs for inclusion in info.json 2014-08-09 08:53:24 +02:00
Tim Schaub
9db936fe87 Merge pull request #2508 from tschaub/post-install
Run closure-util install script after install.
2014-08-08 11:20:55 -07:00
Tim Schaub
bdfceaad06 Run closure-util install script after install
This needs to be run whenever our closure-util.json config changes.  It is harmless to run multiple times.
2014-08-08 11:08:37 -07:00
tsauerwein
bfb6c2e3b8 Implement read transforms for ol.format.OSMXML 2014-08-08 17:25:05 +02:00
tsauerwein
b05f880f7c Implement read/write transforms for ol.format.KML 2014-08-08 17:10:11 +02:00
tsauerwein
31dbbc6a8c Implement read/write transforms for ol.format.GPX 2014-08-08 15:50:55 +02:00
tsauerwein
e446738491 Implement read transforms for ol.format.TopoJSON 2014-08-08 11:43:53 +02:00
tsauerwein
3090a0af37 Fix GeoJSON.readFeaturesFromObject
Only feature collections worked properly.
2014-08-08 11:14:03 +02:00
tsauerwein
281fd3c6a9 Implement GML.readProjectionFromNode() 2014-08-08 10:54:40 +02:00
Éric Lemoine
8959aaafd5 Merge pull request #2477 from fredj/2475
Add new olx.format.KMLOptions#extractStyles property
2014-08-08 08:57:15 +02:00
Éric Lemoine
253d64d6f0 Merge pull request #2506 from elemoine/naming
Rename debugtilesource.js to tiledebugsource.js
2014-08-08 08:47:59 +02:00
Éric Lemoine
9d6fced8b4 Merge pull request #2505 from elemoine/graticule-style
Make stroke style of the graticule configurable
2014-08-08 08:43:28 +02:00
Éric Lemoine
9d9f29e1a2 debugtilesource.js changed to tiledebugsource.js 2014-08-08 08:32:44 +02:00
Marc Jansen
b60609d93c Make stroke style of the graticule configurable 2014-08-08 08:28:34 +02:00
Frédéric Junod
54406f5b2f Merge pull request #2416 from fredj/newer-closure-library
Upgrade closure-library version
2014-08-08 07:37:49 +02:00
Frédéric Junod
b8dca21286 Merge pull request #2470 from fredj/2470
EPSG:4326 example broken
2014-08-07 17:38:06 +02:00
Frederic Junod
134a4e220d Change WMS server in examples 2014-08-07 17:25:08 +02:00
Frederic Junod
190db934ee Always use goog.json.parse and set goog.json.USE_NATIVE_JSON=true 2014-08-07 17:14:50 +02:00
Frederic Junod
cf85079d22 Mark 'es5Strict' checks as errors 2014-08-07 17:14:49 +02:00
Frederic Junod
66da8fc393 Upgrade closure-library version 2014-08-07 17:14:49 +02:00
Frederic Junod
9e37aa796a Add new olx.format.KMLOptions#extractStyles property 2014-08-07 17:08:19 +02:00
Frédéric Junod
18b3c3eee7 Merge pull request #2501 from fredj/2501
bug fix to play nice with sencha touch 2.3
2014-08-07 16:58:19 +02:00
Frédéric Junod
5e4cfe875b Merge pull request #2503 from fredj/geolocation-bind-proj
Don't bind to ol.View projection property
2014-08-07 14:04:03 +02:00
Andreas Hocevar
e06fe37607 Merge pull request #2502 from ahocevar/template-test
Add unit test for greedy template replacement
2014-08-07 13:36:24 +02:00
Frederic Junod
0d6cc22bf0 Don't bind to ol.View projection property 2014-08-07 12:59:15 +02:00
Frederic Junod
d3b5a14a9b Don't use TouchList#item function 2014-08-07 12:25:19 +02:00
Andreas Hocevar
410b274b6a Add unit test for greedy template replacement 2014-08-07 12:18:03 +02:00
Andreas Hocevar
0a963d4615 Merge pull request #2497 from ahocevar/greedy-template
TileUrlFunction only replaces first instance of placeholder variables
2014-08-07 12:09:24 +02:00
Andreas Hocevar
08039e9894 Replace multiple placeholder occurrences in templates 2014-08-07 10:51:41 +02:00
Andreas Hocevar
2230349b52 Merge pull request #2498 from ahocevar/custom-def
Unprecise transormation used in example
2014-08-07 09:01:34 +02:00
Andreas Hocevar
52ee406938 Use definition with 7-parameter transform for EPSG:21781 2014-08-06 23:26:26 +02:00
Frédéric Junod
a1e33eabc5 Merge pull request #2499 from fredj/2294
Properly clear features in ol.source.ServerVector#clear
2014-08-06 10:42:31 +02:00
Tim Schaub
1864e03873 Merge pull request #2496 from probins/linear
Correct wrong docs for LinearRing.

Closes #2495.
2014-08-05 11:22:59 -06:00
Frédéric Junod
063532d509 Merge pull request #2455 from fredj/2455
Opacity of last layer is used in postcompose drawing
2014-08-05 17:18:57 +02:00
Frederic Junod
ae98ee8b4a Restore context opacity after drawing layers
Closes #2455
2014-08-05 16:05:23 +02:00
Evgeny Ushkalov
af05b3d031 Properly clear features in ol.source.ServerVector#clear 2014-08-05 15:39:42 +02:00
Peter Robins
d3683fcab9 Correct wrong docs for LinearRing 2014-08-05 11:08:44 +00:00
Andreas Hocevar
1bd522d96f Merge pull request #2481 from probins/styledoc
Improve docs for style
2014-08-05 12:01:19 +02:00
Peter Robins
bf3770a9da Improve docs for style 2014-08-05 09:04:35 +00:00
Andreas Hocevar
9575396aad Fix types in olx.js 2014-08-04 20:37:46 +02:00
Andreas Hocevar
53e12e7e47 Add typedefs for externs/olx.js contents 2014-08-04 20:37:46 +02:00
Andreas Hocevar
f0242a76c4 Include typedefs and types from olx.js 2014-08-04 20:37:46 +02:00
Andreas Hocevar
58f857bbb6 Test whether externs/olx.js is newer than build/info.json 2014-08-04 20:37:45 +02:00
Andreas Hocevar
33a627b7ce Include externs/olx.js in the info generation 2014-08-04 20:37:45 +02:00
Andreas Hocevar
a40170feb7 Include typedefs in externs 2014-08-04 20:37:45 +02:00
Andreas Hocevar
b2059b85d2 Add data for typedefs to info.json 2014-08-04 20:37:45 +02:00
Andreas Hocevar
26dae36a0b Extract types in a separate function 2014-08-04 20:37:45 +02:00
Andreas Hocevar
46b74cedf8 Only add object type definition when there is no constructor 2014-08-04 20:37:44 +02:00
Andreas Hocevar
94e2911697 Fix function type so the function is optional, not the return value 2014-08-04 20:37:44 +02:00
Andreas Hocevar
9517c0d433 Use 'Function' type instead of 'function' 2014-08-04 20:37:44 +02:00
Andreas Hocevar
66bde546c0 Avoid duplicate constructors 2014-08-04 20:37:44 +02:00
Andreas Hocevar
1e79acac20 Build externs file from info.json
This change adds all information that is needed to generate the externs
file to build/info.json, so tasks/generate-externs.js no longer needs
to spawn JSDoc.
2014-08-04 20:37:44 +02:00
Andreas Hocevar
0d86e4a237 Document the generate-externs.js task 2014-08-04 20:37:44 +02:00
Andreas Hocevar
4cb60feb40 Add generate-externs task to create build/ol-externs.js 2014-08-04 20:37:43 +02:00
Andreas Hocevar
0b622ba5e7 Add JSDoc configuration to generate ol3 externs 2014-08-04 20:37:43 +02:00
Andreas Hocevar
8e6711835c Move plugins one level up so they can be used by other configurations 2014-08-04 20:37:43 +02:00
Éric Lemoine
b6fa8908e5 Merge pull request #2494 from probins/geom
Document LinearRing as abstract class
2014-08-04 12:22:59 +02:00
Éric Lemoine
28c3993088 Merge pull request #2493 from elemoine/jquery-externs
Update jquery externs file
2014-08-04 12:06:04 +02:00
Peter Robins
652fcede22 Document LinearRing as abstract class 2014-08-04 10:05:01 +00:00
Éric Lemoine
41e5aa07bd Update jquery externs file 2014-08-04 11:07:17 +02:00
Andreas Hocevar
b88cb727c9 Merge pull request #2492 from probins/length
Document that geom.getArea/Length on projected plane
2014-08-04 10:40:38 +02:00
Peter Robins
c86569684e Document that geom.getArea/Length on projected plane 2014-08-04 08:02:01 +00:00
Frédéric Junod
7de98d8794 Merge pull request #2433 from fredj/collection
Templatize ol.Collection
2014-08-02 09:47:34 +02:00
Frédéric Junod
acf623f853 Merge pull request #2483 from fredj/view.projection
Remove projection from ol.View observable properties
2014-08-01 16:01:10 +02:00
Andreas Hocevar
65346d716d Add GeoJSON tests for write transforms 2014-07-31 17:55:43 +02:00
Andreas Hocevar
c4fdbacc12 Make options complete in ol.format.Feature already 2014-07-31 17:55:43 +02:00
Andreas Hocevar
4825cba48a Implement ReadOptions and WriteOptions for ol.format.GML 2014-07-31 17:55:43 +02:00
Andreas Hocevar
da0988f5f4 Add ReadOptions and WriteOptions for XML formats 2014-07-31 17:54:41 +02:00
Andreas Hocevar
b8a834b437 Add transform tests for GeoJSON readFeatures 2014-07-31 17:54:41 +02:00
Andreas Hocevar
46bba1fa3c Get projection from data if dataProjection is not specified 2014-07-31 17:54:41 +02:00
Andreas Hocevar
ee5f85df9f Add transformGeometry function to avoid repeated code 2014-07-31 17:54:41 +02:00
Andreas Hocevar
68d572e062 Better descriptions of options 2014-07-31 17:54:41 +02:00
Andreas Hocevar
464eb3ccf5 Make projection retrieval consistent 2014-07-31 17:54:41 +02:00
Andreas Hocevar
4c4a335448 Implement write transforms for ol.format.GeoJSON 2014-07-31 17:54:41 +02:00
Andreas Hocevar
8aa799850d Add write transform capability to ol.format.JSONFeature 2014-07-31 17:51:25 +02:00
Andreas Hocevar
b0d95b326a Introduce WriteOptions for feature formats 2014-07-31 17:51:25 +02:00
Andreas Hocevar
3245b8c6af Update read* signatures in ol.format.JSONFeature to use options 2014-07-31 17:51:25 +02:00
Andreas Hocevar
0ea55b7f27 Use a ReadFeatures object instead of sourceProjection/targetProjection 2014-07-31 17:51:25 +02:00
Éric Lemoine
225791c969 Add target/sourceProjection to ol.format.GeoJSON#read* 2014-07-31 17:51:24 +02:00
Éric Lemoine
d13261a21a Add target/sourceProjection to ol.format.JSONFeature#read* 2014-07-31 17:51:24 +02:00
Éric Lemoine
534a178a49 Add target/sourceProjection to ol.format.Feature#read* 2014-07-31 17:51:24 +02:00
Frédéric Junod
819fd83e06 Merge pull request #2473 from fredj/2472
Rename olx.FrameState#skippedFeatureUids_ skippedFeatureUids
2014-07-31 13:38:37 +02:00
Frederic Junod
8d9dbcbb2a Remove unneeded type cast 2014-07-31 12:11:27 +02:00
Frederic Junod
e69913900e Remove projection from ol.View observable properties 2014-07-31 12:10:35 +02:00
Frederic Junod
86268bcf58 Rename olx.FrameState#skippedFeatureUids_ skippedFeatureUids
To let the ol.Map#skippedFeatureUids_ property to be renamed by the compiler.
2014-07-31 11:30:39 +02:00
Frédéric Junod
80c6e019a7 Merge pull request #2471 from fredj/jsdoc
minor jsdoc and type annotation fixes
2014-07-31 11:14:08 +02:00
Frederic Junod
7a86bf58bf Improve type annotation 2014-07-31 09:44:52 +02:00
Frederic Junod
051da752f3 Improve type annotation in ol.format.GeoJSON 2014-07-31 09:43:06 +02:00
Frederic Junod
9b476e4ce3 Add the jsdoc ol.style namespace 2014-07-31 09:09:48 +02:00
Frederic Junod
0277026624 Stricter typing for ol.Collection 2014-07-30 09:38:16 +02:00
Frederic Junod
1048d59331 Remove unneeded type cast 2014-07-30 09:09:34 +02:00
Frederic Junod
93218e5db4 Templatize ol.Collection 2014-07-30 09:09:33 +02:00
Frédéric Junod
f99e9e40b7 Merge pull request #2467 from fredj/2460
Add workaround for mousewheel event name
2014-07-29 17:36:32 +02:00
Frédéric Junod
9e33ccad74 Merge pull request #2466 from fredj/unused-typedef
Remove unused ol.CoordinateArray typedef
2014-07-29 17:31:48 +02:00
Frederic Junod
3fce080d5a Add workaround for mousewheel event name
'DOMMouseScroll' for Gecko and 'mousewheel' otherwise.

See https://github.com/google/closure-library/pull/308
2014-07-29 17:10:26 +02:00
Frederic Junod
53be13a658 Remove unused ol.CoordinateArray typedef 2014-07-29 14:44:51 +02:00
Frédéric Junod
7b7070d723 Merge pull request #2458 from openlayers/cluster
Add clustering functionality
2014-07-29 14:10:49 +02:00
Andreas Hocevar
27d5a3cc4c Merge pull request #2463 from gingerik/externs-function-bodies
Remove function bodies from externs
2014-07-29 13:52:12 +02:00
Frédéric Junod
40e16557a9 Merge pull request #2464 from fredj/closure-library-issue-link
Update link to closure-library issue
2014-07-29 13:35:13 +02:00
Frederic Junod
4fa9083854 Update link to closure-library issue 2014-07-29 12:46:35 +02:00
Frederic Junod
06df648733 Add ol.source.Cluster
Initial code by @kenny806
2014-07-29 12:29:43 +02:00
Erik Timmers
077bcdd778 Remove function bodies from externs 2014-07-29 12:02:00 +02:00
Tim Schaub
77674c6728 Merge pull request #2448 from gingerik/wkt-docs
Fix WKT writers output type.
2014-07-28 17:47:10 -06:00
Frédéric Junod
ec8d3a45e4 Merge pull request #2423 from fredj/dispose
Dispose the tiles removed from the cache
2014-07-28 17:18:27 +02:00
Frédéric Junod
707648b828 Merge pull request #2457 from probins/patch-1
Remove reference to simple/whitespace in examples/readme
2014-07-28 12:22:11 +02:00
Peter Robins
8079590b49 Remove reference to simple/whitespace in examples/readme 2014-07-28 10:01:41 +01:00
Marc Jansen
495ad3de93 Merge pull request #2452 from marcjansen/test-typo
Fix typo in ol.Map test.
2014-07-28 09:36:28 +02:00
Marc Jansen
2e37a34459 Fix typo in ol.Map test. 2014-07-28 09:35:23 +02:00
Frédéric Junod
e729b3d423 Merge pull request #2449 from probins/patch-1
Improve wording of ol.Map description
2014-07-28 07:44:09 +02:00
Peter Robins
cff8d4c668 Improve wording of ol.Map description 2014-07-27 12:06:45 +01:00
Erik Timmers
76c883ea89 Fix WKT writers output type 2014-07-26 11:47:35 +02:00
Tim Schaub
4d0fbaedc1 Merge pull request #2446 from tschaub/version
Unconditionally add version info to the build header.
2014-07-25 15:33:30 -06:00
Tim Schaub
c3bddffecb Unconditionally add version info to the build header
This reworks the changes in #2442 so we always include the version info, regardless of whether the module is run as main or not.  This also addresses a few lint related issues.
2014-07-25 12:50:58 -06:00
Bart van den Eijnden
2814abc59d Merge pull request #2420 from gingerik/gpx-extensions
PR for GPX: read extensions tags
2014-07-25 20:15:43 +02:00
Antoine Abt
49299dfe44 Uncheck heavy layers by default 2014-07-25 17:04:00 +02:00
Tobias Sauerwein
05e9a47fd1 Merge pull request #2442 from tsauerwein/build-version
Write library version in build files
2014-07-25 16:37:12 +02:00
tsauerwein
9102647751 Write version in builds 2014-07-25 16:10:08 +02:00
Antoine Abt
338f86f774 More data in example 2014-07-25 16:02:56 +02:00
Antoine Abt
cb03648704 Limit map size 2014-07-25 16:02:56 +02:00
Bart van den Eijnden
f468239e71 Merge pull request #2394 from tonio/style_order
Give precedence to feature styles
2014-07-25 11:34:24 +02:00
Antoine Abt
4b8ceca8eb Move defaults style into style.js 2014-07-25 09:50:53 +02:00
Tim Schaub
10ffc8953b Merge pull request #2436 from tschaub/doc-link
Correct link to API docs.
2014-07-24 14:58:24 -06:00
Tim Schaub
d846fbc0b4 Correct link to API docs 2014-07-24 14:32:34 -06:00
Marc Jansen
f5bb790509 Merge pull request #2167 from elemoine/graticule
Add a Graticule component
2014-07-24 19:13:26 +02:00
Tim Schaub
9fd5c1370e Merge pull request #2316 from tschaub/layer-extent
Support for layers with limited extent.
2014-07-24 10:41:01 -06:00
Tim Schaub
caa0b568ad Remove extent option for sources
Most of our uses of source extent were cargo cult programming.  The source extent was seldom and inconsistently used.  Instead, layers can now be configured with an extent, and layer renderers limit rendering (and data requests) to the layer extent.

For vector sources, the `getExtent` method returns the extent of currently loaded features (this was the case before and after this change).  For tile based sources, we will likely want to allow easy construction of tile grids based on an extent (this is not possible before or after this change, but could be added later).
2014-07-24 10:30:06 -06:00
Tim Schaub
7bbd27e68e ol.tilegrid.TileGrid doesn't accept an extent option
Tile grids cannot currently be constructed with an extent (though we should perhaps provide a function that allows this - see 68815dca10 for an example).
2014-07-24 10:26:07 -06:00
Tim Schaub
2b0284a342 Only request tiles within the layer extent
Layer renderers are now responsible for requesting data within a limited extent.
2014-07-24 10:26:07 -06:00
Tim Schaub
234cff4de5 Limit image layer requests to layer extent
This has two nice consequences that can be seen in the wms-image.js and mapbuide-untiled.js examples:
 * no images are requested when you browse outside of the layer extent
 * when the layer extent is within the viewport extent, cached images are used since the intersecting extent is the same for multiple viewport extents
2014-07-24 10:26:07 -06:00
Tim Schaub
1daf36956c Layer extent option
If provided, the layer extent will be used to limit data requests and rendering.  If undefined, to limit will be imposed.
2014-07-24 10:26:07 -06:00
Tim Schaub
42f953d08d Function for getting extent intersection 2014-07-24 10:26:07 -06:00
Éric Lemoine
e5a0e736ca Add a sphere mollweide example 2014-07-24 17:59:56 +02:00
Éric Lemoine
2365e73bef Add a graticule example 2014-07-24 17:59:56 +02:00
Éric Lemoine
9bd1ab78fc Add Graticule component 2014-07-24 17:59:56 +02:00
Éric Lemoine
9c70a49fb0 Add ol.geom.flat.geodesic
Inspired by #1884 by @twpayne.
2014-07-24 17:59:56 +02:00
Éric Lemoine
9f19569144 Add a worldExtent to ol.proj.Projection 2014-07-24 17:59:56 +02:00
Antoine Abt
9de010c791 Merge pull request #2413 from tonio/logos
Revisit Logos
2014-07-24 17:25:07 +02:00
Frédéric Junod
c25b1e939e Merge pull request #2431 from probins/intro
Update introduction tutorial
2014-07-24 16:54:46 +02:00
Antoine Abt
d50f40dcce Type check with olx.LogoOptions 2014-07-24 16:40:34 +02:00
Antoine Abt
280a7c520f More complete doc for logo option 2014-07-24 15:22:20 +02:00
Antoine Abt
31c9f5806e Wording in docs 2014-07-24 15:22:19 +02:00
Antoine Abt
ba8077010a Add link support for source logos 2014-07-24 15:22:19 +02:00
Antoine Abt
c1f7db9611 Set type=button to avoid forms submit 2014-07-24 15:22:19 +02:00
Antoine Abt
a314203e12 Fixes wording in comments 2014-07-24 15:22:19 +02:00
Antoine Abt
a43c546667 Uncollapse when there’s only logos 2014-07-24 15:22:19 +02:00
Antoine Abt
a71714e8b6 Allow string & object to be passed as map logo 2014-07-24 15:22:18 +02:00
Andreas Hocevar
16cdd35f6d Test to make sure that feature styles take prececence 2014-07-24 14:37:45 +02:00
Andreas Hocevar
c1d49a8cef Update to use the correct default style function namespace 2014-07-24 14:31:12 +02:00
Peter Robins
b945147950 Update introduction tutorial 2014-07-24 11:08:20 +00:00
Frédéric Junod
b29195639f Merge pull request #2429 from fredj/reuse-pixel-for-coord
Reuse event pixel to compute the coordinate
2014-07-24 07:54:39 +02:00
Frederic Junod
b2e345c407 Reuse event pixel to compute the coordinate 2014-07-23 16:53:56 +02:00
Antoine Abt
7fbc4e3bff Rename ol3Logo to logo in map options 2014-07-23 16:27:01 +02:00
Frédéric Junod
d3e575339b Merge pull request #2427 from fredj/misc
Revert "Add FIXME"
2014-07-23 13:55:11 +02:00
Frederic Junod
9bcafc0fab Revert "Add FIXME"
This reverts commit a4afcd533f.

Code removed in 7fabff5ffa
2014-07-23 13:18:23 +02:00
Marc Jansen
8b7f80c64e Merge pull request #2425 from marcjansen/examples
Add examples to ol.coordinate functions
2014-07-23 09:26:47 +02:00
Marc Jansen
64c03d0f9c Add examples to ol.coordinate functions. 2014-07-23 09:15:50 +02:00
Tim Schaub
e81e030dcd Merge pull request #2424 from tschaub/build-css
Build css if source is newer.
2014-07-22 20:56:47 -06:00
Tim Schaub
288c997322 Build css if source is newer
Previously, build/ol.css wasn't getting rebuilt on updates to css/ol.css.
2014-07-22 14:04:52 -06:00
Frederic Junod
02ede1eafa Dispose the tiles removed from the cache 2014-07-22 17:49:26 +02:00
Frederic Junod
312d5a87b8 Automatically dispose the ViewportSizeMonitor 2014-07-22 17:47:20 +02:00
Frédéric Junod
1d22113420 Merge pull request #2421 from fredj/misc
miscellaneous documentation and coding style fixes
2014-07-22 15:37:06 +02:00
Frédéric Junod
962b94444c Merge pull request #2417 from probins/patch-1
Update buildcfg/readme
2014-07-22 15:30:53 +02:00
Frederic Junod
a8961877e8 Add link to the OSM XML documentation 2014-07-22 15:21:27 +02:00
Frederic Junod
8cf48eac4f Document options default value 2014-07-22 15:11:40 +02:00
Frederic Junod
7b7788973b Remove unnecessary newlines 2014-07-22 15:00:23 +02:00
Erik Timmers
2f9918f774 Add tests for GPX extensions 2014-07-22 13:20:09 +02:00
Erik Timmers
0309a620ea Add option to process GPX extensions nodes
Fixes #1791.
2014-07-22 13:02:53 +02:00
Peter Robins
ddfe11042b Update buildcfg/readme 2014-07-22 10:00:56 +01:00
Bart van den Eijnden
8e106a2c98 Merge pull request #2403 from bartvde/gpx-write
ol.format.GPX writeFeatures is not working
2014-07-22 10:51:05 +02:00
Andreas Hocevar
8d805c6403 Merge pull request #2415 from probins/debugtile
Document debugtilesource
2014-07-22 10:25:17 +02:00
Peter Robins
3f1f450d5c Document debugtilesource 2014-07-22 08:14:33 +00:00
Tobias Sauerwein
a9d68a1899 Merge pull request #2405 from tsauerwein/kinetic-fast
Improve kinetic effect when panning fast
2014-07-22 08:37:57 +02:00
Tim Schaub
e593e5fb60 Merge pull request #2412 from tschaub/unused-proj
Removing unused ol.proj.CH.
2014-07-21 14:33:02 -06:00
Peter Robins
eb8dc15d8d Additional clarifications for tasks/readme 2014-07-21 16:12:34 +00:00
Tim Schaub
74dbd2b3e5 Merge pull request #2404 from tschaub/builds
Two ways to use the library: advanced compilation (prod) or raw/concatenated (dev).
2014-07-21 09:39:32 -06:00
Tim Schaub
aa4ee80033 Removing unused ol.proj.CH 2014-07-21 09:28:48 -06:00
Andreas Hocevar
fa7ff506fc Merge pull request #2406 from ahocevar/scaleline-infinite
Infinite loop in ol.control.ScaleLine
2014-07-21 14:08:36 +02:00
Andreas Hocevar
eb71e8e92d Handle cases where the x-axis distance cannot be calculated 2014-07-21 12:20:51 +02:00
Frédéric Junod
82b921ff06 Merge pull request #2411 from fredj/createMouseEvent
Remove ol.pointer.PointerEvent.createMouseEvent
2014-07-21 11:07:42 +02:00
Frederic Junod
fee4c79757 Remove ol.pointer.PointerEvent.createMouseEvent
The externs declarations for MouseEvent are now fixed upstream
2014-07-21 09:51:26 +02:00
tsauerwein
73951394f9 Ensure that the first point for kinetic is valid 2014-07-21 09:05:32 +02:00
Marc Jansen
434bf0bf42 Merge pull request #2409 from vicb/patch-1
fix: typos in map.js
2014-07-20 17:37:16 +02:00
Victor Berchet
9838687d88 fix: typos in map.js 2014-07-20 17:24:09 +02:00
Tim Schaub
cee5b81ec2 Merge pull request #2408 from gingerik/wkt-apidoc
Fix apidoc for WKT format.
2014-07-19 13:28:46 -06:00
Erik Timmers
71b2bf73de Fix apidoc for WKT format 2014-07-18 22:01:17 +02:00
tsauerwein
02a2c5aceb Start earlier to log points for kinetic 2014-07-18 15:54:38 +02:00
Bart van den Eijnden
dbb72f5080 Conflate ol.format.GPX.V1_1 and ol.format.GXP into ol.format.GXP 2014-07-18 15:11:45 +02:00
Andreas Hocevar
b4f6baa613 Merge pull request #2401 from probins/layerbase
Fix issue with layergroup event docs
2014-07-18 14:19:35 +02:00
Tim Schaub
e9c6e58663 Removing the build-all target
The ol-all.json and ol.json build configurations differ only in their use of the manage_closure_dependencies Compiler option.  I don't think there is value in running both (there are plenty of other compiler options that we don't exercise in this same way).
2014-07-17 21:48:53 -06:00
Tim Schaub
737e063937 Two ways to run the hosted examples: compiled and raw
When viewing the hosted examples, people can load the compiled version of the library or load each script individually.
2014-07-17 21:42:55 -06:00
Tim Schaub
4dc601f30d Generate a ol-debug.js script useful for debugging
Instead of running everything through the Compiler just to remove whitespace, we provide a build that is a simple concatenation of all scripts in dependency order.  This build (ol-debug.js) should never be used in production (the same applies to the old ol-whitespace.js build).  Instead, the intention is that it be used to aid in debugging during development.
2014-07-17 21:33:02 -06:00
Tim Schaub
28a23a11b5 Remove ol-simple.js build
We've proven that we can, but that doesn't mean we should be building with `SIMPLE_OPTIMIZATIONS`.
2014-07-17 21:31:58 -06:00
Andreas Hocevar
3ac7cb58af Merge pull request #2402 from probins/plugins
Fix jshint issues in apidoc/plugins
2014-07-17 13:35:38 +02:00
Peter Robins
346ff9c186 Fix jshint issues in apidoc/plugins 2014-07-17 09:50:31 +00:00
Peter Robins
4dccb32545 Fix issue with layergroup event docs 2014-07-17 09:24:39 +00:00
Tim Schaub
ad272a1b3a Merge pull request #2399 from tschaub/functions
Annotate functions that are aliases for goog functions.
2014-07-17 01:11:50 -06:00
Tim Schaub
b0c0d077c9 Annotate always and never conditions as functions 2014-07-16 23:16:51 -06:00
Tim Schaub
12d94e1405 Document ol.inherits and annotate as a function 2014-07-16 23:16:30 -06:00
Paul Spencer
10aa2019e7 Merge pull request #2398 from probins/color
Add color to api docs
2014-07-16 19:35:45 -04:00
Peter Robins
2b1c96a7ea Add color to api docs 2014-07-16 19:50:06 +00:00
Andreas Hocevar
c9d44fe842 Merge pull request #2397 from probins/nav
Docs sidebar in alphanumeric sequence
2014-07-16 18:55:48 +02:00
Andreas Hocevar
e56f759574 Merge pull request #2395 from probins/defaults
Remove classdesc tag from control/interaction defaults
2014-07-16 18:52:23 +02:00
Peter Robins
6a0d08eafd Docs sidebar in alphanumeric sequence 2014-07-16 15:37:03 +00:00
Peter Robins
b77af6d416 Remove classdesc tag from control/interaction defaults 2014-07-16 12:54:18 +00:00
Antoine Abt
b7b5de659b Distinct style function types 2014-07-16 11:25:16 +02:00
Antoine Abt
60f1874766 Give precedence to feature style 2014-07-16 11:25:16 +02:00
Tim Schaub
0b9936107d Merge pull request #2377 from tschaub/portable-config
Make our build configs more portable by using the default src config.
2014-07-15 20:56:25 -06:00
Paul Spencer
7ca069de39 Merge pull request #2311 from probins/tilegrid
Improve docs for tilegrid
2014-07-15 21:12:27 -04:00
Paul Spencer
8383f60fcf Merge pull request #2349 from probins/projdocs
Improve docs for projection
2014-07-15 21:10:33 -04:00
Paul Spencer
aa9dab092a Merge pull request #2387 from bnare/patch-1
Update mapguidesource.js
2014-07-15 21:05:11 -04:00
Paul Spencer
38b36a09bd Merge pull request #2378 from pagameba/doc-feature
Improve documentation for ol.Feature
2014-07-15 20:36:06 -04:00
Tim Schaub
b96fb6ad3a Merge pull request #2345 from tschaub/no-static
Remove static and other attributes from the docs.
2014-07-15 16:54:27 -06:00
Tim Schaub
1cbedadf48 Merge pull request #2390 from tschaub/unit-conversion
Make ol.proj.METERS_PER_UNIT exportable.
2014-07-15 16:26:53 -06:00
Tim Schaub
1657ed2d23 Make ol.proj.METERS_PER_UNIT exportable
We need to apply the `@api` annotation to the object itself in order for it to be exportable.
2014-07-15 15:49:48 -06:00
Tim Schaub
7a26966c8d Merge pull request #2360 from gingerik/wkt-lexer
WKT lexer.
2014-07-15 15:39:31 -06:00
Paul Spencer
685265e1db Improve documentation for ol.Feature 2014-07-15 13:09:43 -04:00
bnare
9e3b46762b Update mapguidesource.js
Add a method updateParams to ol.source.MapGuide.
2014-07-15 17:04:19 +02:00
Erik Timmers
1e7dc5cd32 Add tests for empty & invalid WKT strings 2014-07-15 14:28:05 +02:00
Erik Timmers
4abc887f5d Encode empty geometries as WKT strings 2014-07-15 13:20:58 +02:00
Erik Timmers
fe8a72dce5 Allow for empty Point & GeometryCollection 2014-07-15 13:20:58 +02:00
Tim Schaub
0bd9be547d Merge pull request #2376 from tschaub/transitive
Add packages required by the build task to dependencies.
2014-07-14 17:59:02 -06:00
Tim Schaub
aecaa52cb1 Make our build configs more portable by using the default src config
If a `src` config is not provided, by default, all of the library sources are included.  There is some special handling in the build task to make sure all library sources are included regardless of the path to the build config.  When someone includes a `src` config, path patterns are assumed to be relative to the current working directory (unless overriden with the `cwd` config).  So, when you use the `src` config, your config is no longer portable.
2014-07-14 17:52:10 -06:00
Tim Schaub
4f7073d7aa For jsdoc to find plugins, we need to set the cwd
This allows the `build.js` (and the exports from `generate-info.js`) to be run with a different working directory.
2014-07-14 14:42:42 -06:00
Tim Schaub
4de2520109 Add packages required to build the library to dependencies
This allows other packages to depend on the ol3 package and get the build tools (devDependencies are not installed when they are transitive dependencies).  The justification here is that the ol3 package becomes useful to other packages when you are able to run the build.js task.  For this task to run all of its dependencies must be available.
2014-07-14 14:19:24 -06:00
Andreas Hocevar
4aa76977d2 Merge pull request #2374 from probins/patch-1
Remove duplication from contributing.md
2014-07-14 19:01:50 +02:00
Peter Robins
fe1131b850 Remove duplication from contributing.md 2014-07-14 17:00:28 +01:00
Tim Schaub
a2e7432e42 Merge pull request #2356 from tschaub/regenerate-info
Always regenerate info using all sources if any have changed.
2014-07-14 09:17:36 -06:00
Tim Schaub
d7f4a06f61 Merge pull request #2369 from probins/contribute
Move developer guide from wiki to CONTRIBUTING.md.
2014-07-14 08:59:17 -06:00
Antoine Abt
f57a364534 Merge pull request #2370 from gingerik/classlist
Use goog.dom.classlist functions (2)
2014-07-14 16:09:32 +02:00
Erik Timmers
bd08bfe6c8 Use goog.dom.classlist functions
The goog.dom.classes functions have now been deprecated.
See google/closure-library@97e8a0c
2014-07-14 15:15:16 +02:00
Peter Robins
313e313f7a Move developer guide from wiki to CONTRIBUTING.md 2014-07-14 11:26:49 +00:00
Andreas Hocevar
9131512598 Merge pull request #2367 from probins/collection
Improve Collection docs
2014-07-14 13:18:10 +02:00
Peter Robins
307ee09988 Improve Collection docs 2014-07-14 09:20:25 +00:00
Andreas Hocevar
3e2350b2a0 Merge pull request #2364 from probins/observable
Tag always exported methods as api/observable
2014-07-14 10:53:37 +02:00
Andreas Hocevar
29d581bbee Merge pull request #2365 from probins/patch-1
Fix missing backtick in ol.Object docs
2014-07-14 10:49:36 +02:00
Peter Robins
aa85318d78 Fix missing backtick in ol.Object docs 2014-07-14 09:47:50 +01:00
Peter Robins
97f9527f41 Tag always exported methods as api/observable 2014-07-14 08:23:17 +00:00
Erik Timmers
4c03b3b35c Parse WKT strings using a lexer/parser 2014-07-13 23:09:38 +02:00
Erik Timmers
621aafbdde Encode WKT strings statically 2014-07-13 22:36:12 +02:00
Andreas Hocevar
cc9acef01f Merge pull request #2358 from probins/patch-1
Change docs landing page to link to transformExtent
2014-07-13 17:19:35 +02:00
Marc Jansen
5cd202d50b Merge pull request #2355 from probins/mapelements
Document map DOM elements
2014-07-13 11:05:05 +02:00
Peter Robins
be09368359 Document map DOM elements 2014-07-13 07:47:47 +00:00
Peter Robins
3259b1078c Change docs landing page to link to transformExtent 2014-07-13 08:34:12 +01:00
Tim Schaub
7286c29fbc Merge pull request #2343 from tschaub/build-cleanups
Build cleanups.
2014-07-13 01:18:01 -06:00
Tim Schaub
847440f30a Merge pull request #2342 from tschaub/private-proj
Make internal proj constructors private.
2014-07-13 01:11:57 -06:00
Tim Schaub
f5830cc8e5 Unused JAVA executable 2014-07-12 14:46:05 -06:00
Tim Schaub
5010596ec0 Unused JAR executable 2014-07-12 14:45:20 -06:00
Tim Schaub
db431ebdc6 No reason for build.py to run generate-exports.js
The doc task does not use the generated exports.js file.
2014-07-12 14:43:50 -06:00
Tim Schaub
df2c14b7af Remove unnecessary linting of generated exports file 2014-07-12 14:43:50 -06:00
Tim Schaub
c93e80a14a Always regenerate info using all sources if any have changed
Because we don't know if a new or modified file includes changes to the class hierarchy, we regenerate info for all sources any time any one has changed.  An alternative would be to generate info first for the new or modified file and then (potentially) regenerate info for more source files in the class hierarchy, but this makes the generate-info.js task far more complicated.
2014-07-12 14:39:18 -06:00
Tim Schaub
543250c88a Merge pull request #2346 from tschaub/clean-css
Minify CSS.
2014-07-12 11:48:12 -06:00
Marc Jansen
59fe635b46 Merge pull request #2350 from probins/obj
Expand on docs for observable properties
2014-07-12 17:51:47 +02:00
Peter Robins
753727c15f Expand on docs for observable properties 2014-07-12 15:28:46 +00:00
Peter Robins
96ec96c4d5 Improve docs for projection 2014-07-12 11:31:38 +00:00
Tim Schaub
046ae42b38 Merge pull request #2347 from tschaub/render-sync
Fix the export map example.
2014-07-11 23:48:16 -06:00
Tim Schaub
a6f921d443 To force a download by setting the href, we need synchronous rendering 2014-07-11 21:49:57 -06:00
Tim Schaub
3e23da7c83 Minify CSS 2014-07-11 21:25:21 -06:00
Tim Schaub
aa4dbde841 Remove static and other attributes from the docs 2014-07-11 19:47:49 -06:00
Éric Lemoine
8c1ad54bd8 Merge pull request #2340 from tsauerwein/view-fitGeometry-maxZoom
Add maxZoom to ol.View.fitGeometry() options
2014-07-11 17:02:18 +02:00
tsauerwein
3b8e182856 Add maxZoom to ol.View.fitGeometry() options 2014-07-11 16:31:01 +02:00
Tim Schaub
521cbfb1b0 Make internal proj constructors private 2014-07-10 16:37:07 -06:00
Peter Robins
b396773183 Improve docs for tilegrid 2014-07-09 06:54:24 -04:00
317 changed files with 8351 additions and 3827 deletions

View File

@@ -4,18 +4,301 @@ Thanks for your interest in contributing to OpenLayers 3.
## Contributing Code
Our preferred means of receiving contributions is through [pull
requests](https://help.github.com/articles/using-pull-requests).
Our preferred means of receiving contributions is through [pull requests](https://help.github.com/articles/using-pull-requests). Make sure
that your pull request follows our pull request guidelines below before submitting it.
See the [Developer
Guide](https://github.com/openlayers/ol3/wiki/Developer-Guide) to get started
with OpenLayers 3 development. This guide provides information you should know
before creating pull requests.
This page describes what you need to know to contribute code to ol3 as a developer.
Note that, before accepting a contribution, we ask that you provide us
a Contributor License Agreement. If you are making your contribution as part of
work for your employer, please follow the guidelines on submitting a [Corporate
Contributor License Agreement](http://www.openlayers.org/ccla.txt). If you are
## Contributor License Agreement
Before accepting a contribution, we ask that you provide us a Contributor
License Agreement. If you are making your contribution as part of work for
your employer, please follow the guidelines on submitting a [Corporate
Contributor License Agreement](https://raw.github.com/openlayers/cla/master/ccla.txt). If you are
making your contribution as an individual, you can submit a digital [Individual
Contributor License
Agreement](https://docs.google.com/spreadsheet/viewform?formkey=dGNNVUJEMXF2dERTU0FXM3JjNVBQblE6MQ).
Contributor License Agreement](https://docs.google.com/spreadsheet/viewform?formkey=dGNNVUJEMXF2dERTU0FXM3JjNVBQblE6MQ).
## Setting up development environment
You will obviously start by
[forking](https://github.com/openlayers/ol3/fork_select) the ol3 repository.
### Travis CI
The Travis CI hook is enabled on the Github repository. This means every pull request
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:
* Git
* [Node.js](http://nodejs.org/)
* Python 2.6 or 2.7 with a couple of extra modules (see below)
* Java 7 (JRE and JDK)
The executables `git`, `java`, `jar`, and `python` should be in your `PATH`.
You can check your configuration by running:
$ ./build.py checkdeps
To install the Node.js dependencies run
$ npm install
To install the extra Python modules, run:
$ sudo pip install -r requirements.txt
or
$ cat requirements.txt | sudo xargs easy_install
depending on your OS and Python installation.
## Working with the build tool
As an ol3 developer you will need to use the `build.py` Python script. This is
the script to use to run the linter, the compiler, the tests, etc. Windows users
can use `build.cmd` which is a thin wrapper around `build.py`.
The `build.py` script is equivalent to a Makefile. It is actually based on
[pake](https://github.com/twpayne/pake/), which is a simple implementation of
`make` in Python.
The usage of the script is:
$ ./build.py <target>
where `<target>` is the name of the build target you want to execute. For
example:
$ ./build.py test
The main build targets are `serve`, `lint`, `build`, `test`, and `check`. The
latter is a meta-target that basically runs `lint`, `build`, and `test`.
The `serve` target starts a node-based web server, which we will refer to as the *dev server*. You'll need to start that server for running the examples and the tests in a browser. More information on that further down.
Other targets include `apidoc` and `ci`. The latter is the target used on Travis CI. See ol3's [Travis configuration file](https://github.com/openlayers/ol3/blob/master/.travis.yml).
## Running the `check` target
The `check` target is to be run before pushing code to GitHub and opening pull
requests. Branches that don't pass `check` won't pass the integration tests,
and have therefore no chance of being merged into `master`.
To run the `check` target:
$ ./build.py check
If you want to run the full suite of integration tests, see "Running the integration
tests" below.
## Running examples
To run the examples you first need to start the dev server:
$ ./build.py serve
Then, just point your browser <http://localhost:3000/examples> in your browser. For example <http://localhost:3000/examples/side-by-side.html>.
Run examples against the `ol.js` standalone build:
The examples can also be run against the `ol.js` standalone lib, just like the examples
[hosted](http://openlayers.github.com/ol3/master/examples/) on GitHub. Start by
executing the `host-examples` build target:
$ ./build.py host-examples
After running `host-examples` you can now open the examples index page in the browser, for example: <http://localhost/~elemoine/ol3/build/hosted/master/examples/>. (This assumes that the `hosted` directory is a web directory, served by Apache for example.)
Append `?mode=raw` to make the example work in full debug mode. In raw mode the OpenLayers and Closure Library scripts are loaded individually by the Closure Library's `base.js` script (which the example page loads and executes before any other script).
## Running tests
To run the tests in a browser start the dev server (`./build.py serve`) and open <http://localhost:3000/test/index.html> in the browser.
To run the tests on the console (headless testing with PhantomJS) use the `test` target:
$ ./build.py test
See also the test-specific [README](../blob/master/test/README.md).
## Running the integration tests
When you submit a pull request the [Travis continuous integration
server](https://travis-ci.org/) will run a full suite of tests, including
building all versions of the library and checking that all of the examples
work. You will receive an email with the results, and the status will be
displayed in the pull request.
To run the full suite of integration tests use the `ci` target:
$ ./build.py ci
Running the full suite of integration tests currently takes 5-10 minutes.
This makes sure that your commit won't break the build. It also runs JSDoc3 to
make sure that there are no invalid API doc directives.
## Adding examples
Adding functionality often implies adding one or several examples. This
section provides explanations related to adding examples.
The examples are located in the `examples` directory. Adding a new example
implies creating two files in this directory, an `.html` file and a `.js` file.
See `examples/simple.html` and `examples/simple.js` for instance.
The `.html` file needs to include a script tag with
`loader.js?id=<example_name>` as its `src`. For example, if the two files for
the example are `myexample.js` and `myexample.html` then the script tag's `src`
should be set to `myexample`.
You can use `simple.js` and `simple.html` as templates for new examples.
### Use of the `goog` namespace in examples
Short story: the ol3 examples should not use the `goog` namespace, except
for `goog.require`.
Longer story: we want that the ol3 examples work in multiple modes, with the
standalone lib (which has implications of the symbols and properties we
export), and compiled together with the ol3 library.
Compiling the examples together with the library makes it mandatory to declare dependencies with `goog.require` statements.
## Pull request guidelines
Your pull request must:
* Follow OpenLayers 3's coding style.
* Pass the integration tests run automatically by the Travis Continuous
Integration system.
* Address a single issue or add a single item of functionality.
* Contain a clean history of small, incremental, logically separate commits,
with no merge commits.
* Use clear commit messages.
* Be possible to merge automatically.
### The `check` build target
It is strongly recommended that you run
$ ./build.py check
before every commit. This will catch many problems quickly, and it is much
faster than waiting for the Travis CI integration tests to run.
The `check` build target runs a number of quick tests on your code. These
include:
* Lint
* Compile
* Tests
### Follow OpenLayers 3's coding style
OpenLayers 3 follows [Google's JavaScript Style
Guide](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml).
This is checked using the [Closure
Linter](https://developers.google.com/closure/utilities/) in strict mode. You
can run the linter locally on your machine before committing using the `lint`
target to `build.py`:
$ ./build.py lint
In addition to fixing problems identified by the linter, please also follow the
style of the existing OpenLayers 3 code, which includes:
* Always wrap the body of `for`, `if`, and `while` statements in braces.
* Class methods should be in alphabetical order.
* `var` declarations should not span multiple lines. If you cannot fit all
the declarations in a single line, then start a new `var` declaration on a
new line. Within a single line, variables should be declared in
alphabetical order.
* Do not use assignments inside expressions.
### Pass the integration tests run automatically by the Travis CI system
The integration tests contain a number of automated checks to ensure that the
code follows the OpenLayers 3 style and does not break tests or examples. You
can run the integration tests locally using the `ci` target:
$ ./build.py ci
### Address a single issue or add a single item of functionality
Please submit separate pull requests for separate issues. This allows each to
be reviewed on its own merits.
### Contain a clean history of small, incremental, logically separate commits, with no merge commits
The commit history explains to the reviewer the series of modifications to the
code that you have made and breaks the overall contribution into a series of
easily-understandable chunks. Any individual commit should not add more than
one new class or one new function. Do not submit commits that change thousands
of lines or that contain more than one distinct logical change. Trivial
commits, e.g. to fix lint errors, should be merged into the commit that
introduced the error. See the [Atomic Commit Convention on Wikipedia](http://en.wikipedia.org/wiki/Atomic_commit#Atomic_Commit_Convention) for more detail.
`git apply --patch` and `git rebase` can help you create a clean commit
history.
[Reviewboard.org](http://www.reviewboard.org/docs/codebase/dev/git/clean-commits/)
and [Pro GIT](http://git-scm.com/book/en/Git-Tools-Rewriting-History) have
explain how to use them.
### Use clear commit messages
Commit messages should be short, begin with a verb in the imperative, and
contain no trailing punctuation. We follow
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
for the formatting of commit messages.
Git commit message should look like:
Header line: explaining the commit in one line
Body of commit message is a few lines of text, explaining things
in more detail, possibly giving some background about the issue
being fixed, etc etc.
The body of the commit message can be several paragraphs, and
please do proper word-wrap and keep columns shorter than about
74 characters or so. That way "git log" will show things
nicely even when it's indented.
Further paragraphs come after blank lines.
Please keep the header line short, no more than 50 characters.
### Be possible to merge automatically
Occasionally other changes to `master` might mean that your pull request cannot
be merged automatically. In this case you may need to rebase your branch on a
more recent `master`, resolve any conflicts, and `git push --force` to update
your branch so that it can be merged automatically.

View File

@@ -2,9 +2,9 @@
[![Travis CI Status](https://secure.travis-ci.org/openlayers/ol3.png)](http://travis-ci.org/#!/openlayers/ol3)
Welcome to [OpenLayers 3](http://ol3js.org/)!
Welcome to [OpenLayers 3](http://openlayers.org/)!
Check out the [hosted examples](http://ol3js.org/en/master/examples/), the [workshop](http://ol3js.org/ol3-workshop/) or poke around the evolving [API docs](http://ol3js.org/en/master/apidoc/).
Check out the [hosted examples](http://openlayers.org/en/master/examples/), the [workshop](http://openlayers.org/ol3-workshop/) or poke around the evolving [API docs](http://openlayers.org/en/master/apidoc/).
Please don't ask questions in the github issue tracker but use [the mailing list](https://groups.google.com/forum/#!forum/ol3-dev) instead.

View File

@@ -1,13 +1,13 @@
/**
* Loader to add ol.css, ol.js and the example-specific js file to the
* documents.
*
* This loader is used for the hosted examples. It is used in place of the
* development loader (examples/loader.js).
*
* ol.js, ol-simple.js, ol-whitespace.js, and ol-deps.js are built
* by OL3's build.py script. They are located in the ../build/ directory,
* relatively to this script.
* The loader loads ol.js and the example's script in "production" mode; it
* loads Closure Library's base.js, ol-deps.js, the example's "goog.require"
* script, and the example's script in "development" mode.
*
* The ol.js and ol-deps.js scripts are built by OL3's build.py script.
* They are located in the ../build/ directory, relative to this script.
*
* The script must be named loader.js.
*
@@ -54,20 +54,11 @@
}
}
var oljs = 'ol.js', mode;
if ('mode' in pageParams) {
mode = pageParams.mode.toLowerCase();
if (mode == 'debug') {
mode = 'raw';
}
if (mode != 'advanced' && mode != 'raw') {
oljs = 'ol-' + mode + '.js';
}
}
var raw = pageParams.mode && pageParams.mode.toLowerCase() === 'raw';
var scriptId = encodeURIComponent(scriptParams.id);
if (mode != 'raw') {
document.write('<scr' + 'ipt type="text/javascript" src="../build/' + oljs + '"></scr' + 'ipt>');
if (!raw) {
document.write('<scr' + 'ipt type="text/javascript" src="../build/ol.js"></scr' + 'ipt>');
} else {
window.CLOSURE_NO_DEPS = true; // we've got our own deps file
document.write('<scr' + 'ipt type="text/javascript" src="../closure-library/closure/goog/base.js"></scr' + 'ipt>');

102
build.py
View File

@@ -16,10 +16,9 @@ from pake import ifind, main, output, rule, target, variables, virtual, which
if sys.platform == 'win32':
win = {
'CLEANCSS': './node_modules/.bin/cleancss',
'GIT': 'git.exe',
'GJSLINT': 'gjslint.exe',
'JAVA': 'java.exe',
'JAR': 'jar.exe',
'JSDOC': './node_modules/.bin/jsdoc',
'JSHINT': './node_modules/.bin/jshint',
'PYTHON': 'python.exe',
@@ -28,24 +27,6 @@ if sys.platform == 'win32':
sys_dir = os.environ.get('SYSTEMDRIVE')
program_files = os.environ.get('PROGRAMFILES')
java_home = os.environ.get('JAVA_HOME')
if not java_home:
# Following lines choose sensible defaults to guess JAVA_HOME in
# 32/64bit Program Files folder opting for the most current version.
search_term = os.path.join(sys_dir, os.sep, 'Program Files*', 'Java', 'jdk*')
found_jdks = sorted(glob.glob(search_term), key=lambda x: x[-8:])
if found_jdks:
java_home = found_jdks[-1]
if java_home:
if not which(win['JAVA']):
win['JAVA'] = os.path.join(java_home, 'bin', 'java.exe')
if not which(win['JAR']):
win['JAR'] = os.path.join(java_home, 'bin', 'jar.exe')
elif not which(win['JAVA']):
win['JAVA'] = os.path.join(program_files,
'Java', 'jre7', 'bin', 'java.exe')
if not which(win['GIT']):
win['GIT'] = os.path.join(program_files, 'Git', 'cmd', 'git.exe')
@@ -70,11 +51,10 @@ if sys.platform == 'win32':
setattr(variables, program, path)
else:
variables.CLEANCSS = './node_modules/.bin/cleancss'
variables.GIT = 'git'
variables.GJSLINT = 'gjslint'
variables.JSHINT = './node_modules/.bin/jshint'
variables.JAVA = 'java'
variables.JAR = 'jar'
variables.JSDOC = './node_modules/.bin/jsdoc'
variables.PYTHON = 'python'
variables.PHANTOMJS = './node_modules/.bin/phantomjs'
@@ -82,12 +62,10 @@ else:
variables.BRANCH = output(
'%(GIT)s', 'rev-parse', '--abbrev-ref', 'HEAD').strip()
EXECUTABLES = [variables.GIT, variables.GJSLINT, variables.JAVA, variables.JAR,
EXECUTABLES = [variables.CLEANCSS, variables.GIT, variables.GJSLINT,
variables.JSDOC, variables.JSHINT, variables.PYTHON,
variables.PHANTOMJS]
EXPORTS = 'build/exports.js'
EXAMPLES = [path
for path in ifind('examples')
if path.endswith('.html')
@@ -123,6 +101,10 @@ SPEC = [path
for path in ifind('test/spec')
if path.endswith('.js')]
TASKS = [path
for path in ifind('tasks')
if path.endswith('.js')]
SRC = [path
for path in ifind('src/ol')
if path.endswith('.js')
@@ -145,56 +127,36 @@ def report_sizes(t):
virtual('default', 'build')
virtual('ci', 'lint', 'jshint', 'build', 'build-all',
'test', 'build/examples/all.combined.js', 'check-examples', 'apidoc')
virtual('ci', 'lint', 'build', 'test',
'build/examples/all.combined.js', 'check-examples', 'apidoc')
virtual('build', 'build/ol.css', 'build/ol.js',
'build/ol-simple.js', 'build/ol-whitespace.js')
virtual('build', 'build/ol.css', 'build/ol.js', 'build/ol-debug.js')
virtual('check', 'lint', 'jshint', 'build/ol-all.js', 'test')
virtual('check', 'lint', 'build/ol.js', 'test')
virtual('todo', 'fixme')
@target('build/ol.css', 'build/ol.js')
@target('build/ol.css', 'css/ol.css')
def build_ol_css(t):
t.touch()
t.output('%(CLEANCSS)s', 'css/ol.css')
@target('build/ol.js', SRC, SHADER_SRC, 'buildcfg/ol.json')
@target('build/ol.js', SRC, SHADER_SRC, 'config/ol.json')
def build_ol_new_js(t):
t.run('node', 'tasks/build.js', 'buildcfg/ol.json', 'build/ol.js')
t.run('node', 'tasks/build.js', 'config/ol.json', 'build/ol.js')
report_sizes(t)
@target('build/ol-simple.js', SRC, SHADER_SRC, 'buildcfg/ol-simple.json')
def build_ol_simple_js(t):
t.run('node', 'tasks/build.js', 'buildcfg/ol-simple.json', 'build/ol-simple.js')
@target('build/ol-debug.js', SRC, SHADER_SRC, 'config/ol-debug.json')
def build_ol_debug_js(t):
t.run('node', 'tasks/build.js', 'config/ol-debug.json', 'build/ol-debug.js')
report_sizes(t)
@target('build/ol-whitespace.js', SRC, SHADER_SRC, 'buildcfg/ol-whitespace.json')
def build_ol_whitespace_js(t):
t.run('node', 'tasks/build.js', 'buildcfg/ol-whitespace.json', 'build/ol-whitespace.js')
report_sizes(t)
virtual('build-all', 'build/ol-all.js')
@target('build/ol-all.js', SRC, SHADER_SRC, 'buildcfg/ol-all.json')
def build_ol_all_js(t):
t.run('node', 'tasks/build.js', 'buildcfg/ol-all.json', 'build/ol-all.js')
@target(EXPORTS, SRC)
def build_exports_js(t):
t.run('node', 'tasks/generate-exports.js', EXPORTS)
for glsl_src in GLSL_SRC:
def shader_src_helper(glsl_src):
@target(glsl_src.replace('.glsl', 'shader.js'), glsl_src,
@@ -238,9 +200,9 @@ def examples_examples_list_js(t):
@target('build/examples/all.combined.js', 'build/examples/all.js',
SRC, SHADER_SRC, 'buildcfg/examples-all.json')
SRC, SHADER_SRC, 'config/examples-all.json')
def build_examples_all_combined_js(t):
t.run('node', 'tasks/build.js', 'buildcfg/examples-all.json',
t.run('node', 'tasks/build.js', 'config/examples-all.json',
'build/examples/all.combined.js')
report_sizes(t)
@@ -256,7 +218,7 @@ def examples_star_json(name, match):
# It would make more sense to use olx.js as an input file here. We use
# it as an externs file instead to prevent "Cannot read property '*' of
# undefined" error when running examples in "raw" or "whitespace" mode.
# Note that we use the proper way in buildcfg/examples-all.json, which
# Note that we use the proper way in config/examples-all.json, which
# is only used to check the examples code using the compiler.
content = json.dumps({
"exports": [],
@@ -278,6 +240,7 @@ def examples_star_json(name, match):
],
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"
],
"jscomp_error": [
@@ -296,6 +259,7 @@ def examples_star_json(name, match):
"duplicate",
"duplicateMessage",
"es3",
"es5Strict",
"externsValidation",
"fileoverviewTags",
"globalThis",
@@ -318,9 +282,6 @@ def examples_star_json(name, match):
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "ADVANCED",
"output_wrapper": "// OpenLayers 3. See http://ol3.js.org/\n(function(){%output%})();",
"use_types_for_optimization": True,
@@ -350,10 +311,10 @@ def serve(t):
virtual('lint', 'build/lint-timestamp', 'build/check-requires-timestamp',
'build/check-whitespace-timestamp')
'build/check-whitespace-timestamp', 'jshint')
@target('build/lint-timestamp', SRC, EXPORTS, EXAMPLES_SRC, SPEC, precious=True)
@target('build/lint-timestamp', SRC, EXAMPLES_SRC, SPEC, precious=True)
def build_lint_src_timestamp(t):
t.run('%(GJSLINT)s',
'--jslint_error=all',
@@ -365,7 +326,7 @@ def build_lint_src_timestamp(t):
virtual('jshint', 'build/jshint-timestamp')
@target('build/jshint-timestamp', SRC, EXPORTS, EXAMPLES_SRC, SPEC,
@target('build/jshint-timestamp', SRC, EXAMPLES_SRC, SPEC, TASKS,
precious=True)
def build_jshint_timestamp(t):
t.run(variables.JSHINT, '--verbose', t.newer(t.dependencies))
@@ -535,7 +496,7 @@ def build_check_requires_timestamp(t):
t.touch()
@target('build/check-whitespace-timestamp', SRC, EXPORTS, EXAMPLES_SRC,
@target('build/check-whitespace-timestamp', SRC, EXAMPLES_SRC,
SPEC, JSDOC_SRC, precious=True)
def build_check_whitespace_timestamp(t):
CR_RE = re.compile(r'\r')
@@ -572,10 +533,10 @@ virtual('apidoc', 'build/jsdoc-%(BRANCH)s-timestamp' % vars(variables))
@target('build/jsdoc-%(BRANCH)s-timestamp' % vars(variables), 'host-resources',
EXPORTS, SRC, SHADER_SRC,
ifind('apidoc/template'))
SRC, SHADER_SRC, ifind('config/jsdoc/api/template'))
def jsdoc_BRANCH_timestamp(t):
t.run('%(JSDOC)s', 'apidoc/index.md', '-c', 'apidoc/conf.json',
t.run('%(JSDOC)s', 'config/jsdoc/api/index.md',
'-c', 'config/jsdoc/api/conf.json',
'-d', 'build/hosted/%(BRANCH)s/apidoc')
t.touch()
@@ -637,8 +598,7 @@ def host_examples(t):
split_example_file(example, examples_dir % vars(variables))
t.cp_r('examples/data', examples_dir + '/data')
t.cp('bin/loader_hosted_examples.js', examples_dir + '/loader.js')
t.cp('build/ol.js', 'build/ol-simple.js', 'build/ol-whitespace.js',
build_dir)
t.cp('build/ol.js', 'build/ol-debug.js', build_dir)
t.cp('build/ol.css', css_dir)
t.cp('examples/index.html', 'examples/example-list.js',
'examples/example-list.xml', 'examples/Jugl.js',

View File

@@ -1,60 +0,0 @@
/**
* @fileoverview Generates JSON output based on exportable symbols (those with
* an api tag) and boolean defines (with a define tag and a default value).
*/
var assert = require('assert');
var fs = require('fs');
var path = require('path');
/**
* Publish hook for the JSDoc template. Writes to JSON stdout.
* @param {function} data The root of the Taffy DB containing doclet records.
* @param {Object} opts Options.
*/
exports.publish = function(data, opts) {
var cwd = process.cwd();
// get all doclets with the "api" property or define (excluding enums,
// typedefs and events)
var docs = data(
[{define: {isObject: true}}, {api: {isString: true}}],
{isEnum: {'!is': true}},
{kind: {'!is': 'typedef'}},
{kind: {'!is': 'event'}}).get();
// get symbols data, filter out those that are members of private classes
var symbols = [];
var defines = [];
docs.filter(function(doc) {
var include = true;
var constructor = doc.memberof;
if (constructor && constructor.substr(-1) === '_') {
assert.strictEqual(doc.inherited, true,
'Unexpected export on private class: ' + doc.longname);
include = false;
}
return include;
}).forEach(function(doc) {
if (doc.define) {
defines.push({
name: doc.longname,
description: doc.description,
path: path.join(doc.meta.path, doc.meta.filename),
default: doc.define.default
});
} else {
symbols.push({
name: doc.longname,
kind: doc.kind,
description: doc.classdesc || doc.description,
extends: doc.augments,
path: path.join(doc.meta.path, doc.meta.filename)
});
}
});
process.stdout.write(
JSON.stringify({symbols: symbols, defines: defines}, null, 2));
};

View File

@@ -1,65 +0,0 @@
{
"exports": ["*"],
"src": ["src/**/*.js"],
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/closure-compiler.js",
"externs/geojson.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js",
"externs/vbarray.js"
],
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"accessControls",
"ambiguousFunctionDecl",
"checkEventfulObjectDisposal",
"checkRegExp",
"checkStructDictInheritance",
"checkTypes",
"checkVars",
"const",
"constantProperty",
"deprecated",
"duplicateMessage",
"es3",
"externsValidation",
"fileoverviewTags",
"globalThis",
"internetExplorerChecks",
"invalidCasts",
"misplacedTypeAnnotation",
"missingGetCssName",
"missingProperties",
"missingProvide",
"missingRequire",
"missingReturn",
"newCheckTypes",
"nonStandardJsDocs",
"suspiciousCode",
"strictModuleDepCheck",
"typeInvalidation",
"undefinedNames",
"undefinedVars",
"unknownDefines",
"uselessCode",
"visibility"
],
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "ADVANCED",
"output_wrapper": "// OpenLayers 3. See http://ol3.js.org/\n(function(){%output%})();",
"use_types_for_optimization": true
}
}

View File

@@ -1,66 +0,0 @@
{
"exports": ["*"],
"src": ["src/**/*.js"],
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/closure-compiler.js",
"externs/geojson.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js",
"externs/vbarray.js"
],
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"accessControls",
"ambiguousFunctionDecl",
"checkEventfulObjectDisposal",
"checkRegExp",
"checkStructDictInheritance",
"checkTypes",
"checkVars",
"const",
"constantProperty",
"deprecated",
"duplicateMessage",
"es3",
"externsValidation",
"fileoverviewTags",
"globalThis",
"internetExplorerChecks",
"invalidCasts",
"misplacedTypeAnnotation",
"missingGetCssName",
"missingProperties",
"missingProvide",
"missingRequire",
"missingReturn",
"newCheckTypes",
"nonStandardJsDocs",
"suspiciousCode",
"strictModuleDepCheck",
"typeInvalidation",
"undefinedNames",
"undefinedVars",
"unknownDefines",
"uselessCode",
"visibility"
],
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "SIMPLE",
"output_wrapper": "%output%",
"use_types_for_optimization": false,
"manage_closure_dependencies": true
}
}

View File

@@ -1,66 +0,0 @@
{
"exports": ["*"],
"src": ["src/**/*.js"],
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/closure-compiler.js",
"externs/geojson.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js",
"externs/vbarray.js"
],
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"accessControls",
"ambiguousFunctionDecl",
"checkEventfulObjectDisposal",
"checkRegExp",
"checkStructDictInheritance",
"checkTypes",
"checkVars",
"const",
"constantProperty",
"deprecated",
"duplicateMessage",
"es3",
"externsValidation",
"fileoverviewTags",
"globalThis",
"internetExplorerChecks",
"invalidCasts",
"misplacedTypeAnnotation",
"missingGetCssName",
"missingProperties",
"missingProvide",
"missingRequire",
"missingReturn",
"newCheckTypes",
"nonStandardJsDocs",
"suspiciousCode",
"strictModuleDepCheck",
"typeInvalidation",
"undefinedNames",
"undefinedVars",
"unknownDefines",
"uselessCode",
"visibility"
],
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "WHITESPACE_ONLY",
"output_wrapper": "var CLOSURE_DEPS = false;\n%output%",
"use_types_for_optimization": false,
"manage_closure_dependencies": true
}
}

View File

@@ -1,12 +0,0 @@
# Build configs
This directory includes configuration files (json) for the tasks/build.js
build script.
Notes:
`use_types_for_optimization` is set to `false` for the SIMPLE and WHITESPACE
builds. If it was set to `true` we would get function names like
`ol_control_Control_prototype$setMap` in the compiled code when using the
SIMPLE compilation. `use_types_for_optimization` is only appropriate for
ADVANCED compilation. To be sure we also don't set it for WHITESPACE.

View File

@@ -1,3 +1,3 @@
{
"library_url": "https://github.com/google/closure-library/archive/ab89cf45c216615d73a2f5dea720afb9d3415d1f.zip"
"library_url": "https://github.com/google/closure-library/archive/946a7d39d4ffe08676c755b21d901e71d9904a3b.zip"
}

View File

@@ -18,6 +18,7 @@
],
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"
],
"jscomp_error": [
@@ -33,6 +34,7 @@
"deprecated",
"duplicateMessage",
"es3",
"es5Strict",
"externsValidation",
"fileoverviewTags",
"globalThis",
@@ -58,9 +60,6 @@
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "ADVANCED",
"output_wrapper": "// OpenLayers 3. See http://ol3.js.org/\n(function(){%output%})();",
"use_types_for_optimization": true,

View File

@@ -1,7 +1,7 @@
{
"opts": {
"recurse": true,
"template": "apidoc/template"
"template": "config/jsdoc/api/template"
},
"tags": {
"allowUnknownTags": true
@@ -17,12 +17,12 @@
},
"plugins": [
"node_modules/jsdoc/plugins/markdown",
"apidoc/plugins/inheritdoc",
"apidoc/plugins/interface",
"apidoc/plugins/typedefs",
"apidoc/plugins/events",
"apidoc/plugins/observable",
"apidoc/plugins/api"
"config/jsdoc/api/plugins/inheritdoc",
"config/jsdoc/api/plugins/interface",
"config/jsdoc/api/plugins/typedefs",
"config/jsdoc/api/plugins/events",
"config/jsdoc/api/plugins/observable",
"config/jsdoc/api/plugins/api"
],
"markdown": {
"parser": "gfm"

View File

@@ -30,7 +30,7 @@ Interactions for [vector features](ol.Feature.html)
<br>[Formats](ol.format.Feature.html) for reading/writing vector data
<br>[ol.format.WMSCapabilities](ol.format.WMSCapabilities.html)</td></tr>
<tr><th>Projections</th><th>2-way bindings</th><th>Other components</th></tr>
<tr><td><p>All coordinates and extents need to be provided in view projection (default: [EPSG:3857](ol.proj.EPSG3857.html)). To transform, use [ol.proj.transform()](ol.proj.html#transform) and [ol.extent.applyTransform()](ol.extent.html#applyTransform).</p>
<tr><td><p>All coordinates and extents need to be provided in view projection (default: EPSG:3857). To transform, use [ol.proj.transform()](ol.proj.html#transform) and [ol.proj.transformExtent()](ol.proj.html#transformExtent).</p>
[ol.proj](ol.proj.html)</td>
<td><p>[Objects](ol.Object.html) can be kept in sync using the [bindTo()](ol.Object.html#bindTo) method.</p>
<p>A [DOM Input](ol.dom.Input.html) class is available to bind Object properties to HTML Input elements.</p></td>

View File

@@ -72,7 +72,6 @@ function includeAugments(doclet) {
}
var api = [];
var augments = {};
var classes = {};
exports.handlers = {

View File

@@ -19,7 +19,7 @@ exports.handlers = {
parseComplete: function(e) {
var doclets = e.doclets;
var eventClass, doclet, i, ii, j, jj, event, fires;
var doclet, i, ii, j, jj, event, fires;
for (i = 0, ii = doclets.length - 1; i < ii; ++i) {
doclet = doclets[i];
if (doclet.fires) {

View File

@@ -87,7 +87,7 @@ exports.handlers = {
for (l = candidates.length - 1; l >= 0; --l) {
candidate = candidates[l];
if (candidate && !candidate.inheritdoc) {
stability = candidate.stability || incompleteDoclet.stability
stability = candidate.stability || incompleteDoclet.stability;
if (stability) {
incompleteDoclet.stability = stability;
for (key in candidate) {

View File

@@ -1,4 +1,3 @@
var util = require('util');
exports.defineTags = function(dictionary) {
var classTag = dictionary.lookUp('class');

View File

@@ -34,6 +34,9 @@ exports.handlers = {
} else if (doclet.name.indexOf('set') === 0) {
observable.readonly = false;
}
if (doclet.stability) {
observable.stability = doclet.stability;
}
if (!cls.observables) {
cls.observables = [];
}
@@ -44,7 +47,7 @@ exports.handlers = {
if (!cls.fires) {
cls.fires = [];
}
var event = 'ol.ObjectEvent#event:change:' + name.toLowerCase();
event = 'ol.ObjectEvent#event:change:' + name.toLowerCase();
if (cls.fires.indexOf(event) == -1) {
cls.fires.push(event);
}

View File

@@ -28,6 +28,10 @@ exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
if (doclet.meta.filename == 'olx.js') {
// do nothing if not marked @api
if (!doclet.stability) {
return;
}
if (doclet.kind == 'typedef') {
lastOlxTypedef = doclet;
olxTypes[doclet.longname] = [];

View File

@@ -79,14 +79,6 @@ function addSignatureTypes(f) {
f.signature = (f.signature || '') + '<span class="type-signature">'+(types.length? ' :'+types.join('|') : '')+' </span>';
}
function addAttribs(f) {
var attribs = helper.getAttribs(f);
if (attribs.length) {
f.attribs = '<span class="type-signature ' + (attribs[0] === 'static' ? 'static' : '') + '">' + htmlsafe(attribs.length ? attribs.join(',') : '') + ' </span>';
}
}
function shortenPaths(files, commonPrefix) {
// always use forward slashes
var regexp = new RegExp('\\\\', 'g');
@@ -198,11 +190,19 @@ function attachModuleSymbols(doclets, modules) {
*/
function buildNav(members) {
var nav = [];
if (members.namespaces.length) {
_.each(members.namespaces, function (v) {
// exclude 'olx' from sidebar
if (v.longname.indexOf('olx') !== 0) {
// merge namespaces and classes, then sort
var merged = members.namespaces.concat(members.classes);
merged.sort(function (a, b) {
if (a.longname > b.longname)
return 1;
if (a.longname < b.longname)
return -1;
return 0;
});
_.each(merged, function (v) {
// exclude 'olx' and interfaces from sidebar
if (v.longname.indexOf('olx') !== 0 && v.interface !== true) {
if (v.kind == 'namespace') {
nav.push({
type: 'namespace',
longname: v.longname,
@@ -225,13 +225,7 @@ function buildNav(members) {
})
});
}
});
}
if (members.classes.length) {
_.each(members.classes, function (v) {
// ignore interfaces
if (v.interface !== true) {
if (v.kind == 'class') {
nav.push({
type: 'class',
longname: v.longname,
@@ -255,9 +249,8 @@ function buildNav(members) {
})
});
}
});
}
}
});
return nav;
}
@@ -404,7 +397,6 @@ exports.publish = function(taffyData, opts, tutorials) {
if ( needsSignature(doclet) ) {
addSignatureParams(doclet);
addSignatureReturns(doclet);
addAttribs(doclet);
}
});
@@ -414,12 +406,10 @@ exports.publish = function(taffyData, opts, tutorials) {
if (doclet.kind === 'member') {
addSignatureTypes(doclet);
addAttribs(doclet);
}
if (doclet.kind === 'constant') {
addSignatureTypes(doclet);
addAttribs(doclet);
doclet.kind = 'member';
}
});

View File

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -52,4 +52,13 @@ $(function () {
$(window).on('resize', _onResize);
_onResize();
});
// show/hide unstable items
var unstable = $('.unstable');
var stabilityToggle = $('#stability-toggle');
stabilityToggle.change(function() {
unstable.toggle(!this.checked);
return false;
});
unstable.toggle(!stabilityToggle[0].checked);
});

View File

@@ -183,6 +183,10 @@ li {
font-size: 0.8em;
padding: 2px 4px;
}
td.description span.stability {
float: left;
margin-right: 0.5em;
}
span.type-signature.static {
margin-right: 3px;
}
@@ -282,7 +286,6 @@ span.type-signature.static {
width: 110px;
}
.main table .type {
width: 60px;
color: #aaa;
font-size: 12px;
}
@@ -369,3 +372,12 @@ footer {
.main .readme table ul li {
margin-bottom: 0;
}
.unstable {
display: none;
}
#stability {
color: white;
position: absolute;
top: 1em;
right: 8em;
}

View File

@@ -18,8 +18,11 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/"><img src="../resources/logo.png"> OpenLayers 3</a>
<a class="brand" href="/"><img src="../resources/logo.png" width="40"> OpenLayers 3</a>
<a class="brand" href="index.html">API Documentation</a>
<label id="stability">
<input type="checkbox" id="stability-toggle" checked> Stable Only
</label>
</div>
</div>
</div>

View File

@@ -9,7 +9,7 @@ if (data.type && data.type.names) {
});
}
?>
<dt>
<dt class="<?js= (data.stability && data.stability !== 'stable') ? 'unstable' : '' ?>">
<div class="nameContainer">
<h4 class="name" id="<?js= id ?>">
<?js= data.attribs + (data.scope === 'static' ? longname : name) + typeSignature ?>
@@ -20,7 +20,7 @@ if (data.type && data.type.names) {
<p class="summary"><?js= summary ?></p>
<?js } ?>
</dt>
<dd>
<dd class="<?js= (data.stability && data.stability !== 'stable') ? 'unstable' : '' ?>">
<?js if (data.description) { ?>
<div class="description">
<?js= data.description ?>

View File

@@ -2,7 +2,7 @@
var data = obj;
var self = this;
?>
<dt>
<dt class="<?js= (data.stability && data.stability !== 'stable') ? 'unstable' : '' ?>">
<div class="nameContainer<?js if (data.inherited) { ?> inherited<?js } ?>">
<?js if (data.stability || kind !== 'class') { ?>
<h4 class="name" id="<?js= id ?>">
@@ -23,7 +23,7 @@ var self = this;
<p class="summary"><?js= summary ?></p>
<?js } ?>
</dt>
<dd>
<dd class="<?js= (data.stability && data.stability !== 'stable') ? 'unstable' : '' ?>">
<?js if (data.description) { ?>
<div class="description">
@@ -67,7 +67,7 @@ var self = this;
description = eventDoclet.description.replace(/<[^>]*>/g, '');
}
?>
<li>
<li class="<?js= (eventDoclet || data).stability !== 'stable' ? 'unstable' : '' ?>">
<code><?js= self.linkto(f, type) ?></code>
<?js if (eventClassName) {
var eventClass = self.find({longname: eventClassName})[0];

View File

@@ -15,7 +15,6 @@ var self = this;
<?js if (item.type === 'namespace' &&
(item.members.length + item.typedefs.length + item.methods.length +
item.events.length > 0)) { ?>
<span class="static">static</span>
<?js } ?>
</span>
<ul class="members itemMembers">
@@ -40,7 +39,9 @@ var self = this;
<?js
item.typedefs.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<li data-name="<?js= v.longname ?>" class="<?js= v.stability !== 'stable' ? 'unstable' : ''?>">
<?js= self.linkto(v.longname, v.name) ?>
</li>
<?js
});
}
@@ -55,36 +56,9 @@ var self = this;
item.methods.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<?js
});
}
?>
</ul>
<ul class="fires itemMembers">
<?js
if (item.fires && item.fires.length) {
?>
<span class="subtitle">Fires</span>
<?js
item.fires.forEach(function (v) {
v = self.find({longname: v})[0] || {longname: v, name: v.split(/#?event:/)[1]};
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<?js
});
}
?>
</ul>
<ul class="events itemMembers">
<?js
if (item.events.length) {
?>
<span class="subtitle">Events</span>
<?js
item.events.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<li data-name="<?js= v.longname ?>" class="<?js= v.stability !== 'stable' ? 'unstable' : ''?>">
<?js= self.linkto(v.longname, v.name) ?>
</li>
<?js
});
}

View File

@@ -21,7 +21,7 @@
var setter = prop.readonly ? 'no' : 'yes';
?>
<tr>
<tr class="<?js= prop.stability !== 'stable' ? 'unstable' : '' ?>">
<td class="name"><code><?js= prop.name ?></code></td>
<td class="type">
<?js if (prop.type && prop.type.names) {?>

View File

@@ -71,7 +71,7 @@
if (!param) { return; }
?>
<tr>
<tr class="<?js= (param.stability && param.stability !== 'stable') ? 'unstable' : '' ?>">
<?js if (params.hasName) {?>
<td class="name"><code><?js= param.name.replace(/^opt_/, "") ?></code></td>
<?js } ?>
@@ -93,17 +93,8 @@
<?js } ?>
<td<?js= (param.subparams ? ' colspan=' + colspan : ' ') ?> class="description last">
<?js if (params.hasAttributes) {?>
<?js if (param.optional) { ?>
<span class="optional">optional</span>
<?js } ?>
<?js if (param.nullable) { ?>
<span class="nullable">nullable</span>
<?js } ?>
<?js if (param.variable) { ?>
<span class="repeatable">repeatable</span>
<?js } ?>
<?js if (param.stability) { ?>
<?js= self.partial('stability.tmpl', param) ?>
<?js } ?>
<?js= param.description ?><?js if (param.subparams) { ?>
<?js= self.partial('params.tmpl', param.subparams) ?>

View File

@@ -1,7 +1,7 @@
{
"opts": {
"recurse": true,
"template": "buildcfg/jsdoc/info"
"template": "config/jsdoc/info"
},
"tags": {
"allowUnknownTags": true
@@ -10,7 +10,8 @@
"includePattern": "\\.js$"
},
"plugins": [
"buildcfg/jsdoc/info/api-plugin",
"buildcfg/jsdoc/info/define-plugin"
"config/jsdoc/info/api-plugin",
"config/jsdoc/info/define-plugin",
"config/jsdoc/info/virtual-plugin"
]
}

View File

@@ -0,0 +1,192 @@
/**
* @fileoverview Generates JSON output based on exportable symbols (those with
* an api tag) and boolean defines (with a define tag and a default value).
*/
var assert = require('assert');
var fs = require('fs');
var path = require('path');
/**
* Publish hook for the JSDoc template. Writes to JSON stdout.
* @param {function} data The root of the Taffy DB containing doclet records.
* @param {Object} opts Options.
*/
exports.publish = function(data, opts) {
function getTypes(data) {
var types = [];
data.forEach(function(name) {
types.push(name.replace(/^function$/, 'Function'));
});
return types;
}
function replaceUnknownTypes(item) {
item.types.forEach(function(type, index) {
if (!(type in names)) {
item.types[index] = '*';
}
});
}
// get all doclets with the "api" property or define (excluding events) or
// with olx namespace
var classes = {};
var docs = data(
[
{define: {isObject: true}},
function() {
if (this.kind == 'class') {
if (!('extends' in this) || typeof this.api == 'string') {
classes[this.longname] = this;
return true;
}
}
return (typeof this.api == 'string' ||
this.meta && (/[\\\/]externs$/).test(this.meta.path));
}
],
{kind: {'!is': 'file'}},
{kind: {'!is': 'event'}}).get();
// get symbols data, filter out those that are members of private classes
var symbols = [];
var defines = [];
var typedefs = [];
var externs = [];
var base = [];
var augments = {};
var names = {};
docs.filter(function(doc) {
var include = true;
var constructor = doc.memberof;
if (constructor && constructor.substr(-1) === '_') {
assert.strictEqual(doc.inherited, true,
'Unexpected export on private class: ' + doc.longname);
include = false;
}
return include;
}).forEach(function(doc) {
var isExterns = (/[\\\/]externs$/).test(doc.meta.path);
if (isExterns && doc.longname.indexOf('olx.') === 0) {
if (doc.kind == 'typedef') {
typedefs.push({
name: doc.longname,
types: ['{}']
});
} else {
var typedef = typedefs[typedefs.length - 1];
var type = typedef.types[0];
typedef.types[0] = type
.replace(/\}$/, ', ' + doc.longname.split('#')[1] +
': (' + getTypes(doc.type.names).join('|') + ')}')
.replace('{, ', '{');
}
} else if (doc.define) {
defines.push({
name: doc.longname,
description: doc.description,
path: path.join(doc.meta.path, doc.meta.filename),
default: doc.define.default
});
} else if (doc.kind == 'typedef' || doc.isEnum === true) {
typedefs.push({
name: doc.longname,
types: getTypes(doc.type.names)
});
} else {
var types;
var symbol = {
name: doc.longname,
kind: doc.kind,
description: doc.classdesc || doc.description,
stability: doc.api,
path: path.join(doc.meta.path, doc.meta.filename)
};
if (doc.augments) {
symbol.extends = doc.augments[0];
}
if (doc.virtual) {
symbol.virtual = true;
}
if (doc.type) {
symbol.types = getTypes(doc.type.names);
}
if (doc.params) {
var params = [];
doc.params.forEach(function(param) {
var paramInfo = {
name: param.name
};
params.push(paramInfo);
paramInfo.types = getTypes(param.type.names);
if (typeof param.variable == 'boolean') {
paramInfo.variable = param.variable;
}
if (typeof param.optional == 'boolean') {
paramInfo.optional = param.optional;
}
if (typeof param.nullable == 'boolean') {
paramInfo.nullable = param.nullable;
}
});
symbol.params = params;
}
if (doc.returns) {
symbol.returns = {
types: getTypes(doc.returns[0].type.names)
};
if (typeof doc.returns[0].nullable == 'boolean') {
symbol.returns.nullable = doc.returns[0].nullable;
}
}
if (doc.tags) {
doc.tags.every(function(tag) {
if (tag.title == 'template') {
symbol.template = tag.value;
return false;
}
return true;
});
}
var target = isExterns ? externs : (doc.api ? symbols : base);
target.push(symbol);
names[symbol.name] = true;
if (doc.api && symbol.extends) {
while (symbol.extends in classes && !classes[symbol.extends].api &&
classes[symbol.extends].augments) {
symbol.extends = classes[symbol.extends].augments[0];
}
if (symbol.extends) {
augments[symbol.extends] = true;
}
}
}
});
base = base.filter(function(symbol) {
var pass = symbol.name in augments || symbol.virtual;
if (pass) {
if (symbol.params) {
symbol.params.forEach(replaceUnknownTypes);
}
if (symbol.returns) {
symbol.returns.forEach(replaceUnknownTypes);
}
}
return pass;
});
process.stdout.write(
JSON.stringify({
symbols: symbols,
defines: defines,
typedefs: typedefs,
externs: externs,
base: base
}, null, 2));
};

View File

@@ -0,0 +1,16 @@
/**
* Handle the interface and abstract annotations.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
var classTag = dictionary.lookUp('class');
dictionary.defineTag('interface', {
mustHaveValue: false,
onTagged: function(doclet, tag) {
classTag.onTagged.apply(this, arguments);
doclet.virtual = true;
}
});
};

3
config/ol-debug.json Normal file
View File

@@ -0,0 +1,3 @@
{
"exports": ["*"]
}

View File

@@ -1,6 +1,5 @@
{
"exports": ["*"],
"src": ["src/**/*.js"],
"compile": {
"externs": [
"externs/bingmaps.js",
@@ -15,6 +14,7 @@
],
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"
],
"jscomp_error": [
@@ -30,6 +30,7 @@
"deprecated",
"duplicateMessage",
"es3",
"es5Strict",
"externsValidation",
"fileoverviewTags",
"globalThis",
@@ -55,11 +56,8 @@
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "ADVANCED",
"output_wrapper": "// OpenLayers 3. See http://ol3.js.org/\n(function(){%output%})();",
"output_wrapper": "(function(){%output%})();",
"use_types_for_optimization": true,
"manage_closure_dependencies": true
}

3
config/readme.md Normal file
View File

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

View File

@@ -191,6 +191,7 @@ button.ol-full-screen-true:after {
text-align: right;
bottom: .5em;
right: .5em;
max-width: calc(100% - 1.3em);
}
.ol-attribution ul {
@@ -200,6 +201,7 @@ button.ol-full-screen-true:after {
line-height: 1.375em;
color: #000;
text-shadow: 0 0 2px #fff;
max-width: calc(100% - 3.6em);
}
.ol-attribution li {
display: inline;
@@ -219,6 +221,9 @@ button.ol-full-screen-true:after {
.ol-attribution.ol-collapsed ul {
display: none;
}
.ol-attribution.ol-logo-only ul {
display: block;
}
.ol-attribution:not(.ol-collapsed) {
background: rgba(255,255,255,0.8);
}
@@ -229,10 +234,17 @@ button.ol-full-screen-true:after {
height: 1.1em;
line-height: 1em;
}
.ol-attribution.ol-logo-only {
background: transparent;
bottom: .4em;
height: 1.1em;
line-height: 1em;
}
.ol-attribution.ol-uncollapsible img {
margin-top: -.2em;
max-height: 1.6em;
}
.ol-attribution.ol-logo-only button,
.ol-attribution.ol-uncollapsible button {
display: none;
}

View File

@@ -13,14 +13,14 @@ Below you'll find a complete working example. Create a new file, copy in the co
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="http://ol3js.org/en/{{ latest }}/css/ol.css" type="text/css">
<link rel="stylesheet" href="http://openlayers.org/en/{{ latest }}/css/ol.css" type="text/css">
<style>
.map {
height: 400px;
width: 100%;
}
</style>
<script src="http://ol3js.org/en/{{ latest }}/build/ol.js" type="text/javascript"></script>
<script src="http://openlayers.org/en/{{ latest }}/build/ol.js" type="text/javascript"></script>
<title>OpenLayers 3 example</title>
</head>
<body>
@@ -55,10 +55,10 @@ To include a map a web page you will need 3 things:
### Include OpenLayers
```xml
<script src="http://ol3js.org/en/{{ latest }}/build/ol.js" type="text/javascript"></script>
<script src="http://openlayers.org/en/{{ latest }}/build/ol.js" type="text/javascript"></script>
```
The first part is to include the JavaScript library. For the purpose of this tutorial, here we simply point to the ol3js.org website to get the whole library. In a production environment, we would build a custom version of the library including only the module needed for our application.
The first part is to include the JavaScript library. For the purpose of this tutorial, here we simply point to the openlayers.org website to get the whole library. In a production environment, we would build a custom version of the library including only the module needed for our application.
### `<div>` to contain the map

View File

@@ -16,7 +16,7 @@ It is also designed such that major new features, such as displaying 3D maps, or
OL3 is based on Google's Closure Tools. It makes heavy use of parts of the [__Closure Library__](https://developers.google.com/closure/library/). Using this to handle basics like DOM or event handling means the developers can concentrate on mapping functionality, and be sure that the underlying software is well-tested and cross-browser. Closure Library is specially designed to be optimized by the [__Closure Compiler__](https://developers.google.com/closure/compiler/). The 'advanced' optimizations that this provides offers a level of compression that far exceeds anything else available. OL3 has been designed to make full use of this.
## Public API
Using the advanced optimizations of the Closure Compiler means that properties and methods are renamed &ndash; `longMeaningfulName` might become `xB` &ndash; and so are effectively unusable in applications using the library. To be usable, they have to be explicitly `exported`. This means the exported names, those not renamed, effectively become the public API of the library. These __exportable__ properties and methods are marked in the source, and documented in the [API docs](../apidoc). This is the officially supported API of the library. A build containing all these exportable names is known as a __full build__. A hosted version of this is available, which can be used by any application.
Using the advanced optimizations of the Closure Compiler means that properties and methods are renamed &ndash; `longMeaningfulName` might become `xB` &ndash; and so are effectively unusable in applications using the library. To be usable, they have to be explicitly `exported`. This means the exported names, those not renamed, effectively become the public API of the library. These __exportable__ properties and methods are marked in the source, and documented in the [API docs](../../apidoc). This is the officially supported API of the library. A build containing all these exportable names is known as a __full build__. A hosted version of this is available, which can be used by any application.
Although Closure library functions are widely used within OL3, none of them are exported. You will see references to them (they are all in the `goog` namespace) in the API docs, but these are for information only. You can use the Closure library in your own applications if you like, but this is not required.
@@ -35,10 +35,10 @@ OL3 uses a similar object hierarchy to the Closure library. There is a top-level
* simple objects containing static properties and methods, such as `ol.animation`; these also have a lower-case initial
* types, which have an upper-case initial. These are mainly 'classes', which here means a constructor function with prototypal inheritance, such as `ol.Map` or `ol.layer.Vector` (the Vector class within the layer namespace). There are however other, simpler, types, such as `ol.Extent`, which is an array.
In the API docs, the index on the left lists the namespaces and simple objects first, followed by the classes.
Class namespaces, such as `ol.layer` have a base class type with the same name, such as `ol.layer.Layer`. These are mainly abstract classes, from which the other subclasses inherit.
Source files are similarly organised, with a directory for each class namespace. Names are however all lower-case, and the subclasses repeat the superclass type in their name, for example, `ol/layer/vectorlayer.js`.
The naming structure means that there are sometimes 2 objects with the same name but different initial, such as `ol.feature`, a simple object with static functions to be used with features, and `ol.Feature`, a class used to instantiate new features. These two objects are however stored in the same file, in this case, `ol/feature.js`
OL3 follows the convention that the names of private properties and methods, that is, those that are not part of the API, end in an underscore. In general, instance properties are private and accessed using accessors.

View File

@@ -1,17 +1,17 @@
goog.require('ol.BrowserFeature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.dom.Input');
goog.require('ol.has');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
function checkWebGL(evt) {
document.getElementById('no-webgl').style.display =
ol.BrowserFeature.HAS_WEBGL ? 'none' : '';
ol.has.WEBGL ? 'none' : '';
document.getElementById('has-webgl').style.display =
ol.BrowserFeature.HAS_WEBGL && !evt.glContext ? '' : 'none';
ol.has.WEBGL && !evt.glContext ? '' : 'none';
document.getElementById('webgl').style.display =
evt.glContext ? '' : 'none';
}

View File

@@ -1,6 +1,6 @@
goog.require('ol.BrowserFeature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.has');
goog.require('ol.layer.Tile');
goog.require('ol.source.MapQuest');
@@ -14,7 +14,7 @@ function setResetContrastButtonHTML() {
resetContrast.innerHTML = 'Contrast (' + layer.getContrast().toFixed(3) + ')';
}
if (!ol.BrowserFeature.HAS_WEBGL) {
if (!ol.has.WEBGL) {
var info = document.getElementById('no-webgl');
/**
* display error message

51
examples/cluster.html Normal file
View File

@@ -0,0 +1,51 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<title>Clustering example</title>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<h4 id="title">Clustering example</h4>
<p id="shortdesc">Example of using <code>ol.Cluster</code>.</p>
<div id="docs">
<p>See the <a href="cluster.js" target="_blank">cluster.js source</a> to see how this is done.</p>
</div>
<div id="tags">cluster vector</div>
</div>
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=cluster" type="text/javascript"></script>
</body>
</html>

80
examples/cluster.js Normal file
View File

@@ -0,0 +1,80 @@
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.geom.Point');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.Cluster');
goog.require('ol.source.MapQuest');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
goog.require('ol.style.Text');
var count = 20000;
var features = new Array(count);
var e = 4500000;
for (var i = 0; i < count; ++i) {
var coordinates = [2 * e * Math.random() - e, 2 * e * Math.random() - e];
features[i] = new ol.Feature(new ol.geom.Point(coordinates));
}
var source = new ol.source.Vector({
features: features
});
var clusterSource = new ol.source.Cluster({
distance: 40,
source: source
});
var styleCache = {};
var clusters = new ol.layer.Vector({
source: clusterSource,
style: function(feature, resolution) {
var size = feature.get('features').length;
var style = styleCache[size];
if (!style) {
style = [new ol.style.Style({
image: new ol.style.Circle({
radius: 10,
stroke: new ol.style.Stroke({
color: '#fff'
}),
fill: new ol.style.Fill({
color: '#3399CC'
})
}),
text: new ol.style.Text({
text: size.toString(),
fill: new ol.style.Fill({
color: '#fff'
})
})
})];
styleCache[size] = style;
}
return style;
}
});
var raster = new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
});
var raw = new ol.layer.Vector({
source: source
});
var map = new ol.Map({
layers: [raster, clusters],
renderer: 'canvas',
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});

File diff suppressed because one or more lines are too long

View File

@@ -32,7 +32,7 @@
<div class="span4">
<h4 id="title">Drag-and-Drop example</h4>
<p id="shortdesc">Example of using the drag-and-drop interaction. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map.</p>
<p id="shortdesc">Example of using the drag-and-drop interaction. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. There is no projection transform support, so this will only work with data in EPSG:4326 and EPSG:3857.</p>
<div id="docs">
<p>See the <a href="drag-and-drop.js" target="_blank">drag-and-drop.js source</a> to see how this is done.</p>
</div>

View File

@@ -9,11 +9,9 @@ goog.require('ol.source.TileWMS');
var layers = [
new ol.layer.Tile({
source: new ol.source.TileWMS({
url: 'http://vmap0.tiles.osgeo.org/wms/vmap0',
url: 'http://demo.opengeo.org/geoserver/wms',
params: {
'VERSION': '1.1.1',
'LAYERS': 'basic',
'FORMAT': 'image/jpeg'
'LAYERS': 'ne:NE1_HR_LC_SR_W_DR'
}
})
})

View File

@@ -31,7 +31,7 @@ if ('download' in exportPNGElement) {
var canvas = event.context.canvas;
exportPNGElement.href = canvas.toDataURL('image/png');
});
map.render();
map.renderSync();
}, false);
} else {
var info = document.getElementById('no-download');

View File

@@ -47,13 +47,13 @@ var positions = new ol.geom.LineString([],
// Geolocation Control
var geolocation = new ol.Geolocation(/** @type {olx.GeolocationOptions} */ ({
projection: view.getProjection(),
trackingOptions: {
maximumAge: 10000,
enableHighAccuracy: true,
timeout: 600000
}
}));
geolocation.bindTo('projection', view);
var deltaMean = 500; // the geolocation sampling period mean in ms

View File

@@ -30,8 +30,9 @@ var map = new ol.Map({
view: view
});
var geolocation = new ol.Geolocation();
geolocation.bindTo('projection', view);
var geolocation = new ol.Geolocation({
projection: view.getProjection()
});
var track = new ol.dom.Input(document.getElementById('track'));
track.bindTo('checked', geolocation, 'tracking');

View File

@@ -9,7 +9,7 @@
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<title>Get feature info example</title>
<title>GetFeatureInfo example (image layer)</title>
</head>
<body>
@@ -32,10 +32,10 @@
<div class="row-fluid">
<div class="span4">
<h4 id="title">GetFeatureInfo example</h4>
<h4 id="title">GetFeatureInfo example (image layer)</h4>
<p id="shortdesc">This example shows how to trigger WMS GetFeatureInfo requests on click for a WMS image layer.</p>
<div id="docs">
<p>See the <a href="getfeatureinfo.js" target="_blank">getfeatureinfo.js source</a> to see how this is done.</p>
<p>See the <a href="getfeatureinfo-image.js" target="_blank">getfeatureinfo-image.js source</a> to see how this is done.</p>
</div>
<div id="tags">getfeatureinfo</div>
</div>
@@ -51,7 +51,7 @@
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=getfeatureinfo" type="text/javascript"></script>
<script src="loader.js?id=getfeatureinfo-image" type="text/javascript"></script>
</body>
</html>

View File

@@ -0,0 +1,38 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Image');
goog.require('ol.source.ImageWMS');
var wmsSource = new ol.source.ImageWMS({
url: 'http://demo.opengeo.org/geoserver/wms',
params: {'LAYERS': 'ne:ne'},
serverType: 'geoserver'
});
var wmsLayer = new ol.layer.Image({
source: wmsSource
});
var view = new ol.View({
center: [0, 0],
zoom: 1
});
var map = new ol.Map({
layers: [wmsLayer],
target: 'map',
view: view
});
map.on('singleclick', function(evt) {
document.getElementById('info').innerHTML = '';
var viewResolution = /** @type {number} */ (view.getResolution());
var url = wmsSource.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, 'EPSG:3857',
{'INFO_FORMAT': 'text/html'});
if (url) {
document.getElementById('info').innerHTML =
'<iframe seamless src="' + url + '"></iframe>';
}
});

View File

@@ -0,0 +1,57 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<title>WMS GetFeatureInfo example (tile layer)</title>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div class="row-fluid">
<div class="span4">
<h4 id="title">WMS GetFeatureInfo example (tile layer)</h4>
<p id="shortdesc">This example shows how to trigger WMS GetFeatureInfo requests on click for a WMS tile layer.</p>
<div id="docs">
<p>See the <a href="getfeatureinfo-tile.js" target="_blank">getfeatureinfo-tile.js source</a> to see how this is done.</p>
</div>
<div id="tags">getfeatureinfo</div>
</div>
<div class="span4 offset4">
<div id="info" class="alert alert-success">
&nbsp;
</div>
</div>
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=getfeatureinfo-tile" type="text/javascript"></script>
</body>
</html>

View File

@@ -6,7 +6,8 @@ goog.require('ol.source.TileWMS');
var wmsSource = new ol.source.TileWMS({
url: 'http://demo.opengeo.org/geoserver/wms',
params: {'LAYERS': 'ne:ne'}
params: {'LAYERS': 'ne:ne'},
serverType: 'geoserver'
});
var wmsLayer = new ol.layer.Tile({
@@ -18,9 +19,6 @@ var view = new ol.View({
zoom: 1
});
var viewProjection = /** @type {ol.proj.Projection} */
(view.getProjection());
var map = new ol.Map({
layers: [wmsLayer],
target: 'map',
@@ -31,7 +29,7 @@ map.on('singleclick', function(evt) {
document.getElementById('info').innerHTML = '';
var viewResolution = /** @type {number} */ (view.getResolution());
var url = wmsSource.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, viewProjection,
evt.coordinate, viewResolution, 'EPSG:3857',
{'INFO_FORMAT': 'text/html'});
if (url) {
document.getElementById('info').innerHTML =

View File

@@ -25,6 +25,12 @@
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<div id="no-download" class="alert alert-error" style="display: none">
The "Export GPX" functionality requires a browser that supports the
<a href="http://caniuse.com/#feat=download">link download</a> attribute.
</div>
<a id="export-gpx" class="btn" download="map.gpx"><i class="icon-download"></i>Export GPX</a>
</div>
</div>
</div>

View File

@@ -1,7 +1,9 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.GPX');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.proj');
goog.require('ol.source.BingMaps');
goog.require('ol.source.GPX');
goog.require('ol.style.Circle');
@@ -9,6 +11,8 @@ goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var projection = ol.proj.get('EPSG:3857');
var raster = new ol.layer.Tile({
source: new ol.source.BingMaps({
imagerySet: 'Aerial',
@@ -45,7 +49,7 @@ var style = {
var vector = new ol.layer.Vector({
source: new ol.source.GPX({
projection: 'EPSG:3857',
projection: projection,
url: 'data/gpx/fells_loop.gpx'
}),
style: function(feature, resolution) {
@@ -89,3 +93,30 @@ $(map.getViewport()).on('mousemove', function(evt) {
map.on('click', function(evt) {
displayFeatureInfo(evt.pixel);
});
var exportGPXElement = document.getElementById('export-gpx');
if ('download' in exportGPXElement) {
var vectorSource = /** @type {ol.source.Vector} */ (vector.getSource());
exportGPXElement.addEventListener('click', function(e) {
if (!exportGPXElement.href) {
var features = [];
vectorSource.forEachFeature(function(feature) {
var clone = feature.clone();
clone.getGeometry().transform(projection, 'EPSG:4326');
features.push(clone);
});
var node = new ol.format.GPX().writeFeatures(features);
var string = new XMLSerializer().serializeToString(
/** @type {Node} */ (node));
var base64 = exampleNS.strToBase64(string);
exportGPXElement.href =
'data:gpx+xml;base64,' + base64;
}
}, false);
} else {
var info = document.getElementById('no-download');
/**
* display error message
*/
info.style.display = '';
}

51
examples/graticule.html Normal file
View File

@@ -0,0 +1,51 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<title>Graticule example</title>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<h4 id="title">Graticule example</h4>
<p id="shortdesc">This example shows how to add a graticule overlay to a map.</p>
<div id="docs">
<p>See the <a href="graticule.js" target="_blank">graticule.js source</a> to see how this is done.</p>
</div>
<div id="tags">graticule</div>
</div>
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=graticule" type="text/javascript"></script>
</body>
</html>

33
examples/graticule.js Normal file
View File

@@ -0,0 +1,33 @@
goog.require('ol.Graticule');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.OSM');
goog.require('ol.style.Stroke');
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
renderer: 'canvas',
target: 'map',
view: new ol.View({
center: ol.proj.transform([4.8, 47.75], 'EPSG:4326', 'EPSG:3857'),
zoom: 5
})
});
// Create the graticule component
var graticule = new ol.Graticule({
// the style to use for the lines, optional.
strokeStyle: new ol.style.Stroke({
color: 'rgba(255,120,0,0.9)',
width: 2,
lineDash: [0.5, 4]
})
});
graticule.setMap(map);

View File

@@ -8,6 +8,7 @@ goog.require('ol.source.Stamen');
var vector = new ol.layer.Heatmap({
source: new ol.source.KML({
extractStyles: false,
projection: 'EPSG:3857',
url: 'data/kml/2012_Earthquakes_Mag5.kml'
}),

View File

@@ -1,6 +1,6 @@
goog.require('ol.BrowserFeature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.has');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.BingMaps');
@@ -15,7 +15,7 @@ function setResetSaturationButtonHTML() {
layer.getSaturation().toFixed(2) + ')';
}
if (!ol.BrowserFeature.HAS_WEBGL) {
if (!ol.has.WEBGL) {
var info = document.getElementById('no-webgl');
/**
* display error message

View File

@@ -39,6 +39,7 @@ var styleFunction = function(feature, resolution) {
var vector = new ol.layer.Vector({
source: new ol.source.KML({
extractStyles: false,
projection: 'EPSG:3857',
url: 'data/kml/2012_Earthquakes_Mag5.kml'
}),

View File

@@ -46,6 +46,7 @@ var styleFunction = function(feature, resolution) {
var vector = new ol.layer.Vector({
source: new ol.source.KML({
extractStyles: false,
projection: 'EPSG:3857',
url: 'data/kml/timezones.kml'
}),

View File

@@ -1,11 +1,11 @@
goog.require('ol.BrowserFeature');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.has');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
if (!ol.BrowserFeature.HAS_WEBGL) {
if (!ol.has.WEBGL) {
var info = document.getElementById('no-webgl');
/**
* display error message

View File

@@ -1,7 +1,7 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Image');
goog.require('ol.source.MapGuide');
goog.require('ol.source.ImageMapGuide');
var mdf = 'Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition';
var agentUrl =
@@ -15,7 +15,8 @@ var bounds = [
var map = new ol.Map({
layers: [
new ol.layer.Image({
source: new ol.source.MapGuide({
extent: bounds,
source: new ol.source.ImageMapGuide({
projection: 'EPSG:4326',
url: agentUrl,
useOverlay: false,
@@ -24,8 +25,7 @@ var map = new ol.Map({
MAPDEFINITION: mdf,
FORMAT: 'PNG'
},
ratio: 2,
extent: bounds
ratio: 2
})
})
],

View File

@@ -25,9 +25,9 @@ var map = new ol.Map({
});
var geolocation = new ol.Geolocation({
projection: view.getProjection(),
tracking: true
});
geolocation.bindTo('projection', view);
geolocation.once('change:position', function() {
view.setCenter(geolocation.getPosition());
view.setResolution(2.388657133911758);

View File

@@ -3,7 +3,7 @@
Although the main purpose of these examples is to demonstrate how to use the API, they also serve other purposes in the development cycle, and so are not exactly as they would be in normal application code:
* every time the library changes, they are compiled together with the library as a basic check that they remain in sync with the library
* they use a special loader script to enable defining at run time which build mode (debug/whitespace/simple/advanced) to use
* they use a special loader script to enable defining at run time which build mode (raw/debug/advanced) to use
To enable this, examples have the following, not needed in application code:
@@ -13,4 +13,4 @@ To enable this, examples have the following, not needed in application code:
* html files load `example-behaviour.js` and some js files define the Map renderer option as `exampleNS.getRendererFromQueryString()`; application code would not need these
* in addition, examples use Twitter Bootstrap and jQuery; this is of course not a requirement - you may use whichever presentation/helper libraries you wish
See [Quick Start tutorial](http://ol3js.org/en/master/doc/quickstart.html) for a simple example of how application code would use the library.
See [Quick Start tutorial](http://openlayers.org/en/master/doc/quickstart.html) for a simple example of how application code would use the library.

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