Compare commits

...

2939 Commits

Author SHA1 Message Date
Tim Schaub
a549df459b Merge pull request #1690 from tschaub/style
Accept a style option and provide setStyle and getStyle methods.
2014-02-14 13:44:15 -07:00
Bart van den Eijnden
d71ccf64b9 Merge pull request #1682 from bartvde/issue-1682
better description for function typedef's params and return (r=@ahocevar)
2014-02-14 15:41:47 +01:00
Bart van den Eijnden
87d651af04 Add documentation for API typedef functions 2014-02-14 15:32:12 +01:00
Antoine Abt
1970285066 Merge pull request #1704 from tonio/fix_fullscreen
Prevent OSX Safari to display distorted map
2014-02-14 13:55:28 +01:00
Antoine Abt
bb50d5936f Prevent OSX Safari to display distorded map 2014-02-14 11:32:00 +01:00
ahocevar
f5c80f40bd Merge pull request #1700 from ahocevar/document-browserfeature
Make ol.BrowserFeature appear in API docs
2014-02-14 11:05:28 +01:00
ahocevar
7c29fe974b Merge pull request #1693 from ahocevar/no-load-on-interacting
Do not load tiles while interacting
2014-02-13 23:29:00 +01:00
ahocevar
adad57d481 Make the default effectively truthy 2014-02-13 22:52:48 +01:00
ahocevar
aa5a08a377 No typecast needed 2014-02-13 22:29:20 +01:00
ahocevar
3cc1dad2e0 Make loading parameters configurable 2014-02-13 22:08:26 +01:00
ahocevar
877e881a52 Do not load tiles while interacting
Especially on mobile devices, loading just a single tile can
cause major janks. During animations, it is fine to just skip
frames. But during user interaction (e.g. dragging), a more
instant visual feedback is desirable.
2014-02-13 21:03:21 +01:00
ahocevar
0200ee4f48 Make ol.BrowserFeature appear in API docs 2014-02-13 21:00:57 +01:00
ahocevar
4d0d2500a2 Merge pull request #1699 from ahocevar/logo-position
Fix logo position in apps without Bootstrap
2014-02-13 20:54:09 +01:00
Tim Schaub
e9b4e42d84 Create anonymous functions in an execution context with limited scope 2014-02-13 10:49:01 -07:00
Tim Schaub
0ec5201f3a Documentation and exports 2014-02-13 10:37:10 -07:00
Tim Schaub
66d5d1d277 Export setStyle for vector layer 2014-02-13 10:25:17 -07:00
Tim Schaub
f4585331f2 Add setStyle and getStyle to ol.Feature
As with vector layers and feature overlays, feature style can be set by calling
setStyle.  Calling getStyle returns what was passed to setStyle.  Internally, we call getStyleFunction.
2014-02-13 10:25:17 -07:00
Tim Schaub
477c369f6c As with the vector layer, feature overlays have getStyle and setStyle 2014-02-13 10:25:17 -07:00
Tim Schaub
a1f714f7dc Add setStyle and getStyle methods to ol.layer.Vector
The setStyle method accepts a single style, an array of styles, or a style function.  The getStyle method returns what was set.  Internally, we use the getStyleFunction method which always returns a function.  When calling setStyle, a change event is dispatched (fixes #1671).
2014-02-13 10:25:17 -07:00
Tim Schaub
a185fc963d Tests for get/setStyleFunction
It would be nice to also test the following:

    it('does not return user set property with the same name', function() {
      var feature = new ol.Feature({
        whatever: 'some value',
        styleFunction: 'another value'
      });
      expect(feature.getStyleFunction()).to.be(undefined);
    });

Unfortunately, in uncompiled code (or if we export `setStyleFunction`) this does not work.  Same goes for user set `id` properties (this will set our internal `id_` property).  See #1672.
2014-02-13 10:25:17 -07:00
Tim Schaub
620a38d3e9 Avoid clashing with user property names
Features are records with any number of user set values.  Separate from this, we rely on feature properties like the feature identifier and feature style.  The two (user properties and our internal properties) should not be mixed.
2014-02-13 10:25:17 -07:00
Tim Schaub
10d5073732 Give the draw interaction a style option 2014-02-13 10:25:17 -07:00
Tim Schaub
76f6961f83 Delete style option before passing to base 2014-02-13 10:25:16 -07:00
Tim Schaub
c64c24d3dc Common code for creating a style function 2014-02-13 10:25:16 -07:00
Tim Schaub
6abb691224 Give feature overlays a style option 2014-02-13 10:25:16 -07:00
Tim Schaub
b309c44020 Give vector image source a style option 2014-02-13 10:25:16 -07:00
Tim Schaub
1072f6dfa7 Use style option in vector layer examples
Providing a styleFunction option still works because the layer property is still named styleFunction.
2014-02-13 10:25:16 -07:00
Tim Schaub
5c21f24df5 Add tests for vector layer 2014-02-13 10:25:16 -07:00
Tim Schaub
499ba4ac8f Add a style option for vector layers
This can be a single ol.style.Style, and array of styles, or a style function.
2014-02-13 10:25:16 -07:00
ahocevar
672fc681ec Fix logo position in apps without Bootstrap 2014-02-13 18:12:26 +01:00
Bart van den Eijnden
990a852d4f Merge pull request #1675 from bartvde/wmts-example-fix
WMTS example is broken (r=@twpayne)
2014-02-13 16:25:59 +01:00
Bart van den Eijnden
56a39e936f Use APOLLO imagery WMTS in the WMTS example 2014-02-13 16:14:39 +01:00
Tom Payne
03beeafc21 Merge pull request #1681 from twpayne/line-dash
Fix management of line dash state
2014-02-13 15:40:39 +01:00
Tom Payne
dfc57e9db4 Fix handling of line dash state in ol.render.canvas.Immediate 2014-02-13 15:30:04 +01:00
Tom Payne
32e527458b Merge pull request #1694 from twpayne/protocol-relative-url
Use protocol relative URL in tile sources
2014-02-13 15:26:38 +01:00
Tom Payne
c31d423717 Merge pull request #1695 from twpayne/fix-render-node-leak
Save replay group, even if empty
2014-02-13 15:25:56 +01:00
Tom Payne
a178712f6b Only replay replay group if it is not empty 2014-02-13 14:47:47 +01:00
Tom Payne
5b8e85afbd Save replay group, even if it is empty 2014-02-13 14:36:59 +01:00
Tom Payne
02b4e7cced Use protocol relative URL in ol.source.Stamen 2014-02-13 13:48:06 +01:00
Tom Payne
bb7a1c11f6 Use protocol relative URL in ol.source.MapQuest 2014-02-13 13:47:13 +01:00
Frédéric Junod
0007b5e3ec Merge pull request #1692 from fredj/osm-tiles
Use protocol relative URL for OSM tiles
2014-02-13 12:14:59 +01:00
Frederic Junod
4cb4ab89db Use protocol relative URL for OSM tiles 2014-02-13 11:21:27 +01:00
ahocevar
20402a6e71 Merge pull request #1684 from ahocevar/ie-cursor
Changing pointer cursor in examples is broken
2014-02-12 23:30:06 +01:00
Tom Payne
5cc3983cdb Fix handling of line dash state in ol.render.canvas.Replay 2014-02-12 17:59:11 +01:00
Tom Payne
a74da436d2 Use ol.BrowserFeature.HAS_CANVAS_LINE_DASH in ol.render.canvas.Replay 2014-02-12 17:57:29 +01:00
Tom Payne
1924e2b9b3 Add detection of canvas line dash support 2014-02-12 15:56:01 +01:00
Antoine Abt
196f6cccfd Merge pull request #1689 from tonio/fix_modify
Check for geometries type instead of `instanceof`
2014-02-12 15:51:32 +01:00
Antoine Abt
f8a748d7f4 Fix MultiPoint modify 2014-02-12 15:26:57 +01:00
Antoine Abt
56a1f053ff Check geometry type instead of instanceof 2014-02-12 15:25:47 +01:00
Antoine Abt
715966a8d1 Add MultiPoint to modify example 2014-02-12 15:24:32 +01:00
Éric Lemoine
709c17192a Merge pull request #1686 from elemoine/icon-example
Show how to use ol.Feature#setStyleFunction in the icon example
2014-02-12 14:40:24 +01:00
Éric Lemoine
581b2d345d Show how to use ol.Feature#setStyleFunction in the icon example 2014-02-12 14:26:00 +01:00
ahocevar
e6e8037269 Merge pull request #1685 from ahocevar/google-no-rotation
Turn off rotation because Google does not support it
2014-02-12 12:25:45 +01:00
ahocevar
aa8bbe4c7b Turn off rotation because Google does not support it 2014-02-12 12:16:18 +01:00
ahocevar
b7757e6a1d Allow application developers to modify cursors
With this change, cursors can be set on the map target again.
2014-02-12 11:09:59 +01:00
Antoine Abt
0764ea99ee Merge pull request #1654 from tonio/vector-api-modify
Add Modify Interaction
2014-02-11 16:59:43 +01:00
Tom Payne
e0765240a2 Merge branch 'ie-compat' of git://github.com/Intermedix/ol3 into Intermedix-ie-compat 2014-02-11 16:54:39 +01:00
Frédéric Junod
b0698443ab Merge pull request #1679 from fredj/layer-swipe
Use 'input' event for HTML input range
2014-02-11 15:41:43 +01:00
Frederic Junod
cd8977fca1 Use 'input' event for HTML input range 2014-02-11 15:20:21 +01:00
Bart van den Eijnden
ee33cbc525 Merge pull request #1650 from bartvde/apidoc
missing link in api doc (r=@ahocevar)
2014-02-11 15:02:12 +01:00
Bart van den Eijnden
304e7c7df7 Add properties found in objectliterals.jsdoc to the API 2014-02-11 14:49:04 +01:00
Antoine Abt
03624b5f78 Check segment writers existence 2014-02-11 14:36:54 +01:00
Éric Lemoine
433fab0cbf Merge pull request #1678 from oterral/fix_exports
Add exports
2014-02-11 14:06:57 +01:00
oterral
3a7c80dfda Remove exports from ol.style.Image 2014-02-11 13:13:51 +01:00
oterral
8edcc7e161 Add exports for ol.style.Text 2014-02-11 12:33:12 +01:00
oterral
f122778c6d Add exports for ol.style.Icon 2014-02-11 12:20:00 +01:00
oterral
740b398341 Add exports for ol.style.Circle 2014-02-11 12:18:29 +01:00
Frédéric Junod
8536bb3d8f Merge pull request #1677 from fredj/xsd-from-string
Add ol.format.XSD.read*String functions
2014-02-10 16:34:46 +01:00
Frederic Junod
f06adff56c Add ol.format.XSD.readNonNegativeIntegerString function 2014-02-10 16:19:08 +01:00
Frederic Junod
f6629fae6c Add ol.format.XSD.readDecimalString function 2014-02-10 16:19:08 +01:00
Frederic Junod
e3deb03e71 Add ol.format.XSD.readBooleanString function 2014-02-10 16:19:08 +01:00
Antoine Abt
25ba60db9f Use closure for styles & fix case 2014-02-10 11:52:58 +01:00
Antoine Abt
919fbe335f Use strings for GeometryType in examples 2014-02-10 11:26:14 +01:00
Antoine Abt
f9b6eabfef %s/render.FeaturesOverlay/FeatureOverlay/ 2014-02-10 11:26:14 +01:00
Antoine Abt
0272659118 Remove useless style method 2014-02-10 11:26:14 +01:00
Antoine Abt
c95ffe381b Render style for Point inside GeometryCollection. 2014-02-10 11:26:14 +01:00
Antoine Abt
72675bf6ad Make interaction ctor only have an option object 2014-02-10 11:26:13 +01:00
Antoine Abt
5325af26d6 Store mouse last position to draw vertex at feature selection 2014-02-10 11:26:13 +01:00
Antoine Abt
9d591ba7ef Use Select interaction in modify interaction example. 2014-02-10 11:26:13 +01:00
Antoine Abt
e64766f01f Add support for GeometryCollection in modify interaction 2014-02-10 11:26:13 +01:00
Antoine Abt
a60203f931 Move segment writers in their own methods 2014-02-10 11:26:13 +01:00
Tim Schaub
ca0a6473c8 Merge pull request #1673 from tschaub/select-example
Clarify the style function signature.
2014-02-07 18:07:40 -07:00
Tim Schaub
5f81a3f745 Clarify the style function signature 2014-02-07 17:57:11 -07:00
Tim Schaub
d4ca02c92d Merge pull request #1670 from tschaub/draw-options
Options to draw interaction are not optional.
2014-02-07 17:18:41 -07:00
Tim Schaub
2fc15a5bf0 As it is currently used, opt_options is not optional
It would be nice if the compiler would warn us of things like this (accessing properties of undefined).
2014-02-07 13:48:32 -07:00
Tim Schaub
6db054353f Merge pull request #1663 from tschaub/popup
Fix popup anchor in icon example.
2014-02-07 11:26:07 -07:00
Tim Schaub
108b3266de Merge pull request #1665 from tschaub/roy-g-biv
Roy G. Biv.
2014-02-07 11:23:47 -07:00
Tim Schaub
ecf89b8e45 Merge pull request #1666 from tschaub/topojson-tweak
Don't render feature with all countries.
2014-02-07 11:22:55 -07:00
Tim Schaub
d288c5b4eb Don't render feature with all countries
The feature with undefined id is a multi-polygon representing all countries.  Instead of rendering all multi-polygons with a lower z-index, we just avoid rendering this single feature.
2014-02-07 11:09:45 -07:00
Tim Schaub
f3c764ce3c Roy G. Biv 2014-02-07 11:06:43 -07:00
Tim Schaub
2ad11608ce Anchor the popup to the top of the icon 2014-02-07 10:00:41 -07:00
Antoine Abt
ad1cec84a1 Add style for Geomettry Collection 2014-02-07 14:52:59 +01:00
Antoine Abt
1c4926b591 Ensure styles are defined in FeaturesOverlay 2014-02-07 14:52:59 +01:00
Antoine Abt
933ef64db1 Force remove vertexFeature when there’s no features left in FeaturesOverlay 2014-02-07 14:52:59 +01:00
Antoine Abt
fb637aedca Move variables declaration at the top 2014-02-07 14:52:59 +01:00
Antoine Abt
20ea1b5141 Bring MultiPolygons back in examples 2014-02-07 14:52:59 +01:00
Antoine Abt
a1d20182fe Make modify interaction use FeaturesOverlay
Instead of a whole map.
2014-02-07 14:52:58 +01:00
oterral
3155d681be Add modify feature interaction and its example 2014-02-07 14:52:57 +01:00
Éric Lemoine
5227d01572 Merge pull request #1660 from oterral/fix_drawend
Fix the feature sent  with the drawend event
2014-02-07 14:27:36 +01:00
Tom Payne
3d1e4db8ff Merge pull request #1658 from twpayne/vector-context-api-stability
Add API stability to ol.render.IVectorContext
2014-02-07 14:03:14 +01:00
Tom Payne
b5617cd204 Merge pull request #1659 from twpayne/no-enums-in-examples
No enums in examples
2014-02-07 14:02:48 +01:00
oterral
3bb90c5b4c Send the feature drawn with the drawend event 2014-02-07 13:45:13 +01:00
Tom Payne
b0c6fd7502 Add API stability to ol.render.IVectorContext 2014-02-06 22:51:15 +01:00
Tom Payne
dade8e4e1a Don't export ol.proj.Units 2014-02-06 22:44:17 +01:00
Tom Payne
55c99db238 Use string instead of ol.proj.Units enum in examples 2014-02-06 22:43:25 +01:00
Tom Payne
b901fba742 Allow ol.proj.Projection units option to be a string 2014-02-06 22:42:36 +01:00
Tom Payne
37d5a4af65 Don't export ol.source.wms.ServerType 2014-02-06 22:36:47 +01:00
Tom Payne
ae215c7c0b Remove no-longer-needed typecasts 2014-02-06 22:33:42 +01:00
Tom Payne
0475705a49 Don't use ol.source.wms.ServerType enum in examples 2014-02-06 22:33:42 +01:00
Tom Payne
d4ebfac74a Allow ol.source.{Image,Tile}WMS serverType option to be a string 2014-02-06 22:33:42 +01:00
Tom Payne
3408b8b835 Don't export ol.source.State 2014-02-06 22:33:42 +01:00
Tom Payne
88c8783271 Allow ol.source.Source state option to be a string 2014-02-06 22:33:42 +01:00
Tom Payne
e53d7e954b Don't export ol.control.ScaleLineUnits 2014-02-06 22:33:42 +01:00
Tom Payne
901af3c15f Use string instead of ol.control.ScaleLineUnits enum in examples 2014-02-06 22:33:37 +01:00
Tom Payne
84fd853dc1 Allow ol.control.ScaleLine units option to be a string 2014-02-06 22:33:37 +01:00
Tom Payne
2cef7b98fd Don't export ol.OverlayPositioning 2014-02-06 22:33:36 +01:00
Tom Payne
9af436b5a0 Use string instead of ol.OverlayPositioning enum in examples 2014-02-06 22:33:32 +01:00
Tom Payne
dc2bb57d18 Allow ol.Overlay positioning option to be a string 2014-02-06 22:33:32 +01:00
Tom Payne
14f40e6f47 Don't export ol.RendererHint 2014-02-06 22:33:32 +01:00
Tom Payne
a58aa0a40d Use string instead of ol.RendererHint enum in examples 2014-02-06 22:33:25 +01:00
Tom Payne
41f193e8b9 Allow ol.Map renderer option to be a string 2014-02-06 19:26:15 +01:00
Tom Payne
8701942d40 Merge pull request #1655 from twpayne/vector-context
Rename IRender to IVectorContext
2014-02-06 18:52:53 +01:00
Éric Lemoine
261832c629 Merge pull request #1657 from elemoine/renderer
Do not expose both renderer and renderers options
2014-02-06 18:37:27 +01:00
Tom Payne
55811b3a11 Update examples to use vectorContext property in render events 2014-02-06 18:03:28 +01:00
Tom Payne
09d5d31fc7 Rename ol.render.IRender to ol.render.IVectorContext 2014-02-06 18:03:27 +01:00
Éric Lemoine
57f77bb444 Merge pull request #1638 from elemoine/featureoverlay
Rename ol.render.FeaturesOverlay to ol.FeatureOverlay
2014-02-06 18:00:09 +01:00
Tom Payne
c6cc15fdc8 Merge pull request #1656 from twpayne/fix-igc-projection
Fix projection in IGC example
2014-02-06 17:03:21 +01:00
Éric Lemoine
1acc542bb6 Use the renderer map option in the examples 2014-02-06 16:56:15 +01:00
Éric Lemoine
09beba69ad Remove the map renderers option 2014-02-06 16:56:15 +01:00
Tom Payne
eb01c72b55 Add projection to igc example 2014-02-06 16:48:52 +01:00
Tom Payne
f1276e86a1 Add projection option to ol.source.IGC 2014-02-06 16:48:42 +01:00
Antoine Abt
8f9e2ea88d Merge pull request #1649 from tonio/geometrycollection_change
Make GeometryCollection propagate change events of its geometries.
2014-02-06 16:33:13 +01:00
Antoine Abt
f2c18fafb8 Make GeometryCollection dispatch change event'
When one of its component changes.
2014-02-06 15:55:02 +01:00
Éric Lemoine
45495869a5 Merge pull request #1653 from elemoine/select-options
Passing options to the select interaction is mandatory
2014-02-06 15:24:51 +01:00
Éric Lemoine
90155ad519 Passing options to the select interaction is mandatory 2014-02-06 15:07:08 +01:00
Tom Payne
b5da2d387b Merge pull request #1651 from twpayne/fix-rbush-remove
Fix ol.structs.RBush#remove
2014-02-06 13:56:24 +01:00
Tom Payne
c12f47befa Merge pull request #1652 from twpayne/fix-stroke-only-multipolygon
Ensure MultiPolygons are rendered if only one of fill and stroke are set
2014-02-06 13:54:41 +01:00
Tom Payne
2993efb04f Ensure MultiPolygons are rendered if only one of fill and stroke are set 2014-02-06 13:50:22 +01:00
Éric Lemoine
16b4c5c90e Merge pull request #1590 from elemoine/icon
Infinite loop on icon loading
2014-02-06 13:17:13 +01:00
Éric Lemoine
c2d0cab07a Add tests for ol.style.IconImageCache 2014-02-06 12:59:39 +01:00
Éric Lemoine
90c41523a2 Add tests for ol.renderer.vector 2014-02-06 12:59:39 +01:00
Éric Lemoine
d13d2fdc6a Remove a FIXME 2014-02-06 12:59:39 +01:00
Éric Lemoine
63aadc5c0f Factor out icon image loading code 2014-02-06 12:59:39 +01:00
Éric Lemoine
f9e04ad7d5 Use ol.renderer.Map#scheduleExpireIconCache 2014-02-06 12:59:39 +01:00
Éric Lemoine
b43dd6db44 Add ol.renderer.Map#scheduleExpireIconCache 2014-02-06 12:59:39 +01:00
Éric Lemoine
c2fe25ee26 Use the icon image cache 2014-02-06 12:59:39 +01:00
Éric Lemoine
065663b242 Introduce an icon image cache 2014-02-06 12:59:38 +01:00
Éric Lemoine
bf8520096e Vector image source uses new image style interface 2014-02-06 12:59:38 +01:00
Éric Lemoine
78aef2f58c Vector renderer uses new image style interface 2014-02-06 12:59:38 +01:00
Éric Lemoine
ae2b3359f8 Fix the kml format tests 2014-02-06 12:59:38 +01:00
Éric Lemoine
3626ff5b16 Icon images are handled by a separate class 2014-02-06 12:59:38 +01:00
Tom Payne
286284b0c4 Move remove from ol.structs.RBush to ol.structs.RBushNode 2014-02-06 12:48:52 +01:00
Tom Payne
7f64a09e3c Return, and check, boolean value from ol.structs.RBush#remove indicating whether value was removed 2014-02-06 12:48:51 +01:00
Tom Payne
09326519d3 Replace faulty iterative ol.structs.RBush#remove with less faulty recursive version 2014-02-06 12:48:51 +01:00
Frederic Junod
c94b78144f Fix test description 2014-02-06 12:48:51 +01:00
Frederic Junod
ce721bc42f Assert that an element is removed in ol.structs.RBush#remove_ 2014-02-06 12:48:51 +01:00
Éric Lemoine
e0db06c39a Merge pull request #1648 from elemoine/1648
Vector examples are broken
2014-02-06 12:25:24 +01:00
Éric Lemoine
95bef8d7d2 Fix vector examples 2014-02-06 10:40:09 +01:00
Antoine Abt
ef27ed7aef Add failing test for change event propagation 2014-02-06 10:31:01 +01:00
ahocevar
43e42d959d Merge pull request #1647 from openlayers/style-
Create styles only once
2014-02-06 08:28:43 +01:00
Tim Schaub
629558971d Merge pull request #1646 from tschaub/example-index
Remove unused classes info.
2014-02-05 22:35:00 -07:00
ahocevar
a4101d52cf Create styles only once 2014-02-06 05:47:34 +01:00
Tim Schaub
336ee808de The examples don't provide information on classes used 2014-02-05 20:17:50 -07:00
Austin Hyde
03b7d6ee92 Add jquery to examples for backwards compatibility with IE7/8 2014-02-05 15:42:58 -05:00
Austin Hyde
7930d1a129 If the map has a background, zIndex=-1 puts the layers behind the background 2014-02-05 15:42:22 -05:00
ahocevar
ef200e8b03 Merge pull request #1421 from ahocevar/google-integration
Example for obtaining a Google base map
2014-02-05 20:14:28 +01:00
ahocevar
0fa60fc0c6 Updating example to use the new vector API 2014-02-05 18:55:55 +01:00
ahocevar
6aef5eed74 Example for obtaining a Google base map
By simply defining the ol3 map as control on a GMaps map, we can
have a Google base map with arbitrary ol3 content on top. This
works with all ol3 renderers.
2014-02-05 17:59:00 +01:00
Tom Payne
2b46c037d7 Merge pull request #1644 from twpayne/keyboard-interaction-docs
Fix capitalisation of ol.Map in docs
2014-02-05 17:50:10 +01:00
Tom Payne
3436c7e6f9 Fix capitalisation of ol.Map in docs 2014-02-05 17:12:35 +01:00
Austin Hyde
298674d14f Only do the IE-safe event cloning in legacy IE 2014-02-05 10:32:14 -05:00
Austin Hyde
27f45d73ba Remove a now-unused define 2014-02-05 10:32:14 -05:00
Austin Hyde
ff4f4be8aa Fix typo, simplify a legacy IE check 2014-02-05 10:32:14 -05:00
Austin Hyde
9ffed5bf5f Add a compile-time flag to enable legacy IE support 2014-02-05 10:32:14 -05:00
Austin Hyde
74a9a155b1 Dispose of the IE dblclick listener, add goog.require 2014-02-05 10:32:14 -05:00
Austin Hyde
c9ca219286 Fix the root cause of the IE mouseup event bug.
When the event object is reference outside the call stack of the
original event handler (like in a setTimeout), accessing its
properties results in a "member not found" error. The solution is to
clone the event object and use the clone.
2014-02-05 10:32:14 -05:00
Austin Hyde
fb360c019e Fix line lengths from 6a83778 2014-02-05 10:31:16 -05:00
Austin Hyde
de3b315ad7 Round CSS offsets to nearest integer 2014-02-05 10:31:16 -05:00
Austin Hyde
dfe3927a12 Add assertion to verify layerRenderer is an instanceof ol.renderer.dom.Layer 2014-02-05 10:31:16 -05:00
Austin Hyde
b4d2ab5c13 Fix issue with DOM layers in wrong order
When removing/inserting layers back-to-back, the layer elements can
get out of order because createLayerRenderer always appends to the
layer pane. This makes it always reattach the layer node at the
correct index, ensuring correct layer ordering.
2014-02-05 10:31:16 -05:00
Austin Hyde
48cf5926b8 Fix IIFE invoking Canvas APIs that don't exist in early IE
Changed ol.interaction.Draw.defaultStyleFunction to be a getter, so
that it only calls Canvas APIs when needed, rather than on script load
2014-02-05 10:31:16 -05:00
Austin Hyde
b0849cc85c Wrap setOpacity to make it IE7-8 compatible 2014-02-05 10:31:15 -05:00
Austin Hyde
e16de6f8af Add support for scaling/translating transforms in IE 7-8
Adds support for the IE-specific Matrix filter and adds fixes
that enable IE 7-8 to render transformations without distortion
2014-02-05 10:31:15 -05:00
Austin Hyde
d891670950 Enable CSS transforms based on feature detection
Also adds the msTransform property for IE 9
2014-02-05 10:31:15 -05:00
Austin Hyde
d3b2b1cd9e Prevent the default image dragging behavior in IE < 9 2014-02-05 10:31:15 -05:00
Austin Hyde
1215f58241 Add explicit text nodes to zoom in/out controls
IE < 9 does not support CSS content properties, so the +/- does not
get rendered. Instead, add the +/- as text nodes when creating the
DOM nodes for the control.
2014-02-05 10:31:15 -05:00
Austin Hyde
eebf730b66 Improve control styling for legacy IE versions
IE < 9 does not support RGBA transparency, so instead fall back to
more readable alternatives where possible.

Conflicts:
	css/ol.css
2014-02-05 10:31:15 -05:00
Austin Hyde
f7ec082411 Fix weird IE7 bug with mouseup events
In IE7, handling some mouseup events are causing the native event
underlying goog.events.BrowserEvent to be invalidated, and it would
error out with a "Member not found" message. By passing the Closure
event rather than the native event around, we avoid this case.
2014-02-05 10:31:15 -05:00
Austin Hyde
0e05cd2263 If naturalWidth/Height properties aren't available, mimic them 2014-02-05 10:29:16 -05:00
Éric Lemoine
40276ab6ba Merge pull request #1216 from probins/keyboard
Clarify keyboard events and focus in docs
2014-02-05 16:14:04 +01:00
Tom Payne
0b4b6e2a75 Merge pull request #1639 from twpayne/kml-ie9
KML support for Internet Explorer
2014-02-05 14:23:07 +01:00
Éric Lemoine
7fb2088a22 Merge pull request #1623 from elemoine/1623
ol.interaction.DragBox.getGeometry returns non-closed polygon
2014-02-04 22:10:11 -08:00
Tim Schaub
c038c0cb06 Merge pull request #1640 from tschaub/reproject
Use projection option instead of reprojectTo for vector file sources.  The projection of the vector source represents the projection of the cached features.
2014-02-04 17:07:59 -08:00
Tom Payne
9495a8cec4 Merge pull request #1641 from htulipe/issue1585
Support parsing of kml:datetime
2014-02-04 14:01:45 -08:00
Hadrien Tulipe
b5fefc9ab3 Supprt parsing of kml:datetime (#1585)
This commit modifies the previous regex used to match following
datetimes:

- 2014
- 2014-02
- 2014-02-15

The new regex also matches dates that were matched by the previous
regex.

This commit also include a unit test for kml:dateTime parsing.
2014-02-04 22:36:42 +01:00
Tom Payne
184118082e Add FIXME to remove afterLoadXml 2014-02-04 22:20:45 +01:00
Tom Payne
a769bba65e Don't use getResponseXml() on IE 2014-02-04 22:20:45 +01:00
Tom Payne
7940a2fc64 Don't use problematic afterLoadXml function 2014-02-04 22:20:45 +01:00
Tom Payne
91e9b82fe1 Use ol.xml.getLocalName in ol.format.KML 2014-02-04 22:20:45 +01:00
Tom Payne
60fe8efca1 Add ol.xml.getLocalName 2014-02-04 22:20:43 +01:00
Tom Payne
17fba61bf2 Cope with undefined baseURI in ol.format.KML 2014-02-04 22:19:54 +01:00
Tom Payne
cd1355a699 Use ol.xml.isNode in ol.format.KML 2014-02-04 22:19:54 +01:00
Tom Payne
f22495871c Use ol.xml.isNode in ol.format.XML 2014-02-04 22:19:54 +01:00
Tom Payne
d2b7ab697f Add ol.xml.isNode 2014-02-04 22:19:54 +01:00
Tom Payne
cd7df92891 Use ol.xml.isDocument in ol.format.KML 2014-02-04 22:19:53 +01:00
Tom Payne
99aa9f207d Use ol.xml.isDocument in ol.format.XML 2014-02-04 22:19:53 +01:00
Tom Payne
a5bb4632e5 Add ol.xml.isDocument 2014-02-04 22:19:51 +01:00
Tom Payne
b63d0083f2 Use ol.xml.load in ol.source.VectorFile 2014-02-04 17:36:56 +01:00
Tom Payne
34e75e2653 Use ol.xml.load in ol.format.KML 2014-02-04 17:36:56 +01:00
Tom Payne
6f665c1280 Use ol.xml.load in ol.format.XML 2014-02-04 17:36:56 +01:00
Tom Payne
591a6cd9d2 Add ol.xml.load 2014-02-04 17:36:56 +01:00
Tom Payne
2b268e284e Fix closing tag in tests 2014-02-04 17:36:56 +01:00
Tom Payne
62114a73e2 Fix typo in tests 2014-02-04 17:36:56 +01:00
Éric Lemoine
dd526b5581 Simplify code in ol.render.Box#createGeometry_ 2014-02-04 17:18:23 +01:00
Éric Lemoine
3c981da304 Close the polygon created by ol.render.Box 2014-02-04 17:18:23 +01:00
Éric Lemoine
ceec3c985d Fix minor typo in vector-layer example 2014-02-04 16:45:42 +01:00
Éric Lemoine
d40440e028 Change olx.render.FeaturesOverlayOptions to olx.FeatureOverlayOptions 2014-02-04 16:43:56 +01:00
Éric Lemoine
356f86d8f7 Use featureOverlay in select interaction 2014-02-04 16:43:26 +01:00
Éric Lemoine
ff11ed2e1e Variable renaming in examples 2014-02-04 16:41:40 +01:00
Éric Lemoine
169bdbc16f goog.require in alphabetical order 2014-02-04 16:32:59 +01:00
Éric Lemoine
10f03374f3 Rename ol.render.FeaturesOverlay to ol.FeatureOverlay 2014-02-04 16:30:15 +01:00
Éric Lemoine
07b16edaf7 Rename render/featuresoverlay files to featureoverlay 2014-02-04 16:25:42 +01:00
Éric Lemoine
2f004b1147 Merge pull request #1145 from elemoine/keyboard
Add a keyboardEventTarget option to the map
2014-02-04 07:06:22 -08:00
Éric Lemoine
0c99e0a2ff Change keyboardEventTarget doc as requested by @probins 2014-02-04 15:52:40 +01:00
Éric Lemoine
a91e6e2442 Accept string for keyboardEventTarget option 2014-02-04 15:48:44 +01:00
Éric Lemoine
cf5aada8cf Add a keyboardEventTarget option to the map
This option allows specifying the element to listen to keyboard events on.
2014-02-04 15:46:50 +01:00
Frédéric Junod
c61e74f3dc Merge pull request #1637 from fredj/getfeatureinfo-example
Use evt.coordinate instead of evt.getCoordinate()
2014-02-04 06:46:07 -08:00
Tom Payne
016efd22d1 Merge pull request #1636 from twpayne/fix-text-bug
Fix typo in text rendering
2014-02-04 06:32:51 -08:00
Frederic Junod
0377df5e06 Use evt.coordinate instead of evt.getCoordinate() 2014-02-04 15:31:03 +01:00
BRANDLI Nicolas
447814e1a9 Fix typo in text rendering 2014-02-04 15:27:59 +01:00
Tom Payne
ea65836edd Merge pull request #1633 from twpayne/no-fail-in-topojson
Don't fail when no featues are found in ol.format.TopoJSON
2014-02-04 04:39:42 -08:00
Tom Payne
c5cf2ccd16 Merge pull request #1609 from twpayne/stricter-map-defined
Stricter map defined
2014-02-04 02:56:56 -08:00
Tom Payne
4beb48fa3d Assert that pixel is non-null when positioning overlay 2014-02-04 11:47:49 +01:00
Tom Payne
6455c920f6 Make ol.Map#isDef checking stricter 2014-02-04 11:47:49 +01:00
Tim Schaub
d2cd0808a8 Use projection option instead of reprojectTo
The projection option for vector file sources currently has no good meaning.  The reprojectTo option is used to set the projection for cached features.  This change makes it so the projection option is used for this purpose.  The getProjection method (not currently exported) can then be used to get the cached feature projection.

This also removes the default of 'EPSG:3857' for vector file sources.  If a projection is not configured, features will not be transformed.
2014-02-03 18:13:25 -07:00
Tim Schaub
a1e814134b Merge pull request #1630 from tschaub/parse-examples
Add task for parsing examples.
2014-02-03 16:36:42 -08:00
Tim Schaub
3ce6c295be Add task for parsing examples 2014-02-03 14:59:06 -07:00
Tom Payne
6e322bdf0b Don't fail when no featues are found in ol.format.TopoJSON 2014-02-03 19:01:24 +01:00
Tom Payne
b567b888b0 Merge pull request #1586 from twpayne/text
Add text rendering
2014-02-03 08:37:50 -08:00
Tom Payne
1f4ab82210 Highlight text in vector-layer example 2014-02-03 16:17:52 +01:00
Tom Payne
46396ad0f7 Set ol.render.canvas.defaultTextBaseline to middle 2014-02-03 15:49:06 +01:00
Tom Payne
81eed8ea01 Add text to vector-layer example 2014-02-03 15:49:06 +01:00
Tom Payne
b6a7bc1248 Add ol.render.canvas.TextReplay 2014-02-03 15:49:06 +01:00
Tom Payne
f24bd65f40 Add ol.render.canvas.Instruction.SET_TEXT_STYLE 2014-02-03 15:49:06 +01:00
Tom Payne
c29b88c0e2 Add ol.render.canvas.Instruction.DRAW_TEXT 2014-02-03 15:49:06 +01:00
Tom Payne
a780936805 Fix getInteriorPoint calculation to always return a point 2014-02-03 15:49:06 +01:00
Tom Payne
3c16e03ae2 Pass offset and end to ol.extent.extendFlatCoordinates 2014-02-03 15:49:05 +01:00
Tom Payne
60f104c895 Refactor ol.render.canvas.Immediate to render text 2014-02-03 15:49:05 +01:00
Tom Payne
745da0cfc3 Add ol.render.canvas.TextState 2014-02-03 15:49:05 +01:00
Tom Payne
e2b2c7f3e0 Add ol.render.canvas.StrokeState 2014-02-03 15:49:05 +01:00
Tom Payne
5645a7e603 Add ol.render.canvas.FillState 2014-02-03 15:49:05 +01:00
Tom Payne
37f31c25df Set ol.render.canvas.defaultTextAlign to center 2014-02-03 15:49:05 +01:00
Tom Payne
131f22efa5 Don't use a color name in ol.render.canvas.defaultStrokeStyle 2014-02-03 15:49:05 +01:00
Tom Payne
0137987015 Add scale to ol.style.Text 2014-02-03 15:49:04 +01:00
Tom Payne
16d98c5506 Remove ol.style.Text.equals 2014-02-03 15:49:04 +01:00
Tom Payne
09027316f5 Add text rendering to ol.renderer.vector 2014-02-03 15:49:04 +01:00
Tom Payne
090e3cbdd6 Add ol.render.IRender#drawText 2014-02-03 15:49:04 +01:00
Tom Payne
fec7d21f62 Add ol.render.ReplayType.TEXT 2014-02-03 15:49:04 +01:00
Tom Payne
4fb82961df Replace ol.geom.MultiPolygon#getInteriorPoints with getFlatInteriorPoints 2014-02-03 15:49:04 +01:00
Tom Payne
40eb21f445 Replace ol.geom.Polygon#getInteriorPoint with getFlatInteriorPoint 2014-02-03 15:49:04 +01:00
Tom Payne
e251527284 Make ol.geom.flat.linearRingssGetInteriorPoints return flat coordinates 2014-02-03 15:49:03 +01:00
Tom Payne
db4c7d5d74 Make ol.geom.flat.linearRingsGetInteriorPoint return flat coordinates 2014-02-03 15:49:03 +01:00
Tom Payne
a37199675c Add ol.geom.MultiLineString#getFlatMidpoints 2014-02-03 15:49:03 +01:00
Tom Payne
8e46c91bae Add ol.geom.LineString#getFlatMidpoint 2014-02-03 15:49:03 +01:00
Tom Payne
155d204938 Make ol.geom.flat.lineStringInterpolate return flat coordinates 2014-02-03 15:49:03 +01:00
Tom Payne
23ade59d2f Add FIXME 2014-02-03 15:49:03 +01:00
Tom Payne
846d75bf77 Remove unnecessary typecast 2014-02-03 15:49:03 +01:00
Tom Payne
8731766f63 Merge pull request #1626 from twpayne/api-stability
Add @todo stability experimental to many classes and methods
2014-02-03 06:47:43 -08:00
Tom Payne
6f0947a697 Add stability annotation to ol.source.ImageCanvas 2014-02-03 14:59:16 +01:00
Tom Payne
4917cc8437 Add stability annotation to ol.source.ImageVector 2014-02-03 14:59:16 +01:00
Tom Payne
33dd1371c8 Add stability annotation to ol.interaction.Select 2014-02-03 14:59:15 +01:00
Tom Payne
b43148982a Add stability annotation to ol.interaction.Draw 2014-02-03 14:59:15 +01:00
Tom Payne
0413dcb562 Add stability annotation to ol.render.FeaturesOverlay 2014-02-03 14:59:15 +01:00
Tom Payne
76145fde74 Add stability annotation to ol.layer.Vector 2014-02-03 14:59:15 +01:00
Tom Payne
5590ae2a48 Add stability annotation to ol.source.TopoJSON 2014-02-03 14:59:15 +01:00
Tom Payne
6be4638aa0 Add stability annotation to ol.source.KML 2014-02-03 14:59:15 +01:00
Tom Payne
54e340f281 Add stability annotation to ol.source.IGC 2014-02-03 14:59:14 +01:00
Tom Payne
1427d5284f Add stability annotation to ol.source.GPX 2014-02-03 14:59:14 +01:00
Tom Payne
1e55c69a32 Add stability annotation to ol.source.GeoJSON 2014-02-03 14:59:14 +01:00
Tom Payne
4178d3f434 Add stability annotation to ol.source.VectorFile 2014-02-03 14:59:14 +01:00
Tom Payne
ccfae72e8e Add stability annotation to ol.source.Vector 2014-02-03 14:59:14 +01:00
Tom Payne
26a81a05ce Add stability annotation to ol.format.TopoJSON 2014-02-03 14:59:14 +01:00
Tom Payne
608e3c43b1 Add stability annotation to ol.format.KML 2014-02-03 14:59:14 +01:00
Tom Payne
a603ad86e9 Add stability annotation to ol.format.IGC 2014-02-03 14:59:13 +01:00
Tom Payne
d033801a84 Add stability annotation to ol.format.GPX 2014-02-03 14:59:13 +01:00
Tom Payne
2dd6cfd651 Add stability annotation to ol.format.GeoJSON 2014-02-03 14:59:13 +01:00
Tom Payne
dc9cb31c27 Add stability annotation to ol.Feature 2014-02-03 14:59:13 +01:00
Tom Payne
415b5ad85e Add stability annotation to ol.style.Circle 2014-02-03 14:59:13 +01:00
Tom Payne
fdc80c4f97 Add stability annotation to ol.geom.Circle 2014-02-03 14:59:13 +01:00
Tom Payne
33ac759d35 Add stability annotation to ol.geom.GeometryCollection 2014-02-03 14:59:13 +01:00
Tom Payne
b38858952f Add stability annotation to ol.geom.MultiPolygon 2014-02-03 14:59:12 +01:00
Tom Payne
f8570137ed Add stability annotation to ol.geom.MultiLineString 2014-02-03 14:59:12 +01:00
Tom Payne
337def8089 Add stability annotation to ol.geom.MultiPoint 2014-02-03 14:59:12 +01:00
Tom Payne
8f50d0f097 Add stability annotation to ol.geom.Polygon 2014-02-03 14:59:12 +01:00
Tom Payne
e10bb6d3aa Add stability annotation to ol.geom.LinearRing 2014-02-03 14:59:12 +01:00
Tom Payne
88f0f99fa3 Merge pull request #1624 from twpayne/clean-up-circle
Minor ol.geom.Circle clean-ups
2014-02-03 05:57:17 -08:00
Tom Payne
43720fc81d Add stability annotation to ol.geom.LineString 2014-02-03 14:45:00 +01:00
Tom Payne
0ed865efe4 Add stability annotation to ol.geom.Point 2014-02-03 14:45:00 +01:00
Tom Payne
c4b7a32751 Add stability annotation to ol.geom.SimpleGeometry 2014-02-03 14:45:00 +01:00
Tom Payne
08ec3480ed Add stability annotation to ol.geom.Geometry 2014-02-03 14:45:00 +01:00
Tom Payne
ce1da8b57a Add stability annotation to ol.Observable 2014-02-03 14:45:00 +01:00
Tom Payne
2b42e89580 Add stability annotation to ol.Object#getProperties 2014-02-03 14:44:59 +01:00
Tom Payne
aff32ab676 Use getRadiusSquared_ in ol.geom.Circle#containsXY 2014-01-30 16:04:24 +01:00
Tom Payne
82341c779a Factor out ol.geom.Circle#getRadiusSquared_ 2014-01-30 16:04:24 +01:00
Bart van den Eijnden
00962d69f1 Merge pull request #1617 from bartvde/issue-1617
consider exporting ol.METERS_PER_UNIT
2014-01-30 06:03:27 -08:00
Tom Payne
df9369e663 Merge pull request #1621 from twpayne/clean-ups
Miscellaneous clean-ups
2014-01-30 04:16:27 -08:00
Éric Lemoine
d45c4285c3 Merge pull request #1580 from elemoine/1580
Tiled WMS broken on retina displays
2014-01-30 02:55:05 -08:00
Éric Lemoine
5e64e08d54 Merge pull request #1598 from elemoine/detect-style-changes
Changing the style function doesn't redraw the layer
2014-01-30 02:54:42 -08:00
Tom Payne
8383f761cf Merge pull request #1622 from twpayne/fix-circle-containsxy
Fix bug in ol.geom.Circle#containsXY, thanks @vdubr
2014-01-30 02:49:51 -08:00
Tom Payne
e08b2bd0bf Fix bug in ol.geom.Circle#containsXY, thanks @vdubr 2014-01-30 11:29:35 +01:00
Tom Payne
b6af02a762 Add ol.ENABLE_VECTOR to control inclusion of vector layer renderers 2014-01-30 11:20:59 +01:00
Tom Payne
7e020e4d26 Add ol.ENABLE_TILE to control inclusion of tile layer renderers 2014-01-30 11:20:59 +01:00
Tom Payne
8b128ece81 Add ol.ENABLE_IMAGE to control inclusion of image layer renderers 2014-01-30 11:20:59 +01:00
Tom Payne
2f50b9dc84 Sort layer types alphabetically 2014-01-30 11:20:59 +01:00
Tom Payne
ce3209a439 Improve type checking in ol.Object#bindTo 2014-01-30 11:20:59 +01:00
Tom Payne
c5dd7988c9 Use ol.ENABLE_* to help Compiler eliminate unreachable code 2014-01-30 11:20:59 +01:00
Tom Payne
18bbf5bcec Improve type checking in ol.Map 2014-01-30 11:20:59 +01:00
Tom Payne
e85cc8b80e Improve type checking in ol.interaction.Select 2014-01-30 11:20:58 +01:00
Tom Payne
7516aab1ca Fix option property in ol.interaction.KeyboardPan 2014-01-30 11:20:58 +01:00
Tom Payne
c8999a5e52 Don't attempt to use Uint8Array in ol.geom.simplify.douglasPeucker 2014-01-30 11:20:58 +01:00
Tom Payne
a52dbbb09e Improve type checking in ol.geom.Circle#setCenterAndRadius 2014-01-30 11:20:58 +01:00
Tom Payne
0a537d5e86 Improve type checking in ol.format.Polyline.decodeDeltas 2014-01-30 11:20:58 +01:00
Tom Payne
a0d79fe98c Improve type checking in ol.events.condition.targetNotEditable 2014-01-30 11:20:58 +01:00
Tom Payne
ae5f5ee96d Factor out common variable in ol.dom.Input 2014-01-30 11:20:58 +01:00
Tom Payne
97cabd273a Improve use of View2D in ol.control.ZoomToExtent 2014-01-30 11:20:57 +01:00
Bart van den Eijnden
1ada9dfea5 Add export for ol.proj.METERS_PER_UNIT 2014-01-30 11:12:17 +01:00
Éric Lemoine
6e91ee6bdd Merge pull request #1619 from elemoine/touch-interaction-fix
Fix the touch interactions
2014-01-30 01:13:31 -08:00
Éric Lemoine
65dea74427 Calculate pixelRatio before using it
This fixes a regression introduced by https://github.com/openlayers/ol3/commit/646dd18 where the device pixel ratio was used to determine the tile size even though serverType was not defined for the source.
2014-01-30 09:50:34 +01:00
Éric Lemoine
63bcf684f7 Fix the touch interactions
This fixes a bug introduced by 318fc68159.  Thanks @gjn for reporting the problem.
2014-01-30 09:13:03 +01:00
Tom Payne
61ed9a106c Merge pull request #1618 from twpayne/fix-select-interaction
Use event properties in ol.interaction.Select
2014-01-29 06:51:37 -08:00
Tom Payne
9c91cb4fe4 Use event properties in ol.interaction.Select 2014-01-29 15:40:53 +01:00
Tom Payne
21e960d6a5 Merge pull request #1613 from twpayne/select-interaction
Port ol.interaction.Select
2014-01-29 06:32:33 -08:00
Tom Payne
86a4cad37e Merge pull request #1602 from twpayne/configurable-rotation-constraints
Configurable rotation constraints
2014-01-29 06:32:14 -08:00
Tom Payne
d4db171a3c Merge pull request #1588 from twpayne/event-properties
Use properties, not get* methods, in events
2014-01-29 06:23:30 -08:00
Tom Payne
3196afb4c7 Add constrainRotation option to ol.View2D 2014-01-29 15:13:52 +01:00
Tom Payne
28d2d96fc7 Remove old ol.interaction.Select 2014-01-29 15:12:53 +01:00
Tom Payne
d36fcc1f69 Add select-features example 2014-01-29 15:12:53 +01:00
Tom Payne
2b71154bb2 Add ol.interaction.Select 2014-01-29 15:12:53 +01:00
Tom Payne
318fc68159 Convert ol.MapBrowserEvent#get* methods into properties 2014-01-29 14:51:27 +01:00
Bart van den Eijnden
73490be2b9 update README to mention the mailing list for asking questions 2014-01-29 10:56:36 +01:00
Éric Lemoine
d49d96d651 Add comments for the canvasFunction option 2014-01-28 21:36:32 +01:00
Éric Lemoine
0eb72667c9 Add comments for setStyleFunction 2014-01-28 21:35:38 +01:00
Éric Lemoine
ea22feed99 Export ol.Observable#dispatchChangeEvent 2014-01-28 20:57:15 +01:00
Tom Payne
4735f66934 Merge pull request #1612 from twpayne/fix-view2d-fit-extent
Ensure that entire extent is visible in ol.View2D#fitExtent
2014-01-28 11:24:12 -08:00
Tom Payne
6bc11142e8 Ensure that entire extent is visible in ol.View2D#fitExtent 2014-01-28 19:48:40 +01:00
Tom Payne
f0c1f03ae7 Merge pull request #1608 from twpayne/show-logo-in-simple-example
Show ol3 logo in simple example
2014-01-28 05:47:07 -08:00
Tom Payne
b674bfc55c Show ol3 logo in simple example 2014-01-28 14:38:19 +01:00
Tom Payne
77b5790c54 Merge pull request #1607 from oterral/kml_crossorigin
Lets ol.style.Icon to define default values
2014-01-28 04:45:42 -08:00
oterral
63c321b980 Lets ol.style.Icon to define default values 2014-01-28 13:30:11 +01:00
Tom Payne
0ff229eb2c Merge pull request #1604 from twpayne/olx-in-api-docs
Add olx.* namespaces for jsdoc
2014-01-27 08:11:16 -08:00
Tom Payne
60a34ca1ea Add olx.* namespaces for jsdoc 2014-01-27 16:48:13 +01:00
Tom Payne
390b61762e Convert ol.DrawEvent#getFeature method into feature property 2014-01-27 15:54:00 +01:00
Tom Payne
ec81a77cdb Convert ol.source.VectorEvent#getFeature method into feature property 2014-01-27 15:54:00 +01:00
Tom Payne
df0912bdd3 Convert ol.render.Event#get* methods into properties 2014-01-27 15:54:00 +01:00
Tom Payne
37351c530c Convert ol.ObjectEvent#getKey method into key property 2014-01-27 15:53:58 +01:00
Tom Payne
45350a34ed Convert ol.interaction.DragAndDropEvent#get* methods into properties 2014-01-27 15:52:03 +01:00
Tom Payne
3d68a3550e Convert ol.CollectionEvent#getElement method into element property 2014-01-27 15:52:03 +01:00
Bart van den Eijnden
1e52d30d59 Merge pull request #1220 from bartvde/control-target
shouldn't we allow to pass in target as string as well for controls? (r=@elemoine,@ahocevar)
2014-01-27 06:36:33 -08:00
Bart van den Eijnden
498d05a44c remove question mark since all object properties are nullable by default 2014-01-27 15:22:25 +01:00
Bart van den Eijnden
2fc884a3d9 simplify the assignment of this.target_ 2014-01-27 15:22:25 +01:00
Bart van den Eijnden
e6c4fd973a allow target to be specified as a string for controls, update the documentation to make more clear what element and target are for 2014-01-27 15:22:25 +01:00
Tom Payne
07a717d967 Add enableRotation option to ol.View2D 2014-01-27 14:52:42 +01:00
Tom Payne
0a5ab24a0c Add ol.RotationConstraint.disable 2014-01-27 14:49:08 +01:00
Tom Payne
5ff2fcacb8 Snap rotation when within 5 degrees instead of 0.1 radians 2014-01-27 14:39:40 +01:00
Éric Lemoine
b8b93d3349 Merge pull request #1595 from elemoine/icon-hit-detection
Hit detect circle points with no fill
2014-01-27 05:35:17 -08:00
Éric Lemoine
1dfe571b76 Vector renderer uses the layer revision 2014-01-27 14:08:19 +01:00
Frédéric Junod
1b35d0afbb Merge pull request #1599 from fredj/1525
Trigger a render when a control is added to the map
2014-01-27 04:49:40 -08:00
Frederic Junod
80bb95e553 Trigger a render in ol.Control#setMap
Closes #1525
2014-01-27 13:34:20 +01:00
Éric Lemoine
797b220b6c Hit detect circle points with no fill 2014-01-24 17:39:57 +01:00
Tim Schaub
c372a5cc53 Merge pull request #1594 from legrostdg/master
Export ol.Map#getCoordinateFromPixel.
2014-01-24 07:31:22 -08:00
Félix Sipma
de2c8e9c8a Export ol.Map#getCoordinateFromPixel 2014-01-24 15:18:43 +01:00
Frédéric Junod
acc974d664 Merge pull request #1587 from fredj/misc
Various ol.format.XSD and ol.format.KML cleanups
2014-01-23 07:50:13 -08:00
Frederic Junod
295d4fbaa3 Use ol.format.XSD.readDecimal in ol.format.KML 2014-01-23 16:35:39 +01:00
Frederic Junod
271caef342 Better ol.format.XSD.* documentation 2014-01-23 16:35:38 +01:00
Frederic Junod
64ccfdc805 Add exponent support in ol.format.XSD.readDecimal 2014-01-23 16:14:55 +01:00
Frederic Junod
7b09e04001 Rename ol.format.KML.readscale_ to ol.format.KML.readScale_ 2014-01-23 16:14:55 +01:00
Frederic Junod
401acc77f3 Remove unneeded 'ms' param from Date.UTC function 2014-01-23 16:14:50 +01:00
Tom Payne
a56e3766ab Merge pull request #1584 from twpayne/clean-up-example-data
Clean up example data
2014-01-23 06:10:31 -08:00
Frédéric Junod
f98beb473b Merge pull request #1582 from fredj/kml-cleanup
Kml cleanup
2014-01-23 03:34:21 -08:00
Frederic Junod
9fe5eff865 Use ol.format.XSD.readBoolean in ol.format.KML 2014-01-23 10:55:02 +01:00
Frederic Junod
cb25267341 Add ol.format.XSD.readBoolean function 2014-01-23 10:54:40 +01:00
Frederic Junod
827ae44a5f Use ol.format.XSD.readString in ol.format.KML 2014-01-23 10:43:47 +01:00
Tom Payne
81962f4860 Move countries.sld into sld subdirectory 2014-01-23 03:31:30 +01:00
Tom Payne
3aaa0dd0f7 Move us.json into topojson subdirectory 2014-01-23 03:30:14 +01:00
Tom Payne
777fc2f961 Move countries.geojson into geojson subdirectory 2014-01-23 03:28:53 +01:00
Tom Payne
de8ebfc342 Remove old kml example data 2014-01-23 03:26:59 +01:00
Frédéric Junod
996f193deb Merge pull request #1578 from fredj/exports
Remove ol.DragBoxEvent, ol.DrawEvent, ol.ObjectEvent, ol.source.VectorEvent symbols
2014-01-22 08:53:54 -08:00
Tom Payne
518571a031 Merge pull request #1561 from oterral/vector-api-dblclick
Draw: Finish Polygon on last point like LineString
2014-01-22 08:46:46 -08:00
Tom Payne
89a0208904 Merge pull request #1577 from twpayne/drag-and-drop-add-features
Make ol.interaction.DragAndDrop fire an 'addfeatures' event
2014-01-22 08:37:19 -08:00
Tom Payne
e77a5b61d5 Add drag-and-drop-image-vector example 2014-01-22 17:26:48 +01:00
Tom Payne
b2dc097650 Use ol.interaction.DragAndDrop addfeatures event in drag-and-drop example 2014-01-22 17:26:47 +01:00
Tom Payne
6cb02724da Make ol.interaction.DragAndDrop fire an event instead of managing layers and sources 2014-01-22 17:26:47 +01:00
Frederic Junod
ffe1ad5fe3 Remove ol.DragBoxEvent, ol.DrawEvent, ol.ObjectEvent, ol.source.VectorEvent symbols
These objects will never be constructed by the application
2014-01-22 17:20:42 +01:00
Éric Lemoine
c358cb7cfe Merge pull request #1571 from elemoine/color
Correctry handle color cache size
2014-01-22 06:10:59 -08:00
Frédéric Junod
6df6a26764 Merge pull request #1575 from fredj/cleanup
Minor draw-features example cleanup
2014-01-22 05:21:32 -08:00
Frederic Junod
ff4b85811d Minor draw-features cleanup 2014-01-22 14:12:32 +01:00
Frédéric Junod
898ad63a8b Merge pull request #1570 from fredj/exports
Export ol.Map#getPixelFromCoordinate
2014-01-22 04:49:13 -08:00
Éric Lemoine
9a68f27eae Correctry handle color cache size 2014-01-22 10:17:15 +01:00
oterral
b2819a2332 Add some tests for drawing polygons 2014-01-22 09:59:04 +01:00
oterral
cbe1650c79 Finish polygon drawing on last point 2014-01-22 09:55:55 +01:00
Frederic Junod
c12cb94cf3 Export ol.Map#getPixelFromCoordinate 2014-01-22 09:06:16 +01:00
Tom Payne
913038a124 Merge pull request #1560 from twpayne/hide-oriented-rings
Hide oriented rings
2014-01-21 11:40:40 -08:00
Tim Schaub
0971dad122 Merge pull request #1569 from tschaub/geojson-todo
Add reminder to remove workaround when GeoServer GeoJSON issue is fixed.
2014-01-21 09:18:29 -08:00
Tim Schaub
b7ed585e31 Reminder to remove workaround when GeoServer GeoJSON issue is fixed
See #1566 and http://jira.codehaus.org/browse/GEOS-5996
2014-01-21 09:59:25 -07:00
Éric Lemoine
d5e36d17a0 Merge pull request #1568 from elemoine/icon
Render other features when dirty
2014-01-21 08:35:02 -08:00
Éric Lemoine
8284043bf9 Render other features when dirty 2014-01-21 16:44:46 +01:00
Tom Payne
e01c0148e4 Merge pull request #1566 from twpayne/geoserver-geojson-crs
Parse out-of-spec CRSs generated by GeoServer
2014-01-21 07:12:13 -08:00
Tom Payne
d39a5cec75 Create polygons directly from flat coordinates 2014-01-21 16:11:53 +01:00
Tom Payne
d35c40f81f Create linear rings directly from flat coordinates 2014-01-21 16:11:53 +01:00
Tom Payne
4d88d53146 Add test for ol.geom.Polygon#getLinearRings 2014-01-21 16:11:53 +01:00
Tom Payne
ffc27719ea Use oriented rings where needed 2014-01-21 16:11:53 +01:00
Tom Payne
04092dac75 Add ol.geom.MultiPolygon#getOrientedFlatCoordinates 2014-01-21 16:11:52 +01:00
Tom Payne
8e372f8db0 Don't automatically orient rings in ol.geom.MultiPolygon 2014-01-21 16:11:52 +01:00
Tom Payne
6552046aa0 Use oriented rings where needed 2014-01-21 16:11:52 +01:00
Tom Payne
5b5865d48e Add ol.geom.Polygon#getOrientedFlatCoordinates 2014-01-21 16:11:52 +01:00
Tom Payne
ff73f080b3 Don't automatically orient rings in ol.geom.Polygon 2014-01-21 16:07:26 +01:00
Tom Payne
36387adf3f Add ol.geom.flat.linearRingssAreOriented 2014-01-21 16:07:26 +01:00
Tom Payne
42865ab8c3 Add ol.geom.flat.linearRingsAreOriented 2014-01-21 16:07:26 +01:00
Tom Payne
084b4cb22a Merge pull request #1563 from twpayne/revision-in-observable
Move dispatchChangeEvent and getRevision into ol.Observable
2014-01-21 07:04:10 -08:00
Éric Lemoine
f091c804d6 Merge pull request #1565 from elemoine/draw
Fix draw interaction example
2014-01-21 07:03:05 -08:00
Tom Payne
f9e0167b66 Parse out-of-spec CRSs generated by GeoServer 2014-01-21 16:02:02 +01:00
oterral
1333c733e0 Fix drawinteraction example 2014-01-21 15:58:42 +01:00
Frédéric Junod
7f9fd3db5e Merge pull request #1554 from fredj/exports
Export some ol.source.* functions
2014-01-21 05:23:53 -08:00
Tom Payne
863e77e16e Use inherited dispatchChangeEvent in ol.layer.Base 2014-01-21 14:13:10 +01:00
Frederic Junod
ebbbcea30b Export ol.source.Source#getState function and ol.source.State symbol 2014-01-21 14:08:01 +01:00
Frederic Junod
08dbffd763 Export ol.source.VectorEvent#getFeature function 2014-01-21 14:08:01 +01:00
Tom Payne
edcb38232f Use inherited dispatchChangeEvent and getRevision in ol.geom.Geometry 2014-01-21 11:43:13 +01:00
Tom Payne
911cb302e8 Use inherited dispatchChangeEvent and getRevision in ol.Feature 2014-01-21 11:42:43 +01:00
Tom Payne
9f4a9e788c Use inherited dispatchChangeEvent and getRevision in ol.source.Source 2014-01-21 11:42:29 +01:00
Tom Payne
9c195eb314 Add ol.Observable#dispatchChangeEvent 2014-01-21 11:41:56 +01:00
Tom Payne
0219ddc60f Add ol.Observable#getRevision 2014-01-21 11:41:33 +01:00
Tom Payne
b4c3db273a Merge pull request #1559 from twpayne/rbush-update-reuse-extent
Reuse extent in ol.structs.RBush#update
2014-01-20 23:47:46 -08:00
Tom Payne
52740a3904 Reuse extent object in ol.structs.RBush#update 2014-01-20 18:16:49 +01:00
Tom Payne
8a7484c0de Add test for ol.structs.RBush#update with single object 2014-01-20 18:16:49 +01:00
Tom Payne
fa33eeb3c5 Merge pull request #1551 from twpayne/remove-old
Remove code from old/ directory
2014-01-20 09:03:23 -08:00
Tom Payne
ace6c1d098 Merge pull request #1556 from twpayne/export-topojson
Export ol.format.TopoJSON
2014-01-20 08:55:56 -08:00
Tom Payne
5f5b37f1b6 Merge pull request #1558 from twpayne/push-parse-pop
Rename ol.xml.pushAndParse to ol.xml.pushParseAndPop
2014-01-20 08:28:27 -08:00
Éric Lemoine
8b52adfce3 Merge pull request #1540 from elemoine/draw
Configure draw interaction with a vector source instead of a layer
2014-01-20 08:02:19 -08:00
Tom Payne
8b5b9a0b77 Merge pull request #1557 from oterral/master
KML: Add parsing of <gx:Track> in <Placemark>
2014-01-20 07:50:23 -08:00
Tom Payne
432d10a457 Rename ol.xml.pushAndParse to ol.xml.pushParseAndPop 2014-01-20 16:47:56 +01:00
oterral
84be78b35a Add parsing of <gx:Track> in <Placemark> 2014-01-20 16:32:17 +01:00
Éric Lemoine
9d6d0e03c2 Configure draw interaction with a vector source 2014-01-20 16:09:48 +01:00
Tom Payne
cdfed15d43 Export ol.format.TopoJSON 2014-01-20 15:51:28 +01:00
Éric Lemoine
646dd18149 Merge pull request #1547 from elemoine/gfi
Add getGetFeatureInfoUrl methods to ImageWMS and TileWMS sources
2014-01-20 05:22:40 -08:00
Tom Payne
a8eb6ab336 Merge pull request #1550 from twpayne/closest-point-interpolation
Preserve extra dimensions in closest point calculations
2014-01-20 04:10:02 -08:00
Tom Payne
0844af9ed0 Merge pull request #1552 from twpayne/vector-source-get-extent
Export ol.source.Vector#getExtent
2014-01-20 04:07:49 -08:00
Tom Payne
ee112826bb Export ol.source.Vector#getExtent 2014-01-20 12:29:48 +01:00
Tom Payne
6171ed7cdf Display interpolated time in igc example 2014-01-20 11:23:19 +01:00
Tom Payne
3e95df495e Correct month calculation in ol.format.IGC 2014-01-20 11:21:59 +01:00
Tom Payne
52a0263310 Preserve extra dimensions in ol.geom.MultiPoint#closestPointXY 2014-01-20 09:39:09 +01:00
Tom Payne
2da724572a Preserve extra dimensions in ol.geom.Point#closestPointXY 2014-01-20 09:32:21 +01:00
Tom Payne
6f0f42040c Linearly interpolate extra dimensions in ol.geom.flat.closestPoint 2014-01-20 09:24:41 +01:00
Tom Payne
5bee477734 Maintain M and Z coordinates in ol.geom.Circle#getClosestPoint 2014-01-20 08:55:28 +01:00
Éric Lemoine
ad8833cc57 Remove old GetFeatureInfo related code 2014-01-19 21:58:18 +01:00
Éric Lemoine
8b9c3558ee Add FIXME 2014-01-19 21:52:28 +01:00
Éric Lemoine
8d60faeab7 Add GetFeatureInfo example 2014-01-19 21:52:28 +01:00
Éric Lemoine
eb19000a06 Add tests for ol.source.TileWMS#getGetFeatureInfoUrl 2014-01-19 21:52:28 +01:00
Éric Lemoine
3327f9223b Add ol.source.TileWMS#getGetFeatureInfoUrl 2014-01-19 21:52:28 +01:00
Éric Lemoine
f1fa0fcfc6 Add tests for ol.source.ImageWMS#getGetFeatureInfoUrl 2014-01-19 21:49:48 +01:00
Éric Lemoine
7cf69d0f58 Add ol.source.ImageWMS#getGetFeatureInfoUrl 2014-01-19 21:49:48 +01:00
Tom Payne
d4eefc22d9 Remove old ol.parser.GPX 2014-01-18 20:31:33 +01:00
Tom Payne
d4d28e593d Remove old ol.parser.TopoJSON 2014-01-18 20:31:33 +01:00
Tom Payne
785c5a0339 Remove old ol.parser.GeoJSON 2014-01-18 20:31:33 +01:00
Tom Payne
637bd77531 Remove old ol.parser.KML 2014-01-18 20:31:32 +01:00
Tom Payne
a80e44a448 Remove old ol.interaction.Draw 2014-01-18 20:31:32 +01:00
Tom Payne
2940eb10fa Remove old ol.renderer.canvas.VectorLayer 2014-01-18 20:19:55 +01:00
Tom Payne
4d7306bdda Remove old ol.layer.Vector 2014-01-18 20:19:14 +01:00
Tom Payne
cdf896c776 Remove old ol.source.Vector 2014-01-18 20:16:33 +01:00
Tom Payne
c74f0ba0e3 Remove old ol.Feature 2014-01-18 20:15:25 +01:00
Tom Payne
eefb909c86 Remove old ol.geom 2014-01-18 20:14:19 +01:00
Éric Lemoine
d9437e469d Merge pull request #1545 from openlayers/vector-api
Merge vector-api branch into master
2014-01-17 13:47:04 -08:00
Tom Payne
3ae526efc5 Merge pull request #1541 from twpayne/vector-api-gpx
[vector-api] Add ol.format.GPX
2014-01-17 07:39:56 -08:00
Éric Lemoine
246ac7e3e6 Merge pull request #1528 from elemoine/vector-api-foreachfeature
[vector-api] Change forEachFeatureAtPixel signature
2014-01-17 07:18:44 -08:00
Tom Payne
4e21333503 Merge pull request #1543 from twpayne/vector-api-igc-fix-time
[vector-api] Fix date calculation in ol.format.IGC
2014-01-17 06:24:13 -08:00
Éric Lemoine
2a531136fc Pass layer to forEachFeatureAtPixel callback
This fixes a bug where the layer renderer instead of the layer is passed to the forEachFeatureAtPixel callback.
2014-01-17 11:38:06 +01:00
Éric Lemoine
e83ec2976f Change forEachFeatureAtPixel arguments names 2014-01-17 11:38:06 +01:00
Tom Payne
c2c8a9ed18 Add TopoJSON to drag-and-drop-example 2014-01-16 22:44:19 +01:00
Tom Payne
6c3c8332d9 Add GeoJSON to drag-and-drop example 2014-01-16 22:44:19 +01:00
Tom Payne
27fed257ff Add IGC files to drag-and-drop example 2014-01-16 22:44:19 +01:00
Tom Payne
ee91a99056 Add GPX files to drag-and-drop example 2014-01-16 22:44:19 +01:00
Tom Payne
729be27662 Add default style function to drag-and-drop example 2014-01-16 22:44:19 +01:00
Tom Payne
7d5b1265b7 Add styleFunction option to ol.interaction.DragAndDrop 2014-01-16 22:44:19 +01:00
Tom Payne
7fc274c750 Remove old gpx example data 2014-01-16 22:44:18 +01:00
Tom Payne
e65ce68e03 Add gpx example 2014-01-16 22:44:18 +01:00
Tom Payne
917b6cda8f Add ol.source.GPX 2014-01-16 22:44:18 +01:00
Tom Payne
fa89c1c3a3 Add ol.format.GPX 2014-01-16 22:44:18 +01:00
Tom Payne
14dafbd26a Add ol.format.XSD 2014-01-16 22:44:18 +01:00
Tom Payne
08b579ccf4 Merge pull request #1542 from twpayne/vector-api-kml-clean-ups
[vector-api] ol.source.KML clean-ups
2014-01-16 11:50:36 -08:00
Tom Payne
85217cdbb2 Improve RegExp for parsing coordinates, thanks @tschaub 2014-01-16 20:35:20 +01:00
Tom Payne
6eab8a9194 Merge pull request #1455 from twpayne/vector-api-render-geometry-functions
[vector-api] Multiple render geometry functions
2014-01-16 11:34:54 -08:00
Tom Payne
00286de2c8 Fix date calculation 2014-01-16 20:30:56 +01:00
Tom Payne
94ba7e807e Fix typo in kml example 2014-01-16 20:30:56 +01:00
Tom Payne
5ae54133db Allow ol.format.KML.readNumber_ to read signs and exponents, thanks @tschaub 2014-01-16 20:30:55 +01:00
Tom Payne
91b0831c68 Allow multiple renderGeometryFunctions on ol.layer.Vector 2014-01-16 20:09:42 +01:00
Tom Payne
7cfca09632 Fix date calculation in ol.format.IGC 2014-01-16 20:04:06 +01:00
Tom Payne
92b852c512 Remove unused extractAttributes and extractStyles options 2014-01-16 19:43:47 +01:00
Tom Payne
36d22b7883 Merge pull request #1539 from twpayne/vector-api-image-canvas-revision
[vector-api] Remember rendered revision in ol.source.ImageCanvas
2014-01-16 09:43:15 -08:00
Tom Payne
27ad19a613 Remember rendered revision in ol.source.ImageWMS 2014-01-16 18:28:34 +01:00
Tom Payne
eb3c8a8bfc Remember rendered revision in ol.source.ImageCanvas 2014-01-16 18:27:55 +01:00
Tom Payne
a83df1ee30 Merge pull request #1527 from twpayne/vector-api-example-html
[vector-api] Avoid 404 in hosted examples
2014-01-16 09:14:33 -08:00
Tom Payne
bb758c7ee9 Merge pull request #1533 from twpayne/vector-api-tile-hidpi
[vector-api] HiDPI support for tile layers
2014-01-16 06:55:54 -08:00
Antoine Abt
af45161ea2 Merge pull request #1496 from tonio/vector-api-topojson
[vector-api] Add TopoJSON format
2014-01-16 05:55:40 -08:00
Antoine Abt
58d90e31ff Better styling in example 2014-01-16 10:25:20 +01:00
Antoine Abt
c8e7c9f64e Add support for reading id & properties 2014-01-16 10:25:19 +01:00
Antoine Abt
1dce04b6ec Make TopoJSON tests use new format 2014-01-16 10:25:19 +01:00
Antoine Abt
938d74a785 Add TopoJSONOptions literals for source & format 2014-01-16 10:25:18 +01:00
Antoine Abt
d2e8b9f3bb Bring tests back 2014-01-16 10:25:18 +01:00
Antoine Abt
a69f62e238 Add TopoJSON source & use it in example 2014-01-16 10:25:18 +01:00
Antoine Abt
000e9ad82d Bring topojson examples back 2014-01-16 10:25:18 +01:00
Antoine Abt
dfbdd61701 Add new TopoJSON format. 2014-01-16 10:25:17 +01:00
Antoine Abt
979b7485b5 Move format exports into child classes.
To only export implemented methods.
2014-01-16 10:25:17 +01:00
Frederic Junod
a139814b2f Scale WebGL output canvas by devicePixelRatio 2014-01-15 16:20:51 +01:00
Tom Payne
2ccec58878 Activate HiDPI support in wms-custom-proj example 2014-01-15 15:55:20 +01:00
Tom Payne
a7426a82ff Activate HiDPI support in wms-tiled example 2014-01-15 15:55:20 +01:00
Tom Payne
2253be7adc Add HiDPI support to ol.source.TileWMS 2014-01-15 15:55:20 +01:00
Tom Payne
7ca5c50570 Add HiDPI support to ol.renderer.dom.TileLayer 2014-01-15 15:55:20 +01:00
Tom Payne
977f5cf5b2 Add HiDPI support to ol.renderer.webgl.TileLayer 2014-01-15 15:55:20 +01:00
Tom Payne
0c42d04295 Add HiDPI support to ol.renderer.canvas.TileLayer 2014-01-15 15:55:19 +01:00
Tom Payne
31a51cf398 Add ol.source.Tile#getTilePixelSize 2014-01-15 15:55:19 +01:00
Tom Payne
091888aaca Use ol.source.Tile#getTileGridForProjection 2014-01-15 15:55:19 +01:00
Tom Payne
68b0f42e3c Add ol.source.Tile#getTileGridForProjection 2014-01-15 15:55:19 +01:00
Tom Payne
58fef69fac Add pixelRatio to ol.source.Tile#getTile 2014-01-15 15:55:19 +01:00
Tom Payne
33f0024747 Add pixelRatio to ol.TileUrlFunction 2014-01-15 15:53:46 +01:00
Tom Payne
f3349fbf87 Merge pull request #1537 from twpayne/vector-api-remove-read-features-async
[vector-api] Remove ol.format.Format#readFeaturesAsync
2014-01-15 06:24:39 -08:00
Tom Payne
21fcbdd8c9 Merge pull request #1538 from twpayne/vector-api-this
[vector-api] Use opt_this for this arguments
2014-01-15 06:24:03 -08:00
Tom Payne
bb2ab4d71e Remove ol.format.Format#readFeaturesAsync 2014-01-15 15:17:07 +01:00
Tom Payne
71a6897223 Use opt_this instead of opt_obj in ol.xml 2014-01-15 15:09:42 +01:00
Tom Payne
af8e92c0bf Use opt_this instead of opt_obj in ol.tilegrid.TileGrid 2014-01-15 15:09:31 +01:00
Tom Payne
4a18554353 Use opt_this instead of opt_obj in ol.structs.RBush 2014-01-15 15:09:18 +01:00
Tom Payne
fdea683242 Use opt_this instead of opt_obj in ol.structs.LRUCache 2014-01-15 15:09:07 +01:00
Tom Payne
d132d22f4d Use opt_this instead of opt_obj in ol.structs.IntegerSet 2014-01-15 15:08:52 +01:00
Tom Payne
15395476a3 Use opt_this instead of opt_obj in ol.structs.Buffer 2014-01-15 15:08:39 +01:00
Tom Payne
651bdcbd73 Use opt_this instead of opt_obj in ol.source.Vector 2014-01-15 15:01:58 +01:00
Tom Payne
1df516e14d Use opt_this instead of opt_obj in ol.renderer.Layer 2014-01-15 15:00:34 +01:00
Tom Payne
010f643f8f Use opt_this instead of opt_obj in ol.Map 2014-01-15 14:52:53 +01:00
Tom Payne
4d5a248803 Use opt_this instead of opt_obj in ol.Collection 2014-01-15 14:49:42 +01:00
Tom Payne
176c873830 Use opt_this instead of opt_scope in ol.Observable 2014-01-15 14:49:16 +01:00
Tom Payne
086bb47b8c Merge pull request #1535 from twpayne/vector-api-square-tiles
[vector-api] Only support square tiles
2014-01-15 01:46:34 -08:00
Tom Payne
b95e61cf5c Merge pull request #1534 from twpayne/vector-api-pixel-ratio
[vector-api] Rename devicePixelRatio to pixelRatio in ol.FrameState
2014-01-15 01:36:21 -08:00
Tom Payne
4667dec7c3 Rename devicePixelRatio to pixelRatio in ol.FrameState 2014-01-15 09:46:27 +01:00
Tom Payne
d5c1e53e48 Only support square tiles 2014-01-15 09:45:49 +01:00
Tom Payne
5a764ac5ab Merge pull request #1524 from oterral/vector-api
[vector-api] Add draw events
2014-01-14 08:51:42 -08:00
Éric Lemoine
84f2030f4b Merge pull request #1532 from oterral/vector-api-exports
[vector-api] Add export for ol.geom.LineString#getLength
2014-01-14 08:50:17 -08:00
oterral
049ceb2ada Add tests for draw interaction events 2014-01-14 17:38:11 +01:00
oterral
7f12ac90da Add draw interaction events 2014-01-14 17:38:05 +01:00
oterral
b920f51010 Add export for ol.geom.LineString#getLength 2014-01-14 17:35:18 +01:00
Frédéric Junod
d63067f18e Merge pull request #1529 from fredj/vector-api-immediate-drawCircleGeometry
Uncomment ol.render.canvas.Immediate#drawCircleGeometry
2014-01-14 07:57:08 -08:00
Frederic Junod
56547681c3 Uncomment ol.render.canvas.Immediate#drawCircleGeometry 2014-01-14 16:38:01 +01:00
Tom Payne
4d619d71b1 Only load ol.css in loader.js
Before this change, all the examples try to load ../css/ol.css, even in
hosted mode, where they should load ../build/ol.css instead.
2014-01-14 14:32:40 +01:00
Tom Payne
43c40e14c8 Remove trailing whitespace 2014-01-14 14:30:51 +01:00
Tom Payne
50a322208a Merge pull request #1514 from twpayne/vector-api-circle
[vector-api] Add ol.geom.Circle
2014-01-14 03:46:48 -08:00
Tom Payne
da31e62199 More efficient ol.geom.Circle#closestPointXY, thanks @tschaub 2014-01-14 12:34:47 +01:00
Tom Payne
99eca3037d Encode ol.geom.Circles as empty geometry collections in GeoJSON
GeoJSON does not support circles, nor null geometries.  Empty geometry
collections seem to be the way to represent at null geometry in GeoJSON.
2014-01-14 12:34:47 +01:00
Tom Payne
5886d0dec0 Add FIXME to geolocation example 2014-01-14 12:34:47 +01:00
Tom Payne
f0d9a451e5 Add an ol.geom.Circle to geojson example 2014-01-14 12:34:47 +01:00
Tom Payne
8dde621e61 add ol.render.vector.renderCircleGeometry_ 2014-01-14 12:34:47 +01:00
Tom Payne
825c5290f6 Add ol.render.canvas.PolygonReplay#drawCircleGeometry 2014-01-14 12:34:46 +01:00
Tom Payne
5052bef4a5 Add ol.replay.canvas.Instruction.CIRCLE 2014-01-14 12:34:46 +01:00
Éric Lemoine
e76ec3b292 Merge pull request #1504 from elemoine/vector-api-image-vector-hit-detection
[vector-api] Vector image hit detection
2014-01-14 03:33:47 -08:00
Tom Payne
a8f5dff9cf Add ol.render.canvas.Immediate#drawCircleGeometry 2014-01-14 12:32:31 +01:00
Tom Payne
5df47634f3 Add ol.render.webgl.Immediate#drawCircleGeometry 2014-01-14 12:32:31 +01:00
Tom Payne
b2b74a5ee6 Add ol.render.IRender#drawCircleGeometry 2014-01-14 12:31:50 +01:00
Tom Payne
3647f13e2e Add ol.geom.Circle 2014-01-14 12:31:50 +01:00
Tom Payne
9050746d58 Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-14 12:28:37 +01:00
Éric Lemoine
542cf80da9 Better typing 2014-01-14 12:26:50 +01:00
Éric Lemoine
b52b2223a6 Add hit detection to image-vector-layer example 2014-01-14 12:26:50 +01:00
Éric Lemoine
6c30710d0c Add ol.renderer.webgl.ImageLayer#forEachFeatureAtPixel 2014-01-14 12:26:50 +01:00
Éric Lemoine
a15bacd963 Add ol.renderer.dom.ImageLayer#forEachFeatureAtPixel 2014-01-14 12:26:50 +01:00
Éric Lemoine
ee17babc05 Add ol.renderer.canvas.ImageLayer#forEachFeatureAtPixel 2014-01-14 12:26:50 +01:00
Éric Lemoine
849e50517c Add ol.source.ImageVector#forEachFeatureAtPixel 2014-01-14 12:26:50 +01:00
Éric Lemoine
4cd2a75900 Add ol.source.Source#forEachFeatureAtPixel 2014-01-14 12:26:50 +01:00
Éric Lemoine
f7be1c155e Hit detection refactoring
Get the frame state from the map instead of storing values in the layer renderers.
2014-01-14 12:26:49 +01:00
Tom Payne
006364c791 Merge pull request #1522 from twpayne/vector-api-clean-ups
[vector-api] Miscellaneous clean-ups
2014-01-14 03:26:29 -08:00
Frédéric Junod
69b36e7b7b Merge pull request #1523 from fredj/side-by-side
Fix ol.BrowserFeature.HAS_WEBGL test in side-by-side example
2014-01-14 00:52:45 -08:00
Frederic Junod
f058d54277 Fix ol.BrowserFeature.HAS_WEBGL test in side-by-side example 2014-01-14 09:46:02 +01:00
Tom Payne
474b4a444b Use a switch statement, rather than ifs, in ol.render.canvas.Replay 2014-01-13 18:17:38 +01:00
Tom Payne
54e1fd3a41 Use @inheritDoc in ol.render.webgl.Immediate 2014-01-13 18:11:06 +01:00
Tom Payne
3835c299b5 Remove unnecessary typecasts
goog.asserts.assertInstanceof is sufficient for the compiler to deduce
the type.
2014-01-13 18:10:32 +01:00
Tim Schaub
6948fc4318 Merge pull request #1507 from tschaub/update-closure-util
Update closure util.
2014-01-13 09:00:12 -08:00
Tom Payne
610eefb932 Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-13 16:07:39 +01:00
Tom Payne
2f2b6dd510 Merge pull request #1511 from twpayne/powered-by-ol3
Add ol3 logo by default
2014-01-13 07:00:09 -08:00
Éric Lemoine
8b38639082 Merge pull request #1520 from elemoine/vector-api-hidpi-hit-detection
[vector-api] Fix hit detection on retina displays
2014-01-13 06:40:42 -08:00
Tom Payne
3f851ad392 Use compressed logo URL 2014-01-13 14:45:13 +01:00
Tom Payne
6e43692440 Add optimized 32x32 pixel logo 2014-01-13 14:38:16 +01:00
Tom Payne
36dc0b88e1 Add 32x32 pixel logo image 2014-01-13 14:37:13 +01:00
Tom Payne
b7e906fe09 Add ol3Logo option to ol.Map 2014-01-13 14:29:41 +01:00
Tom Payne
e4b815d4d6 Add optional URL for logos 2014-01-13 14:20:24 +01:00
Éric Lemoine
ffcd4e8cc2 Fix hit detection on retina displays 2014-01-13 14:10:51 +01:00
Frédéric Junod
932bc36d7a Merge pull request #1518 from fredj/vector-api-1503
[vector-api] Add encoding param to goog.fs.FileReader.readAsText
2014-01-13 05:04:02 -08:00
Frédéric Junod
9aba98797a Merge pull request #1516 from fredj/vector-api-source-observable
Make ol.source.Source inherit from Observable
2014-01-13 05:03:47 -08:00
Frederic Junod
79c8f17e83 Add encoding param to goog.fs.FileReader.readAsText
This is a workaround for https://code.google.com/p/closure-library/issues/detail?id=524
2014-01-13 13:51:09 +01:00
Frederic Junod
e9db2eefb9 Make ol.source.Source inherit from Observable 2014-01-13 10:57:34 +01:00
Frédéric Junod
164170e593 Merge pull request #1517 from fredj/vector-api-drawinteraction-cleanup
[vector-api] drawinteraction cleanup
2014-01-13 01:56:01 -08:00
Frederic Junod
f68631d61c Use goog.asserts.assertInstanceof to check the getSource return type
See 1499af397d
2014-01-13 10:29:29 +01:00
Frederic Junod
f5ce88789e Use goog.isNull in if statements 2014-01-13 10:28:42 +01:00
Frédéric Junod
15b649ecd4 Merge pull request #1515 from fredj/vector-api-const-annotation
[vector-api] Create 'type' annotation for 'const' variables
2014-01-13 00:45:21 -08:00
Frederic Junod
b53ddf5b42 Create 'type' annotation for 'const' variables 2014-01-13 08:53:36 +01:00
Éric Lemoine
752ac584b0 Merge pull request #1513 from elemoine/vector-api-docs
[vector-api] ol.source.ImageVector improvements
2014-01-12 22:59:23 -08:00
Éric Lemoine
babd133cf6 Export ol.source.ImageVector's styleFunction option 2014-01-13 07:43:02 +01:00
Éric Lemoine
d5b7527f1f Add docs for ol.source.ImageVector 2014-01-13 07:39:27 +01:00
Tim Schaub
339c6d3b5b Merge pull request #1510 from tschaub/bing-providers
Handle case where Bing resource has no imagery providers.
2014-01-10 21:00:53 -08:00
Tom Payne
a9d56bb74b Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-10 22:11:39 +01:00
Tom Payne
b3293a7e64 Merge pull request #1508 from twpayne/vector-api-d3-no-social
[vector-api] Remove social links from d3 example
2014-01-10 13:08:14 -08:00
ahocevar
b76289acb8 Merge pull request #1387 from ahocevar/olx-docs
Documentation error
2014-01-10 12:58:55 -08:00
Tim Schaub
9217f14761 Merge pull request #1509 from tschaub/layer-spy
Example demonstrating a spyglass effect.
2014-01-10 12:57:20 -08:00
Tom Payne
d74519bb21 Add ol3 logo to d3 example 2014-01-10 21:52:24 +01:00
Tom Payne
db4a128951 Add example-behaviour.js to d3 example, thanks @tschaub 2014-01-10 21:52:20 +01:00
Tim Schaub
f78a668ce3 Handle case where resource has no imagery providers 2014-01-10 13:50:51 -07:00
Tim Schaub
29e3794845 Example demonstrating a spyglass effect
Riffing off of the layer swipe example, this one demonstrates viewing one layer over another though a lens.
2014-01-10 13:32:54 -07:00
Tom Payne
b5db7fd2a9 Remove social links from d3 example 2014-01-10 21:15:49 +01:00
ahocevar
7e0bd6dca1 Make olx types appear in API docs 2014-01-10 20:21:16 +01:00
Tim Schaub
2b8e87f17f Add error handler
If the server fails to start, display error message and exit.  Typically this is due to the address being in use.
2014-01-10 12:05:38 -07:00
Tim Schaub
251ebbcbac Update closure-util 2014-01-10 11:58:18 -07:00
Tom Payne
ab0268a8f1 Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-10 15:00:27 +01:00
Éric Lemoine
fd52fc8b74 Merge pull request #1497 from elemoine/vector-api-d3
[vector-api] d3 integration and vector image
2014-01-10 05:48:42 -08:00
Éric Lemoine
69cd19f3fd Merge pull request #1501 from oterral/vector-api
Add draw interaction tests
2014-01-10 05:15:29 -08:00
oterral
80962b0bf9 Add draw interaction tests 2014-01-10 14:02:36 +01:00
oterral
f27e42068f Manage multi geometries modes 2014-01-10 14:01:35 +01:00
oterral
235af49f0b Add goog.provide('ol.geom.GeometryType') 2014-01-10 14:00:30 +01:00
Éric Lemoine
d2d4e5e698 Add image vector layer example 2014-01-10 10:42:05 +01:00
Éric Lemoine
8c1f7f9b29 Add ol.source.ImageVector 2014-01-10 10:42:05 +01:00
Éric Lemoine
e4b5f309eb Pass state option to image source constructors 2014-01-10 10:42:05 +01:00
Éric Lemoine
2ed5e2a3d7 Pass pixelRatio to canvasFunction 2014-01-10 10:42:05 +01:00
Éric Lemoine
2633d8784c Add a d3 example 2014-01-10 10:42:05 +01:00
Tim Schaub
542f478ca1 Merge pull request #1498 from tschaub/null-frame-state
Only create a frame state if the map has non-zero size.
2014-01-09 20:16:52 -08:00
Tim Schaub
36e2e51899 Only create a frame state if the map has non-zero size 2014-01-09 18:23:53 -07:00
Tom Payne
dd44c0c960 Merge pull request #1500 from ThomasG77/patch-1
Update quickstart.hbs
2014-01-09 14:15:15 -08:00
ThomasG77
af2fb1ad42 Update quickstart.hbs
Fix on the fix ;) because a removed new via the Github UI
2014-01-09 23:04:15 +01:00
ThomasG77
923bb3f36c Update quickstart.hbs
Fix the error due to outdated ol.source.MapQuestOpenAerial() because of this feedback https://groups.google.com/forum/#!topic/ol3-dev/6xi2n7nMg8k on the ML
2014-01-09 22:55:34 +01:00
Tom Payne
1f0183cc03 Merge pull request #1499 from twpayne/vector-api-no-color-names
[vector-api] Only use color arrays in the library
2014-01-09 13:30:28 -08:00
Tom Payne
e83e79626a Only use color arrays in the library 2014-01-09 21:55:17 +01:00
Éric Lemoine
5af738593e Image source refactoring 2014-01-09 15:57:04 +01:00
Tom Payne
0cc844a169 Merge pull request #1494 from twpayne/vector-api-wms-hidpi
[vector-api] HiDPI (Retina) support for WMS single image layers
2014-01-09 06:39:00 -08:00
Tom Payne
3b3b5013ad Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-09 15:33:58 +01:00
Tom Payne
04a0369d68 Correct ol.renderer.canvas.ImageLayer transform for HiDPI devices 2014-01-09 15:27:57 +01:00
Tom Payne
807bf757af Remove unused ol.TileUrlFunction.createFromParamsFunction 2014-01-09 15:27:56 +01:00
Tom Payne
cee014ec9e Remove unused ol.source.wms.getUrl function 2014-01-09 15:27:56 +01:00
Tom Payne
c5a5acbf89 Refactor ol.source.TileWMS URL logic 2014-01-09 15:27:56 +01:00
Tom Payne
46d8b81661 Factor out WMS version 1.3 check 2014-01-09 15:27:56 +01:00
Tom Payne
86f23aa615 Add ol.source.wms.DEFAULT_VERSION 2014-01-09 15:27:56 +01:00
Tom Payne
784f3500f2 Make ol.extent.buffer return an extent instead of mutating 2014-01-09 15:27:56 +01:00
Tom Payne
bcf38b1b21 Add ol.source.ImageWMS#setUrl 2014-01-09 15:27:55 +01:00
Tom Payne
9961e489cb Merge pull request #1495 from oterral/vector-api
[vector-api] Add ol.color.asArray and ol.color.asString exports
2014-01-09 05:31:46 -08:00
oterral
1d9d67f524 Add ol.color.asArray and ol.color.asString exports 2014-01-09 14:14:27 +01:00
Frédéric Junod
bed7084200 Merge pull request #1491 from fredj/const-annotation
Create 'type' annotation for 'const' variables
2014-01-09 04:32:28 -08:00
Tom Payne
1bf678bef2 Remove unused ol.source.wms.getDpiParam function 2014-01-09 13:12:49 +01:00
Tom Payne
e9d8401786 Refactor ol.source.ImageWMS URL logic
* Always request images of integer WIDTH and HEIGHT
* Match BBOX to requested size
* Handle integer-only DPIs in GeoServer
2014-01-09 13:12:49 +01:00
Tom Payne
95f1871ac4 Make ol.source.ImageSource crossOrigin property protected 2014-01-09 13:12:49 +01:00
Tom Payne
8d18f25296 Add ol.source.TileWMS tests 2014-01-09 13:12:49 +01:00
Tom Payne
079cd585e6 Add ol.source.ImageWMS tests 2014-01-09 13:12:49 +01:00
Tom Payne
b52a4b084e Remove pointless test 2014-01-09 13:12:49 +01:00
Tom Payne
5f7e53617b Merge pull request #1481 from twpayne/vector-api-kml-default-style
[vector-api] Configurable default styling for KML
2014-01-09 02:43:48 -08:00
Tom Payne
7ce7bb2187 Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-09 11:42:14 +01:00
Éric Lemoine
b13256735e Merge pull request #1492 from oterral/vector-api
[vector-api] Export ol.style.Image#getScale
2014-01-09 02:04:00 -08:00
oterral
db85936de2 Export ol.style.Image#getScale 2014-01-09 10:54:57 +01:00
Frederic Junod
80cae77161 Add 'const' annotation to ol.MapBrowserEvent.browserEvent 2014-01-09 10:32:30 +01:00
Frederic Junod
9f79d33486 Create 'type' annotation for 'const' variables
From https://developers.google.com/closure/compiler/docs/js-for-compiler:
  "The type declaration and additional comment are optional. If you
  provide a type declaration, put the declaration on a separate line."
2014-01-09 09:53:20 +01:00
Tom Payne
dcd2853d2d Add ol.source.KML defaultStyle option 2014-01-08 18:22:20 +01:00
Tom Payne
6b94baf291 Add ol.format.KML defaultStyle option 2014-01-08 18:22:19 +01:00
Éric Lemoine
2cc4dd8985 Merge pull request #1413 from oterral/vector-api-draw
[vector-api] drawing interaction
2014-01-08 07:54:18 -08:00
oterral
e3810b5027 Add draw features example 2014-01-08 16:40:14 +01:00
oterral
34260399e7 Add draw features interaction 2014-01-08 16:40:14 +01:00
oterral
b508469d22 Minor fix in FeatureOverlay 2014-01-08 16:39:52 +01:00
Frédéric Junod
1e334bffdb Merge pull request #1488 from fredj/vector-api-image-pixelRatio
[vector-api] Scale the image size and anchor by pixelRatio
2014-01-08 07:37:42 -08:00
Éric Lemoine
7bf6fd59a0 Merge pull request #1485 from elemoine/vector-api-exports
[vector-api] Export ol.format.KML#readName
2014-01-08 06:17:21 -08:00
Frederic Junod
3f751a5903 Scale the image size and anchor by pixelRatio 2014-01-08 14:25:50 +01:00
Bart van den Eijnden
73fcff641e Merge pull request #1486 from bartvde/mapquest-hybrid
add hybrid layer to ol.source.MapQuest (r=@twpayne)
2014-01-08 05:15:05 -08:00
Frédéric Junod
ea678ef195 Merge pull request #1487 from fredj/cleanup
ol.TileCoord: add @struct annotation and use the ol.TileCoord.createOrUpdate function
2014-01-08 04:40:53 -08:00
Bart van den Eijnden
78d20056f5 update all the other examples that used MapQuest 2014-01-08 13:36:35 +01:00
Bart van den Eijnden
473a11c697 use a single ol.source.MapQuest and use a const for the tile attribution 2014-01-08 13:23:47 +01:00
Bart van den Eijnden
1b48572c6e add ol.source.MapQuestHybrid and add all MapQuest types to the example 2014-01-08 12:05:19 +01:00
Frederic Junod
34e75b3d9d Add @struct annotation to ol.TileCoord class 2014-01-08 11:48:15 +01:00
Éric Lemoine
0fa748699a Export ol.source.Vector#forEachFeatureInExtent 2014-01-08 11:40:20 +01:00
Frederic Junod
8c61dbef8a Use ol.TileCoord.createOrUpdate function 2014-01-08 11:38:12 +01:00
Éric Lemoine
fd6756e465 Export ol.format.KML#readName 2014-01-08 11:35:09 +01:00
Éric Lemoine
47056f6012 Remove useless code 2014-01-08 10:59:36 +01:00
Éric Lemoine
2bdae3d08a Merge pull request #1483 from elemoine/vector-api-anchor-units
[vector-api] Support different anchor units in ol.style.Icon
2014-01-08 01:13:19 -08:00
Éric Lemoine
49120e4761 Icon anchors are Array.<number> 2014-01-08 10:07:01 +01:00
Éric Lemoine
5efc692b9d Add typecast to icon example 2014-01-08 00:44:00 +01:00
Tom Payne
1acdef835d Change default anchor for KML icons from Google Maps 2014-01-08 00:30:17 +01:00
Éric Lemoine
7487f97436 Support anchorXUnits and anchorYUnits in KML format 2014-01-08 00:27:08 +01:00
Éric Lemoine
09e5574350 Use anchorXUnits and anchorYUnits in icon example 2014-01-08 00:24:55 +01:00
Éric Lemoine
a0a94414dd Add anchorXUnits and anchorYUnits options to ol.style.Icon 2014-01-08 00:24:55 +01:00
Éric Lemoine
a1ffa170a9 Merge pull request #1480 from elemoine/vector-api-features-overlay
[vector-api] Add ol.FeaturesOverlay#addFeature and #removeFeature
2014-01-07 07:24:05 -08:00
Éric Lemoine
643c981074 Use FeaturesOverlay in vector-layer example
This demonstrates how to use ol.FeaturesOverlay for feature highlighting.
2014-01-07 15:15:43 +01:00
Tom Payne
2ab1082737 Merge pull request #1479 from twpayne/vector-api-draw-order
[vector-api] Draw vector features in the order polygons, lines, images
2014-01-07 05:29:24 -08:00
Éric Lemoine
6556726541 ol.FeaturesOverlay creates a features collection
ol.FeaturesOverlay creates an empty collection of features if the features option is not specified.
2014-01-07 14:13:57 +01:00
Éric Lemoine
8c0406b390 Add ol.FeaturesOverlay#removeFeature 2014-01-07 14:13:57 +01:00
Éric Lemoine
0b4970ae46 Add ol.FeaturesOverlay#addFeature 2014-01-07 14:13:57 +01:00
Tom Payne
c816d0105d Replay groups in defined order 2014-01-07 13:58:21 +01:00
Tom Payne
f2dbf4c145 Add ol.render.REPLAY_ORDER 2014-01-07 13:58:21 +01:00
Tom Payne
a313331098 Fix StyleFunction type namespace 2014-01-07 13:57:56 +01:00
Éric Lemoine
fdb154f5d7 Merge pull request #1433 from twpayne/vector-api-export-featuresoverlay
[vector-api] Export ol.render.FeaturesOverlay
2014-01-07 04:46:04 -08:00
Éric Lemoine
4e4e3c24b4 Merge pull request #1478 from elemoine/groupstate
Source state of a layer doesn't depend on group
2014-01-07 04:29:09 -08:00
Éric Lemoine
dacb747eb5 Source state of a layer doesn't depend on group 2014-01-07 13:03:31 +01:00
Frédéric Junod
b8bc7b3a2a Merge pull request #1477 from fredj/cleanup
Remove extra parameters when calling ol.test.source.TileMock.getTile
2014-01-07 03:35:38 -08:00
Frederic Junod
0fda88dca3 Remove extra parameters when calling ol.test.source.TileMock.getTile 2014-01-07 12:17:17 +01:00
Tom Payne
99b68ff6ba Merge pull request #1474 from twpayne/vector-api-fix-contains
[vector-api] Fix ol.geom.flat.linearRingContainsXY
2014-01-07 00:09:38 -08:00
Frédéric Junod
125b65e82d Merge pull request #1472 from fredj/vector-api-singleclick-examples
Fix 'singleclick' in kml-timezones and kml-earthquakes examples
2014-01-06 23:56:34 -08:00
Tom Payne
6052620acf Merge pull request #1454 from twpayne/vector-api-vector-file-urls
[vector-api] Add urls option to ol.source.VectorFile
2014-01-06 23:55:24 -08:00
Éric Lemoine
40fdd8a637 Merge pull request #1473 from elemoine/vector-api-zindex
[vector-api] Make canvas immediate API support zIndex
2014-01-06 12:17:33 -08:00
Tom Payne
8da1c95cf2 Merge pull request #1470 from twpayne/vector-api-attributions
[vector-api] Display attributions and logos for vector sources
2014-01-06 09:40:00 -08:00
Tom Payne
ffb68c951a Fix ol.geom.flat.linearRingContainsXY 2014-01-06 18:19:08 +01:00
Éric Lemoine
12f1d97f82 Use drawAsync in canvas Immediate#drawFeature 2014-01-06 17:14:56 +01:00
Éric Lemoine
051c0a8b46 Use drawAsync in render box 2014-01-06 17:14:56 +01:00
Éric Lemoine
6db8f0c29f Add ol.render.canvas.Replay#drawAsync 2014-01-06 17:10:00 +01:00
Éric Lemoine
3f1d74a0f5 Add ol.render.webgl.Immediate#drawAsync 2014-01-06 17:10:00 +01:00
Éric Lemoine
84fc86f469 Add ol.render.canvas.Immediate#drawAsync 2014-01-06 17:10:00 +01:00
Éric Lemoine
e9110923a4 Add ol.render.IRender#drawAsync 2014-01-06 17:05:05 +01:00
Frederic Junod
2f7064f0e8 Fix 'singleclick' in kml-timezones and kml-earthquakes examples 2014-01-06 16:44:06 +01:00
Tom Payne
bedfb828d8 Display attributions and logos for vector sources 2014-01-06 16:21:58 +01:00
Frédéric Junod
32555a606d Merge pull request #1468 from fredj/indent
Fix indentation in commments
2014-01-06 07:17:58 -08:00
Frederic Junod
b4800dc637 Fix indentation in commments 2014-01-06 16:06:47 +01:00
Tom Payne
b795ddf430 Merge pull request #1467 from twpayne/vector-api-webgl-rotation
[vector-api] Fix rotation of WebGL tile layers
2014-01-06 06:58:38 -08:00
Tom Payne
1a80273d6f Fix rotation of WebGL tile layers 2014-01-06 15:46:34 +01:00
Tom Payne
7682dbc235 Merge pull request #1465 from twpayne/vector-api-rtree-example
[vector-api] Add comment about the rtree example not working when hosted
2014-01-06 05:02:11 -08:00
Tom Payne
6b10ea887e Add comment about the rtree example not working when hosted 2014-01-06 13:53:24 +01:00
Tom Payne
a0a3fa3bdf Merge pull request #1466 from twpayne/vector-api-first-element-child
[vector-api] Use firstElementChild/nextElementSibling in XML parsers
2014-01-06 04:49:51 -08:00
Tom Payne
0b4e8bf6f1 Use firstElementChild in ol.format.KML 2014-01-06 13:27:37 +01:00
Tom Payne
7808ed9ce9 Use firstElementChild in ol.xml.parse 2014-01-06 13:27:13 +01:00
Tom Payne
69f0de2739 Merge pull request #1464 from twpayne/vector-api-kml-linear-ring
[vector-api] KML LinearRing support
2014-01-06 02:31:32 -08:00
Tom Payne
6b9268fe56 Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-06 11:17:01 +01:00
Tom Payne
72dc5f297d Merge pull request #1462 from twpayne/vector-api-clean-ups
[vector-api] Minor clean-ups
2014-01-06 02:09:38 -08:00
Tom Payne
d092b2f645 Merge pull request #1463 from twpayne/vector-api-type-fixes
[vector-api] Type checking improvements
2014-01-06 02:09:04 -08:00
Frédéric Junod
fcd4413dc6 Merge pull request #1374 from fredj/static-image-example
Add a ol.source.ImageStatic example
2014-01-06 02:04:42 -08:00
Frédéric Junod
eb9208fd9a Merge pull request #1460 from fredj/vector-api-layer-clipping
Center the clipping region
2014-01-06 02:04:13 -08:00
Tom Payne
d20a8eac3f Read KML LinearRings as Polygons 2014-01-06 10:41:38 +01:00
Frederic Junod
d894422b2d Center the clipping region
Use the real canvas size to center the heart. Only visible when
devicePixelRatio is greater than 1.0.
2014-01-06 10:13:45 +01:00
Tom Payne
1499af397d Use assertInstanceof instead of getVectorSource 2014-01-06 09:36:43 +01:00
Tom Payne
c97588c1e2 Use assertInstanceof instead of getVectorLayer 2014-01-06 09:36:43 +01:00
Tom Payne
7ee2747948 Always use goog.vec.Mat4.Number instead of goog.vec.Mat.AnyType 2014-01-06 09:29:36 +01:00
Tom Payne
8ed6d760f7 Improve type checking in ol.color.fromString 2014-01-06 09:29:36 +01:00
Tom Payne
58b4d73f3b Improve type checking in ol.geom.simplify 2014-01-06 09:29:35 +01:00
Tom Payne
2a47bf0775 Improve type checking in ol.geom.flat 2014-01-06 09:29:35 +01:00
Frederic Junod
2d971ed58f Add a ol.source.ImageStatic example 2014-01-06 09:11:49 +01:00
Tom Payne
f4ab0cbac0 Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-04 15:02:56 +01:00
Tom Payne
c599ceb43d Merge pull request #1458 from Intermedix/bug-insert-valueExtent
Fix bug in ol.structs.RBush#update
2014-01-04 05:46:41 -08:00
Austin Hyde
6ea1482ecf Fix issue with valueExtent_ being cleared while updating extents, but never being repopulated 2014-01-03 15:54:26 -05:00
Tom Payne
b049094391 Merge pull request #1456 from twpayne/vector-api-style-function
[vector-api] Add StyleFunction types
2014-01-03 08:30:24 -08:00
Tom Payne
061fed50b7 Move all styleFunction types into ol.feature 2014-01-03 17:23:11 +01:00
Antoine Abt
fec4fd6d2f Merge pull request #1452 from tonio/vector-api-dragbox-webgl
[vector-api] Re-enable dragzoom for every renderer
2014-01-03 07:46:14 -08:00
Antoine Abt
2ebfba2235 add Immediate renderer to webgl layer postcompose event 2014-01-03 16:38:25 +01:00
Antoine Abt
6dd504dcb2 Animate DragZoom 2014-01-03 16:38:25 +01:00
Éric Lemoine
975dd31012 Merge pull request #1457 from elemoine/vector-api-extent
[vector-api] Only hit-detect visible features
2014-01-03 07:17:14 -08:00
Tom Payne
b5b3e22db9 Merge pull request #1453 from twpayne/clean-ups
Miscellaneous clean-ups
2014-01-03 07:04:20 -08:00
Éric Lemoine
1e54947ebb Only hit-detect visible features 2014-01-03 15:48:23 +01:00
Tom Payne
6da95e49d2 Sort externs files alphabetically 2014-01-03 14:55:02 +01:00
Tom Payne
0e7a545871 Add missing dependency for build/ol-all.js 2014-01-03 14:55:02 +01:00
Tom Payne
c6a1967cce Move layer.jsdoc into src/ol/layer 2014-01-03 14:55:02 +01:00
Tom Payne
da396039ce Move proj.exports and proj.jsdoc into proj directory 2014-01-03 14:55:02 +01:00
Tom Payne
46267a9059 Use toString() instead of + '' 2014-01-03 14:55:02 +01:00
Antoine Abt
3461b026b6 Do not draw a rotated box, in dragbox/dragzoom
Use pixels to draw a straight box, perserving rotation while zooming
2014-01-03 11:55:28 +01:00
Antoine Abt
47d9fd354b Remove dragzoom example
Since it has been re-added to default controls
2014-01-03 11:55:28 +01:00
Antoine Abt
39cf993b39 Revert "Remove DragZoom from default interactions"
This reverts commit c2330b9786.
2014-01-03 11:55:27 +01:00
Antoine Abt
1142d55565 Add skeleton for webgl immediate renderer 2014-01-03 11:55:27 +01:00
Tom Payne
d25ee8df0a Use urls option in igc example 2014-01-02 22:41:21 +01:00
Tom Payne
699cfb3e31 Add urls option to ol.source.KML 2014-01-02 22:40:44 +01:00
Tom Payne
c1ceb60f50 Add urls option to ol.source.KML 2014-01-02 22:40:29 +01:00
Tom Payne
8c0e2d3c1a Add urls option to ol.source.GeoJSON 2014-01-02 22:40:09 +01:00
Tom Payne
3769d220d9 Add urls option to ol.source.VectorFile 2014-01-02 22:39:46 +01:00
Tom Payne
310d0dc792 Rename replayes to replays 2014-01-02 22:13:37 +01:00
Tom Payne
752a2acd11 Use toString() instead of + '' 2014-01-02 22:12:34 +01:00
Tom Payne
2342f83a48 Merge remote-tracking branch 'openlayers/master' into vector-api 2014-01-02 18:28:30 +01:00
Tom Payne
94c22055be Merge pull request #1394 from twpayne/zoomify
Zoomify (updated)
2014-01-02 09:19:53 -08:00
Tom Payne
6006d24232 Add comment about fake projection in zoomify example 2014-01-02 18:05:51 +01:00
Tom Payne
8fb44e024b Merge pull request #1437 from twpayne/vector-api-circle
[vector-api] Correct calculation of ol.style.Circle canvas size
2014-01-02 08:45:25 -08:00
Tom Payne
4f312f65f0 Merge pull request #1451 from twpayne/get-content-box-size
Use goog.style.getContentBoxSize to calculate map size
2014-01-02 08:44:30 -08:00
Tom Payne
50b41f93f3 Correct calculation of ol.style.Circle canvas size 2014-01-02 17:27:52 +01:00
Éric Lemoine
2d4b0cfc47 Merge pull request #1450 from elemoine/observable
Export ol.Observable
2014-01-02 07:57:55 -08:00
Tom Payne
9ea44d10ce Use goog.style.getContentBoxSize to calculate map size
This takes into account any border.
2014-01-02 16:49:09 +01:00
Éric Lemoine
78504831e6 Export ol.Observable
This is so on, un and friends appear in the api docs.
2014-01-02 16:40:43 +01:00
Tom Payne
b1bc7317c7 Enable WebGL and DOM renderers in zoomify example 2014-01-02 16:39:12 +01:00
Tom Payne
e99075a452 Use a server that supports CORS in zoomify example 2014-01-02 16:38:52 +01:00
Tom Payne
588846fa44 Use tileClass option to ol.source.Zoomify 2014-01-02 15:53:22 +01:00
Tom Payne
c85fe457a7 Add tileClass option to ol.source.TileImage 2014-01-02 15:53:16 +01:00
Tom Payne
969c32a883 Re-enable checking of Zoomify example 2014-01-02 15:34:09 +01:00
Tom Payne
541fb17773 Use prettier image in zoomify example 2014-01-02 15:26:56 +01:00
Tom Payne
71b91cd16a Tidy up ol.source.Zoomify tile URL calculations 2014-01-02 15:26:55 +01:00
Tom Payne
94fa3fb211 Tidy up ol.source.Zoomify tile grid calculations 2014-01-02 15:26:55 +01:00
Tom Payne
36826d2e0b Remove unused variable 2014-01-02 15:26:55 +01:00
Tom Payne
b1da2c78f2 Refactor ol.source.Zoomify to use a private tile class 2014-01-02 15:26:55 +01:00
Tom Payne
34c85d8ade Make ol.source.TileImage#tileLoadFunction protected, not private 2014-01-02 13:01:46 +01:00
Tom Payne
4ad63725d9 Make ol.source.TileImage#crossOrigin protected, not private 2014-01-02 13:01:22 +01:00
Tom Payne
54d388f8fa Make ol.source.TileImage#tileCache protected, not private 2014-01-02 12:57:55 +01:00
Tom Payne
786d74ce88 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-30 22:23:33 +01:00
Tom Payne
2646ac8eb1 Merge pull request #1439 from fredj/vector-api-igc-cleanup
Vector api igc cleanup
2013-12-30 12:32:05 -08:00
Marc Jansen
0b51772b8c Merge pull request #1447 from probins/build
Make build.py compatible with Python 2.6
2013-12-29 15:08:57 -08:00
Peter Robins
e9984334a6 Make build.py compatible with Python 2.6 2013-12-29 12:00:43 -05:00
Frédéric Junod
5514ede191 Merge pull request #1438 from fredj/proj-export-getUits
Export ol.proj.Projection#getUnits
2013-12-22 23:27:18 -08:00
Frederic Junod
1f0c70fec3 Parse HFDTE record before the others H records
ol.format.IGC.H_RECORD_RE_ don't match HFDTE records (because of the ':').
2013-12-22 12:44:12 +01:00
Frederic Junod
979083bb21 Fix ol.format.IGC HFDTE parsing (HFDTEDDMMYY not HFDTEYYMMDD) 2013-12-22 12:44:12 +01:00
Frederic Junod
ead127aaec Export ol.proj.Projection#getUnits
Fixes #1365
2013-12-21 09:23:43 +01:00
Tim Schaub
86374d1fde Merge pull request #1428 from tschaub/image-scale
Properly scale and rotate images with anchor offsets.
2013-12-20 13:44:10 -08:00
Tom Payne
5a39927846 Merge pull request #1427 from twpayne/vector-api-hosted
[vector-api] Miscellaneous fixes for hosted examples
2013-12-20 13:25:35 -08:00
Éric Lemoine
a9ccbd2b1e Merge pull request #1435 from elemoine/vector-api-hit-bug
[vector-api] Fix linestring hit detection bug
2013-12-20 13:25:12 -08:00
Éric Lemoine
4a96eaff60 Fix linestring hit detection bug 2013-12-20 22:24:52 +01:00
Éric Lemoine
f58c2b8873 Merge pull request #1434 from elemoine/vector-api-kml-example
[vector-api] Change cursor when over a feature in KML example
2013-12-20 13:24:28 -08:00
Éric Lemoine
81ea704043 Change cursor when over a feature in KML example 2013-12-20 21:47:50 +01:00
Tim Schaub
f5b9687479 Translate to image center before scale and rotation
Same treatment here as with the canvas replay.
2013-12-20 13:29:30 -07:00
Tim Schaub
c599c649ab Translate to image anchor point, scale, rotate, translate back 2013-12-20 13:27:08 -07:00
Tom Payne
8d1f56a7cb Export ol.render.FeaturesOverlay 2013-12-20 19:27:40 +01:00
Tom Payne
2407ee1db9 Add options object to ol.render.FeaturesOverlay constructor 2013-12-20 19:27:27 +01:00
Tom Payne
422966668d Do not put property name on following line
Currently, bin/generate-exports.py will ignore properties whose name is
not on the same line as the @property directive.
2013-12-20 18:30:02 +01:00
Tom Payne
e183a2daf1 Don't rely on getResponseXml 2013-12-20 18:01:27 +01:00
Tom Payne
d68a88da26 Always return an array of features, even if no features are read 2013-12-20 17:53:46 +01:00
Tom Payne
1a78c17713 Merge pull request #1425 from twpayne/vector-api-kml-gx-track
[vector-api] KML gx:MultiTrack support
2013-12-20 08:27:01 -08:00
Tom Payne
31c2f79772 Merge pull request #1426 from twpayne/view2d-fit-empty-extent
[master] Don't attempt to fit views to empty extents
2013-12-20 08:26:40 -08:00
Éric Lemoine
0c39109b36 Merge pull request #1424 from elemoine/vector-api-dragzoom
[vector-api] Minor additions to dragzoom example
2013-12-20 08:07:44 -08:00
Éric Lemoine
a12bf20437 Merge pull request #1412 from fredj/vector-api-hidpi-cleanup
[vector-api] hidpi cleanup
2013-12-20 07:51:10 -08:00
Tom Payne
30736fbe88 Don't attempt to fit views to empty extents 2013-12-20 16:41:53 +01:00
Tom Payne
2b51d6af00 Add support for gx:MultiTrack elements 2013-12-20 16:40:53 +01:00
Tom Payne
0bf34a52ff Add ol.geom.MultiLineString#setLineStrings 2013-12-20 16:33:26 +01:00
Éric Lemoine
0c047f094f More description to dragzoom example 2013-12-20 16:05:53 +01:00
Éric Lemoine
f3948c8741 Show how to use a custom style for DragZoom 2013-12-20 15:54:24 +01:00
Éric Lemoine
72ea0a10fc Use ol.interaction.defaults in dragzoom example 2013-12-20 15:54:13 +01:00
Antoine Abt
f93a404adf Merge pull request #1422 from tonio/vector-api-dragbox
[vector-api] Refactor DragZoom
2013-12-20 06:32:34 -08:00
Antoine Abt
8354400e52 Add dragzoom example, configured with canvas renderer 2013-12-20 15:24:53 +01:00
Antoine Abt
c2330b9786 Remove DragZoom from default interactions
As it only works with canvas renderer.
2013-12-20 15:24:53 +01:00
Antoine Abt
adfe20dd12 Make DragBox interaction dispatch events
- boxstart/boxend events are dispatched,
- behavior is removed,
- geometry drawn by box render is a simple polygon instead of one with hole.
2013-12-20 15:24:53 +01:00
Antoine Abt
43b8a72e62 Add ol.DragBoxEvent 2013-12-20 15:24:52 +01:00
Tom Payne
bd247fa5d7 Add optional parsersNS object to extend 2013-12-20 15:18:52 +01:00
Tom Payne
6532d6e8f8 Merge pull request #1423 from twpayne/vector-api-null-geometries
[vector-api] Handle features with null geometries
2013-12-20 06:17:54 -08:00
Frédéric Junod
be55ea5f88 Merge pull request #1420 from fredj/vector-api-igc-extensions
[vector-api] Add ol.format.IGC#getExtensions
2013-12-20 06:02:28 -08:00
Tom Payne
8a7ae264e1 Handle feature's geometries changing to and from null in ol.source.Vector 2013-12-20 14:44:21 +01:00
Tom Payne
4b9451de81 Add extra assertion that feature's geometry is not null 2013-12-20 14:42:08 +01:00
Tom Payne
bc36c2a366 Don't attempt to render features will null geometries in ol.renderer.vector.renderFeature 2013-12-20 14:41:37 +01:00
Tom Payne
f0b14521a4 Don't attempt to render features will null geometries in ol.render.canvas.Immediate 2013-12-20 14:40:30 +01:00
Antoine Abt
0eb00ba86b Remove dragbox.exports 2013-12-20 11:11:53 +01:00
Éric Lemoine
cf8adffdb2 Add style option to DragZoom interaction 2013-12-20 10:21:18 +01:00
Éric Lemoine
eb840777e8 Add style option to DragBox interaction 2013-12-20 10:21:18 +01:00
Éric Lemoine
18f9eeab12 No default style in ol.render.Box 2013-12-20 10:21:18 +01:00
Éric Lemoine
de329b02d3 Rename drag zoom interaction exports file 2013-12-20 10:21:18 +01:00
Éric Lemoine
0960584cfc Make DragZoom interaction inherit from DragBox 2013-12-20 10:21:18 +01:00
Éric Lemoine
6b305cd146 Add ol.interaction.DragBox 2013-12-20 10:21:18 +01:00
Éric Lemoine
91a61f3152 ol.render.Box refactoring 2013-12-20 10:21:17 +01:00
Éric Lemoine
0724300685 Rename a property 2013-12-20 10:15:54 +01:00
Éric Lemoine
712f451179 Use better type 2013-12-20 10:15:54 +01:00
Éric Lemoine
0b6e1e91c0 ol.render.DragBox renamed to ol.render.Box 2013-12-20 10:15:54 +01:00
Frederic Junod
eaf6d7caef Add ol.format.IGC#getExtensions 2013-12-20 09:08:08 +01:00
Tom Payne
e789d9a6fe Merge pull request #1359 from twpayne/vector-api-polyline
[vector-api] Add ol.format.Polyline
2013-12-19 09:15:46 -08:00
Tobias Bieniek
432c6d8af3 Optimize encode 2013-12-19 18:14:10 +01:00
Tom Payne
7de4a9e2cb Merge pull request #1368 from twpayne/vector-api-kml
[vector-api] ol.format.KML
2013-12-19 09:07:43 -08:00
Tom Payne
1a3218266c Add drag-and-drop example 2013-12-19 17:54:13 +01:00
Tom Payne
5c517cde19 Add ol.interaction.DragAndDrop 2013-12-19 17:54:13 +01:00
Tom Payne
33bf2b746f Add ol.format.KML#readName 2013-12-19 17:54:13 +01:00
Tom Payne
fd5924dd13 Add kml-earthquakes example 2013-12-19 17:54:12 +01:00
Antoine Abt
2eba705ccc Merge pull request #1356 from tonio/vector-api-multiplegeom
[vector-api] add support for features with multiples geometries
2013-12-19 08:11:52 -08:00
Tom Payne
828c35d239 Use more interesting data in KML example 2013-12-19 17:00:38 +01:00
Tom Payne
c859dd0e94 Add kml example 2013-12-19 17:00:38 +01:00
Tom Payne
d81efbcd13 Correct styleUrls in example KML data 2013-12-19 17:00:37 +01:00
Tom Payne
782616c1bb Ensure that features in example KML data are visible 2013-12-19 17:00:37 +01:00
Tom Payne
cd8a5fbe4d Add kml-timezones example 2013-12-19 17:00:37 +01:00
Tom Payne
904578f694 Add ol.source.KML 2013-12-19 17:00:37 +01:00
Tom Payne
1d8f81d637 Add ol.format.KML 2013-12-19 17:00:37 +01:00
Tom Payne
578699970e Add ol.xml 2013-12-19 17:00:36 +01:00
Tom Payne
07c20c93fc Add ol.format.GeoJSON#getExtensions 2013-12-19 17:00:36 +01:00
Tom Payne
befd1fc5f8 Add ol.format.Format#getExtensions 2013-12-19 17:00:36 +01:00
Tom Payne
986f6559b7 Refactor ol.format.XML 2013-12-19 17:00:36 +01:00
Tom Payne
af7b410d14 Merge pull request #1417 from twpayne/vector-api-image-rotate-and-scale
[vector-api] Image rotate and scale
2013-12-19 07:41:54 -08:00
Frederic Junod
e4ea8a750e Cast serverType option in examples 2013-12-19 16:31:08 +01:00
Frederic Junod
5f3d018476 Export ol.source.wms.ServerType.* 2013-12-19 16:30:28 +01:00
Tom Payne
bfba52aef4 Add image rotation and scaling to ol.render.canvas.Immediate 2013-12-19 16:26:06 +01:00
Tom Payne
fe2f028777 Sort miscellaneous properties and add rotation and scale 2013-12-19 16:26:06 +01:00
Tom Payne
b3f77b4d68 Add image rotation and scaling to ol.render.canvas.Replay 2013-12-19 16:26:06 +01:00
Tom Payne
c6b961782a Sort miscellaneous properties and add rotation and scale 2013-12-19 16:26:05 +01:00
Tom Payne
d82f1f8e02 Add scale to ol.style.IconStyle 2013-12-19 16:26:05 +01:00
Tom Payne
9524a46f41 Add scale to ol.style.Image 2013-12-19 16:26:05 +01:00
Tom Payne
2a6979e15a ol.style.Image rotation is always defined 2013-12-19 16:26:05 +01:00
Frederic Junod
1277b0ffd3 Move serverType option to olx.source.ImageWMSOptions 2013-12-19 16:14:23 +01:00
Frederic Junod
fd902008a2 Fix GeoServer format option param key
See http://docs.geoserver.org/latest/en/user/services/wms/vendor.html#format-options
2013-12-19 16:14:23 +01:00
Frédéric Junod
9bf445c37f Merge pull request #1418 from fredj/vector-api-lineCap
[vector-api] Set default canvas lineJoin and lineCap to 'round'
2013-12-19 07:08:53 -08:00
Frederic Junod
06ba19896c Set default canvas lineJoin and lineCap to 'round' 2013-12-19 15:40:31 +01:00
Tom Payne
8fb729258d Merge pull request #1414 from twpayne/vector-api-add-features
[vector-api] Add ol.source.Vector#addFeatures
2013-12-19 06:30:25 -08:00
Tom Payne
1cb70592d7 Use addFeatures in ol.source.VectorFile 2013-12-19 14:53:22 +01:00
Tom Payne
b2c822c9ca Clear null geometry features in ol.source.Vector#clear 2013-12-19 14:53:22 +01:00
Tom Payne
f1fac356dd Change ol.source.Vector#removeFeatureInternal from private to protected 2013-12-19 14:53:22 +01:00
Tom Payne
3af6521ee3 Use addFeaturesInternal in ol.source.Vector constructor 2013-12-19 14:53:21 +01:00
Tom Payne
0912c8f6ea Add ol.source.Vector#addFeatures 2013-12-19 14:53:21 +01:00
Tom Payne
e6c66d3678 Add ol.source.Vector#addFeaturesInternal 2013-12-19 14:53:21 +01:00
Tom Payne
387fcfbdb0 Factor out ol.source.Vector#addFeatureInternal 2013-12-19 14:53:21 +01:00
Tom Payne
491482870b Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-19 14:52:47 +01:00
Tom Payne
bd35cd89e6 Merge pull request #1415 from twpayne/rbush-clear
Fix bug in ol.structs.RBush#clear
2013-12-19 05:51:12 -08:00
Éric Lemoine
511f79ebee Merge pull request #1416 from elemoine/vector-api-icon-shape
[vector-api] Icon/shape API and cross-origin hit detection
2013-12-19 05:45:35 -08:00
Éric Lemoine
84e98b4422 Export ol.style.Style getters 2013-12-19 14:37:58 +01:00
Éric Lemoine
f22f1e1f04 Export ol.style.Stroke getters 2013-12-19 14:37:58 +01:00
Éric Lemoine
c9c8fad01a Export ol.style.Image getters 2013-12-19 14:37:58 +01:00
Éric Lemoine
ad945e6331 Export ol.style.Icon getters 2013-12-19 14:37:58 +01:00
Éric Lemoine
47a1ec3a00 Export ol.style.Fill getters 2013-12-19 14:37:58 +01:00
Éric Lemoine
0dad9f49c7 Export ol.style.Circle getters 2013-12-19 14:37:58 +01:00
Éric Lemoine
44d310bb6d Add getters to ol.style.Text 2013-12-19 14:37:58 +01:00
Éric Lemoine
d4d9cb6a3a Add getters to ol.style.Stroke 2013-12-19 14:37:57 +01:00
Éric Lemoine
5cd3ab06fc Add getters to ol.style.Image 2013-12-19 14:37:57 +01:00
Éric Lemoine
e4f2a7552e Add getters to ol.style.Icon 2013-12-19 14:37:57 +01:00
Tom Payne
484c5b2fe3 Fix bug in ol.structs.RBush#clear 2013-12-19 14:22:44 +01:00
Éric Lemoine
16047ff852 Add getters to ol.style.Fill 2013-12-19 11:41:38 +01:00
Éric Lemoine
8fdd178d0a Add getters to ol.style.Circle 2013-12-19 11:36:31 +01:00
Éric Lemoine
1e24ec28be Add getters to ol.style.Style 2013-12-19 11:32:57 +01:00
Éric Lemoine
fe7b614f22 Support hit detection on tainted canvas 2013-12-19 09:10:09 +01:00
Éric Lemoine
2bd0f8ae3e Add ol.style.Icon#getHitDetectionImage 2013-12-19 09:08:58 +01:00
Éric Lemoine
59910339cd Add ol.style.Circle#getHitDetectionImage 2013-12-19 09:08:30 +01:00
Éric Lemoine
ebcc6ab509 Add ol.style.Image#getHitDetectionImage abstract method 2013-12-19 09:08:04 +01:00
Éric Lemoine
a5089a0e0c Example rtree uses ol.style.Circle 2013-12-19 00:20:11 +01:00
Éric Lemoine
57814aba04 Example synthetic-points uses ol.style.Circle 2013-12-19 00:20:11 +01:00
Éric Lemoine
41ec0fd79b Example igc uses ol.style.Circle 2013-12-19 00:20:11 +01:00
Éric Lemoine
722bf3e0b2 Example geojson uses ol.style.Circle 2013-12-19 00:20:11 +01:00
Éric Lemoine
864d4d95e5 Example dynamic-data uses ol.style.Circle 2013-12-19 00:20:11 +01:00
Éric Lemoine
573b15182c Example icon uses ol.style.Icon 2013-12-19 00:20:11 +01:00
Éric Lemoine
faf6722c84 Canvas immediate uses ol.style.Image#getImage 2013-12-19 00:20:11 +01:00
Éric Lemoine
ee1ac6b23c Canvas replay uses ol.style.Image#getImage 2013-12-19 00:20:11 +01:00
Éric Lemoine
a97e3d036b Remove olx.style.ImageOptions 2013-12-19 00:20:11 +01:00
Éric Lemoine
d2d801d8a6 Add olx.style.IconOptions 2013-12-19 00:20:11 +01:00
Éric Lemoine
6afd711c66 Add olx.style.CircleOptions 2013-12-19 00:20:10 +01:00
Éric Lemoine
1b22ea0677 Remove ol.shape.renderCircle 2013-12-19 00:20:10 +01:00
Éric Lemoine
4b9de0a93c Remove ol.icon.renderIcon 2013-12-19 00:20:10 +01:00
Éric Lemoine
e44aa1e14a Make ol.style.Image a base class for Icon and Circle 2013-12-19 00:20:10 +01:00
Éric Lemoine
c786b91f3c Export ol.style.Circle 2013-12-19 00:20:10 +01:00
Éric Lemoine
65a75399c2 Add ol.style.Circle 2013-12-19 00:20:10 +01:00
Éric Lemoine
8e1107070b Export ol.style.Icon 2013-12-19 00:20:10 +01:00
Éric Lemoine
61f5871e90 Add ol.style.Icon 2013-12-19 00:20:10 +01:00
Éric Lemoine
fead554a39 Add missing goog.provide's (for @enum's) 2013-12-18 23:29:26 +01:00
Tom Payne
fc7c82e86c Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-18 21:01:49 +01:00
Tom Payne
009f9328a8 Use ol.BrowserFeature.HAS_WEBGL in layer-clipping-webgl example 2013-12-18 20:48:58 +01:00
Éric Lemoine
0795b47043 Merge pull request #1411 from elemoine/interaction-hint
Conditionally deregister touchend listener
2013-12-18 08:37:05 -08:00
Tom Payne
7cadb6824e Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-18 17:09:19 +01:00
Éric Lemoine
28738af844 Merge pull request #1395 from elemoine/exports
Fix exports (remove export_as hack)
2013-12-18 07:17:24 -08:00
Éric Lemoine
0e75e971d9 Conditionally deregister touchend listener 2013-12-18 15:55:11 +01:00
Antoine Abt
cd500b2917 Merge pull request #1410 from tonio/examples_css
fix hover style on zoom buttons in examples
2013-12-18 06:16:30 -08:00
Antoine Abt
81d2e74abb fix hover style on zoom buttons in examples 2013-12-18 14:28:07 +01:00
Antoine Abt
add3cf2233 Remove useless "geometry" FeatureProperty 2013-12-18 14:20:11 +01:00
Antoine Abt
59df68fe68 Update property change listener 2013-12-18 14:20:08 +01:00
Éric Lemoine
9466101a47 Remove ol.renderer.webgl.SUPPORTED 2013-12-18 11:45:23 +01:00
Éric Lemoine
ee9f50911c Remove ol.renderer.dom.SUPPORTED 2013-12-18 11:45:13 +01:00
Éric Lemoine
fb32a167b3 Remove ol.renderer.canvas.SUPPORTED 2013-12-18 11:44:54 +01:00
Antoine Abt
97ed71dfe2 Remove useless export (already defined in code) 2013-12-18 11:40:00 +01:00
Antoine Abt
4fc6c36724 Add support for features with multiples geometries 2013-12-18 11:37:35 +01:00
Éric Lemoine
779ea26f81 No need for @type when using @const 2013-12-18 11:24:55 +01:00
Éric Lemoine
7fe684a6d4 HAS_WEBGL is false if ENABLE_WEBGL is false 2013-12-18 11:20:14 +01:00
Éric Lemoine
3df49423ad HAS_DOM is false if ENABLE_DOM is false 2013-12-18 11:20:14 +01:00
Éric Lemoine
5bb6dbfef3 HAS_CANVAS is false if ENABLE_CANVAS is false 2013-12-18 11:20:14 +01:00
Éric Lemoine
5520cc530d Move ol.ENABLE_[CANVAS|DOM|WEBGL] @define's to browserfeature.js 2013-12-18 11:20:14 +01:00
Éric Lemoine
a97e115100 Use ol.BrowserFeature.HAS_* in map.js 2013-12-18 11:20:14 +01:00
Éric Lemoine
c8038f7855 Add ol.BrowserFeature.HAS_DOM 2013-12-18 11:20:14 +01:00
Éric Lemoine
42a2f7aab9 Add ol.BrowserFeature.HAS_CANVAS 2013-12-18 11:20:14 +01:00
Éric Lemoine
b6ec5838f7 Add ol.BrowserFeature.HAS_GEOLOCATION 2013-12-18 11:20:14 +01:00
Éric Lemoine
62e8803287 Add ol.BrowserFeature.HAS_DEVICE_ORIENTATION 2013-12-18 11:20:14 +01:00
Éric Lemoine
79718151b7 Add ol.BrowserFeature.HAS_WEBGL 2013-12-18 11:20:13 +01:00
Éric Lemoine
73f24cf7b0 goog.require creates a namespace object already 2013-12-18 11:20:13 +01:00
Tom Payne
35be1db6a5 Merge pull request #1409 from twpayne/vector-api-polygon-quantize
[vector-api] Always quantize polygons
2013-12-18 01:10:54 -08:00
Frédéric Junod
fa31c99563 Merge pull request #1367 from fredj/vector-api-hdpi
[vector-api] High dpi devices support
2013-12-18 00:44:25 -08:00
Frederic Junod
3e83809880 Add serverType option to ol.source.ImageWMS constructor 2013-12-18 09:08:37 +01:00
Éric Lemoine
1b084dba06 Do not use export_as for interactiondefaults exports 2013-12-18 08:25:14 +01:00
Éric Lemoine
0d235e7efc Do not use export_as controldefaults exports 2013-12-18 08:25:14 +01:00
Éric Lemoine
9c8227bb4f Do not use export_as for animation exports 2013-12-18 08:25:14 +01:00
Éric Lemoine
89141eec11 Remove export_as handling from generate-exports.py 2013-12-18 08:25:14 +01:00
Tom Payne
9bc92b2166 Always quantize all polygons 2013-12-17 17:46:43 +01:00
Tom Payne
dc69e02438 Pass tolerance to ol.render.canvas.Replay constructors 2013-12-17 17:46:28 +01:00
Tom Payne
76bddcf042 Pass tolerance to ol.render.canvas.ReplayGroup constructor 2013-12-17 17:46:01 +01:00
Frederic Junod
8e6b686f3d Add hidpi option to ol.source.ImageWMS and ol.source.MapGuide 2013-12-17 15:58:25 +01:00
Frederic Junod
c84782bfc6 Use the image pixelRatio in ol.renderer.canvas.ImageLayer 2013-12-17 13:31:11 +01:00
Frederic Junod
db322f9ade Add pixelRatio param to ol.Image constructor 2013-12-17 13:31:11 +01:00
Frederic Junod
78ec21fb85 Add pixelRatio to ol.source.Image#createImage 2013-12-17 13:31:11 +01:00
Frederic Junod
ca0b77d0e3 Add pixelRatio to ol.source.Image#getImage 2013-12-17 13:31:11 +01:00
Tom Payne
1d1dbb08c9 Use stronger instanceof assertion 2013-12-17 12:59:58 +01:00
Tom Payne
ed332dba19 Remove whitespace 2013-12-17 12:59:58 +01:00
Tom Payne
1864f204f7 Add ol.format.Polyline#readProjectionFromText 2013-12-17 12:59:58 +01:00
Tobias Bieniek
36a5a53ba2 Optimize encode 2013-12-17 12:59:58 +01:00
Tom Payne
d187849838 Making coding style closer to ol3's in ol.format.Polyline 2013-12-17 12:59:58 +01:00
Tom Payne
3cf87ced1e Port ol.parser.polyline to ol.format.Format 2013-12-17 12:59:58 +01:00
Tom Payne
461a0d0615 Move back ol.parser.polyline 2013-12-17 12:59:57 +01:00
Tom Payne
79ade07fb7 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-17 12:55:36 +01:00
Tom Payne
e6d576c421 Merge pull request #1360 from twpayne/vector-api-igc
[vector-api] ol.format.IGC
2013-12-17 03:39:43 -08:00
Tom Payne
45ea10ede2 Remove complex-geometry example 2013-12-17 12:03:59 +01:00
Tom Payne
d80c327515 Add IGC example 2013-12-17 12:03:59 +01:00
Éric Lemoine
a2b24d86f9 Merge pull request #1396 from elemoine/typecasts
Remove typecasts in examples
2013-12-17 02:05:09 -08:00
Éric Lemoine
20207fbdb5 Merge pull request #1397 from elemoine/observable
Make Interaction inherit from Observable
2013-12-17 01:46:23 -08:00
Éric Lemoine
d3f90418df Make Interaction inherit from Observable 2013-12-17 10:39:40 +01:00
Éric Lemoine
60ea9d5826 Remove View2D typecasts in geolocation example 2013-12-17 10:32:18 +01:00
Éric Lemoine
6533aa4aba Remove View2D typecasts in bind-input example 2013-12-17 10:32:08 +01:00
Tom Payne
856a16b43e Add ol.source.IGC 2013-12-16 20:26:45 +01:00
Tom Payne
fde0350414 Add ol.format.IGC 2013-12-16 20:25:49 +01:00
Tom Payne
a0b71d22e4 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-16 17:27:12 +01:00
Tim Schaub
01d4990a1b Merge pull request #1382 from tschaub/observable-geometry
Remove geometry specific event type.
2013-12-16 07:43:06 -08:00
Tom Payne
54fb2b4c20 Don't attempt to check Zoomify example with PhantomJS 2013-12-16 16:41:21 +01:00
Tom Payne
e229aab76a Don't check examples with PhantomJS that begin with // NOCHECK 2013-12-16 16:40:27 +01:00
Tom Payne
d8c81773ca Make options to ol.tilegrid.Zoomify optional 2013-12-16 16:09:15 +01:00
Tom Payne
fc4364e373 No need to use private variables in ol.source.Zoomify 2013-12-16 16:08:45 +01:00
Tom Payne
cb2727544a Update ol.tilegrid.Zoomify to use new exports system 2013-12-16 16:08:00 +01:00
Tom Payne
af6f4fa77e Update ol.source.Zoomify to use new exports system 2013-12-16 16:06:42 +01:00
Frederic Junod
bf9ea3368c Export ol.proj.Units.PIXELS 2013-12-16 16:04:17 +01:00
scharrier
3fe81e451a Remove extra tiles. 2013-12-16 16:01:13 +01:00
scharrier
beefa6845f Resize bad tiles + changed demo image (due to crossorigin problems) 2013-12-16 16:01:08 +01:00
Olivier Terral
fe1f98899f Add Zoomify stuff 2013-12-16 16:00:59 +01:00
Frédéric Junod
0b4b6c44b5 Merge pull request #1393 from fredj/browserfeature-export
Export DEVICE_PIXEL_RATIO and HAS_TOUCH from ol.BrowserFeature
2013-12-16 06:39:36 -08:00
Frederic Junod
983cf51a8c Export DEVICE_PIXEL_RATIO and HAS_TOUCH from ol.BrowserFeature 2013-12-16 15:30:17 +01:00
Tom Payne
50e5ffc8d6 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-16 14:28:12 +01:00
Tom Payne
83e34bfc8d Merge pull request #1392 from twpayne/bing-uk-maps
Add collinsBart and ordnanceSurvery styles to bing-maps example
2013-12-16 05:21:13 -08:00
Tom Payne
ec1ee5538a Add collinsBart and ordnanceSurvery styles to bing-maps example 2013-12-16 14:07:11 +01:00
ahocevar
a4083f544e Merge pull request #1373 from ahocevar/rbush-fail
ol.structs.RBush#remove() is unreliable
2013-12-16 05:02:49 -08:00
ahocevar
8bfa0f7ae9 Truthy check is enough 2013-12-16 13:53:55 +01:00
Tom Payne
58fc453378 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-16 13:37:11 +01:00
Tom Payne
64824170b4 Merge pull request #1391 from twpayne/rbush-get-extent
Add ol.structs.RBush#getExtent
2013-12-16 04:32:59 -08:00
Tom Payne
64bd0fcbf6 Merge pull request #1390 from twpayne/vector-api-misc-fixes
[vector-api] Miscellaneous vector fixes
2013-12-16 04:09:21 -08:00
Tom Payne
fad3251545 Add ol.structs.RBush#getExtent 2013-12-16 13:02:51 +01:00
Frédéric Junod
9bca7b1509 Merge pull request #1388 from fredj/mapguide-cleanup
Mapguide cleanup
2013-12-16 03:49:25 -08:00
Tom Payne
4510510477 Handle features with null geometries in ol.source.Vector 2013-12-16 12:47:29 +01:00
Tom Payne
975e0c0576 Add ol.source.Vector#getExtent 2013-12-16 12:47:29 +01:00
Tom Payne
47e2dd53ce Add ol.structs.RBush#getExtent 2013-12-16 12:47:29 +01:00
Tom Payne
5729ebbd79 Add ol.geom.GeometryCollection#isEmpty 2013-12-16 12:47:28 +01:00
Tom Payne
8003c4ba5a Remove ol.format.Format#readStyleFunction 2013-12-16 12:47:28 +01:00
Tom Payne
6a7e688957 Merge pull request #1389 from twpayne/vector-api-hdpi
[vector-api] High DPI (Retina) support for vector layers
2013-12-16 03:36:08 -08:00
Tom Payne
0ddcfb694b Set zoom in vector-layer example to match master 2013-12-16 12:29:57 +01:00
Tom Payne
6f2292588f Scale line widths by pixel ratio in immediate mode 2013-12-16 12:16:03 +01:00
Tom Payne
eb84072373 Pass pixel ratio to ol.render.canvas.Immediate constructor 2013-12-16 12:16:03 +01:00
Tom Payne
81c0c37eb9 Simplify geometries to a tolerance of half a device pixel 2013-12-16 12:16:02 +01:00
Tom Payne
20e51a5e34 Pass pixel ratio to ol.renderer.canvas.VectorLayer#renderFeature 2013-12-16 12:15:32 +01:00
Tom Payne
9b1a5f512d Scale line widths by pixel ratio in replay mode 2013-12-16 12:15:31 +01:00
Tom Payne
8304a2c7aa Pass pixel ratio to ol.render.canvas.Replay constructors 2013-12-16 12:15:31 +01:00
Tom Payne
2d0e6fd6bc Pass pixel ratio to ol.render.canvas.ReplayGroup constructor 2013-12-16 12:15:30 +01:00
Frederic Junod
355c0a1017 Scale output canvas by devicePixelRatio 2013-12-16 12:15:00 +01:00
Frederic Junod
bd1107f785 Add devicePixelRatio to ol.FrameState 2013-12-16 12:15:00 +01:00
Frederic Junod
01a246ca72 Add devicePixelRatio option to ol.Map constructor 2013-12-16 12:15:00 +01:00
Tom Payne
8ddd56fdfb Merge pull request #1381 from twpayne/vector-api-feature-style-function
[vector-api] Per-feature styleFunction
2013-12-16 03:07:20 -08:00
Frederic Junod
b381536b2a Add ol.source.MapGuide.getScale function 2013-12-16 10:31:54 +01:00
Frederic Junod
ede84739c4 Add displayDpi option to ol.source.MapGuide constructor 2013-12-16 09:58:27 +01:00
Frederic Junod
59e04c5371 Use ol.extent.* functions in ol.source.MapGuide 2013-12-16 09:53:28 +01:00
Éric Lemoine
88956c9f5c Merge pull request #1372 from elemoine/vector-api-layer-group
[vector-api] Fix forEachFeatureAtPixel bug
2013-12-15 02:09:44 -08:00
Tim Schaub
ec7fea090b Remove ol.geom.GeometryEvent
This removes geometry specific change events.  Since geometries are mere observables, we only get generic change events.  To minimize changes in other places, as a workaround, we cache geometry bounds on features.  This is not the way things should be long term, but the objective is to remove the geometry specific event.
2013-12-13 16:02:51 -07:00
Tom Payne
ec7d193543 Don't attempt to render features whose style is undefined or null 2013-12-13 22:59:34 +01:00
Tom Payne
afdfb92198 Use ol.layer.Vector.defaultStyleFunction by default 2013-12-13 22:59:34 +01:00
Tom Payne
c672eca749 Add ol.layer.Vector.defaultStyleFunction 2013-12-13 22:59:34 +01:00
Tom Payne
a7d6730259 Add styleFunction property to ol.Feature 2013-12-13 22:59:34 +01:00
Tom Payne
ece21e18fe Make options argument to ol.style.Text optional 2013-12-13 22:59:33 +01:00
Tom Payne
aae425eb59 Make options argument to ol.style.Stroke optional 2013-12-13 22:59:12 +01:00
Tom Payne
f429297a2f Make options argument to ol.style.Image optional 2013-12-13 22:58:50 +01:00
Tom Payne
465e33e170 Make options argument to ol.style.Fill optional 2013-12-13 22:58:28 +01:00
Tom Payne
31cd8da6f6 Make options argument to ol.style.Style optional 2013-12-13 22:58:01 +01:00
Tom Payne
a7175ae366 Merge pull request #1376 from twpayne/vector-api-simplify-schaub
[vector-api] Schaub simplification
2013-12-13 13:55:15 -08:00
Tom Payne
464bcce6a5 Merge pull request #1380 from twpayne/vector-api-format-projection
[vector-api] Don't assume EPSG:4326 in ol.format
2013-12-13 13:54:09 -08:00
Tim Schaub
5caa0eb659 Geometries inherit from ol.Observable
Because ol.Observable is now a struct, we have stricter type checking (hence the extra assertions).
2013-12-13 14:18:10 -07:00
Tom Payne
ae7d5ab9d5 Merge pull request #1351 from twpayne/openseamap
Add crossOrigin option to ol.source.OSM options
2013-12-13 13:18:08 -08:00
Tom Payne
aa10a542ae Add OpenSeaMap layer to localized-openstreetmap example 2013-12-13 22:05:08 +01:00
Tom Payne
46f63f1358 Add crossOrigin option to ol.source.OSM options 2013-12-13 22:02:56 +01:00
Tom Payne
d46d3a209e Don't assume EPSG:4326 in ol.format.XML 2013-12-13 21:43:11 +01:00
Tom Payne
c86d7c40e2 Don't assume EPSG:4326 in ol.format.Text 2013-12-13 21:42:38 +01:00
Tom Payne
700ebb860a Don't assume EPSG:4326 in ol.format.Format 2013-12-13 21:42:25 +01:00
Tom Payne
e6becd3e92 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-13 21:35:29 +01:00
Tom Payne
f1efb502ca Merge pull request #1379 from twpayne/observable-struct
Make ol.Observable and ol.Object @structs
2013-12-13 12:33:40 -08:00
Tom Payne
91197b5537 Merge pull request #1369 from gjn/dev_export_dragbox
[vector-api] Exporting ol.render.DragBox
2013-12-13 12:30:53 -08:00
Gilbert Jeiziner
dbec07396e Exporting ol.render.DragBox 2013-12-13 21:22:01 +01:00
Tom Payne
b179a27ade Rename ol.geom.simplify.schaub to quantize 2013-12-13 20:51:54 +01:00
Tom Payne
90e44c3979 Make ol.Observable a @struct 2013-12-13 20:44:10 +01:00
Tom Payne
d63fec80d1 Use goog.object.get to suppress compiler warning about use of [] with struct 2013-12-13 20:36:32 +01:00
Tom Payne
6e3bcc7478 Make ol.Object#listeners_ a private renameable property 2013-12-13 20:35:27 +01:00
Tom Payne
b48fd51561 Make ol.Object#accessors_ a private renameable property 2013-12-13 20:34:56 +01:00
Frédéric Junod
a841c92053 Merge pull request #1378 from fredj/apidoc
Minor apidoc updates
2013-12-13 11:23:00 -08:00
Tom Payne
b59eec7a83 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-13 20:22:06 +01:00
Tom Payne
b242756f03 Merge pull request #1377 from twpayne/struct
Improve type checking with @struct
2013-12-13 10:39:21 -08:00
Tom Payne
fdbb9f8d9e Fix type errors in vector-layer-sld example 2013-12-13 19:30:11 +01:00
Tom Payne
4470480dc9 Improve use of view in device-orientation example 2013-12-13 19:27:52 +01:00
Tom Payne
ee2098743d Correct types in ol.layer.Group 2013-12-13 19:16:31 +01:00
Tom Payne
e96d56215b Add typecasts so examples compile 2013-12-13 19:16:05 +01:00
Frederic Junod
f5ba373208 Minor apidoc updates 2013-12-13 19:02:21 +01:00
Tom Payne
59779bdcc5 Correct return types of ol.layer.Base methods 2013-12-13 18:59:26 +01:00
Tom Payne
d19ce18a31 Fix return type of ol.Map#getView 2013-12-13 18:59:26 +01:00
Tom Payne
9dc3dc6c11 Make ol.renderer.Layer a @struct 2013-12-13 18:59:26 +01:00
Tom Payne
a11c64934c Make ol.renderer.Map a @struct 2013-12-13 18:59:26 +01:00
Tom Payne
fbc23499e4 Add @struct annotation for simple classes 2013-12-13 18:59:26 +01:00
Tom Payne
2bcfa9ee00 Fix type errors in ol.renderer.webgl.Map 2013-12-13 18:59:25 +01:00
Tom Payne
fd733eca82 Use assertInstanceof instead of typecast 2013-12-13 18:59:25 +01:00
Tom Payne
b12bed8949 Use assertInstanceof instead of getImageSource 2013-12-13 18:59:25 +01:00
Tom Payne
c9b0d0bf0e Use assertInstanceof instead of getImageLayer 2013-12-13 18:59:25 +01:00
Tom Payne
e11d8bf717 Use assertInstanceof instead of getTileSource 2013-12-13 18:59:25 +01:00
Tom Payne
8d5e46622c Use assertInstanceof instead of getTileLayer 2013-12-13 18:59:25 +01:00
Tom Payne
3681b3c669 Always use goog.vec.Mat4.Number instead of goog.vec.Mat.AnyType 2013-12-13 18:59:25 +01:00
Tom Payne
5f0ea858ec Fix multiple type errors in getFeatureInfoForPixel 2013-12-13 18:59:24 +01:00
Tom Payne
a93e0b85df Improve type checking in ol.interaction.DragPan 2013-12-13 18:59:24 +01:00
Tom Payne
6dedac6ed8 Improve type checking in ol.interaction.TouchPan 2013-12-13 18:59:24 +01:00
Tom Payne
408a75426b Improve type checking in ol.control.Zoom 2013-12-13 18:59:24 +01:00
Tom Payne
35768f8b48 Improve type checking in ol.interaction.Interaction 2013-12-13 18:59:24 +01:00
Tom Payne
b39ae367e7 Improve type checking in ol.canvas.SUPPORTED 2013-12-13 18:59:24 +01:00
Tom Payne
8f6952c56c Fix use of ol.IView2D in ol.interaction.TouchPan 2013-12-13 18:59:24 +01:00
ahocevar
67d2cddb84 Verify that removing random extent nodes also works 2013-12-13 18:27:33 +01:00
Tim Schaub
a926b15472 Merge pull request #1375 from tschaub/generate-exports
Remove handling of @exportClass and @exportFunction.
2013-12-13 09:12:08 -08:00
Tom Payne
49369b8800 Fix use of ol.IView2D in ol.interaction.DragRotate 2013-12-13 18:04:48 +01:00
Tom Payne
d43eb6dcb7 Fix use of ol.IView2D in ol.interaction.DragRotateAndZoom 2013-12-13 18:04:48 +01:00
Tom Payne
d81c8d6f92 Fix use of ol.IView2D in ol.interaction.DragPan 2013-12-13 18:04:48 +01:00
Tom Payne
2bf7dc5568 ol.interaction.Interaction methods should take ol.IView2Ds, not ol.View2Ds 2013-12-13 18:04:48 +01:00
Tom Payne
3bb2306f79 Work around compiler not detecting implementation of abstract methods 2013-12-13 18:04:47 +01:00
Tom Payne
0b1a2325cd Define isDef on ol.IView2D, ol.IView3D and ol.View 2013-12-13 18:04:47 +01:00
ahocevar
d3cc822f98 Do not ascend when node has more siblings 2013-12-13 17:30:28 +01:00
Tim Schaub
b77a29f2f4 Remove handling of @exportFunction 2013-12-13 08:50:38 -07:00
Tim Schaub
ad0212ea69 Remove handling of @exportClass 2013-12-13 08:47:47 -07:00
Tim Schaub
0ed59f7be3 Merge pull request #1348 from tschaub/beforechange
Add `ol.ObjectEvent` for changes to `ol.Object` properties.  Previously, `ol.Object` dispatched instances of `goog.events.Event` with type `change`.  Now `ol.ObjectEvent` instances will be dispatched on property changes.  The events include a `getKey` method to get the name of the property being changed.  The `beforepropertychange` type event is fired before a property value changes, and the `propertychange` type event fires after the property value changes.
2013-12-13 07:28:36 -08:00
Tom Payne
594cee01e4 Use Schaub's topology-preserving simplification method for Polygons and MultiPolygons 2013-12-13 13:59:29 +01:00
Tom Payne
5b1bbe15dd Add ol.geom.simplify.schaub 2013-12-13 13:59:29 +01:00
Éric Lemoine
12c96510c1 Use olx options ns in icon and geojson examples 2013-12-13 13:43:51 +01:00
Éric Lemoine
35d5158454 Merge remote-tracking branch 'upstream/master' into vector-api
Conflicts:
	src/objectliterals.jsdoc
	src/ol/attribution.js
	src/ol/geom/geometry.js
	src/ol/geom/geometrycollection.js
	src/ol/geom/linestring.js
	src/ol/layer/vectorlayer.exports
	src/ol/layer/vectorlayer.js
	src/ol/map.js
	src/ol/proj/proj.js
	src/ol/renderer/canvas/canvasvectorlayerrenderer.js
	src/ol/source/imagewmssource.js
	src/ol/source/tilewmssource.js
	src/ol/source/vectorsource.exports
	src/ol/source/vectorsource.js
	src/ol/source/wmssource.js
	src/ol/style/style.js
	src/ol/tilegrid/tilegrid.js
	src/ol/tilegrid/wmtstilegrid.js
	src/ol/tilegrid/xyztilegrid.js
2013-12-13 12:53:57 +01:00
Éric Lemoine
f79ab25617 Make forEachFeatureAtPixel work with layer groups 2013-12-13 11:58:23 +01:00
Éric Lemoine
93e605b119 Merge pull request #1350 from elemoine/gutter
Add gutter support to ol.source.TileWMS
2013-12-13 01:11:42 -08:00
Bart van den Eijnden
fbf2bae90e Merge pull request #1366 from bartvde/wkt-data
wkt example is broken
2013-12-12 23:59:03 -08:00
Éric Lemoine
ca07b4ef47 Merge pull request #1371 from elemoine/getbrowserevent
Add ol.MapBrowserEvent#getBrowserEvent
2013-12-12 23:41:01 -08:00
Éric Lemoine
b8a0112a91 Merge pull request #930 from elemoine/externs
Use @exportSymbol instead of @exportClass|Function
2013-12-12 23:40:44 -08:00
Tim Schaub
20d74810ab Export a getKey method on ol.ObjectEvent 2013-12-12 16:59:34 -07:00
ahocevar
95c717ad32 Merge pull request #1370 from ahocevar/unnest-loops
Unnest loops
2013-12-12 15:12:19 -08:00
ahocevar
c4ec53bbdb Unnest loops
Reusing the iterator in a nested loop is not a good idea. And in
this case it is better to not have nested loops at all, because
we only have to create one array.
2013-12-12 17:57:14 +01:00
ahocevar
4d03c0bfaa Show an issue with ol.structs.RBush
Note that the same test passes in the original implementation.
2013-12-12 17:03:40 +01:00
Bart van den Eijnden
15eec2959c use official EPSG code 2013-12-12 17:02:15 +01:00
Éric Lemoine
7fa3a38081 external/src/types.js file no longer exists 2013-12-12 16:57:39 +01:00
Bart van den Eijnden
069f6cce1a remove projection on vector source 2013-12-12 16:54:38 +01:00
Bart van den Eijnden
e7fe809227 now that the data option was removed, parse features manually 2013-12-12 16:02:06 +01:00
Éric Lemoine
b709820777 Use olx for some parser options types 2013-12-12 15:22:47 +01:00
Éric Lemoine
f15694844d Line is too long 2013-12-12 15:22:18 +01:00
Éric Lemoine
f95e0eb785 Treat WMSGetFeatureInfoOptions as other options types 2013-12-12 15:21:49 +01:00
Éric Lemoine
7732c19874 Some options types are defined in the code
The sed script caught those, so manually adjusting here.
2013-12-12 15:19:37 +01:00
Éric Lemoine
cf14d4e41d Add @typedefs to externs file 2013-12-12 15:06:05 +01:00
Éric Lemoine
7b81bfab5c Change @exportClass to @exportSymbol
sed command used: find src/ol -name '*.exports' -exec sed -ri 's/@exportClass\s+(\S+)\s+(\S+)$/@exportSymbol \1/' \{\} \;
2013-12-12 15:05:52 +01:00
Éric Lemoine
d9e293109e Change @exportFunction to @exportSymbol
sed command used: find src/ol -name '*.exports' -exec sed -ri 's/@exportFunction\s+(\S+)\s+(\S+)\s+(\S+)$/@exportSymbol \1 \1/' \{\} \;
2013-12-12 15:05:39 +01:00
Éric Lemoine
315c42f0a7 Use olx namespace for options types in source code
sed command used: find src/ol -name '*.js' -exec sed -ri 's/\{ol(\.(\w|\.)+Options\=?\})/{olx\1/' \{\} \;
2013-12-12 15:02:03 +01:00
Éric Lemoine
ef703c7147 Use olx namespace in src/objectliterals.jsdoc
sed comment used: sed -ri 's/ol(\.\S*Options)/olx\1/' src/objectliterals.jsdoc
2013-12-12 15:02:02 +01:00
Éric Lemoine
875b5e1c0e File types.js no longer an input for ol.js 2013-12-12 15:02:02 +01:00
Éric Lemoine
a1b7d512eb File types.js no longer an input for ol-whitespace.js 2013-12-12 15:02:02 +01:00
Éric Lemoine
f5481ac2f5 File types.js no longer an input for ol-simple.js 2013-12-12 15:02:02 +01:00
Éric Lemoine
ff49b89f62 File types.js no longer an input for ol-all.js 2013-12-12 15:02:02 +01:00
Éric Lemoine
cfb3e7310f No longer generate src/external/src/types.js 2013-12-12 15:02:02 +01:00
Tom Payne
c2a97ced7d Merge pull request #1364 from twpayne/rbush-new-error
Add missing "new"s in ol.structs.RBush
2013-12-12 04:26:26 -08:00
Tom Payne
7b7ebb8609 Add missing "new"s in ol.structs.RBush 2013-12-12 13:01:25 +01:00
Tom Payne
cbc71686df Merge pull request #1363 from twpayne/vector-api-fix-geometry-collection-test
[vector-api] Fix ol.geom.GeometryCollection test
2013-12-12 02:37:48 -08:00
Tom Payne
ccf96ea415 Fix ol.geom.GeometryCollection test 2013-12-12 11:30:33 +01:00
Éric Lemoine
701b2d63ef Add gutter support to ol.renderer.webgl.TileLayer 2013-12-12 10:59:32 +01:00
Éric Lemoine
5c71ec4922 Add gutter support to ol.renderer.dom.TileLayer 2013-12-12 10:59:32 +01:00
Éric Lemoine
2db8ce566b Add gutter support to ol.renderer.canvas.TileLayer 2013-12-12 10:59:32 +01:00
Éric Lemoine
55f56aaf03 Add ol.source.Tile#getGutter 2013-12-12 10:59:31 +01:00
Éric Lemoine
e14d8add85 Add gutter support to TileUrlFunction 2013-12-12 10:59:31 +01:00
Éric Lemoine
fd438f232b Add gutter option to ol.source.TileWMS 2013-12-12 10:59:31 +01:00
Tim Schaub
69385f4ff0 More consistent event types 2013-12-11 16:54:01 -07:00
Tim Schaub
625007f364 Make enum property name like its value
Where an enum value is used as an event type, it should be alllowercase (to follow DOM events).  Property names should be ALLUPPERCASE in this case (just as camelCase and PascalCase are converted to CONSTANT_CASE).
2013-12-11 16:54:01 -07:00
Tim Schaub
c8985b9906 Using unique event type values for distinct events
Any event target can be used to dispatch generic goog.events.Event instances with an arbitrary type.  In cases where we dispatch custom events, we should not use type values that collide with those used for generic events (at least internally).  This allows listeners a better chance of knowing what kind of argument they will receive.

As subsequent change will clean up the enumeration and add a bit more consistency.
2013-12-11 16:53:52 -07:00
Tom Payne
e4d85e27b1 Merge pull request #1358 from twpayne/vector-api-geometry-collection
[vector-api] Add ol.geom.GeometryCollection
2013-12-11 13:07:05 -08:00
Tom Payne
dd3c39bb12 Add deep clone test 2013-12-11 22:05:33 +01:00
Tim Schaub
17e91feb52 Listen for property changes in layer group
This avoids a future bug when the ol.ObjectEventType.CHANGE value becomes something different than the goog.events.EventType.CHANGE value.
2013-12-11 12:23:05 -07:00
Tim Schaub
1783776976 Getting explicit about which type 2013-12-11 11:36:04 -07:00
Tim Schaub
153cb307e0 Handle beforechange events for bound properties 2013-12-11 11:25:51 -07:00
Tim Schaub
9d3a4e3c6c Add beforechange event type and provide key with change events
If you know ahead of time that you only want to listen for changes for a specific property, the foo:change type events can be useful.  If you want to listen for changes on all properties, the change event becomes more useful if it provides information on what changed.  And the beforechange event allows listeners to access values before they change.
2013-12-11 11:25:50 -07:00
Tim Schaub
d4f20192d4 Merge pull request #1349 from tschaub/fewer-change-events
Clean up layer change event handling.
2013-12-11 10:14:16 -08:00
Tom Payne
a03bf6d447 Add GeometryCollection to geojson example 2013-12-11 17:52:24 +01:00
Tom Payne
0943bbf070 Don't use postcompose in geojson example 2013-12-11 17:52:24 +01:00
Tom Payne
bde17b2ac8 Add ol.geom.GeometryCollection support to ol.format.GeoJSON 2013-12-11 17:28:00 +01:00
Éric Lemoine
114725a890 Merge pull request #1355 from elemoine/vector-api-hit-fill
[vector-api] Always fill polygons for hit detection
2013-12-11 07:50:16 -08:00
Tom Payne
4205c01414 Add ol.geom.GeometryCollection rendering 2013-12-11 16:49:47 +01:00
Tom Payne
d7eb4db69e Add ol.geom.GeometryCollection 2013-12-11 16:49:47 +01:00
Tom Payne
802d1644bb Implement clone for simple geometries 2013-12-11 16:49:47 +01:00
Tom Payne
6295fa6088 Add ol.geom.Geometry#clone 2013-12-11 16:49:47 +01:00
Tom Payne
76a6e08ec1 Factor out ol.geom.SimpleGeometry 2013-12-11 16:49:47 +01:00
Éric Lemoine
829381fd43 Always fill polygons for hit detection 2013-12-11 16:16:02 +01:00
Éric Lemoine
ac2a3cd1e8 Rename replayForward functions to replay 2013-12-11 16:16:02 +01:00
Éric Lemoine
8712509300 Rename replayBackward functions to replayHitDetection 2013-12-11 16:16:02 +01:00
Éric Lemoine
3019933cb6 Rename reverseInstructions_ function to reverseHitDetectionInstructions_ 2013-12-11 16:16:02 +01:00
Éric Lemoine
86995a8cb4 Rename reversedInstructions array to hitDetectionInstructions 2013-12-11 16:16:02 +01:00
Éric Lemoine
12e610e374 Merge pull request #1354 from elemoine/vector-api-hit-rotation
[vector-api] hit detect rotated features
2013-12-11 07:15:46 -08:00
Éric Lemoine
fda2217166 Hit detect rotated features 2013-12-11 15:01:58 +01:00
Tom Payne
cdc1039e23 Merge pull request #1353 from twpayne/vector-api-format
[vector-api] ol.format.Format
2013-12-11 05:37:33 -08:00
Tom Payne
7b3721fa3f Use ol.source.GeoJSON in complex-geometry example 2013-12-11 14:14:33 +01:00
Tom Payne
b31385fcb6 Use ol.source.GeoJSON in vector-layer example 2013-12-11 14:14:33 +01:00
Tom Payne
a814dd11ca Use ol.source.GeoJSON in icon example 2013-12-11 14:14:33 +01:00
Tom Payne
94d392c0c6 Use ol.source.GeoJSON in geojson example 2013-12-11 14:14:33 +01:00
Tom Payne
df975aa558 Add ol.source.GeoJSON 2013-12-11 14:14:32 +01:00
Tom Payne
28c7ecc014 Add ol.source.VectorFile 2013-12-11 14:14:32 +01:00
Tim Schaub
8b8563f0fd Test change events on layer groups 2013-12-11 01:46:23 -07:00
Tim Schaub
5a5d1dec40 Remove unused handleLayerVisibleChange 2013-12-11 01:38:44 -07:00
Tim Schaub
a792a224f6 Avoid duplicate change event on visibility change 2013-12-11 01:28:55 -07:00
Tim Schaub
858fe14163 No need for handleLayerChange in base layer 2013-12-11 01:23:51 -07:00
Tim Schaub
8fbfac52d4 Avoid firing duplicate change events in ol.layer.Layer 2013-12-11 01:20:07 -07:00
Tim Schaub
3e905d804c Merge pull request #1335 from tschaub/geometry-type
Change geometry type enum and mark as stable.
2013-12-10 08:50:54 -08:00
Tom Payne
514ebb752b Use ol.format.GeoJSON in icon example 2013-12-10 15:35:50 +01:00
Tom Payne
0941f06c0b Use ol.format.GeoJSON in geojson example 2013-12-10 15:35:50 +01:00
Tom Payne
ecf9ace190 Add ol.format.GeoJSON 2013-12-10 15:35:50 +01:00
Tom Payne
aa0002d880 Add ol.format.XML 2013-12-10 14:43:45 +01:00
Tom Payne
8c7ff29470 Add ol.format.Text 2013-12-10 14:43:45 +01:00
Tom Payne
409cde83bf Add ol.format.JSON 2013-12-10 14:43:45 +01:00
Tom Payne
1187466ebf Add ol.format.Format 2013-12-10 12:55:22 +01:00
Tom Payne
6d96fbf44d Remove experimental ol.format code 2013-12-10 12:55:22 +01:00
Tom Payne
ed5b8b6512 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-10 12:54:27 +01:00
Éric Lemoine
fafb7e487e Add ol.render.FeaturesOverlay 2013-12-10 11:03:10 +01:00
ahocevar
d147d11b51 Merge pull request #1347 from ahocevar/no-original
Remove original handling on ol.Feature
2013-12-10 00:59:28 -08:00
Tom Payne
496c9c4250 Add and improve comments 2013-12-09 18:56:34 +01:00
Tom Payne
b4c6a36a4f Fix and accelerate ol.source.Vector#getClosestFeatureToCoordinate
The previous implementation contained a bug (the reduced extent was
calculated around the closest point found, it should have been
calculated around the coordinate being searched for).  This allows a
speed-up that requires only a single traversal of the R-Tree (as opposed
to many traversals).
2013-12-09 18:45:16 +01:00
ahocevar
211e288f33 Remove original handling on ol.Feature
This is another attempt to bring master closer to the
vector-api branch. In anticipation of the ability to keep track
of modifications on ol.Object through a beforechange event
(d7e4be0), we will be able to manage originals on the
application level or in a separate component outside of
ol.Feature.
2013-12-09 18:33:34 +01:00
ahocevar
d53ad07279 Merge pull request #1346 from ahocevar/set-srsname
Set the srs name when writing GetFeature
2013-12-09 08:28:14 -08:00
ahocevar
2fc89b967a Define type for applyWriteOptions call 2013-12-09 17:19:03 +01:00
ahocevar
8328db26d4 Set the srs name when writing GetFeature
Also make clear that srsName is only optional for WFS 1.0.0.
2013-12-09 16:57:11 +01:00
Tom Payne
f4fe0046b2 Check closest point against extent 2013-12-09 16:40:55 +01:00
Tom Payne
66f1826358 Add ol.extent.closestSquaredDistanceXY 2013-12-09 16:40:54 +01:00
Tom Payne
3178331bab Reduce garbage generation 2013-12-09 16:40:54 +01:00
Tom Payne
5e710b4e57 Add snapping to synthetic points example (to be removed) 2013-12-09 16:40:54 +01:00
Tom Payne
d0d36193a7 Have some fun in the complex-geometry example 2013-12-09 16:40:54 +01:00
Tom Payne
1076c5cad1 Add ol.source.Vector#getClosestFeatureToCoordinate 2013-12-09 16:40:54 +01:00
Tom Payne
77a658ddee Add ol.geom.MultiPolygon#closestPointXY 2013-12-09 16:40:54 +01:00
Tom Payne
128e174ee2 Add ol.geom.MultiLineString#closestPointXY 2013-12-09 16:40:54 +01:00
Tom Payne
99042c956a Add ol.geom.MultiPoint#closestPointXY 2013-12-09 16:40:54 +01:00
Tom Payne
cf659f0753 Add ol.geom.Polygon#closestPointXY 2013-12-09 16:40:53 +01:00
Tom Payne
0c2a70f3a2 Add ol.geom.LinearRing#closestPointXY 2013-12-09 16:40:53 +01:00
Tom Payne
a19daf4b1d Add ol.geom.LineString#closestPointXY 2013-12-09 16:40:53 +01:00
Tom Payne
1add41033a Add ol.geom.Point#closestPointXY 2013-12-09 16:40:53 +01:00
Tom Payne
35c20bea79 Add ol.geom.Geometry#getClosestPoint 2013-12-09 16:40:53 +01:00
Tom Payne
74bf8a7ecb Add ol.geom.closest 2013-12-09 16:40:53 +01:00
Tom Payne
5d36c2a55e Add ol.geom.flat.closestPoint 2013-12-09 16:40:53 +01:00
Frederic Junod
02cee684a7 Remove trailing zeros in mtbland.geojson 2013-12-09 16:37:33 +01:00
Tom Payne
ee58e334a5 Move squaredDistance and squaredSegmentDistance in to ol.geom.flat 2013-12-09 16:37:33 +01:00
Tom Payne
90738d559a Add complex-geometry example 2013-12-09 16:37:33 +01:00
Tom Payne
b374d5c5b8 Avoid simplifying geometries when it will have no effect 2013-12-09 16:37:33 +01:00
Tom Payne
c6181ea9d1 Render simplified geometries in replay mode 2013-12-09 16:37:33 +01:00
Tom Payne
d3320da7c6 Add ol.geom.MultiPolygon#getSimplifiedGeometryInternal 2013-12-09 16:37:33 +01:00
Tom Payne
0845c866d5 Add ol.geom.MultiLineString#getSimplifiedGeometryInternal 2013-12-09 16:37:33 +01:00
Tom Payne
e560192c0f Add ol.geom.Polygon#getSimplifiedGeometryInternal 2013-12-09 16:37:32 +01:00
Tom Payne
956bff0fe2 Add ol.geom.LinearRing#getSimplifiedGeometryInternal 2013-12-09 16:37:32 +01:00
Tom Payne
6275d8528e Add ol.geom.LineString#getSimplifiedGeometryInternal 2013-12-09 16:37:32 +01:00
Tom Payne
9612182f70 Add ol.geom.Geometry#getSimplifiedGeometry 2013-12-09 16:37:32 +01:00
Tom Payne
7981d86bcd Add ol.geom.simplify.douglasPeukerss 2013-12-09 16:37:32 +01:00
Tom Payne
abe0cd27f6 Add ol.geom.simplify.douglasPeukers 2013-12-09 16:37:32 +01:00
Tom Payne
ec03be94d6 Add initial ol.geom.simplify 2013-12-09 16:37:32 +01:00
Frederic Junod
94393c0050 Don't use describe.only in test 2013-12-09 16:37:18 +01:00
ahocevar
7071e6637b Merge pull request #1344 from ahocevar/modify-remove
unable to removeInteration in modify-features example
2013-12-09 07:17:30 -08:00
Éric Lemoine
15db1eb416 Use reversedInstructions for hit detection 2013-12-09 14:08:55 +01:00
Éric Lemoine
30c0aa3cc2 Replay objects create a reversedInstructions array 2013-12-09 14:08:55 +01:00
ahocevar
8d55e14986 Safeguard against the case where no features are modifiable 2013-12-09 13:25:14 +01:00
Éric Lemoine
3877f87a26 Add ol.MapBrowserEvent#getBrowserEvent 2013-12-09 12:29:05 +01:00
Éric Lemoine
0d0b19128f Add ol.array.reverseSubArray 2013-12-08 21:35:27 +01:00
Tom Payne
554e17ac22 Set geometry to null if no geometry given 2013-12-07 19:51:54 +01:00
Tom Payne
87f147db60 Merge pull request #1341 from twpayne/mapguide-clean-ups
Tidy up ol.source.MapGuide and add ratio option
2013-12-06 12:50:43 -08:00
ahocevar
951e874914 Merge pull request #1339 from ahocevar/wfs-transaction
Transaction handling and exports for the WFS parser
2013-12-06 12:26:12 -08:00
Tom Payne
1ae13f152d Fire change event when an ol.geom.Geometry is transformed 2013-12-06 21:12:32 +01:00
ahocevar
19cb3c5835 Addressing review comments
* Do not write xmlns
* Make @this annotations consistent
* Handle numbers and strings for attribute values
* Fix defaultNamespaceURI scope
2013-12-06 19:15:44 +01:00
Tom Payne
43e4292ec9 Tidy up ol.source.MapGuide and add ratio option 2013-12-06 18:11:01 +01:00
Tom Payne
0a5cc8812c Merge pull request #1236 from jumpinjackie/master
MapGuide untiled map support
2013-12-06 08:59:57 -08:00
ahocevar
e49464a573 No native element on GetFeature queries 2013-12-06 16:49:44 +01:00
Tom Payne
6c5f1fbcce Make ol.geom.Geometry inherit from ol.Observable 2013-12-06 16:30:00 +01:00
Tom Payne
550da14781 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-06 16:29:13 +01:00
ahocevar
198b05047e Export the WFS parser and its write methods
For using the WFS parser, users need to be able to write
GetFeature queries and transactions.
2013-12-06 11:06:39 +01:00
ahocevar
35b8fdc00c Export getParser()
This reduces the API footprint of versioned parsers, because
only the base parser needs to be exported as symbol, and
versioned parsers can be accessed using the getParser() method.
2013-12-06 11:06:12 +01:00
ahocevar
b3b9add06e Add Insert, Update and Delete writers
This change also adds some type annotations for better type
checking, introduces different write options for writing
transactions and queries, and provides new writeGetFeature and
writeTransaction methods.
2013-12-06 10:57:58 +01:00
ahocevar
f539eb140f Use standard x, y axis order if we do not know better 2013-12-06 10:49:24 +01:00
ahocevar
77a8e91a2e Merge pull request #1337 from ahocevar/no-foo
Proper namespace and sub-parser management in OGC parsers
2013-12-06 00:47:59 -08:00
ahocevar
fa0cc538f5 Proper namespace and sub-parser management
Instead of setting a dummy namespace, we can have setter methods
for the featureNS property to propagate them to sub-parsers. The
srsName is also a property which needs to be propagated to
sub-parsers.
2013-12-06 01:08:45 +01:00
ahocevar
af4308f481 Merge pull request #1336 from ahocevar/fix-writers-typo
Fix a typo - it's writers, not witers
2013-12-05 16:00:13 -08:00
ahocevar
1bf4b9bf49 Fix a typo - it's writers, not witers 2013-12-06 00:53:16 +01:00
Tim Schaub
e6841b6088 Merge pull request #1297 from tschaub/observable
Create ol.Observable.
2013-12-05 15:13:00 -08:00
Tim Schaub
8297f6a9da Marking the geometry type enum as stable 2013-12-05 14:58:22 -07:00
Tim Schaub
9d00b1b993 This commit serves no purpose other than helping minimize a diff 2013-12-05 14:44:36 -07:00
Tim Schaub
2f7fa8f442 Using PascalCase for geometry enum values
This adds a bit more inconsistency to the library, but we didn't have complete consistency before.  Almost all existing string enum values are lowercase (a couple are camelCase and one is dash-separated).  The closure library isn't consistent either (with case for enum properties or values).  I imagine this could be justified in saying someone could blindly use GeoJSON type values in places, but in the end, you'll need to read the docs before guessing right.
2013-12-05 14:40:26 -07:00
Tim Schaub
4ee9605d61 Using CONSTANT_CASE for geometry type 2013-12-05 14:00:04 -07:00
Tim Schaub
162b245d7c ol.Object extends ol.Observable 2013-12-05 12:28:33 -07:00
Tim Schaub
3dc40f8cb6 Add ol.Observable for on, once, un, and unByKey methods 2013-12-05 12:27:30 -07:00
Bart van den Eijnden
9b1918c75c Add missing files needed for ol.parser tests 2013-12-05 18:14:15 +01:00
oterral
bd560bfb0f Add WMS GetCapabilties parser 2013-12-05 16:57:33 +01:00
Tom Payne
1dd5f7f7c8 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-05 16:53:04 +01:00
Tom Payne
fac8936688 Merge pull request #1333 from twpayne/object-get-properties
Add ol.Object#getProperties
2013-12-05 07:40:32 -08:00
Tom Payne
7ae7c8e41e Merge pull request #1334 from twpayne/build-check
Don't build ol.css in check target
2013-12-05 07:40:13 -08:00
Tom Payne
dfdec96ba7 Export ol.Object#getProperties 2013-12-05 16:32:41 +01:00
Tom Payne
82fa4861e7 Allow ol.geom.LinearRings to have null coordinates and add setFlatCoordinates 2013-12-05 16:23:56 +01:00
Tom Payne
72cf6e03cd Add ol.Object#getProperties 2013-12-05 16:23:56 +01:00
Frederic Junod
3d4199193f Allow ol.Feature to be constructed with no argument 2013-12-05 16:15:08 +01:00
Tom Payne
d9c94c7012 Don't build ol.css in check target 2013-12-05 13:12:39 +01:00
Tom Payne
f795adcd56 Add ol.Object#getProperties 2013-12-04 19:19:51 +01:00
Tom Payne
057cda42be Rename ol.geom.Type to ol.geom.GeometryType 2013-12-04 16:28:36 +01:00
Tom Payne
c2228b1d19 Rename ol.geom.Layout to ol.geom.GeometryLayout 2013-12-04 16:27:03 +01:00
Tom Payne
600cb3a0ff Add @struct annotation where possible 2013-12-04 16:07:39 +01:00
Tom Payne
bcda3aa3c2 Merge pull request #1331 from twpayne/rbush-is-empty
Add ol.structs.RBush#isEmpty
2013-12-04 06:26:41 -08:00
Tom Payne
2be40a1ae6 Add ol.structs.RBush#isEmpty 2013-12-04 15:05:43 +01:00
Tom Payne
aa0a02b935 Enable remaining ol.source.Vector tests 2013-12-04 15:03:20 +01:00
Tom Payne
79c6787e52 Add ol.source.Vector#clear 2013-12-04 14:59:30 +01:00
Tom Payne
ae3ab95b56 Factor out ol.source.Vector#removeFeatureInternal_ 2013-12-04 14:59:18 +01:00
Tom Payne
66457a7aaf Add ol.source.Vector#isEmpty 2013-12-04 14:49:25 +01:00
Tom Payne
d5e5749967 Add ol.structs.RBush#isEmpty 2013-12-04 14:48:21 +01:00
Tom Payne
b64e899b92 Merge pull request #1330 from twpayne/fail-if-major-performance-caveat
Don't use WebGL if there as a major performance caveat
2013-12-04 04:58:46 -08:00
Tom Payne
0d3583bd8d Improve type checking in WebGL support test 2013-12-04 11:59:29 +01:00
Tom Payne
d6dc1a2c6f Don't use WebGL if there is a major performance caveat 2013-12-04 11:58:05 +01:00
Tom Payne
a836d6924d Add FIXME 2013-12-04 00:05:45 +01:00
Tom Payne
9d57b53c0f Add optional layerFunction to ol.Map#forEachFeatureAtPixel 2013-12-04 00:05:45 +01:00
Tom Payne
5acc673c68 Add layer to forEachFeatureAtPixel callbacks in examples 2013-12-04 00:05:45 +01:00
Tom Payne
e9267e401c Pass layer to forEachFeatureAtPixel callback 2013-12-04 00:05:45 +01:00
Tom Payne
f1a9f76841 Break out of forEachFeatureAtPixel as soon as hit detected in vector-layer example 2013-12-04 00:05:45 +01:00
Tom Payne
41811e6566 Break out of forEachFeatureAtPixel as soon as hit detected in synthetic-points example 2013-12-04 00:05:45 +01:00
Tom Payne
15fd9f7662 Break out of forEachFeatureAtPixel as soon as hit detected in icon example 2013-12-04 00:05:44 +01:00
Tom Payne
d7591594ca Allow forEachFeatureAtPixel callback to break out of loop 2013-12-04 00:05:44 +01:00
Tom Payne
1a9d19a2fb Allow geometries to have null coordinates and add setFlatCoordinates 2013-12-03 19:58:34 +01:00
Tom Payne
580f7d2022 Ensure endss is truncated if needed in ol.geom.flat.deflateCoordinatesss 2013-12-03 19:43:00 +01:00
Tom Payne
b06ef0290c Add ol.geom.flat.deflateCoordinate 2013-12-03 16:53:23 +01:00
Tom Payne
27982ec5e7 Factor out ol.geom.Geometry.getStrideForLayout_ 2013-12-03 15:44:44 +01:00
Tom Payne
0477101c28 Factor out ol.geom.Geometry.getLayoutForStride_ 2013-12-03 15:44:25 +01:00
Bart van den Eijnden
10db521898 Merge pull request #1329 from bartvde/gpx-trkpt
Add GPX tracks example
2013-12-02 10:03:46 -08:00
Tom Payne
191b6fd051 Merge remote-tracking branch 'openlayers/master' into vector-api 2013-12-02 17:51:21 +01:00
Éric Lemoine
c904ca1d90 Merge pull request #1327 from oterral/fix_galaxytab
Fix map navigation on some android native browsers
2013-12-02 07:16:17 -08:00
Éric Lemoine
6b9bc9d8e8 Use hit detection in vector-layer example
The hit detection code doesn't correctly play well with the skiping of geometries using the renderGeometryFunction. Features/geometries that are not rendered by the replay API are not detected by the hit detection mechanism. For that reason, until we find a solution, we don't use renderGeometryFunction in the vector-layer example.
2013-12-02 15:06:19 +01:00
Éric Lemoine
24e7a81ae5 Detect when mouse is over marker in icon example 2013-12-02 15:06:19 +01:00
Éric Lemoine
53ecc8edb6 Add popup back to icon example 2013-12-02 15:06:19 +01:00
Éric Lemoine
a1e1393f44 Add hit detection to synthetic-points example 2013-12-02 15:06:19 +01:00
Éric Lemoine
374d5f99f6 Add ol.Map#forEachFeatureAtPixel 2013-12-02 15:06:19 +01:00
Éric Lemoine
6f423726a9 Add ol.renderer.Map#forEachFeatureAtPixel 2013-12-02 15:06:19 +01:00
Éric Lemoine
65c922f580 Add ol.renderer.canvas.VectorLayer#forEachFeatureAtPixel 2013-12-02 15:06:19 +01:00
Éric Lemoine
e9843ced57 Add ol.renderer.Layer#forEachFeatureAtPixel 2013-12-02 15:06:19 +01:00
Éric Lemoine
a537814169 Add hit detection support to replay API 2013-12-02 15:06:19 +01:00
Éric Lemoine
09a88569a8 Add per-geometry mode to replay API 2013-12-02 15:06:19 +01:00
Éric Lemoine
b98ff1619d Add getRenderGeometryFunction_ 2013-12-02 15:06:18 +01:00
Éric Lemoine
e358321b92 The iRender draw functions are passed a data object 2013-12-02 15:06:18 +01:00
Tom Payne
2c40daea22 Add ol.geom.LinearRing#getArea 2013-12-02 14:47:32 +01:00
Tom Payne
01c185ef57 Exploit known sense of rings to simplify area calculation 2013-12-02 12:15:07 +01:00
Tom Payne
8852e3198c Add ol.geom.MultiPolygon#getArea 2013-12-02 12:07:34 +01:00
Tom Payne
bb294bf52f Add ol.geom.Polygon#getArea 2013-12-02 12:07:33 +01:00
Tom Payne
ff1b039615 Add ol.geom.flat.linearRingssArea 2013-12-02 12:07:33 +01:00
Tom Payne
e90776a099 Add ol.geom.flat.linearRingsArea 2013-12-02 12:07:33 +01:00
Tom Payne
f80cad531b Add ol.geom.flat.linearRingArea 2013-12-02 12:07:33 +01:00
Tom Payne
c3378d0bd5 Order test cases alphabetically 2013-12-02 12:07:10 +01:00
Frederic Junod
c36920774a Add fill and stroke properties to ol.style.Text 2013-12-02 11:05:24 +01:00
Frederic Junod
1bf2d94968 Add rotation property to ol.style.Text 2013-12-02 10:55:37 +01:00
Frederic Junod
287377c844 Remove Text from ol.render.ReplayType 2013-12-02 10:46:55 +01:00
Frederic Junod
ffc357f4d4 Add text style default values 2013-12-02 10:43:22 +01:00
Tom Payne
44a28e3c16 Use ol.vec.Mat4.equals2D in ol.renderer.dom.TileLayer 2013-12-02 09:57:02 +01:00
Tom Payne
e1305b4614 Use ol.vec.Mat4.equals2D in ol.renderer.dom.ImageLayer 2013-12-02 09:57:02 +01:00
Tom Payne
3ab00704d8 Rename ol.vec.Mat4.equal2D to ol.vec.Mat4.equals2D 2013-12-02 09:57:02 +01:00
Tom Payne
2ba5cf6167 Use ol.vec.Mat4.makeTransform2D in ol.renderer.webgl.TileLayer 2013-12-02 09:57:02 +01:00
Tom Payne
20bd020c13 Use ol.vec.Mat4.makeTransform2D in ol.renderer.Map 2013-12-02 09:57:01 +01:00
Tom Payne
6b96cf4ed5 Use ol.vec.Mat4.makeTransform2D in ol.renderer.dom.TileLayer 2013-12-02 09:57:01 +01:00
Tom Payne
432a8d2e19 Use ol.vec.Mat4.makeTransform2D in ol.renderer.dom.ImageLayer 2013-12-02 09:57:01 +01:00
Tom Payne
bf08e6afe3 Use ol.vec.Mat4.makeTransform2D in ol.renderer.canvas.TileLayer 2013-12-02 09:57:01 +01:00
Tom Payne
5e5fc85238 Use ol.vec.Mat4.makeTransform2D in ol.renderer.canvas.Layer 2013-12-02 09:57:01 +01:00
Tom Payne
36fee8013a Use ol.vec.Mat4.makeTransform2D in ol.renderer.canvas.ImageLayer 2013-12-02 09:57:01 +01:00
Tom Payne
1cb56d02ac Add ol.vec.Mat4.makeTransform2D 2013-12-02 09:57:01 +01:00
Bart van den Eijnden
029c7ea7f3 add missing requires 2013-12-02 09:48:59 +01:00
Bart van den Eijnden
d9ba4e387c add an example to display GPX tracks 2013-12-02 09:46:11 +01:00
Tom Payne
b3473c3cba Add ol.geom.flat.flipXY 2013-12-02 09:08:06 +01:00
Tom Payne
dd1e0c616a Cache ol.geom.MultiPolygon interior points 2013-12-02 09:08:06 +01:00
Tom Payne
72df83251d Cache ol.geom.Polygon interior point 2013-12-02 09:08:05 +01:00
Tom Payne
c0a50ce24b Add ol.geom.MultiPolygon#getInteriorPoints 2013-12-02 09:08:05 +01:00
Tom Payne
a1b1483d3e Add ol.geom.flat.linearRingssMidYs 2013-12-02 09:08:05 +01:00
Tom Payne
a466aa3d71 Sort functions alphabetically 2013-12-02 09:08:05 +01:00
Tom Payne
3d35ce75e4 Add ol.geom.Polygon#getInteriorPoint 2013-12-02 09:08:05 +01:00
Tom Payne
e7bf44688d Add ol.geom.flat.linearRingsGetInteriorPoint 2013-12-02 09:08:05 +01:00
Tom Payne
6dab67df75 Add ol.geom.MultiPolygon#getPolygons 2013-12-01 21:06:25 +01:00
Tom Payne
2caf6307d4 Add ol.geom.MultiLineString#getLineStrings 2013-12-01 21:06:25 +01:00
Tom Payne
984cac3832 Add ol.geom.MultiPoint#getPoints 2013-12-01 21:06:25 +01:00
Tom Payne
3f49a4ce73 Add ol.geom.LineString#getLength 2013-12-01 21:06:25 +01:00
Tom Payne
321837f157 Add ol.geom.flat.lineStringInterpolate 2013-12-01 21:06:24 +01:00
Tom Payne
d45734634a Add ol.geom.flat.linearRingPerimeter 2013-12-01 21:06:24 +01:00
Tom Payne
8c669ab540 Add ol.geom.flat.lineStringLength 2013-12-01 21:06:24 +01:00
Tom Payne
c1c813e3fa Add ol.geom.Polygon#getLinearRings 2013-12-01 21:06:11 +01:00
Tom Payne
b2a93dcda7 Add ol.geom.LinearRing 2013-12-01 21:06:11 +01:00
Tom Payne
1ecdd675ab ol.geom.Geometry#getExtent is exported in base class 2013-12-01 21:06:11 +01:00
Frederic Junod
e2d9c77e08 Notify if WebGL is not supported 2013-11-29 10:43:02 +01:00
oterral
22ac512507 Fix map navigation on android native browsers 2013-11-29 09:06:19 +01:00
Tom Payne
d2fd695635 Merge branch 'master' into vector-api 2013-11-28 21:00:18 +01:00
Tom Payne
a06ba8d4aa Fire addfeature and removefeature events from ol.source.Vector 2013-11-28 20:53:17 +01:00
Tom Payne
f38e5f5f28 Only set line dash if it is supported 2013-11-28 18:04:01 +01:00
ahocevar
1ac93d09c9 Merge pull request #1325 from ahocevar/remove-rtree
Replace RTree with RBush and remove RTree
2013-11-28 08:58:04 -08:00
ahocevar
45d9f6ce0b Rename rbush test to match the naming scheme 2013-11-28 16:17:29 +01:00
ahocevar
d4bdac715b Get rid of ol.structs.RTree 2013-11-28 16:17:17 +01:00
ahocevar
92a30bcbf7 Use ol.structs.RBush in ol.source.Vector 2013-11-28 16:16:52 +01:00
Frederic Junod
8d40308d6e Fix indentation 2013-11-28 15:05:07 +01:00
Frederic Junod
0908490385 Add lineDash property to ol.style.Stroke 2013-11-28 13:47:31 +01:00
Frederic Junod
bf9cd0a675 Add miterLimit property to ol.style.Stroke 2013-11-28 11:49:56 +01:00
Frederic Junod
0bd77d3caf Add lineJoin property to ol.style.Stroke 2013-11-28 11:31:06 +01:00
Frederic Junod
b8dbac77bc Remove unused ol.style.Stroke.equals 2013-11-28 10:03:07 +01:00
Frederic Junod
06d873666f Remove unused ol.style.Fill.equals 2013-11-28 10:02:30 +01:00
Frederic Junod
b210073ef0 Add lineCap property to ol.style.Stroke 2013-11-28 09:36:54 +01:00
Tim Schaub
5a02ab9524 Merge pull request #1282 from tschaub/vector-source
Vector layer/source refactor.
2013-11-27 13:27:30 -08:00
Tim Schaub
b7b14420a4 Test removeFeatures and featureremove event 2013-11-27 12:22:34 -07:00
Tim Schaub
8b5dccb742 Test featureadd event 2013-11-27 12:22:34 -07:00
Tim Schaub
a5cadacb78 Test featureload event 2013-11-27 12:22:34 -07:00
Tim Schaub
f9710b6698 Test forEachFeatureInExtent 2013-11-27 12:22:33 -07:00
Tim Schaub
3bcd4bf833 Tests for getFeatures method 2013-11-27 12:22:33 -07:00
Tim Schaub
1f6d9fc5ae Test for vector source load method 2013-11-27 12:22:33 -07:00
Tim Schaub
6229c0a1d4 Unused getFeaturesByIds_ method 2013-11-27 12:22:33 -07:00
Tim Schaub
1877f92d46 Add forEach method to rtree, use it in feature cache
This saves having to create feature lookup objects and iterate through lookup properties multiple times.
2013-11-27 12:22:33 -07:00
Tim Schaub
8cc4ae8dbd Separate load requests from feature requests
This separates the action of requesting an extent to be loaded from the action of requesting cached features.  The renderer (or any other consumer of a vector source) calls load to request a data extent.  A `featureload` event fires when new features are loaded.  The renderer (or any other consumer) separately asks for cached features given an extent.  This vector source only loads features once, but this separation will also work with sources that make multiple requests for data in different extents.

This also removes the `data` option from the vector source in favor of a `features` option.  Since we no longer have shared data structures for geometries, people can manually create features and pass them to a vector source.  The `addFeatures` method is exported as well.  This is used to add features to a source that don't have a representation on the "remote" (or server).
2013-11-27 12:22:32 -07:00
Tim Schaub
ec02e09ce8 Move render intent enum to feature 2013-11-27 12:22:32 -07:00
Tim Schaub
bfaed4d52d Moving all style functionality from source to style 2013-11-27 12:20:43 -07:00
Tim Schaub
307e425891 Remove unused method 2013-11-27 12:20:42 -07:00
Tim Schaub
01a0b9ff8d Private source methods 2013-11-27 12:20:42 -07:00
Tim Schaub
2000b0af78 Vector layer/source refactor
This moves the feature cache from ol.layer.Vector to ol.source.Vector.  These are the minimum changes required to maintain the existing functionality and make tests pass.  More refactoring to come.
2013-11-27 12:20:42 -07:00
Bart van den Eijnden
31f0574983 Merge pull request #1319 from bartvde/kmlnewline
KML Parsing issue (r=@oterral)
2013-11-27 08:12:35 -08:00
Bart van den Eijnden
73a2ab2de1 make sure we can also read in CDATA fields with newlines 2013-11-27 16:09:36 +01:00
Éric Lemoine
2211aec553 Use rBush.getAll and rBush.getAllInExtent 2013-11-27 15:54:00 +01:00
Éric Lemoine
1192162792 Merge branch 'master' into vector-api 2013-11-27 15:40:22 +01:00
Tom Payne
9895c0f084 Merge pull request #1324 from twpayne/rbush-improvements
RBush improvements
2013-11-27 06:37:52 -08:00
Tom Payne
c00d748384 Update ol.interaction.Modify to use ol.structs.RTree#getAllInExtent 2013-11-27 15:11:42 +01:00
Tom Payne
5d3a5ae68e Fix infinite loop bug in ol.structs.RBush 2013-11-27 15:10:18 +01:00
Tom Payne
f847b37261 Rename ol.structs.RBush#allInExtent to getAllInExtent 2013-11-27 15:10:18 +01:00
Tom Payne
828456d18e Rename ol.structs.RBush#all to getAll 2013-11-27 15:10:18 +01:00
Tom Payne
978041b68c Only activate ol.structs.RBush conflict checks when goog.DEBUG is true 2013-11-27 15:10:18 +01:00
Tom Payne
665781ee03 Throw an exception if an ol.structs.RBush is modified while reading 2013-11-27 15:10:17 +01:00
ahocevar
fab0fe5e7a Merge pull request #1322 from ahocevar/modify-rbush
Use ol.structs.RBush in ol.interaction.Modify
2013-11-27 05:56:13 -08:00
ahocevar
137f797bee Use ol.structs.RBush in ol.interaction.Modify
This is one more step to bring the master and vector-api
branches closer together. I am well aware that the current
Modify interaction will probably be rewritten as part of the
vector-api effort, but with changes like this we will eventually
be able to remove ol.structs.RTree from master.
2013-11-27 14:48:06 +01:00
ahocevar
683b5c34bf Merge pull request #1321 from ahocevar/safe-foreach
Documenting limitations of forEach and forEachInExtent
2013-11-27 05:39:05 -08:00
ahocevar
96c6cd0ab0 Documenting limitations of forEach and forEachInExtent
Because the tree's structure changes when nodes are inserted,
updated or deleted, no modifications are allowed in a forEach
loop.
2013-11-27 14:21:56 +01:00
Frederic Junod
aac16a3ba1 Fix doc typos 2013-11-27 13:43:11 +01:00
Tom Payne
424f8fcc6d Merge remote-tracking branch 'openlayers/master' into vector-api 2013-11-27 13:10:20 +01:00
Frederic Junod
2f3a85a86a Add ol.source.Vector#getAllFeatures function 2013-11-27 12:14:33 +01:00
Frederic Junod
66b08644fc Export ol.source.Vector#removeFeature function 2013-11-27 12:14:32 +01:00
Frederic Junod
a3b43f21e4 Add ol.source.Vector#forEachFeature function 2013-11-27 12:14:32 +01:00
Frédéric Junod
8a15c33b86 Merge pull request #1318 from fredj/export_buffer
Export ol.extent.buffer function
2013-11-27 02:41:22 -08:00
Frederic Junod
5fef6d554b Export ol.extent.buffer 2013-11-27 10:05:06 +01:00
Éric Lemoine
8f361e35dd Do not draw non-loaded icons 2013-11-27 10:03:23 +01:00
Tim Schaub
e4b50376f3 Merge pull request #1316 from tschaub/rbush
Add adapted version of rbush.
2013-11-26 14:41:08 -08:00
Tom Payne
92469901f7 Clone extents in ol.structs.RBush to prevent modification 2013-11-26 12:03:00 -07:00
Tom Payne
880f098f0f Add ol.structs.RBush#update 2013-11-26 12:02:59 -07:00
Tom Payne
7ec456fa70 Add FIXME 2013-11-26 12:02:59 -07:00
Tom Payne
1293294d40 Implement ol.structs.RBush#remove_ 2013-11-26 12:02:59 -07:00
Tom Payne
b865a7c0e1 Don't check for under-full nodes when validating ol.structs.RBush
Removal can lead to under-full nodes.
2013-11-26 12:02:59 -07:00
Tom Payne
0ea7c2cd50 Refactor ol.structs.RBush tests 2013-11-26 12:02:59 -07:00
Tom Payne
a76eba34e8 Add ol.structs.RBush#assertValid 2013-11-26 12:02:59 -07:00
Tom Payne
e823e7fde3 Add ol.structs.RBush 2013-11-26 12:02:59 -07:00
Tom Payne
f12355a17b Add optional destination argument to ol.extent.clone 2013-11-26 12:02:58 -07:00
Tom Payne
54d22735f2 Add ol.extent.getMargin 2013-11-26 12:02:58 -07:00
Tom Payne
2a6f5a6396 Add ol.extent.getIntersectionArea 2013-11-26 12:02:58 -07:00
Tom Payne
6b02c7f639 Add ol.extent.getEnlargedArea 2013-11-26 12:02:58 -07:00
Tom Payne
b74c244088 Add ol.extent.getArea 2013-11-26 12:02:58 -07:00
Tom Payne
df96c08e0e Return extent from ol.extent.extend 2013-11-26 12:02:57 -07:00
Tom Payne
d994db46f6 Add ol.extent.createOrUpdateFromFlatCoordinates 2013-11-26 12:02:57 -07:00
Tom Payne
67bf15b5dc Add ol.extent.extendFlatCoordinates 2013-11-26 12:02:57 -07:00
Tom Payne
ae9f03c8cb Add more extent functions 2013-11-26 12:02:57 -07:00
Tom Payne
9cbd8de188 Fix order of arguments to ol.extent.createOrUpdate 2013-11-26 12:02:57 -07:00
Tom Payne
cf0fdff4e2 Add ol.extent.extendXY 2013-11-26 12:02:57 -07:00
Éric Lemoine
82e03ea508 Add an icon example 2013-11-26 16:32:03 +01:00
Éric Lemoine
9365c227ab Make icon size optional 2013-11-26 16:19:57 +01:00
Éric Lemoine
519e2539cc Export ol.icon.renderIcon 2013-11-26 15:33:27 +01:00
Éric Lemoine
83293651b7 Add ol.icon.renderIcon 2013-11-26 15:33:27 +01:00
Éric Lemoine
0a4fd29c10 Add icon support to canvas vector renderer 2013-11-26 15:25:32 +01:00
Éric Lemoine
b1a123a927 Shapes are loaded images 2013-11-26 15:23:55 +01:00
Éric Lemoine
189a859dde Export ol.style.Image options 2013-11-26 15:21:51 +01:00
Éric Lemoine
29009d27f3 Make ol.style.Image loadable 2013-11-26 15:20:04 +01:00
Éric Lemoine
1d8fefe683 Adapt styleFunction in vector-layer example 2013-11-26 14:19:24 +01:00
Éric Lemoine
972deebbc6 Adapt styleFunction in synthetic-points example 2013-11-26 14:19:24 +01:00
Éric Lemoine
9be03b2e3a Use ol.style.Style in synthetic-points example 2013-11-26 14:19:24 +01:00
Éric Lemoine
305be3c689 Adapt styleFunction in synthetic-lines example 2013-11-26 14:19:24 +01:00
Éric Lemoine
82aa5cc675 Adapt styleFunction in rtree example 2013-11-26 14:19:24 +01:00
Éric Lemoine
39af934e71 Adapt styleFunction in geojson example 2013-11-26 14:19:24 +01:00
Éric Lemoine
317294756a Style function takes a resolution arg 2013-11-26 14:19:24 +01:00
Éric Lemoine
3820caade1 Style function returns an array of styles 2013-11-26 14:19:24 +01:00
Tom Payne
733da2dd70 Clone extents in ol.structs.RBush to prevent modification 2013-11-26 12:15:40 +01:00
Tom Payne
85c9ca2000 Add optional destination argument to ol.extent.clone 2013-11-26 12:15:09 +01:00
Tom Payne
4de5cda4a1 Keep R-Tree up-to-date in ol.source.Vector 2013-11-26 11:57:38 +01:00
Tom Payne
55730e9279 Add ol.structs.RBush#update 2013-11-26 11:57:38 +01:00
Tom Payne
48e78533b9 Add FIXME 2013-11-26 11:57:38 +01:00
Tom Payne
2df03fbf96 Implement ol.structs.RBush#remove_ 2013-11-26 11:57:38 +01:00
Tom Payne
d5f1a35f9a Don't check for under-full nodes when validating ol.structs.RBush
Removal can lead to under-full nodes.
2013-11-26 11:57:37 +01:00
Tom Payne
62b9aa0595 Refactor ol.structs.RBush tests 2013-11-26 11:57:37 +01:00
Tom Payne
4981552fb1 Add ol.structs.RBush#assertValid 2013-11-26 11:57:37 +01:00
Tom Payne
e749715abd Move ol.structs.RTree out of the way 2013-11-26 11:57:37 +01:00
Tom Payne
9576473072 Port rtree example to ol.structs.RBush 2013-11-26 11:57:37 +01:00
Tom Payne
8294ca9f57 Port ol.source.Vector to ol.structs.RBush 2013-11-26 11:57:37 +01:00
Tom Payne
4cddee2a0e Add ol.structs.RBush 2013-11-26 11:57:37 +01:00
Tom Payne
7967edb8f0 Add ol.extent.getMargin 2013-11-26 11:57:37 +01:00
Tom Payne
8c6e5287b5 Add ol.extent.getIntersectionArea 2013-11-26 11:57:36 +01:00
Tom Payne
61afebb1ec Add ol.extent.getEnlargedArea 2013-11-26 11:57:36 +01:00
Tom Payne
0294691446 Add ol.extent.getArea 2013-11-26 11:57:36 +01:00
Tom Payne
b99fac9901 Return extent from ol.extent.extend 2013-11-26 11:57:36 +01:00
Tim Schaub
09b4c4692a Merge pull request #1315 from tschaub/gfi-return
Return for getFeatureInfoForPixel.
2013-11-25 15:56:22 -08:00
ahocevar
7ee2646a6b Merge pull request #1311 from ahocevar/modify-points
Segment distance calculation fails when modifying points
2013-11-25 15:36:48 -08:00
Tim Schaub
b235fe25ea Return for getFeatureInfoForPixel
In b8a9aeb14e a return was added to `ol.renderer.Layer.prototype.getFeatureInfoForPixel`.  The `ol.renderer.canvas.VectorLayer.prototype.getFeatureInfoForPixel` method needs the same.
2013-11-25 15:29:40 -07:00
Tom Payne
b0d5f96b65 Rename ol.render.canvas.Replay#draw to replay 2013-11-25 20:03:21 +01:00
Bart van den Eijnden
b5335b970d Merge pull request #1160 from bartvde/wfst
Add parser for WFS (r=@ahocevar)
2013-11-25 07:38:08 -08:00
Bart van den Eijnden
9ed5004aa6 rename this.gml_ to this.gmlParser_ 2013-11-25 15:50:16 +01:00
Bart van den Eijnden
d564b5170c move the typedefs out of objectliterals 2013-11-25 15:50:09 +01:00
Bart van den Eijnden
279c358af2 same solution for axisOrientation as for WFS 1.1.0 2013-11-25 15:50:08 +01:00
Bart van den Eijnden
c9569ed9e2 more tests and typedefs.
Once feature editing is more stable, this format can be extended with Update, Delete and Insert
2013-11-25 15:49:56 +01:00
Bart van den Eijnden
46b79d88f8 ability to parse a FeatureCollection
The trick here was to delete featureNS so autoConfig would kick in
2013-11-25 15:49:48 +01:00
Bart van den Eijnden
c4e7d4437c port over another WFS 1.1 testcase 2013-11-25 15:49:47 +01:00
Bart van den Eijnden
a77632a88c write out GetFeature in WFS 1.1 2013-11-25 15:49:47 +01:00
Bart van den Eijnden
4df848fae0 need the ability to set axisOrientation
We need to be able to set axisOrientation on the underlying GML parser of the Filter subparser of ol.parser.WFS*, also only options and no properties on the instance anymore
2013-11-25 15:48:59 +01:00
Bart van den Eijnden
3184fb02e5 ability to read boundedBy from FeatureCollection 2013-11-25 15:48:58 +01:00
Bart van den Eijnden
d2ac206ca3 starting to add tests for WFS 1.1.0
make sure we don't override the wfs:FeatureCollection reader with the one from GML
2013-11-25 15:48:33 +01:00
Bart van den Eijnden
0581a49378 ability to write out PropertyNames in a GetFeature request 2013-11-25 14:40:15 +01:00
Bart van den Eijnden
557390f2ad initial version of the WFS parser for 1.0.0 and 1.1.0 2013-11-25 14:40:15 +01:00
Bart van den Eijnden
dc58d4e562 srsName should be optional in BBOX 2013-11-25 14:40:14 +01:00
Frédéric Junod
67f00b37e8 Merge pull request #1314 from fredj/canvas_clear
Avoid clearing canvas twice
2013-11-25 01:58:51 -08:00
Bart van den Eijnden
d02af43161 Merge pull request #1130 from bartvde/sld3
Add Styled Layer Descriptor (SLD) version 1.0.0 parser (read/write) (r=@ahocevar)
2013-11-25 01:56:16 -08:00
Bart van den Eijnden
25ae9fe784 change simple type values to undefined instead of null 2013-11-25 10:48:30 +01:00
Bart van den Eijnden
410b0793cf Merge pull request #1127 from bartvde/gfi
STYLES parameter duplicated on getFeatureInfo (r=@tschaub,@ahocevar)
2013-11-25 00:39:09 -08:00
Bart van den Eijnden
e15dbb61f6 Merge pull request #1294 from bartvde/gmlgeom
GML parser should write out all geometry attributes and respect their names (r=@ahocevar)
2013-11-25 00:36:51 -08:00
Tom Payne
900bc176ae Avoid clearing canvas twice 2013-11-25 08:58:18 +01:00
Tom Payne
ae29e70cfd Use ol.style.Style in rtree example 2013-11-24 16:55:20 +01:00
Tom Payne
d358e80937 Improve type checking in ol.TileRange 2013-11-24 14:33:58 +01:00
Tom Payne
6584ef985f Improve type checking in ol.renderer.canvas.Map 2013-11-24 14:33:47 +01:00
Tom Payne
617635ed80 Improve type checking in ol.renderer.webgl.Map 2013-11-24 14:28:44 +01:00
Frédéric Junod
bd876831ed Merge pull request #1306 from fredj/canvas-size
ol.BrowserFeature.DEVICE_PIXEL_RATIO and canvas size
2013-11-23 14:14:53 -08:00
ahocevar
cf5e9ecd4f Segment distance calculation fails when modifying points
By providing a segment even for points, we have less distinction
points between points and other geometry types, and are able to
do the segment distance calculation also for points.
2013-11-23 11:49:42 +01:00
ahocevar
86a5749b36 Merge pull request #1308 from ahocevar/wms-getfeatureinfo-options
Add missing WMSGetFeatureInfo exports
2013-11-22 08:22:14 -08:00
ahocevar
9d9c91bbf7 Add missing WMSGetFeatureInfo exports 2013-11-22 17:11:44 +01:00
Éric Lemoine
6ca2fef0a3 Always same format for color strings 2013-11-22 17:02:59 +01:00
Éric Lemoine
b78bcce8ab Draw a temporary point in geojson example 2013-11-22 17:01:55 +01:00
Éric Lemoine
95826cd3c8 Add FIXME 2013-11-22 17:01:55 +01:00
Éric Lemoine
34ce9e478d Store raw style values in immediate objects
This commit also uses default style values (e.g.  ol.render.canvas.defaultStrokeFill) when no value is defined by the user.
2013-11-22 17:01:54 +01:00
Éric Lemoine
68caa8141c Fix typo in replay code 2013-11-22 16:36:06 +01:00
Éric Lemoine
c4731ff37b Use canvas style default values 2013-11-22 11:49:14 +01:00
Éric Lemoine
2a122f057c Rename currentFillColor to currentFillStyle 2013-11-22 11:49:14 +01:00
Éric Lemoine
d3ad1a7506 Add canvas style default values 2013-11-22 11:49:14 +01:00
Éric Lemoine
92a34d380b Make setting image rotation and subtractViewRotation optional 2013-11-22 11:49:13 +01:00
Éric Lemoine
66bda92597 Make setting stroke color and width optional 2013-11-22 11:49:13 +01:00
Éric Lemoine
3655d15f61 Make setting a fill color optional 2013-11-22 11:49:13 +01:00
Éric Lemoine
4bae4f3b90 Merge pull request #1285 from elemoine/clik_zoomslider
Handle click on the zoom slider
2013-11-22 02:48:38 -08:00
Tom Payne
9396df54c3 Always use a defined renderGeometryFunction, thanks @elemoine 2013-11-22 11:34:42 +01:00
Tom Payne
fd48b06dc0 Skip rendering highlighted feature in vector-layer example 2013-11-22 11:34:42 +01:00
Tom Payne
13ed52d9e8 Add FIXME 2013-11-22 11:34:42 +01:00
Tom Payne
32833a15bb Implement skipping of LineString and MultiLineString geometries 2013-11-22 11:34:42 +01:00
Tom Payne
a9af504a19 Factor out ol.render.canvas.LineStringReplay#setStrokeStyle_ 2013-11-22 11:34:42 +01:00
Tom Payne
1cccdfa9db Implement skipping of Point and MultiPoint geometries 2013-11-22 11:34:42 +01:00
Tom Payne
8b6f71f7f6 Factor out beginGeometry and endGeometry 2013-11-22 11:34:42 +01:00
Tom Payne
297251661a Implement skipping of Polygon and MultiPolygon geometries 2013-11-22 11:34:41 +01:00
Tom Payne
d05530290f Add BEGIN_GEOMETRY instruction 2013-11-22 11:34:41 +01:00
Tom Payne
a570261886 Pass renderGeometryFunction to ol.render.canvas.ReplayGroup 2013-11-22 11:34:41 +01:00
Tom Payne
b11c34261b Rename renderFeatureFunction to renderGeometryFunction 2013-11-22 11:34:41 +01:00
Éric Lemoine
381eef2cfb Simplify style setting in geojson example 2013-11-21 23:06:01 +01:00
Éric Lemoine
ff66a60e5e Export ol.webgl.Context
It's used in the layer-clipping-webgl example
2013-11-21 23:04:37 +01:00
Éric Lemoine
d973c40141 Export getAllFeaturesAtCoordinate 2013-11-21 23:04:37 +01:00
Éric Lemoine
43a903d98b Make vector-layer example work when hosted 2013-11-21 23:04:37 +01:00
Éric Lemoine
ed79da6c0c Add vector tag to geojson example 2013-11-21 23:02:25 +01:00
Éric Lemoine
4b91065f00 Make dynamic-data example work when hosted 2013-11-21 23:02:25 +01:00
Éric Lemoine
082d126544 synthetic-data example renamed to synthetic-points 2013-11-21 23:02:24 +01:00
Marc Jansen
22a90232be Merge pull request #1307 from marcjansen/right-align
Better formatted output for formatted sizes.
2013-11-21 13:40:43 -08:00
Marc Jansen
ed986afe26 Better formatted output for formatted sizes. 2013-11-21 22:26:11 +01:00
Tom Payne
602f9642d4 Use ol.style.Style in GeoJSON example 2013-11-21 20:25:43 +01:00
Tom Payne
55a43c9a98 Use ol.style.Style and construct style object once 2013-11-21 18:22:01 +01:00
Frederic Junod
ed211d5631 Use ol.style.Stroke and ol.style.Fill instances in vector-layer example 2013-11-21 18:05:18 +01:00
Frederic Junod
6762e70f4c Better canvas sizing handling (canvas and webgl) 2013-11-21 17:08:49 +01:00
Frederic Junod
71d3fc4921 Add ol.BrowserFeature.DEVICE_PIXEL_RATIO constant 2013-11-21 17:06:57 +01:00
Frederic Junod
c0ad472984 Add missing 'undefined' in jsdoc type definition 2013-11-21 14:48:49 +01:00
Frederic Junod
76a908d00c Split anchor ImageReplay property into anchorX and anchorY 2013-11-21 14:30:55 +01:00
Frederic Junod
db8f476098 Add ol.style.Image.size property 2013-11-21 14:27:04 +01:00
Frederic Junod
c715764680 Change ol.style.Image.anchor property type to ol.Pixel 2013-11-21 14:11:59 +01:00
Frederic Junod
04b91f3627 Add ol.BrowserFeature.DEVICE_PIXEL_RATIO constant 2013-11-21 14:08:49 +01:00
Frederic Junod
a7bb02b49c Better canvas sizing handling (canvas and webgl) 2013-11-21 14:05:28 +01:00
Tom Payne
f09de84011 Fix typo 2013-11-21 12:31:23 +01:00
Éric Lemoine
c0eb7bb1f6 Store raw style values for ImageReplay 2013-11-21 12:15:38 +01:00
Éric Lemoine
5493543c1f Store raw style values for PolygonReplay 2013-11-21 12:15:37 +01:00
Éric Lemoine
0ccd1ef217 Store raw style values for LineStringReplay 2013-11-21 12:15:37 +01:00
Frédéric Junod
5c2b5f3c11 Merge pull request #1219 from fredj/apidoc
Minor apidoc updates
2013-11-21 02:03:15 -08:00
Frederic Junod
6e88d3ba3c Minor apidoc updates 2013-11-21 10:52:00 +01:00
Frederic Junod
32c2b5311e Move apidoc CSS style out of layout.css 2013-11-21 10:51:59 +01:00
Tom Payne
114b48dcfb Use goog.vec.Mat4.getElement in ol.vec.Mat4.multVec2 2013-11-21 10:12:47 +01:00
Tom Payne
16957c9833 Only recompute pixel coordinates when transform has changed 2013-11-21 10:04:19 +01:00
Tom Payne
6872beb88a Add ol.vec.Mat4.equal2D 2013-11-21 10:03:34 +01:00
Tom Payne
760ee7c46f Use requestRenderFrame in vector layer example 2013-11-20 18:20:19 +01:00
Tom Payne
d367560faf Avoid re-rendering map on every mousemove 2013-11-20 18:19:00 +01:00
Frederic Junod
84dcf24511 Highlight features in vector-layer example 2013-11-20 17:55:37 +01:00
ahocevar
912ac29f31 Merge pull request #1298 from ahocevar/gfi-callback
The source determines who can do GetFeatureInfo
2013-11-20 07:11:51 -08:00
ahocevar
b8a9aeb14e Avoid source check in map renderer
By returning true or false from the layer renderer's
getFeatureInfoForPixel method, we know whether the source
supports GetFeatureInfo or not.
2013-11-20 16:05:00 +01:00
Éric Lemoine
93087c7661 Remove unused ol.style.Text width property 2013-11-20 15:48:11 +01:00
Éric Lemoine
38bc0a28a6 Export ol.style.Style 2013-11-20 15:35:11 +01:00
Éric Lemoine
e783703854 Export ol.style.Text 2013-11-20 15:35:11 +01:00
Éric Lemoine
dc49cc4c2f Export ol.style.Stroke 2013-11-20 15:35:11 +01:00
Éric Lemoine
3971425677 Export ol.style.Image 2013-11-20 15:35:11 +01:00
Éric Lemoine
6e2f907e09 Export ol.style.Fill 2013-11-20 15:35:11 +01:00
Éric Lemoine
16f3d5879e Use new ol.style in vector-layer example 2013-11-20 15:35:11 +01:00
Éric Lemoine
7d9b09b4ac Use new ol.style in synthetic-lines example 2013-11-20 15:35:11 +01:00
Éric Lemoine
ddb2786394 Use new ol.style in synthetic-data example 2013-11-20 15:35:11 +01:00
Éric Lemoine
6db824baa4 Use new ol.style in rtree example 2013-11-20 15:35:10 +01:00
Éric Lemoine
602fd7f13a Use new ol.style in geojson example 2013-11-20 15:35:10 +01:00
Éric Lemoine
db7ce8e657 Use new ol.style in dynamic-data example 2013-11-20 15:35:10 +01:00
Éric Lemoine
644748860b Remove the previous ol.style types and functions 2013-11-20 15:35:10 +01:00
Éric Lemoine
efba141bf0 Do not use default style function 2013-11-20 15:35:10 +01:00
Éric Lemoine
ddacc0aabd Use new ol.style in ol.shape.renderCircle 2013-11-20 15:35:10 +01:00
Éric Lemoine
1e7266f6b5 Use new ol.style in ol.render.canvas.Replay 2013-11-20 15:35:10 +01:00
Éric Lemoine
e535a8360f Use new ol.style in ol.render.canvas.Immediate 2013-11-20 15:35:10 +01:00
Éric Lemoine
fd0ef8f238 Use new ol.style in ol.render.DragBox 2013-11-20 15:35:10 +01:00
Éric Lemoine
cef2cac0d3 Add ol.style.Text constructor 2013-11-20 15:35:09 +01:00
Éric Lemoine
f1d67f69c3 Add ol.style.Stroke constructor 2013-11-20 15:35:09 +01:00
Éric Lemoine
22fa0e305a Add ol.style.Image constructor 2013-11-20 15:35:09 +01:00
Éric Lemoine
f38054d737 Add ol.style.Fill constructor 2013-11-20 15:35:09 +01:00
Éric Lemoine
1cfd185355 Add ol.style.Style constructor 2013-11-20 15:35:09 +01:00
Frederic Junod
4e61f045e1 Remove clearRect from geojson example 2013-11-20 15:14:26 +01:00
Bart van den Eijnden
053d80180d have the GML parser read and write out multiple geometry attributes with their correct name 2013-11-20 14:57:00 +01:00
ahocevar
0238fa54de The source determines who can do GetFeatureInfo
Now that the ol.renderer.Layer base class has a
getFeatureInfoForPixel method, we have to check whether the
source supports GetFeatureInfo, not the layer renderer.
2013-11-20 13:05:06 +01:00
Tom Payne
f62b450cb7 Use goog.asserts.assertsInstanceOf 2013-11-20 12:34:47 +01:00
Tom Payne
3699510e63 Remove repeated Replay 2013-11-20 11:45:49 +01:00
Tom Payne
6fe7a980f2 Use ol.structs.PriorityQueue template in ol.renderer.webgl.Map 2013-11-20 11:45:49 +01:00
Frederic Junod
0bc8ff81e6 Explicitly read and load data in JSON 2013-11-20 11:45:26 +01:00
Frederic Junod
99ce67aedc Nicer dragbox style 2013-11-20 11:45:25 +01:00
Tom Payne
479ec441ab Improve type checking in ol.renderer.canvas.VectorLayer 2013-11-20 11:45:25 +01:00
Éric Lemoine
c217c95e6d Add a WebGL layer clipping example 2013-11-20 11:45:25 +01:00
Éric Lemoine
215344af71 Set stencil to true in webgl context 2013-11-20 11:45:25 +01:00
Éric Lemoine
93aef958e9 Move arrayBuffer_ to layer renderer 2013-11-20 11:45:25 +01:00
Éric Lemoine
1c03886e1c Rename arrayBuffer_ to renderArrayBuffer_ 2013-11-20 11:45:25 +01:00
Éric Lemoine
eead07b0bb Fire pre and postcompose events from webgl map 2013-11-20 11:45:25 +01:00
Éric Lemoine
8d191ca4b8 Fire pre and postcompose events from webgl layers 2013-11-20 11:45:25 +01:00
Éric Lemoine
478f8c43ca ol.render.Event take an ol.webgl.Context object 2013-11-20 11:45:24 +01:00
Éric Lemoine
325534aa46 Fire precompose events from map 2013-11-20 11:45:24 +01:00
Tom Payne
c29c292efd Mark constant RegExps, thanks @fredj 2013-11-20 11:45:24 +01:00
Tom Payne
1fe9f25359 Correct order of jsdoc comments, thanks @fredj 2013-11-20 11:45:24 +01:00
Frederic Junod
f4c5168cdf Remove renderer.Map#getCanvas function 2013-11-20 11:45:24 +01:00
Frederic Junod
38bbe35e8d Remove ol.Map#getRenderer function 2013-11-20 11:45:24 +01:00
Frederic Junod
87014feb01 Use 'postcompose' event to export the map as png image 2013-11-20 11:45:24 +01:00
Frederic Junod
650370f740 Simplify export-map example by removing jpeg output 2013-11-20 11:45:24 +01:00
Frederic Junod
c20f80ca91 Export ol.Map#render function 2013-11-20 11:45:23 +01:00
Frederic Junod
b39496f380 Dispatch 'precompose' event for ol.renderer.canvas.VectorLayer 2013-11-20 11:45:23 +01:00
Tom Payne
0746715231 Remove unused RegExp, thanks @fredj 2013-11-20 11:45:23 +01:00
Tom Payne
adfc56b14c Improve type checking in ol.render.canvas.Replay 2013-11-20 11:45:23 +01:00
Tom Payne
f93ae0392a Improve type checking in ol.geom 2013-11-20 11:45:23 +01:00
Tom Payne
2ecd4013ea Improve type checking in ol.color 2013-11-20 11:45:23 +01:00
Tom Payne
4e3221810a Add immediate rendering of text 2013-11-20 11:44:50 +01:00
Frederic Junod
c4e125e972 Rename ol.source.BingMapsOptions style property to imagerySet 2013-11-20 11:44:50 +01:00
Tom Payne
a2603e424f Add text replay skeleton 2013-11-20 11:44:50 +01:00
Tom Payne
c7600b2cbc Add ol.style.Text 2013-11-20 11:44:49 +01:00
Tom Payne
c03ea3d0ee Save six bytes 2013-11-20 11:44:49 +01:00
Tom Payne
6b61f45379 Remove support for 4- and 8- digit hex colors
These are not supported by canvas.
2013-11-20 11:44:49 +01:00
Tom Payne
d60bc61a72 Allow ol.style.Stroke#width to be undefined 2013-11-20 11:44:49 +01:00
Tom Payne
6796b9735e Add ol.color.blend 2013-11-20 11:44:49 +01:00
Tom Payne
97745f06ac Allow named colors to be disabled 2013-11-20 11:44:49 +01:00
Éric Lemoine
4090b3f8b1 Phantomjs does not have requestAnimationFrame 2013-11-20 11:44:49 +01:00
Éric Lemoine
6493998a22 Add a synthetic-lines example 2013-11-20 11:44:49 +01:00
Tom Payne
1ae0e845f8 Allow colors in styles to be strings or arrays 2013-11-20 11:44:48 +01:00
Tom Payne
47820440ed Add ol.color.stringOrColorEquals 2013-11-20 11:44:48 +01:00
Tom Payne
d882d00c65 Add ol.color.asArray and ol.color.asString 2013-11-20 11:44:48 +01:00
Tom Payne
02604745ca Add ol.color.equals 2013-11-20 11:44:48 +01:00
Tom Payne
e1ba9c0322 Move color matrix code into ol.color.Matrix 2013-11-20 11:44:48 +01:00
Tom Payne
e3c3170c39 Refactor ol.color to not use goog.color 2013-11-20 11:44:48 +01:00
Tom Payne
51c201acd7 Refactor ol.color to use Array.<number> 2013-11-20 11:44:48 +01:00
Tom Payne
24ca534c54 Use skip instead of xit to mark failing tests 2013-11-20 11:44:48 +01:00
Frederic Junod
a66a557978 Remove NOCOMPILE flag from vector-layer example 2013-11-20 11:44:47 +01:00
Frederic Junod
9738c672d7 Export ol.render.Event.prototype.getFrameState 2013-11-20 11:44:47 +01:00
Tom Payne
aabd8541c2 Fix goog.require in layer clipping example 2013-11-20 11:44:47 +01:00
Frederic Junod
d65ae078ef Add layer-swipe example 2013-11-20 11:44:47 +01:00
Éric Lemoine
b698c5bf7b Add a layer clipping example 2013-11-20 11:44:47 +01:00
Éric Lemoine
2073d78582 Fire precompose events from layers 2013-11-20 11:44:47 +01:00
Tom Payne
daf4231d00 Remove ol.geom2 2013-11-20 11:44:47 +01:00
Tom Payne
569811c52f Remove old replay code 2013-11-20 11:44:47 +01:00
Tom Payne
1acfa35783 Add ol.layer.Vector renderFeatureFunction 2013-11-20 11:44:47 +01:00
Tom Payne
f9282c90e4 Make instructions responsible for incrementing the instruction index
This paves the way for skipping features (where both the instruction and
data indexes will need to be advanced).
2013-11-20 11:44:46 +01:00
Tom Payne
19758b6268 Rename variables for clarity 2013-11-20 11:44:46 +01:00
Tom Payne
eb6dc88a9f Don't check examples that start with // NOCOMPILE 2013-11-20 11:44:46 +01:00
Tom Payne
9a0ea25f7e Don't rely on ol.style.DefaultStyleFunction in GeoJSON example 2013-11-20 11:44:46 +01:00
Tom Payne
90bc88082a Export ol.Map#requestRenderFrame 2013-11-20 11:44:46 +01:00
Tom Payne
67522815eb Don't rely on ol.geom.Type in GeoJSON example 2013-11-20 11:44:46 +01:00
Tom Payne
8a6242be88 Don't rely on goog.isNull in GeoJSON example 2013-11-20 11:44:46 +01:00
Tom Payne
ba42abac68 Move wkt example out of the way 2013-11-20 11:44:46 +01:00
Tom Payne
c47dee7b8c Allow fill, image, and stroke in ol.style.Style to be undefined 2013-11-20 11:44:45 +01:00
Tom Payne
fc2fece872 Don't rely on goog.functions in vector-layer example 2013-11-20 11:44:45 +01:00
Frederic Junod
77b7abb96a Don't rely on goog.net.XhrIo in vector-layer example 2013-11-20 11:44:45 +01:00
Tom Payne
946234ba27 Rename iimmediate.js to irender.js 2013-11-20 11:44:45 +01:00
Éric Lemoine
c0e1c7051b Add display-frame-rate.js script 2013-11-20 11:44:45 +01:00
Éric Lemoine
60ef4f214e Rename symbol to shape 2013-11-20 11:44:45 +01:00
Tom Payne
ac2b650c96 Use consistent variable names 2013-11-20 11:44:45 +01:00
Tom Payne
df423fda22 Move ol.geom.orientFlatLinearRings into ol.geom.flat 2013-11-20 11:44:45 +01:00
Tom Payne
0aa0cfd54b Move ol.geom.flatLinearRingIsClockwise into ol.geom.flat 2013-11-20 11:44:44 +01:00
Tom Payne
857c28a88b Move ol.geom.flatLinearRingContains to ol.geom.flat 2013-11-20 11:44:44 +01:00
Tom Payne
ca639a057f Rename ol.test.geom to ol.test.geom.flat 2013-11-20 11:44:44 +01:00
Tom Payne
48d3402044 Move reverseFlatCoordinates into ol.geom.flat 2013-11-20 11:44:44 +01:00
Tom Payne
1757a62905 Move transformGeometry2D back into ol.geom 2013-11-20 11:44:44 +01:00
Tom Payne
16e5f238d2 Move inflateCoordinates into ol.geom.flat 2013-11-20 11:44:44 +01:00
Tom Payne
dc1ad7bb83 Move deflateCoodinates into ol.geom.flat 2013-11-20 11:44:44 +01:00
Tom Payne
16994f1774 Rename ol.render to ol.geom.flat 2013-11-20 11:44:44 +01:00
Tom Payne
e44dfb1c6c Avoid clearing canvas twice 2013-11-20 11:44:42 +01:00
Tom Payne
7fd4e1ba56 Rename ol.render.RenderEvent to ol.render.Event 2013-11-20 11:42:10 +01:00
Tom Payne
cd9b52572a Replace ol.geom.GeometryType with ol.geom.Type 2013-11-20 11:42:09 +01:00
Tom Payne
b9af8232d0 Use more consistent spacing 2013-11-20 11:42:09 +01:00
Tom Payne
7e40825869 Orient rings in MultiPolygons 2013-11-20 11:42:09 +01:00
Tom Payne
af17797145 Use clockwise polygons in GeoJSON tests 2013-11-20 11:42:09 +01:00
Tom Payne
376bd6359b Add more exhaustive polygon tests (some fail for reasons not yet known) 2013-11-20 11:42:09 +01:00
Tom Payne
fe06c97a08 Orient rings in ol.geom.Polygon 2013-11-20 11:42:09 +01:00
Tom Payne
23777e5949 Add ol.geom.orientFlatLinearRings{,s} 2013-11-20 11:42:09 +01:00
Tom Payne
43d67736a8 Add ol.geom.flatLinearRingIsClockwise 2013-11-20 11:42:09 +01:00
Tom Payne
72f64bd37a Add ol.geom.reverseFlatCoordinates 2013-11-20 11:42:08 +01:00
Tom Payne
809fee8988 Add missing whitespace 2013-11-20 11:42:08 +01:00
Tom Payne
b9614d027d Rename countries example to vector-layer and add mouseover 2013-11-20 11:42:08 +01:00
Tom Payne
8d3811a79c Add ol.Feature exports 2013-11-20 11:42:08 +01:00
Tom Payne
8626da50ea Read GeoJSON feature id 2013-11-20 11:42:08 +01:00
Tom Payne
8edefc3fee Add GeoJSONFeature#id to externs file 2013-11-20 11:42:08 +01:00
Tom Payne
30503f5665 Add ol.Feature#{get,set}Id 2013-11-20 11:42:08 +01:00
Tom Payne
0221fd2216 Add ol.source.Vector#getAllFeaturesAtCoordinate 2013-11-20 11:42:08 +01:00
Tom Payne
afca110b49 Add ol.source.Vector#forEachFeatureAtCoordinate 2013-11-20 11:42:07 +01:00
Tom Payne
aa70030a43 Move containsCoordinate to ol.geom.Geometry 2013-11-20 11:42:07 +01:00
Tom Payne
b60956baf6 Add ol.geom.MultiPolygon#containsCoordinate 2013-11-20 11:42:07 +01:00
Tom Payne
029d978949 Add ol.geom.Polygon#containsCoordinate 2013-11-20 11:42:07 +01:00
Tom Payne
f2865e6dbf Add coordinate in LinearRing functions 2013-11-20 11:42:07 +01:00
Tom Payne
c9d6445c45 Fix title of GeoJSON example, thanks @fredj 2013-11-20 11:42:07 +01:00
Tom Payne
8e55cad4e0 Add R-Tree visualisation example
This demonstrates how awful ol.structs.RTree is.
2013-11-20 11:42:07 +01:00
Tom Payne
8434250547 Rename lastDraw to lastStroke and remember last stroke drawn, thanks @elemoine 2013-11-20 11:42:07 +01:00
Tom Payne
26d2f38929 Add dynamic data example 2013-11-20 11:42:07 +01:00
Tom Payne
ea0f8d1f8e Add frameState to postcompose event and minimise calls to getTransform 2013-11-20 11:42:06 +01:00
Tom Payne
756944a2e9 Fire postcompose events for all layer types 2013-11-20 11:42:06 +01:00
Tom Payne
36f85f9afd Factor out getTransform 2013-11-20 11:42:06 +01:00
Tom Payne
a83b0768b2 Always dispatch postcompose event, even if no replay group 2013-11-20 11:42:06 +01:00
Tom Payne
4c6bd5bdf2 Rename getTransform to getImageTransform 2013-11-20 11:42:06 +01:00
Tom Payne
7035096fca Move dispatchPostComposeEvent into base class 2013-11-20 11:42:06 +01:00
Tom Payne
dca4f261ec Remove ol.control.DragBox 2013-11-20 11:42:06 +01:00
Tom Payne
e81965d5b3 Use ol.render.DragBox in ol.interaction.DragZoom 2013-11-20 11:42:06 +01:00
Tom Payne
d11d2159d4 Add ol.render.DragBox 2013-11-20 11:42:05 +01:00
Tom Payne
f3138d6039 Fire postcompose events from map 2013-11-20 11:42:05 +01:00
Tom Payne
1670b67bd8 Rename postrender to postcompose 2013-11-20 11:42:05 +01:00
Tom Payne
a990f0921e Rename ol.layer.VectorEvent to ol.render.RenderEvent 2013-11-20 11:42:05 +01:00
Tom Payne
2839aea6b1 Clear correct member variable, thanks @elemoine 2013-11-20 11:42:05 +01:00
Tom Payne
3f74623e53 Add per-layer postrender example 2013-11-20 11:42:05 +01:00
Tom Payne
a17560ade3 Only draw features and geometries that are visible 2013-11-20 11:42:05 +01:00
Tom Payne
c5de1db9e6 Rename render to immediate 2013-11-20 11:42:05 +01:00
Tom Payne
a0aad87adf Rename batch to replay 2013-11-20 11:42:04 +01:00
Tom Payne
df70731e0c Fire per-layer postrender events 2013-11-20 11:42:04 +01:00
Tom Payne
e1c54266d9 Export ol.layer.VectorEvent methods 2013-11-20 11:42:04 +01:00
Tom Payne
712993da52 Add ol.layer.VectorEvent 2013-11-20 11:42:04 +01:00
Tom Payne
e36681db75 Export ol.render.canvas.Render methods 2013-11-20 11:42:04 +01:00
Tom Payne
d2806df92b Add ol.render.canvas.Render#drawFeature 2013-11-20 11:42:04 +01:00
Tom Payne
6052a8ef9f Add dummy implementation of ol.render.canvas.Batch#drawFeature 2013-11-20 11:42:04 +01:00
Tom Payne
6ae1c2e874 Add ol.render.IRender#drawFeature 2013-11-20 11:42:04 +01:00
Tom Payne
cab8cf4fde Make synthetic data example more idiomatic 2013-11-20 11:42:03 +01:00
Tom Payne
e504f69503 Add missing MultiPoint entry 2013-11-20 11:42:03 +01:00
Tom Payne
6b0a7e9c30 Export ol.Feature 2013-11-20 11:42:03 +01:00
Tom Payne
e1f02f85d8 Add ol.geom exports 2013-11-20 11:42:03 +01:00
Tom Payne
e773f5fc2b Don't attempt to compile countries example 2013-11-20 11:42:03 +01:00
Tom Payne
0311ecd68f Export ol.source.Vector#addFeature 2013-11-20 11:42:03 +01:00
Tom Payne
8f79d070dc Add ol.symbol exports 2013-11-20 11:42:03 +01:00
Tom Payne
a2e76a1872 Rename symbols.js to symbol.js 2013-11-20 11:42:03 +01:00
Tom Payne
ce8bcfe319 Add ol.format.GeoJSON exports 2013-11-20 11:42:02 +01:00
Tom Payne
0fa8692b1b Add ol.format.GeoJSONOptions 2013-11-20 11:42:02 +01:00
Tom Payne
8c9732c9da Add missing style parameter to GeoJSON example 2013-11-20 11:42:02 +01:00
Tom Payne
d437ec31e7 Add more FIXMEs 2013-11-20 11:42:02 +01:00
Tom Payne
7efae6e00c Ccomplete ol.render.canvas.Render 2013-11-20 11:42:02 +01:00
Tom Payne
a09f686d5d Return end from ol.render.canvas.LineStringBatch#drawFlatCoordinatess_ 2013-11-20 11:42:02 +01:00
Tom Payne
adf5cd3fd1 Return end from ol.render.canvas.LineStringBatch#drawFlatCoordinates_ 2013-11-20 11:42:02 +01:00
Tom Payne
bc8c328483 Add snapToPixel 2013-11-20 11:42:02 +01:00
Tom Payne
8c3c304497 Add incomplete ol.render.canvas.Render 2013-11-20 11:42:01 +01:00
Tom Payne
51d4d164b1 Add ol.render.transformGeometry 2013-11-20 11:42:01 +01:00
Tom Payne
cd82cb2534 Refactor ol.render.transformCoordinates to accept stride 2013-11-20 11:42:01 +01:00
Tom Payne
dab12456ae Factor out ol.render.IRender 2013-11-20 11:42:01 +01:00
Tom Payne
4183d9cdb8 Move ol.replay into ol.render namespace 2013-11-20 11:42:01 +01:00
Tom Payne
65fffd9b1c Remove unused ol.replay.IBatch#drawImage 2013-11-20 11:42:01 +01:00
Tom Payne
e94a8d4a36 Improve type checking with cast 2013-11-20 11:42:01 +01:00
Tom Payne
d10fb12f27 Improve type checking with cast 2013-11-20 11:42:01 +01:00
Tom Payne
b46c38626b Add synthetic data example 2013-11-20 11:42:00 +01:00
Tom Payne
b5be628446 Render points with symbol renderer 2013-11-20 11:42:00 +01:00
Tom Payne
481a9b4078 Add symbol renderer 2013-11-20 11:42:00 +01:00
Tom Payne
913029f26d Remove opacity for fill style for now 2013-11-20 11:42:00 +01:00
Tom Payne
b95a19ba30 Render Points and MultiPoints with images 2013-11-20 11:42:00 +01:00
Tom Payne
de8edd909e Implement image drawing in canvas 2013-11-20 11:42:00 +01:00
Tom Payne
2c73d75309 Add image drawing skeleton to canvas 2013-11-20 11:42:00 +01:00
Tom Payne
a722f558fe Add image drawing functions to batch 2013-11-20 11:42:00 +01:00
Tom Payne
85efa61823 Remove FIXME 2013-11-20 11:41:59 +01:00
Tom Payne
a6b09c1b1c Remove ol.replay.canvas.Batch#appendCoordinates 2013-11-20 11:41:59 +01:00
Tom Payne
843a2e558c Remove ol.replay.canvas.PolygonBatch#drawRings_ 2013-11-20 11:41:59 +01:00
Tom Payne
0a02409d64 Render MultiPolygons using flat coordinates 2013-11-20 11:41:59 +01:00
Tom Payne
df48e2de5c Refactor ol.geom.MultiPolygon 2013-11-20 11:41:59 +01:00
Tom Payne
daecad22ae Add ol.geom.{de,in}flateCoordinatesss 2013-11-20 11:41:59 +01:00
Tom Payne
03d5f3f9d9 Render Polygons using flat coordinates 2013-11-20 11:41:59 +01:00
Tom Payne
ad8c166a37 Add ol.replay.canvas.PolygonBatch#drawFlatCoordinatess_ 2013-11-20 11:41:59 +01:00
Tom Payne
0f8d123319 Remove ol.replay.canvas.LineStringBatch#drawCoordinates_ 2013-11-20 11:41:58 +01:00
Tom Payne
07173c493e Refactor ol.geom.Polygon 2013-11-20 11:41:58 +01:00
Tom Payne
0a02785438 Render MultiLineStrings using flat coordinates 2013-11-20 11:41:58 +01:00
Tom Payne
20bc49d744 Render line strings using flat coordinates 2013-11-20 11:41:58 +01:00
Tom Payne
1afaa9b6af Add ol.replay.canvas.LineStringBatch#drawFlatCoordinates_ 2013-11-20 11:41:58 +01:00
Tom Payne
335f24f398 Add ol.replay.canvas.Batch#appendFlatCoordinates 2013-11-20 11:41:58 +01:00
Tom Payne
9d07e6509f Refactor ol.geom.MultiLineString 2013-11-20 11:41:58 +01:00
Tom Payne
7740929036 Add ol.geom.{de,in}flateCoordinatess 2013-11-20 11:41:58 +01:00
Tom Payne
a89bf0c329 Refactor ol.geom.Point 2013-11-20 11:41:58 +01:00
Tom Payne
6d32756adf Add ol.geom.MultiPoint 2013-11-20 11:41:57 +01:00
Tom Payne
ec748f254e Refactor ol.geom.LineString 2013-11-20 11:41:57 +01:00
Tom Payne
a415b66e88 Refactor ol.geom.Geometry to support Z, M and flat coordinates 2013-11-20 11:41:57 +01:00
Tom Payne
f67fa27c9e Add ol.geom.{in,de}flateCoordinates 2013-11-20 11:41:57 +01:00
Tom Payne
676792692e Add ol.extent.createOrUpdateFromFlatCoordinates 2013-11-20 11:41:57 +01:00
Tom Payne
2d2140ebf4 Add ol.extent.extendFlatCoordinates 2013-11-20 11:41:57 +01:00
Tom Payne
cfaad0eff1 Use raw geometry types 2013-11-20 11:41:57 +01:00
Tom Payne
27ab7da5ee Add raw geometry types 2013-11-20 11:41:57 +01:00
Tom Payne
a89c9b17ef Add countries example 2013-11-20 11:41:56 +01:00
Tom Payne
e4623af4df Add ol.geom.Geometry#transform 2013-11-20 11:41:56 +01:00
Tom Payne
5bca792288 Refactor ol.format.GeoJSON to implement ol.format.IReader 2013-11-20 11:41:56 +01:00
Tom Payne
2d7c26e3e5 Add ol.format.IReader 2013-11-20 11:41:56 +01:00
Tom Payne
80fa2dd0ef Change example data 2013-11-20 11:41:56 +01:00
Tom Payne
61e221c504 Only draw batches in visible extent 2013-11-20 11:41:56 +01:00
Tom Payne
ba1a35b59b Add per-batch extents 2013-11-20 11:41:56 +01:00
Tom Payne
8dab000db1 Add more styling to GeoJSON example 2013-11-20 11:41:56 +01:00
Tom Payne
fef9ec155b Refactor batching system 2013-11-20 11:41:55 +01:00
Tom Payne
507662af0b Use arrays instead of objects for canvas instructions 2013-11-20 11:41:55 +01:00
Tom Payne
979d35b3b3 Rename ol.reader to ol.format 2013-11-20 11:41:55 +01:00
Tom Payne
8aa6eb5cb7 Improve filenames 2013-11-20 11:41:55 +01:00
Tom Payne
71a372e0dc Read features directly into source 2013-11-20 11:41:55 +01:00
Tom Payne
14fb455e1c Remove ol.source.GeoJSON 2013-11-20 11:41:55 +01:00
Tom Payne
430949046f Use reader in GeoJSON example, instead of source 2013-11-20 11:41:55 +01:00
Tom Payne
5f7f388714 Add ol.reader.readAllFromObject 2013-11-20 11:41:55 +01:00
Tom Payne
311ee5222d Add MultiPolygon to GeoJSON example 2013-11-20 11:41:55 +01:00
Tom Payne
53d1171d14 Add MultiPolygon reading to ol.reader.GeoJSON 2013-11-20 11:41:54 +01:00
Tom Payne
d3952297db Render MultiPolygons 2013-11-20 11:41:54 +01:00
Tom Payne
f0a27ceaf0 Add MultiPolygon drawing to batch 2013-11-20 11:41:54 +01:00
Tom Payne
cb099cb453 Add ol.geom.MultiPolygon 2013-11-20 11:41:54 +01:00
Tom Payne
7a6090df65 Correct closing of polygons 2013-11-20 11:41:54 +01:00
Tom Payne
176a438a05 Add style function to GeoJSON demo 2013-11-20 11:41:54 +01:00
Tom Payne
781593ea90 Add MultiLineString to GeoJSON demo 2013-11-20 11:41:54 +01:00
Tom Payne
53963b0f6b Add MultiLineString GeoJSON reading 2013-11-20 11:41:54 +01:00
Tom Payne
4d02ecf1e8 Add MultiLineString rendering 2013-11-20 11:41:53 +01:00
Tom Payne
7594f05c57 Add MultiLineString drawing to batch 2013-11-20 11:41:53 +01:00
Tom Payne
91c448d63d Allow z index to be undefined 2013-11-20 11:41:53 +01:00
Tom Payne
c658460c09 Add ol.geom.MultiLineString 2013-11-20 11:41:53 +01:00
Tom Payne
de247d7130 Remove logging code 2013-11-20 11:41:53 +01:00
Tom Payne
b83a547192 Add polygon to GeoJSON demo 2013-11-20 11:41:53 +01:00
Tom Payne
e14c46946e Render polygon geometries 2013-11-20 11:41:53 +01:00
Tom Payne
a823e1f776 Add support for polygons to canvas replay 2013-11-20 11:41:53 +01:00
Tom Payne
b2d1b32674 Factor out appendCoordinates_ 2013-11-20 11:41:52 +01:00
Tom Payne
f175528ac3 Change default fill style 2013-11-20 11:41:52 +01:00
Tom Payne
256237fee7 Don't draw lines when stroke style is null 2013-11-20 11:41:52 +01:00
Tom Payne
ce296aa1d1 Allow styles to be null 2013-11-20 11:41:52 +01:00
Tom Payne
25d6919337 Add ol.style.fill.equals 2013-11-20 11:41:52 +01:00
Tom Payne
7e81cbae08 Allow comparison of null stroke styles 2013-11-20 11:41:52 +01:00
Tom Payne
15583865b6 Re-use batches when animating or interacting 2013-11-20 11:41:52 +01:00
Tom Payne
ea2ba4e7ad Export ol.source.Vector 2013-11-20 11:41:52 +01:00
Tom Payne
12c9a4f563 Export ol.source.GeoJSON 2013-11-20 11:41:52 +01:00
Tom Payne
9f1d985b8f Export ol.source.Vector 2013-11-20 11:41:51 +01:00
Tom Payne
1adfa15830 Precalculate more instructions 2013-11-20 11:41:51 +01:00
Tom Payne
8e68134624 Add ol.replay.IBatchGroup#finish 2013-11-20 11:41:51 +01:00
Tom Payne
8ccd733e08 Implement ol.replay.canvas.BatchGroup#isEmpty 2013-11-20 11:41:51 +01:00
Tom Payne
e03953dc61 Avoid stroke state changes 2013-11-20 11:41:51 +01:00
Tom Payne
1d06cee93d Add ol.style.stroke.equals 2013-11-20 11:41:51 +01:00
Tom Payne
9a11cb87aa Handle vector layer opacity 2013-11-20 11:41:51 +01:00
Tom Payne
633920d0f7 Buffer batch group extent 2013-11-20 11:41:51 +01:00
Tom Payne
9f2ce8f50e Add more FIXMEs 2013-11-20 11:41:50 +01:00
Tom Payne
e403f10de5 Add GeoJSON example 2013-11-20 11:41:50 +01:00
Tom Payne
f0b4a5a35e Activate canvas vector layer renderer 2013-11-20 11:41:49 +01:00
Tom Payne
fb7ccc9d16 Add initial canvas vector layer renderer 2013-11-20 11:41:09 +01:00
Tom Payne
d2dbc27b0a Add shared vector rendering functions 2013-11-20 11:41:09 +01:00
Tom Payne
1c23c8b674 Add initial canvas implementation of replay API 2013-11-20 11:41:09 +01:00
Tom Payne
35d1fe5d75 Add initial replay API 2013-11-20 11:41:09 +01:00
Tom Payne
711917db62 Add ol.layer.Vector 2013-11-20 11:41:09 +01:00
Tom Payne
30311f0b65 Add ol.style 2013-11-20 11:41:08 +01:00
Tom Payne
f445a7230b Rename transformPath to transformCoordinates 2013-11-20 11:41:08 +01:00
Tom Payne
14ed09eb6f Move old replay API out of the way 2013-11-20 11:41:08 +01:00
Tom Payne
9bd9a1848e Use scope in ol.source.GeoJSON 2013-11-20 11:41:08 +01:00
Tom Payne
82dc4baff6 Add scope and type checking to ol.reader.GeoJSON 2013-11-20 11:41:08 +01:00
Tom Payne
2704da9e4e Mark constants 2013-11-20 11:41:08 +01:00
Tom Payne
f9105c18eb Use GeoJSON types for geometries 2013-11-20 11:41:08 +01:00
Tom Payne
67cd0597bb Add ol.source.Vector#forEachFeatureInExtent and #getAllFeaturesInExtent 2013-11-20 11:41:08 +01:00
Tom Payne
63a0219f3d Add some FIXMEs 2013-11-20 11:41:07 +01:00
Tom Payne
4260283497 Add layout and stride to ol.geom.Geometry 2013-11-20 11:41:07 +01:00
Tom Payne
61a217e8dd Add ol.source.GeoJSON 2013-11-20 11:41:07 +01:00
Tom Payne
db40842487 Add ol.source.Vector 2013-11-20 11:41:07 +01:00
Tom Payne
07ef8e774d Move parser examples away 2013-11-20 11:41:07 +01:00
Tom Payne
72d849563b Remove type filter hack from ol.structs.RTree 2013-11-20 11:41:07 +01:00
Tom Payne
3d8d8b0ce6 Add ol.reader.GeoJSON 2013-11-20 11:41:07 +01:00
Tom Payne
9c02b8e90c Add ol.Feature 2013-11-20 11:41:07 +01:00
Tom Payne
fb6a2867ff Add ol.geom.Polygon 2013-11-20 11:41:07 +01:00
Tom Payne
ac37980999 Add ol.geom.LineString 2013-11-20 11:41:06 +01:00
Tom Payne
cb75fcad9f Add ol.geom.Point 2013-11-20 11:41:06 +01:00
Tom Payne
7ff95adbb1 Add ol.geom.Geometry 2013-11-20 11:41:06 +01:00
Tom Payne
3368576505 Add more extent functions 2013-11-20 11:41:06 +01:00
Tom Payne
a49e169622 Order tests sensibly 2013-11-20 11:41:06 +01:00
Tom Payne
fbb817157b Fix typo in tests 2013-11-20 11:41:06 +01:00
Tom Payne
18aa1b8ae5 Fix order of arguments to ol.extent.createOrUpdate 2013-11-20 11:41:06 +01:00
Tom Payne
bd82e1aa1a Remove vector code from files 2013-11-20 11:41:04 +01:00
Tom Payne
4e65fefc00 Move vector code out of the way 2013-11-20 11:39:21 +01:00
Tom Payne
81349d382b Add ol.replay.CanvasBatch#getExtent 2013-11-20 11:39:20 +01:00
Tom Payne
59ab8f0155 Add ol.replay.Batch#getExtent 2013-11-20 11:39:20 +01:00
Tom Payne
530d8b67a3 Add ol.extent.extendXY 2013-11-20 11:39:20 +01:00
Tom Payne
400b946354 Add @tschw to AUTHORS.md 2013-11-20 11:39:20 +01:00
Tom Payne
6a93731fee Rename ol.replay base classes 2013-11-20 11:39:20 +01:00
Tom Payne
366bdd295d Add initial canvas implementation of replay API 2013-11-20 11:39:19 +01:00
Tom Payne
409b458d30 Add ol.replay.transformPath 2013-11-20 11:39:19 +01:00
Tom Payne
3e12f57cf5 Add initial canvas-like API 2013-11-20 11:39:19 +01:00
Tom Payne
3d072a1af8 Add ol.Color.parse 2013-11-20 11:39:19 +01:00
Tom Payne
a60a03149e Correct transform and remove unused variables 2013-11-20 11:39:19 +01:00
Tom Payne
ea74809256 Remove unused vector layer canvas 2013-11-20 11:39:19 +01:00
Tom Payne
bbd461f181 Remove stray call to composeFrame, thanks @elemoine 2013-11-20 11:39:19 +01:00
Tom Payne
d774d2007d Render features even while animating and interacting 2013-11-20 11:39:19 +01:00
Tom Payne
91fc1a7663 Render vector features directly to output canvas 2013-11-20 11:39:18 +01:00
Tom Payne
e0ef5fc7ee Pass context instead of canvas when creating ol.renderer.canvas.Vector 2013-11-20 11:39:18 +01:00
Éric Lemoine
0d84befe83 Add synthetic-data example 2013-11-20 11:39:18 +01:00
Éric Lemoine
0c9f7eb616 Use experimental canvas vector layer renderer 2013-11-20 11:39:16 +01:00
Éric Lemoine
4b9642f4b1 Experimental canvas vector layer renderer 2013-11-20 11:36:28 +01:00
Tom Payne
3a2133c130 Add and use ol.renderer.canvas.Layer#composeFrame 2013-11-20 11:36:26 +01:00
Tom Payne
b403c25646 Factor out layersToDraw 2013-11-20 11:34:52 +01:00
Tom Payne
d7591331ba Add and use ol.renderer.webgl.Layer#composeFrame 2013-11-20 11:34:50 +01:00
Tom Payne
2b2e7bf786 Rename ol.renderer.Layer#renderFrame to prepareFrame 2013-11-20 11:31:20 +01:00
Tom Payne
26fa8d9d53 Track current program in context, rather than renderers 2013-11-20 11:31:20 +01:00
Tom Payne
10c41cd064 Factor out ol.webgl.Context 2013-11-20 11:31:19 +01:00
Tom Payne
fb2878c200 Merge pull request #1296 from twpayne/improve-type-checking
Improve type checking
2013-11-20 02:27:42 -08:00
Tom Payne
a646753124 Improve type checking in ol.TileCache 2013-11-20 11:13:47 +01:00
Tom Payne
d91479df06 Improve type checking in ol.source.DebugTile 2013-11-20 11:13:47 +01:00
Tom Payne
64021b130a Improve type checking in ol.renderer.webgl.TileLayer 2013-11-20 11:13:47 +01:00
Tom Payne
06b1456499 Improve type checking in ol.renderer.webgl.Layer 2013-11-20 11:13:47 +01:00
Tom Payne
2ba33b8cad Improve type checking in ol.renderer.webgl.ImageLayer 2013-11-20 11:13:46 +01:00
Tom Payne
a613b19360 Improve type checking in ol.renderer.Layer 2013-11-20 11:13:46 +01:00
Tom Payne
0221f74e5c Improve type checking in ol.renderer.dom.TileLayer 2013-11-20 11:13:46 +01:00
Tom Payne
68bf12b5e1 Improve type checking in ol.renderer.dom.Map 2013-11-20 11:13:46 +01:00
Tom Payne
d3981e2891 Improve type checking in ol.renderer.canvas.Map 2013-11-20 11:13:46 +01:00
Tom Payne
e487e1b215 Improve type checking in ol.Collection 2013-11-20 10:57:45 +01:00
Tom Payne
78380feb30 Use ol.structs.PriorityQueue template in ol.TileQueue 2013-11-19 21:19:23 +01:00
Tom Payne
2d6354bb92 Use ol.structs.LRUCache template in ol.TileCache 2013-11-19 21:19:23 +01:00
Tom Payne
353555f740 Use templates in ol.structs.PriorityQueue 2013-11-19 21:19:22 +01:00
Tom Payne
9d92b9ee37 Use templates in ol.structs.LRUCache 2013-11-19 21:19:22 +01:00
Tom Payne
c78754abba Activate more compiler checks 2013-11-19 21:19:22 +01:00
Bart van den Eijnden
b9b7de97b3 Merge pull request #1257 from bartvde/getattr
feature.getAttributes() should ignore geometry (r=@tschaub)
2013-11-19 10:31:55 -08:00
Bart van den Eijnden
a6b2992a5d simplify the code 2013-11-19 19:08:07 +01:00
Frédéric Junod
cc1962917f Merge pull request #1292 from fredj/canvasSize
Don't use ol.size.equals function
2013-11-19 09:54:05 -08:00
Tim Schaub
15b73ca87e Merge pull request #1293 from tschaub/event-element
Correctly handle layer add/remove in modify interaction.
2013-11-19 09:53:25 -08:00
Tim Schaub
3fbbdb78d5 Call getElement to get layer 2013-11-19 09:52:27 -07:00
Frederic Junod
7052884913 Don't use ol.size.equals function
To avoid creating an array on each frame (60 times per second).
2013-11-19 17:43:46 +01:00
Frédéric Junod
e83c6065ae Merge pull request #1291 from fredj/canvasSize
Fix ol.Size order in ol.renderer.canvas.Map and ol.renderer.webgl.Map
2013-11-19 08:25:15 -08:00
Tom Payne
fe6d071709 Merge pull request #1290 from twpayne/improve-compile-times
Use -server -XX:+TieredCompilation to double compilation speeds
2013-11-19 08:09:05 -08:00
Bart van den Eijnden
bb53087541 make sure parameter name lookups are case-insensitive 2013-11-19 17:09:02 +01:00
Frederic Junod
1816d8d160 Don't set the canvas size too early 2013-11-19 16:23:21 +01:00
Frederic Junod
00186413f8 Remove canvasSize_ property 2013-11-19 16:23:21 +01:00
Tom Payne
655bd0727f Use -server -XX:+TieredCompilation to double compilation speeds 2013-11-19 15:51:03 +01:00
Bart van den Eijnden
89cac657dc use a more strict check for opt_nonGeometry 2013-11-19 15:41:40 +01:00
Bart van den Eijnden
8d03fa1197 add an optional argument to getAttributes so we can get a feature's attributes except for the geometry ones 2013-11-19 15:39:22 +01:00
Bart van den Eijnden
ac730dc1f3 override URL parameter values in the GetFeatureInfo request if someone provides a param in getFeatureInfoOptions with the same name 2013-11-19 14:52:29 +01:00
ahocevar
936f86568e Merge pull request #1284 from ahocevar/null-vertexfeature
Protect from null vertexFeature
2013-11-18 12:23:00 -08:00
ahocevar
aa5358203e Protect from null vertexFeature
When dragging the map before a vertexFeature was created, it can
be null, so we cannot get its renderIntent.
2013-11-18 10:43:37 +01:00
Éric Lemoine
8d57f0c78b Stop clicks on zoom slider thumb 2013-11-17 00:05:16 +01:00
Éric Lemoine
a898b9588e Handle click on zoom slider 2013-11-17 00:05:16 +01:00
Éric Lemoine
9ff7470f65 Change ol.control.ZoomSlider#amountDragged_ signature 2013-11-17 00:05:15 +01:00
Éric Lemoine
14f5e5aedc Do not pretend the zoom slider supports touch 2013-11-17 00:05:15 +01:00
Éric Lemoine
2a20693ffb Fix issue where map is stuck in drag mode
If the control container stops "up" events the map browser event handler won't see these events and will keep triggering "drag" events.
2013-11-16 23:41:48 +01:00
Éric Lemoine
559cad4cf3 Simplify zoom slider code 2013-11-16 23:29:22 +01:00
Éric Lemoine
16b0e73666 Better use of good.dom.createDom in zoom slider 2013-11-16 23:22:41 +01:00
Tim Schaub
04b2247623 Merge pull request #1277 from tschaub/interation-hint
The ol.interaction.Drag subclasses set interacting hint as needed.
2013-11-15 08:29:02 -08:00
Tim Schaub
b0362b8c0a Only set interacting hint when modifying the view 2013-11-14 14:21:01 -07:00
ahocevar
b2f17f9c62 Merge pull request #1281 from ahocevar/simplify-wmts-from-capabilities
Default projection does not need to be provided
2013-11-14 08:44:04 -08:00
ahocevar
d2c5422d09 Default projection does not need to be provided
The wmts-from-capabilities example should focus on creating a
WMTS source from capabilities, so it should not distract by
configuring a projection that does not need to be configured.
2013-11-14 17:29:11 +01:00
Frédéric Junod
c7dcee1406 Merge pull request #1278 from fredj/apidoc_optional
Remove '(Optional)' from Description
2013-11-14 04:42:00 -08:00
ahocevar
b670a0d9da Merge pull request #1280 from ahocevar/wmts-vienna
Proj4js no longer needed for wmts-from-capabilities example
2013-11-14 04:02:11 -08:00
ahocevar
b5bcaea3a0 Proj4js no longer needed for wmts-from-capabilities example
The WMTS capabilities document of the Vienna map has changed. It
no longer defines a tileset for EPSG:31256, so it can be parsed
without having Proj4js and a projection definition for
EPSG:31256.
2013-11-14 12:48:06 +01:00
Frederic Junod
fd0a157a39 Remove '(Optional)' from Description 2013-11-14 10:21:23 +01:00
Frédéric Junod
fac953a683 Merge pull request #1198 from fredj/bindTo_transform
ol.Object#bindTo: getter and setter
2013-11-13 09:00:33 -08:00
Frédéric Junod
376e427e05 Merge pull request #1275 from fredj/bing_style_param
Rename ol.source.BingMapsOptions style property to imagerySet
2013-11-13 07:21:19 -08:00
Frederic Junod
c18b2706fb Notify target object after transform functions change 2013-11-13 16:13:08 +01:00
Frederic Junod
a0bea641d1 Remove 'valueAsNumber' property from ol.dom.Input
Use bindTo.transform functions instead
2013-11-13 16:13:08 +01:00
Tom Payne
bba1de2679 Add tests for ol.Object#bindTo getters and setters 2013-11-13 16:13:08 +01:00
Frederic Junod
03cc533cb3 Getter and setter support for bindTo 2013-11-13 16:13:08 +01:00
Tim Schaub
437359c778 Merge pull request #1274 from tschaub/callback-count
Issue calls to get feature/info for all layers.
2013-11-13 06:55:01 -08:00
Tim Schaub
22da054774 Determine the callback count while iterating through all layers
Previously, if a layer didn't have a `getFeature*ForPixel` type method, the loop count would be decremented.  This means that all layers would not be considered.  Instead, the callback count should be incremented before requests are made and decremented in the callback.
2013-11-13 07:36:54 -07:00
Tim Schaub
b9a4ae5e77 Merge pull request #1273 from tschaub/select-layers
Rename layerFilter option to layers and accept array for select interaction.
2013-11-13 06:35:17 -08:00
Frederic Junod
e508be66d9 Rename ol.source.BingMapsOptions style property to imagerySet
To match the Bing Maps terminology
2013-11-13 10:49:17 +01:00
Tim Schaub
a2b55b04e8 Rename layerFilter option to layers and accept array 2013-11-12 22:08:59 -07:00
Tim Schaub
0814b2c5c6 Merge pull request #1109 from tschaub/geom
Remove ol.geom2.
2013-11-12 20:32:18 -08:00
Tim Schaub
7b69373985 Remove ol.geom2 2013-11-12 19:27:02 -07:00
Tim Schaub
61d13f9a39 Remove ol.source.Vector2 2013-11-12 19:26:29 -07:00
Tim Schaub
75b40a60c0 Remove ol.layer.Vector2 and associated renderer 2013-11-12 19:25:08 -07:00
Tim Schaub
cd647a1ebc Removing example 2013-11-12 19:24:13 -07:00
ahocevar
0d1533eaca Merge pull request #1269 from ahocevar/modify-interaction
Modify interaction for feature modification
2013-11-12 15:55:23 -08:00
ahocevar
f790992a77 Make addLayer and removeLayer methods private 2013-11-13 00:44:39 +01:00
ahocevar
b805a76ae1 layerFilter can no longer be undefined here 2013-11-13 00:44:39 +01:00
ahocevar
4e85322abb Minor stylistic clean-ups and more symmetry 2013-11-13 00:44:38 +01:00
ahocevar
9067260a44 Fixing api doc comment 2013-11-13 00:44:38 +01:00
ahocevar
7ae65c32e1 Removing unused method 2013-11-13 00:44:38 +01:00
ahocevar
39a5a8e291 Refactoring for better layer management
The only feature on the temporary layer is now the
vertexFeature, and the temporary layer's style is dynamically
changed to the style of the layer whose segment is being edited
(the topmost layer if more than one segment are being edited).
With this simplification, we can also put all segments on a
single RTree. Finally, we no longer rely on structures set on
layers - all we need is now on the instance itself.

This refactoring also changes the way we define layers to
participate in modification - by using an array or a filter
function, or assuming all layers if no layers property is set.
2013-11-13 00:44:38 +01:00
ahocevar
06406d968f Adding equals method for comparing coordinates 2013-11-13 00:44:38 +01:00
Tim Schaub
d577466de6 Common style for drawing and modifying 2013-11-13 00:44:37 +01:00
Tim Schaub
af6edadebe Update example with more distinct colors and no social links
Conflicts:
	examples/modify-features.html
2013-11-13 00:44:37 +01:00
ahocevar
fe2fbe06c3 Updating header 2013-11-13 00:44:37 +01:00
ahocevar
319f78fb94 Using new squaredDistanceToSegment and closestOnSegment 2013-11-13 00:44:37 +01:00
ahocevar
0e673a492a Use accessor for components 2013-11-13 00:44:37 +01:00
ahocevar
c669dda2b1 Do not create a vertexFeature with [NaN, NaN] coordinates
The RTree cannot work with NaN coordinates. So instead of
preparing a vertexFeature before we know a coordinate, we now
lazily create the vertexFeature.
2013-11-13 00:44:37 +01:00
ahocevar
498738d22a Parent information no longer needed
Now that we can do setCoordinates, we no longer need to create
new geometries and assign them to a parent.
2013-11-13 00:44:37 +01:00
ahocevar
1c3b839a6f Use new setCoordinates methods 2013-11-13 00:44:36 +01:00
ahocevar
fec638e8be Write modifications back to the original layer
With the feature's getOriginal() and setOriginal() methods, an
undo tree can be maintained now.
2013-11-13 00:44:36 +01:00
ahocevar
a3b18bf16e Do not split segments while in the loop
In combination with the additional squaredDistanceToSegment
check we can ensure that a future vertex is only created on one
segment per feature, and only on the segment that it appears on.

This change also renames the misleading dragVertices_ member to
dragSegments_.
2013-11-13 00:44:36 +01:00
ahocevar
ff17eb53d4 Separate add listener from method that adds index 2013-11-13 00:44:36 +01:00
ahocevar
292b851a74 Adding ModifyFeature interaction
This is a first draft. The way geometry changes are handled for
now is a bit clumsy. Both updating the feature cache RTree and
making the layer aware of feature and geometry changes could be
handled in a smarter way if these changes would be made through
the layer instead of directly on the geometry or feature.
2013-11-13 00:44:36 +01:00
Tim Schaub
a88541fd60 Merge pull request #1263 from tschaub/draw-interaction
Add interaction for drawing new features.
2013-11-12 15:43:26 -08:00
Tim Schaub
05b9922861 Tests for draw interaction
The tests revealed that polygons can be drawn with counter-clockwise exterior ring order.  In the polygon constructor, we enforce clockwise winding for exterior rings.  So after drawing, we pass polygon coordinates back to the constructor before adding feature to the target layer.
2013-11-12 16:06:42 -07:00
Tim Schaub
5a898884ec Use geometry type enum for configuring draw interaction
This allows us to cast single-part geometries to multi-part types before adding features to the target layer.  This doesn't yet allow for drawing multi-part geometries with multiple parts.  That can be handled separately.
2013-11-12 11:51:41 -07:00
Tim Schaub
8194ba9f0a Remove setMode method from interaction in favor of add/removeInteraction
This makes the example a bit more awkward, but eventually adding and removing interactions will be the job of an editing control.
2013-11-12 10:30:37 -07:00
Tim Schaub
dbcfdbc76f Updated style for draw example 2013-11-12 10:30:37 -07:00
Tim Schaub
62b44f3c73 Add click tolerance to allow dragging while drawing 2013-11-12 10:30:37 -07:00
Tim Schaub
2f07433593 Allow user to set drawing mode 2013-11-12 10:30:37 -07:00
Tim Schaub
e3faa76770 Add method to abort drawing 2013-11-12 10:30:37 -07:00
Tim Schaub
4e98e86b14 Stop dblclick propagation while editing 2013-11-12 10:30:37 -07:00
Tim Schaub
048dec1644 Updated sketch style 2013-11-12 10:30:36 -07:00
Tim Schaub
7c197252ed Ensure drawing is not finished prematurely 2013-11-12 10:30:36 -07:00
Tim Schaub
45ba000df5 Pop off last point from linestring 2013-11-12 10:30:36 -07:00
Tim Schaub
b5cc35ee04 Snap to finish with configurable tolerance 2013-11-12 10:30:32 -07:00
Tim Schaub
ea6500ecd0 Finish lines by clicking last point 2013-11-12 10:29:29 -07:00
Tim Schaub
d821f227ba Add point at head of drawing 2013-11-12 10:29:29 -07:00
Tim Schaub
b3487ad30e Draw interaction 2013-11-12 10:29:21 -07:00
ahocevar
076f1ac194 Merge pull request #1265 from ahocevar/set-style
Allow to set the layer style
2013-11-12 09:15:08 -08:00
ahocevar
16ef1c5b8a Merge pull request #1267 from ahocevar/geom-clone
Deep clone geometry coordinates
2013-11-12 09:08:33 -08:00
Frédéric Junod
b8f04e0883 Merge pull request #1270 from fredj/element_jsdoc
Be more strict with {Element} types
2013-11-12 05:47:09 -08:00
Frederic Junod
ca5960666d Be more strict with {Element} types 2013-11-12 13:53:37 +01:00
Frédéric Junod
1560fbace3 Merge pull request #1266 from fredj/input_checked
Set boolean value to HTMLInputElement.checked
2013-11-12 04:51:53 -08:00
ahocevar
ed09173730 Deep clone geometry coordinates
Our geometries are mutable, so they can be modified without
creating garbage by changing coordinates in place and calling
setGeometry afterwards. But this also means that we need to
create a deep clone of the coordinates.
2013-11-12 11:36:40 +01:00
Frédéric Junod
c8f9b9cd7b Merge pull request #1268 from fredj/export_getCode
Export ol.proj.Projection#getCode
2013-11-12 02:25:25 -08:00
Frederic Junod
7613eaeef1 Export ol.proj.Projection#getCode 2013-11-12 11:17:03 +01:00
Frederic Junod
d3be7d9d18 Set boolean value to HTMLInputElement.checked
See http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#attr-input-checked
2013-11-12 10:24:36 +01:00
ahocevar
1d23229d98 Allow to set the layer style
By firing a simple CHANGE event, we can redraw the layer when
a style is assigned.
2013-11-12 01:47:43 +01:00
Tim Schaub
15053cbe56 Merge pull request #1262 from tschaub/unlisten
Unregister for feature events when removing features.
2013-11-11 15:40:47 -08:00
Tim Schaub
61741669f6 Unregister for feature events when removing features 2013-11-11 16:17:33 -07:00
ahocevar
382b2707df Merge pull request #1256 from ahocevar/simplify-select
Simplify Select interaction and prepare for programmatic feature selection without interaction
2013-11-11 13:19:57 -08:00
ahocevar
0ed208b710 Make renderIntent private and add a getter 2013-11-11 22:07:18 +01:00
ahocevar
299d729936 Make filter optional 2013-11-11 21:52:19 +01:00
ahocevar
467bcc8b62 Protect from features without geometry 2013-11-11 21:51:58 +01:00
Tim Schaub
85500fb616 Merge pull request #1252 from tschaub/expose-down
Add a getter for the most recent down event.
2013-11-11 11:27:19 -08:00
Bart van den Eijnden
351f4a57fb Merge pull request #1258 from bartvde/wkt
add an example of how to use a WKT string in a vector source (r=@tschaub)
2013-11-11 07:14:26 -08:00
Bart van den Eijnden
9842140495 get rid of unused markup in example 2013-11-11 15:56:15 +01:00
Bart van den Eijnden
3f7c40b1ad add an example of how to use a WKT string in a vector source 2013-11-11 12:45:06 +01:00
Jackie Ng
60825f0f99 Add MapGuide untiled map support to ol3.
This adds a new ol.source.MapGuide class that is initialized with an options object that can contain the following values:
 - projection: The projection of the Map Definition in EPSG format
 - url: The mapagent URL
 - useOverlay: Determines whether the GETMAPIMAGE (false) or GETDYNAMICMAPOVERLAYIMAGE (true) will be used for requesting the map image. When using GETMAPIMAGE, you must include a valid MAPDEFINITION parameter in the 'params' option property. When using GETDYNAMICMAPOVERLAYIMAGE, you must include a valid SESSION and MAPNAME parameters in the 'params' option property.
 - metersPerUnit: A required value used for calculating the map scale needed by the image request. This value can be calculated using the MapGuide Web API or obtained through the new CREATERUNTIMEMAP operation in MapGuide Open Source 2.6
 - params: A set of key-value pairs to append to the mapagent request
 - extent: The bounds of the layer

An example is included to demonstrate this new layer source. Like ol2, this example uses the MapGuide Server on data.mapguide.com
2013-11-11 21:19:27 +11:00
Éric Lemoine
fdad53c619 Merge pull request #1231 from oterral/mouse_events
Fix touch events on IE10
2013-11-10 02:44:12 -08:00
ahocevar
03e20ce6f1 Do not fail on non-vector layers 2013-11-09 16:12:13 +01:00
ahocevar
26c8c954c3 Make selectedFeaturesFilter available to other components 2013-11-09 16:03:30 +01:00
ahocevar
97d38820fb Removing no longer used getFeatureWithUid method 2013-11-09 14:44:40 +01:00
ahocevar
d9fd459654 Do not use a temporary layer for selected features 2013-11-09 14:15:35 +01:00
ahocevar
9fca2c407d Add a getFeatures method on the vector layer 2013-11-09 14:15:35 +01:00
ahocevar
7cf636147b Call setRenderIntent on the feature, not the layer 2013-11-09 14:15:35 +01:00
Frédéric Junod
d2281c4868 Merge pull request #1248 from fredj/apidoc_changename
ol.Object.getChangeEventType and key.toLowerCase
2013-11-09 04:52:33 -08:00
Bart van den Eijnden
ba4d90bac1 Merge pull request #1254 from bartvde/parsertests
change the afterLoad utility test functions (r=@elemoine,@tschaub)
2013-11-08 12:23:39 -08:00
Bart van den Eijnden
ffc2277c68 make tests pass in the test runner as well by not checking for status code 2013-11-08 20:59:58 +01:00
Bart van den Eijnden
cc4c0bda60 use plain XMLHttpRequest instead of goog.net.XhrIo 2013-11-08 20:34:03 +01:00
Tim Schaub
484b8f007e Merge pull request #1253 from tschaub/interaction-events
Make interactions event targets.
2013-11-08 08:32:49 -08:00
Olivier Terral
67d3b4527a Modify comments 2013-11-08 17:15:58 +01:00
Olivier Terral
726a04ce3e Forbid right click to trigger singleclick events on IE10 2013-11-08 13:30:58 +01:00
Olivier Terral
d0b0d0470b Fix singleclick and doubleclick on windows Surface 2013-11-08 13:30:58 +01:00
Bart van den Eijnden
dc0dc32d6b make some minor fixes to the parser test cases, such as using afterLoadXml everywhere and making sure done is used in all async tests 2013-11-08 11:27:58 +01:00
Frederic Junod
b54547a4e1 Fix 'change' event name in apidoc 2013-11-08 08:06:11 +01:00
Tim Schaub
009f7b53a1 Make interactions event targets 2013-11-07 16:39:05 -07:00
Frédéric Junod
7fb7a472b7 Merge pull request #1249 from fredj/apidoc_function
More precise {function} jsdoc definition
2013-11-07 13:22:30 -08:00
Tim Schaub
cd57d4639d Merge pull request #1251 from tschaub/expire-after-render
Only call expireTiles_ if already rendered.
2013-11-07 10:41:15 -08:00
Tim Schaub
22fb418236 Provide a method to get the most recent down type event
This will allow interactions to conditionally handle later events based on the down event.
2013-11-07 11:21:01 -07:00
Tim Schaub
812cb7fb12 Leave the down_ event set
The other "up" type listeners (for touch and pointer) do not set this to null.  This event can be of use to a click listener that might want to compare the down position to the click event's position.
2013-11-07 11:02:04 -07:00
Tim Schaub
dbc3109ddb Only call expireTiles_ if already rendered 2013-11-07 10:30:58 -07:00
Frederic Junod
01cc19af80 More precise {function} jsdoc definition 2013-11-07 16:03:19 +01:00
Frédéric Junod
7f120ba685 Merge pull request #1244 from fredj/ol.js
Add project name and link to the compiled output
2013-11-07 03:32:45 -08:00
Frederic Junod
26ed0f3f12 Add project name and link to the compiled output 2013-11-07 09:03:43 +01:00
ahocevar
5c1502effb Merge pull request #1246 from ahocevar/fix-travis
Use a released version of jsdoc. Fixes #1245.
2013-11-06 10:21:00 -08:00
ahocevar
d524973fd3 Use a released version of jsdoc 2013-11-06 19:11:21 +01:00
Frédéric Junod
aae8040e3a Merge pull request #1240 from fredj/export_rotate
Export ol.coordinate.rotate
2013-11-06 04:29:09 -08:00
Frédéric Junod
a9e980be0c Merge pull request #1241 from fredj/coordinate_format_tests
Add tests for ol.coordinate.format
2013-11-06 03:38:14 -08:00
Frederic Junod
116b107cb2 Add tests for ol.coordinate.format 2013-11-06 09:23:13 +01:00
Frederic Junod
09e4c985a0 Export ol.coordinate.rotate 2013-11-06 08:58:06 +01:00
Frederic Junod
a31a28278d Sort exports alphabetically 2013-11-06 08:57:15 +01:00
Frédéric Junod
ea73388c56 Merge pull request #1232 from fredj/describe.only
Use describe instead of describe.only
2013-11-05 08:02:08 -08:00
Tom Payne
ee53fa7174 Merge pull request #1230 from glennvorhes/for_loop_iter
Remove declared iteration variables before for-loop
2013-11-05 02:00:23 -08:00
Frederic Junod
db5986fcc1 Use describe instead of describe.only 2013-11-05 09:50:19 +01:00
Glenn Vorhes
0fc727f989 Remove declared iteration variables before for-loop 2013-11-04 22:31:04 -06:00
Tim Schaub
333ca47a19 Merge pull request #1227 from tschaub/interactions-option
Interactions option not respected.
2013-11-04 16:38:58 -08:00
Tim Schaub
dcf510fe48 The code generated from objectliterals.jsdoc requires name on same line
Without this change, the `interactions` property is renamed on map options (see #1210).
2013-11-04 17:17:43 -07:00
Tim Schaub
e207e80257 Merge pull request #1226 from tschaub/dirty-buffer
Buffer dirty extent when rendering,
2013-11-04 14:28:46 -08:00
ahocevar
32bf851957 Merge pull request #1225 from ahocevar/closest-on-segment
squaredDistanceToSegment and footOfPerpendicularToSegment
2013-11-04 13:43:42 -08:00
ahocevar
f317016505 Add tests 2013-11-04 22:14:34 +01:00
Tim Schaub
b355c1f412 When expiring tiles, consider max symbol size
When an extent is invalidated, we have to expire tiles outside of that extent to account for symbolizer size.
2013-11-04 13:21:23 -07:00
Tim Schaub
b0cea7139b Function to buffer an extent 2013-11-04 13:21:11 -07:00
ahocevar
e9b934d041 Let closestOnSegment return nothing more than a coordinate
Since we do not use the 'along' property anywhere, and the
resulting array returned by closestOnSegment could cause trouble
when working with 3d coodinates, now only the closest point is
returned, and the squared distance to the segment is calculated
by squaredDistanceToSegment instead.
2013-11-04 20:54:07 +01:00
Tom Payne
bfd40bd43d Merge pull request #1224 from twpayne/faster-object-getkeys
Make ol.Object#getKeys about 10x faster
2013-11-04 10:40:23 -08:00
ahocevar
1670b31142 Moving squaredDistanceToSegment to the coordinate package 2013-11-04 19:19:54 +01:00
Tom Payne
60245a57d8 Make ol.Object#getKeys about 10x faster 2013-11-04 18:18:31 +01:00
Bart van den Eijnden
01c9448c3c do not hard-code the namespaceURIs multiple times 2013-11-04 14:26:20 +01:00
Bart van den Eijnden
429a2e455b Add a separate test case for write 2013-11-04 14:26:11 +01:00
Bart van den Eijnden
91e834674c deal with elseFilter, some cleanup 2013-11-04 14:26:05 +01:00
Bart van den Eijnden
a7fe89c05d better write support for PointSymbolizer 2013-11-04 14:26:05 +01:00
Bart van den Eijnden
5c8fb35227 get rid of the readers we don't support in ol3 symbology as yet 2013-11-04 14:26:05 +01:00
Bart van den Eijnden
c75082c75d add name and title to ol.style.Rule 2013-11-04 14:26:05 +01:00
Bart van den Eijnden
9a6c1feddc Add more changes to the halo functionality, introduce SLD defaults for symbolizers conform the SLD spec 2013-11-04 14:25:25 +01:00
Bart van den Eijnden
924e9c6fce write out string concatenation in the more common way 2013-11-04 14:24:43 +01:00
Bart van den Eijnden
ee7d46cea1 Add initial pass of write support, always write out ol.style.Stroke as LineSymbolizer 2013-11-04 14:24:01 +01:00
Bart van den Eijnden
5abedf66d9 Add scale to/from resolution calculations 2013-11-04 14:22:59 +01:00
Bart van den Eijnden
76454516f5 Add skeleton for SLD parser 2013-11-04 14:22:42 +01:00
Frédéric Junod
20d5a45b7d Merge pull request #1193 from fredj/mouseposition_precision_input
MousePosition example issues
2013-11-03 22:40:23 -08:00
Éric Lemoine
597894d050 Merge pull request #1215 from probins/target
Correct docs for map.getTarget
2013-11-03 05:36:54 -08:00
Peter Robins
ef42744c66 Clarify keyboard events and focus in docs 2013-11-03 05:24:02 -05:00
Peter Robins
341ea92323 Correct docs for map.getTarget 2013-11-03 04:54:31 -05:00
Tim Schaub
10b6b5f2c5 Merge pull request #1173 from tschaub/map-interaction
Give interactions a reference to their map.
2013-11-01 15:30:19 -07:00
Tim Schaub
8bd6f80ef8 Merge pull request #1211 from tschaub/relay
Allow interactions to deal directly with browser events.
2013-11-01 14:24:51 -07:00
Tim Schaub
d5d005ba3f Allow interactions to deal directly with browser events
The relayEvent_ method wraps goog's browser events in our MapBrowserEvent.  This allows interactions to deal with real browser events in addition to our emulated events.
2013-11-01 13:07:44 -06:00
Frederic Junod
10f7bf1bcb Fix precision input change in mouse-position example 2013-11-01 16:35:26 +01:00
Paul Spencer
c4ba8a85bc Merge pull request #1210 from pagameba/mapoptions-interactions
Add support for passing interactions as an array for consistency.
2013-11-01 06:14:49 -07:00
Paul Spencer
7df3c7506f Add support for passing interactions as an array for consistency. 2013-11-01 08:03:06 -04:00
Éric Lemoine
0f71323c05 Merge pull request #1203 from elemoine/touch
Map browser event handler refactoring
2013-11-01 01:51:38 -07:00
Frédéric Junod
a05c426212 Merge pull request #1186 from fredj/validate_valueAsNumber
mouse-position example: Projection select issue
2013-10-31 23:49:48 -07:00
Tom Payne
0ad6948a15 Merge pull request #1209 from twpayne/collection-extend
Test that ol.Collection#extend fires events
2013-10-31 12:36:11 -07:00
Tom Payne
9442f2d209 Test that ol.Collection#extend fires events 2013-10-31 20:28:02 +01:00
Paul Spencer
5af671b5f7 Merge pull request #1181 from pagameba/doc-observables
Add `@todo observable` documentation for observable properties
2013-10-31 10:51:20 -07:00
Bart van den Eijnden
732aa06f8b Merge pull request #1201 from bartvde/bing
Terms of Use link missing in Bing attribution (r=@ahocevar)
2013-10-31 10:01:01 -07:00
Bart van den Eijnden
8b085514b1 add Terms of Service to the Bing attribution
make sure the epsg4326Extent is constructed with the correct arguments
2013-10-31 16:49:46 +01:00
Tim Schaub
7fb56579c5 Add addInteraction and removeInteraction methods to the map
This is in line with how we add/remove controls and overlays.
2013-10-31 09:26:28 -06:00
Tim Schaub
7d2d68c011 Give interactions a reference to the map
This is in line with what we do for controls and overlays.  A follow-up change will add calls to `setMap` when interactions are added to a map.
2013-10-31 09:25:52 -06:00
Éric Lemoine
d81fe5ac95 Map browser event handler refactoring
This commit refactors the code of the map browser event handler. The changes are the following:

Previously the `handleTouch*_` listener functions handled both `touch*` and `mspointer*` events. With this commit we use per-event type listeners. This duplicates some code (could be avoidable), but makes it easier to introduce mouse/touch/pointer specific treatments in the future.

We now listen to pointermove, pointerup, touchmove and touchend only when needed. In this way we're assured that a `down` event was received (and that `this.down_` is set) when the `up` or `move` listeners are called. This fixes the bug @oterral reported on the mailing list: https://groups.google.com/d/msg/ol3-dev/jR844F7Nlg8/eN9dt4uATK0J.

To avoid problems in browsers that trigger different types of events (e.g. both mouse and pointer events) the `down` listeners unregister the other `down` listeners. For example, the `pointerdown` listener unregisters the `mousedown` and `touchstart` listeners, for ever.
2013-10-31 13:35:01 +01:00
Éric Lemoine
d211f65203 Merge pull request #1195 from elemoine/click
Emulated click events on mouse devices
2013-10-31 01:50:34 -07:00
Éric Lemoine
8402eee0c3 Map "click" event renamed to "singleclick"
As discussed with @tschaub in #1195.
2013-10-31 09:37:16 +01:00
Tim Schaub
8e892a633d Merge pull request #1188 from tschaub/gfi-extent
Correctly generate BBOX in URL for GetFeatureInfo in ol.source.ImageWMS.
2013-10-30 09:10:48 -07:00
Frederic Junod
a2b9f1d0ac Only set the 'valueAsNumber' property is the value is valid 2013-10-30 14:15:59 +01:00
Éric Lemoine
2c930d74b5 clickOnly condition checks map clicks 2013-10-30 13:17:12 +01:00
Éric Lemoine
6ab88aad72 Add tests for emulated clicks 2013-10-30 13:16:09 +01:00
Éric Lemoine
0fa66cc7e7 Remove mousedown listener on first touchstart 2013-10-30 13:16:09 +01:00
Éric Lemoine
9f7ead5ef4 Remove unused ol.MapBrowserEventHandler#relayEvent_ func 2013-10-30 13:16:09 +01:00
Éric Lemoine
a85b82090d Emulate click events only on mouse "action"
`click` events are fired only if the mouse action button is pressed. This prevents `click` events from being fired when the middle mouse button is used.

Also, without this commit, in Chrome with emulated touch events enabled, double-clicking the map doesn't zoom the map. This is because `ol.BrowserFeature.HAS_TOUCH` is `false` in that environment. The commit fixes it by testing `isMouseActionButton` on mouse devices only.
2013-10-30 13:16:09 +01:00
Éric Lemoine
0c212fdcb5 Emulated click events on mouse devices
The map already emits emulated `click` and `dblclick` events on touch and pointer devices. With this commit the map emits emulated `click` and `dblclick` events on mouse devices as well.
2013-10-30 13:16:09 +01:00
Frédéric Junod
68752729ab Merge pull request #1140 from fredj/rename_interaction_condition
Rename ol.interaction.condition
2013-10-30 04:22:31 -07:00
Frederic Junod
a9159ecac3 Rename ol.interaction.condition to ol.events.condition 2013-10-30 12:13:44 +01:00
ahocevar
5b9bcbac1c Merge pull request #1197 from ahocevar/handledragend
Handle dragend after resetting view hint and dragging flag
2013-10-30 03:59:43 -07:00
ahocevar
4b7b95fc2f Handle dragend after resetting view hint and dragging flag
When we start dragging, we first handle dragstart and then set
the INTERACTING view hint and the dragging flag. To end dragging
in a symmetric manner, we have to first reset the INTERACTING
hint and dragging flag, and then handle dragend.

This flaw becomes obvious when using an interaction where no
animation is performed after the interaction. This can be seen
in the style-rules example when using the dragzoom interaction
(i.e. zoom using a drag box): the vector renderer will not
render the new resolution, because the INTERACTING view hint is
still set when the zoom box dragend is handled.
2013-10-30 11:45:34 +01:00
Bruno Binet
871820f2b5 Merge pull request #1122 from bbinet/fix-zindex-issues
Fix overlay zindex issues
2013-10-30 02:39:06 -07:00
Éric Lemoine
16b817b830 Overlay stopEvent and insertFirst default to true 2013-10-30 09:49:38 +01:00
Bruno Binet
d7c696fc76 Improve doc for stopEvent and insertFirst options 2013-10-30 09:28:56 +01:00
Bruno Binet
4e602fdb8d Set z-index: auto so that popup is not above controls 2013-10-30 09:28:26 +01:00
Bruno Binet
59eaa89a54 Fix overlay z-index issue in overlay example 2013-10-30 09:28:26 +01:00
Bruno Binet
86cfdf4da7 Fix overlay z-index issue in popup example 2013-10-30 09:28:26 +01:00
Bruno Binet
71097d9cfc Insert or append overlay based on insertFirst option
This is to fix z-index issues with overlays that pass above ol3 default
controls.
2013-10-30 09:28:25 +01:00
Bruno Binet
69cee6a410 Add insertFirst option in ol.OverlayOptions typedef 2013-10-30 09:28:25 +01:00
Tim Schaub
370bb964ab Tests for the image wms source 2013-10-29 14:18:14 -06:00
Tim Schaub
1af11e27ac Proper map extent for GetFeatureInfo request
Note that with and without this change, the pixel provided to the ol.source.wms.getFeatureInfo function will be wrong if the view has non-zero rotation.
2013-10-29 14:11:35 -06:00
Paul Spencer
4e657e464c Add @todo observable documentation for observable properties
This PR adds documentation for observable properties, which will then be pulled into the docs correctly once #1180 is merged.  This is a first pass based on searching for definition of observable properties being defined as enums after lines ending with `Property = {`.  If there are observable properties implemented that don't follow this pattern then they are not included.

I've added simple descriptions based on what I know or could easily figure out, there may be some properties (like preload) that are not correctly described.

I've also added `readonly` annotations where I knew that a property was readonly.  I may have missed some readonly properties.

ol.layer.Base has a bunch of properties but I don't think it is exported so the documentation of these properties will not show up, so I added the documentation to ol.layer.Layer instead even though this isn't really where it should be documented.
2013-10-29 10:24:54 -04:00
Frédéric Junod
9ada23a08a Merge pull request #1182 from fredj/moveend_example
Wrong extent coordinate order in moveend example
2013-10-29 05:23:50 -07:00
Frédéric Junod
e3abfae02c Merge pull request #1189 from fredj/apidoc
Minor apidoc updates
2013-10-29 05:23:40 -07:00
Frederic Junod
9de78f1168 Fix bottom left and top right computation in moveend example 2013-10-29 11:03:10 +01:00
Frederic Junod
3efc810ca9 Quote values in apidoc 2013-10-29 11:01:49 +01:00
Frédéric Junod
7a0cefd872 Merge pull request #1185 from fredj/coord_format
Add ol.coordinate.format function
2013-10-28 23:46:16 -07:00
Tim Schaub
df78a41ff1 Merge pull request #1187 from pagameba/fix-todo-observables
Fix todo observables.
2013-10-28 13:28:53 -07:00
Paul Spencer
d18119d98b Remove unnecessary Get column from observables 2013-10-28 16:12:08 -04:00
Paul Spencer
e858727bd0 Fix @todo observable name reference. 2013-10-28 16:11:40 -04:00
Tim Schaub
18d2eb161e Merge pull request #1180 from pagameba/doc-jsdoc-plugins
Add jsdoc plugins for stability and observables.
2013-10-28 12:36:18 -07:00
Paul Spencer
d3b8d0b676 Add jsdoc plugin that maps @todo tags to @stability and @observable tags.
This is a temporary measure until Plovr handles custom tags or is replaced in the build system.

Add support for indicating API stability with inline documentation

In preparation for documenting the stability of API features, this commit adds support for indicating API stability via a new jsdoc tag @stability.  There is a small plugin for jsdoc that adds a new tag, @stabiility, with some ability to enforce specific level names.  The templates and css have been updated to include the stability level in the generated documentation. (+1 squashed commit)
Squashed commits:
[d6bc03d] Add jsdoc plugin for documenting observable properties of a class.
2013-10-28 15:17:59 -04:00
Frederic Junod
1217243f84 Better ol.coordinate.* documentation 2013-10-28 17:34:54 +01:00
Frederic Junod
9ca74200ed Remove opt_precision check in ol.coordinate.format
Default is already 0, see http://www.ecma-international.org/ecma-262/5.1/#sec-15.7.4.5
2013-10-28 16:26:21 +01:00
Frederic Junod
cdf34b558a Add ol.coordinate.format function
Return a formatted coordinate. Example usage:
  > ol.coordinate.format([0.01 ,12.14], "{x}, {y}", 2)
  "0.01, 12.14"
  > ol.coordinate.format([0.01 ,12.14], "lat: {y} / lon: {x}", 1)
  "lat: 12.1 / lon: 0.0"
2013-10-28 15:32:43 +01:00
Éric Lemoine
5928c1cea1 Merge pull request #1184 from oterral/get_image_element
Fix getImageElement calls in canvas and webgl renderer
2013-10-28 06:32:06 -07:00
Olivier Terral
cc3660f32a Fix getImageElement calls in canvas and webgl renderer 2013-10-28 14:04:40 +01:00
Tim Schaub
1529aad7f6 Merge pull request #1177 from probins/viewdocs
Small addition to view2d docs.
2013-10-27 11:39:44 -07:00
Peter Robins
e73fb871b6 Small addition to view2d docs 2013-10-27 05:53:46 -04:00
Éric Lemoine
d7636f266f Merge pull request #1147 from elemoine/issue-1147
IE 10 Click on popup
2013-10-27 02:09:25 -07:00
Tim Schaub
9d52e85fc3 Merge pull request #1163 from pagameba/doc-stability
Add default stability level to docs of exported things.
2013-10-25 11:40:16 -07:00
Tim Schaub
ca6681afa8 Merge pull request #1171 from probins/mapdocs
Fix error in map docs.
2013-10-25 10:51:23 -07:00
Peter Robins
d5df4bf80b Fix error in map docs
[ci skip]
2013-10-25 13:08:26 -04:00
Paul Spencer
bada596b45 Add default stability level to docs of exported things. 2013-10-24 18:20:24 -04:00
Tom Payne
a13c5d30a2 Merge pull request #1159 from twpayne/export-create-empty
Export ol.extent.createEmpty function
2013-10-24 04:21:55 -07:00
Frederic Junod
409d7d209d Export ol.extent.createEmpty function 2013-10-24 13:13:08 +02:00
Éric Lemoine
c17c21467e Merge pull request #1151 from probins/viewdocs
Some additions to View2d docs
2013-10-22 04:32:25 -07:00
Peter Robins
f5c6565617 Some additions to View2d docs
[ci skip]
2013-10-22 07:15:30 -04:00
Tim Schaub
def4d62142 Merge pull request #1150 from tschaub/bing
Use permanent Bing Maps API key.
2013-10-21 14:31:01 -07:00
Tim Schaub
fdda18b57b Use permanent Bing Maps API key
This key is registered for "Not-for-Profit" use by OpenLayers as a project of OSGeo - a 501(c)(4) organization.

See the complete [Terms of Use](http://www.microsoft.com/maps/product/terms.html) under the Eduction or Non-Profit Organization Use section.
2013-10-21 11:21:11 -06:00
Tim Schaub
e70b55b60b Check resources length of first resource set (see #1149) 2013-10-21 11:18:24 -06:00
Éric Lemoine
c065282243 Stop mspointer events
Stop mspointerup and mspointerdown events reaching the "stop event" overlay container.
2013-10-21 15:33:12 +02:00
Tom Payne
740b6e8b56 Merge pull request #1149 from twpayne/bing-maps-errors
Improve handling of error responses from Bing
2013-10-21 04:59:55 -07:00
Tom Payne
e4eff4658b Improve handling of error responses from Bing
Previously goog.asserts.assert was used to check that the response was
successful, which are stripped from compiled code.  This commit sets the
ERROR state on the source instead.
2013-10-21 12:02:55 +02:00
Éric Lemoine
50cbf2fdac Merge pull request #1146 from probins/setproj
Add 'do not use' warning to view.setProjection
2013-10-20 08:50:17 -07:00
Peter Robins
a479193cf0 Add 'do not use' warning to view.setProjection
[ci skip]
2013-10-20 11:35:41 -04:00
Tom Payne
ba1a4cbac8 Merge pull request #1144 from twpayne/wms-logo
Add missing logo option for ol.source.TileWMS
2013-10-18 07:26:02 -07:00
Tom Payne
2a1bdf6b16 Add missing logo option 2013-10-18 15:56:05 +02:00
Tom Payne
9997e710ea Merge pull request #1143 from twpayne/wmts-logo
Logo given in options not being displayed
2013-10-18 05:32:25 -07:00
Tom Payne
228ff4e56b Add missing logo option 2013-10-18 14:23:16 +02:00
Éric Lemoine
c8f02fcd6e Merge pull request #1141 from elemoine/relay
Do not relay contextmenu and mousemove events
2013-10-18 02:58:17 -07:00
Éric Lemoine
1c890d837e Unconditonally set the framestate focus 2013-10-18 10:03:59 +02:00
Éric Lemoine
08bad9746b Do not relay mouseout events 2013-10-18 10:00:53 +02:00
Éric Lemoine
4008ab7f6c Vector examples display feature info on click again 2013-10-18 09:59:47 +02:00
Éric Lemoine
4c7f30c139 Make overlay container stop touchend and mouseup 2013-10-18 09:59:47 +02:00
Éric Lemoine
70eb5a5f13 Emulate click and dblclick on touch devices 2013-10-18 09:59:47 +02:00
Éric Lemoine
fe3440a83d Use jQuery to listen to map mousemove in examples
This commit also removes the click listener, which was used for touch devices. The click listener will be added back when the lib will correctly handle clicks on touch devices.
2013-10-18 09:59:47 +02:00
Éric Lemoine
938f45a032 Do not relay mousemove events 2013-10-18 09:59:46 +02:00
Éric Lemoine
1c051aa055 Do not relay contextmenu events 2013-10-18 09:59:46 +02:00
Frédéric Junod
7e737f8b71 Merge pull request #1137 from fredj/dragbox_condition
Add new condition param to ol.control.DragBox
2013-10-17 23:48:34 -07:00
Frédéric Junod
19f66453fe Merge pull request #1138 from fredj/touch_pixel
Make sure that ol.MapBrowserEvent#getPixel() always returns a valid value
2013-10-17 21:45:14 -07:00
Frederic Junod
92acc3e2d9 Make sure that the event position is correct for touch events
This is a workaround for https://code.google.com/p/closure-library/issues/detail?id=588
2013-10-17 13:51:51 +02:00
Frederic Junod
ade9984872 Add new condition param to ol.control.DragBox 2013-10-17 07:44:05 +02:00
ahocevar
33f426fd85 Merge pull request #1135 from ahocevar/no-blur
Use integers when positioning on the target canvas
2013-10-16 09:03:08 -07:00
ahocevar
386fac2429 Use integers when positioning on the target canvas
This avoids blurred images after view center changes (dx, dy)
and at fractional zoom levels (dw, dh).
2013-10-16 16:39:45 +02:00
Tim Schaub
a8442df56a Merge pull request #1136 from pagameba/null-framestate-bug
Fix a bug when frameState is null which occurs in offline mobile devices.
2013-10-16 06:46:20 -07:00
Tim Schaub
3c5107b218 Merge pull request #1133 from tschaub/align-pixels
Ensure that pixels are aligned when rendering icons.
2013-10-16 06:37:46 -07:00
Paul Spencer
3173ddbb5f Fix a bug when frameState is null which occurs in offline mobile devices 2013-10-16 08:59:46 -04:00
Éric Lemoine
63c9aed620 Merge pull request #1077 from ThomasG77/setPositioning
Export ol.Overlay#setPositioning
2013-10-16 02:50:38 -07:00
Tim Schaub
b02f47a5a5 Align pixels when drawing icons or shapes
The floor before setting the transform ensures that we translate by integer pixels for odd and even dimenstions.  The round before drawing the image ensures pixels are aligned.
2013-10-15 22:12:12 -06:00
Tim Schaub
5fe7c20450 Merge pull request #1132 from tschaub/wide-stroke
Only call lineTo if we are in a new pixel.
2013-10-15 12:35:58 -07:00
Éric Lemoine
a5c6a865bf Merge pull request #1129 from elemoine/eventcoord
Add ol.Map#getEventPixel and ol.Map#getEventCoordinate
2013-10-15 04:03:07 -07:00
Tom Payne
3eded60938 Merge pull request #1118 from twpayne/build-examples-together
Build examples together
2013-10-15 03:48:34 -07:00
Éric Lemoine
69642f9a6d Export ol.Map#getViewport 2013-10-15 11:33:32 +02:00
Tim Schaub
2011e02364 Avoid calling lineTo on the same pixel for polygon stroke 2013-10-14 17:07:06 -06:00
Tim Schaub
71a6c4f270 Only call lineTo if we are in a new pixel for linestring
Rendering performance degrades as the context lineWidth increases when calling lineTo many times for the same pixel coordinate.  This appears to be a widespread performance issue and is very clearly improved by only calling lineTo when in a new pixel coordinate.
2013-10-14 17:06:44 -06:00
Éric Lemoine
be4d8a5698 Merge pull request #1131 from jomue/fix-apidoc-typo
Fix 2 typos on the API docs mainpage
2013-10-14 14:15:56 -07:00
Jonas Mueller
3c902af042 Typo retieving -> retrieving 2013-10-14 22:50:19 +02:00
Jonas Mueller
843c9cab83 Typo describes -> describe 2013-10-14 22:48:17 +02:00
Frédéric Junod
29221a9869 Merge pull request #1128 from fredj/offset_props
Rename offset* attributes to delta*
2013-10-14 07:59:36 -07:00
Éric Lemoine
4c04c9fa5c Use getCoordinatePixel in ol.MapBrowserEvent 2013-10-14 15:36:46 +02:00
Éric Lemoine
49e0af5abb Use getEventPixel in ol.MapBrowserEvent 2013-10-14 15:36:37 +02:00
Éric Lemoine
3aeb4d1584 Export ol.Map#getEventCoordinate 2013-10-14 15:30:23 +02:00
Éric Lemoine
dbdacec6df Export ol.Map#getEventPixel 2013-10-14 15:30:23 +02:00
Frederic Junod
9ffabb481c Rename offset* attributes to delta* 2013-10-14 14:22:51 +02:00
Éric Lemoine
c9b1ba51fa Add ol.Map#getEventCoordinate 2013-10-14 09:43:25 +02:00
Éric Lemoine
406207213f Add ol.Map#getEventPixel 2013-10-14 09:43:11 +02:00
Tim Schaub
86bb213048 Merge pull request #1126 from kryger/patch-1
Typo crossOriin => crossOrigin.
2013-10-13 10:13:50 -07:00
Lukasz Kryger
f1c45c4a6c Typo crossOriin => crossOrigin 2013-10-13 17:57:22 +01:00
Bruno Binet
c07933beef Merge pull request #1120 from bbinet/overlay-stop-events
Configurable event propagation for overlays
2013-10-11 07:13:31 -07:00
Bruno Binet
06580950ca Add controls to ol-overlaycontainer-stopevent
so that events won't be propagated to the map when interacting with a control
2013-10-11 12:51:22 +02:00
Bruno Binet
e1da49fb32 Merge pull request #1121 from bbinet/fix-whitespace-indent
Fix indent
2013-10-11 03:24:32 -07:00
Bruno Binet
aaf64c8fec Fix indent 2013-10-11 12:23:21 +02:00
Bruno Binet
623b2fab14 Adjust event propagation for popup example 2013-10-11 12:17:08 +02:00
Bruno Binet
2d0fdfdd87 Adjust event propagation for overlay example 2013-10-11 12:17:08 +02:00
Bruno Binet
caf958826d Add new container which don't stop event propagation
and allow overlays to optionnally stop event propagation
2013-10-11 12:16:56 +02:00
Bruno Binet
8c8dbe2ece Add stopEvent option in ol.OverlayOptions typedef 2013-10-11 12:14:58 +02:00
Frédéric Junod
0af2ac60d6 Merge pull request #1119 from fredj/drz_offset
Use getPixel function instead of offset from event
2013-10-10 23:17:45 -07:00
Frederic Junod
ef97da2b77 Use getPixel function instead of offset from event 2013-10-11 07:35:27 +02:00
Tom Payne
3f1ae87eee Only build combined examples in integration tests 2013-10-10 16:45:24 +02:00
Tom Payne
e2df5ceacb Add target to concatenate and build all examples 2013-10-10 16:45:05 +02:00
Tom Payne
effc09edd6 Add script to combine examples 2013-10-10 16:44:34 +02:00
Éric Lemoine
4c765d817d Merge pull request #1116 from elemoine/loader
Revert "Always set CLOSURE_NO_DEPS to true"
2013-10-10 06:41:33 -07:00
Éric Lemoine
036dee55a9 Revert "Always set CLOSURE_NO_DEPS to true"
This reverts commit aa5a571ab1.
2013-10-10 09:26:37 +02:00
Tim Schaub
08de33c020 Merge pull request #1115 from tschaub/no-deps
Stop base.js from trying to load deps.js.
2013-10-09 16:03:28 -07:00
Tim Schaub
ca3dcb0e14 Stop base.js from trying to load deps.js 2013-10-09 15:47:30 -06:00
Tim Schaub
dd67c7d8c3 Merge pull request #1111 from tschaub/font-weight
Add fontWeight property to TextSymbolizer.
2013-10-09 13:20:47 -07:00
Tim Schaub
3893351d01 Merge pull request #1113 from tschaub/point-symbolizers
ol.style.Shape and ol.style.Icon don't inherit from ol.style.Point.
2013-10-09 13:19:14 -07:00
Tim Schaub
2ee776d9f6 Support fontWeight in text symbolizer 2013-10-09 11:59:30 -06:00
Tim Schaub
d5ab5ec1d2 Shape symbolizer extends point symbolizer 2013-10-09 09:01:51 -06:00
Tim Schaub
e36c53dd23 Icon symbolizer extends point symbolizer 2013-10-09 09:01:30 -06:00
Tom Payne
7be90877fe Merge pull request #1105 from twpayne/example-fixes
Example type-related fixes
2013-10-09 04:56:45 -07:00
Tim Schaub
f302fee5ad Merge pull request #1108 from tschaub/java
Rely on java in path.
2013-10-08 13:53:27 -07:00
Tim Schaub
03c7e7c031 Rely on java in path 2013-10-08 13:47:46 -06:00
Tim Schaub
2f3cd430de Merge pull request #1070 from tschaub/text-stroke
Add stroke support to text symbolizers.
2013-10-08 08:12:11 -07:00
Tom Payne
2f10e62b76 Merge pull request #1100 from twpayne/animation-duration-control
Animation duration control
2013-10-08 06:53:18 -07:00
Tom Payne
1a000c3719 Add typecast in WMTS IGN example 2013-10-08 15:37:32 +02:00
Tom Payne
4e5d50de98 Fix use of ol.dom.Input numeric value 2013-10-08 15:30:26 +02:00
Tom Payne
88d019a0bb Add typecasts in animation example 2013-10-08 15:29:44 +02:00
Tom Payne
b533cad031 Only install animations if duration > 0 2013-10-08 14:35:04 +02:00
Tom Payne
c6df48e424 Add zoomDuration option to interaction defaults 2013-10-08 14:35:04 +02:00
Tom Payne
b1ed63ebf8 Make touch zoom animation duration configurable 2013-10-08 14:35:04 +02:00
Tom Payne
6c0d4cddad Make mouse wheel zoom animation duration configurable 2013-10-08 14:35:03 +02:00
Frédéric Junod
b022da3da0 Merge pull request #1103 from fredj/doc
Minor apidoc updates
2013-10-08 00:15:08 -07:00
Frederic Junod
307e2d936c Minor apidoc updates 2013-10-08 09:04:50 +02:00
Tim Schaub
539ecbdd9c Add stroke support for text symbolizers 2013-10-07 16:17:38 -06:00
Tim Schaub
5e86ffcca5 Add stroke properties to text symbolizer literal 2013-10-07 16:09:20 -06:00
Bruno Binet
aca022df6e Merge pull request #1101 from bbinet/overlay_center_positioning
ol.overlay center positioning
2013-10-07 10:35:21 -07:00
Bruno Binet
8f92deeac2 Fix overlay positioning in icon example 2013-10-07 18:51:34 +02:00
Bruno Binet
41085560f6 Fix overlay positioning in geolocation example 2013-10-07 18:36:51 +02:00
Tim Schaub
428ba59806 Merge pull request #1102 from tschaub/expr-lib
Always use ol.expr.lib when calling evaluateFeature.
2013-10-07 09:35:58 -07:00
Tim Schaub
0296ee846a Avoiding unhandled errors
These tests were generating errors that were not caught because they were outside the `it` functions.
2013-10-07 09:47:41 -06:00
Tim Schaub
60a13d6517 Always provide lib functions, conditionally provide scope 2013-10-07 09:46:24 -06:00
Bruno Binet
715236c1f6 Update ol.overlay exports for center positioning 2013-10-07 17:01:06 +02:00
Bruno Binet
e9ac7cef83 Update overlay example with center positioning 2013-10-07 16:46:33 +02:00
Bruno Binet
29076db6ed Add support for ol.overlay center positioning 2013-10-07 16:41:59 +02:00
Tom Payne
1863109ac8 Make keyboard zoom animation duration configurable 2013-10-07 15:41:00 +02:00
Tom Payne
93b33589a1 Make double click zoom animation duration configurable 2013-10-07 15:39:52 +02:00
Tom Payne
214e578333 Make zoom control animation duration configurable 2013-10-07 15:35:52 +02:00
ahocevar
37a7ac1f5b Merge pull request #1097 from ahocevar/multi-geometry-events
Fire change events in multi-part geometries
2013-10-05 10:07:26 -07:00
ahocevar
4b934c03ba We want to create a deep clone, not a shallow one 2013-10-05 08:42:21 -06:00
ahocevar
b40124b2bc Fixing doc comment 2013-10-05 08:41:49 -06:00
ahocevar
52552c9b18 Fire change events for multi-part geometries 2013-10-04 23:36:16 -06:00
Tim Schaub
703564fcbb Merge pull request #1096 from tschaub/editable-features
Editable geometries and features.
2013-10-03 19:22:30 -07:00
Tim Schaub
67fab12fef Listen for feature events and fire layer events 2013-10-03 15:51:00 -06:00
Tim Schaub
adf99d592a Listen for geometry events and fire feature events 2013-10-03 15:50:23 -06:00
ahocevar
48421083ba Merge pull request #1095 from ahocevar/master
More test fixes (see #1093)
2013-10-03 13:39:52 -07:00
ahocevar
00a73a6188 More test fixes (see #1093) 2013-10-03 14:39:30 -06:00
ahocevar
9a9085d716 Merge pull request #1094 from ahocevar/master
Fixing tests (see #1093)
2013-10-03 13:37:56 -07:00
ahocevar
62134f6ee2 Fixing tests (see #1093) 2013-10-03 14:37:02 -06:00
ahocevar
de999b9463 Merge pull request #1093 from ahocevar/symbolizer-id
Adding counter expression function
2013-10-03 12:16:02 -07:00
ahocevar
32f8826622 Minor doc change 2013-10-03 13:16:03 -06:00
Tim Schaub
b821619368 Change event for polygons 2013-10-03 12:28:35 -06:00
Tim Schaub
30b2e3930b Add setCoordinates for linestring and dispatch change event 2013-10-03 12:28:35 -06:00
Tim Schaub
e78690c2d2 Add setCoordinates for point and dispatch change event 2013-10-03 12:28:35 -06:00
Tim Schaub
9b47c15bd8 Make geometries event targets
Previously, the tests were using eql to make assertions about matching geometries.  This is inappropriate for structures with circular references (as with goog.events.EventTarget);
2013-10-03 12:28:34 -06:00
Tim Schaub
626a319222 Accessor for polygon rings 2013-10-03 12:28:34 -06:00
Tim Schaub
42115baabb Merge pull request #1092 from tschaub/vector-event
Extend goog.events.Event for custom vector layer events.
2013-10-03 11:23:39 -07:00
ahocevar
f2a9c45447 Merge pull request #1091 from ahocevar/render-zindex
Sort symbolizer groups by zIndex
2013-10-03 11:02:29 -07:00
ahocevar
41e7a6a059 Marking sort function private 2013-10-03 12:02:29 -06:00
ahocevar
4937f08971 Adding counter expression function
This function can e.g. be used to get a symbolizer literal with
an ever increasing zIndex.
2013-10-03 11:41:02 -06:00
Tim Schaub
64dd5cfc1f Extend goog.events.Event for custom vector layer events
Vector events include features and extents.  In the case of feature change events, the extents array will include old and new extents for features with modified geometries.w
2013-10-03 11:25:30 -06:00
ahocevar
87e755e9e4 Sort symbolizer groups by zIndex
Now rendering order can be controlled by setting the zIndex
symbolizer property.
2013-10-03 09:37:08 -06:00
Tim Schaub
97b56add70 Unique event type value for this target
The goog.events.EventType.CHANGE type is already dispatched because layers are ol.Object instances.  To allow people to register for vector layer specific events without also having listeners get called with more general ol.Object change events, we need to give the types unique values.
2013-10-03 09:20:51 -06:00
Bart van den Eijnden
17356bc3ee Merge pull request #1063 from oterral/parsing_stylemap
Parsing styleMap (r=@bartvde)
2013-10-03 08:01:56 -07:00
ahocevar
c03e690882 Merge pull request #1089 from ahocevar/no-geometry-type-groups
No longer group features by geometry type
2013-10-03 07:35:14 -07:00
ahocevar
dbb9525515 No longer group features by geometry type
With symbolizer literals now being geometry type specific, we no
longer need the overhead to query the RTree separately for each
geometry type and render symbolizer groups by geometry type.

The geometry type index of the FeatureCache is no longer needed.

The filtering functionality of the FeatureCache's
getFeaturesObject method can be removed because it is no longer
used.
2013-10-03 08:35:11 -06:00
Tim Schaub
58c62a201f Merge pull request #1090 from tschaub/symbolizer-z
Add zIndex property to symbolizers.  Symbolizers with the same zIndex (in addition to other properties) are considered equal.  A subsequent change will sort features by symbolizer zIndex before rendering.
2013-10-02 22:32:34 -07:00
Tim Schaub
82e8da8df5 Removed unused stroke defaults for select intent 2013-10-02 17:38:19 -06:00
Tim Schaub
bfa257eac1 Default value for zIndex 2013-10-02 17:31:42 -06:00
Tim Schaub
43c581ef5f Optional zIndex for text symbolizers 2013-10-02 17:31:33 -06:00
ahocevar
5dbd200e2b Merge pull request #1088 from ahocevar/rename-vectorrenderer
Rename ol.renderer.canvas.VectorRenderer
2013-10-02 15:55:21 -07:00
ahocevar
adc1d130c8 Rename ol.renderer.canvas.VectorRenderer
To be consistent with our naming convention, this one should be
renamed to ol.renderer.canvas.Vector.
2013-10-02 15:58:27 -06:00
Tim Schaub
b9a44d2db5 Optional zIndex for shape symbolizers 2013-10-02 15:51:14 -06:00
Tim Schaub
b7cb21dc4a Optional zIndex for icon symbolizers 2013-10-02 15:26:17 -06:00
Tim Schaub
33cacab11c Optional zIndex for stroke symbolizers 2013-10-02 15:12:22 -06:00
Tim Schaub
04a23d0e45 Optional zIndex for fill symbolizers 2013-10-02 15:10:42 -06:00
Éric Lemoine
96fa07effb Merge pull request #1073 from elemoine/export-supported
Fix exports for ol.Geolocation | DeviceOrientation.SUPPORTED
2013-10-02 05:48:26 -07:00
Tom Payne
626a6d9881 Merge pull request #1081 from twpayne/requirements
Add gjslint to requirements.txt
2013-10-02 05:21:44 -07:00
Tom Payne
6f24507cd3 Add gjslint to requirements.txt 2013-10-02 13:30:19 +02:00
Tom Payne
57b4606aeb Merge pull request #1079 from twpayne/no-glsl-unit
Remove glsl-unit
2013-10-02 03:23:38 -07:00
Tom Payne
e96600127e Merge pull request #1078 from twpayne/libtess.js
Add libtess.js
2013-10-02 03:02:17 -07:00
Frédéric Junod
948735f948 Merge pull request #1075 from fredj/center-constraint
Add ol.CenterConstraint
2013-10-02 02:54:17 -07:00
Tom Payne
16729065a6 Update built shader source 2013-10-01 18:33:36 +02:00
Tom Payne
39dd37073c Don't install glsl-unit in Travis environment 2013-10-01 18:33:08 +02:00
Tom Payne
f1d4b58eb9 Use pyglslunit instead of glsl-unit 2013-10-01 18:32:36 +02:00
Tom Payne
9c9a6ebff5 Add pyglslunit alternative to glsl-unit 2013-10-01 18:31:09 +02:00
Tom Payne
36be7a64c6 Add pystache requirement 2013-10-01 18:30:57 +02:00
Tom Payne
ef23a9a204 Add requirements.txt 2013-10-01 18:30:36 +02:00
Tom Payne
51ed3e58c1 Include libtess.js in build 2013-10-01 15:14:12 +02:00
Tom Payne
9c5c252ae5 Correct @param type 2013-10-01 15:14:12 +02:00
Tom Payne
1db4750c72 Add goog.provides and goog.requires 2013-10-01 15:14:12 +02:00
Tom Payne
9be84796c8 Fix indentation in commment 2013-10-01 15:14:12 +02:00
Tom Payne
26c8495e6b Add missing @param tag 2013-10-01 15:14:12 +02:00
Tom Payne
0709778883 Add missing @return tag 2013-10-01 15:14:11 +02:00
Tom Payne
a422c160cd Fix @author tags 2013-10-01 15:14:11 +02:00
Tom Payne
f8efa7c6a4 Apply fixjsstyle to libtess.js 2013-10-01 15:14:11 +02:00
Brendan Kenny
31f3e92494 Import libtess.js 2013-10-01 15:14:11 +02:00
Thomas
817a8feac9 SetPositioning exposition in the API
The method in ol.Overlay is not exposed whereas is equivalent
getter getPositioning is visible in API and documentation.
The PR add a line of description to the documentation and expose
the method
2013-09-30 23:34:51 +02:00
Tom Payne
221a56a411 Merge pull request #1048 from twpayne/source-state-enum
Replace source ready flag with loading/ready/error enum
2013-09-30 05:43:14 -07:00
Tom Payne
167b309242 Replace source ready flag with loading/ready/error enum 2013-09-30 13:30:54 +02:00
Frederic Junod
680f5cbb5a Constrain center in ol.interaction.TouchPan 2013-09-30 10:37:02 +02:00
Tom Payne
8ffe910ebf Apply center constraint in custom projection examples 2013-09-30 10:17:24 +02:00
Tom Payne
2e395e4530 Constrain center in ol.interaction.DragPan 2013-09-30 10:17:24 +02:00
Tom Payne
92f7f14744 Constrain center in ol.interaction.Interaction.pan 2013-09-30 10:17:24 +02:00
Tom Payne
73b9b6b6a0 Add center constraint to ol.View2D 2013-09-30 10:17:24 +02:00
Tom Payne
1c003b5ab1 Add ol.CenterConstraint 2013-09-30 10:17:24 +02:00
Éric Lemoine
5c5fcb7e06 Use @exportSymbol for exporting ol.webgl.SUPPORTED
For consistency with the way we export ol.DeviceOrientation.SUPPORTED and ol.Geolocation.SUPPORTED.
2013-09-28 22:47:25 +02:00
Éric Lemoine
925b5d285a Fix export for ol.DeviceOrientation.SUPPORTED 2013-09-28 22:44:59 +02:00
Éric Lemoine
43561c302e Fix export for ol.Geolocation.SUPPORTED 2013-09-28 22:44:35 +02:00
Tim Schaub
da84dd9253 Merge pull request #1061 from tschaub/geom-refactor
Remove shared structures backing geometries.
2013-09-27 16:08:08 -07:00
Tim Schaub
ce6fd5ab36 Remove dimension option from KML parser
Geometry constructors now accept coordinates in any dimension
2013-09-27 23:18:34 +01:00
Tim Schaub
1aa83e133b Remove dimension property from geometries
This was only necessary when using the shared vertices structure.
2013-09-27 23:18:34 +01:00
Tim Schaub
563918d58d Clone should not share bounds 2013-09-27 23:18:34 +01:00
Tim Schaub
3e8ca13882 Missing stylesheet in TopoJSON example 2013-09-27 23:18:34 +01:00
Tim Schaub
3aff5e19f1 Remove shared vertices 2013-09-27 23:18:34 +01:00
Tim Schaub
0b5058f72e Remove shared vertex handling from vector layer 2013-09-27 23:18:34 +01:00
Tim Schaub
33457c48de Add transform method to geometries
In the typical sequence of parse-transform-render the most efficient place to transform coordinate values is deep within the parser immediately after values have been read (this would avoid a second pass over whatever structure is used to back geometries).  To accomplish this transform during parsing, we could add back parser read options to pass the transform function around.

Until then, a transform method on geometries is straightforward to implement.  This means we do a second pass through coordinate structures to transform, but this is typically done only once immediately after parsing.
2013-09-27 23:18:34 +01:00
Tim Schaub
e1ba1d8887 Remove use of shared structures in feature parsers 2013-09-27 23:18:34 +01:00
Tim Schaub
2850c761cf Remove use of shared vertices in geom package 2013-09-27 23:18:17 +01:00
ahocevar
3349bded1c Merge pull request #1065 from ahocevar/skip-hidden
Select interaction does not work with shape symbolizers and canvas renderer
2013-09-27 05:45:50 -07:00
Tim Schaub
c2f8d7508b Merge pull request #1069 from tschaub/rule-resolution
Add min/maxResolution properties to rules.
2013-09-27 03:35:00 -07:00
ahocevar
6c6f9a3ef5 Doc improvements
Thanks @tschaub for suggesting these.
2013-09-27 12:11:41 +02:00
Tim Schaub
e71d3aec1a Update example to use maxResolution 2013-09-27 11:47:29 +02:00
Tim Schaub
bbef15e50e Consider resolution when applying rules 2013-09-27 11:46:48 +02:00
Tim Schaub
78c54addb3 Add min/maxResolution properties to rule options 2013-09-27 11:45:43 +02:00
ahocevar
f8e891ff15 Making the condition for adding to selection configurable 2013-09-27 11:45:15 +02:00
Olivier Terral
a35219545e Add new line at the end of file 2013-09-26 17:26:43 +02:00
Frédéric Junod
2878309a41 Merge pull request #1067 from fredj/attribution_osm_option
Remove 'attribution' option from ol.source.OSMOptions
2013-09-26 06:10:17 -07:00
Frederic Junod
9891e5fbc2 Remove 'attribution' option from ol.source.OSMOptions 2013-09-26 14:15:46 +02:00
Olivier Terral
422efbe38b Use quoted properties to fix build failure in advanced mode 2013-09-26 13:11:10 +02:00
ahocevar
c556ddd593 Skip hidden features for hit detection 2013-09-26 12:56:49 +02:00
Frédéric Junod
20ce29a5c6 Merge pull request #1064 from fredj/createFromQueryData
Use ol.RendererHints.createFromQueryData in examples
2013-09-26 03:38:09 -07:00
Frédéric Junod
b5035888f6 Merge pull request #1044 from fredj/tileLoadFunction_override
Allow tile load override for all ol.source.TileImage based classes
2013-09-26 03:36:31 -07:00
Tom Payne
9b491d1247 Merge pull request #1059 from twpayne/next-tick
Use goog.async.nextTick instead of goog.async.Delay
2013-09-26 03:16:25 -07:00
Frederic Junod
fc0f46344d Use ol.RendererHints.createFromQueryData in examples 2013-09-26 10:21:38 +02:00
Olivier Terral
5c128abc5d Add kml file for test 2013-09-26 09:50:46 +02:00
Olivier Terral
67a6703e50 Remove space 2013-09-26 09:24:30 +02:00
Olivier Terral
518658d7de Add styleMap writer 2013-09-26 08:54:22 +02:00
Olivier Terral
e7222c040c Fix styleUrl parsing 2013-09-26 08:54:22 +02:00
Olivier Terral
39e56f3e61 Add styleMap parsing 2013-09-26 08:54:22 +02:00
Marc Jansen
1f2ae57e73 Merge pull request #1062 from marcjansen/help-typos
Fix typos in build.py's help target.
2013-09-25 10:59:17 -07:00
Marc Jansen
4b60829b4a Fix typos in build.py's help target.
See #1034. Thanks @probins.
2013-09-25 19:56:32 +02:00
ahocevar
79750c662c Merge pull request #1056 from openlayers/doc
Basic docs
2013-09-24 07:21:43 -07:00
Frederic Junod
907e796b55 Allow tileLoadFunction override for ol.source.MapQuestOSM and MapQuestOpenAerial 2013-09-24 15:54:53 +02:00
Tom Payne
1671a343b4 Use goog.async.nextTick instead of goog.async.Delay 2013-09-24 15:27:55 +02:00
Tim Schaub
394dfa297a Link to API docs 2013-09-24 15:14:50 +02:00
Tim Schaub
c4dba8e828 Link to website root 2013-09-24 15:14:49 +02:00
ahocevar
9e274a61db Fixing typo 2013-09-24 15:06:22 +02:00
Tim Schaub
5c98a47581 Bare bones index pages 2013-09-24 14:57:58 +02:00
Tim Schaub
a9b0e6239b Link to latest, fenced code blocks 2013-09-24 14:57:58 +02:00
ahocevar
860735d7e4 Nicer search box position 2013-09-24 14:56:25 +02:00
ahocevar
b80022036f ol3 logo for examples and apidoc header 2013-09-24 14:42:04 +02:00
ahocevar
d1c0665926 Adding heading 2013-09-24 13:46:14 +02:00
Frederic Junod
9fcd057c1e Allow tileLoadFunction override for ol.source.Stamen 2013-09-24 13:33:01 +02:00
Frederic Junod
4614a43d48 Allow tileLoadFunction override for ol.source.WMTS 2013-09-24 13:33:01 +02:00
Frederic Junod
980d311680 Allow tileLoadFunction override for ol.source.TileWMS 2013-09-24 13:33:01 +02:00
Frederic Junod
331005468c Allow tileLoadFunction override for ol.source.TileJSON 2013-09-24 13:33:01 +02:00
Frederic Junod
5a99adfc68 Allow tileLoadFunction override for ol.source.BingMaps 2013-09-24 13:33:01 +02:00
Frederic Junod
dd509ed39e Allow tileLoadFunction override for ol.source.OSM 2013-09-24 13:33:01 +02:00
Frédéric Junod
ac6d8f2df1 Merge pull request #1057 from fredj/apidoc
Fix jsdoc formating
2013-09-24 04:30:47 -07:00
ahocevar
3adc46ae4a Adding basic concepts tutorial 2013-09-24 13:28:42 +02:00
Frederic Junod
ef929e9a72 Fix jsdoc formating 2013-09-24 12:18:00 +02:00
Tom Payne
3e8abadf95 Merge pull request #1053 from elemoine/sourceoptions
Use typedef in source code for SourceOptions
2013-09-24 03:03:12 -07:00
Tom Payne
a25eff9283 Merge pull request #1047 from twpayne/remove-load-events
Remove source load events
2013-09-24 02:50:13 -07:00
Frederic Junod
f07294698a Include ol.css in doc/quickstart.hbs 2013-09-24 11:15:26 +02:00
ahocevar
5ab7803402 New font and header background color
With this change, API docs and examples match the website design
of the new-build branch of openlayers.github.io better.
2013-09-24 10:50:27 +02:00
Tim Schaub
aec0c0d9af Adding YAML frontmatter
This will be parsed by the website build task
2013-09-24 10:39:34 +02:00
Tim Schaub
2f2ee22831 Moving quickstart to doc directory 2013-09-24 10:37:43 +02:00
Julien-Samuel Lacroix
3b7db642f1 QuickStart first draft 2013-09-24 10:36:29 +02:00
Tim Schaub
2610e9e0c3 Merge pull request #1054 from tschaub/apidoc
Differentiating doc from apidoc.
2013-09-23 15:38:29 -07:00
Tim Schaub
4def0c6a84 Differentiating doc from apidoc
This renames the doc task to apidoc.  The apidoc delegates to jsdoc3 currently.  We will have additional documentation that is not built by jsdoc3.  It makes sense to reserve the more general 'doc' name for building all documentation (not just apidoc).
2013-09-23 23:58:25 +02:00
Éric Lemoine
b2c336c29e Use typedef in source code for SourceOptions 2013-09-23 17:53:43 +02:00
Frédéric Junod
3546a15f39 Merge pull request #1049 from fredj/webgl_ie11
Add 'experimental-webgl' to ol.webgl.CONTEXT_IDS_ (IE11 support)
2013-09-23 05:55:17 -07:00
Frédéric Junod
29165ddc1f Merge pull request #1050 from fredj/social-links.js
Remove social-links.js script from examples and doc
2013-09-23 05:38:55 -07:00
Frederic Junod
d061994842 Remove webgl-experimental from ol.webgl.CONTEXT_IDS_ 2013-09-23 14:18:30 +02:00
Frederic Junod
88f938ea47 Remove social-links.js script from examples and doc 2013-09-23 13:58:12 +02:00
Frederic Junod
c7b5bd0b6d Add 'experimental-webgl' to ol.webgl.CONTEXT_IDS_ (IE11 support)
see: http://msdn.microsoft.com/en-us/library/ie/ff975238(v=vs.85).aspx
2013-09-23 09:38:45 +02:00
Tim Schaub
6276e633de Merge pull request #832 from fredj/feature_getset_id
Rename setFeatureId to setId (same for get).
2013-09-20 10:31:37 -07:00
Tim Schaub
5d04d74c92 Merge pull request #1045 from tschaub/advanced
Use "advanced" for the production loader.
2013-09-20 10:13:57 -07:00
Tim Schaub
6c2e5f6eca The production loader has special logic for advanced and raw modes 2013-09-20 15:29:29 +01:00
Tom Payne
bd81e6c9a9 Remove source load events 2013-09-20 13:37:40 +01:00
Tom Payne
56e352b7aa Dispatch change events instead of load events when sources change 2013-09-20 13:37:31 +01:00
Tom Payne
8a0809c673 Merge pull request #1028 from twpayne/remove-extent-tostring
Remove ol.extent.toString
2013-09-20 05:10:02 -07:00
Tom Payne
fd28d56c45 Merge pull request #1046 from twpayne/url-capitalization
Use URL instead of Url or url in comments and strings
2013-09-20 05:09:44 -07:00
Tom Payne
abaa220314 Use URL instead of Url or url in comments and strings 2013-09-20 12:28:04 +01:00
Tom Payne
f24c9a807f Merge pull request #1042 from fredj/esri_attributions
Add missing source attribution in xyz-esri example
2013-09-20 04:17:41 -07:00
Tom Payne
aa44547565 Remove ol.extent.toString 2013-09-20 12:14:41 +01:00
Marc Jansen
6a39d11222 Merge pull request #1034 from marcjansen/build-help
Add a help-target to build.py.
2013-09-20 03:47:21 -07:00
Tom Payne
a8d9dad552 Merge pull request #1036 from twpayne/async-tile-load
Asynchronos tile URL calculation
2013-09-20 02:23:09 -07:00
Tom Payne
f3336532dd Merge pull request #1043 from twpayne/remove-xyz-seturl-example
Remove xyz-seturl example
2013-09-20 01:59:33 -07:00
Tom Payne
265c5f1a11 Remove xyz-seturl example 2013-09-20 09:14:13 +01:00
Tim Schaub
387f60f1e5 Merge pull request #1041 from tschaub/antisocial
Don't display the social links on the example index.  Don't display the "mode" selection when running the development server.  Set the mode in the query string when the selection changes.
2013-09-19 16:44:09 -07:00
Bruno Binet
8ccc997ecd Merge pull request #1032 from bbinet/minmax_resolution
Add support for layer min/maxResolution
2013-09-19 09:11:16 -07:00
Frederic Junod
5c15c18f1a Remove xyz-seturl example 2013-09-19 17:23:25 +02:00
Bruno Binet
d1e9dd964b Be consistent with constant names 2013-09-19 16:59:38 +02:00
Bruno Binet
690ed1ed8e Improve doc for minResolution and maxResolution 2013-09-19 16:59:38 +02:00
Bruno Binet
97556f234f Add min-max-resolution example
Show/hide layers depending on current map resolution.
2013-09-19 16:59:38 +02:00
Bruno Binet
fa484cca8c Fix tests for min/maxResolution 2013-09-19 16:59:38 +02:00
Bruno Binet
cf4799e87c Add support for layer min/maxResolution 2013-09-19 16:59:38 +02:00
Tim Schaub
ea66ddf3a4 Don't show compiled option when using node dev server 2013-09-19 15:20:11 +01:00
Tim Schaub
66e1b01c2d Use form.navbar-form for input elements in a navbar 2013-09-19 15:19:20 +01:00
Tim Schaub
ac4b031353 Remove social links from example index 2013-09-19 15:17:02 +01:00
Frederic Junod
e97b2d35d4 Add missing source attribution in xyz-esri example 2013-09-19 16:07:11 +02:00
Frédéric Junod
9a8269f780 Merge pull request #1040 from fredj/goog_global
Use goog.global instead of window
2013-09-19 06:46:34 -07:00
Marc Jansen
346fe30a1b Merge pull request #1038 from marcjansen/example-compression-selection
examples: remove social links / include tool to switch compression
2013-09-19 06:10:53 -07:00
Marc Jansen
9e0b560cf6 Remove now obsolete file social-link.js. 2013-09-19 15:05:31 +02:00
Frederic Junod
4666f64673 Use goog.global instead of window
See f1f319d6ad
2013-09-19 15:03:17 +02:00
Frédéric Junod
58693be9e6 Merge pull request #1039 from fredj/perf
Only reset canvas transformation matrix when it has changed
2013-09-19 02:37:57 -07:00
Frederic Junod
9906497cb8 Only reset canvas transformation matrix when it has changed 2013-09-18 19:12:36 +02:00
Frédéric Junod
8a97535d93 Merge pull request #1037 from fredj/perf
ol.TileCoord.getKeyZXY optimization
2013-09-18 09:16:28 -07:00
Marc Jansen
62a7505d2b Mention default target 'build' in the help output. 2013-09-18 17:49:17 +02:00
Marc Jansen
6d40b170d6 Examples: Remove social links. 2013-09-18 17:39:52 +02:00
Marc Jansen
886e38a69b Examples: Add switch compilation level tool. 2013-09-18 17:26:46 +02:00
Frederic Junod
e30d0fefb0 Concatenate keys instead of joining it
For performances reasons, see http://jsperf.com/array-join-string-concat
2013-09-18 17:19:50 +02:00
Frederic Junod
42f7288d73 Assign function instead of calling it 2013-09-18 17:19:50 +02:00
Tom Payne
0e4c5d10c5 Merge pull request #1024 from pagameba/doc-interactions
Documentation for Interactions
2013-09-18 08:05:46 -07:00
Tom Payne
293ccfda8a Export ol.ImageTile#getImage 2013-09-18 15:37:45 +01:00
Tom Payne
004898e462 Export ol.TileCoord#getZXY 2013-09-18 15:37:45 +01:00
Tom Payne
8ea6a50f03 Add ol.TileCoord#getZXY 2013-09-18 15:37:45 +01:00
Tom Payne
9397720c8e Export ol.Tile#getTileCoord 2013-09-18 15:33:54 +01:00
Tom Payne
f3d5a5c37b Add tileLoadFunction option to ol.source.XYZ 2013-09-18 13:40:07 +01:00
Tom Payne
6896e920f9 Allow tile load function to be overridden 2013-09-18 13:39:42 +01:00
Tom Payne
0085623eee Add ol.TileLoadFunctionType 2013-09-18 13:37:12 +01:00
Marc Jansen
9deffc9d87 Merge pull request #1035 from marcjansen/jsdoc
Fix spelling on API-doc index page.
2013-09-18 04:50:25 -07:00
Marc Jansen
67f2e57635 Fix spelling on API-doc index page. 2013-09-18 13:48:47 +02:00
Marc Jansen
b8a7c5ee9e Add a help-target to build.py. 2013-09-18 13:24:02 +02:00
Tom Payne
578e83d80a Merge pull request #1033 from twpayne/no-coffee
Remove dependency on CoffeeScript
2013-09-18 03:39:10 -07:00
Tom Payne
fef6f5c0a5 Use compiled mocha-phantomjs.js instead of CoffeScript 2013-09-18 11:25:55 +01:00
Tom Payne
98ba6b63a4 Add compiled version of mocha-phantomjs.js 2013-09-18 11:25:28 +01:00
Frederic Junod
764aacb568 Rename {get|set}FeatureId to {get|set}Id 2013-09-17 12:50:56 +02:00
Frédéric Junod
c0486f6f65 Merge pull request #1031 from fredj/unused_requires
Remove unused goog.requires
2013-09-17 01:40:56 -07:00
Frederic Junod
7de0e79c62 Remove unused goog.requires 2013-09-17 09:41:22 +02:00
Éric Lemoine
ddc8fbcff7 Merge pull request #1001 from elemoine/keyhandler
Don't register for keyboard events on the document
2013-09-16 13:59:42 -07:00
Éric Lemoine
aa5214d3a1 Add an "accessible" example 2013-09-16 22:51:57 +02:00
Éric Lemoine
b81a4e875b Remove noModifierKeys condition for keyboad zoom
Refs #917. With the key hanler now attached to the map target by default we can remove the noModifierKeys condition for the keyboard zoom interaction. This will prevent the back button shortcut (alt + <back arrow>) to work, but it's ok, the map is focused so it's the one with the highest priority.
2013-09-16 22:51:44 +02:00
Éric Lemoine
f863ee9e37 Attach key handler to map target 2013-09-16 22:43:26 +02:00
Éric Lemoine
4abdac2abf Merge pull request #1030 from elemoine/touches
Exclude tiles that touches the source extent
2013-09-16 10:00:11 -07:00
Éric Lemoine
4990c797d1 WMTS tiles touching the extent are excluded 2013-09-16 15:53:13 +02:00
Éric Lemoine
832be21c0f WMS tiles touching the extent are excluded 2013-09-16 15:52:52 +02:00
Éric Lemoine
70c66d4cf1 Add ol.extent.touches 2013-09-16 15:51:12 +02:00
Tim Schaub
f54a54a432 Merge pull request #1029 from tschaub/tilejson-extent
Use proper extent structure for TileJSON.
2013-09-16 06:47:29 -07:00
Tim Schaub
7caaed4218 Merge pull request #1017 from tschaub/provide-objects-only
Never use goog.provide with primitives (especially with falsely values).
2013-09-16 06:46:26 -07:00
Tim Schaub
8b25e2a63e Merge pull request #955 from tschaub/proj
Move projection to ol.proj namespace and limit exports.
2013-09-16 06:42:38 -07:00
Tim Schaub
97d614285e New extent structure for TileJSON
The change in e806f51b3d neglected to correct the extent handling for the TileJSON source.
2013-09-15 22:22:20 -06:00
Tim Schaub
e1bafd2f6e Export ol.proj.Projection.prototype.getExtent for use in WMTS example 2013-09-15 22:04:51 -06:00
Tim Schaub
9a2dac7182 Limit ol.proj exports 2013-09-15 22:04:51 -06:00
Tim Schaub
b524de417b Rename ol.ProjectionUnits to ol.proj.Units 2013-09-15 22:04:51 -06:00
Tim Schaub
9a29c0e22d Rename ol.ProjectionLike to ol.proj.ProjectionLike 2013-09-15 22:01:56 -06:00
Tim Schaub
3b20cc7b53 Rename ol.Projection to ol.proj.Projection 2013-09-15 22:01:56 -06:00
Tim Schaub
b192335e56 Merge pull request #1027 from tschaub/closure-util
Use the closure-util package.  Documentation will come when this is a more complete solution.  See #1027 for basic usage instructions.
2013-09-15 15:36:13 -07:00
Tim Schaub
591f022e9a Merge pull request #956 from tschaub/extent
Change structure for ol.Extent.  This makes extent use `[minX, minY, maxX, maxY]` order.
2013-09-15 15:28:35 -07:00
Tim Schaub
13c84b0523 Export ol.Geolocation.SUPPORTED and provide ol.Geolocation 2013-09-15 15:54:41 -06:00
Tim Schaub
589c6f8a0b Export ol.DeviceOrientation.SUPPORTED and provide ol.DeviceOrientation 2013-09-15 15:54:41 -06:00
Tim Schaub
210b489a6c Provide ol.renderer.dom instead of ol.renderer.dom.SUPPORTED 2013-09-15 15:54:41 -06:00
Tim Schaub
a2c70dba85 Provide ol.canvas instead of ol.canvas.SUPPORTED
This is not currently used outside the library, so it is not exported.
2013-09-15 15:54:01 -06:00
Tim Schaub
54738e29eb Export ol.webgl.SUPPORTED and provide ol.webgl 2013-09-15 15:51:17 -06:00
Éric Lemoine
bbe4417be5 Merge pull request #1025 from elemoine/notify
Remove ol.Object#bindTo noNotify option
2013-09-15 14:28:58 -07:00
Tim Schaub
f1f319d6ad Preemptively set global properties
As mentioned in the comments, calling goog.getUid and goog.events.listen on the global object (as done in map.js and deviceorientation.js) set global properties.  To let Mocha check for other leaks, we preemptively set these properties.
2013-09-15 14:22:41 -06:00
Tim Schaub
13b55b04a8 Unnecessary spy 2013-09-15 10:41:44 -06:00
Éric Lemoine
009172951c WebGL image layer tests require the common proj 2013-09-15 10:37:22 -06:00
Éric Lemoine
ecd82297a0 Better setup/teardown for ol.proj tests 2013-09-15 10:37:01 -06:00
Tim Schaub
e806f51b3d Changing extent structure back to single array: [minX, minY, maxX, maxY]
This means we'll have to have a new structure and new methods for 3D envelopes.
2013-09-15 00:31:32 -06:00
Tim Schaub
de0e8aeced New extent structure in examples 2013-09-14 21:14:55 -06:00
Tim Schaub
e84e0e1233 WebGL renderer updates for new extent structure 2013-09-14 21:14:55 -06:00
Tim Schaub
1a7e99f67e DOM renderer updates for new extent structure 2013-09-14 21:13:47 -06:00
Tim Schaub
e575df6df0 Canvas renderer updates for new extent structure 2013-09-14 21:13:47 -06:00
Tim Schaub
3faa035de3 Geom2 package working with new extent structure 2013-09-14 21:13:47 -06:00
Tim Schaub
e6b395e2ee View support for new extent structure 2013-09-14 21:13:46 -06:00
Tim Schaub
511e5ad5e8 Vector layer updates for new extent structure 2013-09-14 21:13:46 -06:00
Tim Schaub
75cb19d7e1 Source updates for new extent structure 2013-09-14 21:13:46 -06:00
Tim Schaub
a670b7979c Tile grid working with new extent structure 2013-09-14 21:11:53 -06:00
Tim Schaub
65863614bb GeoJSON and TopoJSON tests for new extent structure 2013-09-14 21:11:53 -06:00
Tim Schaub
0eb4cd6dd4 Proj support for new extent structure 2013-09-14 21:11:53 -06:00
Tim Schaub
7d00159bff WMS capabilities parsing with new extent structure 2013-09-14 21:11:53 -06:00
Tim Schaub
5d18da4035 Filter encoding with new extent structure 2013-09-14 21:11:53 -06:00
Tim Schaub
3ea6041714 GML parsing with new extent structure 2013-09-14 21:11:53 -06:00
Tim Schaub
9226472380 Update geom package to use new extent structure 2013-09-14 21:11:52 -06:00
Tim Schaub
208d86b5bf Arg order for extent function in expressions 2013-09-14 21:11:52 -06:00
Tim Schaub
6955499534 Update rtree to use new extent structure 2013-09-14 21:11:52 -06:00
Tim Schaub
60bf396e25 Update geom package to use new extent structure 2013-09-14 21:11:52 -06:00
Tim Schaub
dbccb8b231 Function for cloning extents 2013-09-14 21:11:52 -06:00
Tim Schaub
fcf00dea8b New structure for extent: [minCoord, maxCoord] 2013-09-14 21:11:52 -06:00
Tim Schaub
3dc2b69615 Test conventions
* use `be` or `equal` for strict equality tests
 * use `be.a` for `instanceof` checks
 * use dot instead of bracket notation
2013-09-14 18:10:13 -06:00
Tim Schaub
377da9349e Don't use private date_ property (see #1026)
It looks like at some point the Closure Library exposed a public `date` property for this same purpose.  The version of the Closure Library that comes with the closure-util package uses this property.  At some point later, I'll demonstrate how we can control which version of the library we depend on.
2013-09-14 18:10:12 -06:00
Tim Schaub
75fffd1f47 Making use of the closure-util package
This provides some initial development utilities for people using Node.

Instructions for installing:

    npm install

After pulling down the dependencies, you can start a developement server that provides the libraries (ol and Closure Library) in debug mode (not minified/compiled).  Run the dev server with the following:

    npm start

Currently, the example index page needs to be built with `build.py`.  After building that, you should be able to browse all static files, view the examples and run the tests.
2013-09-14 18:10:12 -06:00
Paul Spencer
3a91aa3d36 fix lint issue 2013-09-13 11:23:06 -04:00
Paul Spencer
3ab50facc7 Label the link to ol.interaction as ol.interaction.Interaction
The documentation is really talking about instance of Interaction, not the namespace.  This is more clear for users.
2013-09-13 11:23:06 -04:00
Paul Spencer
28ee9bcd9b remove export for conditionType as it breaks the build to have it in there. 2013-09-13 11:23:06 -04:00
Paul Spencer
d7eee91195 Add exports for interactions. 2013-09-13 11:23:05 -04:00
Bart van den Eijnden
26b46d248b Merge pull request #1022 from bartvde/parser-api
Parser api changes (remove read/write for feature parsers and add parser to the filenames) (r=@elemoine)
2013-09-13 08:01:57 -07:00
Éric Lemoine
8301b01395 Remove ol.Object#bindTo noNotify option 2013-09-13 16:46:49 +02:00
Frédéric Junod
2ce1c29c4d Merge pull request #995 from fredj/export-map_example
Better user notification if a.download attribute is not supported
2013-09-13 05:11:15 -07:00
Bart van den Eijnden
d8ae3c161c rename parser files to have parser as part of their filename, so they follow the ol3 conventions 2013-09-13 11:05:00 +02:00
Bart van den Eijnden
99f2d0e3d5 do not export read and write for feature parsers 2013-09-13 10:35:57 +02:00
Éric Lemoine
60623e3061 Merge pull request #1020 from elemoine/condition
Change the interaction condition signature
2013-09-12 09:53:05 -07:00
Éric Lemoine
ba3f97d50a Change the interaction condition signature 2013-09-12 18:08:01 +02:00
Tim Schaub
daddc61dc6 Merge pull request #1015 from tschaub/export
Export ol.source.XYZ.prototype.setUrl.
2013-09-11 12:14:07 -07:00
Tom Payne
d1782dc4bb Merge pull request #1012 from twpayne/more-renames
More renames
2013-09-11 11:33:40 -07:00
Tim Schaub
c029e8770c Used in example but not exported (see #1011) 2013-09-11 12:21:27 -06:00
Éric Lemoine
364e31fdb1 Merge pull request #1013 from elemoine/tileimage
Even more renames
2013-09-11 09:28:42 -07:00
Éric Lemoine
78a3ac46dd Rename options type for ol.source.TileImage 2013-09-11 18:28:03 +02:00
Éric Lemoine
7db1b4b337 Rename file for ol.source.TileImage 2013-09-11 18:28:03 +02:00
Tom Payne
b2da95de4b Merge pull request #1011 from twpayne/set-url
Add ol.source.XYZ#setUrl
2013-09-11 09:17:07 -07:00
Tom Payne
d0216c80cd Rename ol.source.StaticImage to ol.source.ImageStatic 2013-09-11 17:48:49 +02:00
Tom Payne
4542c689e8 Add FIXME about avoiding tile cache clears 2013-09-11 17:12:58 +02:00
Tom Payne
ae6ecb7103 Add XYZ set URL example 2013-09-11 17:12:57 +02:00
Tom Payne
1ef4c379b2 Add ol.source.XYZ#setUrl and friends 2013-09-11 17:12:57 +02:00
Tom Payne
4ef6254c13 Add ol.source.TileImage#setTileUrlFunction 2013-09-11 17:12:57 +02:00
Tom Payne
184c2e52d5 Factor out ol.TileCoordTransformType 2013-09-11 17:12:57 +02:00
Tim Schaub
d57b4844d1 Merge pull request #979 from tschaub/xyz
Export ol.source.XYZ.
2013-09-11 07:55:57 -07:00
Tom Payne
a21ee997ba Rename ol.source.SingleImageWMS to ol.source.ImageWMS 2013-09-11 16:38:01 +02:00
Tim Schaub
1ee2da76af Add example using XYZ tiles from Esri 2013-09-11 00:41:25 -06:00
Tim Schaub
cf37566606 Remove unused require
This was unused before 03f7bb66374b162aab26289b761e7918b79c0ca7 as well.  It would be interesting to see how many other unused requires there are (types that are only referenced in comments but not used in code).
2013-09-11 00:17:02 -06:00
Tim Schaub
843334627e Moving maxZoom default to XYZ source.
No reason this convenience should be restricted to the OSM layer.
2013-09-11 00:17:01 -06:00
Tim Schaub
8d7d1412c9 Adding XYZOptions to objectliterals.jsdoc
I remain uncertain about when to use the @exportClass annotation and when to use the @exportSymbol.  osmsource.exports seems to get away with simply @exportSymbol, but many other sources use @exportProperty.
2013-09-11 00:17:01 -06:00
Tim Schaub
0df6cebff9 minZoom is not a supported property of ol.tilegrid.XYZOptions 2013-09-11 00:17:01 -06:00
Tim Schaub
a6fb72c240 Export XYZ source 2013-09-11 00:17:01 -06:00
Tim Schaub
32d35386ba Merge pull request #1008 from tschaub/code-gen
Non-greedy pattern matching for types.
2013-09-10 23:13:55 -07:00
Tim Schaub
4d71d2b1e8 Less greedy 2013-09-10 23:24:43 -06:00
Tim Schaub
919e2d39f1 Merge pull request #1009 from tschaub/tile
Use new name for tile layer in moveend example.
2013-09-10 22:23:20 -07:00
Tim Schaub
d9a2c66909 New name for tile layer 2013-09-10 21:59:08 -06:00
Tim Schaub
c845d85a31 Merge pull request #982 from tschaub/moveend
Fire a moveend event when the view settles.
2013-09-10 16:36:31 -07:00
Frédéric Junod
643e4592c5 Merge pull request #1007 from fredj/objectliterals
Fix ol.animation.BounceOptions apidoc (default easing function)
2013-09-10 09:18:39 -07:00
Frederic Junod
adf8422391 Fix ol.animation.BounceOptions apidoc (default easing function) 2013-09-10 18:16:33 +02:00
Frédéric Junod
398c527e1a Merge pull request #1006 from fredj/WMTSOptions
Add missing 'version' property to ol.source.WMTSOptions
2013-09-10 08:16:02 -07:00
Tim Schaub
ba7e0e7da3 Merge pull request #973 from tschaub/default-style
Rework default style handling.
2013-09-10 07:58:44 -07:00
Frederic Junod
25aa1688e5 Add 'version' property to ol.source.WMTSOptions 2013-09-10 16:40:36 +02:00
Frédéric Junod
2e4ffb3591 Merge pull request #1003 from fredj/extent
Minor coding style and simplification for ol.Extent
2013-09-10 07:06:31 -07:00
Tom Payne
b4c2cd0eb2 Merge pull request #1004 from twpayne/tiled-wms-rename
Rename tiledwmssource.exports to tilewmssource.exports
2013-09-10 06:54:28 -07:00
Tom Payne
ea653ceec8 Rename tiledwmssource.exports to tilewmssource.exports 2013-09-10 15:53:14 +02:00
Frederic Junod
f1bce39fa9 Rename optional param to opt_extent 2013-09-10 14:41:12 +02:00
Frederic Junod
d34a63944b Use ol.extent.createOrUpdate function 2013-09-10 14:33:12 +02:00
Éric Lemoine
48b2ece5a1 Merge pull request #1002 from elemoine/tilewms
Rename tiledwmssource.js to tilewmssource.js
2013-09-10 04:43:22 -07:00
Éric Lemoine
762fed6f8d Change Tiled to Tile in a comment 2013-09-10 09:41:38 +02:00
Éric Lemoine
8a7e13a50c Rename tiledwmssource.js to tilewmssource.js 2013-09-10 09:41:38 +02:00
Éric Lemoine
b92f5efbe8 Merge pull request #994 from elemoine/update-params
Allow changing parameters/dimensions for WMS and WMTS
2013-09-10 00:40:29 -07:00
Frédéric Junod
14d550de0f Merge pull request #997 from fredj/apidoc
More api doc content
2013-09-09 08:29:58 -07:00
Éric Lemoine
31cc1f5541 More robust coordinate keys for WMTS and TiledWMS
This uses more robust ZXY coordinate keys, and caches the key to avoid creating garbage each time getKeyZXY is called.
2013-09-09 17:01:38 +02:00
Éric Lemoine
0823ee4ad3 Add getDimensions/updateDimensions to WMTS 2013-09-09 17:00:05 +02:00
Olivier Terral
e16de02cb2 Add getParams/updateParams to TiledWMS 2013-09-09 17:00:05 +02:00
Tom Payne
8663a5027b Handle tile source revisions in DOM tile layer renderer 2013-09-09 17:00:05 +02:00
Tom Payne
00bdeb6bcf Don't use rendered framebuffer when source revision has changed 2013-09-09 17:00:05 +02:00
Tom Payne
cd0186dde5 Store revision number in sources and update it on changes 2013-09-09 17:00:05 +02:00
Tom Payne
4f27dd35d8 Allow tile cache key calculation to be overridden 2013-09-09 17:00:05 +02:00
Olivier Terral
9fb4514b4e Add getParams/updateParams to SingleImageWMS 2013-09-09 16:50:10 +02:00
Tom Payne
c82aeb586f Merge pull request #998 from twpayne/consistent-names
Consistent names
2013-09-09 07:48:42 -07:00
Tom Payne
bcb4813615 Rename ol.layer.VectorLayer2 to ol.layer.Vector2 2013-09-09 16:21:04 +02:00
Tom Payne
d1659b8e69 Rename ol.source.VectorSource2 to ol.source.Vector2 2013-09-09 15:18:31 +02:00
Tom Payne
23505799b6 Rename ol.test.source.MockTileSource to ol.test.source.TileMock 2013-09-09 15:17:36 +02:00
Tom Payne
8f8f94e697 Rename ol.layer.TileLayer to ol.layer.Tile 2013-09-09 15:14:45 +02:00
Tom Payne
8f6f5e42c6 Rename ol.source.TiledWMS to ol.source.TileWMS 2013-09-09 15:12:38 +02:00
Tom Payne
0235caa1e0 Rename ol.source.ImageTileSource to ol.source.TileImage 2013-09-09 15:09:25 +02:00
Tom Payne
bf1d804a5e Rename ol.source.DebugTileSource to ol.source.TileDebug 2013-09-09 15:07:05 +02:00
Frédéric Junod
7ffd2bcaa1 Merge pull request #993 from pagameba/deviceorientation-ios
Detect iOS compass heading
2013-09-09 05:57:34 -07:00
Tom Payne
71a396a189 Rename ol.source.TileSource to ol.source.Tile 2013-09-09 14:40:23 +02:00
Tom Payne
7d5a84ce8a Rename ol.layer.ImageLayer to ol.layer.Image 2013-09-09 14:36:40 +02:00
Tom Payne
5967f96047 Rename ol.source.ImageSource to ol.source.Image 2013-09-09 14:33:12 +02:00
Tom Payne
fc2975f346 Rename ol.layer.LayerGroup to ol.layer.Group 2013-09-09 14:23:16 +02:00
Tom Payne
e428b66ab4 Rename ol.layer.LayerBase to ol.layer.Base 2013-09-09 14:18:24 +02:00
Paul Spencer
4117a5df2d check iOS compass calibration via webkitCompassAccuracy
Ensure that webkitCompassAccuracy is not -1 as this indicates that the
compass has not been calibrated and its values cannot be trusted.
2013-09-09 08:05:37 -04:00
Paul Spencer
f56e01104b Merge pull request #1 from fredj/deviceorientation-ios
Rename externs/html5.js to externs/closure-compiler.js
2013-09-09 05:00:43 -07:00
Frederic Junod
03e2f1a903 Add links to Proj4js and CONTRIBUTING.md 2013-09-09 12:07:16 +02:00
Frederic Junod
20916c75bb Add more api doc 2013-09-09 12:07:03 +02:00
Frédéric Junod
cf7b40268b Merge pull request #988 from fredj/icon_example
IE10 compatibility: no tooltip on icon.html example
2013-09-09 01:58:22 -07:00
Frederic Junod
0efe92ab4c Fix popover in icon example 2013-09-09 10:23:28 +02:00
Frédéric Junod
f123f5e57b Merge pull request #986 from fredj/rotate-north_example
IE10 CSS compatibility: custom-controls example
2013-09-09 01:09:17 -07:00
Frederic Junod
77c7d02873 Better user notification if a.download attribute is not supported 2013-09-09 09:55:30 +02:00
Frederic Junod
0b82cb8050 Fix rotate-north control display on touch devices 2013-09-09 09:19:45 +02:00
Frederic Junod
4bae5e755a Rename externs/html5.js to externs/closure-compiler.js
Add add a fix for issues:
  * https://code.google.com/p/closure-compiler/issues/detail?id=1084
  * https://code.google.com/p/closure-compiler/issues/detail?id=1088
2013-09-08 16:53:28 +02:00
Éric Lemoine
5861f6a148 Merge pull request #992 from elemoine/urlfunction
Stricter with types
2013-09-07 22:44:49 -07:00
Paul Spencer
69872c99d2 Detect iOS compass heading
iOS webkit does not provide an absolute alpha, instead it provides
webkitCompassHeading.
2013-09-07 21:48:49 -04:00
Éric Lemoine
02a285665b Remove unneeded FIXME 2013-09-07 23:50:15 +02:00
Éric Lemoine
e01344f0da Be stricter with types in WMTS 2013-09-07 23:50:01 +02:00
Éric Lemoine
3036ee01ad Be stricter with types in BingMaps 2013-09-07 23:49:37 +02:00
Éric Lemoine
1e308e34f9 Stricter type def for ol.TileUrlFunctionType 2013-09-07 23:32:38 +02:00
Éric Lemoine
30acfc20c3 Stricter type def for ol.ImageUrlFunctionType 2013-09-07 23:32:30 +02:00
Tim Schaub
13a937fad7 Lazily create default style 2013-09-07 09:19:11 -06:00
Tim Schaub
cc11efa420 Merge pull request #958 from tschaub/requires
Make the `build/check-requires-timestamp` target work with namespace provides in cases where the namespace provide isn't required by a module that provides constructors or other objects within that namespace.  This may seem a bit odd, but if I want to provide `foo.bar.Bam` it isn't strictly necessary that my module require `foo.bar`.

To make this build target work, we stick with the following convention (used in the Closure Library):

 * If you want to make a function available via `goog.require`, use `goog.provide` to provide the object of which the function is a member (e.g. to make the `foo.bar.baz` function available, use `goog.provide('foo.bar')`).
2013-09-07 08:13:06 -07:00
Frédéric Junod
a177cf159b Merge pull request #990 from fredj/examples_no_webgl
Better user notification if WebGL is not supported
2013-09-06 14:35:54 -07:00
Frederic Junod
aa823e2b28 Better user notification if WebGL is not supported 2013-09-06 22:36:39 +02:00
Frederic Junod
393566155d Export ol.*.SUPPORTED symbols 2013-09-06 22:34:32 +02:00
Frédéric Junod
48bf1702d4 Merge pull request #981 from fredj/side-by-side
Side-by-side example broken
2013-09-06 12:51:43 -07:00
Frederic Junod
169e66835d Bind to layergroup instead of layers 2013-09-06 18:17:12 +02:00
Éric Lemoine
91b6258f13 Merge pull request #985 from ebelo/patch-1
add webgl only info
2013-09-06 02:09:03 -07:00
Emmanuel Belo
dbfa1726d5 Add "WebGL only" note to bind-input example 2013-09-06 11:05:43 +02:00
Éric Lemoine
bebe39102c Merge pull request #978 from pagameba/doc-deviceorientation
More comprehensive docs for ol.DeviceOrientation
2013-09-06 01:39:17 -07:00
Tim Schaub
6617969d36 Example using the moveend event 2013-09-05 15:36:03 -06:00
Tim Schaub
50ed564bf6 Fire a moveend event after rendering
The moveend event is fired after rendering if there is no pending animation, current interaction, or other pre-render functions in the queue.
2013-09-05 15:35:53 -06:00
Paul Spencer
a0ca05d18e Use markdown format for inline links 2013-09-05 09:01:49 -04:00
Paul Spencer
74158e52be Update based on comments
This removes @class and fixes the return type pattern to match the
project standard.  There are a couple of minor changes to the text as
well.
2013-09-05 07:57:16 -04:00
Paul Spencer
f9ba90f4ca More comprehensive docs for ol.DeviceOrientation
Adding an extended class description of DeviceOrientation along with
some additional details in the property accessors.
2013-09-04 21:28:59 -04:00
Tim Schaub
15609f36ad Unused imports 2013-09-04 13:56:03 -06:00
Tim Schaub
2ac3d4d2cd Export namespaces instead of functions in generated code 2013-09-04 13:56:02 -06:00
Tim Schaub
8b7a0a060c Export ol.interaction namespace instead of the defaults function 2013-09-04 13:55:54 -06:00
Tim Schaub
716b7b0cec Export ol.control namespace instead of ol.control.defaults function 2013-09-04 13:55:54 -06:00
Tim Schaub
7d510310ed Removing unnecessary require 2013-09-04 13:55:54 -06:00
Tim Schaub
36ea408ed2 Handle namespace provides
It looks like the convention in the Closure Library is to export either namespaces (starting with lowercase), constructors (starting with uppercase), or enums (all uppercase, one instance).  I don't see any places where the Closure Library exports a function that is not a constructor.

Following the same convention, when we export `ol.foo`, it means we are making available function properties of the `ol.foo` object that start with a lowercase letter.
2013-09-04 13:55:54 -06:00
Tim Schaub
fa1601f04f Export namespaces or constructors but not functions 2013-09-04 13:55:54 -06:00
Tim Schaub
8ca3f13bd2 Instead of providing animation functions, provide the namespace
This follows the convention in the Closure Library of providing either namespace objects (where the property starts with a lowercase letter), constructors (where the property starts with an uppercase letter), or enums (all uppercase properties, only one instance of this in the closure library).
2013-09-04 13:55:36 -06:00
Frédéric Junod
cd11ebbc8a Merge pull request #976 from fredj/focus_touchend
Reset the map focus on 'mouseout' and 'touchend'
2013-09-04 07:06:22 -07:00
Frederic Junod
ae314916cf Reset the map focus on 'mouseout' and 'touchend' 2013-09-04 13:21:06 +02:00
Éric Lemoine
69107621bf Merge pull request #975 from elemoine/set-target
Remove ol.Map#target_
2013-09-04 04:11:49 -07:00
Éric Lemoine
fe1f10e797 No need for ol.Map#target_ 2013-09-04 12:08:15 +02:00
Tom Payne
9c28d0c112 Merge pull request #971 from twpayne/set-target
Cleaner ol.Map#setTarget handling
2013-09-04 02:32:02 -07:00
Frédéric Junod
25b99d5997 Merge pull request #925 from fredj/ms_pointer_events
MSPointer events fixes
2013-09-03 22:34:14 -07:00
Tim Schaub
a34f5d110c Merge pull request #949 from tschaub/feature-exports
Limited feature exports.
2013-09-03 16:17:32 -07:00
Tim Schaub
bd4f2bf1cb Merge pull request #972 from tschaub/before-render
Rename addPreRenderFunction to beforeRender and remove the plural.
2013-09-03 16:16:48 -07:00
ahocevar
94942e636c Merge pull request #969 from ahocevar/master
WMS getFeatureInfoOptions ignored in minified build
2013-09-03 12:57:09 -07:00
ahocevar
3bce782943 Making sure that options are not renamed 2013-09-03 20:02:49 +02:00
Tim Schaub
8e2b065ece Exporting set and setGeometry
Since the set method is exported on ol.Object, we need to export the method on the feature prototype to get correct behavior.
2013-09-03 11:54:58 -06:00
Tim Schaub
dc76b81780 Rename addPreRenderFunction to beforeRender and remove the plural 2013-09-03 10:57:31 -06:00
Tom Payne
aafd7e91cc Update teleport example to use string target 2013-09-03 15:26:19 +02:00
Tom Payne
83a9724270 Update ol.control.FullScreen to handle string targets 2013-09-03 15:26:19 +02:00
Tom Payne
53223be376 Perform ol.Map#setTarget string-to-Element conversion in event handler
With this change, ol.Map#setTarget no longer changes the type of the
value passed to it.
2013-09-03 15:26:19 +02:00
Éric Lemoine
e83e0e1374 Merge pull request #970 from pagameba/doc-GeolocationPositionOptions
Link to HTML5 Geolocation PositionOptions docs
2013-09-03 06:05:35 -07:00
Paul Spencer
fa48fc1905 Link to HTML5 Geolocation PositionOptions docs 2013-09-03 07:54:20 -04:00
Frederic Junod
f994c4f8a1 Only dispatch touchmove events after a touchstart 2013-09-03 09:35:30 +02:00
Frederic Junod
77f6b4ff59 Only consider touch events to compute ol.interaction.Touch.targetTouches 2013-09-03 09:35:30 +02:00
Frederic Junod
2b5e0c2c31 Change touchmove and touchstart listened element to 'document'
As for the mouse events, this allows to drag, zoom or rotate the map
with pointer(s) who moved outside of the viewport.
2013-09-03 09:35:30 +02:00
Tim Schaub
85509e1a40 Merge pull request #957 from tschaub/use-coordinate
Use ol.Coordinate instead of ol.geom.Vertex.
2013-09-02 15:53:29 -07:00
Éric Lemoine
e826e83530 Merge pull request #940 from elemoine/getarray
Export ol.Collection#getArray
2013-09-02 09:24:22 -07:00
Éric Lemoine
d68f411e82 Add doc for ol.Collection#getArray 2013-09-02 18:24:07 +02:00
Frédéric Junod
4483725185 Merge pull request #933 from fredj/focus
Move focus_ position update into handleMapBrowserEvent
2013-09-02 08:16:55 -07:00
Éric Lemoine
6a66e749f6 Merge pull request #953 from elemoine/overlay
Make ol.Overlay consistent with ol.control.Control
2013-09-02 07:03:11 -07:00
ahocevar
39b4da5ca2 Merge pull request #945 from ahocevar/select-followup
Follow-up improvements for #897
2013-09-02 06:47:01 -07:00
Éric Lemoine
09d9f28fe1 Merge pull request #963 from elemoine/getcontrols
Export ol.Map.prototype.getControls
2013-09-02 05:55:51 -07:00
Frédéric Junod
7b3a95288e Merge pull request #966 from fredj/geolocation_example
Reduce the width of the div to better see the error messages
2013-09-02 05:53:20 -07:00
Tim Schaub
12839f6f50 Merge pull request #946 from tschaub/control-options
Remove map from ControlOptions.
2013-09-02 05:40:45 -07:00
Frederic Junod
19f8ba75bc Reduce the width of the div to better see the error messages 2013-09-02 14:40:34 +02:00
Éric Lemoine
52c58721e1 export ol.Map.prototype.getControls 2013-09-02 14:17:23 +02:00
Éric Lemoine
7e25ecb3dc Remove map from OverlayOptions 2013-09-02 14:15:11 +02:00
Éric Lemoine
dd4b2e3e88 Add overlay-related methods to ol.Map 2013-09-02 14:12:54 +02:00
Éric Lemoine
3885815c1d Merge pull request #959 from probins/controlexamples
Out-of-date examples in control api docs
2013-09-02 05:10:47 -07:00
Peter Robins
6b61e9d84b Remove examples from control api docs
[ci skip]
2013-09-02 07:44:08 -04:00
Éric Lemoine
1c72a4d078 Merge pull request #947 from elemoine/attribution
Make ol.Attribution take an options object
2013-09-02 03:10:41 -07:00
Éric Lemoine
7af4cbb75e Export ol.Collection#getArray 2013-09-02 11:25:52 +02:00
Frédéric Junod
fdc70f3c30 Merge pull request #962 from fredj/lint
Reorder goog.require
2013-09-02 02:17:55 -07:00
Frederic Junod
34f6ba4ee8 Reorder goog.require 2013-09-02 11:01:31 +02:00
Éric Lemoine
e2a1c13439 Merge pull request #960 from elemoine/handlemappostrender
Remove handleMapPostrender extension point
2013-09-01 14:15:19 -07:00
Tim Schaub
109ef38d69 Exporting setMap so it is documented for custom controls 2013-08-31 16:40:46 -06:00
Éric Lemoine
96ef1ed3bd Remove handleMapPostrender extension point 2013-08-31 23:25:08 +02:00
Tim Schaub
8844310bf4 Call setMap instead of passing map to control 2013-08-31 14:45:03 -06:00
Tim Schaub
3e1de0b1ad Call addControl instead of passing map to control 2013-08-31 14:44:29 -06:00
Tim Schaub
6d9d5ecb4b Update ZoomSlider example in docs 2013-08-31 07:29:44 -06:00
Tim Schaub
96dfe5656d Merge pull request #950 from pagameba/doc-animations
Improve documentation for animation-related stuff.
2013-08-30 14:49:07 -07:00
Tim Schaub
b17feb4580 Add extra requires (see #958) 2013-08-30 15:20:21 -06:00
ahocevar
d8bc769758 Do not delete from oldFeatureMap 2013-08-30 23:18:59 +02:00
ahocevar
cbf7f91cfb instanceof check to avoid ducktyping 2013-08-30 23:18:17 +02:00
Tim Schaub
4679ba77c4 Don't export ol.control.Control.prototype.setMap 2013-08-30 14:59:47 -06:00
Tim Schaub
b479909e25 Remove map from control options 2013-08-30 14:59:21 -06:00
Tim Schaub
33f4d1e0ee Add missing provide and require for ol.geom 2013-08-30 13:32:04 -06:00
Tim Schaub
58fe110419 Rename ol.geom.VertexArray to ol.CoordinateArray 2013-08-30 13:30:53 -06:00
Tim Schaub
7165d414c7 Use ol.Coordinate instead of ol.geom.Vertex 2013-08-30 13:30:25 -06:00
Tim Schaub
6f98a75fb8 Limit feature exports 2013-08-30 13:14:17 -06:00
Paul Spencer
bfa1fbc2cd remove trailing whitespace to make the linter happy. 2013-08-30 13:31:10 -04:00
Paul Spencer
8c4c83b207 Improve documentation for animation-related stuff
The animation-related code is missing sufficient detail to make it
usable without digging in to the code.  This adds some additional
detail to the ol.animation namespace, the related options, and makes
note of the existance of ol.animation in the documentation of
ol.Map.addPreRenderFunction(s).
2013-08-30 11:32:47 -04:00
Éric Lemoine
729039ba04 Adapt examples to new signature for ol.Attribution 2013-08-30 16:50:36 +02:00
Éric Lemoine
38ab64c3c3 Adapt sources to new signature for ol.Attribution 2013-08-30 16:50:36 +02:00
Éric Lemoine
818894bb56 ol.Attribution is a single-arg constructor 2013-08-30 16:50:36 +02:00
ahocevar
9dfbfab648 Follow-up improvements for #897
* Interaction is no goog.Disposable any more.
* Permanent cleanup during selection instead of disposeInternal.
* Moved selectionLayers creation outside feature loop.
* Maintain selectedFeatures and unselectedFeatures only for
  layers that have a setRenderIntent method.
2013-08-30 16:26:49 +02:00
ahocevar
29317c3316 Merge pull request #897 from ahocevar/select
Select control
2013-08-30 06:25:14 -07:00
ahocevar
643eb5c4cc Better initial extent 2013-08-30 14:46:32 +02:00
ahocevar
9dae49dc18 Symbolizer defaults for the select renderIntent 2013-08-30 13:47:43 +02:00
ahocevar
83720975f8 More specific INTENTCHANGE instead of SYMBOLIZER event 2013-08-30 12:10:55 +02:00
ahocevar
e2c4fec253 Let's at least be disposable, so we can clean up after ourselves 2013-08-30 12:00:06 +02:00
ahocevar
2a4aef0b58 THIS_IDENTIFIER no longer needed 2013-08-30 11:44:52 +02:00
ahocevar
6bb23cdda5 No longer inheriting from EventTarget 2013-08-30 11:43:35 +02:00
Éric Lemoine
1ee12e696e Merge pull request #942 from elemoine/expr
Move and rename exports file for ol.expr
2013-08-29 13:01:47 -07:00
Éric Lemoine
ff30a89a49 Merge pull request #943 from elemoine/proj
Move exports file for proj
2013-08-29 13:00:46 -07:00
Éric Lemoine
2f5742bc1b Merge pull request #941 from elemoine/feature
ol.Feature.prototype.get need not be exported
2013-08-29 13:00:11 -07:00
ahocevar
8a180e63b2 Filter layer by id 2013-08-29 16:50:55 +02:00
ahocevar
43c67ba09f Do not dispatch selection events for now 2013-08-29 16:50:55 +02:00
ahocevar
95cf0e1264 Less closures 2013-08-29 16:50:55 +02:00
ahocevar
0c1f2328f9 Do not implement a specific clone method
What we need here is a mix of deep and shallow cloning, and we
do not want to do this in a generic ol.Feature#clone() method.
2013-08-29 16:50:55 +02:00
ahocevar
2394b39f6f Use select as keyword 2013-08-29 16:50:54 +02:00
ahocevar
0fbf07fef1 Using a renderIntent lib function instead of this identifier
A 'this' identifier is quite useless with compressed JavaScript,
and in fact it turned out to fail in advanced mode when trying
to access a feature's renderIntent property with it. The added
renderIntent lib function as a Call expression does the job
well.
2013-08-29 16:50:54 +02:00
ahocevar
526dbebadc Re-adding @requires that got lost during rebase. 2013-08-29 16:50:54 +02:00
ahocevar
c47634b2ee Renaming condition to clickOnly, and fixing docs 2013-08-29 16:50:54 +02:00
Frederic Junod
89bdd3bc2c Use a ol.interaction.condition in ol.interaction.Select 2013-08-29 16:50:54 +02:00
ahocevar
bb93a86528 Do not export 'dispose' for now 2013-08-29 16:50:54 +02:00
ahocevar
e5b095bfdf Simplifying setRenderIntent API for bulk changing all features 2013-08-29 16:50:53 +02:00
ahocevar
100b85a7b0 Converting control to an interaction
To dispatch events, the interaction base class now inherits from
goog.events.EventTarget.
2013-08-29 16:50:53 +02:00
ahocevar
c6e61e2d23 Dynamic layers and lazy selection layer creation
With this change, the user provides a filter function instead of
an array of layers. Selection layers are created lazily, and
addition/removal of layers is not handled by the control to give
the user more options, as suggested by @elemoine.
2013-08-29 16:50:53 +02:00
ahocevar
a417b75c1f Simplifying layer mapping
By making selectionLayer an object keyed by source layer UIDs,
we save some indexOf lookups.
2013-08-29 16:50:53 +02:00
ahocevar
d5c0fdd557 Removing addressed TODOs 2013-08-29 16:50:53 +02:00
ahocevar
0391a028c5 Adding layer visibility/addition/removal handling
The Select control creates a selection layer for each layer it
is configured with. When a configured layer is removed from the
map, the selection layer will be made invisible. For configured
layers on the map, the 'visible' property of the selection layer
is bound to the configured layer.
2013-08-29 16:50:53 +02:00
ahocevar
56c228d009 Removing option for temporary layer
Instead, adding setter and getter for a private temp_ property,
as suggested by @elemoine.
2013-08-29 16:50:52 +02:00
ahocevar
3a50a754aa Implementing renderIntent handling 2013-08-29 16:50:52 +02:00
ahocevar
4f2d37b6a3 New ThisIdentifier expression
This allows member expressions to use the 'this' keyword.
2013-08-29 16:50:52 +02:00
ahocevar
89052079b7 Example update after recent API changes 2013-08-29 16:50:52 +02:00
ahocevar
14b69d15f1 One selection layer per source layer
This way all styles can be defined on the source layer, by
defining a rule with a select renderIntent. It also will make
addition and removal of layers easier while the select control
is active.
2013-08-29 16:50:52 +02:00
ahocevar
760694582e Adding missing @requires 2013-08-29 16:50:52 +02:00
ahocevar
f05629b3c3 Work with clones rather than the original features 2013-08-29 16:50:51 +02:00
ahocevar
fdd79a385a Making JSDoc happy 2013-08-29 16:50:51 +02:00
ahocevar
d7e277d0f5 Adding exports 2013-08-29 16:50:51 +02:00
ahocevar
414f4828d6 Making Travis happy 2013-08-29 16:50:51 +02:00
ahocevar
0c54cbd9cc Adding tests 2013-08-29 16:50:51 +02:00
ahocevar
3d22ec4ca8 Simplifying clear/append detection 2013-08-29 16:50:51 +02:00
ahocevar
b06526781c Adding change event 2013-08-29 16:50:51 +02:00
ahocevar
6be1ab80d2 Require layers 2013-08-29 16:50:50 +02:00
ahocevar
19a00bbe27 Making the control's button work 2013-08-29 16:50:50 +02:00
ahocevar
871388d2c0 Adding selection layer and implementing basic click selection 2013-08-29 16:50:50 +02:00
ahocevar
e2526621d1 Select example and skeleton with event listeners 2013-08-29 16:50:50 +02:00
Éric Lemoine
561581cf8b Move exports file for proj 2013-08-29 15:38:00 +02:00
Éric Lemoine
a86ea051bf Move and rename exports file for ol.expr 2013-08-29 15:24:52 +02:00
Éric Lemoine
0c091e868c ol.Feature.prototype.get need not be exported
get is not overridden in ol.Feature.prototype, so there's no need for a specific export.
2013-08-29 14:05:25 +02:00
Frédéric Junod
7298cbd119 Merge pull request #926 from fredj/mapbrowserevent_clanup
ol.MapBrowserEvent cleanup
2013-08-28 22:08:34 -07:00
Tim Schaub
b0e0d18883 Merge pull request #939 from tschaub/initially-hidden
Do not display the popup initially.
2013-08-28 17:07:37 -07:00
Tim Schaub
ba1e985d2f Do not display the popup initially 2013-08-28 18:05:54 -06:00
Tim Schaub
a83f298db1 Merge pull request #937 from tschaub/popup
Bare bones popup example.
2013-08-28 15:04:12 -07:00
Tim Schaub
0361609631 Remove separate arrow element 2013-08-28 15:25:05 -06:00
Tim Schaub
03580bcfec Better title 2013-08-28 14:21:49 -06:00
Tim Schaub
b4df86a17e Remove unused style 2013-08-28 14:21:07 -06:00
Tim Schaub
7cac81857d Merge pull request #936 from tschaub/geom-exports
Proper geometry exports.
2013-08-28 11:40:14 -07:00
Tim Schaub
c34e582f1a Toggle display instead of visibility for proper click handling 2013-08-28 12:36:00 -06:00
Tim Schaub
0f34bbc161 Adding some variety to the examples 2013-08-28 12:35:23 -06:00
Tim Schaub
7f66376315 Basic popup example 2013-08-28 12:28:47 -06:00
Éric Lemoine
e93383c859 Merge pull request #934 from elemoine/vector-layer
ol.layer.Vector pass original options to parent
2013-08-28 10:19:45 -07:00
Tim Schaub
dd37d0e736 Slightly less giant icon 2013-08-28 10:45:24 -06:00
Tim Schaub
9ef439ba23 Exports for specific geometry types 2013-08-28 10:41:07 -06:00
Tim Schaub
fb27d44840 Merge pull request #931 from tschaub/example-data
Move png to data to work with host-examples task.
2013-08-28 07:46:13 -07:00
Éric Lemoine
3deeaa21c7 ol.layer.Vector pass original options to parent
This makes it possible to pass arbitrary property to ol.layer.Vector and use layer.get('property_name') to get the value of properties.
2013-08-28 14:13:37 +02:00
Frederic Junod
d091cfd508 Move focus_ position update into handleMapBrowserEvent
Otherwise, the position is only updated on keyboard or mouse wheel events.
2013-08-28 12:39:25 +02:00
Frédéric Junod
377f031860 Merge pull request #932 from fredj/unclosed_div
Fix unclosed div in examples/icon.html
2013-08-28 03:36:04 -07:00
Frederic Junod
010eda74df Fix unclosed div in examples/icon.html 2013-08-28 11:58:33 +02:00
Frederic Junod
ecf953a125 Remove pressed_ variable and rely on down_ to check if a mouse button is pressed 2013-08-28 11:28:50 +02:00
Éric Lemoine
c608e15943 Merge pull request #929 from elemoine/collectionevent
Add ol.CollectionEvent#getElement
2013-08-28 02:16:57 -07:00
Frederic Junod
dc5b209f7f Change previous_ local variable type to boolean
And rename it to pressed_ for clarity; the variable represents whether
the mouse button is pressed
2013-08-28 11:16:45 +02:00
Frederic Junod
9306704c1d Add documentation in mapbrowserevent.js 2013-08-28 11:16:44 +02:00
Tim Schaub
ab2c4387b8 Move png to data to work with host-examples task 2013-08-27 16:36:13 -06:00
Tim Schaub
01ab16d7d6 Merge pull request #923 from tschaub/icon
Add xOffset and yOffset support to icon symbolizers.
2013-08-27 15:25:22 -07:00
Tim Schaub
e9aa316007 Call getUid once 2013-08-27 16:22:45 -06:00
Tim Schaub
6b625e368b Account for icon offsets when doing feature hit detection 2013-08-27 16:22:45 -06:00
Tim Schaub
efeb00e4a5 Add x/y offset for icon symbolizers 2013-08-27 16:22:45 -06:00
Tim Schaub
6baf5d0b18 Export ol.geom.Geometry.prototype.getCoordinates 2013-08-27 16:22:45 -06:00
Tim Schaub
9c824584b3 Example using an icon symbolizer and displaying a popup
I'm adding this example to demonstrate a few things that should change:

 * the icon symbolizer should accept xOffset and yOffset in pixels
 * the `ol.geom.Geometry.prototype.getCoordinates` method should be exported
 * overlays should have a `panIntoView` method
2013-08-27 16:22:45 -06:00
Tim Schaub
700bb64d2d Merge pull request #927 from tschaub/null-crs
Accept null crs in GeoJSON.
2013-08-27 13:51:18 -07:00
Éric Lemoine
d1e879e03f Use ol.Collection#getElement in tests 2013-08-27 22:11:33 +02:00
Éric Lemoine
9895f879f9 Export ol.CollectionEvent#getElement 2013-08-27 22:08:26 +02:00
Éric Lemoine
9f2c351057 Use ol.CollectionEvent#getElement in LayerGroup 2013-08-27 22:07:45 +02:00
Éric Lemoine
b9f2f7bcb4 Add ol.CollectionEvent#getElement 2013-08-27 22:07:03 +02:00
Tim Schaub
0c555e6e7d Accept null crs 2013-08-27 10:54:00 -06:00
Éric Lemoine
6b6639f620 Merge pull request #924 from elemoine/getextent
Export ol.source.Source.prototype.getExtent
2013-08-27 08:02:49 -07:00
Éric Lemoine
f273be6597 Export ol.source.Source#getExtent 2013-08-27 15:42:55 +02:00
Tim Schaub
e8ddecc8b1 Merge pull request #920 from tschaub/point-examples
Cast to number when creating literals from symbolizers where literal properties must be numeric.
2013-08-26 11:57:09 -07:00
Tim Schaub
ecba1d78c2 Merge pull request #921 from tschaub/geojson-crs
Parse top-level crs member when reading features from GeoJSON.
2013-08-26 10:41:14 -07:00
Tim Schaub
0a3e46b88d Remove unnecessary cast and save 15 bytes using goog.isDef 2013-08-26 09:26:07 -06:00
Tim Schaub
eaf447759f Merge pull request #913 from tschaub/dimension
Allow for vector data with unknown or inconsistent dimension.
2013-08-26 05:59:50 -07:00
Tim Schaub
7e2bd66417 Read crs from top-level object when parsing as features 2013-08-25 12:32:22 -06:00
Tim Schaub
379c11e1ce Add externs for GeoJSON crs member 2013-08-25 12:22:08 -06:00
Tim Schaub
9755240cac Leaving the + operator as a convenience for concatenating strings
When people need to serialize in a format that differentiates string concatenation from addition, they can use the new `concat` function in an expression.  But I don't think we need to throw if people use `+` with strings.
2013-08-23 18:33:52 -04:00
Tim Schaub
8190178fc9 Missing test dependency 2013-08-23 18:28:44 -04:00
Tim Schaub
6ddef67cd9 Add KML earthquake example 2013-08-23 18:17:42 -04:00
Tim Schaub
3c993168c4 Cast to numbers for literals
There are times when we parse from XML without a schema (e.g. KML).  In these cases, features attributes will always be strings.  We can cast to number when creating literals from symbolizers and then assert `!isNaN` instead of asserting that they are numbers before.
2013-08-23 17:30:24 -04:00
Tim Schaub
43953c8efa Call concat instead of using math op in FE expression parsing 2013-08-23 16:46:33 -04:00
Tim Schaub
3b615fa312 Add a concat function for concatenating strings 2013-08-23 13:05:12 -04:00
Frédéric Junod
637bbeb2a7 Merge pull request #903 from fredj/keyboard
Don't react to keyboard events when the focus is on editable inputs
2013-08-22 23:40:42 -07:00
Tom Payne
9a994eab47 Merge pull request #918 from twpayne/source-change-events
Source change events
2013-08-21 07:40:54 -07:00
Tom Payne
0170c426ee Propagate change events from sources via layers 2013-08-21 12:29:49 +02:00
Tom Payne
788ac5f41d Add ol.source.Source#dispatchChangeEvent 2013-08-21 12:29:28 +02:00
Frederic Junod
9e8d559c1b Don't react to keyboard events when the focus is on editable inputs 2013-08-20 14:44:40 +02:00
Tim Schaub
554a725d1a Merge pull request #912 from tschaub/seperate-fill-stroke
Separate fill and stroke symbolizers.  Allow styles with no rules (and also support "else" symbolizers).
2013-08-19 15:43:06 -07:00
Éric Lemoine
9e43719ffb Merge pull request #682 from elemoine/export-func
missing exports
2013-08-19 09:14:16 -07:00
Éric Lemoine
d0f793b7a0 Fix bad option name in ol.control.defaults 2013-08-19 17:00:43 +02:00
Éric Lemoine
d6d15db6e8 Use @exportFunction to export animation functions 2013-08-19 17:00:43 +02:00
Éric Lemoine
f67d3dc165 Use @exportFunction to export ol.interaction.defaults 2013-08-19 17:00:43 +02:00
Éric Lemoine
29a2d2a9f7 Use @exportFunction to export ol.control.defaults 2013-08-19 17:00:43 +02:00
Éric Lemoine
169e986b28 Remove 2nd arg to ol.interaction.defaults 2013-08-19 17:00:43 +02:00
Éric Lemoine
3d2d45e01f Remove 2nd arg to ol.control.defaults 2013-08-19 17:00:37 +02:00
Éric Lemoine
3f6b9c9434 Use ol.Collection#extend in examples
This commit changes the examples to using ol.control.defaults().extend to extend the collection of controls. This is in preparation for a future commit that will remove the 2nd argument to ol.control.defaults. The same is done for ol.interaction.defaults.
2013-08-19 14:25:38 +02:00
Éric Lemoine
41fe103fa4 Export ol.Collection#extend 2013-08-19 14:25:38 +02:00
Éric Lemoine
6576a49178 Make ol.Collection#extend return this
This to be able to do this:

new ol.Map({
  controls: ol.control.defaults().extend([new MyControl()]),
  ...
})
2013-08-19 14:25:38 +02:00
Éric Lemoine
77adbdfa7a Use per-animation function modules
Currently the animation functions share the same module, namely ol.animation. We do differently for ol.control.defaults and ol.interaction.defaults, with ol.control.defaults and ol.interaction.defaults module. This commit replaces the ol.animation module by four modules, one for each animation function.

This makes things more consistent, and will make it possible to use the @exportFunction annotation for the exporting of the animation functions.
2013-08-19 14:25:38 +02:00
Éric Lemoine
a37f114e4b Add export annotation @exportFunction
This commit adds a new export annotation: @exportFunction. @exportFunction is to be used to declare functions that take an options object literal as their first arguments. @exportFunction is to regular functions as @exportClass is to constructors.

The usage of @exportFunction is as follows:

@exportFunction ol.control.defaults ol.control.DefaultsOptions ol.Collection

Note: the Function#export method uses a recursive function. This is to handle nested options.
2013-08-19 14:01:57 +02:00
Éric Lemoine
8d09be7134 No reference to internal types in externs file
Currently we have things like like in the generated externs file (types.js):

/**
 * @type {ol.control.AttributionOptions|undefined}
 */
olx.control.DefaultsOptionsExtern.prototype.attributionOptions;

It doesn't make sense to have external object properties whose types are
internal (ol.control.AttributionOptions in the above example).

With this commit, the generate-exports.py script generates this:

/**
 * @type {olx.control.AttributionOptionsExtern|undefined}
 */
olx.control.DefaultsOptionsExtern.prototype.attributionOptions;
2013-08-19 13:54:26 +02:00
Tom Payne
0ec1f33304 Merge pull request #910 from twpayne/reduced-check-examples
Only check examples in advanced mode
2013-08-19 02:19:48 -07:00
Frédéric Junod
6a276a408d Merge pull request #905 from fredj/css_classes_fixup
IE10 compatibility: full-screen-drag-rotate-and-zoom.html
2013-08-19 01:03:01 -07:00
Tim Schaub
0f9e269057 Ignore extra dimensions and pad with NaN for missing dimensions 2013-08-18 09:57:26 -04:00
Tim Schaub
94c4d420a6 Merge pull request #911 from tschaub/expression-literals
Parse literal nodes in expressions in addition to text nodes.
2013-08-16 08:36:25 -07:00
Tim Schaub
7ccc45b276 No need for rules if no rules have filter 2013-08-15 15:38:58 -04:00
Tim Schaub
9b90129b24 Merge pull request #904 from tschaub/test-correction
Correctly make assertions with expect.
2013-08-15 11:44:31 -07:00
Tim Schaub
183b51a1c0 Parse literal nodes in expressions in addition to text nodes 2013-08-15 14:32:47 -04:00
Tim Schaub
dd72408a88 Dependencies 2013-08-15 14:07:11 -04:00
Tim Schaub
4e053c4c0a No such thing as IconType 2013-08-15 13:57:36 -04:00
Tim Schaub
af1cd64018 Lint 2013-08-15 13:54:37 -04:00
Tim Schaub
966034e4f7 Alphabetize 2013-08-15 13:50:50 -04:00
Tim Schaub
bad401bc17 Add support for "else" symbolizers
When a style has no rules, the "else" symbolizers apply.  When a style has rules and none of them apply to the given feature, the "else" symbolizers apply.  Note that this is different than default symbolizer properties that might be merged into all symbolizers (as in OL2) - I don't think we should support that.
2013-08-15 10:37:18 -04:00
Tim Schaub
6078fe7b02 Line literal color instead of strokeColor etc. 2013-08-15 10:37:18 -04:00
Tim Schaub
a5991aee03 Remove applyDefaultStyle method 2013-08-15 10:37:18 -04:00
Tim Schaub
a670e225cd Clearer naming of method to create symbolizer literals 2013-08-15 10:37:18 -04:00
Tim Schaub
d5d0262b4c Create literal with feature or geometry type 2013-08-15 10:37:18 -04:00
Tim Schaub
c36ceab2a0 Separate stroke and fill 2013-08-15 10:37:18 -04:00
Tim Schaub
dc54128c77 Method to reduce polygon literals 2013-08-15 10:37:18 -04:00
Tim Schaub
36bcd26305 Separate literals from symbolizers 2013-08-15 10:37:18 -04:00
Tim Schaub
90fb37c220 Rename ol.style.SymbolizerLiteral to ol.style.Literal 2013-08-15 10:37:18 -04:00
Tom Payne
b06a6d1aef Only check examples in advanced mode 2013-08-15 15:21:00 +02:00
Frédéric Junod
a12d41b1bc Merge pull request #908 from fredj/bing_key
Fix BingMaps API key in example
2013-08-15 06:11:19 -07:00
Frederic Junod
c793b18c44 Fix BingMaps API key in example 2013-08-15 14:10:29 +02:00
Frederic Junod
4afe025c75 Add missing space between CSS classes 2013-08-15 13:58:58 +02:00
Bart van den Eijnden
c3a920774b Merge pull request #852 from bartvde/ogcfilter2
Add parser for OGC Filter 1.0 and 1.1 (read/write) (r=@tschaub,@ahocevar)
2013-08-15 02:12:58 -07:00
Bart van den Eijnden
ab7d446e25 Merge pull request #3 from tschaub/bartvde-ogcfilter2
Suggestions for filter encoding
2013-08-15 02:12:03 -07:00
Tim Schaub
db658e491f Correct use of expect with spies 2013-08-14 11:57:53 -04:00
Tim Schaub
89daf91c0b Proper use of expect 2013-08-14 11:50:18 -04:00
Tim Schaub
6c8ec8ed95 Test names and instanceof checks 2013-08-14 11:35:44 -04:00
Tim Schaub
2d95488906 Remove special write-only handling for dates 2013-08-14 11:26:01 -04:00
Tim Schaub
824c950824 Parse distance as a number 2013-08-14 09:33:47 -04:00
Tom Payne
e23cbbac13 Merge pull request #902 from twpayne/fix-color
Fix opacity in createFromString
2013-08-14 05:29:09 -07:00
Tom Payne
362ace01da Fix opacity in createFromString 2013-08-14 12:02:23 +02:00
Bruno Binet
7b95509970 Merge pull request #899 from bbinet/renderer-refactoring
Renderer refactoring related to the layer groups
2013-08-13 08:25:33 -07:00
Bruno Binet
88da6da3a7 Trigger CHANGE event only when required
For example only when layer is both ready and visible.
2013-08-13 16:41:43 +02:00
Bruno Binet
8b435059f7 Update color matrices based on framestate values
In getColorMatrix method, we'll update the color matrices only if layerstate
color properties has changed in the framestate.
2013-08-13 16:24:44 +02:00
Bruno Binet
46ea218d0f Make layer renderers more stupid
Layer renderers should not be responsible for listening to layer
properties change and triggering a render.
Layer change events are now forwarded to the map which will trigger a render.
2013-08-13 16:24:44 +02:00
Bruno Binet
a13d4bdded Merge pull request #797 from bbinet/layergroup
Layer group support
2013-08-13 07:24:21 -07:00
Bruno Binet
54bf8c2d2a Bindto valueAsNumber in layer-group example
(now that #898 is in)
2013-08-13 12:37:00 +02:00
Bruno Binet
3ecb5b89ff Create a custom event type for vector layers
Vector layers will now dispatch ol.layer.VectorLayerEventType.ADD and
ol.layer.VectorLayerEventType.REMOVE event types instead of the generic
goog.events.EventType.CHANGE event type.
This will fix a maximum call stack size exceeded javascript error.
2013-08-13 12:27:38 +02:00
Bruno Binet
e4c36378ac ol.Map now have a LAYERGROUP property
The LAYERS property is gone.
2013-08-13 12:27:38 +02:00
Bruno Binet
d84477c1c0 Bind more layer properties in layer-group example
This allows to update hue, saturation, brightness, contrast values.
2013-08-13 12:27:38 +02:00
Bruno Binet
1100cc67da Get opacity from layerState in webglmaprenderer
instead of getting it from layer.getOpacity().
Fix the issue of changing opacity which didn't work with LayerGroups in webgl.
2013-08-13 12:27:38 +02:00
Bruno Binet
f3b63d9c2c Add a layer-group example 2013-08-13 12:27:38 +02:00
Bruno Binet
1aa695580b Add tests for layer.getLayerState() 2013-08-13 12:27:38 +02:00
Bruno Binet
31c8644716 Add tests for ol.layer.LayerGroup 2013-08-13 12:27:38 +02:00
Bruno Binet
1d15d840ac Add layergroup exports 2013-08-13 12:27:37 +02:00
Bruno Binet
097ce52060 Add layergroup support 2013-08-13 12:27:37 +02:00
Bruno Binet
f731d5632c Merge pull request #898 from bbinet/input-valueasnumber
Add support for binding input value as number
2013-08-13 03:24:54 -07:00
Bruno Binet
dddea56c2c Add a temporary html5 externs file
This is needed because the current version of closure compiler we use does not
include externs for valueAsNumber which we now use in ol.dom.Input.
So this backports patch from issue:
https://code.google.com/p/closure-compiler/issues/detail?id=1060

This patch should be reverted when the next closure compiler release is out
with valueAsNumber externs.
2013-08-13 11:31:58 +02:00
Bruno Binet
2dd6321c74 Fix bind-input example to use valueAsNumber 2013-08-13 11:31:58 +02:00
Bruno Binet
afee1ab975 Add VALUE_AS_NUMBER property to ol.dom.Input
This should be used when one want to bind a number instead of a string.
2013-08-13 11:31:58 +02:00
Tim Schaub
a3ec0d776c Building an expression with constructors instead of ol.expr.parse 2013-08-09 17:15:42 -06:00
Bart van den Eijnden
09c27f430d remove accidentally committed swap file 2013-08-09 15:58:31 +02:00
Bart van den Eijnden
8792973c08 make sure the _expression reader can deal with combined propertyname and literals 2013-08-09 15:57:29 +02:00
Bart van den Eijnden
29954d2ff9 trim the string before passing it off to ol.expr.parse 2013-08-09 11:08:19 +02:00
Bart van den Eijnden
deb88a5a6d change _expression reader 2013-08-09 10:42:16 +02:00
Bart van den Eijnden
1948233d1f merge with master - solving conflicts 2013-08-09 09:55:44 +02:00
ahocevar
5673feb48f Merge pull request #885 from ahocevar/wms-getfeatureinfo
Implement WMS GetFeatureInfo
2013-08-08 07:44:04 -07:00
ahocevar
f1e01511b9 Fixing example title
Thanks @bartvde for catching this.
2013-08-08 15:55:37 +02:00
ahocevar
2f37816608 Use X, Y or I, J depending on WMS version
This also adds consistency - Pixel coordinates are now always
rounded to integers.
2013-08-08 14:43:49 +02:00
Tim Schaub
bfff0197d7 Merge pull request #894 from tschaub/more-geojson
Allowing all GeoJSON types to be read as an array of features.  This makes the parser more useful when used with a source that may not already be a feature collection.
2013-08-08 05:41:11 -07:00
ahocevar
c1746f2549 No array needed for a single event
Thanks @bartvde.
2013-08-08 13:19:26 +02:00
Tim Schaub
254f325f29 Provide a method for parsing any GeoJSON as an array of features 2013-08-07 11:50:37 -06:00
Tim Schaub
1f588821b4 Merge pull request #892 from tschaub/symbolizer-opacity
Separate fill and stroke opacity.
2013-08-07 07:52:49 -07:00
Tom Payne
9fdcfedd96 Merge pull request #893 from twpayne/plovr-81ed862
Use plovr-81ed862
2013-08-06 07:05:46 -07:00
Tom Payne
05c950156a Use plovr-81ed862 2013-08-06 15:20:43 +02:00
Tim Schaub
c2cc1af2ac Separate opacity in examples 2013-08-05 11:32:48 -06:00
Tim Schaub
5d0b4563a8 Optionally stroke and fill polygons (closes #475)
This also removes the unsupported width property from PolyStyle (closes #891).
2013-08-05 11:16:49 -06:00
Tim Schaub
993e76e3a1 Support fillOpacity and strokeOpacity on polygon symbolizers 2013-08-05 11:16:49 -06:00
Tim Schaub
f210d6d0e1 Rename line symbolizer opacity to strokeOpacity for consistency
We already have strokeColor and strokeWidth.  Having strokeOpacity makes sense.
2013-08-05 11:16:49 -06:00
Tim Schaub
1cedea6606 Support fillOpacity and strokeOpacity on shape symbolizers 2013-08-05 11:16:48 -06:00
Tim Schaub
2a1ece194d Merge pull request #890 from tschaub/attributions
Move attribution constants to constructors.
2013-08-05 07:43:23 -07:00
ahocevar
759e6ff925 Merge pull request #880 from openlayers/parser-projection
Get source projection from parser
2013-08-05 00:57:27 -07:00
Tim Schaub
c764d76aee Move attributions constant to constructor 2013-08-04 13:31:37 -06:00
ahocevar
cc29ea912b Updating the TopoJSON parser to return a ReadFeaturesResult 2013-08-04 15:10:11 +02:00
ahocevar
9578da0cfb Renaming readFeaturesWithMetadata* back to readFeatures*
Since this is not exported and we do not have a counterpart that
does not return the metadata, it should be fine to use a shorter
name.
2013-08-04 15:10:11 +02:00
ahocevar
0aed05a413 Renaming handleWriteOptions to applyWriteOptions 2013-08-04 15:10:10 +02:00
ahocevar
3ebbdbb48f Use goog.functions.sequence 2013-08-04 15:10:10 +02:00
Bart van den Eijnden
b66f4aef07 make Travis happy 2013-08-04 15:10:10 +02:00
Bart van den Eijnden
8d997f17ec forgot to remove a commented code block 2013-08-04 15:10:10 +02:00
Bart van den Eijnden
17fefda8fd implement GMLReadOptions and GMLWriteOptions as discussed with @ahocevar 2013-08-04 15:10:10 +02:00
Bart van den Eijnden
2f4f508d1a move srsName and axisOrientation from the instance to the read and write functions as discussed with @ahocevar 2013-08-04 15:10:10 +02:00
ahocevar
6f3fa14c53 Sensible axisOrientation and srsName defaults 2013-08-04 15:10:09 +02:00
ahocevar
023d3faf3c Do not translate projections using regular expressions 2013-08-04 15:10:09 +02:00
ahocevar
e32da90f5a Fixing typo
Thanks @bartvde for spotting this.
2013-08-04 15:10:09 +02:00
ahocevar
56e8b1cfb4 Get projection and axis order from GML data
To make tests pass, the winding order of the coordinates in the
test data had to be reversed to conform to common gml practice.
2013-08-04 15:10:09 +02:00
ahocevar
109ec71877 Using single argument for callback and string for projection
This makes the asynchronous and synchronous versions of
readFeatures work with the same data structures, and leaves
projection handling outside the parsers.
2013-08-04 15:10:09 +02:00
Bart van den Eijnden
a4ceb41938 fix up KML tests 2013-08-04 15:10:09 +02:00
Bart van den Eijnden
33dd188f9b fix up the geojson tests 2013-08-04 15:10:08 +02:00
Bart van den Eijnden
7b31ec26ea fix up build 2013-08-04 15:10:08 +02:00
ahocevar
0168c2e46f Better interface for passing projection and other metadata 2013-08-04 15:10:08 +02:00
ahocevar
b0c1ef04a1 Implementing getProjection for KML and GPX 2013-08-04 15:10:08 +02:00
ahocevar
55697dea28 getProjection method on parsers
With this, vector sources/layers do not need to make
assumptions on the data projection.
2013-08-04 15:10:08 +02:00
ahocevar
82a158bdd2 Merge pull request #889 from ahocevar/advanced-param
check-examples target failing because of G+ widgets
2013-08-04 06:09:25 -07:00
ahocevar
da2fd4f80f Append '?mode=advanced' for advanced mode to avoid G+ inclusion 2013-08-04 14:38:55 +02:00
ahocevar
58949ed856 Adding tests, and fixing an issue revealed by the tests 2013-07-31 23:42:08 +02:00
Frédéric Junod
e732b744b7 Merge pull request #864 from fredj/upgrade_font-awesome
Upgrade Font Awesome to version 3.2.1
2013-07-31 09:21:53 -07:00
ahocevar
5acff857e7 Add example, and use getFeatures in other examples
The new dedicated getfeatureinfo example shows how to combine
feature info from a WMS and a vector layer. The other examples
that previously used getFeatureInfo from vector layers now use
the more appropriate getFeatures.
2013-07-31 17:47:16 +02:00
Tim Schaub
b839cea4de Merge pull request #844 from tschaub/topojson
Parser for reading TopoJSON topologies.
2013-07-31 08:33:46 -07:00
ahocevar
4dd148a731 Implementing GetFeatureInfo for WMS 2013-07-31 12:10:02 +02:00
ahocevar
f333acc183 Interface for GetFeatureInfo
When a source implements this interface, the layer renderer can
access the source to get feature info.
2013-07-31 12:09:39 +02:00
ahocevar
5307e5ea3f Until we know what we want to return, return undefined 2013-07-31 11:58:45 +02:00
ahocevar
53765ebd0f Merge pull request #878 from ahocevar/polygon-labels
Better label placement for polygons
2013-07-30 01:04:44 -07:00
ahocevar
b2e25c8f6b Renaming method to getInteriorPoint
as suggested by @tschaub. Also giving credit to JTS.
2013-07-30 09:25:24 +02:00
Tim Schaub
3061fc6941 Missing requires in test and example lint 2013-07-26 16:20:33 -06:00
Tim Schaub
d36a085449 Slightly different style than other vector example 2013-07-26 16:14:57 -06:00
Tim Schaub
e1a5599f6a Update example 2013-07-26 15:52:32 -06:00
Tim Schaub
3023c5b9e6 Tests for parsing world-110m.json 2013-07-26 15:52:22 -06:00
Tim Schaub
b206442418 Exports 2013-07-26 15:05:53 -06:00
Tim Schaub
f677eb8c50 Rendering 110m world TopoJSON 2013-07-26 15:05:53 -06:00
Tim Schaub
a0fd3eec19 Initial spec 2013-07-26 15:05:53 -06:00
Tim Schaub
5b707d4275 Shared structure for crs transforms 2013-07-26 15:05:53 -06:00
Tim Schaub
e53deb62be Transform arcs 2013-07-26 15:05:53 -06:00
Tim Schaub
6580ece2bb GeometryCollection as individual features 2013-07-26 15:05:53 -06:00
Tim Schaub
38172c4f20 Adding TopoJSON parser 2013-07-26 15:05:52 -06:00
Tim Schaub
70be904979 Adding TopoJSON externs 2013-07-26 15:05:52 -06:00
Frédéric Junod
d30efdaa71 Merge pull request #881 from fredj/examples_css
examples: don't inject ol.css from loader.js
2013-07-25 04:48:14 -07:00
Frederic Junod
e13075f6ff Don't inject ol.css from loader.js 2013-07-25 11:40:35 +02:00
Tom Payne
73f77115e1 Merge pull request #882 from twpayne/plovr-2013-rc3
Use Plovr 2013-rc3
2013-07-24 03:14:15 -07:00
Tom Payne
68d943d98d Use Oracle Java on Mac OS X 2013-07-24 12:13:40 +02:00
Tom Payne
45c0e27c36 Use goog.log instead of goog.debug.Logger 2013-07-23 13:06:06 +02:00
Tom Payne
f533f6b654 Merge pull request #4 from fredj/plovr-2013-rc3
IE pointer events names are now defined in goog.events.EventType
2013-07-23 01:55:08 -07:00
Frederic Junod
d43581719b IE pointer events names are now defined in goog.events.EventType 2013-07-23 08:50:57 +02:00
Tom Payne
88ccf64379 Add missing private member 2013-07-22 18:22:58 +02:00
Tom Payne
ccdbd5aae5 Add some type hints in ol.layer.Layer 2013-07-22 18:22:43 +02:00
Tom Payne
ce56ac90a8 Add some type hints in ol.Kinetic 2013-07-22 18:22:29 +02:00
Tom Payne
639000a603 Add some type hints in ol.extent 2013-07-22 18:22:13 +02:00
Tom Payne
6cc8104ad3 Add some type hints in ol.array 2013-07-22 18:21:57 +02:00
Tom Payne
cec83abc3e Use regex module to work around arbitrary limitations in re
Our automatically generated regular expressions break Python's random
and arbitrary limit of 100 groups. See
  http://stackoverflow.com/questions/478458
2013-07-22 18:20:39 +02:00
Tom Payne
5afd564986 Add missing call to base class 2013-07-22 17:51:35 +02:00
Tom Payne
46d16ba0ca Use setElementShown instead of showElement 2013-07-22 17:42:47 +02:00
Tom Payne
0467222e46 Fix various type errors in ol.structs.RTree 2013-07-22 17:42:47 +02:00
Tom Payne
1208dab3e9 Fix various type errors related to features 2013-07-22 17:42:47 +02:00
Tom Payne
272bfceaf8 Fix invalid typecasts 2013-07-22 17:42:47 +02:00
Tom Payne
b6319c9a68 Use goog.events.Key 2013-07-22 17:42:47 +02:00
Tom Payne
368194f293 w3c_device_sensor_event.js is now supplied with Plovr 2013-07-22 17:42:47 +02:00
Tom Payne
0fc60e9957 Use plovr-2013-rc3 2013-07-22 17:42:46 +02:00
Bart van den Eijnden
369d692a90 implement @tschaub's suggestions for ieq and ineq 2013-07-22 14:11:29 +02:00
Bart van den Eijnden
875edc540e implement @tschaub's suggestions for the LIKE function 2013-07-22 13:23:08 +02:00
ahocevar
2d08b5ff2c Merge pull request #850 from ahocevar/vector-events
Render changes when adding and removing features
2013-07-20 02:41:05 -07:00
ahocevar
ca9f9b7563 Re-adding type cast, as suggested by @elemoine 2013-07-20 11:11:26 +02:00
ahocevar
b43625820e Removing addFeatures from the API 2013-07-20 11:09:49 +02:00
ahocevar
11ef2cb7d1 Better label placement for polygons
Using the y-coordinate of the polygon's bounding box, this
simple algorithm intersects the polygon with the horizontal
center line of its bounding box. The x-coordinate of the label
point is the center of the longest segment of this intersection
that is inside the polygon.
2013-07-20 10:36:13 +02:00
Frédéric Junod
58d3314f7a Merge pull request #868 from fredj/apidoc
Add basic ol.animation api doc
2013-07-19 11:10:16 -07:00
Éric Lemoine
65ec948cb0 Merge pull request #859 from elemoine/zoomtoextent
Add a ZoomToExtent control
2013-07-19 05:46:26 -07:00
ahocevar
781caff9e5 Expire tile by range and listen to changes
Instead of just listening for the first change, we now listen
for all changes, and expire tiles by tile range. The outcome is
that the vector layer's addFeatures and removeFeatures methods
now show instant results on the rendered map.
2013-07-19 14:07:16 +02:00
ahocevar
d04c6f4c01 New pruneTileRange method
This also adds an assert that cache values are an instance of
ol.Tile in expireCache, instead of doing a type cast. Later we
will want to enforce the ol.Tile type by overriding the set
method.
2013-07-19 14:07:16 +02:00
ahocevar
ac67c10acd Add and remove features with meaningful events
This adds a removeFeatures method, and makes the CHANGE event
more useful by adding information about changed features and
extent.
2013-07-19 14:07:15 +02:00
ahocevar
c3bed305c7 Merge pull request #870 from ahocevar/vector-api
Give VectorSource the ability to load and parse data
2013-07-19 05:06:19 -07:00
ahocevar
a9fcc5ff15 Addressing @elemoine's review comments 2013-07-19 13:30:14 +02:00
Éric Lemoine
4e1012823f Merge pull request #860 from elemoine/exports
Add exports
2013-07-18 04:21:59 -07:00
Frédéric Junod
fecda5b094 Merge pull request #866 from fredj/object.setOptions
Api docs does not list Object#setValues
2013-07-17 23:56:24 -07:00
Frederic Junod
a965d9ee9f Remove unused ol.Object#setOptions function 2013-07-17 13:50:43 +02:00
Éric Lemoine
3d7316906b Merge pull request #867 from elemoine/bingkeyupdate
Update key in bing-maps example
2013-07-17 03:03:50 -07:00
ahocevar
892088ffac Updating examples to use the new API 2013-07-17 11:39:57 +02:00
ahocevar
9095032014 Removing unused methods and changing getFeaturesObjectForExtent
With this change, getFeaturesObjectForExtent may return null if
the source does not have data loaded for the provided extent.
A callback can be passed to getFeaturesObjectForExtent to get
notified when the requested data is available.
2013-07-17 11:28:48 +02:00
ahocevar
f325046a95 Allow VectorSource to load and parse data
This adds url, data and parser options to the source, and makes
EPSG:4326 the default projection. It also adds a prepareFeatures
method, which is used to load/parse data once the target
projection is known.
2013-07-17 11:24:34 +02:00
Frederic Junod
2565e00e1d Add basic ol.animation api doc 2013-07-17 10:56:19 +02:00
Éric Lemoine
fef6359f75 Update key in bing-maps example 2013-07-17 10:21:28 +02:00
Frédéric Junod
2121a7dc9e Merge pull request #865 from fredj/xyztilegrid_grid_init
tilejson example error
2013-07-16 22:40:59 -07:00
Éric Lemoine
907476f566 No need to impl setMap in ZoomToExtent control 2013-07-16 17:13:38 +02:00
Stéphane Brunner
74f446948f Rotate to north for custom controls example 2013-07-16 17:13:38 +02:00
Stéphane Brunner
d15f68d651 Add navigation controls example 2013-07-16 17:13:38 +02:00
Stéphane Brunner
86001fd331 Add zoom to extent control 2013-07-16 17:13:38 +02:00
Frederic Junod
ad42496948 Initialize all the items in tileRangeByZ 2013-07-16 15:31:05 +02:00
Frederic Junod
bebac2011b Upgrade Font Awesome to version 3.2.1 2013-07-15 10:16:42 +02:00
Tim Schaub
63c4feb6db Merge pull request #862 from tschaub/mutable-symbolizers
Provide getters and setters for symbolizer properties
2013-07-12 16:45:54 -07:00
Frédéric Junod
66a167b4ed Merge pull request #861 from fredj/layer-options
Preserve unexpected items in options object passed to the constructor
2013-07-12 14:10:30 -07:00
Tim Schaub
8b93c5a0a0 Getters and setters for text symbolizer 2013-07-12 11:16:17 -06:00
Tim Schaub
4a098aaee3 Adding tests for text symbolizer 2013-07-12 10:59:52 -06:00
Tim Schaub
0e87922389 Getters and setters for icon symbolizer 2013-07-12 10:42:59 -06:00
Tim Schaub
8844465188 Fixing bug with IconLiteral#equals and adding tests 2013-07-12 10:17:08 -06:00
Tim Schaub
2e08ccce03 Getters and setters for shape symbolizers 2013-07-12 09:57:40 -06:00
Tim Schaub
a0d058b2fa Getters and setters for polygon symbolizer 2013-07-12 09:50:42 -06:00
Éric Lemoine
e17d6aef70 Preserve unexpected items in options object passed to the constructor 2013-07-12 17:47:09 +02:00
Tim Schaub
711261171b Getters and setters for line symbolizers 2013-07-12 09:41:47 -06:00
Éric Lemoine
42d02e064e Export ol.layer.Layer and its getSource func 2013-07-12 10:21:01 +02:00
Éric Lemoine
9b039d76ea Export ol.source.TileSource and its getTileGrid func 2013-07-12 10:20:02 +02:00
Éric Lemoine
b2fc570328 Export tilegrid.WMTS functions 2013-07-12 10:12:51 +02:00
Éric Lemoine
c51265502d Export TileGrid functions 2013-07-12 10:12:30 +02:00
Bart van den Eijnden
31fd41ab14 make filterMap_ static as proposed by @tschaub 2013-07-09 13:34:23 +02:00
Bart van den Eijnden
c299bfa1cb more dot notation 2013-07-08 17:29:32 +02:00
Bart van den Eijnden
499319fb99 address most of @tschaub's review comments, use dot notation where possible still needs to be done, and I have some questions on the _expression reader still 2013-07-08 17:04:27 +02:00
Bart van den Eijnden
ab40ab6208 Add parser for OGC Filter 1.0 and 1.1 (read/write)
This work is based on the ol.expr package by @tschaub.
It adds a few named expression functions to that package:

 * INTERSECTS, CONTAINS, DWITHIN, WITHIN (no client-side implementation as yet)
 * LIKE (like comparison with wildcard, singleChar and escapeChar)
 * IEQ (case-insensitive equality)
 * INEQ (case-insensitive non-equality)

It also adds a few extra parameters to the existing EXTENT function to be able
to deserialize and serialize all info (i.e. projection and property name).

Some changes were needed for the GML parser as well:

 * createGeometry function needed to be public
 * when parsing Box (GML2) and Envelope (GML3) also parse the srsName
 * fix up writing for Box and Envelope now that bounds is an array

Also added createDocumentFragment function to the XML parser. Implementation
is similar to OpenLayers 2.

Some addtional notes on the implementation:

 * PropertyIsBetween was implemented as an ol.expr.Logical with operator
   ol.expr.LogicalOp.AND and two ol.expr.Comparison instances with operator
   ol.expr.ComparisonOp.GTE and ol.expr.ComparisonOp.LTE
 * In OGC Filter And and Or can contain more than 2 sub filters, so this
   is translated into a hierarchy of ol.expr.Logical
2013-07-03 13:09:25 +02:00
921 changed files with 134750 additions and 20746 deletions

1
.gitignore vendored
View File

@@ -3,3 +3,4 @@
/examples/*.html.png
/examples/example-list.js
/examples/example-list.xml
/node_modules/

View File

@@ -1,7 +1,10 @@
before_install:
- "sudo pip install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz"
- "sudo pip install -r requirements.txt"
- "git clone --depth=50 https://github.com/jsdoc3/jsdoc build/jsdoc"
- "git clone https://code.google.com/p/glsl-unit/ build/glsl-unit"
- "cd build/jsdoc"
- "git fetch origin refs/tags/v3.2.2:refs/tags/v3.2.2"
- "git checkout tags/v3.2.2"
- "cd ../.."
before_script:
- "./build.py plovr"

View File

@@ -33,6 +33,7 @@ OpenLayers contributors:
* Gregers Rygg
* Tim Schaub
* Christopher Schmidt
* Tobias Schwinger
* Cameron Shorter
* Pedro Simonetti
* Paul Spencer

View File

@@ -6,4 +6,6 @@ Welcome to [OpenLayers 3](http://ol3js.org/)!
Check out the [hosted examples](http://ol3js.org/en/master/examples/) or poke around the evolving [API docs](http://ol3js.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.
Please see our guide on [contributing](CONTRIBUTING.md) if you're interested in getting involved.

View File

@@ -1,8 +1,7 @@
{
"opts": {
"recurse": true,
"template": "doc/template",
"tutorials": "doc/tutorials"
"template": "apidoc/template"
},
"tags": {
"allowUnknownTags": true
@@ -13,12 +12,18 @@
},
"plugins": [
"plugins/markdown",
"doc/plugins/inheritdoc",
"doc/plugins/exports"
"apidoc/plugins/inheritdoc",
"apidoc/plugins/exports",
"apidoc/plugins/todo",
"apidoc/plugins/observable",
"apidoc/plugins/stability"
],
"markdown": {
"parser": "gfm"
},
"stability": {
"levels": ["deprecated","experimental","unstable","stable","frozen","locked"]
},
"templates": {
"cleverLinks": false,
"monospaceLinks": false,

20
apidoc/index.md Normal file
View File

@@ -0,0 +1,20 @@
Finding your way around
-----------------------
See the class list to the right and especially take a look at {@link ol.Map} and {@link ol.layer.Layer} because those are the central objects.
In general every use of OpenLayers starts by initializing a map, then adding the required layers. Controls and interactions can be added to change the behavior of the map.
Projections
-----------
A {@link ol.proj.Projection} defines which point on earth is represented by a pair of coordinates.
Coordinates within OpenLayers can be used in various projections where some common projections are always supported,
others can be used via [Proj4js](http://trac.osgeo.org/proj4js/).
Maps and Layers
---------------
A map in OpenLayers is essentially a staple of layers that is viewed from the top. Layers are responsible for retrieving data and displaying it.
Contributing
------------
See [CONTRIBUTING.md](https://github.com/openlayers/ol3/blob/master/CONTRIBUTING.md) for instructions
on building and testing OpenLayers. The file does also describe how to commit your changes to OpenLayers.

View File

@@ -30,7 +30,6 @@ function collectExports(source) {
var encoding = env.conf.encoding || 'utf8';
var fs = require('jsdoc/fs');
collectExports(fs.readFileSync('build/src/external/src/exports.js', encoding));
collectExports(fs.readFileSync('build/src/external/src/types.js', encoding));
exports.handlers = {
@@ -42,15 +41,29 @@ exports.handlers = {
},
newDoclet: function(e) {
var i, ii, j, jj;
if (e.doclet.meta.filename == "objectliterals.jsdoc" && e.doclet.properties) {
for (i = 0, ii = e.doclet.properties.length; i < ii; ++i) {
if (e.doclet.properties[i].type && e.doclet.properties[i].type.names) {
for (j = 0, jj = e.doclet.properties[i].type.names.length; j < jj; ++j) {
if (e.doclet.properties[i].type.names[j].indexOf('ol') == 0) {
if (api.indexOf(e.doclet.properties[i].type.names[j]) === -1) {
api.push(e.doclet.properties[i].type.names[j]);
}
}
}
}
}
}
if (api.indexOf(e.doclet.longname) > -1) {
// Add params of API symbols to the API
var names, name;
var params = e.doclet.params;
if (params) {
for (var i = 0, ii = params.length; i < ii; ++i) {
for (i = 0, ii = params.length; i < ii; ++i) {
names = params[i].type.names;
if (names) {
for (var j = 0, jj=names.length; j < jj; ++j) {
for (j = 0, jj=names.length; j < jj; ++j) {
name = names[j];
if (api.indexOf(name) === -1) {
api.push(name);

View File

@@ -0,0 +1,26 @@
var util = require('util');
exports.defineTags = function(dictionary) {
dictionary.defineTag('observable', {
mustHaveValue: true,
canHaveType: true,
canHaveName: true,
onTagged: function(doclet, tag) {
if (!doclet.observables) {
doclet.observables = [];
}
var description = tag.value.description;
var readonly = description.split(' ').shift() === 'readonly';
if (readonly) {
description = description.split(' ').slice(1).join(' ');
}
doclet.observables.push({
name: tag.value.name,
type: {
names: tag.value.type.names
},
description: description,
readonly: readonly
});
}
});
};

View File

@@ -0,0 +1,20 @@
var conf = env.conf.stability;
var defaultLevels = ["deprecated","experimental","unstable","stable","frozen","locked"];
var levels = conf.levels || defaultLevels;
var util = require('util');
exports.defineTags = function(dictionary) {
dictionary.defineTag('stability', {
mustHaveValue: true,
canHaveType: false,
canHaveName: true,
onTagged: function(doclet, tag) {
var level = tag.text;
if (levels.indexOf(level) >=0) {
doclet.stability = level;
} else {
var errorText = util.format('Invalid stability level (%s) in %s line %s', tag.text, doclet.meta.filename, doclet.meta.lineno);
require('jsdoc/util/error').handle( new Error(errorText) );
}
}
})
};

28
apidoc/plugins/todo.js Normal file
View File

@@ -0,0 +1,28 @@
var util = require('util');
exports.defineTags = function(dictionary) {
dictionary.defineTag('todo', {
mustHaveValue: true,
canHaveType: true,
canHaveName: true,
onTagged: function(doclet, tag) {
var parts = tag.text.split(' ');
if (parts[0] === 'stability') {
doclet.stability = parts.slice(1).join(' ');
} else if (parts[0] === 'observable') {
if (!doclet.observables) {
doclet.observables = [];
}
var readonly = parts.length > 3 && parts[3] === 'readonly';
var description = (readonly ? parts.slice(4) : parts.slice(3)).join(' ');
doclet.observables.push({
name: parts[1],
type: {
names: tag.value.type.names
},
description: description,
readonly: readonly
});
}
}
});
};

View File

@@ -0,0 +1,39 @@
a:visited {
color: #08c;
}
.stability {
padding: 8px 35px 8px 14px;
margin-bottom: 20px;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
color: #333;
background-color: #fcfcfc;
border: 1px solid #ccc;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.stability-deprecated {
color: #b94a48;
background-color: #f2dede;
border-color: #eed3d7;
}
.stability-experimental {
color: #c09853;
background-color: #fcf8e3;
border-color: #fbeed5;
}
.stability-unstable {
color: #3a87ad;
background-color: #d9edf7;
border-color: #bce8f1;
}
.stability-stable, .stability-locked {
color: #468847;
background-color: #dff0d8;
border-color: #d6e9c6;
}

View File

@@ -92,6 +92,15 @@
<?js }); ?></dl>
<?js } ?>
<?js
var observables = doc.observables;
if (observables && observables.length && observables.forEach) {
?>
<h3 class="subsection-title">Observable Properties</h3>
<dl><?js= self.partial('observables.tmpl', observables) ?></dl>
<?js } ?>
<?js
var members = self.find({kind: 'member', memberof: title === 'Globals'? {isUndefined: true} : doc.longname});
if (members && members.length && members.forEach) {

View File

@@ -14,6 +14,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">
<link type="text/css" rel="stylesheet" href="styles/ol.css">
</head>
<body>
@@ -21,13 +22,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 API Documentation - <?js= title ?></a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="/"><img src="../resources/logo.png"> OpenLayers 3</a>
</div>
</div>
</div>
@@ -47,6 +42,5 @@ allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></
</footer>
<script> prettyPrint(); </script>
<script src="../resources/social-links.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -2,6 +2,8 @@
<dt class="<?js= data.access ?>">
<h4 class="name" id="<?js= id ?>"><?js= data.attribs + name + data.signature ?></h4>
<?js= this.partial('stability.tmpl', data) ?>
<?js if (data.summary) { ?>
<p class="summary"><?js= summary ?></p>
<?js } ?>

View File

@@ -5,6 +5,8 @@ var self = this;
<dt>
<h4 class="name" id="<?js= id ?>"><?js= data.attribs + (kind == 'class'? 'new ':'') + name + data.signature ?></h4>
<?js= this.partial('stability.tmpl', data) ?>
<?js if (data.summary) { ?>
<p class="summary"><?js= summary ?></p>
<?js } ?>

View File

@@ -0,0 +1,37 @@
<?js
var props = obj;
?>
<table class="props">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Settable</th>
<th>Event</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<?js
var self = this;
props.forEach(function(prop) {
if (!prop) { return; }
var setter = prop.readonly ? 'no' : 'yes';
?>
<tr>
<td class="name"><code><?js= prop.name ?></code></td>
<td class="type">
<?js if (prop.type && prop.type.names) {?>
<?js= self.partial('type.tmpl', prop.type.names) ?>
<?js } ?>
</td>
<td class="setter"><?js= setter ?></td>
<td class="event"><code>change:<?js= prop.name.toLowerCase() ?></code></td>
<td class="description last"><?js= prop.description ?></td>
</tr>
<?js }); ?>
</tbody>
</table>

View File

@@ -97,7 +97,7 @@
</td>
<?js } ?>
<td class="description last"><?js= (param.optional ? "(Optional) " : "") + param.description ?><?js if (param.subparams) { ?>
<td class="description last"><?js= param.description ?><?js if (param.subparams) { ?>
<h6>Properties</h6>
<?js= self.partial('params.tmpl', param.subparams) ?>
<?js } ?></td>

View File

@@ -0,0 +1,9 @@
<?js
var data = obj;
var self = this;
if (data.stability) { ?>
<div class="stability stability-<?js= stability ?>">Stability: <?js= data.stability ?></div>
<?js } else { ?>
<div class="stability">Stability: not documented</div>
<?js } ?>

27
bin/combine-examples.py Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/python
import re
import sys
def main(argv):
examples = {}
requires = set()
for filename in argv[1:]:
lines = open(filename).readlines()
if len(lines) > 0 and lines[0].startswith('// NOCOMPILE'):
continue
requires.update(line for line in lines if line.startswith('goog.require'))
examples[filename] = [line for line in lines if not line.startswith('goog.require')]
for require in sorted(requires):
print require,
for filename in sorted(examples.keys()):
print '// ', filename
print '(function(){'
for line in examples[filename]:
print line,
print '})();'
if __name__ == '__main__':
sys.exit(main(sys.argv))

View File

@@ -1,7 +1,5 @@
#!/usr/bin/env python
from collections import defaultdict
from itertools import ifilter
from operator import attrgetter
from optparse import OptionParser
import re
@@ -31,104 +29,12 @@ class Exportable(object):
return ''
class Class(Exportable):
def __init__(self, name, object_literal, objects):
Exportable.__init__(self, name)
self.object_literal = object_literal
self.objects = objects
self.props = set()
__repr__ = simplerepr
def nested_options(self):
def get_class_by_object_literal_name(name):
for k, o in self.objects.iteritems():
if isinstance(o, Class) and o.object_literal.name == name:
return o
return None
for option in sorted(self.object_literal.prop_types.keys()):
types = self.object_literal.prop_types[option].split('|')
base, object_literal = None, None
for t in types:
if t in self.objects:
o = self.objects[t]
if isinstance(o, (Class, Symbol)):
if base:
raise RuntimeError('Multiple "class" types found for '
'option %s.%s: %s, %s.' %
(self.object_literal.name, option,
base.name, o.name))
base = o
elif isinstance(o, ObjectLiteral):
if object_literal:
raise RuntimeError('Multiple "literal" types found for '
'option %s.%s: %s, %s.' %
(self.object_literal.name, option,
object_literal.name, o.name))
object_literal = o
if object_literal:
if not base:
raise RuntimeError('%s "literal" type found for option %s.%s, '
'but no "class" type.' %
(object_literal.name, self.object_literal.name, option))
klass = get_class_by_object_literal_name(object_literal.name)
if not klass:
raise RuntimeError('No constructor taking a %s found.' %
object_literal.name)
yield option, object_literal, klass, base
def export(self):
lines = []
if self.object_literal is None:
lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.name))
else:
lines.append('\n\n\n')
lines.append('/**\n')
lines.append(' * @constructor\n')
lines.append(' * @extends {%s}\n' % (self.name,))
lines.append(' * @param {%s} options Options.\n' % (self.object_literal.extern_name(),))
lines.append(' */\n')
lines.append('%s = function(options) {\n' % (self.export_name(),))
lines.append(' /** @type {%s} */\n' % (self.object_literal.name,))
lines.append(' var arg;\n');
lines.append(' if (goog.isDefAndNotNull(options)) {\n')
# FIXME: we modify the user's options object
lines.append(''.join(
' if (!(options.%(o)s instanceof %(base)s)) {\n'
' options.%(o)s = new %(ctor)s(\n'
' /** @type {%(extern)s} */ (options.%(o)s));\n'
' }\n' %
{'o': o, 'base': b.name, 'ctor': k.export_name(),
'extern': ol.extern_name()} \
for o, ol, k, b in self.nested_options()))
lines.append(' arg = {')
lines.extend(','.join('\n %s: options.%s' % (key, key) for key in sorted(self.object_literal.prop_types.keys())))
lines.append('\n };\n')
lines.append(' } else {\n')
lines.append(' arg = /** @type {%s} */ (options);\n' % (self.object_literal.name,))
lines.append(' }\n')
lines.append(' goog.base(this, arg);\n')
lines.append('};\n')
lines.append('goog.inherits(\n')
lines.append(' %sExport,\n' % (self.name,));
lines.append(' %s);\n' % (self.name,));
lines.append('goog.exportSymbol(\n')
lines.append(' \'%s\',\n' % (self.name,))
lines.append(' %s);\n' % (self.export_name(),))
lines.extend('goog.exportProperty(\n %s,\n \'%s\',\n %s.%s);\n' % (self.name, prop, self.name, prop) for prop in sorted(self.props))
return ''.join(lines)
def export_name(self):
return '%sExport' % self.name
class ObjectLiteral(Exportable):
def __init__(self, name):
def __init__(self, name, objects):
Exportable.__init__(self, name)
self.prop_types = {}
self.objects = objects
__repr__ = simplerepr
@@ -142,13 +48,18 @@ class ObjectLiteral(Exportable):
for prop in sorted(self.prop_types.keys()):
lines.append('\n\n')
lines.append('/**\n')
lines.append(' * @type {%s}\n' % (self.prop_types[prop],))
prop_types = self.prop_types[prop].split('|')
for i, t in enumerate(prop_types):
if t in self.objects and isinstance(self.objects[t], ObjectLiteral):
prop_types[i] = self.objects[t].extern_name()
prop_types = '|'.join(prop_types)
lines.append(' * @type {%s}\n' % (prop_types,))
lines.append(' */\n')
lines.append('%s.prototype.%s;\n' % (self.extern_name(), prop))
return ''.join(lines)
def extern_name(self):
return re.sub(r'ol\.(\S+)', r'olx.\1Extern', self.name)
return re.sub(r'(olx\.\S+)', r'\1Extern', self.name)
def extern_namespace(self):
return '.'.join(self.extern_name().split('.')[:-1]) or None
@@ -174,10 +85,9 @@ class ObjectLiteral(Exportable):
class Symbol(Exportable):
def __init__(self, name, export_symbol, export_as=None):
def __init__(self, name, export_symbol):
Exportable.__init__(self, name)
self.export_symbol = export_symbol
self.export_as = export_as or self.name
self.props = set()
__repr__ = simplerepr
@@ -185,7 +95,7 @@ class Symbol(Exportable):
def export(self):
lines = []
if self.export_symbol:
lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.export_as))
lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.name))
lines.extend('goog.exportProperty(\n %s,\n \'%s\',\n %s.%s);\n' % (self.name, prop, self.name, prop) for prop in sorted(self.props))
return ''.join(lines)
@@ -225,10 +135,10 @@ def main(argv):
name = m.group('name')
if name in objects:
raise RuntimeError(line) # Name already defined
object_literal = ObjectLiteral(name)
object_literal = ObjectLiteral(name, objects)
objects[name] = object_literal
continue
m = re.match(r'\*\s*@property\s*{(?P<type>.*)}\s*(?P<prop>\S+)', line)
m = re.match(r'\*\s*@property\s*{(?P<type>.*?)}\s*(?P<prop>\S+)', line)
if m:
assert object_literal is not None
prop = m.group('prop')
@@ -238,18 +148,6 @@ def main(argv):
object_literal.prop_types[prop] = type
continue
continue
m = re.match(r'@exportClass\s+(?P<name>\S+)(?:\s+(?P<object_literal_name>\S+))?\Z', line)
if m:
name = m.group('name')
if name in objects:
raise RuntimeError(line) # Name already defined
object_literal_name = m.group('object_literal_name')
object_literal = objects[object_literal_name]
if not isinstance(object_literal, ObjectLiteral):
raise RuntimeError(line) # Undefined object literal
klass = Class(name, object_literal, objects)
objects[name] = klass
continue
m = re.match(r'@exportProperty\s+(?P<prop>\S+)\Z', line)
if m:
components = m.group('prop').split('.')
@@ -266,19 +164,17 @@ def main(argv):
objects[name] = symbol
symbol.props.add(prop)
continue
m = re.match(r'@exportSymbol\s+(?P<name>\S+)(?:\s+(?P<export_as>\S+))?\Z', line)
m = re.match(r'@exportSymbol\s+(?P<name>\S+)\Z', line)
if m:
name = m.group('name')
if name in objects:
raise RuntimeError(line) # Name already defined
export_as = m.group('export_as')
symbol = Symbol(name, True, export_as)
symbol = Symbol(name, True)
objects[name] = symbol
if not export_as:
components = m.group('name').split('.')
if re.match(r'[A-Z]', components[-1]):
requires.add(name)
elif len(components) > 1:
else:
requires.add('.'.join(components[:-1]))
continue
raise RuntimeError(line)
@@ -286,7 +182,6 @@ def main(argv):
objects = sorted(objects.values(), key=attrgetter('name'))
if options.exports:
requires.update(obj.name for obj in objects if isinstance(obj, Class))
if requires:
for require in sorted(requires):
sys.stdout.write('goog.require(\'%s\');\n' % (require,))
@@ -309,6 +204,7 @@ def main(argv):
else:
sys.stdout.write('var %s;\n' % (namespace,))
for object_literal in object_literals:
sys.stdout.write(object_literal.typedef())
sys.stdout.write(object_literal.extern())
if options.typedef:

View File

@@ -65,19 +65,12 @@
}
}
// CLOSURE_NO_DEPS has an effect in "raw" and "whitespace" modes only (i.e.
// when COMPILED is false). In "raw" mode we use our own deps file
// (ol-deps.js), so we set CLOSURE_NO_DEPS to true to prevent Google
// Library's base.js script to load deps.js. In "whitespace" mode
// no deps file is needed at all, yet base.js will attempt to load deps.js
// if CLOSURE_NO_DEPS is not set to true.
window.CLOSURE_NO_DEPS = true;
var scriptId = encodeURIComponent(scriptParams.id);
document.write('<link rel="stylesheet" href="../build/ol.css" type="text/css">');
if (mode != 'raw') {
document.write('<scr' + 'ipt type="text/javascript" src="../build/' + oljs + '"></scr' + 'ipt>');
} else {
window.CLOSURE_NO_DEPS = true; // we've got our own deps file
document.write('<scr' + 'ipt type="text/javascript" src="../closure-library/closure/goog/base.js"></scr' + 'ipt>');
document.write('<scr' + 'ipt type="text/javascript" src="../build/ol-deps.js"></scr' + 'ipt>');
document.write('<scr' + 'ipt type="text/javascript" src="' + scriptId + '-require.js"></scr' + 'ipt>');

121
bin/pyglslunit.py Normal file
View File

@@ -0,0 +1,121 @@
#!/usr/bin/python
from optparse import OptionParser
import re
import sys
import pystache
ESCAPE_SEQUENCE = {
'\\': '\\\\',
'\n': '\\n',
'\t': '\\t'
}
def js_escape(s):
return ''.join(ESCAPE_SEQUENCE.get(c, c) for c in s)
def glsl_compress(s, shortNames):
# strip leading whitespace
s = re.sub(r'\A\s+', '', s)
# strip trailing whitespace
s = re.sub(r'\s+\Z', '', s)
# strip multi-line comments
s = re.sub(r'/\*.*?\*/', '', s)
# strip single line comments
s = re.sub(r'//.*?\n', '', s)
# replace multiple whitespace with a single space
s = re.sub(r'\s+', ' ', s)
# remove whitespace between non-word tokens
s = re.sub(r'(\S)\s+([^\w])', r'\1\2', s)
s = re.sub(r'([^\w])\s+(\S)', r'\1\2', s)
# replace original names with short names
for originalName, shortName in shortNames.items():
s = s.replace(originalName, shortName)
return s
def main(argv):
option_parser = OptionParser()
option_parser.add_option('--input')
option_parser.add_option('--output')
option_parser.add_option('--template')
options, args = option_parser.parse_args(argv[1:])
context = {}
nextShortName = ord('a')
shortNames = {}
common, vertex, fragment = [], [], []
attributes, uniforms, varyings = {}, {}, {}
block = None
for line in open(options.input):
if line.startswith('//!'):
m = re.match(r'//!\s+NAMESPACE=(\S+)\s*\Z', line)
if m:
context['namespace'] = m.group(1)
continue
m = re.match(r'//!\s+CLASS=(\S+)\s*\Z', line)
if m:
context['className'] = m.group(1)
continue
m = re.match(r'//!\s+COMMON\s*\Z', line)
if m:
block = common
continue
m = re.match(r'//!\s+VERTEX\s*\Z', line)
if m:
block = vertex
continue
m = re.match(r'//!\s+FRAGMENT\s*\Z', line)
if m:
block = fragment
continue
else:
if block is None:
assert line.rstrip() == ''
else:
block.append(line)
m = re.match(r'attribute\s+\S+\s+(\S+);\s*\Z', line)
if m:
attribute = m.group(1)
if attribute not in attributes:
shortName = chr(nextShortName)
nextShortName += 1
attributes[attribute] = {'originalName': attribute, 'shortName': shortName}
shortNames[attribute] = shortName
m = re.match(r'uniform\s+\S+\s+(\S+);\s*\Z', line)
if m:
uniform = m.group(1)
if uniform not in uniforms:
shortName = chr(nextShortName)
nextShortName += 1
uniforms[uniform] = {'originalName': uniform, 'shortName': shortName}
shortNames[uniform] = shortName
m = re.match(r'varying\s+\S+\s+(\S+);\s*\Z', line)
if m:
varying = m.group(1)
if varying not in varyings:
shortName = chr(nextShortName)
nextShortName += 1
shortNames[varying] = shortName
context['getOriginalFragmentSource'] = js_escape(''.join(common + fragment))
context['getOriginalVertexSource'] = js_escape(''.join(common + vertex))
context['getFragmentSource'] = glsl_compress(''.join(common + fragment), shortNames)
context['getVertexSource'] = glsl_compress(''.join(common + vertex), shortNames)
context['getAttributes'] = [attributes[a] for a in sorted(attributes.keys())]
context['getUniforms'] = [uniforms[u] for u in sorted(uniforms.keys())]
if options.output and options.output != '-':
output = open(options.output, 'w')
else:
output = sys.stdout
output.write(pystache.render(open(options.template).read(), context))
if __name__ == '__main__':
sys.exit(main(sys.argv))

199
build.py
View File

@@ -5,7 +5,7 @@ import gzip
import json
import os
import os.path
import re
import regex as re
import shutil
import sys
@@ -79,8 +79,6 @@ else:
variables.PYTHON = 'python'
variables.PHANTOMJS = 'phantomjs'
TEMPLATE_GLSL_COMPILER_JS = 'build/glsl-unit/bin/template_glsl_compiler.js'
variables.BRANCH = output(
'%(GIT)s', 'rev-parse', '--abbrev-ref', 'HEAD').strip()
@@ -93,8 +91,7 @@ EXPORTS = [path
EXTERNAL_SRC = [
'build/src/external/externs/types.js',
'build/src/external/src/exports.js',
'build/src/external/src/types.js']
'build/src/external/src/exports.js']
EXAMPLES = [path
for path in ifind('examples')
@@ -142,8 +139,12 @@ SRC = [path
if path.endswith('.js')
if path not in SHADER_SRC]
PLOVR_JAR = 'build/plovr-eba786b34df9.jar'
PLOVR_JAR_MD5 = '20eac8ccc4578676511cf7ccbfc65100'
LIBTESS_JS_SRC = [path
for path in ifind('src/libtess.js')
if path.endswith('.js')]
PLOVR_JAR = 'build/plovr-81ed862.jar'
PLOVR_JAR_MD5 = '1c752daaf11ad6220b298e7d2ee2b87d'
PROJ4JS = 'build/proj4js/lib/proj4js-combined.js'
PROJ4JS_ZIP = 'build/proj4js-1.1.0.zip'
@@ -151,27 +152,30 @@ PROJ4JS_ZIP_MD5 = '17caad64cf6ebc6e6fe62f292b134897'
def report_sizes(t):
t.info('uncompressed: %d bytes', os.stat(t.name).st_size)
stringio = StringIO()
gzipfile = gzip.GzipFile(t.name, 'w', 9, stringio)
with open(t.name) as f:
shutil.copyfileobj(f, gzipfile)
gzipfile.close()
t.info(' compressed: %d bytes', len(stringio.getvalue()))
rawsize = os.stat(t.name).st_size
gzipsize = len(stringio.getvalue())
savings = '{0:.2%}'.format((rawsize - gzipsize)/float(rawsize))
t.info('uncompressed: %8d bytes', rawsize)
t.info(' compressed: %8d bytes, (saved %s)', gzipsize, savings)
virtual('default', 'build')
virtual('integration-test', 'lint', 'build', 'build-all',
'test', 'build-examples', 'check-examples', 'doc')
'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('check', 'lint', 'build/ol.css', 'build/ol-all.js', 'test')
virtual('check', 'lint', 'build/ol-all.js', 'test')
virtual('todo', 'fixme')
@@ -183,35 +187,40 @@ def build_ol_css(t):
@target('build/ol.js', PLOVR_JAR, SRC, EXTERNAL_SRC, SHADER_SRC,
'buildcfg/base.json', 'buildcfg/ol.json')
LIBTESS_JS_SRC, 'buildcfg/base.json', 'buildcfg/ol.json')
def build_ol_js(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR, 'build', 'buildcfg/ol.json')
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
PLOVR_JAR, 'build', 'buildcfg/ol.json')
report_sizes(t)
@target('build/ol-simple.js', PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
'buildcfg/base.json', 'buildcfg/ol.json', 'buildcfg/ol-simple.json')
LIBTESS_JS_SRC, 'buildcfg/base.json', 'buildcfg/ol.json',
'buildcfg/ol-simple.json')
def build_ol_simple_js(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR, 'build', 'buildcfg/ol-simple.json')
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
PLOVR_JAR, 'build', 'buildcfg/ol-simple.json')
report_sizes(t)
@target('build/ol-whitespace.js', PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
'buildcfg/base.json', 'buildcfg/ol.json',
LIBTESS_JS_SRC, 'buildcfg/base.json', 'buildcfg/ol.json',
'buildcfg/ol-whitespace.json')
def build_ol_whitespace_js(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR,
'build', 'buildcfg/ol-whitespace.json')
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
PLOVR_JAR, 'build', 'buildcfg/ol-whitespace.json')
report_sizes(t)
virtual('build-all', 'build/ol-all.js')
@target('build/ol-all.js', PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
'buildcfg/base.json', 'buildcfg/ol-all.json')
@target('build/ol-all.js', PLOVR_JAR, SRC, EXTERNAL_SRC, INTERNAL_SRC,
SHADER_SRC, LIBTESS_JS_SRC, 'buildcfg/base.json',
'buildcfg/ol-all.json')
def build_ol_all_js(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR, 'build', 'buildcfg/ol-all.json')
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
PLOVR_JAR, 'build', 'buildcfg/ol-all.json')
@target('build/src/external/externs/types.js', 'bin/generate-exports.py',
@@ -228,20 +237,12 @@ def build_src_external_src_exports_js(t):
'--exports', 'src/objectliterals.jsdoc', EXPORTS)
@target('build/src/external/src/types.js', 'bin/generate-exports.py',
'src/objectliterals.jsdoc')
def build_src_external_src_types_js(t):
t.output('%(PYTHON)s', 'bin/generate-exports.py',
'--typedef', 'src/objectliterals.jsdoc')
if os.path.exists(TEMPLATE_GLSL_COMPILER_JS):
for glsl_src in GLSL_SRC:
for glsl_src in GLSL_SRC:
def shader_src_helper(glsl_src):
@target(glsl_src.replace('.glsl', 'shader.js'), glsl_src,
'src/ol/webgl/shader.mustache')
'src/ol/webgl/shader.mustache', 'bin/pyglslunit.py')
def shader_src(t):
t.run('%(NODE)s', TEMPLATE_GLSL_COMPILER_JS,
t.run('%(PYTHON)s', 'bin/pyglslunit.py',
'--input', glsl_src,
'--template', 'src/ol/webgl/shader.mustache',
'--output', t.name)
@@ -260,7 +261,8 @@ def _build_require_list(dependencies, output_file_name):
f.write('goog.require(\'%s\');\n' % (require,))
@target('build/src/internal/src/requireall.js', SRC, SHADER_SRC)
@target('build/src/internal/src/requireall.js', SRC, SHADER_SRC,
LIBTESS_JS_SRC)
def build_src_internal_src_requireall_js(t):
_build_require_list(t.dependencies, t.name)
@@ -277,7 +279,8 @@ def build_src_internal_types_js(t):
'--typedef', 'src/objectliterals.jsdoc')
virtual('build-examples', 'examples', EXAMPLES_COMBINED)
virtual('build-examples', 'examples', 'build/examples/all.combined.js',
EXAMPLES_COMBINED)
virtual('examples', 'examples/example-list.xml', EXAMPLES_JSON)
@@ -293,6 +296,20 @@ def examples_examples_list_js(t):
t.run('%(PYTHON)s', 'bin/exampleparser.py', 'examples', 'examples')
@target('build/examples/all.combined.js', 'build/examples/all.js', PLOVR_JAR,
SRC, INTERNAL_SRC, SHADER_SRC, LIBTESS_JS_SRC,
'buildcfg/base.json', 'build/examples/all.json')
def build_examples_all_combined_js(t):
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
PLOVR_JAR, 'build', 'buildcfg/examples-all.json')
report_sizes(t)
@target('build/examples/all.js', EXAMPLES_SRC)
def build_examples_all_js(t):
t.output('bin/combine-examples.py', t.dependencies)
@rule(r'\Abuild/examples/(?P<id>.*).json\Z')
def examples_star_json(name, match):
def action(t):
@@ -309,10 +326,11 @@ def examples_star_json(name, match):
'../externs/bingmaps.js',
'../externs/bootstrap.js',
'../externs/geojson.js',
'../externs/topojson.js',
'../externs/oli.js',
'../externs/proj4js.js',
'../externs/tilejson.js',
'../externs/w3c_device_sensor_event.js',
'../externs/closure-compiler.js',
],
})
with open(t.name, 'w') as f:
@@ -324,10 +342,11 @@ def examples_star_json(name, match):
@rule(r'\Abuild/examples/(?P<id>.*).combined.js\Z')
def examples_star_combined_js(name, match):
def action(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR, 'build',
'build/examples/%(id)s.json' % match.groupdict())
t.output('%(JAVA)s', '-server', '-XX:+TieredCompilation', '-jar',
PLOVR_JAR, 'build', 'build/examples/%(id)s.json' %
match.groupdict())
report_sizes(t)
dependencies = [PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
dependencies = [PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC, LIBTESS_JS_SRC,
'buildcfg/base.json',
'examples/%(id)s.js' % match.groupdict(),
'build/examples/%(id)s.json' % match.groupdict()]
@@ -347,13 +366,15 @@ def serve_precommit(t):
virtual('lint', 'build/lint-timestamp', 'build/lint-generated-timestamp',
'build/check-requires-timestamp', 'build/check-whitespace-timestamp')
'build/lint-libtess.js-timestamp', 'build/check-requires-timestamp',
'build/check-whitespace-timestamp')
@target('build/lint-timestamp', SRC, EXAMPLES_SRC, SPEC, precious=True)
def build_lint_src_timestamp(t):
t.run('%(GJSLINT)s',
'--jslint_error=all',
'--custom_jsdoc_tags=todo',
'--strict',
t.newer(t.dependencies))
t.touch()
@@ -370,6 +391,7 @@ def build_lint_generated_timestamp(t):
'--jslint_error=all',
# ignore error for max line length (for these auto-generated sources)
'--disable=110',
'--custom_jsdoc_tags=todo',
# for a complete list of error codes to allow, see
# http://closure-linter.googlecode.com/svn/trunk/closure_linter/errors.py
'--limited_doc_files=%s' % (','.join(limited_doc_files),),
@@ -378,6 +400,16 @@ def build_lint_generated_timestamp(t):
t.touch()
@target('build/lint-libtess.js-timestamp', LIBTESS_JS_SRC, precious=True)
def build_lint_libtess_js_timestamp(t):
t.run('%(GJSLINT)s',
'--jslint_error=all',
'--disable=110',
'--strict',
t.newer(t.dependencies))
t.touch()
def _strip_comments(lines):
# FIXME this is a horribe hack, we should use a proper JavaScript parser
# here
@@ -402,7 +434,7 @@ def _strip_comments(lines):
@target('build/check-requires-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC,
EXAMPLES_SRC, SHADER_SRC, SPEC)
EXAMPLES_SRC, SHADER_SRC, LIBTESS_JS_SRC, SPEC)
def build_check_requires_timestamp(t):
from zipfile import ZipFile
unused_count = 0
@@ -456,17 +488,23 @@ def build_check_requires_timestamp(t):
self.children = {}
def _build_re(self, key):
if len(self.children) == 1:
if key == '*':
assert len(self.children) == 0
# We want to match `.doIt` but not `.SomeClass` or `.more.stuff`
return '(?=\\.[a-z]\\w*\\b(?!\\.))'
elif len(self.children) == 1:
child_key, child = next(self.children.iteritems())
child_re = '\\.' + child._build_re(child_key)
child_re = child._build_re(child_key)
if child_key != '*':
child_re = '\\.' + child_re
if self.present:
return key + '(' + child_re + ')?'
else:
return key + child_re
elif self.children:
children_re = '(?:\\.(?:' + '|'.join(
self.children[k]._build_re(k)
for k in sorted(self.children.keys())) + '))'
children_re = '(?:' + '|'.join(
('\\.' if k != '*' else '') + self.children[k]._build_re(k)
for k in sorted(self.children.keys())) + ')'
if self.present:
return key + children_re + '?'
else:
@@ -484,6 +522,13 @@ def build_check_requires_timestamp(t):
if component not in node.children:
node.children[component] = Node()
node = node.children[component]
if component[0].islower():
# We've arrived at a namespace provide like `ol.foo`.
# In this case, we want to match uses like `ol.foo.doIt()` but
# not match things like `new ol.foo.SomeClass()`.
# For this purpose, we use the special wildcard key for the child.
node.children['*'] = Node()
else:
node.present = True
provide_res = [child.build_re(key)
for key, child in root.children.iteritems()]
@@ -534,7 +579,7 @@ def build_check_requires_timestamp(t):
@target('build/check-whitespace-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC,
EXAMPLES_SRC, SPEC, EXPORTS, JSDOC_SRC,
EXAMPLES_SRC, SPEC, EXPORTS, JSDOC_SRC, LIBTESS_JS_SRC,
precious=True)
def build_check_whitespace_timestamp(t):
CR_RE = re.compile(r'\r')
@@ -574,14 +619,14 @@ def plovr_jar(t):
t.info('downloaded %r', t.name)
virtual('doc', 'build/jsdoc-%(BRANCH)s-timestamp' % vars(variables))
virtual('apidoc', 'build/jsdoc-%(BRANCH)s-timestamp' % vars(variables))
@target('build/jsdoc-%(BRANCH)s-timestamp' % vars(variables), 'host-resources',
'build/src/external/src/exports.js', 'build/src/external/src/types.js',
SRC, SHADER_SRC, ifind('doc/template'))
SRC, SHADER_SRC, ifind('apidoc/template'))
def jsdoc_BRANCH_timestamp(t):
t.run('%(JSDOC)s', '-c', 'doc/conf.json', 'src', 'doc/index.md',
t.run('%(JSDOC)s', '-c', 'apidoc/conf.json', 'src', 'apidoc/index.md',
'-d', 'build/hosted/%(BRANCH)s/apidoc')
t.touch()
@@ -661,12 +706,11 @@ def host_examples(t):
@target('check-examples', 'host-examples', phony=True)
def check_examples(t):
examples = ['build/hosted/%(BRANCH)s/' + e for e in EXAMPLES]
examples = ['build/hosted/%(BRANCH)s/' + e
for e in EXAMPLES
if not open(e.replace('.html', '.js')).readline().startswith('// NOCOMPILE')]
all_examples = \
[e + '?mode=raw' for e in examples] + \
[e + '?mode=whitespace' for e in examples] + \
[e + '?mode=simple' for e in examples] + \
examples
[e + '?mode=advanced' for e in examples]
for example in all_examples:
t.run('%(PHANTOMJS)s', 'bin/check-example.js', example)
@@ -693,7 +737,7 @@ virtual('test-deps', INTERNAL_SRC, PROJ4JS, 'build/test/requireall.js')
@target('test', 'test-deps', phony=True)
def test(t):
t.run('%(PHANTOMJS)s', 'test/mocha-phantomjs.coffee', 'test/ol.html')
t.run('%(PHANTOMJS)s', 'test/mocha-phantomjs.js', 'test/ol.html')
@target('fixme', phony=True)
@@ -741,5 +785,50 @@ def check_dependencies(t):
print 'For certain targets all above programs need to be present.'
@target('help')
def display_help(t):
print '''
build.py - The OpenLayers 3 build script.
Usage:
./build.py [options] [target] (on Unix-based machines)
<python-executable.exe> build.py [options] [target] (on Windows machines)
There is one option:
-c - Cleans up the repository from previous builds.
The most common targets are:
serve - Serves files through plovr, usually on port 9810.
lint - Runs gjslint on all sourcefiles to enforce specific syntax.
build - Builds singlefile versions of OpenLayers JavaScript and
CSS. This is also the default build target which runs when
no target is specified.
test - Runs the testsuite and displays the results.
check - Runs the lint-target, builds some OpenLayers files, and
then runs test. Many developers call this target often
while working on the code.
help - Shows this help.
Other less frequently used targets are:
apidoc - Builds the API-Documentation using JSDoc3.
integration-test - Builds all examples in various modes and usually takes a
long time to finish. This target calls the following
targets: lint, build, build-all, test, build-examples,
check-examples and apidoc.
reallyclean - Remove untracked files from the repository.
checkdeps - Checks whether all required development software is
installed on your machine.
fixme - Will print a list of parts of the code that are marked
with either TODO or FIXME.
todo - is an alias for the fixme-target
plovr - Fetches the required plovr.jar. Usually called by other
targets that depend on plovr.
If no target is given, the build-target will be executed.
The above list is not complete, please see the source code for not-mentioned
and only seldomly called targets.
'''
if __name__ == '__main__':
main()

View File

@@ -6,7 +6,10 @@
"accessControls": "ERROR",
"ambiguousFunctionDecl": "ERROR",
"checkDebuggerStatement": "WARNING",
"checkEventfulObjectDisposal": "ERROR",
"checkProvides": "ERROR",
"checkRegExp": "ERROR",
"checkStructDictInheritance": "ERROR",
"checkTypes": "ERROR",
"checkVars": "ERROR",
"const": "ERROR",
@@ -14,20 +17,25 @@
"deprecated": "ERROR",
"duplicate": "ERROR",
"duplicateMessage": "ERROR",
"es3": "ERROR",
"es5Strict": "ERROR",
"externsValidation": "ERROR",
"fileoverviewTags": "ERROR",
"globalThis": "ERROR",
"internetExplorerChecks": "ERROR",
"invalidCasts": "ERROR",
"misplacedTypeAnnotation": "ERROR",
"missingProperties": "ERROR",
"nonStandardJsDocs": "ERROR",
"strictModuleDepCheck": "ERROR",
"suspiciousCode": "ERROR",
"typeInvalidation": "ERROR",
"tweakValidation": "ERROR",
"undefinedNames": "ERROR",
"undefinedVars": "ERROR",
"unknownDefines": "ERROR",
"uselessCode": "ERROR",
"violatedModuleDep": "ERROR",
"visibility": "ERROR"
},
@@ -41,11 +49,12 @@
"externs": [
"//json.js",
"../externs/bingmaps.js",
"../externs/closure-compiler.js",
"../externs/geojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/w3c_device_sensor_event.js"
"../externs/topojson.js"
],
"level": "VERBOSE",
@@ -99,7 +108,8 @@
"goog.debug.logRecordSerializer",
"goog.debug.makeWhitespaceVisible",
"goog.debug.normalizeErrorObject",
"goog.debug.reflect"
"goog.debug.reflect",
"goog.log"
]
}

View File

@@ -0,0 +1,20 @@
{
"externs": [
"//json.js",
"//jquery-1.7.js",
"../externs/bingmaps.js",
"../externs/bootstrap.js",
"../externs/closure-compiler.js",
"../externs/geojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/topojson.js"
],
"id": "simple",
"inherits": "base.json",
"inputs": [
"../build/examples/all.js",
"../build/src/internal/src/types.js"
]
}

View File

@@ -6,18 +6,18 @@
"//json.js",
"../build/src/external/externs/types.js",
"../externs/bingmaps.js",
"../externs/closure-compiler.js",
"../externs/geojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/w3c_device_sensor_event.js"
"../externs/topojson.js"
],
"inherits": "base.json",
"inputs": [
"../build/src/internal/src/requireall.js",
"../build/src/internal/src/types.js",
"../build/src/external/src/exports.js"
]

View File

@@ -14,19 +14,21 @@
"externs": [
"//json.js",
"../build/src/external/externs/types.js",
"../externs/bingmaps.js",
"../externs/closure-compiler.js",
"../externs/geojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/w3c_device_sensor_event.js"
"../externs/topojson.js"
],
"inherits": "ol.json",
"inputs": [
"../build/src/internal/src/requireall.js",
"../build/src/internal/src/types.js"
"../build/src/external/src/exports.js"
],
"mode": "SIMPLE",

View File

@@ -16,26 +16,26 @@
"externs": [
"//json.js",
"../externs/bingmaps.js",
"../externs/closure-compiler.js",
"../externs/geojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/w3c_device_sensor_event.js"
"../externs/topojson.js"
],
"inherits": "ol.json",
"inputs": [
"../build/src/internal/src/requireall.js",
"../build/src/internal/src/types.js"
"../build/src/internal/src/requireall.js"
],
"mode": "WHITESPACE",
// Note: we can't have a (function(){%output%})() output wrapper with
// WHITESPACE and SIMPLE modes. See this link for explanations:
// https://groups.google.com/forum/#!topic/plovr/gQyZEa2NpsU
"output-wrapper": "%output%",
"output-wrapper": [
"var CLOSURE_NO_DEPS = true;\n",
"%output%"
],
"pretty-print": true
}

View File

@@ -16,21 +16,21 @@
"//json.js",
"../build/src/external/externs/types.js",
"../externs/bingmaps.js",
"../externs/closure-compiler.js",
"../externs/geojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/w3c_device_sensor_event.js"
"../externs/topojson.js"
],
"inherits": "base.json",
"inputs": [
"../build/src/external/src/exports.js",
"../build/src/external/src/types.js"
"../build/src/external/src/exports.js"
],
"output-wrapper": "(function(){%output%})();",
"output-wrapper": "// OpenLayers 3. see http://ol3js.org/\n(function(){%output%})();",
"paths": [
"../src"

View File

@@ -1,17 +1,32 @@
.ol-attribution {
position: absolute;
text-align: right;
color: #eeeeee;
bottom: 0;
right: 0;
background: rgba(0,60,136,0.3);
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
padding: 6px;
}
.ol-attribution a {
color: white;
text-decoration: none;
}
/* rgba is not supported on IE <= 8, fall back to black text so that it's readable */
.ol-attribution {
color: #000000;
}
.ol-attribution:not([ie8andbelow]) {
color: #eeeeee;
background: rgba(0,60,136,0.3);
}
/* white links are unreadable on IE <= 8 with no background, fall back to blue links */
.ol-attribution a {
color: #7b98bc;
}
.ol-attribution a:not([ie8andbelow]) {
color: white;
}
.ol-attribution ul {
margin: 0;
padding: 0;
@@ -26,25 +41,32 @@
.ol-attribution li:not(:last-child):after {
content: "\2003";
}
.ol-dragbox {
position: absolute;
border: 2px solid red;
.ol-attribution-bing-tos {
float:right;
padding-top: 2px;
white-space: nowrap;
}
.ol-full-screen {
background: rgba(255,255,255,0.4);
/* IE <= 8 doesn't support rgba, fall back to a light grey */
background: #eee;
border-radius: 4px;
padding: 2px;
position: absolute;
right: 8px;
top: 8px;
}
.ol-full-screen:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a light grey */
background: rgba(255,255,255,0.4);
}
@media print {
.ol-full-screen {
display: none;
}
}
.ol-full-screen a {
background: rgba(0,60,136,0.5);
/* IE <= 8 doesn't support rgba, fall back to a light blue */
background: #7b98bc;
color: white;
display: block;
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
@@ -58,6 +80,10 @@
text-decoration: none;
width: 22px;
}
.ol-full-screen a:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a light blue */
background: rgba(0,60,136,0.5);
}
a.ol-full-screen-false:after {
content: "\2194";
}
@@ -72,6 +98,11 @@ a.ol-full-screen-true:after {
border-radius: 2px;
}
.ol-full-screen a:hover {
/* IE <= 8 doesn't support rgba, fall back to a light blue */
background: #4c6079;
}
.ol-full-screen a:hover:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a light blue */
background: rgba(0,60,136,0.7);
}
.ol-logo {
@@ -82,6 +113,7 @@ a.ol-full-screen-true:after {
}
.ol-logo ul {
margin: 0;
padding: 0;
}
.ol-logo ul li {
display: inline;
@@ -95,13 +127,18 @@ a.ol-full-screen-true:after {
}
.ol-scale-line {
background: rgba(0,60,136,0.3);
/* IE <= 8 doesn't support rgba, fall back to a light blue */
background: #95b9e6;
border-radius: 4px;
bottom: 8px;
left: 8px;
padding: 2px;
position: absolute;
}
.ol-scale-line:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a light blue */
background: rgba(0,60,136,0.3);
}
.ol-scale-line-inner {
border: 1px solid #eeeeee;
border-top: none;
@@ -124,14 +161,20 @@ a.ol-full-screen-true:after {
user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
.ol-zoom {
position: absolute;
top: 8px;
left: 8px;
background: rgba(255,255,255,0.4);
/* IE <= 8 doesn't support rgba, fall back to a light grey */
background-color: #eee;
border-radius: 4px;
padding: 2px;
}
/* IE <= 8 doesn't support rgba, fall back to a light grey */
.ol-zoom:not([ie8andbelow]) {
background-color: rgba(255,255,255,0.4);
}
@media print {
.ol-zoom {
display: none;
@@ -151,7 +194,12 @@ a.ol-full-screen-true:after {
height: 22px;
width: 22px;
line-height: 19px;
background: rgba(0,60,136,0.5);
/* IE <= 8 doesn't support rgba, fall back to a light blue */
background-color: #7b98bc;
}
.ol-zoom a:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a light blue */
background-color: rgba(0,60,136,0.5);
}
.ol-touch .ol-zoom a {
font-size: 20px;
@@ -160,28 +208,30 @@ a.ol-full-screen-true:after {
line-height: 26px;
}
.ol-zoom a:hover {
background: rgba(0,60,136,0.7);
color: #fff;
text-decoration: none;
/* IE <= 8 doesn't support rgba, fall back to a lighter blue */
background-color: #4c6079;
}
.ol-zoom a:hover:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a lighter blue */
background-color: rgba(0,60,136,0.7);
}
.ol-zoom-in {
border-radius: 2px 2px 0 0;
}
.ol-zoom-in:before {
content: "+";
}
.ol-zoom-out {
border-radius: 0 0 2px 2px;
}
.ol-zoom-out:before {
content: "\2212";
}
.ol-zoomslider {
position: absolute;
top: 67px;
left: 8px;
background: rgba(255, 255, 255, 0.4);
/* IE <= 8 doesn't support rgba, fall back to a light grey */
background: #eee;
border-radius: 4px;
width: 28px;
height: 200px;
@@ -190,15 +240,79 @@ a.ol-full-screen-true:after {
padding: 0;
margin: 0;
}
.ol-zoomslider:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a light grey */
background: rgba(255, 255, 255, 0.4);
}
.ol-zoomslider-thumb {
position: absolute;
display: block;
padding: 0;
margin: 2px;
background: rgba(0,60,136,0.5);
/* IE <= 8 doesn't support rgba, fall back to a lighter blue */
background: #7b98bc;
border-radius: 2px;
outline: none;
overflow: hidden;
height: 20px;
width: 24px;
}
.ol-zoomslider-thumb:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a lighter blue */
background: rgba(0,60,136,0.5);
}
.ol-zoom-extent {
position: absolute;
/* IE <= 8 doesn't support rgba, fall back to a light grey */
background: #eee;
border-radius: 4px;
left: 8px;
padding: 2px;
top: 65px;
}
.ol-zoom-extent:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a light grey */
background: rgba(255,255,255,0.4);
}
@media print {
.ol-zoom-extent {
display: none;
}
}
.ol-zoom-extent a {
display: block;
margin: 1px;
padding: 0;
color: white;
font-size: 16px;
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
font-weight: bold;
text-decoration: none;
text-align: center;
height: 22px;
width: 22px;
/* IE <= 8 doesn't support rgba, fall back to a lighter blue */
background-color: #7b98bc;
border-radius: 2px;
}
.ol-zoom-extent a:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a lighter blue */
background-color: rgba(0, 60, 136, 0.5);
}
.ol-touch .ol-zoom-extent a {
font-size: 20px;
height: 30px;
width: 30px;
line-height: 26px;
}
.ol-zoom-extent a:hover {
/* IE <= 8 doesn't support rgba, fall back to a lighter blue */
background-color: #4c6079;
}
.ol-zoom-extent a:hover:not([ie8andbelow]) {
/* IE <= 8 doesn't support rgba, fall back to a lighter blue */
background-color: rgba(0, 60, 136, 0.7);
}
.ol-zoom-extent a:after {
content: "E";
}

12
doc/index.hbs Normal file
View File

@@ -0,0 +1,12 @@
---
title: Documentation
layout: doc.hbs
---
# Documentation
If you're eager to get your first OpenLayers 3 map on a page, dive into the [quick start](quickstart.html).
For a more in-depth overview of OpenLayers 3 core concepts, check out the [tutorials](tutorials/).
Find additional reference material in the [API docs](../apidoc).

View File

@@ -1,17 +0,0 @@
Finding your way around
-----------------------
See the class list to the right and especially take a look at {@link ol.Map} and {@link ol.layer.Layer} because those are the central objects.
In general every use of OpenLayers starts by initializing a map, then adding the required layers. Controls and interactions can be added to change the behavior of the map.
Projections
-----------
A {@link ol.Projection} defines which point on earth is represented by a pair of coordinates. Coordinates within OpenLayers can be used in various projections where some common projections are always supported, others can be used via Proj4js.
Maps and Layers
---------------
A map in OpenLayers is essentially a staple of layers that is viewed from the top. Layers are responsible for retieving data and displaying it.
Contributing
------------
See CONTRIBUTING.md for instructions on building and tesing OpenLayers. The file does also describe how to commit your changes to OpenLayers.

132
doc/quickstart.hbs Normal file
View File

@@ -0,0 +1,132 @@
---
title: Quick Start
layout: doc.hbs
---
# Quick Start
## Put a map on a page
Below you'll find a complete working example. Create a new file, copy in the contents below, and open in a browser:
```xml
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="http://ol3js.org/en/{{ latest }}/build/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>
<title>OpenLayers 3 example</title>
</head>
<body>
<h2>My Map</h2>
<div id="map" class="map"></div>
<script type="text/javascript">
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
})
],
view: new ol.View2D({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
</script>
</body>
</html>
```
## Understanding what is going on
To include a map a web page you will need 3 things:
1. Include OpenLayers
2. `<div>` map container
3. JavaScript to create a simple map
### Include OpenLayers
```xml
<script src="http://ol3js.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.
### `<div>` to contain the map
```xml
<div id="map" class="map"></div>
```
The map in the application is contained in a [`<div>` HTML element](http://en.wikipedia.org/wiki/Span_and_div). Through this `<div>` the map properties like width, height and border can be controlled through CSS. Here's the CSS element used to make the map 400 pixels high and as wide as the browser window.
```xml
<style>
.map {
height: 400px; width: 100%;
}
</style>
```
### JavaScript to create a simple map
```js
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
})
],
view: new ol.View2D({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
```
With this JavaScript code, a map object is created with a MapQuest Open Aerial layer zoomed on the African East coast. Let's break this down:
The following line creates an OpenLayers `Map` object. Just by itself, this does nothing since there's no layers or interaction attached to it.
```js
var map = new ol.Map({ ... });
```
To attach the map object to the `<div>`, the map object takes a `target` into arguments. The value is the `id` of the `<div>`:
```js
target: 'map'
```
The `layers: [ ... ]` array is used to define the list of layers available in the map. The first and only layer right now is a tiled layer:
```js
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
})
]
```
Layers in OpenLayers 3 are defined with a type (Image, Tile or Vector) which contains a source. The source is the protocol used to get the map tiles. You can consult the list of [available layer sources here](/en/{{ latest }}/apidoc/ol.source.html)
The next part of the `Map` object is the `View`. The view allow to specify the center, resolution, and rotation of the map. Right now, only `View2D` is supported, but other views should be available at some point. The simplest way to define a view is to define a center point and a zoom level. Note that zoom level 0 is zoomed out.
```js
view: new ol.View2D({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
```
You will notice that the `center` specified is in lat/lon coordinates (EPSG:4326). Since the only layer we use is in Spherical Mercator projection (EPSG:3857), we can reproject them on the fly to be able to zoom the map on the right coordinates.

View File

@@ -0,0 +1,73 @@
---
title: Basic Concepts
layout: doc.hbs
---
# Basic Concepts
## Map
The core component of OpenLayers 3 is the map (`ol.Map`). It is rendered to a `target` container (e.g. a `div` element on the web page that contains the map). All map properties can either be configured at construction time, or by using setter methods, e.g. `setTarget()`.
```xml
<div id="map" style="width: 100%, height: 400px"></div>
<script>
var map = new ol.Map({target: 'map'});
</script>
```
## View
`ol.Map` is not responsible for things like center, zoom level and projection of the map. Instead, these are properties of an `ol.View` instance - typically an `ol.View2D` for 2D maps. The reason for this abstraction is the idea of instantly switching e.g. between a 2D and a tilted 3D view, without the need to maintain two copies of the `layers`.
```js
map.setView(new ol.View2D({
center: [0, 0],
zoom: 2
}));
```
An `ol.View2D` also has a `projection`. The projection determines the coordinate system of the `center` and the units for map resolution calculations. If not specified (like in the above snippet), the default projection is Spherical Mercator (EPSG:3857), with meters as map units.
The `zoom` option is a convenient way to specify the map resolution. The available zoom levels are determined by `maxZoom` (default: 28), `zoomFactor` (default: 2) and `maxResolution` (default is calculated in such a way that the projection's validity extent fits in a 256x256 pixel tile). Starting at zoom level 0 with a resolution of `maxResolution` units per pixel, subsequent zoom levels are calculated by dividing the previous zoom level's resolution by `zoomFactor`, until zoom level `maxZoom` is reached.
## Source
To get remote data for a layer, OpenLayers 3 uses `ol.source.Source` subclasses. These are available for free and commercial map tile services like OpenStreetMap or Bing, for OGC sources like WMS or WMTS, and for vector data in formats like GeoJSON or KML.
```js
var osmSource = new ol.source.OSM();
```
## Layer
A layer is a visual representation of data from a `source`. OpenLayers 3 has three basic types of layers: `ol.layer.Tile`, `ol.layer.Image` and `ol.layer.Vector`.
`ol.layer.Tile` is for layer sources that provide pre-rendered, tiled images in grids that are organized by zoom levels for specific resolutions.
`ol.layer.Image` is for server rendered images that are available for arbitrary extents and resolutions.
`ol.layer.Vector` is for vector data that is rendered client-side.
```js
var osmLayer = new ol.layer.Tile({source: osmSource});
map.addLayer(osmLayer);
```
## Putting it all together
The above snippets can be conflated to a self contained map configuration with view and layers:
```xml
<div id="map" style="width: 100%, height: 400px"></div>
<script>
new ol.Map({
layers: [
new ol.layer.Tile({source: new ol.source.OSM()})
],
view: new ol.View2D({
center: [0, 0],
zoom: 2
}),
target: 'map'
});
</script>
```

8
doc/tutorials/index.hbs Normal file
View File

@@ -0,0 +1,8 @@
---
title: Tutorials
layout: doc.hbs
---
# Tutorials
We'll be putting together a more comprehensive set of tutorials here. For now, you can take a look at the [basic concepts](concepts.html) tutorial. Stay tuned for more!

View File

@@ -1,3 +0,0 @@
{
"title": "OpenLayers 3 Architecture"
}

View File

@@ -1,274 +0,0 @@
CLASS HIERARCHY
===============
```
goog.math.Coordinate // Simple 2D point
|
+- TileCoord
goog.math.Box
|
+- Extent // The extent of a single object in two dimensions, projection not stored
|
+- TileBounds // A range of tiles in two dimensions, integer coordinates, z not stored
Projection
goog.events.EventTarget
|
+- MVCObject
| |
| +- Camera
| |
| +- Control
| | |
| | +- ?
| |
| +- Layer
| | |
| | +- TileLayer
| | | |
| | | +- TMSTileLayer
| | | |
| | | +- WMTSTileLayer
| | | |
| | | +- XYZTileLayer / OSMTileLayer
| | |
| | +- VectorLayer
| | |
| | +- ImageLayer
| |
| +- LayerRenderer
| |
| +- LayerRendererOptions
| |
| +- Map
| |
| +- MapRenderer
| | |
| | +- HTMLMapRenderer
| | |
| | +- WebGLMapRenderer
| |
| +- MVCArray
| | |
| | +- ControlArray
| | |
| | +- LayerViewArray
|
| +- TileQueue
|
+- Tile
```
Layer renderer hierarchy
------------------------
```
goog.events.EventTarget
|
+- MVCObject
|
+- LayerRenderer
|
+- SingleTileLayerRenderer
| |
| +- HTMLSingleTileLayerRenderer
| |
| +- WebGLSingleTileLayerRenderer
|
+- TileLayerRenderer
| |
| +- HTMLTileLayerRenderer
| |
| +- WebGLTileLayerRenderer
|
+- VectorLayerRenderer
| |
| +- HTMLVectorLayerRenderer
| | |
| | +- SVGHTMLVectorLayerRenderer
| | |
| | +- Canvas2DHTMLVectorLayerRenderer
| | |
| | +- VMLHTMLVectorLayerRenderer
| |
| +- WebGLVectorLayerRenderer
```
OBJECT PROPERTIES AND METHODS
=============================
Notation:
- `property type` property with type, trailing ? indicates unsure, getters and setters are assumed to exist.
- `f(args) -> type` function taking args returning type.
- `f(args) -> type = something` f is a trivial wrapper around something.
- `fires 'x'` fires events of type 'x'.
Principles:
- All non-trivial objects inherit from `MVCObject`.
- All non-trivial collections are either `MVCArrays` or a child class thereof.
- Resolutions are `Array.<number>`, infinitely scalable resources (e.g. vectore layers) have resolutions == null.
```
MVCObject
as Google Maps MVCObject
freeze()
unfreeze()
TileCoord
clone() -> TileCoord
getHash() -> number
TileBounds
forEachTileCoord(z, function(tileCoord))
Tile
tileCoord TileCoord
url string
state UNLOADED | LOADING | LOADED
fires 'loaded' // when loaded
fires 'aborted' // when loading is aborted
Camera
position goog.math.Coordinate
resolution number
rotation number
Layer
projections Array.<Projection>
extent Extent
getResolutions() -> Array.<number>|null
fires 'change' // when data changes
LayerArray
getResolutions() -> Array.<number>|null
getMaxResolution() = this.getResolutions()[0] | null
LayerRendererOptions
layer Layer
visible boolean
opacity number
brightness number
color number
hue number
saturation number
Map
projection Projection
renderer Renderer
layers LayerArray
addLayer(layer) = layers.push(layer)
getExtent() -> Extent
getMaxResolution() = layers.getMaxResolution()
TileGrid
resolutions Array.<number>
extent ol.Extent
xEast boolean
ySouth boolean
origin(s) Coord|Array.<Coord>
tileSize goog.math.Size
forEachTileCoordChild(tileCoord, function(z, TileBounds))
forEachTileCoordParent(tileCoord, function(z, TileBounds))
getExtentTileBounds(z, extent) -> TileBounds
getTileCoord(coordinate) -> TileCoord
getTileCoordCenter(tileCoord) -> goog.math.Coordinate
getTileCoordExtent(tileCoord) -> ol.Extent
getTileCoordResolution(tileCoord) -> number
getZForResolution(resolution) -> number
TileLayer
tileGrid TileGrid
tileUrl function(tileCoord) -> string
getTileCoordUrl(tileCoord) -> string = this.tileUrl(tileCoord)
TileQueue
camera Camera // or maybe MVCArray.<Camera> ?
getTileCoordPriority(tileCoord) -> number // private
enqueueTile(Tile)
VectorLayer
forEachFeature(resolution, extent, projection, function(Feature))
Renderer
target HTMLDivElement
map Map
camera Camera
getCapabilities() -> Array.<string> // maybe ?
```
Questions:
- Store tile layer extent in TileLayer or in TileGrid? (not clear)
Two concepts: tile coordinate system range and and available data extent.
TileGrid extent is range (or validity extent) of the tile coordinate system.
TileLayer extent is the available data extent. A particular TileGrid may range
from 0,0 to 10,10. My cache may conform to that grid but I may only have tiles
ranging from 2,2 to 8,8. When you need to wrap multiple worlds, you pay
attention to the TileGrid extent. When you need to decide whether or not to
bother requesting a tile, you pay attention to the TileLayer extent.
- Who determines "best" resolution? (static function?)
Todo: if tile layer extent stored in TileLayer rather than TileGrid then extent
will occasionally need to be passed to TileGrid functions for cropping.
DESIGN ASSERTIONS
=================
Map
- A map has a renderer (the map renderer).
- A map has a camera.
- Multiple maps can share the same camera.
- A map has a layer list.
Layer
- A layer can have multiple projections (the supported projections).
- A layer advertizes the projections it supports.
- A layer returns no data if asked data for an unsupported projection.
LayerRendererOptions
- A layer renderer options object stores view-related states for a layer.
- Options include visibility, opacity, saturation, hue, etc.
- A layer renderer options object has a layer.
- Multiple layer renderer options can share the same layer.
- In other words a layer can be viewed in different manners.
Renderer
- The map renderer responds to events.
- The map renderer receives events from the camera.
- The map renderer creates layer renderers.
Control
- A control may listen to map events.
- A control may listen to camera events.
- A map navigation control acts on the camera.
MVC
- Types can be described in MVC terms.
- Models don't know what rendering means.
- Maps are models.
- Layers are models.
- Layer views are models (sorry!).
- Cameras are models.
- Layer lists are collections.
- Renderers are views.
- Controls are views or controllers or both.
- An attribution control is a view.
- A map navigation control is a controller.
- A zoom slider control is both a view and a controller.

60
examples/accessible.html Normal file
View File

@@ -0,0 +1,60 @@
<!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="../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>Accessibility example</title>
<style>
a.accesskey {
color: #FFFFFF;
}
</style>
</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">
<a class="accesskey" onclick="document.getElementById('map').focus(); return false;" accesskey="1" href="">Go to map</a>
<div id="map" class="map" tabindex="0"></div>
<a class="zoom" accesskey="i" href="javascript: void map.getView().setZoom(map.getView().getZoom() + 1);">Zoom in</a>
<a class="zoom" accesskey="o" href="javascript: void map.getView().setZoom(map.getView().getZoom() - 1);">Zoom out</a>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<h4 id="title">Accessibility example</h4>
<p id="shortdesc">Example of an accessible map.</p>
<div id="docs">
<p>This page's <code>map</code> element has its <code>tabindex</code> attribute set to <code>"0"</code>. That makes is focusable. To focus the map element you can either navigate to it using the "tab" key, or use the <a href="http://en.wikipedia.org/wiki/Access_key">Access Key</a> "1" (alt+1 or ctrl+alt+1) which provides a direct access. When the <code>map</code> element is focused the + and - keys can be used to zoom in and out, and the arrow keys can be used to pan.</p>
<p>When clicked the "Zoom in" and "Zoom out" links below the map zoom the map in and out, respectively. You can navigate to the links using the "tab" key, and press the "enter" key to trigger the zooming action. The Access Keys "i" and "o" can also be used, as a direct access to the actions of "Zoom in" and "Zoom out" links.</p>
<p>See the source of the page to see how this done.</p>
</div>
<div id="tags">accessibility, tabindex</div>
</div>
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=accessible" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

20
examples/accessible.js Normal file
View File

@@ -0,0 +1,20 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
})
});

View File

@@ -14,13 +14,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 Examples</a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -61,8 +55,9 @@
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=animation" type="text/javascript"></script>
<script src="../resources/social-links.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -3,7 +3,7 @@ goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.animation');
goog.require('ol.easing');
goog.require('ol.layer.TileLayer');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.OSM');
@@ -23,12 +23,12 @@ var view = new ol.View2D({
var map = new ol.Map({
layers: [
new ol.layer.TileLayer({
new ol.layer.Tile({
preload: 4,
source: new ol.source.OSM()
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: view
});
@@ -39,7 +39,7 @@ rotateLeft.addEventListener('click', function() {
duration: 2000,
rotation: -4 * Math.PI
});
map.addPreRenderFunction(rotateLeft);
map.beforeRender(rotateLeft);
}, false);
var rotateRight = document.getElementById('rotate-right');
rotateRight.addEventListener('click', function() {
@@ -47,7 +47,7 @@ rotateRight.addEventListener('click', function() {
duration: 2000,
rotation: 4 * Math.PI
});
map.addPreRenderFunction(rotateRight);
map.beforeRender(rotateRight);
}, false);
@@ -55,9 +55,9 @@ var panToLondon = document.getElementById('pan-to-london');
panToLondon.addEventListener('click', function() {
var pan = ol.animation.pan({
duration: 2000,
source: view.getCenter()
source: /** @type {ol.Coordinate} */ (view.getCenter())
});
map.addPreRenderFunction(pan);
map.beforeRender(pan);
view.setCenter(london);
}, false);
@@ -66,9 +66,9 @@ elasticToMoscow.addEventListener('click', function() {
var pan = ol.animation.pan({
duration: 2000,
easing: ol.easing.elastic,
source: view.getCenter()
source: /** @type {ol.Coordinate} */ (view.getCenter())
});
map.addPreRenderFunction(pan);
map.beforeRender(pan);
view.setCenter(moscow);
}, false);
@@ -77,9 +77,9 @@ bounceToIstanbul.addEventListener('click', function() {
var pan = ol.animation.pan({
duration: 2000,
easing: ol.easing.bounce,
source: view.getCenter()
source: /** @type {ol.Coordinate} */ (view.getCenter())
});
map.addPreRenderFunction(pan);
map.beforeRender(pan);
view.setCenter(istanbul);
}, false);
@@ -89,7 +89,7 @@ spinToRome.addEventListener('click', function() {
var start = +new Date();
var pan = ol.animation.pan({
duration: duration,
source: view.getCenter(),
source: /** @type {ol.Coordinate} */ (view.getCenter()),
start: start
});
var rotate = ol.animation.rotate({
@@ -97,7 +97,7 @@ spinToRome.addEventListener('click', function() {
rotation: 2 * Math.PI,
start: start
});
map.addPreRenderFunctions([pan, rotate]);
map.beforeRender(pan, rotate);
view.setCenter(rome);
}, false);
@@ -107,7 +107,7 @@ flyToBern.addEventListener('click', function() {
var start = +new Date();
var pan = ol.animation.pan({
duration: duration,
source: view.getCenter(),
source: /** @type {ol.Coordinate} */ (view.getCenter()),
start: start
});
var bounce = ol.animation.bounce({
@@ -115,7 +115,7 @@ flyToBern.addEventListener('click', function() {
resolution: 4 * view.getResolution(),
start: start
});
map.addPreRenderFunctions([pan, bounce]);
map.beforeRender(pan, bounce);
view.setCenter(bern);
}, false);
@@ -125,7 +125,7 @@ spiralToMadrid.addEventListener('click', function() {
var start = +new Date();
var pan = ol.animation.pan({
duration: duration,
source: view.getCenter(),
source: /** @type {ol.Coordinate} */ (view.getCenter()),
start: start
});
var bounce = ol.animation.bounce({
@@ -138,6 +138,6 @@ spiralToMadrid.addEventListener('click', function() {
rotation: -4 * Math.PI,
start: start
});
map.addPreRenderFunctions([pan, bounce, rotate]);
map.beforeRender(pan, bounce, rotate);
view.setCenter(madrid);
}, false);

View File

@@ -14,13 +14,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 Examples</a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -40,6 +34,11 @@
<p id="shortdesc">Demonstrates two-way binding of HTML input elements to OpenLayers objects.</p>
<div id="docs">
<p>See the <a href="bind-input.js" target="_blank">bind-input.js source</a> to see how this is done.</p>
<div id="no-webgl" class="alert alert-warning" style="display: none">
<h4>Warning!</h4>
A browser that supports <a href="http://get.webgl.org/">WebGL</a> is required to change the
<strong>hue</strong>, <strong>saturation</strong>, <strong>contrast</strong> and <strong>brightness</strong>.
</div>
</div>
<div id="tags">input, bind, openstreetmap</div>
</div>
@@ -54,13 +53,13 @@
<label>opacity</label>
<input id="opacity" type="range" min="0" max="1" step="0.01"/>
<label>hue</label>
<input id="hue" type="range" min="-3.141592653589793" max="3.141592653589793" step="0.01"/>
<input id="hue" class="webgl" type="range" min="-3.141592653589793" max="3.141592653589793" step="0.01"/>
<label>saturation</label>
<input id="saturation" type="range" min="0" max="5" step="0.01"/>
<input id="saturation" class="webgl" type="range" min="0" max="5" step="0.01"/>
<label>contrast</label>
<input id="contrast" type="range" min="0" max="2" step="0.01"/>
<input id="contrast" class="webgl" type="range" min="0" max="2" step="0.01"/>
<label>brightness</label>
<input id="brightness" type="range" min="-1" max="1" step="0.01"/>
<input id="brightness" class="webgl" type="range" min="-1" max="1" step="0.01"/>
</fieldset>
</form>
</div>
@@ -81,8 +80,9 @@
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=bind-input" type="text/javascript"></script>
<script src="../resources/social-links.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,44 +1,66 @@
goog.require('ol.BrowserFeature');
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.dom.Input');
goog.require('ol.layer.TileLayer');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var layer = new ol.layer.TileLayer({
if (!ol.BrowserFeature.HAS_WEBGL) {
var inputs = document.getElementsByClassName('webgl');
for (var i = 0, len = inputs.length; i < len; i++) {
inputs[i].disabled = true;
}
var info = document.getElementById('no-webgl');
/**
* display warning message
*/
info.style.display = '';
}
var layer = new ol.layer.Tile({
source: new ol.source.OSM()
});
var map = new ol.Map({
layers: [layer],
renderers: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
var view = new ol.View2D({
center: [0, 0],
zoom: 2
})
});
var map = new ol.Map({
layers: [layer],
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: view
});
var visible = new ol.dom.Input(document.getElementById('visible'));
visible.bindTo('checked', layer, 'visible');
var opacity = new ol.dom.Input(document.getElementById('opacity'));
opacity.bindTo('value', layer, 'opacity');
opacity.bindTo('value', layer, 'opacity')
.transform(parseFloat, String);
var hue = new ol.dom.Input(document.getElementById('hue'));
hue.bindTo('value', layer, 'hue');
hue.bindTo('value', layer, 'hue')
.transform(parseFloat, String);
var saturation = new ol.dom.Input(document.getElementById('saturation'));
saturation.bindTo('value', layer, 'saturation');
saturation.bindTo('value', layer, 'saturation')
.transform(parseFloat, String);
var contrast = new ol.dom.Input(document.getElementById('contrast'));
contrast.bindTo('value', layer, 'contrast');
contrast.bindTo('value', layer, 'contrast')
.transform(parseFloat, String);
var brightness = new ol.dom.Input(document.getElementById('brightness'));
brightness.bindTo('value', layer, 'brightness');
brightness.bindTo('value', layer, 'brightness')
.transform(parseFloat, String);
var rotation = new ol.dom.Input(document.getElementById('rotation'));
rotation.bindTo('value', map.getView(), 'rotation');
rotation.bindTo('value', view, 'rotation').transform(parseFloat, String);
var resolution = new ol.dom.Input(document.getElementById('resolution'));
resolution.bindTo('value', map.getView(), 'resolution');
resolution.bindTo('value', view, 'resolution').transform(parseFloat, String);

View File

@@ -14,13 +14,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 Examples</a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -35,6 +29,8 @@
<option value="Aerial">Aerial</option>
<option value="AerialWithLabels" selected>Aerial with labels</option>
<option value="Road">Road</option>
<option value="collinsBart">Collins Bart</option>
<option value="ordnanceSurvey">Ordnance Survey</option>
</select>
</div>
</div>
@@ -56,7 +52,7 @@
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=bing-maps" type="text/javascript"></script>
<script src="../resources/social-links.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,36 +1,43 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.layer.TileLayer');
goog.require('ol.proj');
goog.require('ol.layer.Tile');
goog.require('ol.source.BingMaps');
var styles = ['Road', 'Aerial', 'AerialWithLabels'];
var styles = [
'Road',
'Aerial',
'AerialWithLabels',
'collinsBart',
'ordnanceSurvey'
];
var layers = [];
for (var i = 0; i < styles.length; ++i) {
layers.push(new ol.layer.TileLayer({
var i, ii;
for (i = 0, ii = styles.length; i < ii; ++i) {
layers.push(new ol.layer.Tile({
visible: false,
preload: Infinity,
source: new ol.source.BingMaps({
key: 'AlQLZ0-5yk301_ESrmNLma3LYxEKNSg7w-e_knuRfyYFtld-UFvXVs38NOulku3Q',
style: styles[i]
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3',
imagerySet: styles[i]
})
}));
}
var map = new ol.Map({
layers: layers,
renderers: ol.RendererHints.createFromQueryData(),
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: ol.proj.transform([-123.1, 49.25], 'EPSG:4326', 'EPSG:3857'),
zoom: 8
center: [-6655.5402445057125, 6709968.258934638],
zoom: 13
})
});
$('#layer-select').change(function() {
var style = $(this).find(':selected').val();
for (var i = 0; i < layers.length; ++i) {
var i, ii;
for (i = 0, ii = layers.length; i < ii; ++i) {
layers[i].setVisible(styles[i] == style);
}
});

View File

@@ -22,13 +22,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 Examples</a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -38,6 +32,11 @@
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<div id="no-webgl" class="alert alert-error" style="display: none">
This example requires a browser that supports <a href="http://get.webgl.org/">WebGL</a>.
</div>
<div class="btn-group">
<button id="increase-brightness"><i class="icon-plus"></i></button>
<button id="reset-brightness">Brightness</button>
@@ -66,8 +65,9 @@
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=brightness-contrast" type="text/javascript"></script>
<script src="../resources/social-links.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,65 +1,75 @@
goog.require('ol.BrowserFeature');
goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.layer.TileLayer');
goog.require('ol.source.MapQuestOpenAerial');
goog.require('ol.layer.Tile');
goog.require('ol.source.MapQuest');
var layer = new ol.layer.TileLayer({
source: new ol.source.MapQuestOpenAerial()
});
var map = new ol.Map({
layers: [layer],
renderer: ol.RendererHint.WEBGL,
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
})
});
var increaseBrightness = document.getElementById('increase-brightness');
var resetBrightness = document.getElementById('reset-brightness');
var decreaseBrightness = document.getElementById('decrease-brightness');
function setResetBrightnessButtonHTML() {
resetBrightness.innerHTML = 'Brightness (' +
layer.getBrightness().toFixed(3) + ')';
}
setResetBrightnessButtonHTML();
increaseBrightness.addEventListener('click', function() {
layer.setBrightness(Math.min(layer.getBrightness() + 0.125, 1));
setResetBrightnessButtonHTML();
}, false);
resetBrightness.addEventListener('click', function() {
layer.setBrightness(0);
setResetBrightnessButtonHTML();
}, false);
decreaseBrightness.addEventListener('click', function() {
layer.setBrightness(Math.max(layer.getBrightness() - 0.125, -1));
setResetBrightnessButtonHTML();
}, false);
var increaseContrast = document.getElementById('increase-contrast');
var resetContrast = document.getElementById('reset-contrast');
var decreaseContrast = document.getElementById('decrease-contrast');
function setResetContrastButtonHTML() {
resetContrast.innerHTML = 'Contrast (' + layer.getContrast().toFixed(3) + ')';
}
setResetContrastButtonHTML();
increaseContrast.addEventListener('click', function() {
if (!ol.BrowserFeature.HAS_WEBGL) {
var info = document.getElementById('no-webgl');
/**
* display error message
*/
info.style.display = '';
} else {
var layer = new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
});
var map = new ol.Map({
layers: [layer],
renderer: 'webgl',
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
})
});
var increaseBrightness = document.getElementById('increase-brightness');
var resetBrightness = document.getElementById('reset-brightness');
var decreaseBrightness = document.getElementById('decrease-brightness');
setResetBrightnessButtonHTML();
increaseBrightness.addEventListener('click', function() {
layer.setBrightness(Math.min(layer.getBrightness() + 0.125, 1));
setResetBrightnessButtonHTML();
}, false);
resetBrightness.addEventListener('click', function() {
layer.setBrightness(0);
setResetBrightnessButtonHTML();
}, false);
decreaseBrightness.addEventListener('click', function() {
layer.setBrightness(Math.max(layer.getBrightness() - 0.125, -1));
setResetBrightnessButtonHTML();
}, false);
var increaseContrast = document.getElementById('increase-contrast');
var resetContrast = document.getElementById('reset-contrast');
var decreaseContrast = document.getElementById('decrease-contrast');
setResetContrastButtonHTML();
increaseContrast.addEventListener('click', function() {
layer.setContrast(layer.getContrast() + 0.125);
setResetContrastButtonHTML();
}, false);
resetContrast.addEventListener('click', function() {
}, false);
resetContrast.addEventListener('click', function() {
layer.setContrast(1);
setResetContrastButtonHTML();
}, false);
decreaseContrast.addEventListener('click', function() {
}, false);
decreaseContrast.addEventListener('click', function() {
layer.setContrast(Math.max(layer.getContrast() - 0.125, 0));
setResetContrastButtonHTML();
}, false);
}, false);
}

View File

@@ -14,13 +14,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 Examples</a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -49,8 +43,9 @@
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=canvas-tiles" type="text/javascript"></script>
<script src="../resources/social-links.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,20 +1,20 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.layer.TileLayer');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.DebugTileSource');
goog.require('ol.source.OSM');
goog.require('ol.source.TileDebug');
goog.require('ol.tilegrid.XYZ');
var map = new ol.Map({
layers: [
new ol.layer.TileLayer({
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.TileLayer({
source: new ol.source.DebugTileSource({
new ol.layer.Tile({
source: new ol.source.TileDebug({
projection: 'EPSG:3857',
tileGrid: new ol.tilegrid.XYZ({
maxZoom: 22
@@ -22,7 +22,7 @@ var map = new ol.Map({
})
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: ol.proj.transform(

View File

@@ -8,7 +8,7 @@
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<style type="text/css">
.zoom-extent {
.rotate-north {
position: absolute;
top: 65px;
left: 8px;
@@ -16,30 +16,32 @@
border-radius: 4px;
padding: 2px;
}
.zoom-extent a {
.ol-touch .rotate-north {
top: 80px;
}
.rotate-north a {
display: block;
margin: 1px;
padding: 0;
color: white;
font-size: 18px;
font-size: 16px;
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
font-weight: bold;
margin: 1px;
text-decoration: none;
text-align: center;
border-radius: 2px;
height: 22px;
width: 22px;
line-height: 19px;
background: rgba(0,60,136,0.5);
}
.zoom-extent a:hover {
.ol-touch .rotate-north a {
font-size: 20px;
height: 30px;
width: 30px;
line-height: 26px;
}
.rotate-north a:hover {
background: rgba(0,60,136,0.7);
}
.zoom-to {
border-radius: 2px 2px 0 0;
}
.zoom-to:before {
content: "E";
}
</style>
<title>ol3 custom controls example</title>
</head>
@@ -48,13 +50,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 Examples</a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -73,10 +69,9 @@
<p id="shortdesc">This example shows how to create custom controls.</p>
<div id="docs">
<p>
This example creates a "zoom to extent" button.
This example creates a "rotate to north" button.
See the <a href="custom-controls.js" target="_blank">custom-controls.js
source</a> to see how this is done.
Per default, the zoom extent control use the map projection extent.
</p>
</div>
<div id="tags">
@@ -86,8 +81,9 @@
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=custom-controls" type="text/javascript"></script>
<script src="../resources/social-links.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>

View File

@@ -2,9 +2,9 @@ goog.require('ol');
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.control');
goog.require('ol.control.Control');
goog.require('ol.control.defaults');
goog.require('ol.layer.TileLayer');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
@@ -16,7 +16,7 @@ var app = window.app;
//
// Define zoom extent control.
// Define rotate to north control.
//
@@ -26,84 +26,56 @@ var app = window.app;
* @extends {ol.control.Control}
* @param {Object=} opt_options Control options.
*/
app.ZoomExtentControl = function(opt_options) {
app.RotateNorthControl = function(opt_options) {
var options = opt_options || {};
this.extent_ = options.extent;
var anchor = document.createElement('a');
anchor.href = '#zoom-to';
anchor.className = 'zoom-to';
anchor.href = '#rotate-north';
anchor.innerHTML = 'N';
var this_ = this;
var handleZoomTo = function(e) {
this_.handleZoomTo(e);
var handleRotateNorth = function(e) {
// prevent #rotate-north anchor from getting appended to the url
e.preventDefault();
this_.getMap().getView().getView2D().setRotation(0);
};
anchor.addEventListener('click', handleZoomTo, false);
anchor.addEventListener('touchstart', handleZoomTo, false);
anchor.addEventListener('click', handleRotateNorth, false);
anchor.addEventListener('touchstart', handleRotateNorth, false);
var element = document.createElement('div');
element.className = 'zoom-extent ol-unselectable';
element.className = 'rotate-north ol-unselectable';
element.appendChild(anchor);
ol.control.Control.call(this, {
element: element,
map: options.map,
target: options.target
});
};
ol.inherits(app.ZoomExtentControl, ol.control.Control);
/**
* @param {Event} e Browser event.
*/
app.ZoomExtentControl.prototype.handleZoomTo = function(e) {
// prevent #zoomTo anchor from getting appended to the url
e.preventDefault();
var map = this.getMap();
var view = map.getView();
view.fitExtent(this.extent_, map.getSize());
};
/**
* Overload setMap to use the view projection's validity extent
* if no extent was passed to the constructor.
* @param {ol.Map} map Map.
*/
app.ZoomExtentControl.prototype.setMap = function(map) {
ol.control.Control.prototype.setMap.call(this, map);
if (map && !this.extent_) {
this.extent_ = map.getView().getProjection().getExtent();
}
};
ol.inherits(app.RotateNorthControl, ol.control.Control);
//
// Create map, giving it a zoom extent control.
// Create map, giving it a rotate to north control.
//
var map = new ol.Map({
controls: ol.control.defaults({}, [
new app.ZoomExtentControl({
extent: [813079.7791264898, 848966.9639063801,
5929220.284081122, 5936863.986909639]
})
controls: ol.control.defaults().extend([
new app.RotateNorthControl()
]),
layers: [
new ol.layer.TileLayer({
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
zoom: 2,
rotation: 1
})
});

53
examples/d3.html Normal file
View File

@@ -0,0 +1,53 @@
<!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="../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>d3 integration 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">d3 integration example</h4>
<p id="shortdesc">Example of using ol3 and d3 together.</p>
<div id="docs">
<p>The example loads TopoJSON geometries and uses d3 (<code>d3.geo.path</code>) to render these geometries to a canvas element that is then used as the image of an ol3 image layer.</p>
<p>See the <a href="d3.js" target="_blank">d3.js source</a> to see how this is done.</p>
</div>
<div id="tags">d3</div>
</div>
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script src="loader.js?id=d3" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

97
examples/d3.js vendored Normal file
View File

@@ -0,0 +1,97 @@
// NOCOMPILE
// this example uses d3 for which we don't have an externs file.
goog.require('ol');
goog.require('ol.Map');
goog.require('ol.View2D');
goog.require('ol.extent');
goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.ImageCanvas');
goog.require('ol.source.Stamen');
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.Stamen({
layer: 'watercolor'
})
})
],
renderer: 'canvas',
target: 'map',
view: new ol.View2D({
center: ol.proj.transform([-97, 38], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
/**
* Load the topojson data and create an ol.layer.Image for that data.
*/
d3.json('data/topojson/us.json', function(error, us) {
var features = topojson.feature(us, us.objects.counties);
/**
* This function uses d3 to render the topojson features to a canvas.
* @param {ol.Extent} extent Extent.
* @param {number} resolution Resolution.
* @param {number} pixelRatio Pixel ratio.
* @param {ol.Size} size Size.
* @param {ol.proj.Projection} projection Projection.
* @return {HTMLCanvasElement}
*/
var canvasFunction = function(extent, resolution, pixelRatio,
size, projection) {
var canvasWidth = size[0];
var canvasHeight = size[1];
var canvas = d3.select(document.createElement('canvas'));
canvas.attr('width', canvasWidth).attr('height', canvasHeight);
var context = canvas.node().getContext('2d');
var d3Projection = d3.geo.mercator().scale(1).translate([0, 0]);
var d3Path = d3.geo.path().projection(d3Projection);
var pixelBounds = d3Path.bounds(features);
var pixelBoundsWidth = pixelBounds[1][0] - pixelBounds[0][0];
var pixelBoundsHeight = pixelBounds[1][1] - pixelBounds[0][1];
var geoBounds = d3.geo.bounds(features);
var geoBoundsLeftBottom = ol.proj.transform(
geoBounds[0], 'EPSG:4326', projection);
var geoBoundsRightTop = ol.proj.transform(
geoBounds[1], 'EPSG:4326', projection);
var geoBoundsWidth = geoBoundsRightTop[0] - geoBoundsLeftBottom[0];
if (geoBoundsWidth < 0) {
geoBoundsWidth += ol.extent.getWidth(projection.getExtent());
}
var geoBoundsHeight = geoBoundsRightTop[1] - geoBoundsLeftBottom[1];
var widthResolution = geoBoundsWidth / pixelBoundsWidth;
var heightResolution = geoBoundsHeight / pixelBoundsHeight;
var r = Math.max(widthResolution, heightResolution);
var scale = r / (resolution / pixelRatio);
var center = ol.proj.transform(ol.extent.getCenter(extent),
projection, 'EPSG:4326');
d3Projection.scale(scale).center(center)
.translate([canvasWidth / 2, canvasHeight / 2]);
d3Path = d3Path.projection(d3Projection).context(context);
d3Path(features);
context.stroke();
return canvas[0][0];
};
var layer = new ol.layer.Image({
source: new ol.source.ImageCanvas({
canvasFunction: canvasFunction,
projection: 'EPSG:3857'
})
});
map.addLayer(layer);
});

View File

@@ -179,140 +179,6 @@
<ResourceURL format="image/png" template="http://maps4.wien.gv.at/wmts/beschriftung/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png" resourceType="tile"/>
<ResourceURL format="image/png" template="http://maps.wien.gv.at/wmts/beschriftung/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png" resourceType="tile"/>
</Layer>
<TileMatrixSet>
<ows:Identifier>viennagis31256</ows:Identifier>
<ows:BoundingBox crs="urn:ogc:def:crs:EPSG::31256">
<ows:LowerCorner>-11500 330500</ows:LowerCorner>
<ows:UpperCorner>18500 354000</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG::31256</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>500000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>250000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>3</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>125000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>5</MatrixWidth>
<MatrixHeight>3</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>64000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>9</MatrixWidth>
<MatrixHeight>6</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>32000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>17</MatrixWidth>
<MatrixHeight>12</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>16000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>33</MatrixWidth>
<MatrixHeight>24</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>8000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>66</MatrixWidth>
<MatrixHeight>47</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>5000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>105</MatrixWidth>
<MatrixHeight>74</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>4000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>132</MatrixWidth>
<MatrixHeight>93</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>3000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>175</MatrixWidth>
<MatrixHeight>124</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>2000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>263</MatrixWidth>
<MatrixHeight>185</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>1500.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>350</MatrixWidth>
<MatrixHeight>247</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>1000.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>525</MatrixWidth>
<MatrixHeight>370</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>500.0</ScaleDenominator>
<TopLeftCorner>355000.0 -13500.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1049</MatrixWidth>
<MatrixHeight>739</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
<TileMatrixSet>
<!-- -180 85.05112878 -->
<ows:Identifier>google3857</ows:Identifier>

View File

@@ -1,7 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="ExpertGPS 1.1 - http://www.topografix.com" version="1.0" xmlns="http://www.topografix.com/GPX/1/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
<?xml version="1.0"?>
<gpx
version="1.0"
creator="ExpertGPS 1.1 - http://www.topografix.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.topografix.com/GPX/1/0"
xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
<time>2002-02-27T17:18:33Z</time>
<bounds maxlat="42.468655" maxlon="-71.102973" minlat="42.401051" minlon="-71.126602"/>
<bounds minlat="42.401051" minlon="-71.126602" maxlat="42.468655" maxlon="-71.102973"/>
<wpt lat="42.438878" lon="-71.119277">
<ele>44.586548</ele>
<time>2001-11-28T21:05:28Z</time>
@@ -1069,5 +1074,4 @@
<type><![CDATA[Parking]]></type>
</rtept>
</rte>
</gpx><!-- total: 701 -->
<!-- engine8.yql.bf1.yahoo.com -->
</gpx>

BIN
examples/data/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -1,275 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Document>
<name>KML Samples</name>
<open>1</open>
<description>Unleash your creativity with the help of these examples!</description>
<Style id="downArrowIcon">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pal4/icon28.png</href>
</Icon>
</IconStyle>
</Style>
<Style id="globeIcon">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pal3/icon19.png</href>
</Icon>
</IconStyle>
<LineStyle>
<width>2</width>
</LineStyle>
</Style>
<Style id="transPurpleLineGreenPoly">
<LineStyle>
<color>7fff00ff</color>
<width>4</width>
</LineStyle>
<PolyStyle>
<color>7f00ff00</color>
</PolyStyle>
</Style>
<Style id="yellowLineGreenPoly">
<LineStyle>
<color>7f00ffff</color>
<width>4</width>
</LineStyle>
<PolyStyle>
<color>7f00ff00</color>
</PolyStyle>
</Style>
<Style id="thickBlackLine">
<LineStyle>
<color>87000000</color>
<width>10</width>
</LineStyle>
</Style>
<Style id="redLineBluePoly">
<LineStyle>
<color>ff0000ff</color>
</LineStyle>
<PolyStyle>
<color>ffff0000</color>
</PolyStyle>
</Style>
<Style id="blueLineRedPoly">
<LineStyle>
<color>ffff0000</color>
</LineStyle>
<PolyStyle>
<color>ff0000ff</color>
</PolyStyle>
</Style>
<Style id="transRedPoly">
<LineStyle>
<width>1.5</width>
</LineStyle>
<PolyStyle>
<color>7d0000ff</color>
</PolyStyle>
</Style>
<Style id="transBluePoly">
<LineStyle>
<width>1.5</width>
</LineStyle>
<PolyStyle>
<color>7dff0000</color>
</PolyStyle>
</Style>
<Style id="transGreenPoly">
<LineStyle>
<width>1.5</width>
</LineStyle>
<PolyStyle>
<color>7d00ff00</color>
</PolyStyle>
</Style>
<Style id="transYellowPoly">
<LineStyle>
<width>1.5</width>
</LineStyle>
<PolyStyle>
<color>7d00ffff</color>
</PolyStyle>
</Style>
<Style id="noDrivingDirections">
<BalloonStyle>
<text><![CDATA[
<b>$[name]</b>
<br /><br />
$[description]
]]></text>
</BalloonStyle>
</Style>
<Folder>
<name>Paths</name>
<visibility>0</visibility>
<description>Examples of paths. Note that the tessellate tag is by default
set to 0. If you want to create tessellated lines, they must be authored
(or edited) directly in KML.</description>
<Placemark>
<name>Tessellated</name>
<visibility>0</visibility>
<description><![CDATA[If the <tessellate> tag has a value of 1, the line will contour to the underlying terrain]]></description>
<LookAt>
<longitude>-112.0822680013139</longitude>
<latitude>36.09825589333556</latitude>
<altitude>0</altitude>
<range>2889.145007690472</range>
<tilt>62.04855796276328</tilt>
<heading>103.8120432044965</heading>
</LookAt>
<LineString>
<tessellate>1</tessellate>
<coordinates> -112.0814237830345,36.10677870477137,0
-112.0870267752693,36.0905099328766,0 </coordinates>
</LineString>
</Placemark>
<Placemark>
<name>Untessellated</name>
<visibility>0</visibility>
<description><![CDATA[If the <tessellate> tag has a value of 0, the line follow a simple straight-line path from point to point]]></description>
<LookAt>
<longitude>-112.0822680013139</longitude>
<latitude>36.09825589333556</latitude>
<altitude>0</altitude>
<range>2889.145007690472</range>
<tilt>62.04855796276328</tilt>
<heading>103.8120432044965</heading>
</LookAt>
<LineString>
<tessellate>0</tessellate>
<coordinates> -112.080622229595,36.10673460007995,0
-112.085242575315,36.09049598612422,0 </coordinates>
</LineString>
</Placemark>
<Placemark>
<name>Absolute</name>
<visibility>0</visibility>
<description>Transparent purple line</description>
<LookAt>
<longitude>-112.2719329043177</longitude>
<latitude>36.08890633450894</latitude>
<altitude>0</altitude>
<range>2569.386744398339</range>
<tilt>44.60763714063257</tilt>
<heading>-106.8161545998597</heading>
</LookAt>
<styleUrl>#transPurpleLineGreenPoly</styleUrl>
<LineString>
<tessellate>1</tessellate>
<altitudeMode>absolute</altitudeMode>
<coordinates> -112.265654928602,36.09447672602546,2357
-112.2660384528238,36.09342608838671,2357
-112.2668139013453,36.09251058776881,2357
-112.2677826834445,36.09189827357996,2357
-112.2688557510952,36.0913137941187,2357
-112.2694810717219,36.0903677207521,2357
-112.2695268555611,36.08932171487285,2357
-112.2690144567276,36.08850916060472,2357
-112.2681528815339,36.08753813597956,2357
-112.2670588176031,36.08682685262568,2357
-112.2657374587321,36.08646312301303,2357 </coordinates>
</LineString>
</Placemark>
<Placemark>
<name>Absolute Extruded</name>
<visibility>0</visibility>
<description>Transparent green wall with yellow outlines</description>
<LookAt>
<longitude>-112.2643334742529</longitude>
<latitude>36.08563154742419</latitude>
<altitude>0</altitude>
<range>4451.842204068102</range>
<tilt>44.61038665812578</tilt>
<heading>-125.7518698668815</heading>
</LookAt>
<styleUrl>#yellowLineGreenPoly</styleUrl>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<altitudeMode>absolute</altitudeMode>
<coordinates> -112.2550785337791,36.07954952145647,2357
-112.2549277039738,36.08117083492122,2357
-112.2552505069063,36.08260761307279,2357
-112.2564540158376,36.08395660588506,2357
-112.2580238976449,36.08511401044813,2357
-112.2595218489022,36.08584355239394,2357
-112.2608216347552,36.08612634548589,2357
-112.262073428656,36.08626019085147,2357
-112.2633204928495,36.08621519860091,2357
-112.2644963846444,36.08627897945274,2357
-112.2656969554589,36.08649599090644,2357 </coordinates>
</LineString>
</Placemark>
<Placemark>
<name>Relative</name>
<visibility>0</visibility>
<description>Black line (10 pixels wide), height tracks terrain</description>
<LookAt>
<longitude>-112.2580438551384</longitude>
<latitude>36.1072674824385</latitude>
<altitude>0</altitude>
<range>2927.61105910266</range>
<tilt>44.61324882043339</tilt>
<heading>4.947421249553717</heading>
</LookAt>
<styleUrl>#thickBlackLine</styleUrl>
<LineString>
<tessellate>1</tessellate>
<altitudeMode>relativeToGround</altitudeMode>
<coordinates> -112.2532845153347,36.09886943729116,645
-112.2540466121145,36.09919570465255,645
-112.254734666947,36.09984998366178,645
-112.255493345654,36.10051310621746,645
-112.2563157098468,36.10108441943419,645
-112.2568033076439,36.10159722088088,645
-112.257494011321,36.10204323542867,645
-112.2584106072308,36.10229131995655,645
-112.2596588987972,36.10240001286358,645
-112.2610581199487,36.10213176873407,645
-112.2626285262793,36.10157011437219,645 </coordinates>
</LineString>
</Placemark>
<Placemark>
<name>Relative Extruded</name>
<visibility>0</visibility>
<description>Opaque blue walls with red outline, height tracks terrain</description>
<LookAt>
<longitude>-112.2683594333433</longitude>
<latitude>36.09884362144909</latitude>
<altitude>0</altitude>
<range>2184.193522571467</range>
<tilt>44.60855445139561</tilt>
<heading>-72.24271551768405</heading>
</LookAt>
<styleUrl>#redLineBluePoly</styleUrl>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<altitudeMode>relativeToGround</altitudeMode>
<coordinates> -112.2656634181359,36.09445214722695,630
-112.2652238941097,36.09520916122063,630
-112.2645079986395,36.09580763864907,630
-112.2638827428817,36.09628572284063,630
-112.2635746835406,36.09679275951239,630
-112.2635711822407,36.09740038871899,630
-112.2640296531825,36.09804913435539,630
-112.264327720538,36.09880337400301,630
-112.2642436562271,36.09963644790288,630
-112.2639148687042,36.10055381117246,630
-112.2626894973474,36.10149062823369,630 </coordinates>
</LineString>
</Placemark>
<Placemark>
<name>Blue Icon</name>
<description>Just another blue icon.</description>
<styleUrl>data/kml/styles.kml#blueIcons</styleUrl>
<Point>
<coordinates>-112.292238941097,36.09520916122063,630</coordinates>
</Point>
</Placemark>
</Folder>
</Document>
</kml>

View File

@@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file contains styles referenced by other KML files in this project.
http://kml-samples.googlecode.com/svn/trunk/kml/Style/styles.kml
-->
<kml xmlns="http://earth.google.com/kml/2.1">
<Document id="globalStyles">
<Style id="blueIcons">
<IconStyle>
<color>ffff0000</color>
<Icon>
<href>http://maps.google.com/mapfiles/kml/shapes/sunny.png</href>
</Icon>
</IconStyle>
</Style>
</Document>
</kml>

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -14,13 +14,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 Examples</a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -55,8 +49,9 @@
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=device-orientation" type="text/javascript"></script>
<script src="../resources/social-links.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -3,33 +3,34 @@ goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.dom.Input');
goog.require('ol.layer.TileLayer');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var view = new ol.View2D({
center: [0, 0],
zoom: 2
});
var map = new ol.Map({
layers: [
new ol.layer.TileLayer({
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
})
view: view
});
var view = map.getView();
var deviceOrientation = new ol.DeviceOrientation();
var track = new ol.dom.Input(document.getElementById('track'));
track.bindTo('checked', deviceOrientation, 'tracking');
deviceOrientation.on('change', function(event) {
document.getElementById('alpha').innerHTML = event.target.getAlpha();
document.getElementById('beta').innerHTML = event.target.getBeta();
document.getElementById('gamma').innerHTML = event.target.getGamma();
document.getElementById('heading').innerHTML = event.target.getHeading();
deviceOrientation.on('propertychange', function(event) {
// event.key is the changed property name
var element = document.getElementById(event.key);
if (element) {
element.innerHTML = deviceOrientation.get(event.key);
}
});
// tilt the map

View File

@@ -0,0 +1,55 @@
<!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="../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>Drag-and-Drop image vector 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="span4">
<h4 id="title">Drag-and-Drop image vector example</h4>
<p id="shortdesc">Example of using the drag-and-drop interaction with a <code>ol.source.ImageVector</code>. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. Each file is rendered to an image on the client.</p>
<div id="docs">
<p>See the <a href="drag-and-drop-image-vector.js" target="_blank">drag-and-drop-image-vector.js source</a> to see how this is done.</p>
</div>
<div id="tags">drag-and-drop-image-vector, gpx, geojson, igc, kml, topojson, vector, image</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="loader.js?id=drag-and-drop-image-vector" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -0,0 +1,155 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.format.GPX');
goog.require('ol.format.GeoJSON');
goog.require('ol.format.IGC');
goog.require('ol.format.KML');
goog.require('ol.format.TopoJSON');
goog.require('ol.interaction');
goog.require('ol.interaction.DragAndDrop');
goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.source.BingMaps');
goog.require('ol.source.ImageVector');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var defaultStyle = {
'Point': [new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,255,0,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
color: '#ff0',
width: 1
})
})
})],
'LineString': [new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#f00',
width: 3
})
})],
'Polygon': [new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,255,255,0.5)'
}),
stroke: new ol.style.Stroke({
color: '#0ff',
width: 1
})
})],
'MultiPoint': [new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,0,255,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
color: '#f0f',
width: 1
})
})
})],
'MultiLineString': [new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#0f0',
width: 3
})
})],
'MultiPolygon': [new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,0,255,0.5)'
}),
stroke: new ol.style.Stroke({
color: '#00f',
width: 1
})
})]
};
var styleFunction = function(feature, resolution) {
var featureStyleFunction = feature.getStyleFunction();
if (featureStyleFunction) {
return featureStyleFunction.call(feature, resolution);
} else {
return defaultStyle[feature.getGeometry().getType()];
}
};
var dragAndDropInteraction = new ol.interaction.DragAndDrop({
formatConstructors: [
ol.format.GPX,
ol.format.GeoJSON,
ol.format.IGC,
ol.format.KML,
ol.format.TopoJSON
]
});
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([dragAndDropInteraction]),
layers: [
new ol.layer.Tile({
source: new ol.source.BingMaps({
imagerySet: 'Aerial',
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3'
})
})
],
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
})
});
dragAndDropInteraction.on('addfeatures', function(event) {
var vectorSource = new ol.source.Vector({
features: event.features,
projection: event.projection
});
map.getLayers().push(new ol.layer.Image({
source: new ol.source.ImageVector({
source: vectorSource,
style: styleFunction
})
}));
var view2D = map.getView().getView2D();
view2D.fitExtent(vectorSource.getExtent(), map.getSize());
});
var displayFeatureInfo = function(pixel) {
var features = [];
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
features.push(feature);
});
if (features.length > 0) {
var info = [];
var i, ii;
for (i = 0, ii = features.length; i < ii; ++i) {
info.push(features[i].get('name'));
}
document.getElementById('info').innerHTML = info.join(', ') || '&nbsp';
} else {
document.getElementById('info').innerHTML = '&nbsp;';
}
};
$(map.getViewport()).on('mousemove', function(evt) {
var pixel = map.getEventPixel(evt.originalEvent);
displayFeatureInfo(pixel);
});
map.on('singleclick', function(evt) {
displayFeatureInfo(evt.pixel);
});

View File

@@ -0,0 +1,55 @@
<!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="../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>Drag-and-Drop 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="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>
<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>
<div id="tags">drag-and-drop, gpx, geojson, igc, kml, topojson</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="loader.js?id=drag-and-drop" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

151
examples/drag-and-drop.js Normal file
View File

@@ -0,0 +1,151 @@
goog.require('ol.Map');
goog.require('ol.View2D');
goog.require('ol.format.GPX');
goog.require('ol.format.GeoJSON');
goog.require('ol.format.IGC');
goog.require('ol.format.KML');
goog.require('ol.format.TopoJSON');
goog.require('ol.interaction');
goog.require('ol.interaction.DragAndDrop');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.BingMaps');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var defaultStyle = {
'Point': [new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,255,0,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
color: '#ff0',
width: 1
})
})
})],
'LineString': [new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#f00',
width: 3
})
})],
'Polygon': [new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,255,255,0.5)'
}),
stroke: new ol.style.Stroke({
color: '#0ff',
width: 1
})
})],
'MultiPoint': [new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,0,255,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
color: '#f0f',
width: 1
})
})
})],
'MultiLineString': [new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#0f0',
width: 3
})
})],
'MultiPolygon': [new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,0,255,0.5)'
}),
stroke: new ol.style.Stroke({
color: '#00f',
width: 1
})
})]
};
var styleFunction = function(feature, resolution) {
var featureStyleFunction = feature.getStyleFunction();
if (featureStyleFunction) {
return featureStyleFunction.call(feature, resolution);
} else {
return defaultStyle[feature.getGeometry().getType()];
}
};
var dragAndDropInteraction = new ol.interaction.DragAndDrop({
formatConstructors: [
ol.format.GPX,
ol.format.GeoJSON,
ol.format.IGC,
ol.format.KML,
ol.format.TopoJSON
]
});
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([dragAndDropInteraction]),
layers: [
new ol.layer.Tile({
source: new ol.source.BingMaps({
imagerySet: 'Aerial',
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3'
})
})
],
renderer: 'canvas',
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
})
});
dragAndDropInteraction.on('addfeatures', function(event) {
var vectorSource = new ol.source.Vector({
features: event.features,
projection: event.projection
});
map.getLayers().push(new ol.layer.Vector({
source: vectorSource,
style: styleFunction
}));
var view2D = map.getView().getView2D();
view2D.fitExtent(vectorSource.getExtent(), map.getSize());
});
var displayFeatureInfo = function(pixel) {
var features = [];
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
features.push(feature);
});
if (features.length > 0) {
var info = [];
var i, ii;
for (i = 0, ii = features.length; i < ii; ++i) {
info.push(features[i].get('name'));
}
document.getElementById('info').innerHTML = info.join(', ') || '&nbsp';
} else {
document.getElementById('info').innerHTML = '&nbsp;';
}
};
$(map.getViewport()).on('mousemove', function(evt) {
var pixel = map.getEventPixel(evt.originalEvent);
displayFeatureInfo(pixel);
});
map.on('singleclick', function(evt) {
displayFeatureInfo(evt.pixel);
});

View File

@@ -14,13 +14,7 @@
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./">OpenLayers 3 Examples</a>
<ul class="nav pull-right">
<li><iframe class="github-watch-button" src="http://ghbtns.com/github-btn.html?user=openlayers&repo=ol3&type=watch&count=true"
allowtransparency="true" frameborder="0" scrolling="0" height="20" width="90"></iframe></li>
<li><a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-hashtags="openlayers">&nbsp;</a></li>
<li><div class="g-plusone-wrapper"><div class="g-plusone" data-size="medium" data-annotation="none"></div></div></li>
</ul>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -49,8 +43,9 @@
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=drag-rotate-and-zoom" type="text/javascript"></script>
<script src="../resources/social-links.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,22 +1,22 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.interaction');
goog.require('ol.interaction.DragRotateAndZoom');
goog.require('ol.interaction.defaults');
goog.require('ol.layer.TileLayer');
goog.require('ol.source.MapQuestOpenAerial');
goog.require('ol.layer.Tile');
goog.require('ol.source.MapQuest');
var map = new ol.Map({
interactions: ol.interaction.defaults({}, [
interactions: ol.interaction.defaults().extend([
new ol.interaction.DragRotateAndZoom()
]),
layers: [
new ol.layer.TileLayer({
source: new ol.source.MapQuestOpenAerial()
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: [0, 0],

View File

@@ -0,0 +1,59 @@
<!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="../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>Draw features 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">Draw features example</h4>
<p id="shortdesc">Example of using the <code>ol.interaction.Draw</code> interaction.</p>
<form class="form-inline">
<label>Geometry type &nbsp;</label>
<select id="type">
<option value="Point">Point</option>
<option value="LineString">LineString</option>
<option value="Polygon">Polygon</option>
</select>
</form>
<div id="docs">
<p>See the <a href="draw-features.js" target="_blank">draw-features.js source</a> to see how this is done.</p>
</div>
<div id="tags">draw, edit, vector</div>
</div>
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=draw-features" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

70
examples/draw-features.js Normal file
View File

@@ -0,0 +1,70 @@
goog.require('ol.Map');
goog.require('ol.View2D');
goog.require('ol.interaction');
goog.require('ol.interaction.Draw');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
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');
var raster = new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
});
var source = new ol.source.Vector();
var vector = new ol.layer.Vector({
source: source,
style: new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(255, 255, 255, 0.2)'
}),
stroke: new ol.style.Stroke({
color: '#ffcc33',
width: 2
}),
image: new ol.style.Circle({
radius: 7,
fill: new ol.style.Fill({
color: '#ffcc33'
})
})
})
});
var map = new ol.Map({
layers: [raster, vector],
renderer: 'canvas',
target: 'map',
view: new ol.View2D({
center: [-11000000, 4600000],
zoom: 4
})
});
var typeSelect = document.getElementById('type');
var draw; // global so we can remove it later
function addInteraction() {
draw = new ol.interaction.Draw({
source: source,
type: /** @type {ol.geom.GeometryType} */ (typeSelect.value)
});
map.addInteraction(draw);
}
/**
* Let user change the geometry type.
* @param {Event} e Change event.
*/
typeSelect.onchange = function(e) {
map.removeInteraction(draw);
addInteraction();
};
addInteraction();

View File

@@ -0,0 +1,50 @@
<!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="../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>Dynamic data 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">Dynamic data example</h4>
<p id="shortdesc">Example of dynamic data.</p>
<div id="docs">
<p>See the <a href="dynamic-data.js" target="_blank">dynamic-data.js source</a> to see how this is done.</p>
</div>
<div id="tags">dynamic-data</div>
</div>
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=dynamic-data" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

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