Compare commits

..

3895 Commits

Author SHA1 Message Date
Éric Lemoine
b8c39bd62c Merge pull request #2336 from elemoine/seturl
Add ol.source.TileWMS#setUrls and setUrl
2014-07-11 12:31:00 +02:00
Éric Lemoine
b518466968 Merge pull request #2335 from elemoine/pixelratio-xyz
Add tilePixelRatio option to ol.source.XYZ
2014-07-11 12:17:50 +02:00
Peter Robins
5fb78fb352 Add ol.source.TileWMS#setUrls and setUrl 2014-07-11 12:07:07 +02:00
Petr Pridal
1a933febcd Add tilePixelRatio option to ol.source.XYZ 2014-07-11 12:03:55 +02:00
Éric Lemoine
2b4b2dadf7 Be stricter with the type of ol.source.TileWMS#_urls 2014-07-11 12:03:02 +02:00
Antoine Abt
aafa578805 Merge pull request #2159 from tonio/attributions
Merge Logo control into Attribution
2014-07-11 11:48:21 +02:00
Antoine Abt
e707e918aa Use @api annotation 2014-07-11 10:31:03 +02:00
Antoine Abt
1c8fc8358a Remove reference to ol-logo 2014-07-11 10:31:03 +02:00
Antoine Abt
f0f9291161 Add attributions example
Showing how to dynamically change collapsed/collapsible properties for ≠
map sizes.
2014-07-11 10:31:03 +02:00
Antoine Abt
4f087f1b84 Add getter/setter for collapsed & collapsible 2014-07-11 10:18:56 +02:00
Antoine Abt
6744713a54 Register button handlers the new way 2014-07-11 10:18:56 +02:00
Antoine Abt
d5d5f58809 Do not collapse Attributions when using OSM source 2014-07-11 10:18:55 +02:00
Antoine Abt
4d150e6b84 Move Logos in attributions 2014-07-11 09:53:25 +02:00
Antoine Abt
da74fbf529 Remove Logo Control 2014-07-11 09:53:25 +02:00
Antoine Abt
aeaa172abe Remove Logo Control from defaults 2014-07-11 09:36:14 +02:00
Antoine Abt
5a1e92830f Make attribution control collapsible. 2014-07-11 09:36:14 +02:00
Andreas Hocevar
121d19e0ba Merge pull request #2333 from ahocevar/better-proj4-check
Check for proj4 in a way that also works in module environments
2014-07-10 20:36:52 +02:00
Andreas Hocevar
1d26c1faaf Check for proj4 in a way that also works in module environments 2014-07-10 20:23:33 +02:00
Andreas Hocevar
512c2032ed Merge pull request #2330 from ahocevar/proj4-global
Safeguard against cases where no projection and no proj4 is available
2014-07-10 18:53:26 +02:00
Éric Lemoine
31fa59c996 Merge pull request #2329 from tsauerwein/multipolygon-empty-array
Also accept empty array for ol.geom.MultiPolygon
2014-07-10 18:35:43 +02:00
Andreas Hocevar
19757ae3e0 Safeguard against cases where no projection and no proj4 is available 2014-07-10 18:32:29 +02:00
tsauerwein
7c22d8ffd4 Also accept empty array for ol.geom.MultiPolygon 2014-07-10 17:18:24 +02:00
Bart van den Eijnden
ea7c32ff6e Merge pull request #2255 from elemoine/complexgeom
Fix canvas immediate API for cases where stride ≠ 2
2014-07-10 17:03:57 +02:00
Bart van den Eijnden
60c7564268 Add test case for 3D geometries in immediate API 2014-07-10 16:51:07 +02:00
Éric Lemoine
d57a35ffcb Fix stride related bug in Canvas immediate API 2014-07-10 14:21:56 +02:00
Paul Spencer
9dc17230c2 Merge pull request #2323 from pagameba/fix-addfeatures
ServerVector addFeaturesInternal fails when features lack an id
2014-07-10 08:08:54 -04:00
Paul Spencer
a02d21d4b5 Allow addFeaturesInternal to add multiple features lacking an id 2014-07-10 07:32:20 -04:00
Andreas Hocevar
9640a08c0e Merge pull request #1228 from ahocevar/new-proj4js
Use the new proj4.js
2014-07-10 13:31:17 +02:00
Éric Lemoine
a737cf0d99 Merge pull request #2326 from probins/osmxml
Change examples/vector-osm to use transformExtent
2014-07-10 13:20:19 +02:00
Éric Lemoine
7789bff3da Add explanations to wms-custom-proj example 2014-07-10 13:17:24 +02:00
Peter Robins
8e2a12bfc1 Change examples/vector-osm to use transformExtent 2014-07-10 11:07:39 +00:00
Éric Lemoine
4541019ff4 Merge pull request #2325 from elemoine/imagevector
Pass tolerance to ReplayGroup
2014-07-10 11:24:18 +02:00
Éric Lemoine
49b91998f9 Pass tolerance to ReplayGroup
The tolerance instead of the squared tolerance must be passed to the ReplayGroup constructor.
2014-07-10 09:52:13 +02:00
Andreas Hocevar
193adf4401 Move Swiss transform functions to the .js file 2014-07-09 21:24:42 +02:00
Andreas Hocevar
1ae82b054c Revert to only accept ol.proj.Projection as argument 2014-07-09 18:12:07 +02:00
Andreas Hocevar
1bb5705b55 Clean up after testing 2014-07-09 18:11:22 +02:00
Andreas Hocevar
8f1fdde26e Show both Proj4js and custom transform functions in examples 2014-07-09 18:09:23 +02:00
Éric Lemoine
4cf8383820 Avoid a type-cast 2014-07-09 17:51:24 +02:00
Andreas Hocevar
fc3ed93080 Use proj4.js from node_modules/ instead of copying it to build/ 2014-07-09 15:33:13 +02:00
Andreas Hocevar
0a01f8ef7e Simplify ol.proj.addCoordinateTransforms
Equivalent projections do not need to be handled here, and the forward
and inverse functions can be function arguments instead of being nested
in an object literal.
2014-07-09 15:33:13 +02:00
Andreas Hocevar
90c745006d Update to use the documented Proj4js 2.2.x API 2014-07-09 15:33:12 +02:00
Andreas Hocevar
a22d7e4d22 Allow Proj4js to be loaded after OpenLayers 2014-07-09 15:33:12 +02:00
Andreas Hocevar
20e903f8d9 Add proj4 to package.json 2014-07-09 15:32:54 +02:00
Paul Spencer
f1bdaed15a Merge pull request #2177 from pagameba/geometry-api
Add @todo api and describe ol.geom.Geometry funcs
2014-07-09 07:23:32 -04:00
Paul Spencer
4bcbda61c6 Merge pull request #2298 from probins/props
Document that options in layers and properties in features are set as object properties
2014-07-09 07:21:53 -04:00
Peter Robins
17d059f7bb Document that layer options are set as object properties 2014-07-09 06:40:28 -04:00
Peter Robins
9915bb873c Document that feature properties are set as object properties 2014-07-09 06:39:42 -04:00
Paul Spencer
befcc4ceea Merge pull request #2204 from probins/dragbox
Correct/improve dragbox docs
2014-07-08 19:40:55 -04:00
Andreas Hocevar
88ab1ac61a Doc changes suggested by @probins 2014-07-08 22:06:21 +02:00
Andreas Hocevar
8b2277cdda Use proj4.defs instead of proj4.Proj, to conform with the proj4js API 2014-07-08 22:06:21 +02:00
Andreas Hocevar
0c62469f50 Update example to show transparent proj4js integration 2014-07-08 22:06:21 +02:00
Andreas Hocevar
dfe92da58d Update example to show manual proj4js configuration 2014-07-08 22:06:21 +02:00
Andreas Hocevar
b5bdd0d4bb Update tests 2014-07-08 22:06:21 +02:00
Andreas Hocevar
8b89f5b689 Update API to work with custom transforms, including proj4js
All transparent proj4js handling is now in ol.proj.get, and a new
addCoordinateTransforms function makes it easy to configure custom
transform functions. ol.Proj4jsProjection is no longer needed.
2014-07-08 22:06:20 +02:00
Andreas Hocevar
dc09b0a27f Update externs and ol.HAVE_PROJ4JS for new proj4js API 2014-07-08 22:06:20 +02:00
Andreas Hocevar
971c1137bc Download and use new proj4js 2014-07-08 22:06:20 +02:00
Andreas Hocevar
d215696154 Merge pull request #2322 from ahocevar/view-projection
Make sure that projection is an ol.proj.Projection instance
2014-07-08 22:01:21 +02:00
Andreas Hocevar
38bf0b439a Merge pull request #2321 from ahocevar/cleanup-package-json
Remove transient jsdoc dependencies
2014-07-08 21:52:54 +02:00
Andreas Hocevar
82604ff60b Make sure that projection is an ol.proj.Projection instance 2014-07-08 21:41:08 +02:00
Andreas Hocevar
3a0d0c7290 Remove transient jsdoc dependencies
alpha9 has the dependencies fixed again, so no need to keep taffydb and
underscore around.
2014-07-08 21:38:16 +02:00
Tim Schaub
8e555fad5b Merge pull request #2312 from tschaub/test-deps
Move test dependencies out of the repo.
2014-07-07 07:04:42 -06:00
Paul Spencer
570a0c23a7 Merge pull request #2183 from pagameba/classdesc
Use @classdesc notation
2014-07-07 08:30:33 -04:00
Paul Spencer
8d991bd638 Add @todo API and describe ol.geom.Geometry funcs
The `clone()`, `getSimplifiedGeometry()` and `getType()` methods are all
base class methods documented in subclasses.  They should appear in
ol.geom.Geometry in the API docs as well.
2014-07-07 08:29:56 -04:00
Andreas Hocevar
9b1e9dbc8e Merge pull request #2317 from ahocevar/export-transform
Make transform exportable
2014-07-07 11:19:04 +02:00
Andreas Hocevar
1933d809e2 Export transform
ol.ObjectAccessor#transform is used in the bind-input example. Why the
example works without this export is a mystery to me. Either way, we
will want this in the docs.
2014-07-07 10:45:15 +02:00
Tim Schaub
5fdb380fb6 Merge pull request #2315 from tschaub/full-screen
Use goog.dom.fullscreen.
2014-07-06 17:18:44 -06:00
Tim Schaub
9c6cb9db6d Use goog.dom.fullscreen 2014-07-06 16:03:09 -06:00
Tim Schaub
26e6260446 Merge pull request #2313 from tschaub/transform-extent
Add ol.proj.transformExtent function.
2014-07-06 15:33:33 -06:00
Tim Schaub
d0301805c7 Doc flip 2014-07-06 15:26:04 -06:00
Tim Schaub
1f88015db0 Add ol.proj.transformExtent function 2014-07-06 13:22:47 -06:00
Tim Schaub
21878ebad3 Lint 2014-07-06 12:47:33 -06:00
Tim Schaub
7e8551a767 Unused extensions 2014-07-06 12:43:55 -06:00
Tim Schaub
93716fc7f0 Extend expect.js rather than modify the source 2014-07-06 12:40:03 -06:00
Tim Schaub
d8ca8e7341 Update test readme 2014-07-06 11:53:34 -06:00
Tim Schaub
264a01cfd4 Add jquery as a dev dependency 2014-07-06 11:47:58 -06:00
Tim Schaub
8a3f1a8f34 Add mocha and mocha-phantomjs as dev dependencies 2014-07-06 11:40:08 -06:00
Tim Schaub
70cb7a4a0a Add sinon as a dev dependency 2014-07-06 11:21:01 -06:00
Tim Schaub
6f398f93dd Merge pull request #2309 from tschaub/test
Add a task to run the tests once with PhantomJS.
2014-07-06 06:52:13 -06:00
Éric Lemoine
94ba9aeea9 Merge pull request #2296 from elemoine/settileurlfunction
Use inheritDoc for ol.source.XYZ#setTileUrlFunction
2014-07-06 13:21:17 +02:00
Éric Lemoine
4e0d48386b Use inheritDoc for ol.source.XYZ#setTileUrlFunction 2014-07-06 11:49:19 +02:00
Éric Lemoine
76584c3291 Merge pull request #2307 from elemoine/build
Build-related clean-ups
2014-07-06 09:16:11 +02:00
Tim Schaub
b452e04e08 Add a task to run the tests once with PhantomJS
The test.js task starts the development server and runs the tests in PhantomJS.  As mentioned in the readme, when running the tests continuously during development, it is more convenient to start the dev server and visit the root of the test directory in your browser.

Later we can bring in Karma to drive PhantomJS and other browsers, but this simple "run once" task is useful for the CI job.
2014-07-05 19:42:30 -04:00
Éric Lemoine
f18dbcdb97 Remove bin/closure
And use the depswriter.py script from Closure Library downloaded by closure-util.
2014-07-05 23:46:03 +02:00
Éric Lemoine
fa25f2a477 Remove examples/loader.js
That script was used when Plovr was used for running the examples.
2014-07-05 23:36:59 +02:00
Éric Lemoine
043cd0ff41 Remove test/ol.html
This file was used when Plovr was used for running the tests.
2014-07-05 23:34:02 +02:00
Tim Schaub
489096e40b Merge pull request #2305 from tschaub/todo
Replace @todo annotations.
2014-07-05 16:52:45 -04:00
Tim Schaub
1951c385a8 Merge pull request #2306 from tschaub/new
Remove old code.
2014-07-05 16:20:06 -04:00
Tim Schaub
5a24d022cf Extra annotations for build.py as well 2014-07-05 16:19:41 -04:00
Tim Schaub
d99a61545c Use @observable annotation instead of @todo observable 2014-07-05 16:16:44 -04:00
Tim Schaub
fd659d63e9 Remove @todo stability annotation (this has no effect) 2014-07-05 16:16:34 -04:00
Tim Schaub
10f4d0c3d7 Removing old code 2014-07-05 15:54:44 -04:00
Tim Schaub
8b29b52e95 Document olx.format.PolylineOptions
This was mistakenly annotated with `@todo stability` (which does nothing).
2014-07-05 15:43:03 -04:00
Tim Schaub
4cf5ab4620 Use @api annotation instead of @todo api 2014-07-05 15:41:14 -04:00
Éric Lemoine
297503e7c9 Merge pull request #2297 from elemoine/remove-plovr
Remove Plovr
2014-07-04 22:34:26 +02:00
Éric Lemoine
207e23099a Merge pull request #2300 from elemoine/geojson
GeoJSON format needs to implement readProjectionFromObject
2014-07-04 14:44:35 +02:00
Éric Lemoine
0666dee697 GeoJSON format needs to implement readProjectionFromObject 2014-07-04 13:51:27 +02:00
Éric Lemoine
e0a8bb045a Farewell Plovr 2014-07-04 10:51:18 +02:00
Éric Lemoine
c6138edbcb Remove the test.json Plovr config file 2014-07-04 10:51:18 +02:00
Éric Lemoine
52294519bc Remove the base.json Plovr config file 2014-07-04 10:51:18 +02:00
Éric Lemoine
07b02c2a55 Add a buildcfg/readme.md 2014-07-04 10:51:18 +02:00
Éric Lemoine
46149ff6f9 Remove ununsed serve-integration-test target 2014-07-04 10:51:18 +02:00
Éric Lemoine
a4e923cf4b Target integration-test renamed to ci 2014-07-04 10:51:17 +02:00
Éric Lemoine
d1820fbce5 Update .travis.yml 2014-07-04 10:51:17 +02:00
Éric Lemoine
1626399c08 Use serve.js as the test server 2014-07-04 10:51:17 +02:00
Frederic Junod
2064d08602 Refresh the compiler error list
Based on https://github.com/openlayers/closure-util/blob/master/compiler-options.txt
2014-07-04 10:51:17 +02:00
Éric Lemoine
1129e0d934 Get Closure Library from closure-util for host-examples 2014-07-04 10:51:17 +02:00
Frederic Junod
234dd91ff2 Remove some externs declarations
All these declarations are defined in recent versions of Closure Compiler.
2014-07-04 10:51:17 +02:00
Éric Lemoine
f54398eda3 compilation_level is now just ADVANCED and SIMPLE 2014-07-04 10:51:17 +02:00
Éric Lemoine
a157ecd788 Make compiler happy by replacing 0e6 by 0 2014-07-04 10:51:17 +02:00
Éric Lemoine
167d13b4f6 Use closure-util's Closure lib for the check-requires target 2014-07-04 10:51:17 +02:00
Éric Lemoine
8c4a55cc65 Use build.js for compiling the examples all at once 2014-07-04 09:15:23 +02:00
Éric Lemoine
35888d1dc6 Use build.js for compiling the examples 2014-07-04 09:15:23 +02:00
Éric Lemoine
0ae1cd7cf5 Fix a type issue in jquery-1.7 externs
See https://github.com/google/closure-compiler/issues/176
2014-07-04 09:15:23 +02:00
Éric Lemoine
152b434f1b Add jquery-1.7 externs 2014-07-04 09:15:23 +02:00
Éric Lemoine
992e0fa218 Use serve.js instead of the Plovr server 2014-07-04 09:15:23 +02:00
Éric Lemoine
f89abb53a9 Use build.js for ol-all.js 2014-07-04 09:15:23 +02:00
Éric Lemoine
4e8c9c5470 Use build.js for ol-whitespace.js 2014-07-04 09:15:23 +02:00
Éric Lemoine
3ea304f5bf Use build.js for ol-simple.js 2014-07-04 09:15:23 +02:00
Éric Lemoine
04e60a9d37 Use build.js for ol.js 2014-07-04 09:15:22 +02:00
Éric Lemoine
064f95f530 Remove the IE 11 fullscreen externs declarations
They are defined in recent versions of Closure Compiler.
2014-07-04 09:15:22 +02:00
Éric Lemoine
18462a2af3 Merge pull request #2229 from tsauerwein/stable
Add stable tags to interactions
2014-07-04 06:31:13 +02:00
Éric Lemoine
76e1ca67a4 Merge pull request #2269 from probins/select
Improve docs for interaction.Select
2014-07-03 17:07:03 +02:00
Marc Jansen
4fed441eda Merge pull request #2280 from probins/intro
Introduction tutorial
2014-07-03 16:53:55 +02:00
Éric Lemoine
067345a4b0 Merge pull request #2293 from elemoine/vector-wfs
Minor change to vector-wfs example
2014-07-03 14:55:13 +02:00
Éric Lemoine
6abba32707 Minor change to vector-wfs example
My linter complains that vectorSource is used before it is defined.
2014-07-03 14:53:49 +02:00
Éric Lemoine
d8cc019184 Merge pull request #2292 from elemoine/closure-util
Use closure-util 0.19.0
2014-07-03 14:45:03 +02:00
tsauerwein
b8ab6fd771 Add stable tags to interactions 2014-07-03 14:19:16 +02:00
Éric Lemoine
2e541b43d1 Use closure-util 0.19.0 2014-07-03 14:17:01 +02:00
Paul Spencer
abe953e4e5 Use @classdesc notation (continuing #2178) 2014-07-03 08:09:25 -04:00
Paul Spencer
b0a1444da0 Merge pull request #2290 from pagameba/typo
Fix spelling of GEOMETRY_RENDERERS_
2014-07-03 07:33:57 -04:00
Éric Lemoine
450d42a4cc Merge pull request #2276 from elemoine/select
Add "action type" select to select-features example
2014-07-03 12:36:01 +02:00
Peter Robins
90f2f96797 Introduction tutorial 2014-07-03 05:14:25 -04:00
Peter Robins
49aabda1b9 Improve docs for interaction.Select 2014-07-03 04:54:09 -04:00
Éric Lemoine
f8ba6758a2 Add "action type" select to select-features example
Making it possible to choose between three select interactions, one that works on "singleclick", one that works on "click", and one that works on "mousemove".
2014-07-03 09:24:23 +02:00
Éric Lemoine
ef1414c508 Minor apidoc change 2014-07-03 09:14:41 +02:00
Éric Lemoine
355ca67b86 Add ol.events.condition.click 2014-07-03 09:14:41 +02:00
Éric Lemoine
67c2e46c19 Add ol.events.condition.mouseMove 2014-07-03 09:14:41 +02:00
Paul Spencer
a93f7b8190 Fix spelling of GEOMETRY_RENDERERS_ 2014-07-02 21:54:53 -04:00
Marc Jansen
700a0b15b3 Merge pull request #2278 from probins/control
Document custom controls
2014-07-02 18:52:34 +02:00
Marc Jansen
fdf0525c71 Merge pull request #2286 from probins/defines
Improve docs for define tag
2014-07-02 18:45:27 +02:00
Frédéric Junod
17bb8d8ca1 Merge pull request #2288 from fredj/latest-closure-library
Mark the color argument to ol.color.transform non-nullable
2014-07-02 17:44:15 +02:00
Tim Schaub
927513e1f0 Merge pull request #2284 from tschaub/classes
Use `goog.dom.classlist` functions instead of the deprecated `goog.dom.classes` functions.
2014-07-02 10:18:28 -04:00
Éric Lemoine
fe776b0d1a Merge pull request #2287 from tsauerwein/geojson-write-geometry
Export ol.format.GeoJSON.writeGeometry()
2014-07-02 14:46:46 +02:00
Frederic Junod
54ea8dc52b Mark the color argument to ol.color.transform non-nullable
Inside this function goog.vec.Mat4.multVec3 is called and and its
arguments must not be null.
2014-07-02 14:43:29 +02:00
Peter Robins
2e1957c42c Improve docs for define tag 2014-07-02 08:22:23 -04:00
tsauerwein
97e59f0976 Export ol.format.GeoJSON.writeGeometry() 2014-07-02 13:48:51 +02:00
Éric Lemoine
3e49ea2ba0 Merge pull request #2285 from tsauerwein/vector-source-clear
Export ol.source.Vector.clear()
2014-07-02 12:10:46 +02:00
tsauerwein
5adb3a6a8e Export ol.source.Vector.clear() 2014-07-02 11:53:58 +02:00
Frédéric Junod
242787da45 Merge pull request #2283 from fredj/closure-util.json
Fix the closure-compiler and closure-library versions
2014-07-02 10:33:54 +02:00
Frederic Junod
6b230d3711 Fix the closure-library version
The version is the same as the one provided by plovr-81ed862.jar
2014-07-02 10:22:27 +02:00
Frederic Junod
d3234f1b6a Depends on closure-util version 0.18.0 2014-07-02 09:15:02 +02:00
Tim Schaub
4b57f7798f Use goog.dom.classlist functions
The goog.dom.classes functions have now been deprecated.  See 97e8a0c0fc
2014-07-01 14:09:28 -04:00
Tim Schaub
203df11c96 Merge pull request #2281 from tschaub/remove-libtess
Remove libtess.js.
2014-07-01 12:51:48 -04:00
Marc Jansen
a3e332c0c2 Merge pull request #2282 from marcjansen/coordinate-tests
Add more tests to ol.coordinate
2014-07-01 17:14:44 +02:00
Marc Jansen
70548b4704 Add tests for ol.coordinate.equals(). 2014-07-01 17:02:34 +02:00
Marc Jansen
00fd5caa92 Add tests for ol.coordinate.createStringXY(). 2014-07-01 17:02:34 +02:00
Marc Jansen
07b41f84d0 Add tests for ol.coordinate.add(). 2014-07-01 17:02:34 +02:00
Peter Robins
3bbf9ae720 Document custom controls 2014-07-01 09:57:26 -04:00
Tim Schaub
97985934e1 Remove libtess.js 2014-07-01 08:45:09 -04:00
Andreas Hocevar
60f283d5c0 Merge pull request #2279 from ahocevar/show-sketch-vertex
Show sketch vertex for all geometry types
2014-07-01 12:04:40 +02:00
Andreas Hocevar
29370a04aa Show sketch vertex for all geometry types 2014-07-01 11:52:21 +02:00
Éric Lemoine
c6083f0592 Merge pull request #2277 from probins/pm
Document that panning triggers pointermove on touch
2014-06-30 21:17:33 +02:00
Peter Robins
b4596732e1 Document that panning triggers pointermove on touch 2014-06-30 12:29:36 -04:00
Éric Lemoine
64fcb1a0f5 Merge pull request #2264 from elemoine/object
ol.ObjectAccessor#transform shouldn't dispatch an event to the target object
2014-06-30 12:17:33 +02:00
Tim Schaub
9e7c516d08 Merge pull request #2275 from tschaub/relative
Allow build task to be run from anywhere and provide option for resolving relative paths.
2014-06-29 15:16:47 -04:00
Tim Schaub
a8a035468b Allow cwd to be configured for build
By default, all paths in the build config (e.g. externs) are assumed to be relative to the ol3 repo root.  To make it so relative paths are resolved from a different directory, use the cwd option.

In addition, this change makes it so the `build.js` task can be run from another directory.
2014-06-29 15:02:47 -04:00
Tim Schaub
fb7d39005e Unused var 2014-06-29 12:55:30 -04:00
Tim Schaub
ce209220ae Merge pull request #2268 from tschaub/classdesc
Treat classdesc as description.
2014-06-29 08:58:22 -04:00
Éric Lemoine
ade0cd8aaf Merge pull request #2265 from elemoine/setproperties
Change setValues to setProperties
2014-06-29 11:56:17 +02:00
Tim Schaub
93ece7021c Merge pull request #2266 from tschaub/extra-require
Extra goog.require calls.
2014-06-28 10:47:35 -04:00
Tim Schaub
2f5a92c2c9 Treat classdesc as description 2014-06-28 10:46:36 -04:00
Marc Jansen
8f81f2e453 Merge pull request #2267 from probins/sig
Docs: fix missing space on type signature
2014-06-28 14:54:59 +02:00
Peter Robins
68885cbb96 Docs: fix missing space on type signature 2014-06-28 08:29:41 -04:00
Tim Schaub
2ec63b6c58 Unnecessary ol.Tile requires 2014-06-27 19:57:54 -04:00
Tim Schaub
997517110c Unnecessary ol.Image require 2014-06-27 19:51:38 -04:00
Tim Schaub
19cf117a08 Merge pull request #2172 from gingerik/restore-wkt-parser
Back from the ashes!  The WKT format lives!
2014-06-27 17:52:22 -04:00
Erik Timmers
1e61485e11 Extend WKT parser from ol.format.TextFeature 2014-06-27 23:35:36 +02:00
Erik Timmers
61378098e6 Restore the WKT parser, example & tests 2014-06-27 23:35:35 +02:00
Éric Lemoine
eafc2ac371 Change setValues to setProperties 2014-06-27 17:26:51 +02:00
Tim Schaub
fa5f99c716 Merge pull request #2261 from tschaub/view
Rename View2D to View.
2014-06-27 10:38:27 -04:00
Tim Schaub
e802902f9b Rename ol.extent.getForView2DAndSize to ol.extent.getForViewAndSize 2014-06-27 09:59:39 -04:00
Tim Schaub
9565e17ee0 Rename ol.View2DProperty to ol.ViewProperty 2014-06-27 09:59:39 -04:00
Tim Schaub
878dcd1d28 Rename olx.View2DOptions to olx.ViewOptions 2014-06-27 09:59:39 -04:00
Tim Schaub
47d37fabea Rename ol.View2D to ol.View 2014-06-27 09:59:39 -04:00
Tim Schaub
b9f444a008 Rename olx.View2DState to olx.ViewState and use viewState property 2014-06-27 09:58:25 -04:00
Tim Schaub
2e88f911dd Rename view.getView2DState() to view.getState() 2014-06-27 09:52:19 -04:00
Tim Schaub
b88d2aebc9 Remove view.getView2D() method 2014-06-27 09:52:19 -04:00
Tim Schaub
956e1bf8b4 Remove ol.View base class 2014-06-27 09:52:19 -04:00
Tim Schaub
3c1cb55079 Remove IView and IView2D 2014-06-27 09:52:19 -04:00
Tim Schaub
c74f945817 Remove IView3D 2014-06-27 09:52:19 -04:00
Andreas Hocevar
efc3e3244a Merge pull request #2254 from elemoine/replaygroup
Use replay groups for feature overlays
2014-06-27 12:59:06 +02:00
Andreas Hocevar
cf13cb5e32 Fix remaining API doc issues with squared tolerance vs. tolerance 2014-06-27 12:20:16 +02:00
Andreas Hocevar
80fa0be42f Use setStyle in the constructor 2014-06-27 12:14:22 +02:00
Andreas Hocevar
f67767aaf0 Add ol.renderer.vector.getSquaredTolerance and ol.SIMPLIFY_TOLERANCE 2014-06-27 12:10:46 +02:00
Andreas Hocevar
2171c92b5c Add new tests for FeatureOverlay
In the process of creating these tests, a bug with setting this._style
was also fixed.
2014-06-27 11:46:47 +02:00
Éric Lemoine
be69f5bdac Merge pull request #2244 from elemoine/kmlwrite
KML write support
2014-06-27 11:23:16 +02:00
Éric Lemoine
1ec25f3992 Remove the unused ol.format.KML.DOCUMENT_SEQUENCE_ 2014-06-27 10:59:31 +02:00
Éric Lemoine
ccd01fb874 Add ol.format.XSD.writeBooleanTextNode 2014-06-27 10:56:04 +02:00
Bart van den Eijnden
2517c712db Merge pull request #2263 from bartvde/transformflatgeom-test
Add some test coverage for ol.geom.transformSimpleGeometry2D
2014-06-27 10:36:49 +02:00
Éric Lemoine
b67e71828d Add a test for ol.Object 2014-06-27 10:17:13 +02:00
Éric Lemoine
5ebb9686ce ol.Object doc improvement 2014-06-27 10:16:53 +02:00
Éric Lemoine
9179c914b8 Notify ol.Object source when transform is called 2014-06-27 10:16:27 +02:00
Bart van den Eijnden
e3cbece91b Add some test coverage for ol.geom.transformSimpleGeometry2D 2014-06-27 10:07:47 +02:00
Frédéric Junod
c4cf76f983 Merge pull request #2260 from fredj/vectorsource-same-id
Remove uniqueness constraint check
2014-06-27 10:07:44 +02:00
Frederic Junod
a172eda242 Remove uniqueness constraint check 2014-06-26 17:55:38 +02:00
Frédéric Junod
d1737228e9 Merge pull request #2256 from fredj/easing.jsdoc
Add the jsdoc ol.easing namespace
2014-06-26 16:39:22 +02:00
Peter Robins
85c1427111 Add ol.easing to api docs 2014-06-26 16:14:59 +02:00
Andreas Hocevar
1551e6e7ff Improved forEatchFeatureAtPixel docs 2014-06-26 15:17:29 +02:00
Éric Lemoine
177188d732 Add ol.format.KML.SCHEMA_LOCATION_ 2014-06-26 15:13:04 +02:00
Paul Spencer
33948a7244 Merge pull request #2247 from pagameba/source-state
Use string values for ol.source.State enum
2014-06-26 08:27:06 -04:00
Paul Spencer
bf9dbd614a Use string values for ol.source.State enum
Many user-facing enums are string values and we document use of the string values rather than more confusing enum reference or the numeric values.
2014-06-26 08:15:03 -04:00
Éric Lemoine
b25e577865 Do not "export" ol.render.Event#replayGroup 2014-06-26 14:11:43 +02:00
Éric Lemoine
6cf4c95762 Flush the vector context after replaying the batch 2014-06-26 14:06:56 +02:00
Andreas Hocevar
d2e4603171 Merge pull request #2252 from probins/patch-1
Fix broken links in api docs landing page
2014-06-26 13:24:20 +02:00
Andreas Hocevar
ba2d49d715 Finish the replay group after dispatching the compose event 2014-06-26 13:16:34 +02:00
Peter Robins
54d249e921 Fix broken links in api docs landing page 2014-06-26 12:16:18 +01:00
Éric Lemoine
0762b8c023 Defer selection/deselection 2014-06-26 10:39:58 +02:00
oterral
02b8ef1bb6 Fix nodes order in Placemark and IconStyle 2014-06-26 09:24:08 +02:00
oterral
5d8d936216 Use ol.xml.setAttributeNS for xmlns attributes 2014-06-26 09:07:22 +02:00
Éric Lemoine
bcdce20ee3 Clone skippedFeatureUids_ 2014-06-25 18:32:08 +02:00
Éric Lemoine
18d117dff6 Hit detection for features drawn at pre/postcompose 2014-06-25 18:32:02 +02:00
Tim Schaub
b977d85229 Merge pull request #2246 from tschaub/kind
Add symbol kind to info.
2014-06-25 11:52:28 -04:00
Tim Schaub
d5de99bcf7 Add symbol kind to info 2014-06-25 11:11:22 -04:00
Tim Schaub
dc6fd76e25 Merge pull request #2245 from sweco-sebhar/patch-1
Make `ol.Observable#getRevision` exportable.
2014-06-25 10:53:18 -04:00
Björn Harrtell
8fab2f7d25 Add getRevision to api
The revision can be useful for instance to check if a feature has been modified so I'd like to see it in api.
2014-06-25 16:19:42 +02:00
Éric Lemoine
384f2a0ecf Create valid KML documents
Thanks @bartvde.
2014-06-25 15:58:56 +02:00
Éric Lemoine
05970c9831 Minor change to the example externs file 2014-06-25 15:58:56 +02:00
Éric Lemoine
fba89275d8 Use exampleNS.strToBase64 in kml example 2014-06-25 15:58:56 +02:00
Éric Lemoine
7fb3e5842d Add an exampleNS.strToBase64 function
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding
2014-06-25 15:58:56 +02:00
Éric Lemoine
78ac2c8a76 Add export button to kml example 2014-06-25 12:25:43 +02:00
Éric Lemoine
a4e95eb513 Add write support to KML format 2014-06-25 12:17:32 +02:00
Éric Lemoine
8dc9618adb Add ol.style.Icon#getImageSize 2014-06-25 12:16:22 +02:00
Éric Lemoine
bd3da0eed9 Merge pull request #2242 from elemoine/feature-clone
Add ol.Feature#clone
2014-06-25 09:43:41 +02:00
Andreas Hocevar
4679a7d4fb Merge pull request #2138 from probins/mapoptions
Document map options more thoroughly
2014-06-25 09:35:56 +02:00
Éric Lemoine
ec6a0548d1 Add ol.Feature#clone 2014-06-25 09:31:15 +02:00
Éric Lemoine
34d389e2f8 Merge pull request #2218 from oterral/exports
Add exports
2014-06-25 09:30:37 +02:00
oterral
0fefd680d4 Make ol.tilegrid.TileGrid#getResolutions method exportable 2014-06-25 08:31:45 +02:00
oterral
67bd397c37 Make ol.format.KML#readName method exportable 2014-06-25 08:31:45 +02:00
Frédéric Junod
b8dca03365 Merge pull request #2241 from fredj/misc
Cleanup vector-labels example
2014-06-24 23:11:10 +02:00
Frederic Junod
a6d059649f Cleanup vector-labels example 2014-06-24 16:45:58 +02:00
Frédéric Junod
3f5e42258a Merge pull request #2239 from probins/patch-1
Correct minor typo in ol.dom.Input docs
2014-06-24 13:27:29 +02:00
Frédéric Junod
1c751b9e9f Merge pull request #2238 from fredj/circle-hit-detection
Circle hit detection
2014-06-24 13:27:02 +02:00
Peter Robins
928b05e857 Correct minor typo in ol.dom.Input docs 2014-06-24 12:04:42 +01:00
Frederic Junod
2c6b22f55c Use the right coordinates when drawing circles 2014-06-24 12:25:21 +02:00
Andreas Hocevar
85ddd2446e Add endGeometry after hit detection stroke and fill 2014-06-24 12:23:47 +02:00
Paul Spencer
e5b9098965 Merge pull request #2207 from probins/projdocs
Improve docs for projection/transform functions
2014-06-23 07:48:46 -04:00
Peter Robins
ff3e66d550 Improve docs for projection/transform functions 2014-06-23 06:16:35 -04:00
Éric Lemoine
d7a046a0dc Merge pull request #2200 from probins/examplereadme
Add examples/readme
2014-06-22 19:08:16 +02:00
Peter Robins
8dcbded96a Add examples/readme 2014-06-22 11:57:03 -04:00
Marc Jansen
f2389a9a7d Merge pull request #2231 from probins/patch-1
Correct minor typo in ol.extent.buffer docs
2014-06-21 18:32:34 +02:00
Peter Robins
dbe3729857 Correct minor typo in ol.extent.buffer docs 2014-06-21 14:01:08 +01:00
Éric Lemoine
b6be48564c Merge pull request #2230 from probins/condition
Update docs for events.condition options
2014-06-20 20:33:19 +02:00
Peter Robins
68fcba6e35 Update docs for events.condition options 2014-06-20 14:15:52 -04:00
Peter Robins
68ec57b004 Document map options more thoroughly 2014-06-20 08:27:20 -04:00
Peter Robins
c1c98b45b9 Correct/improve dragbox docs 2014-06-20 04:45:12 -04:00
Frédéric Junod
71da6603cb Merge pull request #2171 from fredj/hidpi-text-stroke
Don't scale the text stroke width by pixel ratio
2014-06-19 19:20:32 +02:00
Éric Lemoine
5df4b5030a Merge pull request #1941 from elemoine/stable
Mark ol.Map and ol.Collection as stable
2014-06-19 15:53:23 +02:00
Frédéric Junod
19467fae8e Merge pull request #2223 from fredj/igc-example-input
Fix invalid input tag in igc example
2014-06-19 14:33:15 +02:00
Frederic Junod
6194eeda8e Fix invalid input tag in igc example 2014-06-19 11:37:47 +02:00
Éric Lemoine
b40a6997d9 Add stable tags to ol.Map 2014-06-19 10:37:11 +02:00
Éric Lemoine
601f0d8fd2 Add stable tags to ol.Collection 2014-06-19 10:35:04 +02:00
Éric Lemoine
5e9121cd8b Merge pull request #2217 from elemoine/overlay-offset
Add an offset property to ol.Overlay
2014-06-19 10:20:38 +02:00
Frédéric Junod
a4df24abb5 Merge pull request #2219 from fredj/rbush-update
Allow the value to be changed while iterating over the rtree
2014-06-19 10:10:53 +02:00
Éric Lemoine
af78adb417 Make ol.Overlay always call setPositioning 2014-06-19 10:09:57 +02:00
Éric Lemoine
0a0d12ec8a Make ol.Overlay always call setOffset 2014-06-19 10:09:37 +02:00
Éric Lemoine
dced47157e Better docs for ol.Overlay#positioning 2014-06-19 09:57:58 +02:00
Frédéric Junod
32f58b4b4e Merge pull request #2220 from fredj/synthetic-points-popup
Remove the unused popup from the synthetic-points example
2014-06-19 09:55:43 +02:00
Éric Lemoine
dc6867ea2f Merge pull request #2216 from elemoine/pixelratio
Add tilePixelRatio option to ol.source.WMTS
2014-06-19 09:51:41 +02:00
Éric Lemoine
fd151e1386 Add docs for tilePixelRatio 2014-06-19 09:50:53 +02:00
Frederic Junod
8d12c76c1d Remove the unused popup from the synthetic-points example 2014-06-19 09:43:37 +02:00
Frederic Junod
7408100c27 Allow the value to be changed while iterating over the rtree 2014-06-19 09:24:48 +02:00
Éric Lemoine
a9a1a42b8b Merge pull request #2214 from probins/patch-2
Stop exporting getTransformFromProjections and transformWithProjections
2014-06-18 22:52:28 +02:00
Éric Lemoine
d1d8d5f96c Add an offset property to ol.Overlay
Replaces "offsetX" and "offsetY" by an ol.Object "offset" property.
2014-06-18 22:11:07 +02:00
Frédéric Junod
cc51060170 Merge pull request #2215 from fredj/json-type
Correct code type in tasks/readme
2014-06-18 13:52:34 +02:00
Frederic Junod
f09c00462c Correct code type in tasks/readme 2014-06-18 13:42:32 +02:00
Éric Lemoine
16c9d9bf09 Use tilePixelOption in wmts-hidpi example 2014-06-18 13:34:57 +02:00
Andreas Hocevar
4e52224c12 Add example 2014-06-18 13:34:57 +02:00
Éric Lemoine
e161f0eaba Add tilePixelRatio option to ol.source.WMTS 2014-06-18 13:34:57 +02:00
Éric Lemoine
947eb2e949 Add tilePixelRatio option to ol.source.TileImage 2014-06-18 13:34:57 +02:00
Éric Lemoine
4bcadc5b8d Add tilePixelRatio option to ol.source.Tile 2014-06-18 13:27:22 +02:00
Frédéric Junod
92b62ba3ab Merge pull request #2213 from probins/patch-1
Correct minor typo in tasks/readme
2014-06-18 11:23:30 +02:00
Éric Lemoine
0cc0239c16 Merge pull request #2212 from elemoine/drawinteraction
Add "None" to draw-features example's select
2014-06-18 10:00:52 +02:00
Peter Robins
0a2b3b0bca Stop exporting getTransformFromProjections and transformWithProjections 2014-06-18 08:19:56 +01:00
Peter Robins
986778cf0c Correct minor typo in tasks/readme 2014-06-18 08:10:26 +01:00
Éric Lemoine
a7b4a08e07 Add "None" to draw-features example's select
This allows to deactivate drawing entirely in the example.
2014-06-18 08:26:45 +02:00
Frédéric Junod
758f326215 Merge pull request #2101 from fredj/polyline-factor
Make the scale factor of ol.format.Polyline configurable
2014-06-17 17:41:03 +02:00
Frederic Junod
a283977cb9 Make the scale factor of ol.format.Polyline configurable
And export the class
2014-06-17 16:58:40 +02:00
Bart van den Eijnden
0245cb1d56 Merge pull request #2210 from bartvde/wfs-example-fix
Get rid of unused info div in vector-wfs example
2014-06-17 11:14:36 +02:00
Bart van den Eijnden
6fa0aa252c Get rid of unused info div in vector-wfs example 2014-06-17 11:05:19 +02:00
Frédéric Junod
7d9e13f30f Merge pull request #2209 from fredj/modify-rbush
Use getInExtent instead of forEachInExtent
2014-06-17 09:28:11 +02:00
Frederic Junod
9b2a874282 Use getInExtent instead of forEachInExtent 2014-06-17 08:58:04 +02:00
Frederic Junod
52b1ba30fa Don't scale the text stroke width by pixel ratio 2014-06-16 15:34:54 +02:00
Andreas Hocevar
3fdd0e4bf7 Merge pull request #2202 from probins/tvformat
Add missing format option to TileVector docs
2014-06-16 11:03:43 +02:00
Andreas Hocevar
eb8c2ab339 Merge pull request #2203 from probins/classdesc
Add classdesc to remaining vector classes
2014-06-16 11:02:23 +02:00
Andreas Hocevar
0d59deb6ba Merge pull request #2206 from probins/nostatic
Remove static button in docs sidebar if none
2014-06-16 10:55:01 +02:00
Peter Robins
e4b5b3039a Remove static button in docs sidebar if none 2014-06-15 14:00:02 -04:00
Peter Robins
8a4307cff2 Add classdesc to remaining vector classes 2014-06-15 08:55:09 -04:00
Peter Robins
4a52333d9f Add missing format option to TileVector docs 2014-06-15 08:22:24 -04:00
Éric Lemoine
4f23ef66d0 Make ol.FeatureOverlay use replay group 2014-06-14 14:22:10 +02:00
Éric Lemoine
49a1215f75 Pass a replay group to ol.render.Event 2014-06-14 14:21:34 +02:00
Andreas Hocevar
4925ac9339 Merge pull request #2199 from probins/abstract
Add standard docs text to abstract base classes
2014-06-14 14:17:46 +02:00
Peter Robins
75be215497 Add standard docs text to abstract base classes 2014-06-14 07:20:33 -04:00
Tim Schaub
f1fe1a5ade Merge pull request #2197 from tschaub/deps
Update closure-util.
2014-06-13 23:51:58 -07:00
Tim Schaub
94f0513aa1 Update closure-util
The closure-util package works on Node 0.8, 0.10, and 0.11 (as of this writing), but it requires an updated version of npm to install on Node 0.8.  For the build to pass on Travis, we update npm before installing other dependencies.  For others who are installing the openlayers package, nothing special is required for Node 0.10 and above.  For users on Node 0.8, the openlayers package will only install with an updated version of npm.  This can be installed with npm itself.

    npm install -g npm # only needed on Node 0.8
2014-06-13 10:48:10 -07:00
Éric Lemoine
39a02f0d5a Merge pull request #2174 from elemoine/generate-info
Change sourceDir to src/ in generate-info.js
2014-06-12 15:48:09 +02:00
Andreas Hocevar
66d72519c3 Merge pull request #2191 from ahocevar/tile-function-annotation
Mark abstract method as function for JSDoc to pick it up
2014-06-12 15:03:52 +02:00
Andreas Hocevar
4eab46e41b Mark abstract method as function for JSDoc to pick it up
This leaves aside the question whether getImage needs to be
defined as abstract method in a base class that does not know
about images, but at least it makes the documentation appear
correctly in ol.tile.Image.
2014-06-12 14:43:49 +02:00
Frédéric Junod
44e829a17d Merge pull request #2188 from fredj/easing
Remove ol.easing.elastic and ol.easing.bounce
2014-06-12 13:43:05 +02:00
Frederic Junod
04cb3c4299 Remove ol.easing.elastic and ol.easing.bounce
And move the code to the animation example
2014-06-12 12:42:03 +02:00
Frédéric Junod
cd71b14775 Merge pull request #2173 from probins/sidebar
Remove olx and interfaces from docs sidebar
2014-06-12 11:02:29 +02:00
Frédéric Junod
a25067eccc Merge pull request #2157 from probins/loadstrat
Add docs link to loadingstrategy
2014-06-12 10:58:41 +02:00
Éric Lemoine
a2a06c745a Merge pull request #2185 from elemoine/imagevector
ol.source.ImageVector doesn't skip features
2014-06-11 17:42:49 +02:00
Frédéric Junod
54d5b25d77 Merge pull request #2186 from fredj/rbush-tests
Add more tests for ol.structs.RBush#forEach
2014-06-11 16:42:09 +02:00
Éric Lemoine
7a1e605f14 Skipped features support to ol.source.ImageVector 2014-06-11 16:26:21 +02:00
Frederic Junod
e9e62bcf98 Better ol.structs.RBush#forEach documentation 2014-06-11 13:45:18 +02:00
Frederic Junod
23383c9979 Add more tests for ol.structs.RBush#forEach 2014-06-11 13:45:18 +02:00
Andreas Hocevar
b411ccaa5b Merge pull request #2187 from ahocevar/fix-jsdoc
Manually add jsdoc dependencies
2014-06-11 13:04:21 +02:00
Andreas Hocevar
28d4e5a6c9 Manually add jsdoc dependencies
Looks like there is a version mismatch with the taffydb and
underscore dependencies of jsdoc, so we add them here manually.
2014-06-11 12:06:02 +02:00
Andreas Hocevar
90974a0721 Merge pull request #2184 from ahocevar/google-no-kinetic
Restore synchronized map panning in google-map example
2014-06-11 00:37:12 +02:00
Andreas Hocevar
c8c0f087f0 Restore synchronized map panning in google-map example 2014-06-10 16:11:40 +02:00
Éric Lemoine
f0dbcfd541 Merge pull request #2114 from tsauerwein/draw-and-modify
Add example combining draw and modify interaction
2014-06-10 10:00:27 +02:00
Antoine Abt
5926611cd1 Merge pull request #2168 from tonio/keyboard_controls
Restore control’s keyboard navigation
2014-06-10 08:45:19 +02:00
Andreas Hocevar
f27c91e27f Merge pull request #2130 from adube/fix-example-gmaps-zooms
Fix GoogleMaps example view max zoom levels
2014-06-09 22:22:34 +02:00
Paul Spencer
50b63b4a30 Merge pull request #2179 from pagameba/remove-getsimplifiedgeometry
Remove getSimplifiedGeometry from ol.geom.Circle
2014-06-09 16:10:02 -04:00
Paul Spencer
c1ddc92cc8 Fix typo in comment 2014-06-09 15:17:14 -04:00
Paul Spencer
7d8dbbc7cc Remove getSimplifiedGeometry from ol.geom.Circle
The `getSimplifiedGeometry` method is unnecessary as
`ol.geom.SimpleGeometry`'s default implementation is to do the
same thing (return `this`).
2014-06-09 14:37:39 -04:00
Tim Schaub
2a42e7736a Merge pull request #2178 from probins/classdesc
Use @classdesc notation.
2014-06-09 11:18:14 -06:00
Peter Robins
41d9f0360a Add @classdesc to classes 2014-06-09 12:10:19 -04:00
Éric Lemoine
be62e75714 Change sourceDir to src/ in generate-info.js
This is to accomodate the case where other directories than "ol" include "api" annotations. For example, the Swisstopo geoadmin folks extend OpenLayers 3 in an ol3 fork, and they have their own "ga" namespace/directory under "src". See https://github.com/geoadmin/ol3/tree/master/src.
2014-06-09 10:20:50 +02:00
Peter Robins
e08a98b624 Add classdesc to gjslint custom tags 2014-06-08 04:43:09 -04:00
Peter Robins
72dd59f554 Remove olx and interfaces from docs sidebar 2014-06-07 09:46:05 -04:00
Tim Schaub
ee38f8fc2f Merge pull request #2033 from htulipe/map-renderer-type
Expose map renderer type in the API.
2014-06-06 14:13:50 -06:00
tsauerwein
d0e818e8ce Add condition to draw interaction 2014-06-06 15:54:38 +02:00
tsauerwein
0a939c6554 Export condition singleClick and mouseOnly 2014-06-06 15:17:06 +02:00
tsauerwein
88197360c1 Add example combining draw and modify interaction 2014-06-06 15:17:06 +02:00
Peter Robins
acd03b0a46 Change @class docs tag to @classdesc 2014-06-06 05:28:24 -04:00
Frédéric Junod
70e3cb3598 Merge pull request #2170 from fredj/collection-item
Rename ol.Collection#getAt to ol.Collection#item
2014-06-06 10:13:46 +02:00
Frederic Junod
4525276c6e Rename ol.Collection#getAt to ol.Collection#item
TouchList, DOMStringList, DOMTokenList, NodeList all have an
`item(index)` function to retrieve an item from a list.
We should do the same.
2014-06-06 09:49:12 +02:00
Antoine Abt
09719bdc70 Fixes button handlers event type 2014-06-06 09:32:39 +02:00
Éric Lemoine
ba060ccc50 Merge pull request #2113 from GeoDienstenCentrum/improve-a11y-example
Enhance and improve the accessibility example
2014-06-05 14:27:14 +02:00
Éric Lemoine
afecbb7ea0 Merge pull request #2164 from oterral/sprite
Allow the use of sprite image in KML
2014-06-05 14:23:56 +02:00
oterral
b4851e7927 Add ol.format.KML test for complex IconStyle 2014-06-05 08:40:08 +02:00
oterral
2961970f59 Add ol.style.Icon tests for getAnchor and getOrigin 2014-06-05 08:40:00 +02:00
Antoine Abt
75cd5572aa Restore control’s keyboard navigation 2014-06-04 16:55:02 +02:00
Bart van den Eijnden
5645eab850 Merge pull request #2165 from bartvde/ie-xml-write
Make sure WFS format writing works correctly in IE9+ (r=@tschaub)
2014-06-04 15:03:56 +02:00
Bart van den Eijnden
87ea5fabdd Make sure WFS format writing works correctly in IE9+ 2014-06-04 12:29:24 +02:00
oterral
0b17d9aeb5 Add parsing of gx:x, gx:y, gx:w and gx:h tags in KML format 2014-06-04 11:15:13 +02:00
oterral
71951b8bbd Add offset and offsetOrigin in ol.style.Icon 2014-06-04 11:15:13 +02:00
Tim Schaub
38d8799a01 Merge pull request #2161 from tschaub/exports
Map event and vector source exports.
2014-06-03 16:29:18 -06:00
Tim Schaub
a9fc53e8da Make frameState property of ol.MapEvent exportable 2014-06-03 12:45:45 -06:00
Tim Schaub
0f04236fc4 Make map property of ol.MapEvent exportable 2014-06-03 12:45:03 -06:00
Tim Schaub
559feba1ed Add interface for map events so properties can be disambiguated 2014-06-03 12:43:45 -06:00
Tim Schaub
13d964488f Make getFeatureById method exportable 2014-06-03 11:42:47 -06:00
mprins
a6d26c53e1 Enhance and improve the accessibility example.
Changes to improve the accessibility example:

 - remove the `accesskey` attributes. Use of the `accesskey` is generally not recommended as it tends to cause conflicts with AT software and user settings.
 - Change the scripted "Go to map" accesskey to a regular skiplink.
 - Use script to inject the buttons below the map, if the map were to fail for lack of javascript support the buttons should not be there either. These should be buttons (and not hyperlinks) because they provide an action not a navigation.
 - Update the docs.
 - Add an empty `alt` attribute to the logo since it is strictly decorative (this should probably be done sitewide - which IMO is out of scope for this PR)
2014-06-03 09:28:43 +02:00
Peter Robins
474fc8f4a6 Add docs link to loadingstrategy 2014-06-02 09:58:04 -04:00
Éric Lemoine
73bfd326d0 Merge pull request #2156 from elemoine/featureoverlaytests
Add ol.FeatureOverlay tests
2014-06-02 14:16:47 +02:00
Éric Lemoine
0b4f463697 Merge pull request #2121 from oterral/utils_func_cache
Add getters and setters for TileUrlFunction and TileLoadFunction properties
2014-06-02 14:09:24 +02:00
Éric Lemoine
89a03bfb09 Merge pull request #2155 from probins/rendersync
Document Map.render() and Map.renderSync()
2014-06-02 14:08:44 +02:00
Éric Lemoine
85835a977b Add ol.FeatureOverlay tests 2014-06-02 14:05:06 +02:00
Peter Robins
17b4cea96d Document Map.render() and Map.renderSync() 2014-06-02 06:21:54 -04:00
Frédéric Junod
e5a522f484 Merge pull request #2133 from fredj/ol.ObjectEvent.key
Export ol.ObjectEvent#key property
2014-06-02 11:27:25 +02:00
oterral
f3be970f17 Add getTileLoadFunction and setTileLoadFunction in ol.source.TileImage 2014-06-02 11:23:53 +02:00
oterral
c4f7ebb571 Add getTileUrlFunction in ol.source.TileImage 2014-06-02 11:13:03 +02:00
Éric Lemoine
c4c05bd205 Merge pull request #2112 from elemoine/iconload
Icon image loading related exports
2014-06-02 08:25:45 +02:00
Éric Lemoine
dc3876e643 Merge pull request #2150 from probins/patch-1
Update year in LICENSE
2014-06-02 07:58:24 +02:00
Éric Lemoine
4981cde729 Add "img" option to ol.style.Icon 2014-06-02 07:56:34 +02:00
Peter Robins
0865f73448 Update year in LICENSE 2014-05-31 11:35:37 +01:00
Tim Schaub
3573697410 Merge pull request #2140 from probins/patch-3
Apidoc readme: clarify exportable methods.
2014-05-30 15:18:22 -06:00
Peter Robins
470ef992b7 Apidoc readme: clarify exportable methods 2014-05-30 12:13:19 -04:00
Tim Schaub
1013f8d2ba Merge pull request #2142 from tschaub/res-for-extent
Export method to get resolution for extent and size.
2014-05-29 15:18:23 -06:00
Tim Schaub
cda62c8a31 Merge pull request #2141 from probins/patch-5
Clarify compiler exports in tasks readme.
2014-05-29 13:00:18 -06:00
Tim Schaub
08ae509a7f Export method to get resolution for extent and size
While this is straightforward to calculate, this method adds convenience.
2014-05-29 11:21:31 -06:00
Peter Robins
c1037ad3ee Clarify compiler exports in tasks readme 2014-05-29 14:43:30 +01:00
Tim Schaub
ba004e9f10 Merge pull request #2139 from probins/patch-2
Improvements to externs readme.
2014-05-29 07:13:21 -06:00
Peter Robins
8dc3b95194 Improvements to externs readme 2014-05-29 11:21:42 +01:00
Bart van den Eijnden
b6e0195c9b Merge pull request #2137 from probins/patch-1
Clarify that ol.Coordinate is for xy coordinates
2014-05-28 20:04:44 +02:00
Peter Robins
2683f08bd2 Clarify that ol.Coordinate is for xy coordinates
Docs only; no logic change
2014-05-28 17:40:23 +01:00
Frédéric Junod
3bf1b36a72 Merge pull request #2119 from fredj/apidoc
Mark ol.format.GPX#readProjection as a function
2014-05-28 18:22:42 +02:00
Bart van den Eijnden
dd960b05c6 Merge pull request #2135 from bartvde/gml-write-export
Export ol.format.GML#writeFeatures
2014-05-28 18:16:53 +02:00
Bart van den Eijnden
409ef2d19a Export ol.format.GML#writeFeatures 2014-05-28 16:28:06 +02:00
Frédéric Junod
1d2543ba6f Merge pull request #2134 from fredj/jsdoc-extent
Add the jsdoc ol.extent namespace
2014-05-28 10:20:47 +02:00
Frederic Junod
c4d7fd8137 Add the jsdoc ol.extent namespace 2014-05-28 09:47:49 +02:00
Frederic Junod
b3de1b927a Export ol.ObjectEvent#key property 2014-05-28 09:18:59 +02:00
Hadrien Tulipe
0bae61ffe3 Rename Map.DEFAULT_RENDER_HINTS to Map.DEFAULT_RENDERER_TYPES 2014-05-27 22:47:02 +02:00
Hadrien Tulipe
7aab28afcc Provide ol.RendererType structure through ol.renderer.Map
It was previously in ol.Map, but it could not be provided because
of circular dependencies.
2014-05-27 22:47:02 +02:00
Hadrien Tulipe
2e587c1be8 Rename ol.RendererHint to ol.RendererType 2014-05-27 22:47:02 +02:00
Hadrien Tulipe
1d6f9ca80b Expose the map renderer type to the public API
In the case  where the map decides itself which renderer to use. It can
be convenient for the developer to have knowledge of the choice made.
2014-05-27 22:47:02 +02:00
Alexandre Dubé
2e067c67e5 Fix GoogleMaps example view max zoom levels 2014-05-27 14:44:15 -04:00
Éric Lemoine
d9c5e0c1ba Merge pull request #2127 from elemoine/2126
Fix bug in ol.FeatureOverlay
2014-05-27 16:51:58 +02:00
Éric Lemoine
afce8e8f5f Fix bug in ol.FeatureOverlay
This fixes a major regression introduced by db5b443 (#2028), where the FeatureOverlay won't draw features that do not have an image style.
2014-05-27 16:22:37 +02:00
Andreas Hocevar
cc1b7cac48 Merge pull request #2125 from ahocevar/loadingstrategy-docs
Make loading strategies appear in the docs
2014-05-27 15:59:10 +02:00
Bart van den Eijnden
0989f75e34 Merge pull request #2124 from bartvde/gmlwfs
readFeatures on ol.format.WFS is not exported (r=@fredj)
2014-05-27 15:42:31 +02:00
Frédéric Junod
fb955ace0c Merge pull request #2123 from fredj/export-osmxml
Export ol.format.OSMXML#readFeatures and ol.format.OSMXML#readProjection
2014-05-27 15:40:35 +02:00
Andreas Hocevar
45805f7158 Make loading strategies appear in the docs 2014-05-27 15:38:31 +02:00
Bart van den Eijnden
86b9a8869b Exports for ol.format.GML and ol.format.WFS 2014-05-27 15:30:46 +02:00
Frederic Junod
8db43a969b Fix formating issue in doc 2014-05-27 15:05:34 +02:00
Frederic Junod
2bd1234359 Export ol.format.OSMXML#readProjection 2014-05-27 14:31:27 +02:00
Frederic Junod
4c9463cdcc Export ol.format.OSMXML#readFeatures 2014-05-27 14:31:27 +02:00
Éric Lemoine
ac934c4564 Merge pull request #2028 from oterral/immediate_icon
Load the icon when needed in feature overlay
2014-05-27 14:09:52 +02:00
Bart van den Eijnden
27712a902d Merge pull request #2120 from bartvde/workshop
Move workshop reference to doc index
2014-05-27 13:53:49 +02:00
Bart van den Eijnden
bf8e949955 Move workshop reference to doc index 2014-05-27 09:17:52 +02:00
oterral
db5b443bbd Load the icon when needed in ol.FeatureOverlay 2014-05-27 09:17:38 +02:00
Frederic Junod
47f99f64ef Mark ol.format.GPX#readProjection as a function 2014-05-27 08:30:48 +02:00
Andreas Hocevar
7732a10bbf Merge pull request #2116 from ahocevar/no-imagestyle
Do not make ol.style.Image exportable
2014-05-27 08:02:51 +02:00
Tim Schaub
d41e2dff14 Merge pull request #2115 from tschaub/duplicate-id
Give features unique identifiers.
2014-05-26 16:15:15 -06:00
Andreas Hocevar
605b8278ea Do not make ol.style.Image exportable
Application developers should use its subclasses.
2014-05-26 19:26:58 +02:00
Tim Schaub
9323bbdcd0 Give Somaliland and Northern Cyprus unique ids 2014-05-26 10:31:27 -06:00
Frédéric Junod
c273c1d51c Merge pull request #2019 from fredj/device-orientation-example
Add an extent constraint to the device-orientation example
2014-05-26 13:54:56 +02:00
Frederic Junod
c15987a14d Add constrainCenter documentation 2014-05-26 13:44:01 +02:00
Frederic Junod
ff1a9d420d Add an extent constraint to the device-orientation example 2014-05-26 13:37:33 +02:00
Frederic Junod
824302349d Export ol.View2D.prototype.constrainCenter function 2014-05-26 13:37:33 +02:00
Éric Lemoine
b14e0d0330 Merge pull request #2111 from probins/patch-1
Tasks readme: update url for new compiler FAQ
2014-05-25 19:36:18 +02:00
Peter Robins
a0cfdb1990 Tasks readme: update url for new compiler FAQ
As changed on closure-util https://github.com/openlayers/closure-util/pull/17 - just realised this link is here too.
2014-05-25 17:39:23 +01:00
Éric Lemoine
8cd5f6d642 Merge pull request #2109 from elemoine/visibleandinrange
Hit detection respects min and maxResolution
2014-05-25 14:43:44 +02:00
Éric Lemoine
fd8a46dcae Hit detection respects min and maxResolution 2014-05-25 14:35:07 +02:00
Tim Schaub
df5b41862b Merge pull request #2110 from probins/patch-1
Apidoc readme: minor change.
2014-05-24 09:50:49 -06:00
Peter Robins
2aa97957cc Apidoc readme: minor change
so comments rendered correctly
2014-05-24 12:40:45 +01:00
Tim Schaub
92d8dd918b Merge pull request #2087 from tschaub/id-index
Add method for retrieving features by id.
2014-05-23 17:05:11 -06:00
Tim Schaub
a2b81d6bd0 Disallow adding the same feature twice 2014-05-23 16:52:11 -06:00
Tim Schaub
652f11cefa Provide a method for retrieving features by id 2014-05-23 16:35:07 -06:00
Tim Schaub
34cabd1579 Dispatch change on feature id change 2014-05-23 16:35:06 -06:00
Tim Schaub
305e9b0df1 Merge pull request #2107 from tschaub/null-or-undef
Account for null or undefined geometry.
2014-05-23 16:30:33 -06:00
Tim Schaub
2898151206 Merge pull request #2108 from tschaub/simple
Remove simple build profile.
2014-05-23 12:26:11 -06:00
Tim Schaub
25aefbeff5 Remove simple build profile
This was inadvertently added in d163f60e34 (see #2075).  Thanks @probins for the heads up.
2014-05-23 10:20:24 -06:00
Tim Schaub
097909516a Account for null or undefined geometry
The change in #2098 made it so a feature's geometry could be undefined.  This is consistent with the return type for the getGeometry method.  Where calling code needs to ensure that it has a geometry instance, it can use instanceof, goog.isDefAndNotNull(), or test for a truthy value.
2014-05-23 10:00:15 -06:00
Andreas Hocevar
0e7f86ea17 Merge pull request #2072 from ahocevar/no-oli-docs
Do not include oli.* symbols in the API documentation
2014-05-23 10:52:49 +02:00
Andreas Hocevar
f903849882 Remove all docstrings from oli.js
Instead, make sure that the properties are documented in the
implementing class.
2014-05-22 18:00:10 +02:00
Andreas Hocevar
547334e211 Move oli.* stability notes to the corresponding ol.* symbol 2014-05-22 16:01:35 +02:00
Andreas Hocevar
2caa1139a1 Move object literals defined in ol3 to a separate section 2014-05-22 15:51:41 +02:00
Andreas Hocevar
08cdeaacb4 Clean up api.js 2014-05-22 15:51:21 +02:00
Andreas Hocevar
eb6a938062 Do not document object literals as interfaces
Instead, object literals with properties that should not be
renamed can go in externs/olx.js.
2014-05-22 15:48:47 +02:00
Andreas Hocevar
e050c905e2 Do not include oli.* symbols in the inheritance chain 2014-05-22 15:48:46 +02:00
Tim Schaub
81523091f0 Merge pull request #2099 from tschaub/update-deps
Update dependencies.
2014-05-21 15:04:39 -06:00
Tim Schaub
be03ec5aa1 Update dependencies
* closure-util@0.12.0 - force inclusion of deps.js files when compiling
 * jshint@2.5.1 - various enhancements and fixes (https://github.com/jshint/jshint/compare/2.4.4...2.5.1)
 * walk@2.3.3 - directory exclusion fix
2014-05-21 12:08:46 -06:00
Bart van den Eijnden
db35a85710 Merge pull request #2090 from bartvde/wfs-update
Create valid XML in ol.format.WFS and ability to specify srsName (r=@ahocevar)
2014-05-21 19:04:05 +02:00
Bart van den Eijnden
28d122e21e Write out valid WFS Transaction XML and ability to specify srsName 2014-05-21 17:58:53 +02:00
Tim Schaub
98193c0336 Merge pull request #2098 from tschaub/empty-feature
Do not set geometry by default.
2014-05-21 09:52:09 -06:00
Frédéric Junod
9e7bfda9f7 Merge pull request #2096 from fredj/unused-require
Remove unused goog.require
2014-05-21 17:36:29 +02:00
Tim Schaub
9341e98374 Merge pull request #2093 from bjornharrtell/fix_opt_dest2
Assign to provided array instead of pushing when getting a linestring midpoint.
2014-05-21 09:28:06 -06:00
Bart van den Eijnden
a36bffae49 Merge pull request #2097 from bartvde/geojson-geometryname
Ability to specify geometryName on ol.format.GeoJSON (r=@tschaub)
2014-05-21 17:26:02 +02:00
Tim Schaub
a4d31147bc Do not set geometry by default
A feature can have a geometry whose value is an ol.geom.Geometry instance or null.  A feature can also have no geometry property.  By default, a feature has no geometry property.  To set a geometry, one can be passed to the constructor (including null) or passed to setGeometry().
2014-05-21 09:16:54 -06:00
Bart van den Eijnden
8eef633abc Ability to specify geometryName on ol.format.GeoJSON 2014-05-21 16:44:18 +02:00
Frederic Junod
2f918ea2a4 Remove unused goog.require 2014-05-21 16:06:32 +02:00
Andreas Hocevar
dca88668ab Merge pull request #2095 from ahocevar/test-geometry-name
Test that a custom geometry works
2014-05-21 15:08:47 +02:00
Andreas Hocevar
e530758b36 Test that a custom geometry works 2014-05-21 15:08:11 +02:00
Andreas Hocevar
cabd436b4c Merge pull request #2082 from ahocevar/custom-exports-target
Allow to specify an objectToExportTo for goog.exportSymbol
2014-05-21 13:51:52 +02:00
Tim Schaub
c820a7a1f8 Additional doc for the namespace option
People should be discouraged from exporting to single letter namespaces to avoid collissions with the symbols generated by the compiler.
2014-05-21 13:22:40 +02:00
Tim Schaub
250f6901d3 Pass around single config object 2014-05-21 13:22:32 +02:00
Björn Harrtell
ce40a142fa opt_dest should be assigned to not pushed 2014-05-21 12:02:26 +02:00
Frédéric Junod
32b17642c1 Merge pull request #2092 from fredj/unused-require
Remove unused goog.require
2014-05-21 11:36:16 +02:00
Frederic Junod
b2ab73e78b Remove unused goog.require 2014-05-21 09:46:49 +02:00
Frédéric Junod
c4e729a2bd Merge pull request #2086 from fredj/apidoc
Document ol.coordinate functions
2014-05-21 09:04:45 +02:00
Andreas Hocevar
3447f93bfe Document the new namespace option 2014-05-20 21:56:32 +02:00
Andreas Hocevar
cd4092f3e0 Allow to specify an objectToExportTo for goog.exportSymbol
This allows users to build ol3 without anything exposed in the
global namespace. This can e.g. be useful for creating an ol3
AMD module, by simply using a build configuration with
"define('ol',function(){var o={};%output%return o.ol;});" as
"output_wrapper".
2014-05-20 21:49:26 +02:00
Frederic Junod
8239a5c92a Document ol.coordinate functions 2014-05-20 14:15:28 +02:00
Frederic Junod
ae7291d9f1 Add the jsdoc ol.coordinate namespace 2014-05-20 13:58:17 +02:00
Éric Lemoine
832371b2aa Merge pull request #2083 from elemoine/missinganotation
Add missing @param annotation
2014-05-19 16:28:32 +02:00
Éric Lemoine
9b7735bf92 Add missing @param annotation 2014-05-19 15:43:38 +02:00
Tim Schaub
e17c8c79f9 Merge pull request #2079 from tschaub/view-options
Support zoom and resolution constrained views.
2014-05-16 11:26:09 -06:00
Tim Schaub
3793f33acf Handle minZoom in getZoom and setZoom 2014-05-16 04:56:42 -06:00
Andreas Hocevar
6185005c3f Merge pull request #2077 from ahocevar/event-stability
Document event stability even when there is no description
2014-05-16 10:03:30 +02:00
Tim Schaub
815f5b38c8 Accept resolution or zoom related options for constrained views
Any of minResolution, maxResolution, minZoom, or maxZoom can be used to constrain the view resolutions.  Resolution options are given precedence over zoom options.
2014-05-15 17:31:55 -06:00
Andreas Hocevar
aaf21198d3 Document event stability even when there is no description 2014-05-15 23:02:01 +02:00
Andreas Hocevar
c70497856c Merge pull request #2075 from ahocevar/api-docs-improved
More API doc improvements
2014-05-15 22:35:53 +02:00
Andreas Hocevar
687abda9fb Need to be more specific about the coordinate format now. 2014-05-15 20:56:09 +02:00
Andreas Hocevar
b348a4f8f9 Add some margin between the 'static' tag and the name 2014-05-15 20:29:46 +02:00
Andreas Hocevar
d163f60e34 Make sure that opt_layout is listed as optional 2014-05-15 20:29:16 +02:00
Andreas Hocevar
b2805c58de Better document which events are fired
The map does not fire ol.render.Event#render. Change events are
now only listed for classes that fire them, and a description
about when they are fired is added.
2014-05-15 20:28:09 +02:00
Andreas Hocevar
a75d944311 Allow custom events and do not collect events from methods 2014-05-15 20:25:26 +02:00
Andreas Hocevar
0d10314d4f Make sure that ol.source.wms.ServerType is documented 2014-05-15 17:06:19 +02:00
Andreas Hocevar
97bae045db Fix documentation typos 2014-05-15 17:05:40 +02:00
Andreas Hocevar
754ef24b0c List default controls and interactions 2014-05-15 17:04:58 +02:00
Andreas Hocevar
b2554cab41 Mark optional and repeatable arguments 2014-05-15 16:58:13 +02:00
Andreas Hocevar
fc88db53f6 Make types look the same everywhere 2014-05-15 16:57:47 +02:00
Andreas Hocevar
720052de12 New landing page 2014-05-15 16:54:33 +02:00
Bart van den Eijnden
3384ba07e3 Merge pull request #2074 from bartvde/touch
Restore map interaction on touch devices
2014-05-15 15:58:38 +02:00
Bart van den Eijnden
83ce0b2c7f Restore map interaction on touch devices 2014-05-15 15:29:41 +02:00
Frédéric Junod
92a7f9112c Merge pull request #2073 from fredj/named-colors
Change ol.ENABLE_NAMED_COLORS to be false by default
2014-05-15 11:02:34 +02:00
Frederic Junod
b42f4e1b0c Change ol.ENABLE_NAMED_COLORS to be false by default 2014-05-15 08:59:47 +02:00
Frederic Junod
84390da2e4 Rename ol.color.ENABLE_NAMED_COLORS in tests 2014-05-15 08:59:02 +02:00
Tim Schaub
9874f502ab Merge pull request #2071 from tschaub/doc
Minor doc content and style updates.
2014-05-14 18:28:54 -06:00
Tim Schaub
049531831c Move stability and inherited indicators after names 2014-05-14 16:27:30 -06:00
Tim Schaub
8fbf67b7e6 Remove space between ol. and Name 2014-05-14 16:26:44 -06:00
Tim Schaub
3a0efe83c5 Update map example 2014-05-14 15:11:12 -06:00
Tim Schaub
f559963126 Merge pull request #2063 from tschaub/moveend
Fire moveend only once after view settles.
2014-05-14 14:58:06 -06:00
Andreas Hocevar
81a85fe0e2 Merge pull request #2061 from eshon/master
Some suggested color changes to apidoc template items
2014-05-14 22:45:21 +02:00
Eva Shon
b8cef60036 Update main.less 2014-05-14 16:43:26 -04:00
Eva Shon
55b273686a Update main.less 2014-05-14 16:41:57 -04:00
Tim Schaub
df05e9da11 Fire moveend only once after view settles 2014-05-14 14:23:31 -06:00
Tim Schaub
2d34d04113 Merge pull request #2070 from tschaub/concatenate
Support for debug builds (concatenation only).
2014-05-14 13:48:44 -06:00
Andreas Hocevar
3a8aaea6c7 Merge pull request #2068 from ahocevar/apidoc-imprved
Only document arguments of exported constructors
2014-05-14 21:08:17 +02:00
Tim Schaub
c3184f2cce Support for debug builds (concatenation only)
Whitespace builds are still painful to debug.  Skipping the compiler altogether and simply concatenating sources is a better option for development and debugging.  By ommitting the `compile` option in a build config, the output is "uncompiled" - a straight concatenation of all sources in dependency order.
2014-05-14 10:39:51 -06:00
Andreas Hocevar
a613e01677 Only document arguments of exported constructors 2014-05-14 09:06:26 +02:00
Tim Schaub
ab9d42f2cd Merge pull request #2067 from tschaub/touches
Do less work while processing touch events.
2014-05-14 01:05:22 -06:00
Tim Schaub
9f047b791c Merge pull request #2066 from tschaub/phantom
Remove PhantomJS as a global dependency.
2014-05-14 00:52:26 -06:00
Bart van den Eijnden
28f21e44c1 Merge pull request #2059 from bartvde/draw-geometryname
Add geometryName option to ol.interaction.Draw (r=@elemoine)
2014-05-14 08:51:59 +02:00
Bart van den Eijnden
945f5008f5 Ability to specify geometryName on ol.interaction.Draw 2014-05-14 08:35:27 +02:00
Tim Schaub
4c8ba1bac6 Remove PhantomJS as a global dependency 2014-05-14 00:03:58 -06:00
Tim Schaub
abf35898ca Merge pull request #2064 from tschaub/restore-timer
Restore setTimeout after it is mocked.
2014-05-13 23:18:44 -06:00
Tim Schaub
b860ec7a06 Do less work while processing touch events 2014-05-13 23:06:27 -06:00
Tim Schaub
7709d26955 Restore setTimeout after it is mocked 2014-05-13 22:44:36 -06:00
Tim Schaub
3db28c2af6 Merge pull request #2065 from tschaub/global-leak
Properly reset the click count in ol.pointer.TouchSource.
2014-05-13 22:38:30 -06:00
Tim Schaub
57a6fbf416 Call resetClickCountHandler_ with proper this argument 2014-05-13 17:41:58 -06:00
Eva Shon
b4d316f224 some suggested color changes to template items 2014-05-13 13:25:07 -04:00
Bart van den Eijnden
86013c3a78 Merge pull request #2058 from bartvde/wfs-transaction-srs
no way to set srsName on WFS transactions (r=@ahocevar)
2014-05-13 13:20:30 +02:00
Bart van den Eijnden
0a3031a165 Ability to specify gmlOptions (e.g. srsName) in WFS transactions 2014-05-13 13:10:18 +02:00
Bart van den Eijnden
6ab92086d2 Merge pull request #2057 from bartvde/addfeatures
Export readFeatures on FormatVectorSource
2014-05-12 12:55:21 +02:00
Bart van den Eijnden
4780d17059 Export readFeatures on FormatVectorSource 2014-05-12 10:37:41 +02:00
Éric Lemoine
e97639590b Merge pull request #2055 from elemoine/icon-hidpi
Fix icon rendering on hidpi devices
2014-05-10 09:18:05 +02:00
Andreas Hocevar
efdf05f0d1 Merge pull request #2051 from ahocevar/fix-returns
Apidoc: first word of '@return' not displayed
2014-05-09 10:43:28 -05:00
Andreas Hocevar
90ffde52f2 Make sure that links are clickable
Because we set a padding of 50px on anchorable elements to make
sure they are not obscured by the header, we need to raise the
z-index of links so they are not obscured by these paddings.
2014-05-09 10:03:17 -05:00
Andreas Hocevar
f95e23deeb Do not hide the first word of returns 2014-05-09 10:02:13 -05:00
Éric Lemoine
6758e0905b Fix icon rendering on hidpi devices 2014-05-09 08:44:23 +02:00
Frédéric Junod
164922bd5f Merge pull request #2052 from fredj/apidoc
apidoc: display the event name in lower case
2014-05-09 07:38:20 +02:00
Frederic Junod
1b6a317bf9 Lower case the event name 2014-05-08 17:12:29 +02:00
Frédéric Junod
4e6e835c0e Merge pull request #2050 from fredj/has_webgl
Export ol.BrowserFeature.HAS_WEBGL
2014-05-08 09:53:13 +02:00
Frederic Junod
e1436b25e0 Export ol.BrowserFeature.HAS_WEBGL 2014-05-08 08:57:29 +02:00
Éric Lemoine
a189c4a68a Merge pull request #2047 from elemoine/snaptopixel
Set snapToPixel to true by default
2014-05-07 23:02:09 +02:00
Andreas Hocevar
354a93b2f7 Merge pull request #2049 from ahocevar/anchor-line-numbers
Fix anchor offsets for line numbers
2014-05-07 15:05:22 -05:00
Andreas Hocevar
564d3cda12 Fix anchor offsets for line numbers 2014-05-07 15:01:48 -05:00
Éric Lemoine
c0c6f286e0 Merge pull request #2048 from elemoine/duplicate
Remove duplicate record field "duration" in olx.js
2014-05-07 20:09:35 +02:00
Éric Lemoine
2b8f2517bd Remove duplicate record field "duration" in olx.js 2014-05-07 18:30:46 +02:00
Éric Lemoine
8610a91ea9 Set snapToPixel to false in dynamic-data example 2014-05-07 18:01:24 +02:00
Andreas Hocevar
be73885e37 Merge pull request #2043 from ahocevar/nicer-api-docs
Nicer API docs
2014-05-07 09:20:22 -05:00
Andreas Hocevar
0d4c7dc1fc Better match the ol3 color theme 2014-05-07 08:40:02 -05:00
Éric Lemoine
511e3f7810 Avoid defining default values at multiple locations 2014-05-07 09:58:56 +02:00
Éric Lemoine
6cd403945a Set snapToPixel defaut value to true 2014-05-07 09:58:56 +02:00
Andreas Hocevar
c57e9dc047 Better readable color for type links 2014-05-06 14:12:38 -05:00
Andreas Hocevar
e2c9dd279d Switch to the Jaguar theme
In addition to a nicer layout, this adds a searchable sidebar
and a source code viewer.
2014-05-06 12:46:59 -05:00
Andreas Hocevar
e6dbb61d68 Document raw geometry types 2014-05-06 12:45:53 -05:00
Andreas Hocevar
3f2f7e3603 Fix indentation 2014-05-06 12:45:53 -05:00
Andreas Hocevar
436bbdecd0 Document ol.Pixel 2014-05-06 12:45:53 -05:00
Éric Lemoine
596e06ed4e Merge pull request #2042 from elemoine/circle
Use correct circle canvas size
2014-05-06 18:37:31 +02:00
Andreas Hocevar
959e14c31a Handle observables and fires augments in plugins
This makes it easier to switch themes.
2014-05-06 10:14:28 -05:00
Éric Lemoine
18d292edd7 Make check-example.js display console logs from page 2014-05-06 16:38:55 +02:00
Éric Lemoine
c974612cc5 Use actual circle canvas size 2014-05-06 16:38:07 +02:00
Antoine Abt
a51e834fef Merge pull request #2027 from tonio/rotate
Add a rotate control
2014-05-06 15:36:01 +02:00
Andreas Hocevar
c2a9e95a37 Make sure anchors are not obscured by the header 2014-05-05 12:40:48 -05:00
Tim Schaub
454fc873f6 Merge pull request #2039 from tschaub/defines
Add info on defines to general build metadata.
2014-05-05 09:07:12 -07:00
Andreas Hocevar
5f54b45fa2 Add readme note about observable properties 2014-05-05 09:52:32 -05:00
Tim Schaub
d069f955f8 Document boolean defines as positive assertions 2014-05-05 07:41:53 -07:00
Tim Schaub
070f81aa7d Add description to symbols and defines 2014-05-05 07:41:53 -07:00
Tim Schaub
f9157a6123 Rename generate-symbols.js to generate-info.js
This task generates build related metadata for the library based on doc annotations.  Since it is about more than writing out exportable symbols, it makes sense to have a more general name.
2014-05-05 07:41:47 -07:00
Andreas Hocevar
61b732b8f7 Make sure that parent classes are not marked undocumented 2014-05-05 09:40:28 -05:00
Andreas Hocevar
b1126c9373 Inline events and also list method events with the class 2014-05-05 09:35:33 -05:00
Tim Schaub
48828a238a Generate metadata for boolean defines in addition to exportable symbols 2014-05-05 07:14:23 -07:00
Éric Lemoine
28e94b33ac Merge pull request #2040 from elemoine/iconsprite
Ability to use sprites as Icon src
2014-05-05 11:41:50 +02:00
Éric Lemoine
a7aab4eb47 Make Immediate API use ol.style.Image "origin" 2014-05-05 09:56:12 +02:00
Éric Lemoine
562d74dbed Make Replay API use ol.style.Image "origin" 2014-05-05 09:55:58 +02:00
Éric Lemoine
a62fd53d36 Add "origin" option to ol.style.Image 2014-05-05 09:30:35 +02:00
Andreas Hocevar
52444b1366 Inherit events 2014-05-04 18:29:18 -05:00
Andreas Hocevar
b444714c55 No longer need to remove dead links
There should be no dead links any more, now that we include
doclets for the whole inheritance chain of a class.
2014-05-04 18:28:19 -05:00
Andreas Hocevar
ea5df18c72 Remove unused require 2014-05-04 14:51:06 -05:00
Andreas Hocevar
8ee9f7cb6a Simplify the way we annotate observable properties
We no longer add observable annotations to the constructor.
Instead, we just mark getters (and for read/write properties
also setters) with an observable annotation.
2014-05-03 16:04:25 -04:00
Andreas Hocevar
0f072c0ec1 List subclasses for each class
With this change, we no longer need to link to implementations
or subclasses manually.
2014-05-03 15:32:39 -04:00
Andreas Hocevar
db5b2e284a Do not remove classes that other classes inherit from 2014-05-03 12:41:52 +02:00
Andreas Hocevar
6cea9a9d9a Avoid dead links
Because we remove doclets that are not part of the API, there
are cases where linkto will create a link to an undocumented
doclet. We now replace such links with the longname of the
doclet.
2014-05-03 12:41:52 +02:00
Tim Schaub
29d71b34b2 Merge pull request #2036 from tschaub/transform
More convenient geometry transforms.
2014-05-02 13:52:47 -06:00
Tim Schaub
0b8f1e8944 Mark applyTransform as part of the API for all geometries 2014-05-02 13:24:04 -06:00
Tim Schaub
1ba084ceab Merge pull request #2035 from tschaub/imprecision
Reducing expectations about spherical interpolation precision.
2014-05-02 12:10:40 -06:00
Tim Schaub
e448f100fd Add a transform method to geometries
This accepts CRS identifiers for source and destination, transforms the geometry in place, and returns a reference to the geometry.
2014-05-02 11:47:59 -06:00
Tim Schaub
1110da37e1 Move ol.Sphere#circle to ol.geom.Polygon.circular
Previously, ol.geom.Polygon was a transitive dependency of ol.proj (since ol.proj requires ol.sphere.NORMAL, and all spheres were capable of generating circular polygons).  Instead, ol.proj should be lower-level.  Since it deals only with coordinate arrays, it shouldn't depend on all of the geometry code.

By adding a static `circular` function to `ol.geom.Polygon`, the dependency tree makes more sense.  If you want to create a polygon that approximates a circle on a sphere, you require `ol.geom.Polygon` and `ol.Sphere` (or one of the constants).

This makes room for geometries to have a `transform` method that takes projection-like arguments (meaning that `ol.geom.Geometry` will require `ol.proj`).
2014-05-02 11:25:44 -06:00
Tim Schaub
f66ad1253f Reducing expectations about spherical interpolation precision
This avoids test failures in Chrome 34 (see also #1748 and https://code.google.com/p/v8/issues/detail?id=3006).
2014-05-02 10:23:03 -06:00
Tim Schaub
015aab8af3 Rename ol.extent.transform to ol.extent.applyTransform
This gives more consistency with ol.proj.applyTransform, allowing us to add a more convenient ol.extent.transform method that takes projection-like arguments.
2014-05-02 10:13:28 -06:00
Tim Schaub
a4f1efbddb Add tests for geometry applyTransform method 2014-05-02 09:58:23 -06:00
Tim Schaub
4f9968d106 Rename transform to applyTransform for geometries 2014-05-02 09:27:53 -06:00
Antoine Abt
603be52b1a Remove useless test in default controls 2014-05-02 14:12:31 +02:00
Antoine Abt
0bec5b5590 Add base control class, to simplify stylesheet 2014-05-02 14:12:31 +02:00
Antoine Abt
04fd0ecf53 Add rotate control to defaults. 2014-05-02 14:12:31 +02:00
Antoine Abt
229ae5e883 Add rotate control
- displayed when rotation ≠ 0
 - reset rotation on click
2014-05-02 14:12:31 +02:00
Andreas Hocevar
5a13488b11 Stop adding ObjectEvent links manually
Now that the links are removed from event annotations, we no
longer need to do this, because inheritance works.
2014-05-02 12:06:48 +02:00
Andreas Hocevar
b7f6e2d9b9 Fix quotes 2014-05-02 12:06:48 +02:00
Andreas Hocevar
d6722ddc6f Mark undocumented doclets as undocumented
To give other plugins access to doclets that are not part of
the API, we have to mark them undocumented instead of removing
them. They will be removed by JSDoc before publishing anyway.
2014-05-02 12:06:48 +02:00
Andreas Hocevar
7b4c240a5a Merge pull request #2004 from ahocevar/bind-webgl
Bind input example is broken since default renderer has changed
2014-05-02 11:08:32 +02:00
Frédéric Junod
0cd33ebfe9 Merge pull request #1926 from fredj/cache-anchor
Compute anchor value only once
2014-05-01 23:23:18 +02:00
Andreas Hocevar
8e387f385a Add missing namespace annotation 2014-05-01 22:17:57 +02:00
Andreas Hocevar
e7e1ef7534 Show inherited observable properties 2014-05-01 22:17:57 +02:00
Andreas Hocevar
25dd0127e9 Recursively document subparams and span table columns 2014-05-01 22:17:57 +02:00
Andreas Hocevar
7271b50d5a Simplify fires annotations 2014-05-01 22:17:56 +02:00
Andreas Hocevar
f22aac1e22 Only use the inheritdoc plugin once 2014-05-01 22:17:56 +02:00
Frédéric Junod
2e9cad730d Merge pull request #2032 from fredj/require
Remove unneeded goog.require
2014-05-01 17:10:30 +02:00
Frederic Junod
c0d8fe4126 Remove unneeded goog.require 2014-05-01 13:41:16 +02:00
Tim Schaub
0c8f29c432 Merge pull request #2031 from tschaub/dependencies
Move modules used in post-install task to dependencies.
2014-04-30 18:07:49 -06:00
Tim Schaub
f8e6fac90e Modules used in postinstall are dependencies
Since async and htmlparser2 are used by the postinstall task, they need to be listed as dependencies.  These will get installed when ol3 is a dependency of another project.
2014-04-30 17:54:39 -06:00
Tim Schaub
0d8c11394d Merge pull request #2030 from tschaub/defines
Move defines to ol namespace.
2014-04-30 17:13:10 -06:00
Tim Schaub
24498fa9d0 Defines in a namespace that can be required
For consistency, all defines are in the ol namespace.  If they are to be moved to another namespace, they need to be requireable.
2014-04-30 09:14:10 -06:00
Tim Schaub
e4e3b2229a Defines in ol namespace defined in ol.js 2014-04-30 08:54:30 -06:00
Tim Schaub
cec41c4b0a Add missing requires
Without explicit requires, it is possible that a build would exclude ol.js.
2014-04-30 08:37:52 -06:00
Tim Schaub
3f0da11008 Move ol defines from browserfeature.js to ol.js 2014-04-30 08:24:00 -06:00
Tim Schaub
12d4cb5752 Merge pull request #1979 from tschaub/custom-build
Annotation for exportable methods.  Node based tasks for generating exports and a custom build.

Fixes #613.
2014-04-29 13:01:52 -06:00
Tim Schaub
193d5c9ac1 Rename EXTERNAL_SRC to EXPORTS
The build/exports.js file passes gjslint and jshint, so the separate linting task is not needed.
2014-04-29 09:57:25 -06:00
Tim Schaub
a083c6149a No more generated internal source
With this change, the only two remaining generated scripts are build/exports.js and build/test/requireall.js.  Both are only required by Plovr.  With the Node based build task, a temporary exports.js file is created.  The Node based server can be used to run the tests without build/test/requireall.js.
2014-04-29 09:57:25 -06:00
Tim Schaub
9b4f61be3e No need for requireall.js when including exports.js 2014-04-29 09:57:25 -06:00
Tim Schaub
d552dfd96d Making ol.proj.Projection subclasses exportable
Because ol.proj.EPSG4326 et al. extend ol.proj.Projection which has exportable methods, these constructors need to be exportable as well (e.g. so ol.proj.EPSG4326.prototype is defined in exports.js when calling goog.exportProperty on getCode etc.).  If we really don't want these to be exportable, they should be removed or made private (and named like ol.proj.EPSG4326_) for internal use only.
2014-04-29 09:57:25 -06:00
Tim Schaub
ec6aa21912 Include goog.require calls in exports file 2014-04-29 09:57:25 -06:00
Tim Schaub
d087fdbefd Add list of provides to symbol metadata 2014-04-29 09:57:25 -06:00
Tim Schaub
fd170eb295 Accept a path for exports file 2014-04-29 09:57:19 -06:00
Tim Schaub
3dd5fb88e5 Allow configuration of JVM arguments in build 2014-04-29 09:53:07 -06:00
Andreas Hocevar
fbdbbfb7a7 Get rid of stability annotations and document stability with api
This change adds a stability value to the api annotation, with
'experimental' as default value.

enum, typedef and event annotations are never exportable, but
api annotations are needed there to make them appear in the
docs.

Nested typedefs are no longer inlined recursively, because the
resulting tables get too wide with the current template.
2014-04-29 09:53:07 -06:00
Andreas Hocevar
29b643c7b0 Inline object literals from olx.js 2014-04-29 09:53:07 -06:00
Andreas Hocevar
cdd1922350 Document purpose and use of oli.js and olx.js 2014-04-29 09:53:06 -06:00
Andreas Hocevar
c17ac0cae3 Greatly simplify and document the usage of JSDoc
This commit simplifies the exports.js plugin so it only relies
on the stability notes to generate the documentation, which
completely decouples it from the exportable API.

As a rule of thumb, whenever something has an 'api' annotation,
it should also have a 'stability' annotation. A more verbose
documentation of ol3 specific annotation usage is available in
the new 'apidoc/readme.md' file.

This commit also modifies all source files to implement these
usage suggestions.
2014-04-29 09:53:06 -06:00
Andreas Hocevar
aaf6101d0f Include symbols from oli.js using interface and implements tags
Instead of regex parsing, we define tags for interface and
implements.
2014-04-29 09:53:06 -06:00
Andreas Hocevar
b758d92790 Use symbols.json for determining the API
Also to get rid of regular expression parsing, instead of
collecting exports for observables from the source files, we use
the 'observable' annotations.
2014-04-29 09:53:06 -06:00
Tim Schaub
758eed357e Accept a src config, add docs 2014-04-29 09:53:06 -06:00
Tim Schaub
a28db38eef Parse options and add docs 2014-04-29 09:53:06 -06:00
Tim Schaub
b6277e0a01 Build task for driving the compiler 2014-04-29 09:53:06 -06:00
Tim Schaub
88e41f25ea Generate symbols before exports 2014-04-29 09:53:06 -06:00
Tim Schaub
fe5d8712f2 Unused script 2014-04-29 09:53:06 -06:00
Tim Schaub
7c68107b17 Call generate-symbols.js from build.py 2014-04-29 09:53:06 -06:00
Tim Schaub
88d67b7370 Regenerate symbols if parents have changed
The generate-symbols.js task runs JSDoc on source files.  Because this takes a long time (13s) to run on the whole library, the resulting symbols file includes additional metadata to make it possible to do incremental symbol generation on subsequent runs.  The 'path' and 'extends' metadata for a symbol are used to determine what needs to be regenerated.
2014-04-29 09:53:06 -06:00
Tim Schaub
1273c26f7a Use new generate-exports.js task 2014-04-29 09:53:05 -06:00
Tim Schaub
c692204ffd Task for generating a limited set of exports 2014-04-29 09:53:05 -06:00
Tim Schaub
d3e477a8df Allow main method to be called from elsewhere 2014-04-29 09:53:05 -06:00
Tim Schaub
e53fde402b Write out sorted symbols, excluding inherited ones on private classes
There are cases where a private class may inherit an exportable member (e.g. ol.DebugTile_#getTileCoord comes from ol.Tile#getTileCoord).  We want to avoid making these exportable.
2014-04-29 09:53:05 -06:00
Tim Schaub
11b49d6305 Removing old *.exports for completeness 2014-04-29 09:53:05 -06:00
Tim Schaub
fb497f5288 Annotations for exports 2014-04-29 09:53:05 -06:00
Tim Schaub
457cfe851a Add a task to generate metadata on exported symbols
This runs JSDoc with the "symbols" config, providing a list of source files that have been changed since the previous run.  The output is used to generate a symbols.json metadata file containing all exportable symbols info.  A separate task will be run to generate the exports.js file.  These same metadata files will be used by a build tool.
2014-04-29 09:53:05 -06:00
Tim Schaub
9800b38250 Adding a JSDoc configuration for generating metadata on exported symbols
This generates info for all symbols annotated with "@todo api" (when Plovr is replaced, this will become "@api").  Generated metadata is written to stdout.  A separate process will handle the output.
2014-04-29 09:53:05 -06:00
Tom Payne
debbd83d8b Merge pull request #2024 from twpayne/igc-invalid
Fix IGC handling of invalid IGC files
2014-04-29 15:31:12 +02:00
Tom Payne
b64c63ea24 Don't return a feature if there are no coordinates 2014-04-29 15:05:30 +02:00
Frédéric Junod
3742b3c816 Merge pull request #1992 from fredj/select-layer-option
Remove layer option from ol.interaction.Select
2014-04-29 09:56:56 +02:00
Frederic Junod
3c308af91f Merge layerFilter option into layers 2014-04-29 08:58:55 +02:00
Frederic Junod
2c7282d4e9 Remove layer option from ol.interaction.Select
Fixes #1991
2014-04-29 08:56:29 +02:00
Bart van den Eijnden
09621af085 Merge pull request #2020 from bartvde/wfsbbox
Add fifth value for BBOX to be conforming to the WFS 1.1 spec (r=@tschaub)
2014-04-28 18:00:39 +02:00
Bart van den Eijnden
b91d8871df Add fifth value for BBOX to be conforming to the WFS 1.1 spec 2014-04-28 17:57:30 +02:00
Frédéric Junod
1f3f1e1cc7 Merge pull request #2018 from fredj/featureoverlay-cleanup
Miscellaneous ol.FeatureOverlay cleanup
2014-04-28 15:24:35 +02:00
Frederic Junod
b41ee35422 Use features.forEach instead of for loop 2014-04-28 13:54:26 +02:00
Frederic Junod
90c0944617 Fix coding style 2014-04-28 13:51:42 +02:00
Frederic Junod
a5620fa46a Remove unneeded function binding 2014-04-28 13:50:54 +02:00
Frederic Junod
475be37ef4 Remove unused local variable 2014-04-28 13:49:14 +02:00
Bart van den Eijnden
77dfc29b5c Merge pull request #2013 from bartvde/wfsdata
parsing issues with ol.format.WFS (=r@fredj)
2014-04-28 09:38:54 +02:00
Frédéric Junod
d7296602fc Merge pull request #2017 from fredj/feature-setgeom-change
Dispatch a change event when the geometry is set
2014-04-28 08:57:32 +02:00
Bart van den Eijnden
2a45d3b41b Merge pull request #2014 from bartvde/getkeys
export getKeys on ol.Object (r=@elemoine,@fredj)
2014-04-28 08:08:35 +02:00
Frédéric Junod
35715da4e6 Merge pull request #2010 from fredj/goog.array.contains
Use goog.array.contains instead of goog.array.indexOf
2014-04-28 07:40:56 +02:00
Frederic Junod
68773941d3 Use goog.array.contains instead of goog.array.indexOf 2014-04-26 08:31:40 +02:00
Frederic Junod
74d83f29d2 Dispatch a change event when the geometry is set
Fixes #2016
2014-04-26 08:09:28 +02:00
Bart van den Eijnden
9c6987aa78 Export ol.Object's getKeys function 2014-04-25 15:02:58 +02:00
Bart van den Eijnden
635dd5f380 Make sure we can parse WFS 1.1 responses from MapServer 2014-04-25 11:29:27 +02:00
Éric Lemoine
928e3244cf Merge pull request #2012 from elemoine/skipfeature
Remove skippeFeatures collection
2014-04-25 09:01:02 +02:00
Bart van den Eijnden
0e6b72f94d Merge pull request #1986 from bartvde/wfs-example
ol.format.WFS has no readProjection method (r=@elemoine)
2014-04-24 21:16:53 +02:00
Éric Lemoine
f9c0f12f23 Remove skippeFeatures collection 2014-04-24 20:58:50 +02:00
Bart van den Eijnden
962ddff1c2 Implement readProjection on ol.format.WFS and add WFS JSONP example 2014-04-24 20:58:32 +02:00
Frédéric Junod
cd878e0ef8 Merge pull request #2009 from fredj/zoom-no-name
Remove name attributes from the zoom buttons
2014-04-24 15:10:03 +02:00
Frederic Junod
d00e515412 Remove name attributes from the zoom buttons 2014-04-24 14:45:14 +02:00
Frédéric Junod
a46f8647f9 Merge pull request #1998 from adube/fix-zoomcontrol
Fix zoomcontrol, set type button in button, not span
2014-04-24 14:35:53 +02:00
Andreas Hocevar
32dda342aa Only show controls for WebGL settings when WebGL is used 2014-04-22 16:29:53 +02:00
Frédéric Junod
16d7999deb Merge pull request #2007 from fredj/tilejson-jsonp
Use goog.net.Jsonp instead of goog.net.jsloader
2014-04-22 15:25:29 +02:00
Frederic Junod
1d688ad29d Use goog.net.Jsonp instead of goog.net.jsloader 2014-04-22 14:44:55 +02:00
Frédéric Junod
3ffed43834 Merge pull request #1995 from fredj/cleanup
Use ol.extent.getWidth and ol.extent.getHeight
2014-04-18 16:20:56 +02:00
Éric Lemoine
05217496f7 Merge pull request #1990 from elemoine/select-bug
Rework handling of skipped features in replay
2014-04-18 15:51:36 +02:00
Alexandre Dubé
f0d159d6ef Fix zoomcontrol, set type button in button, not span 2014-04-18 09:45:09 -04:00
Éric Lemoine
fa1d79016d Merge pull request #1994 from oterral/add_export
Add getSource function in ol.source.ImageVector
2014-04-18 13:37:00 +02:00
Éric Lemoine
8c1c775f85 Merge pull request #1997 from elemoine/skipped-features-performance
Make handling of skipped features faster
2014-04-18 13:17:05 +02:00
Éric Lemoine
4e965123c8 Make handling of skipped features faster 2014-04-18 10:52:20 +02:00
Frédéric Junod
551dd94494 Merge pull request #1996 from probins/measure
Measure example: correct source link
2014-04-17 21:00:52 +02:00
Peter Robins
53d3c695f4 Measure example: correct source link 2014-04-17 14:32:01 -04:00
Frederic Junod
663e7af0d2 Use ol.extent.getWidth and ol.extent.getHeight 2014-04-17 15:54:13 +02:00
oterral
a277cbf548 Add getSource getter in ol.source.ImageVector 2014-04-17 15:21:11 +02:00
Éric Lemoine
f59b3e968b Rework handling of skipped features in replay 2014-04-16 19:12:31 +02:00
Frédéric Junod
cb1edd262d Merge pull request #1985 from fredj/named-color
Handle ol.color.ENABLE_NAMED_COLORS = false
2014-04-16 16:28:26 +02:00
Frédéric Junod
b5873ff866 Merge pull request #1984 from fredj/export-circle
Export ol.Sphere.WGS84.circle function
2014-04-16 07:20:13 +02:00
Frederic Junod
251996f789 Use ol.color.ENABLE_NAMED_COLORS in tests 2014-04-15 17:22:58 +02:00
Frederic Junod
1da879ef06 Don't use a named color for defaultFillStyle
Named color support is optional (see ol.color.ENABLE_NAMED_COLORS)
2014-04-15 16:58:06 +02:00
Frederic Junod
4d548d99a7 Add Tissot indicatrix example 2014-04-15 14:35:27 +02:00
Frederic Junod
38f8774cc4 Export ol.Sphere#circle function 2014-04-15 14:35:20 +02:00
Éric Lemoine
2a0026bed3 Merge pull request #1970 from elemoine/geturls
Add getUrl methods to TileWMS and ImageWMS
2014-04-14 20:47:35 +02:00
Frédéric Junod
ce2b52d4fc Merge pull request #1983 from fredj/osgeo-url
Allow '{-y}' placeholder
2014-04-14 15:23:05 +02:00
Frederic Junod
9b5512c065 Allow '{-y}' placeholder 2014-04-14 14:27:18 +02:00
Frédéric Junod
738fe65268 Merge pull request #1982 from fredj/dnd-event
Add file propery to ol.interaction.DragAndDropEvent
2014-04-14 13:50:03 +02:00
Frederic Junod
ef27f14376 Remove undefined type from opt_target and opt_file 2014-04-14 12:01:48 +02:00
Frederic Junod
756f407ef4 Add file propery to ol.interaction.DragAndDropEvent 2014-04-14 10:47:57 +02:00
Andreas Hocevar
60ab837025 Merge pull request #1950 from jachym/measure_example
Adding simple measure example
2014-04-11 10:06:21 +02:00
Éric Lemoine
5755ea3be2 Merge pull request #1977 from elemoine/comment
Add an olx.js related comment to build.py
2014-04-10 20:18:44 +02:00
Éric Lemoine
df3319328d Add a comment to build.py 2014-04-10 17:58:35 +02:00
Andreas Hocevar
6826829786 Merge pull request #1971 from ahocevar/externs-instead-of-typedefs
"Cannot read property 'AttributionOptions' of undefined" error
2014-04-10 16:54:50 +02:00
Tim Schaub
12840aa49f Merge pull request #1976 from tschaub/pointerup-return
Required return from event handler.
2014-04-10 06:52:13 -06:00
Antoine Abt
050f0cede6 Merge pull request #1974 from tonio/selectfeature
Automatically skip features on select’s collection changes
2014-04-10 14:41:52 +02:00
Andreas Hocevar
b80c6d5c61 Replace typedefs with externs
Since the compiler leaves externs untouched and learns the used
properties from object literals, this replaces the otherwise
required typedefs just fine.
2014-04-10 14:40:51 +02:00
Tim Schaub
e72b383976 Required return from event handler 2014-04-10 06:32:27 -06:00
Antoine Abt
5147a0b060 Automatically skipFeatures on select’s collection changes 2014-04-10 14:24:39 +02:00
Frédéric Junod
c2bd829a5f Merge pull request #1975 from fredj/rotation-anchor
Rotate around arbitrary coordinate
2014-04-10 14:22:08 +02:00
Frédéric Junod
3946b92595 Merge pull request #1942 from elemoine/export-tileimage
Export ol.source.TileImage
2014-04-10 14:16:13 +02:00
Éric Lemoine
f9388749d4 undefined may be passed to ol.animation.rotate 2014-04-10 14:05:18 +02:00
Éric Lemoine
42adc23e86 Use ol.View2D#rotate in Interaction 2014-04-10 14:05:18 +02:00
Éric Lemoine
59c3857afd Add rotateAroundRome to animation example 2014-04-10 14:05:18 +02:00
Éric Lemoine
3c86dba3a8 ol.animate.rotate takes an optional anchor 2014-04-10 14:05:17 +02:00
Éric Lemoine
00917b7262 Export ol.View2D#rotate 2014-04-10 14:05:17 +02:00
Éric Lemoine
7e604d6ed3 Merge pull request #1972 from elemoine/modifyinteraction
Fix bug at modify interaction construction time
2014-04-10 13:55:48 +02:00
Éric Lemoine
e03054f17f Add ol.View2D#rotate 2014-04-10 12:40:47 +02:00
Éric Lemoine
00bc424098 Add ol.coordinate.sub 2014-04-10 12:40:47 +02:00
Frederic Junod
5248bb7a4b Export ol.source.TileImage 2014-04-10 12:27:53 +02:00
Éric Lemoine
baca25ed95 Fix bug at modify interaction construction time
This fixes a bug that occurs when the modify interaction is configured with a non-empty collection of features.
2014-04-10 11:00:00 +02:00
Éric Lemoine
ee1b4e08a1 Add ol.source.ImageWMS#getUrl 2014-04-10 09:16:24 +02:00
Éric Lemoine
e4c2cf0b63 Add ol.source.TileWMS#getUrls 2014-04-10 09:16:24 +02:00
Frédéric Junod
21d9aa2115 Merge pull request #1967 from fredj/tileUrlFunction-this
Don't use 'this' keyword in tileUrlFunction
2014-04-09 10:21:06 +02:00
Frederic Junod
6b1a4dc88b Use WMTS server from services.arcgisonline.com 2014-04-09 09:22:20 +02:00
Frederic Junod
bbb3527ac7 Don't use 'this' keyword in tileUrlFunction
See a31ad69ec4
Fixes #1965
2014-04-09 09:00:25 +02:00
Tim Schaub
98ec656981 Merge pull request #1954 from tschaub/olx
Use externs/olx.js instead of objectliterals.jsdoc.
2014-04-08 20:36:38 -06:00
Tim Schaub
3c92b693c5 Adding comment about using externs/olx.js as a source file
The externs/olx.js script includes @typedef annotations for objects that are used in the library.  When compiling the examples together with the library, we need these @typedef annotations.  In this same case, we don't need the object property names to be treated as externs (they can be safely renamed).
2014-04-08 20:11:49 -06:00
Andreas Hocevar
04a33220a8 Parse olx.js and convert types into typedef properties 2014-04-08 11:41:24 -06:00
Tim Schaub
9e33672503 Unused externs and typedef generating code 2014-04-08 11:41:24 -06:00
Tim Schaub
acb0fd8f06 Use externs/olx.js instead of objectliterals.jsdoc
The single externs/olx.js file describes all of the "options" objects we accept in our constructors.  The @typedef annotations are used by the compiler for type checking.  The @type annotations include documentation for individual options and serve as externs when compiling a profile of the library.  When compiling an application together with the library, the externs/olx.js file is included as one of the sources to provide the @typedef's without generating externs.

If we want to maintain multiple src/*.externs.js files instead of one large externs/olx.js file, we can.  But while we are still using Plovr, it makes for easier build configurations to have one file.

This removes the build tasks that generated the build/src/external/src/externs/types.js and build/src/internal/src/types.js files as those are both replaced by the single externs/olx.js file.
2014-04-08 11:41:24 -06:00
Frédéric Junod
03cc1c5a01 Merge pull request #1966 from fredj/coding-style
Fix coding style
2014-04-08 19:37:41 +02:00
Paul Spencer
b4031efc71 Merge pull request #1964 from pagameba/node-jsdoc
Upgrade to jsdoc 3.3.
2014-04-08 13:31:58 -04:00
Paul Spencer
6d3bbe61ce Upgrade to jsdoc 3.3. 2014-04-08 07:39:57 -04:00
Frederic Junod
17ed43d230 Fix coding style
Use `goog.isDef(x) ? x : {}` instead of `x || {}`
2014-04-08 11:40:04 +02:00
Frédéric Junod
aa6c188da6 Merge pull request #1962 from fredj/1961
Define ol.pointer.PointerEvent.createMouseEvent before using it
2014-04-07 18:18:21 +02:00
Frederic Junod
ffb61b49d0 Define ol.pointer.PointerEvent.createMouseEvent before using it
Fixes #1961
2014-04-07 17:48:14 +02:00
Éric Lemoine
4561e0b901 Merge pull request #1960 from elemoine/stopevent
Implement shouldStopEvent in DragBox interaction
2014-04-07 17:23:46 +02:00
Éric Lemoine
ce0b1d2a47 Use goog.functions.identity where it makes sense 2014-04-07 16:59:04 +02:00
Éric Lemoine
eac9b71b95 Set shouldStopEvent to identity in DragBox
This fixes a bug where the map is panned when boxes are drawn.
2014-04-07 16:57:02 +02:00
Frédéric Junod
de60b15e36 Merge pull request #1958 from fredj/renderer-order
Change renderer order in getRendererFromQueryString
2014-04-07 15:21:58 +02:00
Frederic Junod
1da40b6d02 Change renderer order in getRendererFromQueryString
To order should be the same as ol.DEFAULT_RENDERER_HINTS.
See #887
2014-04-07 14:56:56 +02:00
Andreas Hocevar
13e072cb63 Merge pull request #1955 from ahocevar/canvas-no-taint
Test canvas size with an untainted canvas
2014-04-07 13:52:09 +02:00
ahocevar
d685c79e02 Use ol.dom.createCanvasContext2D and remove canvas variable 2014-04-07 13:25:49 +02:00
Andreas Hocevar
5e7790d89c Merge pull request #1956 from ahocevar/shrink-comment
Make comment about shrinking the canvas more descriptive
2014-04-06 23:55:31 +02:00
ahocevar
3848e7f823 Make comment about shrinking the canvas more descriptive 2014-04-06 23:54:59 +02:00
ahocevar
09021dffd4 Do not shrink test canvas 2014-04-06 14:29:32 +02:00
ahocevar
95795ea301 Test canvas size with an untainted canvas 2014-04-06 11:38:51 +02:00
Tim Schaub
732ec7c2db Merge pull request #1952 from tschaub/shortdesc
No markup in shortdesc.
2014-04-04 13:14:48 -06:00
Tim Schaub
966317489e Merge pull request #1951 from tschaub/gjslint
Externs lint.
2014-04-04 10:11:34 -06:00
Tim Schaub
6fc915ba7b Strip tags from shortdesc (et al.) when parsing
This strips markup from elements with id attributes that we care about: title, shortdesc, tags.  This will only work for people who use `npm install && npm start` to browse examples.  The other example parser doesn't strip this markup, so it should still not be used in these elements.
2014-04-04 10:07:25 -06:00
Tim Schaub
2a4300085e No markup in shortdesc
The example parser and index template don't handle markup in the shortdesc element.  Use the docs element instead.
2014-04-04 10:07:02 -06:00
Tim Schaub
fe60d07ef0 Externs lint 2014-04-04 09:28:36 -06:00
Tim Schaub
f410a38c53 Merge pull request #1949 from tschaub/layer-state
Give layer state a reference to the layer.
2014-04-04 08:59:14 -06:00
Jachym Cepicky
280e3e4ebf Adding simple measure example 2014-04-04 16:13:20 +02:00
Tim Schaub
7826036307 Make getLayerStatesArray return an array of layer states 2014-04-04 07:39:54 -06:00
Tim Schaub
78324fb54b Remove layers array from frame state 2014-04-04 07:36:42 -06:00
Tim Schaub
aa3a20e911 Provide layer states array in frame state 2014-04-04 07:36:42 -06:00
Tim Schaub
9d5451b1d6 Provide a reference to the layer 2014-04-04 07:36:42 -06:00
Andreas Hocevar
6c84358619 Merge pull request #1914 from ahocevar/modify-event-propagation
Modify interaction breaks mouse wheel zoom
2014-04-04 14:18:31 +02:00
ahocevar
bf06129256 Initialize snappedToVertex_ 2014-04-04 14:11:02 +02:00
ahocevar
523b51d69a Add missing goog.requires; fix types and a typo 2014-04-04 14:05:19 +02:00
ahocevar
2cb045b0b3 Better documentation for the singleclick condition 2014-04-04 14:05:19 +02:00
ahocevar
f2acbd332c Use the pixelTolerance to determine whether to snap to a vertex 2014-04-04 14:05:19 +02:00
ahocevar
8fc9b23ab8 Do not return as handled unless a geometry was modified
With this change, it is more straightforward to determine
whether an event is considered as handled, which results in the
removal of the modifiable_ and lastVertexCoordinate_ states.
Instead, we only need to know whether we're on a real vertex or
a virtual one. For that a new snappedToVertex_ flag is
introduced.

To stop a click after vertex deletion from triggering a feature
selection, vertex deletion is now triggered by a configurable
event condition, which defaults to singleclick (same as in the
select interaction) with no modifier keys.
2014-04-04 14:05:18 +02:00
Éric Lemoine
266f573922 Merge pull request #1943 from elemoine/ht
Hit detection skips layers in invisible groups
2014-04-04 09:08:29 +02:00
Bart van den Eijnden
6a3d349409 Merge pull request #1863 from htulipe/ows-capabilities
Add basic reading support for OWS Capabilities documents.
2014-04-03 19:57:27 +02:00
Éric Lemoine
8b0ae9e4da Hit detection skips layers in invisible groups 2014-04-03 16:54:39 +02:00
Tom Payne
0de380c7d2 Merge pull request #1744 from twpayne/remote-vector
ol.source.RemoteVector
2014-04-03 16:12:16 +02:00
Tom Payne
c155b70281 Export ol.source.ServerVector#readFeatures 2014-04-03 15:57:44 +02:00
Andreas Hocevar
e49b395cc4 Merge pull request #1940 from ahocevar/select-setmap
Handle skipped features when setting the map
2014-04-03 15:31:40 +02:00
Tom Payne
3a462f7076 Add a polygon layer and tweak the style of the tile-vector example 2014-04-03 15:23:24 +02:00
Tom Payne
d3a13a254c Use TopoJSON in tile-vector example 2014-04-03 15:23:24 +02:00
Tom Payne
a68d9f2299 Use openstreetmap.us vector tiles in tile-vector example 2014-04-03 15:23:24 +02:00
Tom Payne
f13debbbc9 Load vector tiles for current resolution 2014-04-03 15:23:24 +02:00
Tom Payne
96b7700d63 Use forEachFeatureInExtentAtResolution in ol.source.ImageVector 2014-04-03 15:23:24 +02:00
Tom Payne
ed586bad39 Use forEachFeatureInExtentAtResolution in ol.renderer.canvas.VectorLayer 2014-04-03 15:23:24 +02:00
Tom Payne
3a8504b799 Add ol.source.Vector#forEachFeatureInExtentAtResolution 2014-04-03 15:12:23 +02:00
Frederic Junod
fe216e3da1 Better vector style in tile-vector example 2014-04-03 15:12:23 +02:00
Tom Payne
8986ea1ef9 Add tile-vector example 2014-04-03 15:12:23 +02:00
Tom Payne
683483f8a4 Add ol.source.TileVector 2014-04-03 15:12:22 +02:00
Tom Payne
4a484a7ad3 Separate out feature reading and feature adding 2014-04-03 15:12:22 +02:00
Tom Payne
a31ad69ec4 Make tile URL functions more general 2014-04-03 15:12:22 +02:00
Tim Schaub
86c5a582c7 Rename loadingStrategy to strategy 2014-04-03 15:12:22 +02:00
Tim Schaub
ce8d805201 Rename loadingFunction to loader 2014-04-03 15:12:22 +02:00
Tom Payne
db1a06ac31 Use a BBOX loading strategy by default 2014-04-03 15:12:22 +02:00
Tom Payne
9e75684823 Replace extentUrlFunction with generic loadingFunction 2014-04-03 15:12:22 +02:00
Tom Payne
b8869805a7 Rename ol.loading to ol.loadingstrategy 2014-04-03 15:12:22 +02:00
Tom Payne
de4a17b8e2 Rename ol.source.RemoteVector to ServerVector 2014-04-03 15:12:22 +02:00
Tom Payne
b24e122d4f Add projection argument when loading features 2014-04-03 15:12:22 +02:00
Tom Payne
cbbcab926e Export ol.format.OSMXML 2014-04-03 15:08:03 +02:00
Tom Payne
10bddeae59 Load features on demand in vector-osm example 2014-04-03 15:08:03 +02:00
Tom Payne
50c4961b9f Add ol.source.RemoteVector 2014-04-03 15:08:03 +02:00
Tom Payne
2842d1b254 Add ol.loading 2014-04-03 15:08:03 +02:00
Tom Payne
8c984cc8f7 Load features before rendering 2014-04-03 15:08:03 +02:00
Tom Payne
b008dd1805 Rename ol.source.FormatVector#loadFeatures to loadFeaturesFromURL 2014-04-03 15:05:55 +02:00
Tom Payne
073f83cd22 Factor out ol.source.FormatVector 2014-04-03 15:05:55 +02:00
Tom Payne
77933d0ab3 Rename ol.source.VectorFile to ol.source.StaticVector 2014-04-03 15:05:55 +02:00
ahocevar
8df95bc674 Handle skipped features when setting the map
When a Select interaction is removed from the map, it should
remove its selected features from the map's skippedFeatures
collection. When it is added to a map, it should add them.
2014-04-03 14:30:58 +02:00
Andreas Hocevar
e44e59311b Merge pull request #1896 from ahocevar/nodragclick
Add click event as responsive alternative to singleclick
2014-04-03 13:34:14 +02:00
Andreas Hocevar
7f2a628223 Merge pull request #1928 from ahocevar/recover-from-canvas-too-big
Recover from situations where the maximum canvas size is exceeded
2014-04-03 11:46:19 +02:00
ahocevar
ea58f38275 Make testCanvasSize a static function 2014-04-03 11:18:26 +02:00
ahocevar
54ba06ae3b Initialize canvasTooBig_ member 2014-04-03 11:18:12 +02:00
Tim Schaub
2c58b03669 Merge pull request #887 from tschaub/default-renderer
Use the Canvas renderer by default.
2014-04-02 12:40:54 -06:00
Tim Schaub
5653d57712 Change default renderer to Canvas 2014-04-02 11:43:20 -06:00
ahocevar
58b5fef3da Allow to make canvas smaller when it is too big
For performance reason, we only make the canvas bigger, but not
smaller. With this change, we also make it smaller, but only
when we know that its current size exceeds the maximum
dimensions.
2014-04-02 16:44:57 +02:00
ahocevar
4dce59fe95 Add method for testing whether the canvas size is valid
This is a way to detect whether a canvas exceeds the maximum
dimensions if these are limited on the target device. See
https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html
for limitations on iOS devices.
2014-04-02 16:44:39 +02:00
Frédéric Junod
72e5a347b9 Merge pull request #1937 from fredj/heatmap-render-order
Set render order to null in ol.layer.Heatmap
2014-04-02 12:06:26 +02:00
Frederic Junod
6469b6c889 Set render order to null in ol.layer.Heatmap
For performance reasons: the render order is not relevant for a
heatmap representation and this avoids to sort the features each frame.
2014-04-02 10:53:04 +02:00
Frédéric Junod
3c32f8b9e4 Merge pull request #1934 from fredj/ol.dom.createCanvasContext
Add ol.dom.createCanvasContext function
2014-04-02 10:52:29 +02:00
Frederic Junod
55de0a54b9 Add ol.dom.createCanvasContext2D function 2014-04-02 09:37:41 +02:00
Tim Schaub
0b21c6bea7 Merge pull request #1936 from tschaub/curly
Typo in objectliterals.jsdoc.
2014-04-01 19:05:17 -06:00
Tim Schaub
2770e61e6c Curly instead of bar 2014-04-01 16:15:22 -06:00
Andreas Hocevar
39bf863335 Merge pull request #1886 from ahocevar/touchend-button
Zoom happens twice on Android browser
2014-04-01 17:07:34 +02:00
ahocevar
a3be9e720a Register pointer event handlers as disposable 2014-04-01 15:31:39 +02:00
Frédéric Junod
e5d59fd7f1 Merge pull request #1933 from fredj/null-renderOrder
Don't sort the features when renderOrder is null
2014-04-01 14:47:44 +02:00
Frederic Junod
ea28b3716c Don't sort the features when renderOrder is null 2014-04-01 14:11:51 +02:00
Tom Payne
0906605878 Merge pull request #1932 from twpayne/fix-draw-order
Stop draw order from preventing batch reuse
2014-04-01 14:04:12 +02:00
ahocevar
e05cff670b Use pointer events for button clicks 2014-04-01 13:46:58 +02:00
Tom Payne
ba0d35668f Stop draw order from preventing batch reuse 2014-04-01 13:45:15 +02:00
Frédéric Junod
bbb39fc930 Merge pull request #1931 from fredj/popup-scroll
Stop 'mouseweel' events in ol-overlaycontainer-stopevent div
2014-04-01 12:31:58 +02:00
Frederic Junod
849b534159 Stop 'mouseweel' events in ol-overlaycontainer-stopevent div 2014-04-01 09:42:08 +02:00
Frederic Junod
13224fd479 Use ol.MapBrowserEvent.EventType.POINTERDOWN
Instaed of a hardcoded string
2014-04-01 09:35:34 +02:00
Frédéric Junod
ac25c3ad57 Merge pull request #1930 from fredj/export
Export ol.coordinate.add
2014-03-31 23:24:38 +02:00
Bart van den Eijnden
17ecccdb23 Put reference to workshop in QuickStart 2014-03-31 21:03:10 +02:00
Bart van den Eijnden
5f20be93a5 Mention the workshop in the readme 2014-03-31 20:55:58 +02:00
Frederic Junod
ef74d8c5dc Export ol.coordinate.add 2014-03-31 17:03:58 +02:00
Antoine Abt
ef546888c8 Merge pull request #1750 from tonio/default_editing_style
Share editing default styles
2014-03-31 11:03:35 +02:00
Marc Jansen
43a9dbd6a8 Merge pull request #1925 from marcjansen/keyboard-interaction-docs
Correct documentation for `keyboardEventTarget`.
2014-03-31 10:34:54 +02:00
Antoine Abt
7122906214 Select interaction options are now optional 2014-03-31 10:24:17 +02:00
Antoine Abt
5cc1a986c2 Share editing default styles 2014-03-31 10:24:17 +02:00
Marc Jansen
8b538d765a Correct documentation for keyboardEventTarget. 2014-03-31 10:23:39 +02:00
Frederic Junod
fa640cf094 Compute anchor value only once 2014-03-31 10:20:52 +02:00
Tim Schaub
24ad507710 Merge pull request #1917 from tschaub/node-deps
Update node packages.
2014-03-28 17:44:13 -06:00
Tim Schaub
2dd3bd88ea Update node packages
* closure-util - Driving the compiler, not watching spurious files
 * async - Bugfixes not related to our use, but this may sidestep the Travis errors we're seeing
2014-03-28 17:27:41 -06:00
Éric Lemoine
2add376113 Merge pull request #1922 from elemoine/modify
Fixes to modify interaction
2014-03-28 16:43:05 +01:00
Éric Lemoine
c82d5ba88e Make the Modify interaction more robust
This prevents a JavaScript error when features are added while the interaction does not have a map.
2014-03-28 16:09:52 +01:00
Éric Lemoine
afa5f35cef Create the R-Tree in the Modify constructor
In this way features can be added/removed to/from the R-Tree even when the interaction does not have a map.
2014-03-28 16:07:03 +01:00
Éric Lemoine
c33a3372d9 Fix initial state of the Modify interaction
Features that are in the features collection need to be added to the R-Tree.
2014-03-28 16:03:34 +01:00
Frédéric Junod
b2e4c4bc1a Merge pull request #1921 from fredj/text-offset
Scale the text offset by the device's pixel ratio
2014-03-28 15:37:12 +01:00
Tom Payne
8545aa83a9 Merge pull request #1915 from twpayne/select-interaction
Restore select interaction behaviour
2014-03-28 14:07:26 +01:00
Andreas Hocevar
37eea9340e Merge pull request #1283 from ahocevar/delete-vertex
Add a way to delete vertices with the Modify interaction
2014-03-28 12:39:28 +01:00
Frederic Junod
e0278e0e9c Scale the text offset by the device's pixel ratio
Fixes #1918
2014-03-28 12:22:12 +01:00
ahocevar
8b99fd9bc1 Updates to pass jshint validation 2014-03-28 12:02:08 +01:00
ahocevar
b9cd512ffc Lower pixel tolerance to avoid accidental vertex deltion 2014-03-28 11:37:06 +01:00
ahocevar
e612330dd7 Add a way to delete vertices with the Modify interaction
After this change, vertices can be deleted by simply clicking on
them. This is the same behaviour as e.g. in geojson.io.
2014-03-28 11:36:13 +01:00
Tom Payne
baab8dab63 Merge pull request #1916 from twpayne/fix-object-uid
Fix location of call to goog.getUid, thanks @elemoine
2014-03-27 22:57:29 +01:00
Tom Payne
7db06b61de Fix location of call to goog.getUid, thanks @elemoine 2014-03-27 22:22:54 +01:00
Tom Payne
f5e272fb3d Remove stray option in modify-features example 2014-03-27 21:54:41 +01:00
Tom Payne
15efba8a23 Restore ol.interaction.Select options 2014-03-27 21:54:41 +01:00
Tom Payne
0ec6bc6325 Fix jsdoc 2014-03-27 21:54:40 +01:00
Frédéric Junod
16054cb753 Merge pull request #1913 from fredj/heatmap-clamp
Optimize opacity clamping
2014-03-27 19:58:08 +01:00
Tom Payne
ddac5c5725 Merge pull request #1888 from twpayne/draw-order
Optional fixed draw order
2014-03-27 19:50:13 +01:00
Frederic Junod
a5a7550930 Optimize opacity clamping 2014-03-27 19:31:30 +01:00
Tom Payne
192c97d52b Respect renderOrder in ol.renderer.canvas.Vector 2014-03-27 19:03:42 +01:00
Tom Payne
479472f6fe Add renderOrder option to ol.layer.Vector 2014-03-27 19:01:53 +01:00
Tom Payne
4e93fe2fbd Call goog.getUid in ol.Object constructor 2014-03-27 19:01:29 +01:00
Tim Schaub
57b43e9822 Merge pull request #1912 from tschaub/modify-example
Add style and condition for multiple selection to modify example.
2014-03-27 11:53:36 -06:00
ahocevar
02907b26ed Continue using singleclick for getfeatureinfo 2014-03-27 18:34:47 +01:00
ahocevar
30fc1a29fb Add unit tests for click event 2014-03-27 18:33:17 +01:00
ahocevar
7bfa15c0fd Add click event as responsive alternative to singleclick
The singleclick event makes the application feel slow because
of the 250 ms delay that is used to rule out a dblclick.
2014-03-27 18:33:17 +01:00
Tim Schaub
2da07f8837 Always toggle selection 2014-03-27 11:26:17 -06:00
Tim Schaub
02a7913c0f Add condition for selection 2014-03-27 11:07:06 -06:00
Tim Schaub
1e0d2af0f0 Add a style for selected features 2014-03-27 11:01:12 -06:00
Frédéric Junod
f4af416aa8 Merge pull request #1894 from fredj/heatmap-weight
Take the feature's weight into account
2014-03-27 17:57:46 +01:00
Tim Schaub
862deefa43 Merge pull request #1897 from tschaub/absolute
Don't use protocol relative URLs.
2014-03-27 09:56:27 -06:00
Frédéric Junod
00bae6a962 Merge pull request #1910 from fredj/api-links
Update links to W3C specs in doc
2014-03-27 14:16:36 +01:00
Frederic Junod
4886c1dcab Update links to W3C specs 2014-03-27 13:56:59 +01:00
Andreas Hocevar
47b82f0f11 Merge pull request #1906 from ahocevar/fix-event-docs
Do not delete event and fires doclets
2014-03-27 13:00:37 +01:00
ahocevar
d4eb5dd2ee Use a more visually appealing margin for descriptions 2014-03-27 13:00:08 +01:00
ahocevar
a5d8f463ff Clean up
Only mark symbol as unexported when it is not in the API, and
no longer extract links from fires annotations because all links
are handled now.
2014-03-27 12:37:01 +01:00
Frédéric Junod
07775ae1ca Merge pull request #1909 from fredj/extern
Remove unneeded json.js extern
2014-03-27 11:48:09 +01:00
Frederic Junod
f60854e63f Remove unneeded json.js extern 2014-03-27 11:21:20 +01:00
Frédéric Junod
e1b05ca4ca Merge pull request #1902 from fredj/native-json
Use native JSON.parse function
2014-03-27 11:07:46 +01:00
Frederic Junod
d36536b935 Better documentation for weight option 2014-03-27 10:53:11 +01:00
Frederic Junod
0043e39ee3 Clamp opacity value to (0, 1) 2014-03-27 10:53:05 +01:00
Frederic Junod
0461901a86 Add new 'weight' option to ol.layer.Heatmap 2014-03-27 10:52:48 +01:00
Frederic Junod
0c131ba931 Take the feature's weight into account 2014-03-27 10:52:35 +01:00
ahocevar
15b0bc719e Do not loop through parents
Now that we use the parseComplete event, we walk through all
doclets in the loop anyway.
2014-03-27 01:56:31 +01:00
ahocevar
a1d9491d62 Do not delete event and fires doclets 2014-03-27 01:18:59 +01:00
Andreas Hocevar
0dcdd58396 Merge pull request #1904 from ahocevar/doc-improvements
API doc improvements
2014-03-26 23:47:02 +01:00
ahocevar
cc1fceab05 Do not query the array twice 2014-03-26 23:46:42 +01:00
Andreas Hocevar
d148d814b2 Merge pull request #1901 from ahocevar/canvasimmediate-less-exports
Do not export the ol.render.canvas.Immediate constructor
2014-03-26 18:43:16 +01:00
ahocevar
46ec3209bd Make ol.View2D available when exploring olx.MapOptions 2014-03-26 18:38:26 +01:00
ahocevar
19ed446f43 Make ol.render.canvas.Immediate available in the docs 2014-03-26 18:33:45 +01:00
ahocevar
e5edb5c0e3 Also consider linked symbols as documented 2014-03-26 18:33:15 +01:00
ahocevar
f129a68248 Only add symbols to the unexported array once
This basically fixes a typo that caused unexported symbols to
be added to the unexported array multiple times.
2014-03-26 18:32:36 +01:00
ahocevar
118d9c200a Remove undocumented symbols at the end of the parsing process
This ensures that we do not mark symbols as undocumented before
all potential dependencies are parsed.
2014-03-26 18:31:31 +01:00
Frederic Junod
0062759f75 Use native JSON.parse function 2014-03-26 16:40:13 +01:00
ahocevar
0c5e232d66 Do not export the ol.render.canvas.Immediate constructor 2014-03-26 15:25:30 +01:00
Frédéric Junod
36305f7efe Merge pull request #1900 from fredj/topojson
ol.format.TopoJSON issues
2014-03-26 15:12:45 +01:00
Frederic Junod
5c4adebb7d Add more topojson tests 2014-03-26 14:59:08 +01:00
Tom Payne
9e6f35c62e Fix TopoJSON return type and line string parsing 2014-03-26 14:59:08 +01:00
Frederic Junod
429a256fff Fix 'scale' and 'translate' tests 2014-03-26 14:59:08 +01:00
Andreas Hocevar
b59fa4e8af Merge pull request #1898 from ahocevar/events
Document events
2014-03-26 14:13:59 +01:00
ahocevar
a3b5376520 Add missing event documentation and stability tags 2014-03-26 14:04:58 +01:00
ahocevar
932cab12af Document stability of MapBrowserEvent properties and events 2014-03-25 22:07:14 +01:00
ahocevar
7fa8bd6723 Document ol.MapEvent events 2014-03-25 18:25:05 +01:00
ahocevar
3227ce4a06 Document ol.ObjectEvent events 2014-03-25 18:24:57 +01:00
ahocevar
4fad17b213 Make clearer what the 'Event' for observable properties means 2014-03-25 18:24:37 +01:00
ahocevar
7a9353cc87 Document classes and properties from externs/oli.js 2014-03-25 18:24:09 +01:00
ahocevar
d0ac615bef Distinct unexported and undocumented symbols 2014-03-25 18:23:05 +01:00
ahocevar
026c7149c8 Fix @override documentation 2014-03-25 18:21:55 +01:00
ahocevar
7e850ca33d Use JSDoc's stock event documentation 2014-03-25 18:21:08 +01:00
Tom Payne
901164df38 Merge pull request #1893 from twpayne/jshint-clean-ups
Check with JSHint
2014-03-25 17:04:14 +01:00
Tim Schaub
9ce7d6ea45 Avoid protocol relative URL to support apps using file protocol 2014-03-24 15:46:12 -06:00
ahocevar
f37245963c Document Map events 2014-03-24 21:53:42 +01:00
ahocevar
fcd737e62b Document MapBrowserEvent events 2014-03-24 21:53:32 +01:00
ahocevar
50f8eb65fd Add capabilities to document events 2014-03-24 21:53:18 +01:00
Tom Payne
b613c9cde7 Merge pull request #1859 from pgiraud/geolocation_tracking_orientation
Geolocation tracking with orientation example
2014-03-24 12:53:53 +01:00
Pierre GIRAUD
8e9ffb377e Geolocation tracking with orientation example 2014-03-24 12:26:17 +01:00
Tom Payne
710e6df71a Merge pull request #1892 from twpayne/fix-stack-overflow
Fix stack overflow when handling very, very large numbers of coordinates
2014-03-24 12:07:58 +01:00
Tom Payne
369c20388e Use ol.array.safeExtend in ol.format.KML 2014-03-24 11:56:53 +01:00
Tom Payne
82b703f3f0 Use ol.array.safeExtend in ol.format.GML 2014-03-24 11:56:53 +01:00
Tom Payne
dbc4f4e621 Use ol.array.safeExtend in ol.geom.Polygon 2014-03-24 11:56:53 +01:00
Tom Payne
c1d37195f5 Use ol.array.safeExtend in ol.geom.MultiPolygon 2014-03-24 11:56:53 +01:00
Tom Payne
b9a6048791 Use ol.array.safeExtend in ol.geom.MultiPoint 2014-03-24 11:56:53 +01:00
Tom Payne
765985c5a9 Use ol.array.safeExtend in ol.geom.MultiLineString 2014-03-24 11:56:53 +01:00
Tom Payne
de2ee2451e Use ol.array.safeExtend in ol.geom.LineString 2014-03-24 11:56:53 +01:00
Tom Payne
71dae7b71e Add ol.array.safeExtend 2014-03-24 11:56:53 +01:00
Marc Jansen
84463f59d4 Merge pull request #1614 from Intermedix/ol-touch-zoomslider
Add styles for .ol-touch .ol-zoomslider
2014-03-24 09:24:23 +01:00
Tom Payne
7923540f74 Add jshint target to check and integration-test targets 2014-03-24 00:46:49 +01:00
Tom Payne
df6e69a56e Add jshint target 2014-03-24 00:46:49 +01:00
Tom Payne
af952b7ea5 Install node dependencies on Travis 2014-03-23 19:59:50 +01:00
Tom Payne
2bb829594e Add jshint to dependencies 2014-03-23 19:59:50 +01:00
Tom Payne
004d8b721d Add .jshintrc 2014-03-23 19:59:49 +01:00
Tom Payne
14cca5e2f9 Make vector-labels example work in advanced mode 2014-03-23 19:59:49 +01:00
Tom Payne
06469ede50 No need to quote properties in vector-labels example 2014-03-23 19:59:49 +01:00
Tom Payne
9a6b502960 Add missing semicolon 2014-03-23 19:59:49 +01:00
Tom Payne
8c6c262a6a Don't redeclare variable 2014-03-23 19:59:49 +01:00
Tom Payne
a5cc4d0728 Use === to compare with undefined 2014-03-23 19:59:49 +01:00
Tom Payne
b91371348e Disable warnings about property access 2014-03-23 19:59:49 +01:00
Tom Payne
4a8ef6a229 Use dot property access in ol.pointer.TouchSource 2014-03-23 19:59:49 +01:00
Tom Payne
cf111c7a77 Add missing externs for Touch 2014-03-23 19:59:49 +01:00
Tom Payne
aeb1626b08 Suppress jshint warnings about use of String as a constructor 2014-03-23 19:59:49 +01:00
Tom Payne
06dc1aa4f2 Suppress warning about fall-through in switch statement 2014-03-23 19:59:49 +01:00
Tom Payne
a54f3c6644 Move nodeName into correct scope 2014-03-23 18:30:03 +01:00
Tom Payne
35dea5e3a6 Always use === to compare with 0 2014-03-23 18:29:47 +01:00
Tom Payne
7f5446afff Merge pull request #1889 from twpayne/layer-spy-pixel-ratio
Take pixel ratio into account in layer-spy example
2014-03-23 03:05:33 +01:00
Tom Payne
f051230f99 Take pixel ratio into account in layer-spy example 2014-03-23 02:54:15 +01:00
Bart van den Eijnden
56e958f209 Merge pull request #1878 from bartvde/mapquest-https
MapQuest HTTPS problem (r=@fredj)
2014-03-21 13:36:23 +01:00
Antoine Abt
4879f79094 Merge pull request #1877 from tonio/skip_features
Replace renderGeometryFunction by skippedFeatures
2014-03-21 09:57:19 +01:00
Bart van den Eijnden
c7529113fb Fix MapQuest source when using https 2014-03-21 08:56:59 +01:00
Tim Schaub
788c734635 Merge pull request #1887 from tschaub/editing-examples
Separate test example from modify example.
2014-03-20 15:29:17 -06:00
Tim Schaub
1b4aa63673 Separate test example from modify example 2014-03-20 12:18:17 -06:00
Frédéric Junod
185a655cdd Merge pull request #1881 from fredj/pointerevents-cleanups
Miscellaneous pointer events cleanups
2014-03-20 16:36:35 +01:00
Éric Lemoine
3b642ae549 Remove the getSkippedFeatureUids function 2014-03-20 13:30:45 +01:00
Éric Lemoine
c4b654b26c Rename skippedFeaturesHash to skippedFeatureUids 2014-03-20 13:29:30 +01:00
Éric Lemoine
71484d9a53 Better API doc strings in ol.Map 2014-03-20 13:25:20 +01:00
Éric Lemoine
435e5e6916 Better type checking in ol.Map 2014-03-20 13:19:54 +01:00
Antoine Abt
6a4c2bccc5 Coding style 2014-03-20 13:08:10 +01:00
Antoine Abt
78039aceb8 Use a hash to store features uids 2014-03-20 13:03:31 +01:00
Frederic Junod
764d7aaaa4 Remove unused ol.pointer.PointerEvent#originalEvent 2014-03-20 12:38:14 +01:00
Frederic Junod
6af2d5ae47 Remove trailing newlines 2014-03-20 12:38:14 +01:00
Frederic Junod
6d4552c783 Cache the result of goog.object.getCount 2014-03-20 12:38:14 +01:00
Frederic Junod
a2375d58b6 Store touch coordinates as ol.Pixel instead of goog.math.Coordinate 2014-03-20 12:38:14 +01:00
Frederic Junod
395fdf9bbf Move function declaration out of the constructor 2014-03-20 12:38:13 +01:00
Andreas Hocevar
23e1e6e0f4 Merge pull request #1875 from ahocevar/modify-performance
Do not update RTree while dragging vertices
2014-03-20 10:43:47 +01:00
Antoine Abt
d0f2dd354b Trigger render on skippedFeatures change 2014-03-20 10:25:45 +01:00
Antoine Abt
e1e4969599 Name frameState skippedFeaturesIds as private 2014-03-20 10:24:39 +01:00
Antoine Abt
0d87516135 Map stores skippedFeatures instead of layers 2014-03-19 17:24:58 +01:00
Tom Payne
0ea102ae66 Merge pull request #1874 from twpayne/wfs-fixes
Miscellaneous GML and WFS fixes
2014-03-19 12:54:49 +01:00
Antoine Abt
e91db0f9af Check for null layers (for postcompose hitdetection) 2014-03-19 12:33:48 +01:00
Antoine Abt
c8de4d908d Skip features in select interaction 2014-03-19 12:33:32 +01:00
Antoine Abt
c2c3798087 Update select-features example styles 2014-03-19 12:31:45 +01:00
Antoine Abt
9f7cba0ac0 Skipped features replaces RenderGeometryFunction 2014-03-19 12:31:45 +01:00
ahocevar
878f7cc7c8 Do not update RTree while dragging vertices 2014-03-19 11:36:55 +01:00
Tom Payne
1fc1cd0b2f Merge pull request #1873 from twpayne/sphere-interpolate
Add ol.Sphere#interpolate
2014-03-19 00:13:46 +01:00
Tom Payne
f41a4dc543 Add EPSG:4326 tests 2014-03-18 19:12:27 +01:00
Tom Payne
0b5f0d0c8e Add ol.Sphere#interpolate 2014-03-18 18:52:44 +01:00
Tom Payne
b3ac959d6a Parse coordinates in GML in a single pass 2014-03-18 16:18:54 +01:00
Tom Payne
84cb3c88ef Fix fixing of OGC stupidity 2014-03-18 16:18:49 +01:00
Tom Payne
1b2e9aa13d Fix return types 2014-03-18 16:18:44 +01:00
Tom Payne
088a748d70 Remove tests for spherical geometry on poorly defined points 2014-03-18 14:58:39 +01:00
Frédéric Junod
f50451698a Merge pull request #1872 from fredj/vbarray
Fix vbarray extern
2014-03-18 09:01:43 +01:00
Frederic Junod
b04639ccc5 Fix vbarray extern
dimension argument is optional.
See http://msdn.microsoft.com/en-us/library/3kk8f869(v=vs.94).aspx
and http://msdn.microsoft.com/en-us/library/0kbz883e(v=vs.94).aspx
2014-03-18 08:14:34 +01:00
Frédéric Junod
1b6f0a3fd1 Merge pull request #1870 from fredj/has-touch
Fix ol.BrowserFeature.HAS_TOUCH detection code
2014-03-18 08:00:56 +01:00
Hadrien Tulipe
f325cc3d7a More syntax fix for OWS format 2014-03-17 21:15:03 +01:00
Hadrien Tulipe
58e74229d2 Rename ol.format.OWSCapabilities to ol.format.OWS 2014-03-17 21:10:47 +01:00
Hadrien Tulipe
149e5c9068 Fix syntax and private functions return values for OWS format 2014-03-17 21:03:41 +01:00
Bart van den Eijnden
5db19fc307 Merge pull request #1867 from bartvde/stability
Mark parts of control and overlay as stable
2014-03-17 20:06:52 +01:00
Tom Payne
84479a096f Merge pull request #1871 from twpayne/select-toggle
Replace ol.interaction.Select add with toggle
2014-03-17 17:10:45 +01:00
Tom Payne
395f1222a1 Add remove and toggle options to ol.interaction.Select 2014-03-17 16:43:41 +01:00
Tom Payne
29d1ee5e03 Add ol.events.condition.never 2014-03-17 16:40:38 +01:00
Tim Schaub
f57a0544a0 Merge pull request #1845 from tschaub/buffered
Track replay group resolution and buffer max extent to capture strokes.
2014-03-17 08:50:07 -06:00
Frederic Junod
f2d8ad34fa Fix ol.BrowserFeature.HAS_TOUCH detection code
Use goog.global instead goog.global.document.documentElement to avoid
false negative results when using the chrome development tools (Touch
Events emulation).

Code borrowed from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js
except for the DocumentTouch part which is deprecated (https://developer.mozilla.org/en-US/docs/Web/API/DocumentTouch)

Fixes #1869
2014-03-17 15:04:55 +01:00
Tom Payne
ade384f842 Merge pull request #1868 from twpayne/wrap-x
Add wrapX option to ol.source.XYZ
2014-03-17 14:16:56 +01:00
Tom Payne
27943d9ed6 Tidy up setting of default projection 2014-03-17 14:08:41 +01:00
Tom Payne
2100cd30df Add wrapX option to ol.source.XYZ 2014-03-17 14:08:41 +01:00
Frédéric Junod
38009e1984 Merge pull request #1866 from fredj/pointerevents-tests
Fix simulated touch event in tests
2014-03-17 12:18:36 +01:00
Frederic Junod
9a51557dec Increase simulated clientY value
The the difference in position must be greater than
ol.pointer.MouseSource.DEDUP_DIST
2014-03-17 12:04:10 +01:00
Bart van den Eijnden
83bf626e03 Mark parts of control and overlay as stable 2014-03-17 11:06:46 +01:00
Frederic Junod
391f81f838 Fix simulated touch event in tests 2014-03-17 10:35:13 +01:00
Frédéric Junod
593bb46708 Merge pull request #1865 from fredj/device-orientation
Make ol.DeviceOrientation dispatch change events
2014-03-17 09:34:29 +01:00
Éric Lemoine
f019f3ed44 Merge pull request #1858 from elemoine/geolocation
Add change event to Geolocation
2014-03-17 09:32:08 +01:00
Frederic Junod
2e390794ed Use change event in device-orientation example 2014-03-17 09:06:25 +01:00
Frederic Junod
6df7d5afda Make ol.DeviceOrientation dispatch change events 2014-03-17 09:05:52 +01:00
Hadrien Tulipe
00da1405b6 Remove commented code 2014-03-16 20:18:14 +01:00
Hadrien Tulipe
fe2bee1577 Add basic reading support for OWS Capabilities document. 2014-03-16 19:47:13 +01:00
Andreas Hocevar
c3cc4af453 Merge pull request #1861 from ahocevar/init-lastpixel
Initialize lastPixel_ properly
2014-03-14 15:44:52 +01:00
ahocevar
6de1636507 Initialize lastPixel_ properly 2014-03-14 15:24:58 +01:00
Éric Lemoine
c8f981b38d Merge pull request #1840 from tsauerwein/pointerevents
Use pointer events
2014-03-14 11:13:24 +01:00
tsauerwein
155b9b3f86 Add comment about pointercancel listener 2014-03-14 10:16:27 +01:00
tsauerwein
b2a37b8244 Remove not needed require 2014-03-14 10:16:27 +01:00
tsauerwein
41df4e0a23 Remove assertion again
When doing a double tap, the timeout id might get overridden.
2014-03-14 10:16:27 +01:00
tsauerwein
599de6a44a Listen also to pointerdown on overlay container 2014-03-14 10:16:27 +01:00
tsauerwein
89da5debfa Fix order of olx.interaction.* types 2014-03-14 10:16:27 +01:00
tsauerwein
7789d5eb08 Fix Google Maps example 2014-03-14 10:16:27 +01:00
tsauerwein
51a557efbb Replace goog.structs.Map with plain object 2014-03-14 10:16:27 +01:00
tsauerwein
8a26ac6e24 Set preventDefault in PointerEvent constructor 2014-03-14 10:16:27 +01:00
tsauerwein
68fa5fb9ce Make use of goog.array.remove 2014-03-14 10:16:27 +01:00
tsauerwein
debdc26fd2 Remove assignment inside expression 2014-03-14 10:16:27 +01:00
tsauerwein
71b424f74c Add missing require 2014-03-14 10:16:27 +01:00
tsauerwein
1a477b8f32 Assert that timeout reset ids are not overridden 2014-03-14 10:16:27 +01:00
tsauerwein
d170281354 Re-use handler 2014-03-14 10:16:27 +01:00
tsauerwein
e08fa37565 Use enums for pointer event types 2014-03-14 10:16:27 +01:00
tsauerwein
72d7a6e1ff Remove unused property pointerMap on NativeSource 2014-03-14 10:16:27 +01:00
tsauerwein
b693ddf56e Remove assignments inside expression 2014-03-14 10:16:27 +01:00
tsauerwein
73c33e58e9 Remove unused constant NEW_MOUSE_EVENT 2014-03-14 10:16:27 +01:00
tsauerwein
77aa29e6ee Remove blank lines 2014-03-14 10:16:27 +01:00
tsauerwein
873d47d087 Remove not needed type cast 2014-03-14 10:16:27 +01:00
tsauerwein
6933023441 Remove leading whitespace 2014-03-14 10:16:27 +01:00
Éric Lemoine
d08ab1ea78 PinchZoom interaction sets/unsets interacting hint 2014-03-14 10:16:27 +01:00
Éric Lemoine
544ceaf9f9 PinchRotate interaction sets/unsets interacting hint 2014-03-14 10:16:27 +01:00
Éric Lemoine
b5339550b7 DragPan interaction sets/unsets interacting hint 2014-03-14 10:16:27 +01:00
Éric Lemoine
d1ef5b0f5b Remove view hint handling from pointer interaction 2014-03-14 10:16:27 +01:00
Éric Lemoine
35b31730b5 Change a property from private to protected 2014-03-14 10:16:27 +01:00
Éric Lemoine
b939ca24d7 Use a more explicit variable name 2014-03-14 10:16:27 +01:00
Tom Payne
df71854561 Merge ol.pointer.CLONE_PROPS and CLONE_DEFAULTS into a single array 2014-03-14 10:16:27 +01:00
tsauerwein
5a358918e1 Rename interactions
The idea behind the naming scheme is that for example
for `DragRotate`, `Rotate` is the action and `Drag` the
gesture that issues the action.
2014-03-14 10:16:27 +01:00
Frederic Junod
ee80238ed2 Use 'undefined' for undefined numbers
Conflicts:
	src/ol/pointer/touchsource.js
2014-03-14 10:16:27 +01:00
tsauerwein
18c2888987 Remove not used property TouchSource.firstXY 2014-03-14 10:16:27 +01:00
Frederic Junod
f5b15f737f Move DEDUP_TIMEOUT and CLICK_COUNT_TIMEOUT constants out of the instance 2014-03-14 10:16:27 +01:00
tsauerwein
fcb52d2361 Remove unnecessary call to goog.bind 2014-03-14 10:16:27 +01:00
tsauerwein
52839533e6 Fix typo in POINTERDRAG constant 2014-03-14 10:16:27 +01:00
ahocevar
e28faa3a2b Removing code for functionality now handled by #1834 2014-03-14 10:16:27 +01:00
tsauerwein
6742e6a03a Fix type annotation 2014-03-14 10:16:27 +01:00
Frederic Junod
028a183d11 Pass the mapping object to the ol.pointer.EventSource constructor
Conflicts:
	src/ol/pointer/mssource.js
2014-03-14 10:16:27 +01:00
tsauerwein
4468d96a13 Read pointerId/pointerType from browser event
and not from the Google Closure event.
2014-03-14 10:16:27 +01:00
Frederic Junod
aee76c989d Change ol.BrowserFeature.HAS_POINTER feature detection
Because navigator.pointerEnabled will not be part of the final spec.
See https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890
2014-03-14 10:16:27 +01:00
Frederic Junod
a13ade90ad Simplify pointerType string conversion 2014-03-14 10:16:27 +01:00
Frederic Junod
08b297e628 Use goog.object.get instead of ol.pointer.PointerEvent#getValue_ 2014-03-14 10:16:27 +01:00
tsauerwein
6e2f0dce76 Work on a copy of changedTouches
On Opera Mobile 11.10 it is not possible to
directly work on `changedTouches` (e.g. map
fails). That is why a copy is made first.
2014-03-14 10:16:27 +01:00
Frederic Junod
b2e946794f Set ol.pointer.*Source#mapping_ properties to private 2014-03-14 10:16:27 +01:00
Frederic Junod
a916e2500b Add ol.pointer.TouchSource.POINTER_TYPE constant 2014-03-14 10:16:26 +01:00
Frederic Junod
a74ad0e459 Remove ol.pointer.*Source#events properties 2014-03-14 10:16:26 +01:00
Frederic Junod
6b4b62dd3a Use goog.object.get instead of ol.pointer.PointerEvent#getValueOr_ 2014-03-14 10:16:26 +01:00
Frederic Junod
cbb875e504 Add extern for Navigator.prototype.pointerEnabled 2014-03-14 10:16:26 +01:00
tsauerwein
51d7cb2820 Make goog.events.listen return proper listener key
When goog.events.listen receives an array of event types,
it only return null as listener key. So that calling
goog.events.unlistenByKey does not work.
2014-03-14 10:16:26 +01:00
tsauerwein
b17957b543 Fix support for legacy IE 2014-03-14 10:16:26 +01:00
tsauerwein
d6ca93e23c Adding missing return 2014-03-14 10:16:26 +01:00
tsauerwein
42f0dfa75a Use goog.dispose 2014-03-14 10:16:26 +01:00
tsauerwein
79424ec856 Add comment about mouse support only 2014-03-14 10:16:26 +01:00
tsauerwein
0d72f4542e Remove old event types
Pointer events for the win.
2014-03-14 10:16:26 +01:00
tsauerwein
5f75104e33 Remove DragInteraction 2014-03-14 10:16:26 +01:00
tsauerwein
50d09eba93 Adding missing default returns 2014-03-14 10:16:26 +01:00
ahocevar
5b25826e2f Adding missing require 2014-03-14 10:16:26 +01:00
ahocevar
29454c2326 Note about MultiGeometry rendering 2014-03-14 10:16:26 +01:00
ahocevar
18ba2f8be6 Fixing API docs 2014-03-14 10:16:26 +01:00
ahocevar
f5f2dae300 Updating tests for Draw interaction 2014-03-14 10:16:26 +01:00
ahocevar
bc1489e8a0 Adding basic support for mobile
Usability still needs improvement.
2014-03-14 10:16:26 +01:00
ahocevar
d6880039cc Making the draw interaction work with pointer events
This is not yet optimized for mobile, and tests need to be
updated.
2014-03-14 10:16:26 +01:00
ahocevar
be1318f133 Adding basic support for non-mouse devices 2014-03-14 10:16:26 +01:00
ahocevar
f663a3d87a Do not render selected features on the original layer
See #1796 for a discussion on how to handle this in a better
way.
2014-03-14 10:16:26 +01:00
ahocevar
f6efcbcc24 The Modify interaction now uses pointer events
While dragging a vertex, the feature on the original layer is
not updated until the first pointer move after dragging. See
#1796. Previously, the Modify interaction did not set the
interacting hint on the view, so the feature was also updated
on the original layer. But now, the interacting hint is set,
which exposes this behaviour.
2014-03-14 10:16:26 +01:00
ahocevar
32ffb1ecae Relay pointermove events again
This will be needed for hover actions.
2014-03-14 10:16:26 +01:00
ahocevar
296da6f4c1 Updating google-map example to use pointer events 2014-03-14 10:16:26 +01:00
ahocevar
05dd760287 Rename ol.interaction.PointerInteraction 2014-03-14 10:16:26 +01:00
tsauerwein
fa434bedda use anonymous function 2014-03-14 10:16:26 +01:00
tsauerwein
bc31d42964 removes dead code 2014-03-14 10:16:26 +01:00
tsauerwein
43aac5480c fixes interaction options in tests 2014-03-14 10:16:26 +01:00
tsauerwein
dc164fd496 removes now superfluous DragPanInteraction 2014-03-14 10:16:26 +01:00
tsauerwein
56dcdd02ec base dragrotateandzoominteraction on pointer interaction 2014-03-14 10:16:26 +01:00
tsauerwein
c593add6d8 base dragrotateinteraction on pointer interaction 2014-03-14 10:16:26 +01:00
tsauerwein
12b0fee790 pointer interaction might also receive events that are not pointer events 2014-03-14 10:16:26 +01:00
tsauerwein
411b7257cf refactoring pointer interactions 2014-03-14 10:16:26 +01:00
tsauerwein
fca9c50a3f PointerInteraction uses MapBrowserPointerEvent not MapBrowserEvent 2014-03-14 10:16:26 +01:00
tsauerwein
a696150470 base interaction for zoom box on pointer events 2014-03-14 10:16:26 +01:00
tsauerwein
bfc95451e8 fixes preventDefault() on IE11 2014-03-14 10:16:26 +01:00
tsauerwein
122dac857f PointerEventHandler test 2014-03-14 10:16:26 +01:00
tsauerwein
3d7ae92f0b tests for mouse- and touchsource 2014-03-14 10:16:26 +01:00
tsauerwein
2846996609 tests for pointereventhandler 2014-03-14 10:16:26 +01:00
tsauerwein
68b7ee58a5 fixes tests for mapbrowserevent 2014-03-14 10:16:26 +01:00
tsauerwein
e0b345b7db add assertion 2014-03-14 10:16:26 +01:00
tsauerwein
692a68644f introduce type POINTERDRAG to make a distinction between pointer move and drag 2014-03-14 10:16:26 +01:00
tsauerwein
eca6846dac move checks for pointer support into browserfeature module 2014-03-14 10:16:26 +01:00
tsauerwein
b52f79340d use separate pointer event handler for document when dragging 2014-03-14 10:16:26 +01:00
tsauerwein
2e4badb7f3 when copying properties for touch events, make sure that those properties that might be different for each Touch object are not copied from the touch event 2014-03-14 10:16:26 +01:00
tsauerwein
7fbd11154b refactoring, type annotations 2014-03-14 10:16:26 +01:00
tsauerwein
d772c95ccf makes PointerEvent a plain closure class, instead of trying to mimic a mouse event, which was required for the polyfill 2014-03-14 10:16:25 +01:00
tsauerwein
7c8713f79d add comment about an open bug with native Android browser (4.1.2) when the page is scrolled 2014-03-14 10:16:25 +01:00
tsauerwein
e1f4410ad4 removes not needed WeakMap struct 2014-03-14 10:16:25 +01:00
tsauerwein
a31cc3f18c only track events when "pointerdown" event was received, because on native android browser wrong move events are sent with no "pointerdown" event 2014-03-14 10:16:25 +01:00
tsauerwein
c4c1eb7d45 allow dragging for mouse/ms/native when pointer is outside map viewport element 2014-03-14 10:16:25 +01:00
tsauerwein
ee2174785f copy properties for pointer event from internal browser event, not from google.event.BrowserEvent 2014-03-14 10:16:25 +01:00
tsauerwein
1c75ecc260 former touch interactions now use pointer events 2014-03-14 10:16:25 +01:00
tsauerwein
014ef96c31 base interactions for pointer events on existing touch interactions 2014-03-14 10:16:25 +01:00
tsauerwein
37ab50e2e4 use goog.bind, safari does not support the native bind 2014-03-14 10:16:25 +01:00
tsauerwein
492549642e add polymer license info 2014-03-14 10:16:25 +01:00
tsauerwein
0858f6825c source for touch events 2014-03-14 10:16:25 +01:00
tsauerwein
445ff5e05a source for native pointer events (IE11) 2014-03-14 10:16:25 +01:00
tsauerwein
df4bd7c43b source for ms pointer events (IE10) 2014-03-14 10:16:25 +01:00
tsauerwein
7140f608f8 pointer events generated by mouse events 2014-03-14 10:16:25 +01:00
Éric Lemoine
91cd8f20cc Use change event in geolocation example 2014-03-14 09:32:37 +01:00
Éric Lemoine
0577bbc1a1 Make Geolocation dispatch change events 2014-03-14 09:32:25 +01:00
Tim Schaub
88efda1a1f Track resolution and buffer max extent to capture strokes 2014-03-13 20:40:18 -04:00
Andreas Hocevar
1a40b1793c Merge pull request #1789 from ahocevar/mousewheel-delta
Mousewheel zoom broken and resolution constraints not respected in Firefox
2014-03-13 23:43:04 +01:00
ahocevar
44e0f6ce68 Use the delta from goog.events.MouseWheelHandler as-is 2014-03-13 19:51:28 +01:00
Steven Pukansky
e62e537eed Update zoomslider custom styling to match control styling changes 2014-03-13 11:52:09 -04:00
Austin Hyde
a0fdc0ecf9 Update the zoomslider example to have better styling for touch devices 2014-03-13 11:52:09 -04:00
Austin Hyde
a8dd1d29c8 Fix zoomslider controls to match zoom controls more closely 2014-03-13 11:52:09 -04:00
Austin Hyde
f45cb50121 Add styles for .ol-touch .ol-zoomslider 2014-03-13 11:52:09 -04:00
Frédéric Junod
457d5635eb Merge pull request #1857 from fredj/doc
Add missing options in olx.layer.HeatmapOptions
2014-03-13 15:57:29 +01:00
Andreas Hocevar
9547ded39a Merge pull request #1854 from ahocevar/modify-interior-rings
Add support for editing interior polygon rings
2014-03-13 15:51:35 +01:00
Bart van den Eijnden
88e7dde488 Merge pull request #1856 from bartvde/popup-anchor
Add offsetX and offsetY config options for ol.Overlay (r=@fredj,@twpayne)
2014-03-13 15:44:48 +01:00
Frederic Junod
9a4892bff3 Wrap long lines 2014-03-13 15:39:46 +01:00
Frederic Junod
d1111bacf3 Add missing options in olx.layer.HeatmapOptions 2014-03-13 15:38:42 +01:00
Bart van den Eijnden
731e37349e Combine offsetX and offsetY with positioning 2014-03-13 15:34:45 +01:00
Bart van den Eijnden
3fe3beb28a Add offsetX and offsetY config options for ol.Overlay 2014-03-13 15:06:02 +01:00
Frédéric Junod
9f1b695747 Merge pull request #1855 from fredj/const
Add '@const' to ol.BrowserFeature.HAS_ARRAY_BUFFER
2014-03-13 11:24:11 +01:00
Frederic Junod
5f43fe6da0 Add '@const' to ol.BrowserFeature.HAS_ARRAY_BUFFER 2014-03-13 10:54:43 +01:00
ahocevar
ecddcdd732 Add support for editing interior polygon rings 2014-03-13 01:02:15 +01:00
Andreas Hocevar
1fbdf47e2a Merge pull request #1807 from ahocevar/float-no-zero
Modify interaction sometimes does not allow to create a new vertex
2014-03-13 00:51:43 +01:00
Andreas Hocevar
e017555b7f Merge pull request #1808 from ahocevar/modify-multi
Modify interaction allows vertices to be added where they shouldn't be
2014-03-12 22:59:56 +01:00
Tim Schaub
c2400f6dba Merge pull request #1815 from Intermedix/lazy-style-function
Lazily create styles returned by ol.defaultFeatureStyleFunction.
2014-03-12 17:26:49 -04:00
Tom Payne
24b3f3dcc0 Merge pull request #1853 from twpayne/leading-whitespace
Remove leading whitespace
2014-03-12 20:24:46 +01:00
Tom Payne
dbca1795cf Merge pull request #1849 from twpayne/remove-old-modify-interaction
Remove old modify interaction
2014-03-12 19:53:45 +01:00
Tom Payne
9bd49e985e Add leading whitespace check 2014-03-12 19:52:38 +01:00
Tom Payne
271487c1bc Remove leading whitespace 2014-03-12 19:52:13 +01:00
Tom Payne
63f50fc035 Merge pull request #1852 from adube/example-vector-labels
Add rotation, offsetX and offsetY to vector-labels example
2014-03-12 15:53:22 +01:00
Bart van den Eijnden
c2b0760579 Merge pull request #1836 from bartvde/mapquest-layers-doc
Add possible values of layer for olx.source.MapQuestOptions (r=@elemoine)
2014-03-12 15:24:06 +01:00
Paul Spencer
94efa58363 Merge pull request #1844 from pagameba/doc-ol-format-feature
Documentation for ol.format.Feature subclasses
2014-03-12 10:23:25 -04:00
Alexandre Dubé
140618c5a2 Add rotation, offsetX and offsetY to vector-labels example 2014-03-12 10:20:49 -04:00
Tom Payne
f60891a4f4 Merge pull request #1851 from twpayne/looser-tests
Don't compare floating point numbers for exact equality
2014-03-12 15:16:59 +01:00
Tom Payne
82c4850f69 Don't compare floating point numbers for exact equality 2014-03-12 15:00:04 +01:00
Tom Payne
f7fa1ff4ad Merge pull request #1847 from twpayne/split-ol-geom-flat
Split ol.geom.flat into smaller modules
2014-03-12 14:41:25 +01:00
Tom Payne
9c59ac8570 Merge pull request #1848 from twpayne/remove-old-parsers
Remove old parsers
2014-03-12 14:38:49 +01:00
Tom Payne
ec3147504a Merge pull request #1850 from twpayne/wms-ex-geographic-bounding-box
Fix parsing of EX_GeographicBoundingBox when ol3 is compiled
2014-03-12 14:36:42 +01:00
Tom Payne
1a643e1b37 Fix parsing of EX_GeographicBoundingBox when ol3 is compiled 2014-03-12 14:25:23 +01:00
Tom Payne
df03bdeae8 Remove old ol.interaction.Modify 2014-03-12 13:51:35 +01:00
Tom Payne
3e145c0bc6 Remove old modify-features example 2014-03-12 13:51:12 +01:00
Tom Payne
a0f234595e Remove old WMS GetCapabilities parser tests 2014-03-12 13:49:02 +01:00
Tom Payne
eaccf2471c Remove old WMS GetCapabilities parser 2014-03-12 13:49:02 +01:00
Tom Payne
6d3f30328b Remove old WFS parser tests 2014-03-12 13:49:02 +01:00
Tom Payne
bdca074077 Remove old WFS parser 2014-03-12 13:48:31 +01:00
Tom Payne
bf0e788658 Remove old GML parser tests 2014-03-12 13:48:31 +01:00
Tom Payne
9492c95539 Remove old GML parser 2014-03-12 13:42:56 +01:00
Tom Payne
a7fa4487a5 Remove old gml example 2014-03-12 13:41:52 +01:00
Tom Payne
78c8d976eb Remove empty ol.geom.flat 2014-03-12 13:26:14 +01:00
Tom Payne
48af6ecd1c Factor out ol.geom.flat.center 2014-03-12 13:26:14 +01:00
Tom Payne
ca44c6328c Factor out ol.geom.flat.transform 2014-03-12 13:26:14 +01:00
Tom Payne
6a00c14841 Move squaredDistance and squaredSegmentDistance into ol.math 2014-03-12 13:26:14 +01:00
Tom Payne
65dcc38fad Factor out ol.geom.flat.reverse 2014-03-12 13:26:14 +01:00
Tom Payne
3541a01aab Factor out ol.geom.flat.inflate 2014-03-12 13:26:14 +01:00
Tom Payne
9ca996725e Factor out ol.geom.flat.flip 2014-03-12 13:26:14 +01:00
Tom Payne
266c43dc78 Factor out ol.geom.flat.deflate 2014-03-12 13:26:14 +01:00
Tom Payne
d525b43d06 Factor out ol.geom.flat.contains and interiorpoint 2014-03-12 13:26:14 +01:00
Tom Payne
1363ce3a58 Factor out ol.geom.flat.orient 2014-03-12 13:26:14 +01:00
Tom Payne
becd1318bd Factor out ol.geom.flat.area 2014-03-12 13:26:13 +01:00
Tom Payne
20ee1dc992 Factor out ol.geom.flat.length 2014-03-12 13:26:13 +01:00
Tom Payne
522fda1688 Factor out ol.geom.flat.interpolate 2014-03-12 13:26:13 +01:00
Tom Payne
c8165a8168 Factor out ol.geom.flat.simplify 2014-03-12 13:26:13 +01:00
Tom Payne
2b6845244c Factor out ol.geom.flat.closest 2014-03-12 13:26:13 +01:00
Tom Payne
b565092d62 Use goog.math.lerp in ol.geom.flat.lineStringCoordinateAtM 2014-03-12 13:26:13 +01:00
Tom Payne
76779c175f Use goog.math.lerp in ol.geom.flat.lineStringInterpolate 2014-03-12 13:26:13 +01:00
Tom Payne
86dc90ceca Merge pull request #1830 from twpayne/geom-fixes
Extra geometry functions
2014-03-12 13:24:45 +01:00
ahocevar
62034e8fb9 Only update the index for the current component 2014-03-12 13:02:52 +01:00
Tom Payne
5c6eb85040 Merge pull request #1843 from twpayne/no-regex
Don't use the regex module
2014-03-12 11:57:29 +01:00
Éric Lemoine
934664296f Merge pull request #1842 from elemoine/1798
Re-render on feature changes
2014-03-12 10:43:22 +01:00
Éric Lemoine
814e5d2790 Re-render on feature changes 2014-03-12 10:03:42 +01:00
Paul Spencer
d1ee4b8fed Add documentation for the TopoJSON format. 2014-03-11 20:53:21 -04:00
Paul Spencer
a646577bd6 Add documentation for the KML format. 2014-03-11 20:53:21 -04:00
Paul Spencer
37feb7db64 Add documentation for the IGC format. 2014-03-11 20:53:21 -04:00
Paul Spencer
3c85c32cc5 Add documentation for the GPX format. 2014-03-11 20:53:21 -04:00
Paul Spencer
cc90d59cac Add documentation for the GeoJSON format. 2014-03-11 20:53:20 -04:00
Paul Spencer
c74e01ca0a Add @function as a custom jsdoc tag for the linter. 2014-03-11 20:53:20 -04:00
Paul Spencer
7fd50c058b Add documentation for ol.format.Feature public API methods intended to be inherited by subclasses. 2014-03-11 20:53:20 -04:00
Bart van den Eijnden
ac2840721c Merge pull request #1829 from bartvde/wfs2
WFS 1.1.0 format (read/write) (r=@twpayne,@ahocevar)
2014-03-11 22:14:25 +01:00
Tom Payne
fa1fae732f Don't use the regex module 2014-03-11 21:41:36 +01:00
Frédéric Junod
7b7bc78f57 Merge pull request #1610 from fredj/wms-capabilities
Add ol.format.WMSCapabilities format
2014-03-11 17:04:26 +01:00
Frédéric Junod
2ed3b93f34 Merge pull request #1553 from fredj/geolocation-geom
Add new 'accuracyGeometry'  property to ol.Geolocation
2014-03-11 16:40:24 +01:00
Frederic Junod
a267ed4e52 Use ol.Sphere#circle to create the accuracy 'circle' 2014-03-11 15:42:08 +01:00
Tom Payne
0c8552edbb Add ol.Sphere#circle 2014-03-11 15:28:16 +01:00
Frederic Junod
e62842464c Use accuracyGeometry in geolocation example 2014-03-11 15:14:55 +01:00
Frederic Junod
962ed06717 Add new 'accuracyGeometry' property to ol.Geolocation 2014-03-11 15:13:54 +01:00
Frédéric Junod
7f46a293d2 Merge pull request #1839 from fredj/text-offset
Add offsetX and offsetY properties to ol.style.Text
2014-03-11 14:35:38 +01:00
Tom Payne
0e26ee3181 Merge pull request #1828 from twpayne/frame-state-extern
Prevent renaming of frameState properties
2014-03-11 14:21:54 +01:00
Frederic Junod
4a893f7837 Add offsetX and offsetY properties to ol.style.Text 2014-03-11 14:06:51 +01:00
Paul Spencer
a8f1f74b3a Merge pull request #1835 from pagameba/doc-canvas-immediate
Add and export documentation for ol.render.canvas.Immediate
2014-03-11 08:10:45 -04:00
Paul Spencer
10d855afd4 Add and export documentation for ol.render.canvas.Immediate 2014-03-11 07:48:37 -04:00
Bart van den Eijnden
92b29c7b09 Add possible values of layer for olx.source.MapQuestOptions 2014-03-11 10:38:33 +01:00
Andreas Hocevar
c99f969bb9 Merge pull request #1833 from ahocevar/hit-detection-pointer
Fix the pointer index
2014-03-11 08:30:40 +01:00
Éric Lemoine
a0e4bfa28b Merge pull request #1827 from elemoine/featureoverlay
Use default style function in FeatureOverlay
2014-03-11 07:32:07 +01:00
ahocevar
127cce7973 Fix the pointer index
It has to point to the end of the current block, not to the
beginning of the next block. See L581.
2014-03-10 18:18:41 +01:00
Frederic Junod
924ecba95c Fix coding style 2014-03-10 17:22:35 +01:00
Tom Payne
0335d4aa6a Use oli.View2DState instead of ol.View2DState 2014-03-10 17:19:29 +01:00
Tom Payne
0a3ef09c30 Add oli.View2DState extern 2014-03-10 17:19:11 +01:00
Frederic Junod
2fdae368c2 Check if the EX_GeographicBoundingBox is correctly parsed 2014-03-10 17:18:04 +01:00
Frederic Junod
ea8c004c76 Remove unneeded type cast 2014-03-10 17:13:16 +01:00
Frederic Junod
1c13d6ed69 Add ol.format.WMSCapabilities 2014-03-10 17:06:48 +01:00
Frederic Junod
d7d2b3353d Add ol.xml.makeObjectPropertyPusher 2014-03-10 17:06:48 +01:00
Frederic Junod
2f53c4a3ad Add ol.format.XLink 2014-03-10 17:06:48 +01:00
Frederic Junod
13698d0d06 Add ol.format.XML 2014-03-10 17:06:48 +01:00
Frederic Junod
55a8f9a5ec Remove duplicate files 2014-03-10 17:06:48 +01:00
Frederic Junod
5fba2dd7d5 Move src/ol/parser/* and tests into old directory 2014-03-10 17:06:48 +01:00
Tom Payne
b77f0e7d3a Add ol.geom.MultiPolygon#appendPolygon 2014-03-10 16:53:20 +01:00
Tom Payne
c8bbeca06e Add ol.geom.MultiPolygon#getPolygon 2014-03-10 16:53:20 +01:00
Tom Payne
719384ad14 Tidy up ol.geom.MultiPolygon#getPolygons 2014-03-10 16:53:20 +01:00
Tom Payne
cb27ae5826 Add test for ol.geom.MultiPolygon#getPolygons 2014-03-10 16:53:20 +01:00
Tom Payne
7a51b4c7b6 Add ol.geom.MultiLineString#appendLineString 2014-03-10 16:53:20 +01:00
Tom Payne
7ee4fb8a2e Add ol.geom.MultiLineString#getLineString 2014-03-10 16:53:20 +01:00
Tom Payne
669f21ca29 Construct individual line strings directly from flat coordinates 2014-03-10 16:53:20 +01:00
Tom Payne
ddfce24f05 Add ol.geom.MultiPoint#getPoint 2014-03-10 16:53:20 +01:00
Tom Payne
361d31b596 Construct individual points directly from flat coordinates 2014-03-10 16:53:19 +01:00
Tom Payne
033e2e7dd8 Add ol.geom.MultiPoint#appendPoint 2014-03-10 16:53:19 +01:00
Tom Payne
c2d4ffaba1 Add ol.geom.Polygon#getLinearRing 2014-03-10 16:53:19 +01:00
Tom Payne
03911e6c6b Add ol.geom.Polygon#appendLinearRing 2014-03-10 16:53:19 +01:00
Tom Payne
94cfb3205a Add ol.geom.LineString#appendCoordinate 2014-03-10 16:53:19 +01:00
Tom Payne
470790b811 Check arguments passed to ol.geom.MultiPolygon#setFlatCoordinates 2014-03-10 16:53:19 +01:00
Tom Payne
ee5a9d6a4e Check arguments passed to ol.geom.MultiLineString#setFlatCoordinates 2014-03-10 16:53:19 +01:00
Tom Payne
23dc855c2f Check arguments passed to ol.geom.Polygon#setFlatCoordinates 2014-03-10 16:53:19 +01:00
Bart van den Eijnden
041479f1b7 Add more typedefs for return objects 2014-03-10 16:40:00 +01:00
Bart van den Eijnden
431a4d1725 Restore the exports 2014-03-10 15:40:55 +01:00
Bart van den Eijnden
6800a3290b Port over test case for multiple Query elements 2014-03-10 15:37:29 +01:00
Bart van den Eijnden
33abbfced1 Add support for writing Native 2014-03-10 15:24:00 +01:00
Bart van den Eijnden
4e5e75f525 Add write support for Transaction 2014-03-10 14:58:03 +01:00
Tom Payne
022a7a03e0 Use oli.FrameState instead of ol.FrameState 2014-03-10 14:48:23 +01:00
Tom Payne
8aca7ce140 Add oli.FrameState extern 2014-03-10 14:45:49 +01:00
Tom Payne
6cadc2b9ab Merge pull request #1785 from adube/example-labels
Example labels
2014-03-10 14:11:31 +01:00
Tom Payne
586c4b9cd2 Merge pull request #1746 from sbrunner/fitcoordinates
Fit coordinates on visible map, Center coodinate on positions
2014-03-10 14:08:47 +01:00
Andreas Hocevar
97da6b4874 Merge pull request #1824 from ahocevar/replay-hit-detection
Iterating through the hit detection replay batch fails when geometryRenderFunction returns false
2014-03-10 12:38:25 +01:00
ahocevar
c6ba9787b5 Update the pointer to the next block when reversing
Just reversing the array is not enough, the pointers to the
beginning of the next block must be changed to the reversed
array index.
2014-03-10 12:37:45 +01:00
Éric Lemoine
6047a4dcf6 Use default style function in FeatureOverlay 2014-03-10 11:32:36 +01:00
Tim Schaub
f3c06989b6 Merge pull request #1822 from tschaub/append-first
Always add first segment when appending coordinates.
2014-03-07 11:53:49 -07:00
Tom Payne
7a1e4aa6c8 Merge pull request #1820 from twpayne/fix-multipolygon-get-polygons
Fix calculation of ends in ol.geom.MultiPolygon#getPolygons
2014-03-07 19:50:19 +01:00
Tom Payne
f32d491d45 Fix calculation of ends in ol.geom.MultiPolygon#getPolygons 2014-03-07 19:49:38 +01:00
Tim Schaub
8317317127 Always add first segment when appending coordinates
When we have only a single point, we want to make sure it gets added (fixes #1821).

Because this code doesn't differentiate coordinates that are part of a linestring or linearring from those that are independent points, we always add the first segment (or pair of points).  In addition, coordinates for segments are appended whenever they represent a change in relationship with respect to the extent.  This keeps the code simpler for handling fills and properly capturing intersection points for linestrings.  This could be modified to save a few extra coordinates, but it provides for simpler code at a very minimal cost.
2014-03-07 11:02:25 -07:00
Bart van den Eijnden
2ce92ac6a2 Add write support for BBOX filter 2014-03-07 16:44:24 +01:00
Tom Payne
7da18bd144 Merge pull request #1819 from oterral/fix_anchor
Fix anchor origin calculation
2014-03-07 14:49:14 +01:00
oterral
5028aa3bc3 Fix anchor origin calculation 2014-03-07 13:35:18 +01:00
ahocevar
6fbafef4ad Add a layer with real data to the example 2014-03-07 10:52:50 +01:00
ahocevar
bc79b89c5e Limit shared segment editing
To avoid surprises, we enable shared segment editing only on
segments that have the same vertex coordinates.
2014-03-07 10:52:50 +01:00
ahocevar
97f8fdbd15 Added another linestring to show shared segment editing 2014-03-07 10:52:50 +01:00
ahocevar
42935408fb Keep track of intersecting segments
Because we have nodes sorted by segment distance from the
editing vertex in #handleMouseAtPixel(), it is cheap to create a
hash of intersecting segments there. Now in #handleDragStart(),
we do not need to measure the distance of the vertex to the
segment. Instead, we just test if the segment is in the hash.
2014-03-07 10:52:49 +01:00
Bart van den Eijnden
c05e8d0292 Read the metadata of a FeatureCollection 2014-03-07 10:32:17 +01:00
Marc Jansen
044b8380fa Merge pull request #1817 from marcjansen/fix-modify-example
Close polygon in modify-feature example.
2014-03-07 10:25:47 +01:00
Marc Jansen
8a4fba360b Close polygon in modify-feature example. 2014-03-07 10:07:47 +01:00
Austin Hyde
0e21d2c99d Lazily create ol.defaultFeatureStyleFunction
Besides the slight performance benefit of not prerendering the default
circle style until we need to, this change also allows loading OL3
in browsers that don't support the canvas API (IE 7-8). If the circle
style is rendered on load, the lack of HTMLCanvasElement#getContext
causes IE 7-8 to bomb, regardless of if vector styles are used at all.
2014-03-06 15:31:26 -05:00
Bart van den Eijnden
2310ccdb91 Add reading of TransactionResponse 2014-03-06 19:04:23 +01:00
Tim Schaub
1f30a5f40d Merge pull request #1662 from tschaub/drawing-rings
Add `minPointsPerRing` option to the draw interaction.  By default, polygon drawing cannot be finished until three points have been added.  To allow polygon drawing to finish after only two points have been added, set `minPointsPerRing: 2`.
2014-03-06 09:39:45 -07:00
Tim Schaub
36204faf2f Merge pull request #1754 from tschaub/clip
Track max extent for replay and limit draw instructions outside that extent.
2014-03-06 09:37:43 -07:00
Marc Jansen
e5fe832839 Merge pull request #1814 from marcjansen/no-jsdoc-googx
Exclude `googx/dom/fullscreen.js` from API-docs
2014-03-06 17:12:28 +01:00
Marc Jansen
4107b140a6 Adjust parameters of jsdoc-call in build.py.
The `src`-directory is no longer defined on the commmandline
and the `index.md` as explicit source file is now the first
argument.
2014-03-06 16:08:46 +01:00
Marc Jansen
32524d186a Add explicit includes/excludes to jsdoc config. 2014-03-06 16:06:51 +01:00
Frédéric Junod
68f5adc284 Merge pull request #1687 from fredj/ol.layer.Heatmap
Add ol.layer.heatmap
2014-03-06 15:00:13 +01:00
Tom Payne
d1a85502a4 Merge pull request #1810 from twpayne/rbush-get-in-extent
Rename ol.structs.RBush#getAllInExtent to getInExtent
2014-03-06 14:40:01 +01:00
Tom Payne
e5ee44f8ad Rename ol.structs.RBush#getAllInExtent to getInExtent 2014-03-06 14:30:56 +01:00
Frédéric Junod
6fb98851d9 Merge pull request #1806 from fredj/overlays-events
Set map in 'add' and 'remove' event handler
2014-03-06 13:33:47 +01:00
Frederic Junod
3bc0a6e6f0 Don't use Uint32Array for IE compatibility 2014-03-06 13:28:18 +01:00
Stéphane Brunner
9789b1c1e3 Add center example 2014-03-06 10:54:39 +01:00
Stéphane Brunner
015c660386 Add ol.View2D#centerOn 2014-03-06 10:54:15 +01:00
Stéphane Brunner
9984ca109c Add ol.View2D#fitGeometry 2014-03-06 10:54:04 +01:00
Bart van den Eijnden
7ebf97406d Add support for writing WFS GetFeature 2014-03-06 09:24:39 +01:00
Frederic Junod
c32d8a2e53 Add ol.layer.Heatmap class and example 2014-03-06 09:14:03 +01:00
Frederic Junod
9d05e08b49 Dispatch 'render' event in renderer.canvas.VectorLayer
The context property of the event only contains the vector rendering.
2014-03-06 09:14:03 +01:00
Frederic Junod
f0f2a2d2b0 Set control map in 'add' and 'remove' event handler 2014-03-06 09:03:38 +01:00
Frederic Junod
3dc9d296eb Set interaction map in 'add' and 'remove' event handler 2014-03-06 09:01:50 +01:00
Frederic Junod
9d8243a772 Set overlay map in 'add' and 'remove' event handler 2014-03-06 09:00:00 +01:00
Tim Schaub
8c9d22c5e5 Merge pull request #1797 from tschaub/convolution-kernel
Example applying a convolution kernel to an image.
2014-03-05 17:27:54 -07:00
Tim Schaub
ed3c4a9cea Merge pull request #1758 from tschaub/get-features
Rename vector source methods.
2014-03-05 17:27:36 -07:00
Tim Schaub
50001132be Transform extent coordinates before clipping 2014-03-05 13:27:40 -07:00
Tim Schaub
a18593ee10 Support minPointsPerRing and default to 3 2014-03-05 12:58:03 -07:00
Tim Schaub
2e47777794 Rename getAllFeaturesAtCoordinate to getFeaturesAtCoordinate 2014-03-05 12:32:09 -07:00
Tim Schaub
30dc8195ca Rename getAllFeatruesInExtent to getFeaturesInExtent 2014-03-05 12:31:09 -07:00
Tim Schaub
333e4a9625 Rename getAllFeatures to getFeatures 2014-03-05 12:29:24 -07:00
Bart van den Eijnden
30865c2a42 Merge pull request #1793 from bartvde/gml-write
Add write support for ol.format.GML (r=@ahocevar)
2014-03-05 16:55:28 +01:00
Bart van den Eijnden
dd9311e79e Revert to cloning the context object 2014-03-05 16:44:01 +01:00
Bart van den Eijnden
75f139bb27 Use a single node factory for more multi geometries 2014-03-05 16:44:01 +01:00
Bart van den Eijnden
e1b2af6cde Combine surface/polygon and linestring/curve writers 2014-03-05 16:44:01 +01:00
Bart van den Eijnden
718b54c292 Do not clone the context for every feature 2014-03-05 16:44:01 +01:00
Bart van den Eijnden
ba2d35fc57 Cache serializers on the context 2014-03-05 16:44:01 +01:00
Bart van den Eijnden
d7f40c11e8 Do not use ol.xml.pushSerializeAndPop for single items 2014-03-05 16:44:01 +01:00
Bart van den Eijnden
16a09930fb Use ol.format.XSD.readNonNegativeIntegerString instead of parseInt 2014-03-05 16:44:01 +01:00
Bart van den Eijnden
64060795ce Use const for schema location 2014-03-05 16:44:00 +01:00
Bart van den Eijnden
2bc5e462d1 Use more intelligent node factories, less duplicate code 2014-03-05 16:44:00 +01:00
Bart van den Eijnden
9b4fc06a5b Finish write support for features 2014-03-05 16:44:00 +01:00
Bart van den Eijnden
8dce3249d6 Implement writeFeatures 2014-03-05 16:44:00 +01:00
Bart van den Eijnden
3e09ea4a00 Finish off writeGeometry 2014-03-05 16:44:00 +01:00
Bart van den Eijnden
6cd9e4bcf4 Add write support for gml:MultiCurve 2014-03-05 16:44:00 +01:00
Bart van den Eijnden
86d90d2f8a Add write support for gml:MultiPolygon 2014-03-05 16:44:00 +01:00
Bart van den Eijnden
414c6e2a12 Add write support for gml:MultiLineString 2014-03-05 16:44:00 +01:00
Bart van den Eijnden
a79f8442c7 Add write support for gml:MultiPoint 2014-03-05 16:43:59 +01:00
Bart van den Eijnden
c4c53a7ac3 Add write support for gml:Curve 2014-03-05 16:43:59 +01:00
Bart van den Eijnden
a6d6317d9e Serialize polygon as surface 2014-03-05 16:43:59 +01:00
Bart van den Eijnden
cbb38c10e0 Add write support for gml:MultiSurface 2014-03-05 16:43:59 +01:00
Bart van den Eijnden
476bd901f0 Add write support for gml:Polygon 2014-03-05 16:43:59 +01:00
Bart van den Eijnden
5240929a53 Correct axis order for gml:pos 2014-03-05 16:43:59 +01:00
Bart van den Eijnden
37a78dc753 Use correct axis order in write 2014-03-05 16:43:59 +01:00
Bart van den Eijnden
083d8d9890 Add write support for gml:LineString 2014-03-05 16:43:58 +01:00
Bart van den Eijnden
717db8b788 Add write support for gml:Point 2014-03-05 16:43:58 +01:00
Frédéric Junod
e0d7470dac Merge pull request #1804 from fredj/box-text
Fix ol.render.Box text
2014-03-05 13:58:05 +01:00
Frederic Junod
db01363c10 Set text style in ol.render.Box 2014-03-05 10:33:34 +01:00
Frederic Junod
08d6e060fa Fix coding style 2014-03-05 10:33:07 +01:00
Tom Payne
189ba34955 Merge pull request #1802 from twpayne/kml-icon-anchor
Fix KML icon anchor origin
2014-03-04 18:06:26 +01:00
Tom Payne
d2a52ba56d Fix KML anchor origin 2014-03-04 16:38:33 +01:00
Tom Payne
6c83189574 Merge pull request #1801 from twpayne/osm-xml-way-id
Set way ids in ol.format.OSMXML
2014-03-04 16:14:31 +01:00
Tom Payne
c06484344e Hoist var declaration 2014-03-04 16:04:52 +01:00
Tom Payne
d46a644c3a Set way ids in ol.format.OSMXML 2014-03-04 16:04:39 +01:00
Tom Payne
44ac3e6b42 Merge pull request #1800 from jachym/patch-1
setState never occures
2014-03-04 13:43:42 +01:00
Jachym Cepicky
be13ca635e setState never occures
Two changes for better parsing of non-existing input sources:

1 - use goog.isDefAndNotNull(source) in the condition (null is also considered as valid source now)
2 - call setState before goog.asserts.fail
2014-03-04 13:01:27 +01:00
Frédéric Junod
d7297795ee Merge pull request #1799 from fredj/mapquest-logo
Use protocol relative logo in ol.source.MapQuest
2014-03-04 11:45:18 +01:00
Frederic Junod
39427cf691 Use protocol relative logo in ol.source.MapQuest 2014-03-04 10:28:05 +01:00
Tom Payne
e6412e13fb Merge pull request #1782 from twpayne/caramenter-hidpi
Add support for Carmenta Server hi-DPI WMS requests
2014-03-03 17:49:24 +01:00
Frédéric Junod
7fd3e2dc7e Merge pull request #1794 from fredj/osmxml-format
Add ol.format.OSMXML and ol.source.OSMXML
2014-03-03 14:39:56 +01:00
Frederic Junod
6ab3f6e175 Add ol.format.OSMXML and ol.source.OSMXML 2014-03-03 14:28:13 +01:00
Tom Payne
2482a3fb9f Add support for Carmenta Server hi-DPI WMS requests 2014-03-03 14:18:24 +01:00
Tom Payne
35349764d9 Merge pull request #1766 from twpayne/kml-style-url
Handle out-of-order and shared Styles and styleUrls in KML
2014-03-03 10:55:37 +01:00
Tom Payne
07eff0181b Merge pull request #1788 from twpayne/interpolate-m
getCoordinateAtM for MultiLineStrings
2014-03-03 09:39:00 +01:00
Tom Payne
c2df9d45a5 Merge pull request #1787 from twpayne/exports-clean-up
Exports clean-up
2014-03-03 09:38:38 +01:00
Tim Schaub
f3b615299f Example applying a convolution kernel to an image 2014-03-02 22:56:50 -07:00
ahocevar
e9c2b0e4c6 Merge pull request #1790 from ahocevar/simpliy-google-example
Simplify the google-map example
2014-03-02 19:41:02 +01:00
ahocevar
caf59eea8f Simplify the google-map example
By creating the ol3 map div in the html, there is no need any
more to wait for the custom GMaps control to append the ol3 map
to its parent. This also fixes an issue that sometimes prevented
the ol3 map to appear, when the GMaps tiles were loaded before
the custom control's div was appended to its parent.
2014-03-02 15:56:21 +01:00
Tom Payne
b2aa9bb19f Export ol.DragBoxEvent coordinate as a property, not a function 2014-03-02 12:24:09 +01:00
Tom Payne
95674a5a4c Export ol.render.canvas.Immediate#setTextStyle 2014-03-02 12:20:14 +01:00
Tom Payne
ddc990500a Sort exports files alphabetically 2014-03-02 12:19:28 +01:00
Tom Payne
8125b4a847 Add ol.geom.MultiLineString#getCoordinateAtM 2014-03-02 12:14:52 +01:00
Tom Payne
296c83fa36 Add ol.geom.flat.lineStringsCoordinateAtM 2014-03-02 12:11:18 +01:00
Tom Payne
85f08d1092 Add documentation to ol.geom.LineString#getCoordinateAtM 2014-03-02 11:38:17 +01:00
Tom Payne
2d9091856c Move layout test in ol.geom.LineString 2014-03-02 11:35:15 +01:00
Tom Payne
c3cad6b6fa Merge pull request #1786 from twpayne/catch-cors-exceptions
Catch CORS exceptions when loading icons
2014-03-01 17:07:08 +01:00
Tom Payne
fb1c66525c Catch CORS exceptions when loading icons 2014-03-01 13:56:44 +01:00
Tom Payne
fe0a32c4db Merge pull request #1759 from twpayne/interpolate-m
Interpolate-M
2014-02-28 17:35:46 +01:00
Tom Payne
fbcb787e8b Merge pull request #1783 from twpayne/first-last-coordinate
Get first and last coordinate
2014-02-28 17:34:13 +01:00
Alexandre Dubé
ae6f557cbc Fix vector-labels example
Typo fixes, add 1 more font
2014-02-28 11:25:07 -05:00
Alexandre Dubé
e3d9b23170 Update vector-labels example
Add note about the 'Text/Wrap' option currently not working.
2014-02-28 10:58:17 -05:00
Alexandre Dubé
3eabcc2565 Remove unused 'align' column from geojson 2014-02-28 10:58:17 -05:00
Alexandre Dubé
1e1020e90d Update vector-labels example
Add forms to let the user change the labels as they want.
Text 'Wrap' doesn't work properly. '\n' are supposed to allow
line to break.
2014-02-28 10:58:17 -05:00
Alexandre Dubé
0c63c76dea Add vector label example 2014-02-28 10:58:17 -05:00
Alexandre Dubé
6cd214c1e4 Add geojson sample files 2014-02-28 10:58:17 -05:00
Frederic Junod
bca9512478 Use ol.geom.LineString#getCoordinateAtM in igc example 2014-02-28 16:33:02 +01:00
Tom Payne
c0f9b1de19 Use binary search in ol.geom.flat.lineStringCoordinateAtM 2014-02-28 16:33:02 +01:00
Tom Payne
1c21316d20 Add tests for ol.geom.LineString#getCoordinateAtM 2014-02-28 16:33:02 +01:00
Tom Payne
c218d5d4e8 Add ol.geom.LineString#getCoordinateAtM 2014-02-28 16:33:02 +01:00
Tom Payne
6781a6cef3 Add ol.geom.flat.lineStringCoordinateAtM 2014-02-28 16:30:03 +01:00
Tom Payne
5803faadcb Merge pull request #1784 from twpayne/interior-point
Export getInteriorPoint(s) methods
2014-02-28 16:21:41 +01:00
Tom Payne
de46a5a053 Add ol.geom.MultiPolygon#getInteriorPoints 2014-02-28 16:10:24 +01:00
Tom Payne
0f884b5d03 Add ol.geom.Polygon#getInteriorPoint 2014-02-28 16:10:01 +01:00
Tom Payne
a1e8ff0a8f Add ol.geom.SimpleGeometry#getLastCoordinate 2014-02-28 15:36:18 +01:00
Tom Payne
7ca47e3b2a Add ol.geom.SimpleGeometry#getFirstCoordinate 2014-02-28 15:36:06 +01:00
ahocevar
b47e6a6cf4 Merge pull request #1771 from ahocevar/tooltip-box
Fix zoom in/out tooltip sizing for box-sizing css resets
2014-02-28 14:59:50 +01:00
Tom Payne
df3ff9e546 Merge pull request #1781 from twpayne/format-feature
Rename ol.format.Format to ol.format.Feature
2014-02-28 14:47:19 +01:00
Tom Payne
8e402371d5 Don't export ol.format.Feature#readProjection 2014-02-28 14:01:46 +01:00
Tom Payne
60bba9aa12 Merge pull request #1778 from twpayne/render-sync-forces-render
Make renderSync always force a render
2014-02-28 13:53:33 +01:00
Tom Payne
56b6913a01 Rename ol.format.XML to ol.format.XMLFeature 2014-02-28 13:13:11 +01:00
Tom Payne
7e32676a9e Rename ol.format.Text to ol.format.TextFeature 2014-02-28 13:11:57 +01:00
Tom Payne
87cf424029 Rename ol.format.JSON to ol.format.JSONFeature 2014-02-28 13:09:14 +01:00
Tom Payne
8ad4b292b7 Rename ol.format.Binary to ol.format.BinaryFeature 2014-02-28 13:07:49 +01:00
Tom Payne
ea8944c755 Rename ol.format.Format to ol.format.Feature 2014-02-28 13:05:57 +01:00
Frédéric Junod
56c45217df Merge pull request #1780 from fredj/unused-require
Remove unused ol.FeatureOverlay require
2014-02-28 10:42:46 +01:00
Frédéric Junod
88ea2bebbd Merge pull request #1777 from fredj/polyline-cleanup
ol.format.Polyline cleanup
2014-02-28 10:40:11 +01:00
Frederic Junod
01288618cf Remove unused ol.FeatureOverlay require 2014-02-28 10:35:10 +01:00
Marc Jansen
7910e98c7a Merge pull request #1779 from marcjansen/build.py-help
Minor change of wording in `build.py help`.
2014-02-28 10:33:55 +01:00
Marc Jansen
fbecd9a6b9 Minor change of wording in build.py help. 2014-02-28 10:31:53 +01:00
Tom Payne
9a7261d6b3 Remove ol.Map#withFrozenRendering 2014-02-27 19:01:39 +01:00
Tom Payne
ad29e6bceb Don't use withFrozenRendering in ol.interaction.Select#handleMapBrowserEvent 2014-02-27 19:01:21 +01:00
Tom Payne
73be72380b Don't use withFrozenRendering in ol.interaction.DragRotateAndZoom#handleDragEnd 2014-02-27 19:01:15 +01:00
Tom Payne
c9c8497b7e Don't use withFrozenRendering in ol.interaction.Interaction.zoomWithoutConstraints 2014-02-27 19:01:07 +01:00
Tom Payne
e0c8b57e11 Don't use withFrozenRendering in ol.interaction.Interaction.rotateWithoutConstraints 2014-02-27 19:01:01 +01:00
Tom Payne
dd83952c28 Make renderSync always force a render 2014-02-27 18:59:05 +01:00
Frederic Junod
7f8d4937f5 Remove unused ol.format.Polyline.decodeUnsignedInteger function 2014-02-27 13:36:08 +01:00
Frederic Junod
c31f70bf08 Remove unused ol.format.Polyline.encodeSignedInteger function 2014-02-27 13:36:08 +01:00
Frederic Junod
040b954e15 Remove unused ol.format.Polyline.encodeFloat function 2014-02-27 13:36:08 +01:00
Frederic Junod
11f718ab22 Remove unused ol.format.Polyline.decodeSignedInteger function 2014-02-27 13:36:08 +01:00
Frederic Junod
b2b5e60f87 Remove unused ol.format.Polyline.decodeFloat function 2014-02-27 13:36:08 +01:00
Frederic Junod
6ad63b113d Improve code and apidoc formating 2014-02-27 13:36:08 +01:00
Tom Payne
c6df670a55 Merge pull request #1776 from twpayne/fix-full-screen-test
Don't check for full screen support at load time
2014-02-27 13:33:14 +01:00
Tom Payne
94a3504252 Revert "Add ol.BrowserFeature.HAS_FULLSCREEN constant"
This reverts commit 5a940c207a.

Detection of full screeen support requires the document to have a body.
This is not the case if ol3 is loaded in the head.  Therefore, defer the
test for full screen support to when it is needed.
2014-02-27 13:28:23 +01:00
Frédéric Junod
99a00b1986 Merge pull request #1767 from fredj/ie11-fullscreen
Add fullscreen API support to IE11
2014-02-27 12:12:36 +01:00
Tom Payne
23f6fc0d0f Merge pull request #1732 from twpayne/render-sync
Switch to asynchronous rendering by default
2014-02-27 11:03:20 +01:00
Frédéric Junod
b8d7bc93b2 Merge pull request #1772 from fredj/doc
Minor doc updates
2014-02-27 10:57:49 +01:00
Frederic Junod
ac9fe664e0 Add fullscreen API support to IE11 2014-02-27 09:31:42 +01:00
Frederic Junod
5a940c207a Add ol.BrowserFeature.HAS_FULLSCREEN constant 2014-02-27 09:30:05 +01:00
Frederic Junod
2f50fcc56c Better ol.Geolocation documentation 2014-02-27 09:25:50 +01:00
Frederic Junod
431ef6ef07 Add newline in quick start doc 2014-02-27 09:23:23 +01:00
Frederic Junod
2f73816916 Fix path to ol.css 2014-02-27 09:23:00 +01:00
ahocevar
3544f70604 Explicit box model definition for box model dependent sizing
The zoom in/out tooltips are clipped when a css reset sets the
box-sizing to anything other than content-box. This breaks the
sizing of these tooltips, because they rely on content-box
sizing. This issue can e.g. be seen when using a bootstrap 3.x
bootstrap.css
2014-02-26 19:22:24 +01:00
ahocevar
f9a9f70a43 Merge pull request #1770 from ahocevar/export-circle
Export #drawCircleGeometry()
2014-02-26 18:36:46 +01:00
Tom Payne
8a8de9d3cc Merge pull request #1769 from twpayne/clean-ups
Trivial clean-ups
2014-02-26 18:27:35 +01:00
Antoine Abt
c915e1209a Merge pull request #1761 from tonio/chrome_buttons
Fix button tips not disappearing on Chrome
2014-02-26 18:24:29 +01:00
ahocevar
bd22ebca45 Export #drawCircleGeometry()
Especially with the immediate API, it is convenient to be able
to draw cirlces.
2014-02-26 18:22:44 +01:00
Tom Payne
1a81227aef Remove trailing whitespace 2014-02-26 17:58:43 +01:00
Tom Payne
c5f7d08694 Remove stray comma 2014-02-26 17:56:22 +01:00
Tom Payne
7bbef0f0ea Read Icon hrefs as URIs 2014-02-26 17:37:49 +01:00
Tom Payne
b3c527166d Be more tolerant of out-of-spec KML files 2014-02-26 17:37:49 +01:00
Tom Payne
42c832154b Refactor KML style handling to handle shared Styles and StyleMaps 2014-02-26 17:37:49 +01:00
Frédéric Junod
74dd99485a Merge pull request #1751 from elemoine/vectorlayer
Fix type error in ol.layer.Vector
2014-02-26 17:24:04 +01:00
Éric Lemoine
e43a8d116e Fix type error in ol.layer.Layer 2014-02-26 16:44:52 +01:00
Frederic Junod
69749dee55 Fix type error in ol.layer.Vector 2014-02-26 16:39:21 +01:00
Tom Payne
0daa2b1781 Merge pull request #1757 from twpayne/interim-tiles-on-error
Add option to use interim tiles on tile errors
2014-02-26 16:36:52 +01:00
Tom Payne
d42a262814 Add out-of-order shared Style and StyleMap test 2014-02-26 16:08:01 +01:00
Tom Payne
e3980078d9 Merge pull request #1764 from bentrm/win-build
Updated build script to run target integration-test in Win
2014-02-26 13:22:04 +01:00
Benjamin Thurm
cb8d9d9b68 Update Win build defaults with min fallbacks 2014-02-26 11:42:34 +01:00
Antoine Abt
d53fa8f45a Fix chrome not to blur on mouseout/focusout
may be related to https://code.google.com/p/chromium/issues/detail?id=321264 ?
2014-02-26 11:24:54 +01:00
Antoine Abt
7426da61ea Make ZoomToExtent listen on button click
& not its container
2014-02-26 11:15:03 +01:00
Benjamin Thurm
1253765c89 Remove unused import and variable 2014-02-26 10:28:09 +01:00
Benjamin Thurm
a19e992a5b Run files via shell commands for Win compatibility 2014-02-26 09:53:56 +01:00
Tim Schaub
af1bd0228c Function for applying a 2d transform to an extent 2014-02-25 22:07:16 -07:00
Tim Schaub
2750f53fda Clip to max extent 2014-02-25 21:47:57 -07:00
Tim Schaub
50822a4d58 Skip coordinates that don't affect the rendered extent
Segments that intersect the replay group's extent are drawn.  Any segment that represents a change in coordinate-extent relationship is drawn.  This maintains the left/right relationship (or cross product) between points in the rendered extent and every rendered segment.

Still left undone: clip the replay group's rendering to the max extent.
2014-02-25 21:47:57 -07:00
Tim Schaub
6b018bbaf9 Testing segment intersection with extent
If needed, this function can be modified to take two additional coorinates that will be set to the intersection points.
2014-02-25 21:47:57 -07:00
Tim Schaub
cb11959f01 Determining coordinate relationship to extent 2014-02-25 21:47:57 -07:00
Tim Schaub
f4746687e8 Keep track of max extent for replay 2014-02-25 21:47:57 -07:00
Tim Schaub
ee2485534a Add an example that renders a simple fractal
This works at resolutions where simplification is significantly reducing the number of points in the line.  At high resolutions, navigation becomes unresponsive.  Limiting draw instructions to a replay group's extent will fix this.
2014-02-25 21:47:56 -07:00
Tim Schaub
667f4278b3 Merge pull request #1748 from tschaub/roughly
Fix test failures on Chrome 33.  The trig functions in V8 have changed, and are may change again (see https://code.google.com/p/v8/issues/detail?id=3006 for the full story).  As a result, we no longer rely on Vincenty for antipodal distance calculations (not recommended anyway), and we use a very low precision match for testing cosine distance on a sphere.
2014-02-25 15:39:31 -07:00
Tom Payne
69addbca87 Merge pull request #1749 from twpayne/windows-newlines
Generate proper line endings on Windows
2014-02-25 22:26:54 +01:00
Tom Payne
face69cda9 Remove reference to stale build/src/external/src/types.js target 2014-02-25 22:16:45 +01:00
Tom Payne
d0c83c74d2 Update to the latest version of pake 2014-02-25 22:02:35 +01:00
Bart van den Eijnden
a78b25cdca Merge pull request #1760 from bartvde/gmlfix2
Get rid of unneccessary if else statements in the GML format (r=@ahocevar)
2014-02-25 20:14:13 +01:00
Bart van den Eijnden
a2c01b1090 Get rid of unneccessary if else statements in the GML format 2014-02-25 19:58:15 +01:00
Bart van den Eijnden
c945768e0e Merge pull request #1752 from bartvde/gml-rewrite
Add format for reading GML v3 (r=@ahocevar)
2014-02-25 19:30:56 +01:00
Bart van den Eijnden
28b12e1b28 Remove unused ol.format.GML.NAMESPACE_URIS_ 2014-02-25 19:13:20 +01:00
Bart van den Eijnden
272a3762d6 Make sure function naming convention is consistent 2014-02-25 18:53:30 +01:00
Bart van den Eijnden
182eba5890 Use goog.isDef where possible 2014-02-25 17:41:14 +01:00
Bart van den Eijnden
7d02c4a371 Handle undefined value at readGeometryFromNode instead 2014-02-25 17:28:36 +01:00
Bart van den Eijnden
46a6f96032 Handle that ol.xml.pushParseAndPop can return undefined 2014-02-25 17:25:14 +01:00
Bart van den Eijnden
8d623d765a Do not create parsers in wfs namespace if not needed 2014-02-25 17:11:24 +01:00
Bart van den Eijnden
6256bf1989 Add feature id (fid) parsing 2014-02-25 16:28:10 +01:00
Bart van den Eijnden
98368a554d Use ol.xml.pushParseAndPop instead 2014-02-25 14:58:16 +01:00
Tom Payne
63e5ec9020 Merge pull request #1756 from twpayne/clean-up-preload
Move preload default value to where it is used
2014-02-25 14:51:22 +01:00
Bart van den Eijnden
346aa730e5 Merge pull request #5 from ahocevar/gml-context
Always use a context for GML parsing
2014-02-25 14:48:10 +01:00
ahocevar
71e1dc9f45 Always use a context for GML parsing
The context is at the bottom of the object stack. All entry
points to parsing (#readGeometryFromNode(),
#readFeaturesFromNode()) set up the context now, and parsers
always access the context at index 0 of the objectStack.
2014-02-25 14:33:20 +01:00
Bart van den Eijnden
679b152852 Add srsName info at index 0 in the stack 2014-02-25 13:58:19 +01:00
Bart van den Eijnden
08e2ccb59a Handle srsName better 2014-02-25 13:22:15 +01:00
Tom Payne
0118c3ec17 Activate useInterimTilesOnError in ol.renderer.dom.TileLayer 2014-02-25 13:12:23 +01:00
Tom Payne
8bd44b2fc6 Activate useInterimTilesOnError in ol.renderer.webgl.TileLayer 2014-02-25 13:09:10 +01:00
Tom Payne
0c7a19a307 Activate useInterimTilesOnError in ol.renderer.canvas.TileLayer 2014-02-25 12:59:09 +01:00
Bart van den Eijnden
cbe71fefd0 Merge pull request #4 from ahocevar/gml-stack
Use stack instead of recursion
2014-02-25 09:45:10 +01:00
ahocevar
b4454535f7 Use stack instead of recursion for features
This also allows us to work without a local copy of the
namespace URIs.
2014-02-25 09:34:38 +01:00
Tim Schaub
bfc42ffa62 More realistic precision for cosine distance results
Chris Veness' discussion of using the spherical law of cosines (http://www.movable-type.co.uk/scripts/latlong.html) suggests it gives well-conditioned results "around 1 metre" in JavaScript (this assumes a sphere with 6,371km radius).

In Chrome 33, Math.pow(Math.cos(Math.PI / 4), 2) yields 0.4999999999999999.  When we take the arccosine of twice this, we get something significantly different than zero.  Multiplying by 6371 means we can't assert that this is within 1e-9 of zero.
2014-02-24 15:54:17 -07:00
Tim Schaub
ac83bb78f1 More repeated test cases 2014-02-24 15:02:30 -07:00
Tim Schaub
b01e90b942 Removing repeated test cases 2014-02-24 14:59:18 -07:00
Tim Schaub
7f1a13361b Remove antipodal test cases
The Vincenty formula can fail to converge for antipodal points (see http://en.wikipedia.org/wiki/Vincenty's_formulae#Nearly_antipodal_points), so those test cases are removed.  These tests fail with the latest V8 due to optimization of trig functions with lookup tables.  For example, Math.cos(Math.PI / 2) is no longer calculated based on the value of Math.PI / 2 (which is different than the actual value of π / 2).  Instead, values close to multiples of π / 2 are determined to be 0 (which is arguably what you want).  Previously the tests were relying on very small numbers being returned in this case.
2014-02-24 14:53:00 -07:00
Tim Schaub
2537fb4574 Fixing test failure on Chrome 33 2014-02-24 14:53:00 -07:00
Tom Payne
d0a352816c Add useInterimTilesOnError property to ol.layer.Tile 2014-02-24 21:30:39 +01:00
Tom Payne
8c665c0bb1 Move preload property default value into ol.renderer.Layer#manageTilePyramid 2014-02-24 21:26:11 +01:00
Bart van den Eijnden
0a71b5bbaa Rename NAMESPACE_URIS_ to namespaceURIs_ 2014-02-24 16:59:08 +01:00
Bart van den Eijnden
d2c88c1ea3 Use readFeatureFromNode instead 2014-02-24 16:49:35 +01:00
Bart van den Eijnden
0a93bb38f8 Copy NAMESPACE_URIS_ array to the instance 2014-02-24 16:01:15 +01:00
Tom Payne
53d9335282 Merge pull request #1753 from oterral/fix_typo
Fix option name zoomInTipLabel
2014-02-24 15:37:47 +01:00
oterral
7e842b0850 Fix option name zoomInTipLabel 2014-02-24 15:26:13 +01:00
Bart van den Eijnden
831d233874 Move parseGeometry workaround into the tests 2014-02-24 15:25:54 +01:00
Bart van den Eijnden
a095d41ac4 Add support for axis orientation 2014-02-24 15:25:54 +01:00
Bart van den Eijnden
7145179c30 Port over more test cases 2014-02-24 15:25:54 +01:00
Bart van den Eijnden
dd8d69f976 Call setGeometryName on the feature 2014-02-24 15:25:54 +01:00
Bart van den Eijnden
b2885217df Add feature parsing from WFS FeatureCollection 2014-02-24 15:25:54 +01:00
Bart van den Eijnden
796e7be623 Add preliminary read support for features 2014-02-24 15:25:53 +01:00
Bart van den Eijnden
54426133ab Add test case for gml:LinearRing 2014-02-24 15:25:53 +01:00
Bart van den Eijnden
9e44e79789 Add support for gml:MultiSurface 2014-02-24 15:25:53 +01:00
Bart van den Eijnden
e479bd142f Add gml:MultiCurve support 2014-02-24 15:25:53 +01:00
Bart van den Eijnden
086828ba14 Add support for gml:MultiPolygon 2014-02-24 15:25:53 +01:00
Bart van den Eijnden
a484452207 Add support for gml:MultiLineString 2014-02-24 15:25:53 +01:00
Bart van den Eijnden
aa4d798dc7 Add gml:MultiPoint parsing 2014-02-24 15:25:53 +01:00
Bart van den Eijnden
95bbb849bb Deal with srsDimension 2014-02-24 15:25:53 +01:00
Bart van den Eijnden
877d5a445e Add parser for gml:Envelope 2014-02-24 15:25:52 +01:00
Bart van den Eijnden
85fe1bf737 Add parsing for gml:Curve 2014-02-24 15:25:52 +01:00
Bart van den Eijnden
e845d6558c Add parsing for gml:Surface 2014-02-24 15:25:52 +01:00
Bart van den Eijnden
ae1e660ab4 Add geometry parsing for point, line, polygon 2014-02-24 15:25:52 +01:00
ahocevar
28d0d82253 Merge pull request #1716 from ahocevar/gpx-write
Write support for ol.format.GPX
2014-02-24 14:23:16 +01:00
ahocevar
3a560c9843 Put jsdoc comment into effect 2014-02-24 14:14:13 +01:00
ahocevar
bb38771096 No magic for namespace URI 2014-02-24 14:13:41 +01:00
ahocevar
c1a966bb6f namespaceURI can be null, but not undefined 2014-02-24 13:55:20 +01:00
Tom Payne
f028befdf9 Merge pull request #1739 from twpayne/rotate-with-map
Allow icons to be rotated with the map
2014-02-24 13:06:48 +01:00
Antoine Abt
e213bccef7 Merge pull request #1740 from tonio/interaction_api
Editing interaction api cleanup
2014-02-24 08:46:49 +01:00
Tom Payne
55755871c2 Use write to avoid newline problems 2014-02-23 14:45:30 +01:00
Tom Payne
8e9d5fb0e9 Always write binary files in mode wb 2014-02-23 14:33:38 +01:00
Tom Payne
48b85316bb Always read binary files with mode rb 2014-02-23 14:33:38 +01:00
Tom Payne
3aedca7bd6 Always read line-by-line with mode rU 2014-02-23 13:50:54 +01:00
ahocevar
7b56abdac7 Get rid of compiler warnings 2014-02-23 01:50:59 +01:00
Tim Schaub
9d06dd82ff Merge pull request #1745 from tschaub/linked-css
Don't inject stylesheets with JavaScript.
2014-02-22 09:08:20 -07:00
Tim Schaub
e633f7f8c1 Don't inject stylesheets with JavaScript
This reverts 4d619d71b1 (see #1527), going back to what we had after e13075f6ff (see #881).

To avoid the 404 in the hosted examples, the css is copied to the same relative path when hosted as during development.
2014-02-21 18:45:46 -07:00
ahocevar
696425af36 Documentation and cleanup 2014-02-21 22:49:33 +01:00
ahocevar
480a6a85ba Add trk serialization for ol.format.GPX 2014-02-21 20:27:04 +01:00
ahocevar
791cb2415b Simplify annotations 2014-02-21 20:22:44 +01:00
ahocevar
1354d8ce78 Added rte serialization for ol.format.GPX 2014-02-21 16:55:48 +01:00
ahocevar
13b4f07cd9 New makeChildrenAppender function and Node factory refactoring
The makeChildAppender function is used for adding a node of a
type with maxOccurs=1. For adding nodes of a type with
maxOccurs>1, the new makeChildrenAppender function was added.

With this new function, it turned out that more convenience for
creating node factories is required. The makeChildNodeFactory
function was renamed to makeSimpleNodeFactory, and it now can
create node factories where not only the namespace, but also the
node name can be fixed.
2014-02-21 16:55:05 +01:00
Tom Payne
3c32bbdce3 Document rotateWithView option 2014-02-21 14:32:15 +01:00
Tom Payne
7a34929b15 Rename rotateWithMap to rotateWithView 2014-02-21 14:32:06 +01:00
Antoine Abt
a971928bbe Add features option to draw interaction 2014-02-21 13:41:07 +01:00
Tom Payne
a17055a419 Activate rotateWithMap option in ol.render.canvas.Immediate 2014-02-21 12:57:34 +01:00
Tom Payne
0e90cf02ad Pass view rotation to ol.render.canvas.Immediate 2014-02-21 12:57:09 +01:00
Antoine Abt
ec832bdf6e Modify interaction takes style & features options
Instead of a FeatureOverlay
2014-02-21 12:35:30 +01:00
Tom Payne
1d2c88efb9 Merge pull request #1717 from twpayne/binary-format
Add ol.format.Binary
2014-02-21 12:27:13 +01:00
Bart van den Eijnden
591e4b56df Merge pull request #1737 from bartvde/multipolygon
Implement setPolygons on ol.geom.MultiPolygon (r=@twpayne)
2014-02-21 12:24:13 +01:00
Antoine Abt
7cea6f3240 Make select interaction create its FeatureOverlay
You can now configure it with a `style` option.
2014-02-21 11:59:43 +01:00
Tom Payne
222fafcb77 Activate rotateWithMap option in ol.render.canvas.Replay 2014-02-21 11:57:11 +01:00
Tom Payne
fe420ce1eb Pass view rotation to replay 2014-02-21 11:56:34 +01:00
Bart van den Eijnden
9bade5ce87 Implement setPolygons on ol.geom.MultiPolygon 2014-02-21 11:28:18 +01:00
Tom Payne
27c5ab0312 Replace subtractViewRotation with rotateWithMap 2014-02-21 11:21:20 +01:00
Éric Lemoine
fe159aa7fa Merge pull request #1726 from oterral/fix_anchororigin
Add anchorOrigin option in ol.style.Icon
2014-02-21 09:24:23 +01:00
oterral
0a6390fb21 Add anchorOrigin option in ol.style.Icon 2014-02-21 09:09:59 +01:00
ahocevar
b4043398eb Added wpt serialization for ol.format.GPX 2014-02-21 07:18:42 +01:00
ahocevar
45860f4552 Framework for serializing structures to XML
This adds several helper functions for serializing to XML:

* ol.xml.serialize: Counterpart to ol.xml.parse. By splitting
  the serialization process up into a node factory and a node
  writer, note writers can easily be used for different
  namespaces.

* ol.xml.pushSerializeAndPop: Counterpart to
  ol.xml.pushParseAndPop.

* ol.xml.makeStructureNS: Works like ol.xml.createParsersNS,
  but works for arbitrary structures.

* ol.xml.makeChildAppender: If the top item of the stack has
  the new ol.xml.NodeStackItem type, this helper function
  can be used to create a serializer that appends the current
  node to its designated parent.

* ol.xml.makeChildNodeFactory: Creates a node factory which
  produces child nodes from an array of node names which are
  passed to ol.xml.serialize.

* ol.xml.makeSequence: A convenience function for creating
  xsd:sequence structures. Takes an object literal and an
  ordered list of the keys, and returns an array that can be
  passed as values to ol.xml.serialize.

* ol.xml.makeSimpleTypeWriter: Using e.g. the new write*TextNode
  functions from ol.format.XSD, this function creates a node
  writer that writes simple type nodes for values like strings
  or numbers.

The following commits will be using this new framework for
implementing ol.format.GPX.writeFeatures, and prose
documentation with instructions based on what was said above
will be added.
2014-02-21 07:18:36 +01:00
Tim Schaub
8a9fdbdeb7 Merge pull request #1734 from tschaub/unused-types
Remove unused types from objectliterals.jsdoc.
2014-02-20 16:15:21 -07:00
Tom Payne
dd3f4b9c00 Merge pull request #1733 from twpayne/zoomify-clean-ups
Zoomify clean-ups
2014-02-20 23:49:10 +01:00
Tim Schaub
4cc4c157fb No WFS parser currently 2014-02-20 15:32:18 -07:00
Tom Payne
c4786304b7 Only render overlays if the map is rendered 2014-02-20 19:56:42 +01:00
Tom Payne
443e7d9a8c Add ol.Map#isRendered 2014-02-20 19:56:22 +01:00
Tom Payne
710d0c1bd8 Handle asynchronous rendering in tests 2014-02-20 19:44:29 +01:00
Tom Payne
316c146613 Switch to asynchronous rendering by default 2014-02-20 19:42:00 +01:00
Tom Payne
a773ab256c Use a switch to select tier size calculation 2014-02-20 19:30:47 +01:00
Tom Payne
00eff70ae6 Use an enum for Zoomify tier size calculation option 2014-02-20 19:29:56 +01:00
Tom Payne
bf798ea766 Document tierSizeCalculation property 2014-02-20 19:28:43 +01:00
Tim Schaub
0692db7bc3 Merge pull request #1669 from tschaub/default-style
Provide a useful default style.
2014-02-20 11:09:12 -07:00
Antoine Abt
b6005fc834 Merge pull request #1725 from tonio/a11y-enhanced-zoomcontrol
Enhance controls accessibility
2014-02-20 17:15:12 +01:00
Tom Payne
5ce6ad99bb Merge pull request #1731 from felixgirault/ol.source.zoomify
Add an alternative algorithm for zoomify tier size calculation
2014-02-20 17:12:17 +01:00
Tim Schaub
0015331273 Provide a default style function 2014-02-20 08:57:11 -07:00
Tom Payne
a8f932fa07 Rename ol.Map#requestRenderFrame to ol.Map#render 2014-02-20 16:54:20 +01:00
Antoine Abt
ae3ad24928 Reorder default controls 2014-02-20 16:52:09 +01:00
Antoine Abt
3e21ad6dd2 Wording in description 2014-02-20 16:47:34 +01:00
Antoine Abt
30bc97755a Restore preventDefault call that shouldn’t have been removed 2014-02-20 16:47:34 +01:00
Antoine Abt
2a48197234 Css tweaks for touch devices 2014-02-20 16:47:34 +01:00
Antoine Abt
fd9b4a7ee9 Use «em» based positioning 2014-02-20 16:47:34 +01:00
Antoine Abt
ed8e0e8552 Minor cleanups 2014-02-20 16:47:34 +01:00
Antoine Abt
d52f62fb5a Make Fullscreen control use <button> instead of <a> 2014-02-20 16:47:33 +01:00
Félix Girault
a045a62651 Use shorter syntax for integer division by 2 2014-02-20 16:45:08 +01:00
Éric Lemoine
dc5c713536 Merge pull request #1730 from elemoine/colorcache
Fix handling of the color cache
2014-02-20 13:33:39 +01:00
Éric Lemoine
9428fb109f Fix handling of the color cache 2014-02-20 11:26:02 +01:00
Félix Girault
ac785459da Add an alternative algorithm for zoomify tier size calculation
Zoomify uses a different algorithm than ol3 to calculate the number of
tiles per tier.
These algorithms are compatible in most cases, but they will lead to
different results with some particular image sizes.

This update provides an option for the zoomify source to use one of
these two algorithms.
2014-02-20 11:17:16 +01:00
Frédéric Junod
3b79e2f4c7 Merge pull request #1727 from fredj/drop-fontawesome
Remove Font Awesome
2014-02-20 09:04:30 +01:00
Tom Payne
ebdb5dce22 Rename ol.Map#render to ol.Map#renderSync 2014-02-20 03:05:31 +01:00
Tim Schaub
29e894f913 Merge pull request #1728 from tschaub/set-values
Make setValues behave like multiple calls to set.
2014-02-19 12:00:54 -07:00
Tim Schaub
59cbe7c23a Safer feature constructor
Calling setValues now behaves like calling set (closes #1672)
2014-02-19 10:20:57 -07:00
Tim Schaub
6344b8e06c Make setValues consistent with repeated calls to set 2014-02-19 10:17:39 -07:00
Frederic Junod
c02920be8f Remove Font Awesome
Everything that we need (icon-arrow-left, icon-arrow-right, icon-plus,
icon-minus, icon-download and icon-flag) is already provided by Bootstrap.
2014-02-19 18:04:08 +01:00
Frédéric Junod
f88703053a Merge pull request #1724 from fredj/ol.dom.input
ol.dom.Input cleanups
2014-02-19 15:14:11 +01:00
Frédéric Junod
d178e29565 Merge pull request #1696 from fredj/ol.style.image-opacity
Add new opacity property to ol.style.Image
2014-02-19 11:48:20 +01:00
Frederic Junod
0e73ffa9d9 Set ol.style.Icon opacity 2014-02-19 11:40:40 +01:00
Frederic Junod
a445e81115 Handle image opacity in ol.render.canvas.Immediate 2014-02-19 11:40:40 +01:00
Frederic Junod
fca0942c30 Handle image opacity in ol.render.canvas.ImageReplay 2014-02-19 11:40:40 +01:00
Frederic Junod
430ff9c850 Add opacity property to ol.style.Image 2014-02-19 11:40:40 +01:00
Frederic Junod
03b979c30a Listen to 'input' and 'change' events 2014-02-19 11:37:05 +01:00
Frederic Junod
4e7d697273 Add missing function arguments 2014-02-19 11:37:05 +01:00
Frederic Junod
c9e9cbc7c8 Change ol.dom.Input target param from Element to HTMLInputElement 2014-02-19 11:37:05 +01:00
Frederic Junod
1e0ce96e9f Remove 'valueAsNumber' property from observable list
The property was removed in a0bea641d1
2014-02-19 09:53:46 +01:00
Antoine Abt
b3abc166a4 Make zoomToExtent control use <button> instead of <a> 2014-02-19 09:34:04 +01:00
Éric Lemoine
a734c8a6ff Merge pull request #1720 from elemoine/assign
Initialize properties in the constructor
2014-02-19 08:18:53 +01:00
Éric Lemoine
aee620d2d9 Initialize properties in the constructor 2014-02-19 00:13:39 +01:00
Antoine Abt
b6052320ad Coding style 2014-02-18 15:49:45 +01:00
Antoine Abt
1a44fb2ff3 Make zoom control tip texts configurable 2014-02-18 15:25:58 +01:00
Antoine Abt
a1d838c10c Use «em» for buttons sizing 2014-02-18 15:18:58 +01:00
Tom Payne
e40b9adde0 Add binary support to ol.source.VectorFile 2014-02-17 17:44:28 +01:00
Tom Payne
ef82965c0a Add ol.format.Binary 2014-02-17 17:44:28 +01:00
Tom Payne
cd2200b4af Add ol.binary 2014-02-17 17:44:28 +01:00
Tom Payne
399116ed82 Add binary support to ol.format.Format 2014-02-17 17:44:24 +01:00
Tom Payne
2d0b90a845 Add ol.BrowserFeature.HAS_ARRAY_BUFFER 2014-02-17 17:37:55 +01:00
Tom Payne
21a5052da6 Include VBArray externs in build 2014-02-17 17:37:25 +01:00
Tom Payne
2a42c6f472 Add VBArray externs 2014-02-17 17:37:07 +01:00
Tom Payne
524acc1901 Sort externs alphabetically 2014-02-17 17:36:49 +01:00
Antoine Abt
f8cfa9a24d Better integration of button tooltips 2014-02-17 16:43:35 +01:00
Mark Prins
18c2ffe522 use button elements instead of anchor elements and add tooltips to zoomcontrol 2014-02-17 14:57:15 +01:00
Mark Prins
9adf8b01f6 use button elements and add tooltips to zoomcontrol 2014-02-17 14:57:15 +01:00
Frédéric Junod
497a71ca6e Merge pull request #1715 from fredj/apidoc
Minor jsdoc fixes
2014-02-17 14:46:58 +01:00
Frederic Junod
d2c2ba3921 Add geom.jsdoc 2014-02-17 14:31:28 +01:00
Frederic Junod
bef5b0debe Minor api fixes 2014-02-17 14:25:34 +01:00
Éric Lemoine
9619e2832a Merge pull request #1702 from igrcic/tileWMS-extents-1701
Do not request tiles outside of extents for TileWMS source
2014-02-17 14:17:27 +01:00
Bart van den Eijnden
673027ae11 Merge pull request #1714 from bartvde/issue-1714
404 in api docs for TileGridOptions (r=@twpayne)
2014-02-17 13:54:08 +01:00
Bart van den Eijnden
d85fcd1ad4 Add olx.tilegrid namespace to the API doc 2014-02-17 13:46:01 +01:00
Antoine Abt
aa51edbeef Make fullscreen control use shared styles 2014-02-17 12:30:57 +01:00
Antoine Abt
e567383269 Share styles between zoom & extent control 2014-02-17 12:30:57 +01:00
Antoine Abt
edd69ac95f Remove unneeded selectors, share font-family definitions 2014-02-17 12:30:57 +01:00
Éric Lemoine
2311213136 Merge pull request #1713 from elemoine/zoomcontrol
Use minus sign as zoom out label
2014-02-17 12:15:09 +01:00
Éric Lemoine
4b4c2d7deb Merge pull request #1711 from elemoine/modify
Modify interaction doesn't need to store styles
2014-02-17 12:14:29 +01:00
Antoine Abt
a658435e38 Merge pull request #1705 from tonio/geojson_null_geometry
Allow GeoJSON features to have `null` geometries.
2014-02-17 08:23:05 +01:00
Antoine Abt
04f1f2120b Merge pull request #1697 from tonio/remove_renderer_guess
Remove `ol.RendererHints.createFromQueryData` from the library
2014-02-17 08:21:18 +01:00
Ivan Grcic
ff32b80035 Add tests for TileWMS tileUrlFunction 2014-02-17 01:23:24 +01:00
Ivan Grcic
34d5f24816 Do not load tiles outside extents for TileWMS source 2014-02-17 01:23:23 +01:00
Éric Lemoine
66a17b20e0 Better code formatting 2014-02-16 23:20:32 +01:00
Éric Lemoine
eef32c5d5d Use minus sign as zoom out label 2014-02-16 23:19:03 +01:00
Tom Payne
e0b8e6005c Merge pull request #1712 from twpayne/fix-text-line-dash-immediate
Handle null line dashes for text stroke styles in ol.render.canvas.Immediate
2014-02-16 20:27:35 +01:00
Tom Payne
ea67e21116 Handle null line dashes for text stroke styles in ol.render.canvas.Immediate 2014-02-16 18:46:36 +01:00
Éric Lemoine
db83b11eee Modify interaction doesn't need to store styles 2014-02-16 16:15:11 +01:00
ahocevar
3463defd9c Merge pull request #1707 from ahocevar/css-transform-detection
CSS transform detection when DOM is ready
2014-02-16 02:47:02 +01:00
ahocevar
f3c099de8a Simplifying has2d and has3d check 2014-02-16 02:29:14 +01:00
ahocevar
91a736954d Properly cache the css transform support result 2014-02-15 17:37:37 +01:00
Tom Payne
1baf63cebe Merge pull request #1709 from twpayne/fix-immediate-text-style
Set text style in ol.render.canvas.Immediate
2014-02-15 16:14:57 +01:00
Tom Payne
a5fd5667b6 Set text style in ol.render.canvas.Immediate 2014-02-15 14:17:10 +01:00
ahocevar
81f7ea106b CSS transform detection when DOM is ready
The code to detect CSS transforms requires a DOM to append an
element to. By performing this action when first called instead
of unconditionally upon library load, we can load OpenLayers in
the document's head again.
2014-02-15 10:48:04 +01:00
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
24ee4cb742 [GeoJSON] Add support for feature with null geometries 2014-02-14 15:12:16 +01:00
Antoine Abt
d9c5102bcd Add failing test for feature with null geometries 2014-02-14 15:02:49 +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
Antoine Abt
4478d6c34c Fixes mobile fullscreen example (no mode chooser) 2014-02-14 09:32:14 +01:00
Antoine Abt
4dd8c248f5 Remove ol.RendererHints.createFromQueryData 2014-02-14 09:32:14 +01:00
Antoine Abt
21bfdb1d1e Add example extern for exampleNS 2014-02-14 09:32:14 +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
Antoine Abt
b169ef2094 Add renderer guess in example shared file
& use it in every example.
2014-02-13 17:21:03 +01:00
Antoine Abt
2369ac62eb Load example-behaviour before example script 2014-02-13 17:21:02 +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
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
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
978 changed files with 135603 additions and 64256 deletions

4
.jshintrc Normal file
View File

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

View File

@@ -1,13 +1,8 @@
before_install:
- "sudo pip install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz"
- "sudo pip install regex"
- "git clone --depth=50 https://github.com/jsdoc3/jsdoc build/jsdoc"
- "git clone https://code.google.com/p/glsl-unit/ build/glsl-unit"
- "sudo pip install -r requirements.txt"
- "npm install -g npm && npm install"
before_script:
- "./build.py plovr"
- "./build.py serve-integration-test &"
- "rm src/ol/renderer/webgl/*shader.js"
- "sleep 3"
script: "./build.py JSDOC=build/jsdoc/jsdoc integration-test"
script: "./build.py ci"

View File

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

View File

@@ -1,4 +1,4 @@
Copyright 2005-2013 OpenLayers Contributors. All rights reserved. See
Copyright 2005-2014 OpenLayers Contributors. All rights reserved. See
AUTHORS.md for full list.
Redistribution and use in source and binary forms, with or without modification,

View File

@@ -4,6 +4,8 @@
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/).
Check out the [hosted examples](http://ol3js.org/en/master/examples/), the [workshop](http://ol3js.org/ol3-workshop/) or poke around the evolving [API docs](http://ol3js.org/en/master/apidoc/).
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

@@ -8,22 +8,35 @@
},
"source": {
"includePattern": ".+\\.js(doc)?$",
"excludePattern": "(^|\\/|\\\\)_"
"excludePattern": "(^|\\/|\\\\)_",
"include": [
"src",
"externs/oli.js",
"externs/olx.js"
]
},
"plugins": [
"plugins/markdown",
"node_modules/jsdoc/plugins/markdown",
"apidoc/plugins/inheritdoc",
"apidoc/plugins/exports"
"apidoc/plugins/interface",
"apidoc/plugins/typedefs",
"apidoc/plugins/events",
"apidoc/plugins/observable",
"apidoc/plugins/api"
],
"markdown": {
"parser": "gfm"
},
"stability": {
"levels": ["deprecated","experimental","unstable","stable","frozen","locked"]
},
"templates": {
"cleverLinks": false,
"monospaceLinks": false,
"cleverLinks": true,
"monospaceLinks": true,
"default": {
"outputSourceFiles": true
}
},
"applicationName": "OpenLayers 3"
},
"jsVersion": 180
}

View File

@@ -1,20 +1,41 @@
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 retieving 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 describes how to commit your changes to OpenLayers.
<table><tr>
<th width="33.3%">Map</th><th width="33.3%">View</th><th width="33.3%">Layers</th>
</tr><tr>
<td><p>A [map](ol.Map.html) is made of [layers](ol.layer.html), a [view](ol.View.html) to visualize them, [interactions](ol.interaction.html) to modify map content and [controls](ol.control.html) with UI components.</p>
[Overview](ol.Map.html)<br>
[Creation](ol.Map.html#Map)<br>
[Events](ol.MapBrowserEvent.html)</td>
<td><p>The view manages the visual parameters of the map view, like resolution or rotation.</p>
[ol.View](ol.View.html) with center, projection, resolution and rotation</td>
<td><p>Layers are lightweight containers that get their data from [sources](ol.source.html).</p>
[ol.layer.Tile](ol.layer.Tile.html)<br>
[ol.layer.Image](ol.layer.Image.html)<br>
[ol.layer.Vector](ol.layer.Vector.html)</td>
</tr><tr>
<th>Controls</th><th>Interactions</th><th>Sources and formats</th>
</tr><tr>
<td>[Map default controls](ol.control.html#defaults)<br>
[All controls](ol.control.html)
</td>
<td>
[Map default interactions](ol.interaction.html#defaults)<br>
Interactions for [vector features](ol.Feature.html)
<ul><li>[ol.interaction.Select](ol.interaction.Select.html)</li>
<li>[ol.interaction.Draw](ol.interaction.Draw.html)</li>
<li>[ol.interaction.Modify](ol.interaction.Modify.html)</li></ul>
[All interactions](ol.interaction.html)</td>
<td>[Tile sources](ol.source.Tile.html) for [ol.layer.Tile](ol.layer.Tile.html)
<br>[Image sources](ol.source.Image.html) for [ol.layer.Image](ol.layer.Image.html)
<br>[Vector sources](ol.source.Vector.html) for [ol.layer.Vector](ol.layer.Vector.html)
<br>[Formats](ol.format.Feature.html) for reading/writing vector data
<br>[ol.format.WMSCapabilities](ol.format.WMSCapabilities.html)</td></tr>
<tr><th>Projections</th><th>2-way bindings</th><th>Other components</th></tr>
<tr><td><p>All coordinates and extents need to be provided in view projection (default: [EPSG:3857](ol.proj.EPSG3857.html)). To transform, use [ol.proj.transform()](ol.proj.html#transform) and [ol.extent.applyTransform()](ol.extent.html#applyTransform).</p>
[ol.proj](ol.proj.html)</td>
<td><p>[Objects](ol.Object.html) can be kept in sync using the [bindTo()](ol.Object.html#bindTo) method.</p>
<p>A [DOM Input](ol.dom.Input.html) class is available to bind Object properties to HTML Input elements.</p></td>
<td>[ol.DeviceOrientation](ol.DeviceOrientation.html)<br>
[ol.Geolocation](ol.Geolocation.html)<br>
[ol.Overlay](ol.Overlay.html)<br>
[ol.FeatureOverlay](ol.FeatureOverlay.html)<br></td>
</tr></table>

131
apidoc/plugins/api.js Normal file
View File

@@ -0,0 +1,131 @@
/**
* Define an @api tag
*/
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('api', {
mustHaveValue: false,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
var level = tag.text || "experimental";
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) );
}
}
});
};
/*
* Based on @stability annotations, and assuming that items with no @stability
* annotation should not be documented, this plugin removes undocumented symbols
* from the documentation.
*/
function hasApiMembers(doclet) {
return doclet.longname.split('#')[0] == this.longname;
}
function includeAugments(doclet) {
var augments = doclet.augments;
if (augments) {
var cls;
for (var i = augments.length - 1; i >= 0; --i) {
cls = classes[augments[i]];
if (cls) {
includeAugments(cls);
if (cls.fires) {
if (!doclet.fires) {
doclet.fires = [];
}
cls.fires.forEach(function(f) {
if (doclet.fires.indexOf(f) == -1) {
doclet.fires.push(f);
}
});
}
if (cls.observables) {
if (!doclet.observables) {
doclet.observables = [];
}
cls.observables.forEach(function(f) {
if (doclet.observables.indexOf(f) == -1) {
doclet.observables.push(f);
}
});
}
if (cls.longname.indexOf('oli.') !== 0) {
cls._hideConstructor = true;
delete cls.undocumented;
}
}
}
}
}
var api = [];
var augments = {};
var classes = {};
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
// Keep track of api items - needed in parseComplete to determine classes
// with api members.
if (doclet.stability) {
api.push(doclet);
}
// Mark explicity defined namespaces - needed in parseComplete to keep
// namespaces that we need as containers for api items.
if (/.*\.jsdoc$/.test(doclet.meta.filename) && doclet.kind == 'namespace') {
doclet.namespace_ = true;
}
if (doclet.kind == 'class') {
classes[doclet.longname] = doclet;
}
},
parseComplete: function(e) {
var doclets = e.doclets;
for (var i = doclets.length - 1; i >= 0; --i) {
var doclet = doclets[i];
if (doclet.stability || doclet.namespace_) {
if (doclet.kind == 'class') {
includeAugments(doclet);
}
if (doclet.fires) {
doclet.fires.sort(function(a, b) {
return a.split(/#?event:/)[1] < b.split(/#?event:/)[1] ? -1 : 1;
});
}
if (doclet.observables) {
doclet.observables.sort(function(a, b) {
return a.name < b.name ? -1 : 1;
});
}
// Always document namespaces and items with stability annotation
continue;
}
if (doclet.kind == 'class' && api.some(hasApiMembers, doclet)) {
// Mark undocumented classes with documented members as unexported.
// This is used in ../template/tmpl/container.tmpl to hide the
// constructor from the docs.
doclet._hideConstructor = true;
includeAugments(doclet);
} else if (!doclet._hideConstructor) {
// Remove all other undocumented symbols
doclet.undocumented = true;
}
}
}
};

43
apidoc/plugins/events.js Normal file
View File

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

View File

@@ -1,94 +0,0 @@
/*
* This plugin parses goog.exportSymbol and goog.exportProperty calls to build
* a list of API symbols and properties. Everything else is marked undocumented,
* which will remove it from the docs.
*/
var api = [];
function collectExports(source) {
var i, ii, symbol, property;
var syms = source.match(/goog\.exportSymbol\([^\)]*\)/g);
if (syms) {
i = 0; ii = syms.length;
for (; i < ii; ++i) {
symbol = syms[i].match(/'([^']*)'/)[1];
api.push(symbol);
}
}
var props = source.match(/goog\.exportProperty\([^\)]*\)/g);
if (props) {
i = 0; ii = props.length;
for (; i < ii; ++i) {
property = props[i].match(/[^,]*,[^,]*,\r?\n? *([^\)]*)\)/)[1]
.replace('.prototype.', '#');
api.push(property);
}
}
}
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 = {
beforeParse: function(e) {
if (/\.js$/.test(e.filename)) {
collectExports(e.source);
}
},
newDoclet: function(e) {
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) {
names = params[i].type.names;
if (names) {
for (var j = 0, jj=names.length; j < jj; ++j) {
name = names[j];
if (api.indexOf(name) === -1) {
api.push(name);
}
}
}
}
}
}
}
};
function filter(e) {
if (e.doclet) {
var fqn = e.doclet.longname;
if (fqn) {
e.doclet.undocumented = (api.indexOf(fqn) === -1);
// Remove parents that are not part of the API
var parent;
var parents = e.doclet.augments;
if (parents) {
for (var i = parents.length - 1; i >= 0; --i) {
parent = parents[i];
if (api.indexOf(parent) === -1) {
parents.splice(i, 1);
}
}
}
}
}
}
exports.nodeVisitor = {
visitNode: function(node, e, parser, currentSourceName) {
// filter out non-API symbols before the addDocletRef finisher is called
e.finishers.unshift(filter);
}
};

View File

@@ -1,15 +1,108 @@
/*
* This is a hack to prevent inheritDoc and override tags from entirely removing
* This is a hack to prevent inheritDoc tags from entirely removing
* documentation of the method that inherits the documentation.
*
* TODO: Remove this hack when https://github.com/jsdoc3/jsdoc/issues/53
* is addressed.
*/
exports.nodeVisitor = {
visitNode: function(node, e, parser, currentSourceName) {
if (/@(inheritDoc|override)(\n|\r)/.test(e.comment)) {
e.preventDefault = true;
exports.defineTags = function(dictionary) {
dictionary.defineTag('inheritDoc', {
mustHaveValue: false,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
doclet.inheritdoc = true;
}
});
};
var lookup = {};
var incompleteByClass = {};
var keepKeys = ['comment', 'meta', 'name', 'memberof', 'longname', 'augment',
'stability'];
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
var incompletes;
if (!(doclet.longname in lookup)) {
lookup[doclet.longname] = [];
}
lookup[doclet.longname].push(doclet);
if (doclet.inheritdoc) {
if (!(doclet.memberof in incompleteByClass)) {
incompleteByClass[doclet.memberof] = [];
}
incompletes = incompleteByClass[doclet.memberof];
if (incompletes.indexOf(doclet.name) == -1) {
incompletes.push(doclet.name);
}
}
},
parseComplete: function(e) {
var ancestors, candidate, candidates, doclet, i, j, k, l, key;
var incompleteDoclet, stability, incomplete, incompletes;
var doclets = e.doclets;
for (i = doclets.length - 1; i >= 0; --i) {
doclet = doclets[i];
if (doclet.augments) {
ancestors = [].concat(doclet.augments);
}
incompletes = incompleteByClass[doclet.longname];
if (ancestors && incompletes) {
// collect ancestors from the whole hierarchy
for (j = 0; j < ancestors.length; ++j) {
candidates = lookup[ancestors[j]];
if (candidates) {
for (k = candidates.length - 1; k >= 0; --k) {
candidate = candidates[k];
if (candidate.augments) {
ancestors = ancestors.concat(candidate.augments);
}
}
}
}
// walk through all inheritDoc members
for (j = incompletes.length - 1; j >= 0; --j) {
incomplete = incompletes[j];
candidates = lookup[doclet.longname + '#' + incomplete];
if (candidates) {
// get the incomplete doclet that needs to be augmented
for (k = candidates.length - 1; k >= 0; --k) {
incompleteDoclet = candidates[k];
if (incompleteDoclet.inheritdoc) {
break;
}
}
}
// find the documented ancestor
for (k = ancestors.length - 1; k >= 0; --k) {
candidates = lookup[ancestors[k] + '#' + incomplete];
if (candidates) {
for (l = candidates.length - 1; l >= 0; --l) {
candidate = candidates[l];
if (candidate && !candidate.inheritdoc) {
stability = candidate.stability || incompleteDoclet.stability
if (stability) {
incompleteDoclet.stability = stability;
for (key in candidate) {
if (candidate.hasOwnProperty(key) &&
keepKeys.indexOf(key) == -1) {
incompleteDoclet[key] = candidate[key];
}
}
}
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,26 @@
var util = require('util');
exports.defineTags = function(dictionary) {
var classTag = dictionary.lookUp('class');
dictionary.defineTag('interface', {
mustHaveValue: false,
onTagged: function(doclet, tag) {
classTag.onTagged.apply(this, arguments);
doclet.interface = true;
}
});
var augmentsTag = dictionary.lookUp('augments');
dictionary.defineTag('implements', {
mustHaveValue: true,
onTagged: function(doclet, tag) {
tag.value = tag.value.match(/^\{?([^\}]*)\}?$/)[1];
augmentsTag.onTagged.apply(this, arguments);
if (!doclet.implements) {
doclet.implements = [];
}
doclet.implements.push(tag.value);
}
});
};

View File

@@ -0,0 +1,66 @@
var classes = {};
var observables = {};
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
if (doclet.kind == 'class') {
classes[doclet.longname] = doclet;
}
},
parseComplete: function(e) {
var doclets = e.doclets;
var cls, doclet, event, i, ii, observable;
for (i = 0, ii = doclets.length - 1; i < ii; ++i) {
doclet = doclets[i];
cls = classes[doclet.longname.split('#')[0]];
if (typeof doclet.observable == 'string' && cls) {
var name = doclet.name.replace(/^[sg]et/, '');
name = name.substr(0, 1).toLowerCase() + name.substr(1);
var key = doclet.longname.split('#')[0] + '#' + name;
doclet.observable = key;
if (!observables[key]) {
observables[key] = {};
}
observable = observables[key];
observable.name = name;
observable.readonly = typeof observable.readonly == 'boolean' ?
observable.readonly : true;
if (doclet.name.indexOf('get') === 0) {
observable.type = doclet.returns[0].type;
observable.description = doclet.returns[0].description;
} else if (doclet.name.indexOf('set') === 0) {
observable.readonly = false;
}
if (!cls.observables) {
cls.observables = [];
}
observable = observables[doclet.observable];
if (cls.observables.indexOf(observable) == -1) {
cls.observables.push(observable);
}
if (!cls.fires) {
cls.fires = [];
}
var event = 'ol.ObjectEvent#event:change:' + name.toLowerCase();
if (cls.fires.indexOf(event) == -1) {
cls.fires.push(event);
}
}
}
}
};
exports.defineTags = function(dictionary) {
dictionary.defineTag('observable', {
mustNotHaveValue: true,
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
doclet.observable = '';
}
});
};

View File

@@ -0,0 +1,59 @@
/*
* Converts olx.js @type annotations into properties of the previous @typedef.
* Changes @enum annotations into @typedef.
*/
var lastOlxTypedef = null;
var olxTypes = {};
function addSubparams(params) {
for (var j = 0, jj = params.length; j < jj; ++j) {
var param = params[j];
var types = param.type.names;
for (var k = 0, kk = types.length; k < kk; ++k) {
var name = types[k];
if (name in olxTypes) {
param.subparams = olxTypes[name];
// TODO addSubparams(param.subparams);
// TODO Do we need to support multiple object literal types per
// param?
break;
}
}
}
}
exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
if (doclet.meta.filename == 'olx.js') {
if (doclet.kind == 'typedef') {
lastOlxTypedef = doclet;
olxTypes[doclet.longname] = [];
doclet.properties = [];
} else if (lastOlxTypedef && doclet.memberof == lastOlxTypedef.longname) {
lastOlxTypedef.properties.push(doclet);
olxTypes[lastOlxTypedef.longname].push(doclet);
} else {
lastOlxTypedef = null;
}
} else if (doclet.isEnum) {
// We never export enums, so we document them like typedefs
doclet.kind = 'typedef';
delete doclet.isEnum;
}
},
parseComplete: function(e) {
var doclets = e.doclets;
for (var i = doclets.length - 1; i >= 0; --i) {
var doclet = doclets[i];
var params = doclet.params;
if (params) {
addSubparams(params);
}
}
}
};

78
apidoc/readme.md Normal file
View File

@@ -0,0 +1,78 @@
# API Documentation
This directory contains configuration (`conf.json`), static content (`index.md`), template (`template/`) and plugins (`plugins/`) for the [JSDoc3](http://usejsdoc.org/) API generator.
## Documenting the source code
JSDoc annotations are used for metadata used by the compiler, for defining the user facing API, and for user documentation.
In the simplest case, a JSDoc block can look like this:
```js
/**
* Add the given control to the map.
* @param {ol.control.Control} control Control.
* @api
*/
ol.Map.prototype.addControl = function(control) {
// ...
};
```
The first line is text for the user documentation. This can be long, and it can
contain Markdown.
The second line tells the Closure compiler the type of the argument.
The third line (`@api`) marks the method as part of the api and thus exportable. The stability can be added as value, e.g. `@api stable`. Without such an api annotation, the method will not be documented in the generated API documentation. Symbols without an api annotation will also not be exportable (unless they are explicitly exported with a `goog.exportProperty` call).
### Events
Events are documented using `@fires` and `@event` annotations:
```js
/**
* Constants for event names.
* @enum {string}
*/
ol.MapBrowserEvent.EventType = {
/**
* A true single click with no dragging and no double click. Note that this
* event is delayed by 250 ms to ensure that it is not a double click.
* @event ol.MapBrowserEvent#singleclick
* @api
*/
SINGLECLICK: 'singleclick',
// ...
};
```
Note the value of the `@event` annotation. The text before the hash refers to the event class that the event belongs to, and the text after the hash is the type of the event.
To export event properties, they need to be defined in `externs/oli.js` (also see `readme.md` in `externs/`) and marked with an @api annotation:
```js
/** @interface */
oli.MapBrowserEvent;
/**
* @type {ol.Coordinate}
* @api
*/
oli.MapBrowserEvent.prototype.coordinate;
// ...
};
```
To document which events are fired by a class or method, the `@fires` annotation is used:
```js
/**
* @fires ol.MapBrowserEvent
* @fires ol.MapEvent
* @fires ol.render.Event
* ...
*/
ol.Map = function(options) {
// ...
};
```
### Observable Properties
Observable properties are documented using the `@observable` annotation. This annotation is added to the getter of an observable property. If an observable property is also settable, the setter is annotated with `@observable` as well.

View File

@@ -1 +1,3 @@
This template is based on the [Jaguar](https://github.com/davidshimjs/jaguarjs/tree/master/docs/templates/jaguar) template. [JaguarJS](https://github.com/davidshimjs/jaguarjs) is licensed under the [LGPL license](https://github.com/davidshimjs/jaguarjs/tree/master/LICENSE).
The default template for JSDoc 3 uses: [the Taffy Database library](http://taffydb.com/) and the [Underscore Template library](http://documentcloud.github.com/underscore/#template).

View File

@@ -0,0 +1,9 @@
@navWidth: 250px;
@colorSubtitle: rgb(119, 156, 52);
@colorRed: rgb(238, 125, 125);
@colorLink: #2a6496;
@colorBgNavi: #2a2a2a;
.font-description () {
font-family: "freight-text-pro",Georgia,Cambria,"Times New Roman",Times,serif
}

View File

@@ -0,0 +1,10 @@
@import "common.less";
footer {
margin: 15px 0;
padding-top: 15px;
border-top: 1px solid #e1e1e1;
.font-description();
font-size: 0.8em;
color: gray;
}

View File

@@ -0,0 +1,22 @@
@import "common.less";
// normalize
html, body {
font: 1em "jaf-bernino-sans","Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;
background-color: #fff;
}
ul, ol {
margin: 0;
padding: 0;
}
li {
list-style-type: none;
}
#wrap {
position: relative;
}
@import "navigation.less";
@import "main.less";
@import "footer.less";

View File

@@ -0,0 +1,288 @@
@import "common.less";
.main {
padding: 20px 20px;
margin-left: @navWidth;
.page-title {
display: none;
}
h1 {
font-weight: bold;
font-size: 1.6em;
margin: 0;
}
h2 {
font-weight: bold;
font-size: 1.5em;
margin: 0;
}
h3 {
font-weight: bold;
font-size: 12px;
margin: 5px 0;
}
h4 {
font-weight: bold;
font-size: 1em;
}
h5 {
font-weight: bold;
font-size: 12px;
}
dd {
font-size: 12px;
}
h4.name {
span.type-signature {
display: inline-block;
border-radius: 3px;
background-color: gray;
color: #fff;
font-size: 0.7em;
padding: 2px 4px;
}
span.type {
margin-left: 5px;
}
span.glyphicon {
display: inline-block;
vertical-align: middle;
color: #e1e1e1;
margin-left: 7px;
}
span.returnType {
margin-left: 3px;
background-color: transparent!important;
color: gray!important;
}
}
span.static {
display: inline-block;
border-radius: 3px;
background-color: @colorSubtitle!important;
color: #fff;
font-size: 0.7em;
padding: 2px 4px;
margin-right: 8px;
}
span.number {
background-color: #ccc!important;
color: #2fa2b1!important;
}
span.string {
background-color: #ccc!important;
color: #2fa2b1!important;
}
span.object {
background-color: #ccc!important;
color: #2fa2b1!important;
}
span.array {
background-color: #ccc!important;
color: #2fa2b1!important;
}
span.boolean {
background-color: #ccc!important;
color: #2fa2b1!important;
}
.subsection-title {
font-size: 14px;
margin-top: 30px;
color: @colorSubtitle;
}
.description {
margin-top: 10px;
// .font-description();
font-size: 13px;
p {
font-size: 13px;
}
}
.tag-source {
font-size: 12px;
}
dt.tag-source {
margin-top: 5px;
}
dt.tag-todo {
font-size: 10px;
display: inline-block;
background-color: @colorLink;
color: #fff;
padding: 2px 4px;
border-radius: 5px;
}
.type-signature {
font-size: 12px;
}
.tag-deprecated {
display: inline-block;
font-size: 10px;
}
.important {
background-color: @colorRed;
color: #fff;
padding: 2px 4px;
border-radius: 5px;
}
.nameContainer {
position: relative;
margin-top: 20px;
padding-top: 5px;
border-top: 1px solid #e1e1e1;
.inherited {
display: inline-block;
border-radius: 3px;
background-color: #888!important;
font-size: 0.7em;
padding: 2px 4px;
margin-right: 5px;
a {
color: #fff;
}
}
.tag-source {
position: absolute;
top: 17px;
right: 0;
font-size: 10px;
a {
color: gray;
}
}
&.inherited {
color: gray;
}
h4 {
margin-right: 150px;
line-height: 1.3;
.signature {
font-size: 13px;
font-weight: normal;
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
}
}
}
pre {
font-size: 11px;
}
table {
width: 100%;
margin-bottom: 15px;
th {
padding: 3px 3px;
}
td {
vertical-align: top;
padding: 5px 3px;
}
.name {
width: 110px;
}
.type {
width: 60px;
color: #aaa;
font-size: 11px;
}
.attributes {
width: 80px;
color: #aaa;
font-size: 11px;
}
.description {
font-size: 12px;
p {
margin: 0;
}
}
.optional {
float: left;
border-radius: 3px;
background-color: #ddd!important;
font-size: 0.7em;
padding: 2px 4px;
margin-right: 5px;
color: gray;
}
}
.readme {
p {
margin-top: 15px;
line-height: 1.2;
font-size: 0.85em;
}
h1 {
font-size: 1.7em;
}
h2 {
margin-top: 30px;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #e1e1e1;
}
li {
font-size: 0.9em;
margin-bottom: 10px;
}
}
article {
ol, ul {
margin-left: 25px;
}
ol > li {
list-style-type: decimal;
margin-bottom: 5px;
}
ul > li {
margin-bottom: 5px;
list-style-type: disc;
}
}
}

View File

@@ -0,0 +1,103 @@
@import "common.less";
::-webkit-scrollbar {
width: 8px;
background-color: transparent;
}
::-webkit-scrollbar-thumb {
background-color: gray;
border-radius: 4px;
}
.navigation {
position: fixed;
float: left;
width: @navWidth;
height: 100%;
background-color: @colorBgNavi;
.applicationName {
margin: 0;
margin-top: 15px;
padding: 10px 15px;
font: bold 1.25em Helvetica;
color: #fff;
a {
color: #fff;
}
}
.search {
padding: 10px 15px;
input {
background-color: #333;
color: #fff;
border-color: #555;
}
}
.list {
padding: 10px 15px 0 15px;
position: relative;
overflow: auto;
width: 100%;
}
li.item {
margin-bottom: 8px;
padding-bottom: 8px;
border-bottom: 1px solid #333;
a {
color: #bbb;
&:hover {
color: #fff;
}
}
.title {
cursor: pointer;
position: relative;
a {
color: #e1e1e1;
&:hover {
color: #fff;
}
}
display: block;
font-size: 0.8em;
.static {
display: block;
border-radius: 3px;
background-color: @colorSubtitle;
color: #000;
font-size: 0.7em;
padding: 2px 4px;
float: right;
}
}
.subtitle {
margin-top: 10px;
font: bold 0.65em Helvetica;
color: @colorSubtitle;
display: block;
}
ul {
& > li {
font-size: 0.7em;
padding-left: 8px;
margin-top: 2px;
}
}
.itemMembers {
display: none;
}
}
}

View File

@@ -1,16 +1,20 @@
/*global env: true */
var template = require('jsdoc/template'),
fs = require('fs'),
path = require('path'),
fs = require('jsdoc/fs'),
path = require('jsdoc/path'),
taffy = require('taffydb').taffy,
handle = require('jsdoc/util/error').handle,
helper = require('jsdoc/util/templateHelper'),
_ = require('underscore'),
htmlsafe = helper.htmlsafe,
linkto = helper.linkto,
resolveAuthorLinks = helper.resolveAuthorLinks,
scopeToPunc = helper.scopeToPunc,
hasOwnProp = Object.prototype.hasOwnProperty,
data,
view,
outdir = env.opts.destination;
function find(spec) {
return helper.find(data, spec);
}
@@ -23,10 +27,6 @@ function getAncestorLinks(doclet) {
return helper.getAncestorLinks(data, doclet);
}
var linkto = helper.linkto;
var htmlsafe = helper.htmlsafe;
function hashToLink(doclet, hash) {
if ( !/^(#.+)/.test(hash) ) { return hash; }
@@ -36,6 +36,27 @@ function hashToLink(doclet, hash) {
return '<a href="' + url + '">' + hash + '</a>';
}
function needsSignature(doclet) {
var needsSig = false;
// function and class definitions always get a signature
if (doclet.kind === 'function' || doclet.kind === 'class') {
needsSig = true;
}
// typedefs that contain functions get a signature, too
else if (doclet.kind === 'typedef' && doclet.type && doclet.type.names &&
doclet.type.names.length) {
for (var i = 0, l = doclet.type.names.length; i < l; i++) {
if (doclet.type.names[i].toLowerCase() === 'function') {
needsSig = true;
break;
}
}
}
return needsSig;
}
function addSignatureParams(f) {
var params = helper.getSignatureParams(f, 'optional');
@@ -45,23 +66,60 @@ function addSignatureParams(f) {
function addSignatureReturns(f) {
var returnTypes = helper.getSignatureReturns(f);
f.signature = '<span class="signature">'+(f.signature || '') + '</span>' + '<span class="type-signature">'+(returnTypes.length? ' &rarr; {'+returnTypes.join('|')+'}' : '')+'</span>';
f.signature = '<span class="signature">'+(f.signature || '') + '</span>';
if (returnTypes.length) {
f.signature += '<span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">'+(returnTypes.length ? '{'+returnTypes.join('|')+'}' : '')+'</span>';
}
}
function addSignatureTypes(f) {
var types = helper.getSignatureTypes(f);
f.signature = (f.signature || '') + '<span class="type-signature">'+(types.length? ' :'+types.join('|') : '')+'</span>';
f.signature = (f.signature || '') + '<span class="type-signature">'+(types.length? ' :'+types.join('|') : '')+' </span>';
}
function addAttribs(f) {
var attribs = helper.getAttribs(f);
f.attribs = '<span class="type-signature">'+htmlsafe(attribs.length? '<'+attribs.join(', ')+'> ' : '')+'</span>';
if (attribs.length) {
f.attribs = '<span class="type-signature ' + (attribs[0] === 'static' ? 'static' : '') + '">' + htmlsafe(attribs.length ? attribs.join(',') : '') + ' </span>';
}
}
function shortenPaths(files, commonPrefix) {
// always use forward slashes
var regexp = new RegExp('\\\\', 'g');
Object.keys(files).forEach(function(file) {
files[file].shortened = files[file].resolved.replace(commonPrefix, '')
.replace(regexp, '/');
});
return files;
}
function resolveSourcePath(filepath) {
return path.resolve(process.cwd(), filepath);
}
function getPathFromDoclet(doclet) {
if (!doclet.meta) {
return;
}
var filepath = doclet.meta.path && doclet.meta.path !== 'null' ?
doclet.meta.path + '/' + doclet.meta.filename.split(/[\/\\]/).pop() :
doclet.meta.filename;
return filepath;
}
function generate(title, docs, filename) {
function generate(title, docs, filename, resolveLinks) {
resolveLinks = resolveLinks === false ? false : true;
var docData = {
filename: filename,
title: title,
docs: docs
};
@@ -69,11 +127,62 @@ function generate(title, docs, filename) {
var outpath = path.join(outdir, filename),
html = view.render('container.tmpl', docData);
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
if (resolveLinks) {
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
}
fs.writeFileSync(outpath, html, 'utf8');
}
function generateSourceFiles(sourceFiles) {
Object.keys(sourceFiles).forEach(function(file) {
var source;
// links are keyed to the shortened path in each doclet's `meta.filename` property
var sourceOutfile = helper.getUniqueFilename(sourceFiles[file].shortened);
helper.registerLink(sourceFiles[file].shortened, sourceOutfile);
try {
source = {
kind: 'source',
code: helper.htmlsafe( fs.readFileSync(sourceFiles[file].resolved, 'utf8') )
};
}
catch(e) {
handle(e);
}
generate('Source: ' + sourceFiles[file].shortened, [source], sourceOutfile,
false);
});
}
/**
* Look for classes or functions with the same name as modules (which indicates that the module
* exports only that class or function), then attach the classes or functions to the `module`
* property of the appropriate module doclets. The name of each class or function is also updated
* for display purposes. This function mutates the original arrays.
*
* @private
* @param {Array.<module:jsdoc/doclet.Doclet>} doclets - The array of classes and functions to
* check.
* @param {Array.<module:jsdoc/doclet.Doclet>} modules - The array of module doclets to search.
*/
function attachModuleSymbols(doclets, modules) {
var symbols = {};
// build a lookup table
doclets.forEach(function(symbol) {
symbols[symbol.longname] = symbol;
});
return modules.map(function(module) {
if (symbols[module.longname]) {
module.module = symbols[module.longname];
module.module.name = module.module.name.replace('module:', 'require("') + '")';
}
});
}
/**
* Create the navigation sidebar.
* @param {object} members The members that will be used to create the sidebar.
@@ -84,118 +193,69 @@ function generate(title, docs, filename) {
* @param {array<object>} members.modules
* @param {array<object>} members.namespaces
* @param {array<object>} members.tutorials
* @param {array<object>} members.events
* @return {string} The HTML for the navigation sidebar.
*/
function buildNav(members) {
var nav = '<h2><a href="index.html">Index</a></h2>',
seen = {};
/**
* Sorts elements by their qualified names (property longname).
* See https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort
* @param {object} a
* @param {object} b
* @return {number}
*/
function byLongName(a, b){
if(a.longname===b.longname){
return 0;
} else if(a.longname < b.longname){
return -1;
} else {
return 1;
}
}
var nav = [];
if (members.modules.length) {
nav += '<h3>Modules</h3><ul>';
members.modules.sort(byLongName).forEach(function(m) {
if ( !hasOwnProp.call(seen, m.longname) ) {
nav += '<li>'+linkto(m.longname, m.longname)+'</li>';
}
seen[m.longname] = true;
if (members.namespaces.length) {
_.each(members.namespaces, function (v) {
// exclude 'olx' from sidebar
if (v.longname.indexOf('olx') !== 0) {
nav.push({
type: 'namespace',
longname: v.longname,
name: v.name,
members: find({
kind: 'member',
memberof: v.longname
}),
methods: find({
kind: 'function',
memberof: v.longname
}),
typedefs: find({
kind: 'typedef',
memberof: v.longname
}),
events: find({
kind: 'event',
memberof: v.longname
})
});
}
});
nav += '</ul>';
}
if (members.externals.length) {
nav += '<h3>Externals</h3><ul>';
members.externals.sort(byLongName).forEach(function(e) {
if ( !hasOwnProp.call(seen, e.longname) ) {
nav += '<li>'+linkto( e.longname, e.name.replace(/(^"|"$)/g, '') )+'</li>';
}
seen[e.longname] = true;
});
nav += '</ul>';
}
if (members.classes.length) {
var moduleClasses = 0;
members.classes.sort(byLongName).forEach(function(c) {
var moduleSameName = find({kind: 'module', longname: c.longname});
if (moduleSameName.length) {
c.name = c.name.replace('module:', 'require("')+'")';
moduleClasses++;
moduleSameName[0].module = c;
}
if (moduleClasses !== -1 && moduleClasses < members.classes.length) {
nav += '<h3>Classes</h3><ul>';
moduleClasses = -1;
}
if ( !hasOwnProp.call(seen, c.longname) ) {
nav += '<li>'+linkto(c.longname, c.longname)+'</li>';
}
seen[c.longname] = true;
_.each(members.classes, function (v) {
// ignore interfaces
if (v.interface !== true) {
nav.push({
type: 'class',
longname: v.longname,
name: v.name,
members: find({
kind: 'member',
memberof: v.longname
}),
methods: find({
kind: 'function',
memberof: v.longname
}),
typedefs: find({
kind: 'typedef',
memberof: v.longname
}),
fires: v.fires,
events: find({
kind: 'event',
memberof: v.longname
})
});
}
});
nav += '</ul>';
}
if (members.namespaces.length) {
nav += '<h3>Namespaces</h3><ul>';
members.namespaces.sort(byLongName).forEach(function(n) {
if ( !hasOwnProp.call(seen, n.longname) ) {
nav += '<li>'+linkto(n.longname, n.longname)+'</li>';
}
seen[n.longname] = true;
});
nav += '</ul>';
}
if (members.mixins.length) {
nav += '<h3>Mixins</h3><ul>';
members.mixins.sort(byLongName).forEach(function(m) {
if ( !hasOwnProp.call(seen, m.longname) ) {
nav += '<li>'+linkto(m.longname, m.longname)+'</li>';
}
seen[m.longname] = true;
});
nav += '</ul>';
}
if (members.tutorials.length) {
nav += '<h3>Tutorials</h3><ul>';
members.tutorials.sort(byLongName).forEach(function(t) {
nav += '<li>'+tutoriallink(t.name)+'</li>';
});
nav += '</ul>';
}
if (members.globals.length) {
nav += '<h3>Global</h3><ul>';
members.globals.sort(byLongName).forEach(function(g) {
if ( g.kind !== 'typedef' && !hasOwnProp.call(seen, g.longname) ) {
nav += '<li>'+linkto(g.longname, g.longname)+'</li>';
}
seen[g.longname] = true;
});
nav += '</ul>';
}
return nav;
@@ -210,9 +270,20 @@ function buildNav(members) {
exports.publish = function(taffyData, opts, tutorials) {
data = taffyData;
var conf = env.conf.templates || {};
conf['default'] = conf['default'] || {};
var templatePath = opts.template;
view = new template.Template(templatePath + '/tmpl');
// claim some special filenames in advance, so the All-Powerful Overseer of Filename Uniqueness
// doesn't try to hand them out later
var indexUrl = helper.getUniqueFilename('index');
// don't call registerLink() on this one! 'index' is also a valid longname
var globalUrl = helper.getUniqueFilename('global');
helper.registerLink('global', globalUrl);
// set up templating
view.layout = 'layout.tmpl';
@@ -221,7 +292,10 @@ exports.publish = function(taffyData, opts, tutorials) {
data = helper.prune(data);
data.sort('longname, version, since');
helper.addEventListeners(data);
var sourceFiles = {};
var sourceFilePaths = [];
data().each(function(doclet) {
doclet.attribs = '';
@@ -245,6 +319,19 @@ exports.publish = function(taffyData, opts, tutorials) {
doclet.see[i] = hashToLink(doclet, seeItem);
});
}
// build a list of source files
var sourcePath;
var resolvedSourcePath;
if (doclet.meta) {
sourcePath = getPathFromDoclet(doclet);
resolvedSourcePath = resolveSourcePath(sourcePath);
sourceFiles[sourcePath] = {
resolved: resolvedSourcePath,
shortened: null
};
sourceFilePaths.push(resolvedSourcePath);
}
});
// update outdir if necessary, then create outdir
@@ -254,19 +341,54 @@ exports.publish = function(taffyData, opts, tutorials) {
}
fs.mkPath(outdir);
// copy static files to outdir
var fromDir = path.join(templatePath, 'static'),
staticFiles = fs.ls(fromDir, 3);
// copy the template's static files to outdir
var fromDir = path.join(templatePath, 'static');
var staticFiles = fs.ls(fromDir, 3);
staticFiles.forEach(function(fileName) {
var toDir = fs.toDir( fileName.replace(fromDir, outdir) );
fs.mkPath(toDir);
fs.copyFileSync(fileName, toDir);
});
// copy user-specified static files to outdir
var staticFilePaths;
var staticFileFilter;
var staticFileScanner;
if (conf['default'].staticFiles) {
staticFilePaths = conf['default'].staticFiles.paths || [];
staticFileFilter = new (require('jsdoc/src/filter')).Filter(conf['default'].staticFiles);
staticFileScanner = new (require('jsdoc/src/scanner')).Scanner();
staticFilePaths.forEach(function(filePath) {
var extraStaticFiles = staticFileScanner.scan([filePath], 10, staticFileFilter);
extraStaticFiles.forEach(function(fileName) {
var sourcePath = fs.statSync(filePath).isDirectory() ? filePath :
path.dirname(filePath);
var toDir = fs.toDir( fileName.replace(sourcePath, outdir) );
fs.mkPath(toDir);
fs.copyFileSync(fileName, toDir);
});
});
}
if (sourceFilePaths.length) {
sourceFiles = shortenPaths( sourceFiles, path.commonPrefix(sourceFilePaths) );
}
data().each(function(doclet) {
var url = helper.createLink(doclet);
helper.registerLink(doclet.longname, url);
// replace the filename with a shortened version of the full path
var docletPath;
if (doclet.meta) {
docletPath = getPathFromDoclet(doclet);
docletPath = sourceFiles[docletPath].shortened;
if (docletPath) {
doclet.meta.filename = docletPath;
}
}
});
data().each(function(doclet) {
@@ -279,7 +401,7 @@ exports.publish = function(taffyData, opts, tutorials) {
doclet.id = doclet.name;
}
if (doclet.kind === 'function' || doclet.kind === 'class') {
if ( needsSignature(doclet) ) {
addSignatureParams(doclet);
addSignatureReturns(doclet);
addAttribs(doclet);
@@ -290,8 +412,6 @@ exports.publish = function(taffyData, opts, tutorials) {
data().each(function(doclet) {
doclet.ancestors = getAncestorLinks(doclet);
doclet.signature = '';
if (doclet.kind === 'member') {
addSignatureTypes(doclet);
addAttribs(doclet);
@@ -310,59 +430,70 @@ exports.publish = function(taffyData, opts, tutorials) {
// add template helpers
view.find = find;
view.linkto = linkto;
view.resolveAuthorLinks = resolveAuthorLinks;
view.tutoriallink = tutoriallink;
view.htmlsafe = htmlsafe;
view.members = members; //@davidshimjs: To make navigation for customizing
// once for all
view.nav = buildNav(members);
attachModuleSymbols( find({ kind: ['class', 'function'], longname: {left: 'module:'} }),
members.modules );
for (var longname in helper.longnameToUrl) {
if ( hasOwnProp.call(helper.longnameToUrl, longname) ) {
// reuse 'members', which speeds things up a bit
var classes = taffy(members.classes);
classes = helper.find(classes, {longname: longname});
if (classes.length) {
generate('Class: ' + classes[0].longname, classes, helper.longnameToUrl[longname]);
}
var modules = taffy(members.modules);
modules = helper.find(modules, {longname: longname});
if (modules.length) {
generate('Module: ' + modules[0].longname, modules, helper.longnameToUrl[longname]);
}
var namespaces = taffy(members.namespaces);
namespaces = helper.find(namespaces, {longname: longname});
if (namespaces.length) {
generate('Namespace: ' + namespaces[0].longname, namespaces, helper.longnameToUrl[longname]);
}
var mixins = taffy(members.mixins);
mixins = helper.find(mixins, {longname: longname});
if (mixins.length) {
generate('Mixin: ' + mixins[0].longname, mixins, helper.longnameToUrl[longname]);
}
var externals = taffy(members.externals);
externals = helper.find(externals, {longname: longname});
if (externals.length) {
generate('External: ' + externals[0].longname, externals, helper.longnameToUrl[longname]);
}
}
// only output pretty-printed source files if requested; do this before generating any other
// pages, so the other pages can link to the source files
if (conf['default'].outputSourceFiles) {
generateSourceFiles(sourceFiles);
}
if (members.globals.length) { generate('Global', members.globals, 'global.html'); }
if (members.globals.length) { generate('Global', [{kind: 'globalobj'}], globalUrl); }
// index page displays information from package.json and lists files
var files = find({kind: 'file'}),
packages = find({kind: 'package'});
generate('Index',
packages.concat(
packages.concat(
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}]
).concat(files),
'index.html');
).concat(files),
indexUrl);
// set up the lists that we'll use to generate pages
var classes = taffy(members.classes);
var modules = taffy(members.modules);
var namespaces = taffy(members.namespaces);
var mixins = taffy(members.mixins);
var externals = taffy(members.externals);
for (var longname in helper.longnameToUrl) {
if ( hasOwnProp.call(helper.longnameToUrl, longname) ) {
var myClasses = helper.find(classes, {longname: longname});
if (myClasses.length) {
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname]);
}
var myModules = helper.find(modules, {longname: longname});
if (myModules.length) {
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
}
var myNamespaces = helper.find(namespaces, {longname: longname});
if (myNamespaces.length) {
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
}
var myMixins = helper.find(mixins, {longname: longname});
if (myMixins.length) {
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
}
var myExternals = helper.find(externals, {longname: longname});
if (myExternals.length) {
generate('External: ' + myExternals[0].name, myExternals, helper.longnameToUrl[longname]);
}
}
}
// TODO: move the tutorial functions to templateHelper.js
function generateTutorial(title, tutorial, filename) {
var tutorialData = {

View File

@@ -0,0 +1,229 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
<font-face units-per-em="1200" ascent="960" descent="-240" />
<missing-glyph horiz-adv-x="500" />
<glyph />
<glyph />
<glyph unicode="&#xd;" />
<glyph unicode=" " />
<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#x2000;" horiz-adv-x="652" />
<glyph unicode="&#x2001;" horiz-adv-x="1304" />
<glyph unicode="&#x2002;" horiz-adv-x="652" />
<glyph unicode="&#x2003;" horiz-adv-x="1304" />
<glyph unicode="&#x2004;" horiz-adv-x="434" />
<glyph unicode="&#x2005;" horiz-adv-x="326" />
<glyph unicode="&#x2006;" horiz-adv-x="217" />
<glyph unicode="&#x2007;" horiz-adv-x="217" />
<glyph unicode="&#x2008;" horiz-adv-x="163" />
<glyph unicode="&#x2009;" horiz-adv-x="260" />
<glyph unicode="&#x200a;" horiz-adv-x="72" />
<glyph unicode="&#x202f;" horiz-adv-x="260" />
<glyph unicode="&#x205f;" horiz-adv-x="326" />
<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
<glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
<glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
<glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
<glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
<glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
<glyph unicode="&#xe143;" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
<glyph unicode="&#xe144;" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
<glyph unicode="&#xe162;" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 61 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
(function() {
var counter = 0;
var numbered;
var source = document.getElementsByClassName('prettyprint source');
if (source && source[0]) {
source = source[0].getElementsByTagName('code')[0];
numbered = source.innerHTML.split('\n');
numbered = numbered.map(function(item) {
counter++;
return '<span id="line' + counter + '"></span>' + item;
});
source.innerHTML = numbered.join('\n');
}
})();

View File

@@ -0,0 +1,55 @@
$(function () {
// Search Items
$('#search').on('keyup', function (e) {
var value = $(this).val();
var $el = $('.navigation');
if (value) {
var regexp = new RegExp(value, 'i');
$el.find('li, .itemMembers').hide();
$el.find('li').each(function (i, v) {
var $item = $(v);
if ($item.data('name') && regexp.test($item.data('name'))) {
$item.show();
$item.closest('.itemMembers').show();
$item.closest('.item').show();
}
});
} else {
$el.find('.item, .itemMembers').show();
}
$el.find('.list').scrollTop(0);
});
// Toggle when click an item element
$('.navigation').on('click', '.title', function (e) {
$(this).parent().find('.itemMembers').toggle();
});
// Show an item related a current documentation automatically
var filename = $('.page-title').data('filename').replace(/\.[a-z]+$/, '');
var $currentItem = $('.navigation .item[data-name*="' + filename + '"]:eq(0)');
if ($currentItem.length) {
$currentItem
.remove()
.prependTo('.navigation .list')
.show()
.find('.itemMembers')
.show();
}
// Auto resizing on navigation
var _onResize = function () {
var height = $(window).height();
var $el = $('.navigation');
$el.height(height).find('.list').height(height - 133);
};
$(window).on('resize', _onResize);
_onResize();
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,371 @@
@import url(http://fonts.googleapis.com/css?family=Quattrocento+Sans:400,400italic,700);
.navbar-inverse .navbar-inner {
background: #1F6B75;
height: 50px;
}
.navbar-inverse .brand {
color: white;
font-size: 20px;
}
.navbar-inverse .container {
padding: 5px 0 5px 0;
}
body {
padding-top: 50px;
}
.nameContainer .name, .prettyprint.source .pln {
padding-top: 50px;
margin-top: -50px;
}
a {
position: relative;
z-index: 1;
}
.navigation li {
color: #888;
}
html,
body {
font-family: "Quattrocento Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
font-size: 1.0em;
background-color: #fff;
}
ul,
ol {
margin: 0;
padding: 0;
}
li {
list-style-type: none;
}
#wrap {
position: relative;
}
::-webkit-scrollbar {
width: 8px;
background-color: transparent;
}
::-webkit-scrollbar-thumb {
background-color: gray;
border-radius: 4px;
}
.navigation {
position: fixed;
float: left;
width: 250px;
height: 100%;
background-color: #2a2a2a;
}
.navigation .applicationName {
margin: 0;
margin-top: 15px;
padding: 10px 15px;
font: bold 1.25em Helvetica;
color: #fff;
}
.navigation .applicationName a {
color: #fff;
}
.navigation .search {
padding: 10px 15px;
}
.navigation .search input {
background-color: #333;
color: #fff;
border-color: #555;
}
.navigation .list {
padding: 10px 15px 0 15px;
position: relative;
overflow: auto;
width: 100%;
}
.navigation li.item {
margin-bottom: 8px;
padding-bottom: 8px;
border-bottom: 1px solid #333;
}
.navigation li.item a {
color: #bbb;
}
.navigation li.item a:hover {
color: #fff;
}
.navigation li.item .title {
cursor: pointer;
position: relative;
display: block;
font-size: 0.85em;
}
.navigation li.item .title a {
color: #e1e1e1;
}
.navigation li.item .title a:hover {
color: #fff;
}
.navigation li.item .title .static {
display: block;
border-radius: 3px;
background-color: #1F6B75;
color: #FFF;
font-size: 0.7em;
padding: 2px 4px;
float: right;
}
.navigation li.item .subtitle {
margin-top: 10px;
font: bold 0.7em Helvetica;
color: #1F6B75;
display: block;
}
.navigation li.item ul > li {
font-size: 0.75em;
padding-left: 8px;
margin-top: 2px;
}
.navigation li.item .itemMembers {
display: none;
}
.main {
padding: 20px 20px;
margin-left: 250px;
}
.main .page-title {
display: none;
}
.main h1 {
font-weight: bold;
font-size: 1.6em;
margin: 0;
}
.main h2 {
font-weight: bold;
font-size: 1.5em;
margin: 0;
}
.main h3 {
font-weight: bold;
font-size: 13px;
margin: 5px 0;
}
.main h4 {
font-weight: bold;
font-size: 1em;
}
.main h5 {
font-weight: bold;
font-size: 13px;
}
.main dd, .main .props {
font-size: 13px;
}
.main h4.name span.type {
margin-left: 10px;
}
.main h4.name span.glyphicon {
display: inline-block;
vertical-align: middle;
color: #c1c1c1;
margin-left: 7px;
}
.main h4.name span.returnType, .main h4.name span.type {
margin-left: 3px;
background-color: transparent!important;
color: gray!important;
}
.main span.static, .main span.stability {
display: inline-block;
border-radius: 3px;
background-color: #1F6B75 !important;
color: #fff;
vertical-align: top;
font-size: 0.8em;
padding: 2px 4px;
}
span.type-signature.static {
margin-right: 3px;
}
.main .subsection-title {
font-size: 15px;
margin-top: 30px;
color: #1F6B75;
}
.main .description {
margin-top: 10px;
font-size: 14px;
}
.main .description p {
font-size: 14px;
}
.main .tag-source {
font-size: 13px;
}
.main dt.tag-source {
margin-top: 5px;
}
.main dt.tag-todo {
font-size: 11px;
display: inline-block;
background-color: #2a6496;
color: #fff;
padding: 2px 4px;
border-radius: 5px;
}
.main .type-signature {
font-size: 13px;
}
.main .tag-deprecated {
display: inline-block;
font-size: 11px;
}
.main .important {
background-color: #ee7d7d;
color: #fff;
padding: 2px 4px;
border-radius: 5px;
}
.main .nameContainer {
position: relative;
margin-top: 20px;
padding-top: 5px;
border-top: 1px solid #e1e1e1;
}
.main .nameContainer .inherited {
display: inline-block;
border-radius: 3px;
background-color: #888!important;
vertical-align: top;
font-size: 0.8em;
padding: 2px 4px;
margin-right: 5px;
}
.main .nameContainer .inherited a {
color: #fff;
}
.main .nameContainer .tag-source {
position: absolute;
top: 17px;
right: 0;
font-size: 11px;
}
.main .nameContainer .tag-source a {
color: gray;
}
.main .nameContainer.inherited {
color: gray;
}
.main .nameContainer h4 {
margin-right: 150px;
line-height: 1.3;
}
.main .nameContainer h4 .signature {
font-size: 14px;
font-weight: normal;
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
.main pre {
font-size: 12px;
}
.main table {
width: 100%;
margin-bottom: 15px;
}
.main table th {
padding: 3px 3px;
}
.main table td {
vertical-align: top;
padding: 5px 3px;
}
.main table .name {
width: 110px;
}
.main table .type {
width: 60px;
color: #aaa;
font-size: 12px;
}
.main table .attributes {
width: 80px;
color: #aaa;
font-size: 12px;
}
.main table .description {
font-size: 13px;
}
.main table .description p {
margin: 0;
}
.main table .optional, .main table .repeatable {
float: left;
border-radius: 3px;
background-color: #ddd!important;
font-size: 0.7em;
padding: 2px 4px;
margin-right: 5px;
color: gray;
}
.main .readme p {
margin-top: 15px;
line-height: 1.2;
font-size: 0.9em;
}
.main .readme h1 {
font-size: 1.7em;
}
.main .readme h2 {
margin-top: 30px;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #e1e1e1;
}
.main .readme li {
font-size: 0.95em;
margin-bottom: 10px;
}
.main article ol,
.main article ul {
margin-left: 25px;
}
.main article ol > li {
list-style-type: decimal;
margin-bottom: 5px;
}
.main article ul > li {
margin-bottom: 5px;
list-style-type: disc;
}
footer {
margin: 15px 0;
padding-top: 15px;
border-top: 1px solid #e1e1e1;
font-family: "freight-text-pro", Georgia, Cambria, "Times New Roman", Times, serif;
font-size: 0.8em;
color: gray;
}
.main span.stability.deprecated {
background-color: #b94a48 !important;
color: #f2dede;
}
.main span.stability.experimental {
background-color: #F2CC79 !important;
color: #800F07;
}
.main span.stability.unstable {
background-color: #3a87ad !important;
color: #d9edf7;
}
.main span.stability.locked {
background-color: #468847 !important;
color: #dff0d8;
}
.main .readme table p {
margin-top: 0;
}
.main .readme table p, .main .readme table td {
font-size: 14px;
}
.main .readme table ul li {
margin-bottom: 0;
}

View File

@@ -1,285 +0,0 @@
html
{
overflow: auto;
background-color: #fff;
}
body
{
font: 14px "DejaVu Sans Condensed", "Liberation Sans", "Nimbus Sans L", Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans serif;
line-height: 130%;
color: #000;
background-color: #fff;
}
a {
color: #444;
}
a:visited {
color: #444;
}
a:active {
color: #444;
}
header
{
display: block;
padding: 6px 4px;
}
.class-description {
font-style: italic;
font-family: Palatino, 'Palatino Linotype', serif;
font-size: 130%;
line-height: 140%;
margin-bottom: 1em;
margin-top: 1em;
}
#main {
float: left;
width: 100%;
}
section
{
display: block;
background-color: #fff;
padding: 12px 24px;
border-bottom: 1px solid #ccc;
margin-right: 240px;
}
.variation {
display: none;
}
.optional:after {
content: "opt";
font-size: 60%;
color: #aaa;
font-style: italic;
font-weight: lighter;
}
nav
{
display: block;
float: left;
margin-left: -230px;
margin-top: 28px;
width: 220px;
border-left: 1px solid #ccc;
padding-left: 9px;
}
nav ul {
font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
font-size: 100%;
line-height: 17px;
padding:0;
margin:0;
list-style-type:none;
}
nav h2 a, nav h2 a:visited {
color: #A35A00;
text-decoration: none;
}
nav h3 {
margin-top: 12px;
}
nav li {
margin-top: 6px;
}
nav a {
color: #5C5954;
}
nav a:visited {
color: #5C5954;
}
nav a:active {
color: #5C5954;
}
footer {
display: block;
padding: 6px;
margin-top: 12px;
font-style: italic;
font-size: 90%;
}
h1
{
font-size: 200%;
font-weight: bold;
letter-spacing: -0.01em;
margin: 6px 0 9px 0;
}
h2
{
font-size: 170%;
font-weight: bold;
letter-spacing: -0.01em;
margin: 6px 0 3px 0;
}
h3
{
font-size: 150%;
font-weight: bold;
letter-spacing: -0.01em;
margin-top: 16px;
margin: 6px 0 3px 0;
}
h4
{
font-size: 130%;
font-weight: bold;
letter-spacing: -0.01em;
margin-top: 16px;
margin: 18px 0 3px 0;
color: #A35A00;
}
h5, .container-overview .subsection-title
{
font-size: 120%;
font-weight: bold;
letter-spacing: -0.01em;
margin: 8px 0 3px -16px;
}
h6
{
font-size: 100%;
letter-spacing: -0.01em;
margin: 6px 0 3px 0;
font-style: italic;
}
.protected {
display: none;
}
dt.tag-source, dd.tag-source {
display: none;
}
.ancestors { color: #999; }
.ancestors a
{
color: #999 !important;
text-decoration: none;
}
.important
{
font-weight: bold;
color: #950B02;
}
.yes-def {
text-indent: -1000px;
}
.type-signature {
color: #aaa;
}
.name, .signature {
font-family: Consolas, "Lucida Console", Monaco, monospace;
}
.details { margin-top: 14px; }
.details dt { width:110px; float:left; border-left: 2px solid #DDD; padding-left: 10px; padding-top: 6px; }
.details dd { margin-left: 50px; }
.details ul { margin: 0; }
.details ul { list-style-type: none; }
.details li { margin-left: 30px; padding-top: 6px; }
.description {
margin-bottom: 1em;
margin-left: -16px;
margin-top: 1em;
}
.code-caption
{
font-style: italic;
font-family: Palatino, 'Palatino Linotype', serif;
font-size: 107%;
margin: 0;
}
.prettyprint
{
border: 1px solid #ddd;
width: 80%;
}
.prettyprint code
{
font-family: Consolas, 'Lucida Console', Monaco, monospace;
font-size: 100%;
line-height: 18px;
display: block;
padding: 4px 12px;
margin: 0;
background-color: #fff;
color: #000;
border-left: 3px #ddd solid;
}
.params, .props
{
border-spacing: 0;
border: 0;
border-collapse: collapse;
}
.params .name, .props .name, .name code {
color: #A35A00;
font-family: Consolas, 'Lucida Console', Monaco, monospace;
font-size: 100%;
}
.params td, .params th, .props td, .props th
{
border: 1px solid #ddd;
margin: 0px;
text-align: left;
vertical-align: top;
padding: 4px 6px;
display: table-cell;
}
.params thead tr, .props thead tr
{
background-color: #ddd;
font-weight: bold;
}
.params .params thead tr, .props .props thead tr
{
background-color: #fff;
font-weight: bold;
}
.params th, .props th { border-right: 1px solid #aaa; }
.params thead .last, .props thead .last { border-right: 1px solid #ddd; }
.disabled {
color: #454545;
}

View File

@@ -5,15 +5,15 @@
<?js if (doc.kind === 'mainpage' || (doc.kind === 'package')) { ?>
<?js= self.partial('mainpage.tmpl', doc) ?>
<?js } else if (doc.kind === 'source') { ?>
<?js= self.partial('source.tmpl', doc) ?>
<?js } else { ?>
<section>
<header>
<h2><?js if (doc.ancestors && doc.ancestors.length) { ?>
<span class="ancestors"><?js= doc.ancestors.join('') ?></span>
<?js } ?>
<?js= doc.longname ?>
<span class="ancestors"><?js= doc.ancestors.join('') ?></span><?js } ?><?js= doc.name ?>
<?js if (doc.variation) { ?>
<sup class="variation"><?js= doc.variation ?></sup>
<?js } ?></h2>
@@ -44,6 +44,20 @@
<?js } ?>
</div>
<?js if (doc.kind == 'class') {
var subclasses = self.find(function() {
return this.augments && this.augments.indexOf(doc.longname) > -1;
})
if (subclasses.length) {
?>
<h3 class="subsection-title">Subclasses</h3>
<ul><?js subclasses.forEach(function(s) { ?>
<li><?js= self.linkto(s.longname, s.longname) ?>
<?js= (s.interface ? '(Interface)' : '') ?>
</li>
<?js }); ?></ul>
<?js } } ?>
<?js if (doc.augments && doc.augments.length) { ?>
<h3 class="subsection-title">Extends</h3>
@@ -75,7 +89,7 @@
<h3 class="subsection-title">Classes</h3>
<dl><?js classes.forEach(function(c) { ?>
<dt><?js= self.linkto(c.longname, c.longname) ?></dt>
<dt><?js= self.linkto(c.longname, c.name) ?></dt>
<dd><?js if (c.summary) { ?><?js= c.summary ?><?js } ?></dd>
<?js }); ?></dl>
<?js } ?>
@@ -87,13 +101,21 @@
<h3 class="subsection-title">Namespaces</h3>
<dl><?js namespaces.forEach(function(n) { ?>
<dt><a href="namespaces.html#<?js= n.longname ?>"><?js= self.linkto(n.longname, n.longname) ?></a></dt>
<dt><a href="namespaces.html#<?js= n.longname ?>"><?js= self.linkto(n.longname, n.name) ?></a></dt>
<dd><?js if (n.summary) { ?><?js= n.summary ?><?js } ?></dd>
<?js }); ?></dl>
<?js } ?>
<?js
var members = self.find({kind: 'member', memberof: title === 'Globals'? {isUndefined: true} : doc.longname});
if (doc.observables && doc.observables.length) {
?>
<h3 class="subsection-title">Observable Properties</h3>
<dl><?js= self.partial('observables.tmpl', doc.observables) ?></dl>
<?js } ?>
<?js
var members = self.find({kind: 'member', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
if (members && members.length && members.forEach) {
?>
<h3 class="subsection-title">Members</h3>
@@ -104,7 +126,7 @@
<?js } ?>
<?js
var methods = self.find({kind: 'function', memberof: title === 'Globals'? {isUndefined: true} : doc.longname});
var methods = self.find({kind: 'function', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
if (methods && methods.length && methods.forEach) {
?>
<h3 class="subsection-title">Methods</h3>
@@ -115,18 +137,27 @@
<?js } ?>
<?js
var typedefs = self.find({kind: 'typedef', memberof: doc.longname});
var typedefs = self.find({kind: 'typedef', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
if (typedefs && typedefs.length && typedefs.forEach) {
?>
<h3 class="subsection-title">TypeDefs</h3>
<h3 class="subsection-title">Type Definitions</h3>
<dl><?js typedefs.forEach(function(e) { ?>
<?js= self.partial('members.tmpl', e) ?>
<?js }); ?></dl>
<dl><?js typedefs.forEach(function(e) {
if (e.signature) {
?>
<?js= self.partial('method.tmpl', e) ?>
<?js
}
else {
?>
<?js= self.partial('members.tmpl', e) ?>
<?js
}
}); ?></dl>
<?js } ?>
<?js
var events = self.find({kind: 'event', memberof: doc.longname});
var events = self.find({kind: 'event', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
if (events && events.length && events.forEach) {
?>
<h3 class="subsection-title">Events</h3>

View File

@@ -14,58 +14,46 @@ var self = this;
<?js } ?>
<?js if (data.version) {?>
<dt class="tag-version">Version:</dt>
<dd class="tag-version"><ul class="dummy"><li><?js= version ?></li></ul></dd>
<?js } ?>
<?js if (data.since) {?>
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li><?js= since ?></dd>
<?js } ?>
<?js if (data.version) {?>
<dt class="tag-version">Version:</dt>
<dd class="tag-version"><ul class="dummy"><li><?js= version ?></li></ul></dd>
<?js } ?>
<?js if (data.since) {?>
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li><?js= since ?></dd>
<?js } ?>
<?js if (data.inherited && data.inherits) { ?>
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<?js= this.linkto(data.inherits, this.htmlsafe(data.inherits)) ?>
</li></dd>
<?js } ?>
<?js if (data.deprecated) { ?>
<dt class="important tag-deprecated">Deprecated:</dt><?js
<?js if (data.deprecated) { ?>
<dt class="important tag-deprecated">Deprecated</dt><?js
if (data.deprecated === true) { ?><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd><?js }
else { ?><dd><ul class="dummy"><li><?js= data.deprecated ?></li><ul></dd><?js }
?>
<?js } ?>
<?js if (data.author && author.length) {?>
<dt class="tag-author">Author:</dt>
<dd class="tag-author">
<?js if (data.author && author.length) {?>
<dt class="tag-author">Author:</dt>
<dd class="tag-author">
<ul><?js author.forEach(function(a) { ?>
<li><?js= a ?></li>
<li><?js= self.resolveAuthorLinks(a) ?></li>
<?js }); ?></ul>
</dd>
<?js } ?>
<?js if (data.copyright) {?>
<dt class="tag-copyright">Copyright:</dt>
<dd class="tag-copyright"><ul class="dummy"><li><?js= copyright ?></li></ul></dd>
<?js } ?>
<?js if (data.license) {?>
<dt class="tag-license">License:</dt>
<dd class="tag-license"><ul class="dummy"><li><?js= license ?></li></ul></dd>
<?js } ?>
<?js if (data.defaultvalue) {?>
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy"><li><?js= data.defaultvalue ?></li></ul></dd>
<?js } ?>
<?js if (data.meta) {?>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li><?js= meta.filename ?>, line <?js= meta.lineno ?></li></ul></dd>
<?js } ?>
</dd>
<?js } ?>
<?js if (data.copyright) {?>
<dt class="tag-copyright">Copyright:</dt>
<dd class="tag-copyright"><ul class="dummy"><li><?js= copyright ?></li></ul></dd>
<?js } ?>
<?js if (data.license) {?>
<dt class="tag-license">License:</dt>
<dd class="tag-license"><ul class="dummy"><li><?js= license ?></li></ul></dd>
<?js } ?>
<?js if (data.defaultvalue) {?>
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy"><li><?js= data.defaultvalue ?></li></ul></dd>
<?js } ?>
<?js if (data.tutorials && tutorials.length) {?>
<dt class="tag-tutorial">Tutorials:</dt>
@@ -75,22 +63,22 @@ var self = this;
<?js }); ?></ul>
</dd>
<?js } ?>
<?js if (data.see && see.length) {?>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<?js if (data.see && see.length) {?>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul><?js see.forEach(function(s) { ?>
<li><?js= self.linkto(s) ?></li>
<?js }); ?></ul>
</dd>
<?js } ?>
<?js if (data.todo && todo.length) {?>
<dt class="tag-todo">To Do:</dt>
<dd class="tag-todo">
</dd>
<?js } ?>
<?js if (data.todo && todo.length) {?>
<dt class="tag-todo">TODO</dt>
<dd class="tag-todo">
<ul><?js todo.forEach(function(t) { ?>
<li><?js= t ?></li>
<?js }); ?></ul>
</dd>
<?js } ?>
</dd>
<?js } ?>
</dl>

View File

@@ -1,2 +1,2 @@
<?js var data = obj; ?>
<pre><code><?js= data ?></code></pre>
<pre class="prettyprint"><code><?js= data ?></code></pre>

View File

@@ -5,7 +5,12 @@
?>
<p class="code-caption"><?js= example.caption ?></p>
<?js } ?>
<?js if (example.code.toString().indexOf('<pre>') === -1) { ?>
<pre class="prettyprint"><code><?js= example.code ?></code></pre>
<?js } else { ?>
<?js= example.code.replace(/<pre>/g, '<pre class="prettyprint">') ?>
<?js } ?>
<?js
});
?>

View File

@@ -1,19 +1,30 @@
<?js
var data = obj;
if (data.description) {
var data = obj;
?>
<div class="param-desc">
<?js= description ?>
</div>
<?js } ?>
<?js if (data.type && data.type.names) {?>
<?js if (data.description && data.type && data.type.names) { ?>
<dl>
<dt>
Type
</dt>
<dd>
<?js= this.partial('type.tmpl', data.type.names) ?>
</dd>
<dt>
<div class="param-desc">
<?js= data.description ?>
</div>
</dt>
<dt>
<dl>
<dt>
Type
</dt>
<dd>
<?js= this.partial('type.tmpl', data.type.names) ?>
</dd>
</dl>
</dt>
</dl>
<?js } ?>
<?js } else { ?>
<div class="param-desc">
<?js if (data.description) { ?>
<?js= data.description ?>
<?js } else if (data.type && data.type.names) { ?>
<?js= this.partial('type.tmpl', data.type.names) ?>
<?js } ?>
</div>
<?js } ?>

View File

@@ -1,4 +0,0 @@
<?js var data = obj; ?>
<li>
<?js= data ?>
</li>

View File

@@ -3,43 +3,40 @@
<head>
<meta charset="utf-8">
<title>OpenLayers 3 API Documentation - <?js= title ?></title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<script src="scripts/jquery.min.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-jsdoc.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/bootstrap.min.css">
<link type="text/css" rel="stylesheet" href="styles/jaguar.css">
</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</a>
<a class="brand" href="index.html">API Documentation</a>
</div>
</div>
</div>
<div id="main">
<?js= content ?>
<div id="wrap" class="clearfix">
<?js= this.partial('navigation.tmpl', this) ?>
<div class="main">
<h1 class="page-title" data-filename="<?js= filename ?>"><?js= title ?></h1>
<?js= content ?>
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc <?js= env.version.number ?></a> on <?js= (new Date()) ?>
</footer>
</div>
</div>
<nav>
<?js= this.nav ?>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3</a>
</footer>
<script> prettyPrint(); </script>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/main.js"></script>
</body>
</html>
</html>

View File

@@ -9,6 +9,6 @@ var self = this;
<?js if (data.readme) { ?>
<section>
<article><?js= data.readme ?></article>
<article class="readme"><?js= data.readme ?></article>
</section>
<?js } ?>
<?js } ?>

View File

@@ -1,12 +1,26 @@
<?js var data = obj; ?>
<dt class="<?js= data.access ?>">
<h4 class="name" id="<?js= id ?>"><?js= data.attribs + name + data.signature ?></h4>
<?js
var data = obj;
var self = this;
var typeSignature = '';
if (data.type && data.type.names) {
data.type.names.forEach(function (name) {
typeSignature += '<span class="type-signature type ' + name.toLowerCase() + '">{' + self.linkto(name, self.htmlsafe(name)) + '}</span> ';
});
}
?>
<dt>
<div class="nameContainer">
<h4 class="name" id="<?js= id ?>">
<?js= data.attribs + (data.scope === 'static' ? longname : name) + typeSignature ?>
<?js= this.partial('stability.tmpl', data) ?>
</h4>
</div>
<?js if (data.summary) { ?>
<p class="summary"><?js= summary ?></p>
<?js } ?>
</dt>
<dd class="<?js= data.access ?>">
<dd>
<?js if (data.description) { ?>
<div class="description">
<?js= data.description ?>

View File

@@ -3,8 +3,22 @@ var data = obj;
var self = this;
?>
<dt>
<h4 class="name" id="<?js= id ?>"><?js= data.attribs + (kind == 'class'? 'new ':'') + name + data.signature ?></h4>
<div class="nameContainer<?js if (data.inherited) { ?> inherited<?js } ?>">
<?js if (data.stability || kind !== 'class') { ?>
<h4 class="name" id="<?js= id ?>">
<?js= data.attribs + (kind === 'class' ? 'new ' : '') + (data.scope === 'static' ? longname : name) + (kind !== 'event' ? data.signature : '') ?>
<?js if (data.inherited || data.inherits) { ?>
<span class="inherited"><?js= this.linkto(data.inherits, 'inherited') ?></span>
<?js } ?>
<?js= this.partial('stability.tmpl', data) ?>
</h4>
<?js if (data.meta) {?>
<div class="tag-source">
<?js= self.linkto(meta.filename) ?>, <?js= self.linkto(meta.filename, 'line ' + meta.lineno, null, 'line' + meta.lineno) ?>
</div>
<?js } ?>
<?js } ?>
</div>
<?js if (data.summary) { ?>
<p class="summary"><?js= summary ?></p>
<?js } ?>
@@ -31,17 +45,55 @@ var self = this;
<ul><li><?js= this.linkto(data['this'], data['this']) ?></li></ul>
<?js } ?>
<?js if (data.stability || kind !== 'class') { ?>
<?js if (data.params && params.length) { ?>
<h5>Parameters:</h5>
<?js= this.partial('params.tmpl', params) ?>
<?js } ?>
<?js } ?>
<?js= this.partial('details.tmpl', data) ?>
<?js if (data.fires && fires.length) { ?>
<h5>Fires:</h5>
<ul><?js fires.forEach(function(f) { ?>
<?js= self.partial('fires.tmpl', self.linkto(f) ) ?>
<ul><?js fires.forEach(function(f) {
var parts = f.split(/#?event:/);
var type = parts.pop();
var eventClassName = parts[0];
parts = type.split(' ');
type = parts.shift();
var description = parts.length ? parts.join(' ') : '';
var eventDoclet = self.find({longname: f})[0];
if (eventDoclet && !description && eventDoclet.description) {
description = eventDoclet.description.replace(/<[^>]*>/g, '');
}
?>
<li>
<code><?js= self.linkto(f, type) ?></code>
<?js if (eventClassName) {
var eventClass = self.find({longname: eventClassName})[0];
if (eventClass) { ?>
(<?js= self.linkto(eventClass.longname) ?>)
<?js } ?>
<?js } ?>
<?js= self.partial('stability.tmpl', eventDoclet || (data.stability ? data : {stability: 'experimental'})) ?>
<?js if (description) { ?> -
<?js= description ?>
<?js } ?>
</li>
<?js }); ?></ul>
<?js } ?>
<?js if (data.listens && listens.length) { ?>
<h5>Listens to Events:</h5>
<ul><?js listens.forEach(function(f) { ?>
<li><?js= self.linkto(f) ?></li>
<?js }); ?></ul>
<?js } ?>
<?js if (data.listeners && listeners.length) { ?>
<h5>Listeners of This Event:</h5>
<ul><?js listeners.forEach(function(f) { ?>
<li><?js= self.linkto(f) ?></li>
<?js }); ?></ul>
<?js } ?>
@@ -58,16 +110,9 @@ var self = this;
} } ?>
<?js if (data.returns && returns.length) { ?>
<h5>Returns:</h5>
<?js if (returns.length > 1) { ?><ul><?js
returns.forEach(function(r) { ?>
<li><?js= self.partial('returns.tmpl', r) ?></li>
<?js });
?></ul><?js } else {
returns.forEach(function(r) { ?>
<?js= self.partial('returns.tmpl', r) ?>
<?js });
} } ?>
<?js if (returns.length > 1) { ?><h5>Returns:</h5><?js } ?>
<?js= self.partial('returns.tmpl', data.returns) ?>
<?js } ?>
<?js if (data.examples && examples.length) { ?>
<h5>Example<?js= examples.length > 1? 's':'' ?></h5>

View File

@@ -0,0 +1,96 @@
<?js
var self = this;
?>
<div class="navigation">
<div class="search">
<input id="search" type="text" class="form-control input-sm" placeholder="Search Documentation">
</div>
<ul class="list">
<?js
this.nav.forEach(function (item) {
?>
<li class="item" data-name="<?js= item.longname ?>">
<span class="title">
<?js= self.linkto(item.longname, item.longname) ?>
<?js if (item.type === 'namespace' &&
(item.members.length + item.typedefs.length + item.methods.length +
item.events.length > 0)) { ?>
<span class="static">static</span>
<?js } ?>
</span>
<ul class="members itemMembers">
<?js
if (item.members.length) {
?>
<span class="subtitle">Members</span>
<?js
item.members.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<?js
});
}
?>
</ul>
<ul class="typedefs itemMembers">
<?js
if (item.typedefs.length) {
?>
<span class="subtitle">Typedefs</span>
<?js
item.typedefs.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<?js
});
}
?>
</ul>
<ul class="methods itemMembers">
<?js
if (item.methods.length) {
?>
<span class="subtitle">Methods</span>
<?js
item.methods.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<?js
});
}
?>
</ul>
<ul class="fires itemMembers">
<?js
if (item.fires && item.fires.length) {
?>
<span class="subtitle">Fires</span>
<?js
item.fires.forEach(function (v) {
v = self.find({longname: v})[0] || {longname: v, name: v.split(/#?event:/)[1]};
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<?js
});
}
?>
</ul>
<ul class="events itemMembers">
<?js
if (item.events.length) {
?>
<span class="subtitle">Events</span>
<?js
item.events.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
<?js
});
}
?>
</ul>
</li>
<?js }); ?>
</ul>
</div>

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><a href="ol.ObjectEvent.html">ol.ObjectEvent</a> type</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

@@ -21,8 +21,16 @@
params.hasDefault = false;
params.hasName = false;
var colspan = 2;
params.forEach(function(param) {
if (!param) { return; }
if (param.type && param.type.names && param.type.names.indexOf('undefined') !== -1) {
param.optional = true;
}
if (param.name.indexOf('var_') == 0) {
params.hasAttributes = true;
param.variable = true;
}
if (param.optional || param.nullable) {
params.hasAttributes = true;
@@ -33,6 +41,7 @@
}
if (typeof param.defaultvalue !== 'undefined') {
++colspan;
params.hasDefault = true;
}
});
@@ -47,10 +56,6 @@
<th>Type</th>
<?js if (params.hasAttributes) {?>
<th>Argument</th>
<?js } ?>
<?js if (params.hasDefault) {?>
<th>Default</th>
<?js } ?>
@@ -71,24 +76,13 @@
<td class="name"><code><?js= param.name.replace(/^opt_/, "") ?></code></td>
<?js } ?>
<?js if (!param.subparams) {?>
<td class="type">
<?js if (param.type && param.type.names) {?>
<?js= self.partial('type.tmpl', param.type.names) ?>
<?js } ?>
</td>
<?js if (params.hasAttributes) {?>
<td class="attributes">
<?js if (param.optional) { ?>
&lt;optional><br>
<?js } ?>
<?js if (param.nullable) { ?>
&lt;nullable><br>
<?js } ?>
</td>
<?js } ?>
<?js if (params.hasDefault) {?>
<td class="default">
<?js if (typeof param.defaultvalue !== 'undefined') { ?>
@@ -96,9 +90,22 @@
<?js } ?>
</td>
<?js } ?>
<?js } ?>
<td class="description last"><?js= (param.optional ? "(Optional) " : "") + param.description ?><?js if (param.subparams) { ?>
<h6>Properties</h6>
<td<?js= (param.subparams ? ' colspan=' + colspan : ' ') ?> class="description last">
<?js if (params.hasAttributes) {?>
<?js if (param.optional) { ?>
<span class="optional">optional</span>
<?js } ?>
<?js if (param.nullable) { ?>
<span class="nullable">nullable</span>
<?js } ?>
<?js if (param.variable) { ?>
<span class="repeatable">repeatable</span>
<?js } ?>
<?js } ?>
<?js= param.description ?><?js if (param.subparams) { ?>
<?js= self.partial('params.tmpl', param.subparams) ?>
<?js } ?></td>
</tr>

View File

@@ -5,7 +5,7 @@
var parentProp = null;
props.forEach(function(prop, i) {
if (!prop) { return; }
if ( parentProp && prop.name.indexOf(parentProp.name + '.') === 0 ) {
if ( parentProp && prop.name && prop.name.indexOf(parentProp.name + '.') === 0 ) {
prop.name = prop.name.substr(parentProp.name.length+1);
parentProp.subprops = parentProp.subprops || [];
parentProp.subprops.push(prop);

View File

@@ -1,19 +1,72 @@
<?js
var data = obj;
if (data.description) {
?>
<div class="param-desc">
<?js= description ?>
</div>
<?js } ?>
var returns = obj;
var parentReturn = null;
<?js if (data.type && data.type.names) {?>
<dl>
<dt>
Type
</dt>
<dd>
<?js= this.partial('type.tmpl', data.type.names) ?>
</dd>
</dl>
returns.forEach(function (ret, i) {
if (ret && (ret.description || ret.name)) {
ret.description = ret.description.toString().replace(/<\/?p>/g, '');
var isNamed = ret.name ? true : false;
var name = ret.name || ret.description;
var startSpacePos = name.indexOf(" ");
if (parentReturn !== null && name.indexOf(parentReturn.name + '.') === 0) {
ret.name = isNamed ? name.substr(parentReturn.name.length + 1) : name.substr(parentReturn.name.length + 1, startSpacePos - (parentReturn.name.length + 1));
parentReturn.subReturns = parentReturn.subReturns || [];
parentReturn.subReturns.push(ret);
returns[i] = null;
} else {
if (!isNamed) {
ret.name = ret.description.substr(0, startSpacePos !== -1 ? startSpacePos : ret.description.length);
}
parentReturn = ret;
}
}
});
?>
<?js
if (returns.length > 1) {
?>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<?js
var self = this;
returns.forEach(function(ret) {
if (!ret) {
return false;
}
?>
<tr>
<td class="name"><code><?js= ret.name ?></code></td>
<td class="type">
<?js
if (ret.type && ret.type.names) {
ret.type.names.forEach(function(name, i) { ?>
<?js= self.linkto(name, self.htmlsafe(name)) ?>
<?js if (i < ret.type.names.length-1) { ?> | <?js } ?>
<?js });
}
?>
</td>
<td class="description last"><?js= ret.description ?><?js if (ret.subReturns) { ?>
<?js= self.partial('returns.tmpl', ret.subReturns) ?>
<?js } ?></td>
</tr>
<?js }); ?>
</tbody>
</table>
<?js } else if (returns[0].description) { ?>
<h5>Returns:</h5>
<?js= returns[0].description ?>
<br />
<?js } ?>

View File

@@ -0,0 +1,7 @@
<?js
var data = obj;
var self = this;
if (data.stability != 'stable') { ?>
<span class="stability <?js= data.stability ?>"><?js= data.stability ?></span>
<?js } ?>

View File

@@ -28,3 +28,6 @@ page.open(examplePath, function(s) {
}
phantom.exit(exitCode);
});
page.onConsoleMessage = function(msg) {
console.log('console:', msg);
};

View File

@@ -1,202 +0,0 @@
#!/usr/bin/env python
#
# Copyright 2009 The Closure Library Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS-IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Generates out a Closure deps.js file given a list of JavaScript sources.
Paths can be specified as arguments or (more commonly) specifying trees
with the flags (call with --help for descriptions).
Usage: depswriter.py [path/to/js1.js [path/to/js2.js] ...]
"""
import logging
import optparse
import os
import posixpath
import shlex
import sys
import source
import treescan
__author__ = 'nnaze@google.com (Nathan Naze)'
def MakeDepsFile(source_map):
"""Make a generated deps file.
Args:
source_map: A dict map of the source path to source.Source object.
Returns:
str, A generated deps file source.
"""
# Write in path alphabetical order
paths = sorted(source_map.keys())
lines = []
for path in paths:
js_source = source_map[path]
# We don't need to add entries that don't provide anything.
if js_source.provides:
lines.append(_GetDepsLine(path, js_source))
return ''.join(lines)
def _GetDepsLine(path, js_source):
"""Get a deps.js file string for a source."""
provides = sorted(js_source.provides)
requires = sorted(js_source.requires)
return 'goog.addDependency(\'%s\', %s, %s);\n' % (path, provides, requires)
def _GetOptionsParser():
"""Get the options parser."""
parser = optparse.OptionParser(__doc__)
parser.add_option('--output_file',
dest='output_file',
action='store',
help=('If specified, write output to this path instead of '
'writing to standard output.'))
parser.add_option('--root',
dest='roots',
default=[],
action='append',
help='A root directory to scan for JS source files. '
'Paths of JS files in generated deps file will be '
'relative to this path. This flag may be specified '
'multiple times.')
parser.add_option('--root_with_prefix',
dest='roots_with_prefix',
default=[],
action='append',
help='A root directory to scan for JS source files, plus '
'a prefix (if either contains a space, surround with '
'quotes). Paths in generated deps file will be relative '
'to the root, but preceded by the prefix. This flag '
'may be specified multiple times.')
parser.add_option('--path_with_depspath',
dest='paths_with_depspath',
default=[],
action='append',
help='A path to a source file and an alternate path to '
'the file in the generated deps file (if either contains '
'a space, surround with whitespace). This flag may be '
'specified multiple times.')
return parser
def _NormalizePathSeparators(path):
"""Replaces OS-specific path separators with POSIX-style slashes.
Args:
path: str, A file path.
Returns:
str, The path with any OS-specific path separators (such as backslash on
Windows) replaced with URL-compatible forward slashes. A no-op on systems
that use POSIX paths.
"""
return path.replace(os.sep, posixpath.sep)
def _GetRelativePathToSourceDict(root, prefix=''):
"""Scans a top root directory for .js sources.
Args:
root: str, Root directory.
prefix: str, Prefix for returned paths.
Returns:
dict, A map of relative paths (with prefix, if given), to source.Source
objects.
"""
# Remember and restore the cwd when we're done. We work from the root so
# that paths are relative from the root.
start_wd = os.getcwd()
os.chdir(root)
path_to_source = {}
for path in treescan.ScanTreeForJsFiles('.'):
prefixed_path = _NormalizePathSeparators(os.path.join(prefix, path))
path_to_source[prefixed_path] = source.Source(source.GetFileContents(path))
os.chdir(start_wd)
return path_to_source
def _GetPair(s):
"""Return a string as a shell-parsed tuple. Two values expected."""
try:
# shlex uses '\' as an escape character, so they must be escaped.
s = s.replace('\\', '\\\\')
first, second = shlex.split(s)
return (first, second)
except:
raise Exception('Unable to parse input line as a pair: %s' % s)
def main():
"""CLI frontend to MakeDepsFile."""
logging.basicConfig(format=(sys.argv[0] + ': %(message)s'),
level=logging.INFO)
options, args = _GetOptionsParser().parse_args()
path_to_source = {}
# Roots without prefixes
for root in options.roots:
path_to_source.update(_GetRelativePathToSourceDict(root))
# Roots with prefixes
for root_and_prefix in options.roots_with_prefix:
root, prefix = _GetPair(root_and_prefix)
path_to_source.update(_GetRelativePathToSourceDict(root, prefix=prefix))
# Source paths
for path in args:
path_to_source[path] = source.Source(source.GetFileContents(path))
# Source paths with alternate deps paths
for path_with_depspath in options.paths_with_depspath:
srcpath, depspath = _GetPair(path_with_depspath)
path_to_source[depspath] = source.Source(source.GetFileContents(srcpath))
# Make our output pipe.
if options.output_file:
out = open(options.output_file, 'w')
else:
out = sys.stdout
out.write('// This file was autogenerated by %s.\n' % sys.argv[0])
out.write('// Please do not edit.\n')
out.write(MakeDepsFile(path_to_source))
if __name__ == '__main__':
main()

View File

@@ -1,114 +0,0 @@
# Copyright 2009 The Closure Library Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS-IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Scans a source JS file for its provided and required namespaces.
Simple class to scan a JavaScript file and express its dependencies.
"""
__author__ = 'nnaze@google.com'
import re
_BASE_REGEX_STRING = '^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)'
_PROVIDE_REGEX = re.compile(_BASE_REGEX_STRING % 'provide')
_REQUIRES_REGEX = re.compile(_BASE_REGEX_STRING % 'require')
# This line identifies base.js and should match the line in that file.
_GOOG_BASE_LINE = (
'var goog = goog || {}; // Identifies this file as the Closure base.')
class Source(object):
"""Scans a JavaScript source for its provided and required namespaces."""
# Matches a "/* ... */" comment.
# Note: We can't definitively distinguish a "/*" in a string literal without a
# state machine tokenizer. We'll assume that a line starting with whitespace
# and "/*" is a comment.
_COMMENT_REGEX = re.compile(
r"""
^\s* # Start of a new line and whitespace
/\* # Opening "/*"
.*? # Non greedy match of any characters (including newlines)
\*/ # Closing "*/""",
re.MULTILINE | re.DOTALL | re.VERBOSE)
def __init__(self, source):
"""Initialize a source.
Args:
source: str, The JavaScript source.
"""
self.provides = set()
self.requires = set()
self._source = source
self._ScanSource()
def __str__(self):
return 'Source %s' % self._path
def GetSource(self):
"""Get the source as a string."""
return self._source
@classmethod
def _StripComments(cls, source):
return cls._COMMENT_REGEX.sub('', source)
def _ScanSource(self):
"""Fill in provides and requires by scanning the source."""
source = self._StripComments(self.GetSource())
source_lines = source.splitlines()
for line in source_lines:
match = _PROVIDE_REGEX.match(line)
if match:
self.provides.add(match.group(1))
match = _REQUIRES_REGEX.match(line)
if match:
self.requires.add(match.group(1))
# Closure's base file implicitly provides 'goog'.
for line in source_lines:
if line == _GOOG_BASE_LINE:
if len(self.provides) or len(self.requires):
raise Exception(
'Base files should not provide or require namespaces.')
self.provides.add('goog')
def GetFileContents(path):
"""Get a file's contents as a string.
Args:
path: str, Path to file.
Returns:
str, Contents of file.
Raises:
IOError: An error occurred opening or reading the file.
"""
fileobj = open(path)
try:
return fileobj.read()
finally:
fileobj.close()

View File

@@ -1,78 +0,0 @@
#!/usr/bin/env python
#
# Copyright 2010 The Closure Library Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS-IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Shared utility functions for scanning directory trees."""
import os
import re
__author__ = 'nnaze@google.com (Nathan Naze)'
# Matches a .js file path.
_JS_FILE_REGEX = re.compile(r'^.+\.js$')
def ScanTreeForJsFiles(root):
"""Scans a directory tree for JavaScript files.
Args:
root: str, Path to a root directory.
Returns:
An iterable of paths to JS files, relative to cwd.
"""
return ScanTree(root, path_filter=_JS_FILE_REGEX)
def ScanTree(root, path_filter=None, ignore_hidden=True):
"""Scans a directory tree for files.
Args:
root: str, Path to a root directory.
path_filter: A regular expression filter. If set, only paths matching
the path_filter are returned.
ignore_hidden: If True, do not follow or return hidden directories or files
(those starting with a '.' character).
Yields:
A string path to files, relative to cwd.
"""
def OnError(os_error):
raise os_error
for dirpath, dirnames, filenames in os.walk(root, onerror=OnError):
# os.walk allows us to modify dirnames to prevent decent into particular
# directories. Avoid hidden directories.
for dirname in dirnames:
if ignore_hidden and dirname.startswith('.'):
dirnames.remove(dirname)
for filename in filenames:
# nothing that starts with '.'
if ignore_hidden and filename.startswith('.'):
continue
fullpath = os.path.join(dirpath, filename)
if path_filter and not path_filter.match(fullpath):
continue
yield os.path.normpath(fullpath)

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, 'rU').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):
sys.stdout.write(require)
for filename in sorted(examples.keys()):
sys.stdout.write('// ' + filename + '\n')
sys.stdout.write('(function(){\n')
for line in examples[filename]:
sys.stdout.write(line)
sys.stdout.write('})();\n')
if __name__ == '__main__':
sys.exit(main(sys.argv))

View File

@@ -1,412 +0,0 @@
#!/usr/bin/env python
from operator import attrgetter
from optparse import OptionParser
import re
import sys
def simplerepr(obj):
keys = sorted(key for key in obj.__dict__.keys() if not key.startswith('_'))
attrs = ''.join(' %s=%r' % (key, obj.__dict__[key]) for key in keys)
return '<%s%s>' % (obj.__class__.__name__, attrs)
class Exportable(object):
def __init__(self, name):
self.name = name
__repr__ = simplerepr
def export(self):
return ''
def extern(self):
return ''
def typedef(self):
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 = /** @type {%s} */ (options);\n' % (self.object_literal.name,));
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.extend('\n'.join(' arg.%s = options.%s;' % (key, key) for key in sorted(self.object_literal.prop_types.keys())))
lines.append('\n }\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 Function(Exportable):
def __init__(self, name, object_literal, return_type, objects):
Exportable.__init__(self, name)
self.object_literal = object_literal
self.return_type = return_type
self.objects = objects
__repr__ = simplerepr
def property_object_literal(self, object_literal, prop):
prop_object_literal = None
types = object_literal.prop_types[prop].split('|')
for t in types:
if t in self.objects:
o = self.objects[t]
if isinstance(o, ObjectLiteral):
if prop_object_literal:
raise RuntimeError('Multiple "literal" types found for '
'option %s.%s: %s, %s.' %
(object_literal.name, prop,
prop_object_literal.name, o.name))
prop_object_literal = o
return prop_object_literal
def recursive_export(self, lines, prop, object_literal, local_var=None, depth=1):
indent = ' ' * depth
if not local_var:
local_var = prop.split('.')[-1]
lines.append('%s/** @type {%s} */\n' % (indent, object_literal.name))
lines.append('%svar %s =\n' % (indent, local_var))
lines.append('%s /** @type {%s} */\n' % (indent, object_literal.name))
lines.append('%s (%s);\n' % (indent, prop))
lines.append('%sif (goog.isDefAndNotNull(%s)) {\n' % (indent, prop))
for key in sorted(object_literal.prop_types.keys()):
prop_object_literal = self.property_object_literal(object_literal, key)
if prop_object_literal:
lv = self.recursive_export(lines, '%s.%s' % (prop, key),
prop_object_literal, depth=depth + 1)
lines.append('%s %s.%s =\n%s %s;\n' %
(indent, local_var, key, indent, lv))
else:
lines.append('%s %s.%s =\n%s %s.%s;\n' %
(indent, local_var, key, indent, prop, key))
lines.append('%s}\n' % (indent,))
return local_var
def export(self):
lines = []
local_var = 'arg'
lines.append('\n\n')
lines.append('/**\n')
lines.append(' * @param {%s} options Options.\n' % (self.object_literal.extern_name(),))
if self.return_type:
lines.append(' * @return {%s} Return value.\n' % (self.return_type,))
lines.append(' */\n')
lines.append('%s = function(options) {\n' % (self.export_name(),))
self.recursive_export(lines, 'options', self.object_literal,
local_var=local_var)
if self.return_type:
lines.append(' return %s(%s);\n' % (self.name, local_var))
else:
lines.append(' %s(arg);\n' % (self.name,))
lines.append('};\n')
lines.append('goog.exportSymbol(\n')
lines.append(' \'%s\',\n' % (self.name,))
lines.append(' %s);\n' % (self.export_name(),))
return ''.join(lines)
def export_name(self):
return '%sExport' % self.name
class ObjectLiteral(Exportable):
def __init__(self, name, objects):
Exportable.__init__(self, name)
self.prop_types = {}
self.objects = objects
__repr__ = simplerepr
def extern(self):
lines = []
lines.append('\n\n\n')
lines.append('/**\n')
lines.append(' * @interface\n')
lines.append(' */\n')
lines.append('%s = function() {};\n' % (self.extern_name(),))
for prop in sorted(self.prop_types.keys()):
lines.append('\n\n')
lines.append('/**\n')
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)
def extern_namespace(self):
return '.'.join(self.extern_name().split('.')[:-1]) or None
def provide(self):
return 'goog.provide(\'%s\');\n' % (self.name,)
def typedef(self):
lines = []
lines.append('\n\n')
lines.append('/**\n')
for i, prop in enumerate(sorted(self.prop_types.keys())):
prefix = ' * @typedef {{' if i == 0 else ' * '
suffix = '}}' if i == len(self.prop_types) - 1 else ','
type = self.prop_types[prop]
if '|' in type:
type = '(%s)' % (type,)
lines.append('%s%s: %s%s\n' % (prefix, prop, type, suffix))
lines.append(' */\n')
lines.append('%s;\n' % (self.name,))
return ''.join(lines)
class Symbol(Exportable):
def __init__(self, name, export_symbol, export_as=None):
Exportable.__init__(self, name)
self.export_symbol = export_symbol
self.export_as = export_as or self.name
self.props = set()
__repr__ = simplerepr
def export(self):
lines = []
if self.export_symbol:
lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.export_as))
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 main(argv):
option_parser = OptionParser()
option_parser.add_option('--exports', action='store_true')
option_parser.add_option('--externs', action='store_true')
option_parser.add_option('--typedef', action='store_true')
options, args = option_parser.parse_args(argv[1:])
objects = {}
requires = set()
for arg in args:
in_comment = False
object_literal = None
for line in open(arg):
line = line.strip()
if not line:
continue
if line == '/**':
assert not in_comment
in_comment = True
continue
if line == '*/':
assert in_comment
in_comment = False
object_literal = None
continue
if in_comment:
if not line.startswith('*'):
raise RuntimeError(line) # malformed comment
m = re.match(r'\*\s*@typedef\s*\{Object\}\s*(?P<name>\S+)', line)
if m:
assert object_literal is None
name = m.group('name')
if name in objects:
raise RuntimeError(line) # Name already defined
object_literal = ObjectLiteral(name, objects)
objects[name] = object_literal
continue
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')
if prop in object_literal.prop_types:
raise RuntimeError(line) # Duplicate property
type = m.group('type')
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('.')
if components[-2] == 'prototype':
requires.add('.'.join(components[:-2]))
else:
requires.add('.'.join(components[:-1]))
name = '.'.join(components[:-1])
prop = components[-1]
if name in objects:
symbol = objects[name]
else:
symbol = Symbol(name, False)
objects[name] = symbol
symbol.props.add(prop)
continue
m = re.match(r'@exportFunction\s+(?P<name>\S+)(?:\s+(?P<object_literal_name>\S+))?(?:\s+(?P<return_type>\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')
if object_literal_name not in objects:
raise RuntimeError(line)
object_literal = objects[object_literal_name]
if not isinstance(object_literal, ObjectLiteral):
raise RuntimeError(line)
return_type = m.group('return_type')
function = Function(name, object_literal, return_type, objects)
objects[name] = function
# The require should only be for the namespace, not the function
requires.add('.'.join(name.split('.')[0:-1]))
continue
m = re.match(r'@exportSymbol\s+(?P<name>\S+)(?:\s+(?P<export_as>\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)
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:
requires.add('.'.join(components[:-1]))
continue
raise RuntimeError(line)
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,))
for obj in objects:
sys.stdout.write(obj.export())
if options.externs:
object_literals = [obj for obj in objects if isinstance(obj, ObjectLiteral)]
sys.stdout.write('/**\n')
sys.stdout.write(' * @externs\n')
sys.stdout.write(' */\n')
namespaces = sorted(set(filter(None, (object_literal.extern_namespace() for object_literal in object_literals))))
for namespace in namespaces:
sys.stdout.write('\n\n')
sys.stdout.write('/**\n')
sys.stdout.write(' * @type {Object}\n')
sys.stdout.write(' */\n')
if '.' in namespace:
sys.stdout.write('%s = {};\n' % (namespace,))
else:
sys.stdout.write('var %s;\n' % (namespace,))
for object_literal in object_literals:
sys.stdout.write(object_literal.extern())
if options.typedef:
object_literals = [obj for obj in objects if isinstance(obj, ObjectLiteral)]
for object_literal in object_literals:
sys.stdout.write(object_literal.provide())
for object_literal in object_literals:
sys.stdout.write(object_literal.typedef())
if __name__ == '__main__':
sys.exit(main(sys.argv))

View File

@@ -5,7 +5,7 @@
* This loader is used for the hosted examples. It is used in place of the
* development loader (examples/loader.js).
*
* ol.css, ol.js, ol-simple.js, ol-whitespace.js, and ol-deps.js are built
* ol.js, ol-simple.js, ol-whitespace.js, and ol-deps.js are built
* by OL3's build.py script. They are located in the ../build/ directory,
* relatively to this script.
*
@@ -65,19 +65,11 @@
}
}
// 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, 'rU'):
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, 'wb')
else:
output = sys.stdout
output.write(pystache.render(open(options.template, 'rb').read(), context))
if __name__ == '__main__':
sys.exit(main(sys.argv))

517
build.py
View File

@@ -4,8 +4,8 @@ from cStringIO import StringIO
import gzip
import json
import os
import os.path
import regex as re
import glob
import re
import shutil
import sys
@@ -14,90 +14,79 @@ from pake import ifind, main, output, rule, target, variables, virtual, which
if sys.platform == 'win32':
""" windows_defaults assumes that jsdoc was installed at a specific place
(C:\jsdoc). It also fixes a certain version (1.9.0) of phantomjs which
might not anymore be proposed on
http://code.google.com/p/phantomjs/downloads/list"""
windows_defaults = {
'ProgramFiles': os.environ.get('ProgramFiles', 'C:\\Program Files'),
'Python27': os.environ.get('SystemDrive', 'C:') + '\\Python27',
'jsdoc': os.environ.get('SystemDrive', 'C:') + '\\jsdoc3',
'phantomjs': (os.environ.get('SystemDrive', 'C:') +
'\\phantomjs-1.9.0-windows')
win = {
'GIT': 'git.exe',
'GJSLINT': 'gjslint.exe',
'JAVA': 'java.exe',
'JAR': 'jar.exe',
'JSDOC': './node_modules/.bin/jsdoc',
'JSHINT': './node_modules/.bin/jshint',
'PYTHON': 'python.exe',
'PHANTOMJS': './node_modules/.bin/phantomjs'
}
if which('git.exe'):
variables.GIT = 'git.exe'
else:
variables.GIT = os.path.join(windows_defaults['ProgramFiles'],
'Git', 'bin', 'git.exe')
sys_dir = os.environ.get('SYSTEMDRIVE')
program_files = os.environ.get('PROGRAMFILES')
java_home = os.environ.get('JAVA_HOME')
if which('gjslint.exe'):
variables.GJSLINT = 'gjslint.exe'
else:
variables.GJSLINT = os.path.join(windows_defaults['Python27'],
'Scripts', 'gjslint.exe')
if not java_home:
# Following lines choose sensible defaults to guess JAVA_HOME in
# 32/64bit Program Files folder opting for the most current version.
search_term = os.path.join(sys_dir, os.sep, 'Program Files*', 'Java', 'jdk*')
found_jdks = sorted(glob.glob(search_term), key=lambda x: x[-8:])
if found_jdks:
java_home = found_jdks[-1]
if which('java.exe'):
variables.JAVA = 'java.exe'
else:
variables.JAVA = os.path.join(windows_defaults['ProgramFiles'],
'Java', 'jre7', 'bin', 'java.exe')
if java_home:
if not which(win['JAVA']):
win['JAVA'] = os.path.join(java_home, 'bin', 'java.exe')
if not which(win['JAR']):
win['JAR'] = os.path.join(java_home, 'bin', 'jar.exe')
elif not which(win['JAVA']):
win['JAVA'] = os.path.join(program_files,
'Java', 'jre7', 'bin', 'java.exe')
if which('jar.exe'):
variables.JAR = 'jar.exe'
else:
variables.JAR = os.path.join(windows_defaults['ProgramFiles'],
'Java', 'jdk1.7.0_17', 'bin', 'jar.exe')
if not which(win['GIT']):
win['GIT'] = os.path.join(program_files, 'Git', 'cmd', 'git.exe')
if not which(win['GIT']):
win['GIT'] = os.path.join(program_files, 'Git', 'bin', 'git.exe')
if which('jsdoc.cmd'):
variables.JSDOC = 'jsdoc.cmd'
else:
variables.JSDOC = os.path.join(windows_defaults['jsdoc'],
'jsdoc.cmd')
if not which(win['PYTHON']):
win['PYTHON'] = os.path.join(sys_dir, 'Python27', 'python.exe')
if which('python.exe'):
variables.PYTHON = 'python.exe'
else:
variables.PYTHON = os.path.join(windows_defaults['Python27'],
'python.exe')
if not which(win['GJSLINT']):
win['GJSLINT'] = os.path.join(sys_dir, 'Python27', 'Scripts', 'gjslint.exe')
if which('phantomjs.exe'):
variables.PHANTOMJS = 'phantomjs.exe'
else:
variables.PHANTOMJS = os.path.join(windows_defaults['phantomjs'],
'phantomjs.exe')
if not which(win['PHANTOMJS']):
win['PHANTOMJS'] = 'phantomjs.exe'
if not which(win['PHANTOMJS']):
win['PHANTOMJS'] = os.path.join(sys_dir, 'phantomjs-1.9.7-windows', 'phantomjs.exe')
if not which(win['JSDOC']):
win['JSDOC'] = os.path.join(program_files, 'jsdoc3', 'jsdoc.cmd')
for program, path in win.iteritems():
setattr(variables, program, path)
else:
variables.GIT = 'git'
variables.GJSLINT = 'gjslint'
if sys.platform == 'darwin':
variables.JAVA = '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java'
else:
variables.JAVA = 'java'
variables.JSHINT = './node_modules/.bin/jshint'
variables.JAVA = 'java'
variables.JAR = 'jar'
variables.JSDOC = 'jsdoc'
variables.NODE = 'node'
variables.JSDOC = './node_modules/.bin/jsdoc'
variables.PYTHON = 'python'
variables.PHANTOMJS = 'phantomjs'
TEMPLATE_GLSL_COMPILER_JS = 'build/glsl-unit/bin/template_glsl_compiler.js'
variables.PHANTOMJS = './node_modules/.bin/phantomjs'
variables.BRANCH = output(
'%(GIT)s', 'rev-parse', '--abbrev-ref', 'HEAD').strip()
EXECUTABLES = [variables.GIT, variables.GJSLINT, variables.JAVA, variables.JAR,
variables.JSDOC, variables.PYTHON, variables.PHANTOMJS]
variables.JSDOC, variables.JSHINT, variables.PYTHON,
variables.PHANTOMJS]
EXPORTS = [path
for path in ifind('src')
if path.endswith('.exports')]
EXTERNAL_SRC = [
'build/src/external/externs/types.js',
'build/src/external/src/exports.js',
'build/src/external/src/types.js']
EXPORTS = 'build/exports.js'
EXAMPLES = [path
for path in ifind('examples')
@@ -109,10 +98,8 @@ EXAMPLES_SRC = [path
if path.endswith('.js')
if not path.endswith('.combined.js')
if not path.startswith('examples/bootstrap')
if not path.startswith('examples/font-awesome')
if path != 'examples/Jugl.js'
if path != 'examples/jquery.min.js'
if path != 'examples/loader.js'
if path != 'examples/example-list.js']
EXAMPLES_JSON = ['build/' + example.replace('.html', '.json')
@@ -121,10 +108,6 @@ EXAMPLES_JSON = ['build/' + example.replace('.html', '.json')
EXAMPLES_COMBINED = ['build/' + example.replace('.html', '.combined.js')
for example in EXAMPLES]
INTERNAL_SRC = [
'build/src/internal/src/requireall.js',
'build/src/internal/src/types.js']
GLSL_SRC = [path
for path in ifind('src')
if path.endswith('.glsl')]
@@ -145,36 +128,32 @@ SRC = [path
if path.endswith('.js')
if path not in SHADER_SRC]
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'
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:
with open(t.name, 'rb') 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', 'apidoc')
virtual('ci', 'lint', 'jshint', 'build', 'build-all',
'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', 'jshint', 'build/ol-all.js', 'test')
virtual('todo', 'fixme')
@@ -185,102 +164,64 @@ def build_ol_css(t):
t.touch()
@target('build/ol.js', PLOVR_JAR, SRC, EXTERNAL_SRC, SHADER_SRC,
'buildcfg/base.json', 'buildcfg/ol.json')
def build_ol_js(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR, 'build', 'buildcfg/ol.json')
@target('build/ol.js', SRC, SHADER_SRC, 'buildcfg/ol.json')
def build_ol_new_js(t):
t.run('node', 'tasks/build.js', 'buildcfg/ol.json', 'build/ol.js')
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')
@target('build/ol-simple.js', SRC, SHADER_SRC, 'buildcfg/ol-simple.json')
def build_ol_simple_js(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR, 'build', 'buildcfg/ol-simple.json')
t.run('node', 'tasks/build.js', 'buildcfg/ol-simple.json', 'build/ol-simple.js')
report_sizes(t)
@target('build/ol-whitespace.js', PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
'buildcfg/base.json', 'buildcfg/ol.json',
'buildcfg/ol-whitespace.json')
@target('build/ol-whitespace.js', SRC, SHADER_SRC, 'buildcfg/ol-whitespace.json')
def build_ol_whitespace_js(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR,
'build', 'buildcfg/ol-whitespace.json')
t.run('node', 'tasks/build.js', 'buildcfg/ol-whitespace.json', 'build/ol-whitespace.js')
report_sizes(t)
virtual('build-all', 'build/ol-all.js')
@target('build/ol-all.js', PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
'buildcfg/base.json', 'buildcfg/ol-all.json')
@target('build/ol-all.js', SRC, SHADER_SRC, 'buildcfg/ol-all.json')
def build_ol_all_js(t):
t.output('%(JAVA)s', '-jar', PLOVR_JAR, 'build', 'buildcfg/ol-all.json')
t.run('node', 'tasks/build.js', 'buildcfg/ol-all.json', 'build/ol-all.js')
@target('build/src/external/externs/types.js', 'bin/generate-exports.py',
'src/objectliterals.jsdoc')
def build_src_external_externs_types_js(t):
t.output('%(PYTHON)s', 'bin/generate-exports.py',
'--externs', 'src/objectliterals.jsdoc')
@target(EXPORTS, SRC)
def build_exports_js(t):
t.run('node', 'tasks/generate-exports.js', EXPORTS)
@target('build/src/external/src/exports.js', 'bin/generate-exports.py',
'src/objectliterals.jsdoc', EXPORTS)
def build_src_external_src_exports_js(t):
t.output('%(PYTHON)s', 'bin/generate-exports.py',
'--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:
def shader_src_helper(glsl_src):
@target(glsl_src.replace('.glsl', 'shader.js'), glsl_src,
'src/ol/webgl/shader.mustache')
def shader_src(t):
t.run('%(NODE)s', TEMPLATE_GLSL_COMPILER_JS,
'--input', glsl_src,
'--template', 'src/ol/webgl/shader.mustache',
'--output', t.name)
shader_src_helper(glsl_src)
def _build_require_list(dependencies, output_file_name):
requires = set()
for dependency in dependencies:
for line in open(dependency):
match = re.match(r'goog\.provide\(\'(.*)\'\);', line)
if match:
requires.add(match.group(1))
with open(output_file_name, 'w') as f:
for require in sorted(requires):
f.write('goog.require(\'%s\');\n' % (require,))
@target('build/src/internal/src/requireall.js', SRC, SHADER_SRC)
def build_src_internal_src_requireall_js(t):
_build_require_list(t.dependencies, t.name)
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', 'bin/pyglslunit.py')
def shader_src(t):
t.run('%(PYTHON)s', 'bin/pyglslunit.py',
'--input', glsl_src,
'--template', 'src/ol/webgl/shader.mustache',
'--output', t.name)
shader_src_helper(glsl_src)
@target('build/test/requireall.js', SPEC)
def build_test_requireall_js(t):
_build_require_list(t.dependencies, t.name)
requires = set()
for dependency in t.dependencies:
for line in open(dependency, 'rU'):
match = re.match(r'goog\.provide\(\'(.*)\'\);', line)
if match:
requires.add(match.group(1))
with open(t.name, 'wb') as f:
for require in sorted(requires):
f.write('goog.require(\'%s\');\n' % (require,))
@target('build/src/internal/src/types.js', 'bin/generate-exports.py',
'src/objectliterals.jsdoc')
def build_src_internal_types_js(t):
t.output('%(PYTHON)s', 'bin/generate-exports.py',
'--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)
@@ -296,89 +237,138 @@ 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',
SRC, SHADER_SRC, 'buildcfg/examples-all.json')
def build_examples_all_combined_js(t):
t.run('node', 'tasks/build.js', 'buildcfg/examples-all.json',
'build/examples/all.combined.js')
report_sizes(t)
@target('build/examples/all.js', EXAMPLES_SRC)
def build_examples_all_js(t):
t.output('%(PYTHON)s', 'bin/combine-examples.py', t.dependencies)
@rule(r'\Abuild/examples/(?P<id>.*).json\Z')
def examples_star_json(name, match):
def action(t):
# It would make more sense to use olx.js as an input file here. We use
# it as an externs file instead to prevent "Cannot read property '*' of
# undefined" error when running examples in "raw" or "whitespace" mode.
# Note that we use the proper way in buildcfg/examples-all.json, which
# is only used to check the examples code using the compiler.
content = json.dumps({
'id': match.group('id'),
'inherits': '../../buildcfg/base.json',
'inputs': [
'../examples/%(id)s.js' % match.groupdict(),
'../build/src/internal/src/types.js',
"exports": [],
"src": ["src/**/*.js", "examples/%(id)s.js" % match.groupdict()],
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/bootstrap.js",
"externs/closure-compiler.js",
"externs/example.js",
"externs/geojson.js",
"externs/jquery-1.7.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js",
"externs/vbarray.js"
],
'externs': [
'//json.js',
'//jquery-1.7.js',
'../externs/bingmaps.js',
'../externs/bootstrap.js',
'../externs/geojson.js',
'../externs/topojson.js',
'../externs/oli.js',
'../externs/proj4js.js',
'../externs/tilejson.js',
'../externs/closure-compiler.js',
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"accessControls",
"ambiguousFunctionDecl",
"checkDebuggerStatement",
"checkEventfulObjectDisposal",
"checkProvides",
"checkRegExp",
"checkStructDictInheritance",
"checkTypes",
"checkVars",
"const",
"constantProperty",
"deprecated",
"duplicate",
"duplicateMessage",
"es3",
"externsValidation",
"fileoverviewTags",
"globalThis",
"internetExplorerChecks",
"invalidCasts",
"misplacedTypeAnnotation",
"missingProperties",
"nonStandardJsDocs",
"strictModuleDepCheck",
"suspiciousCode",
"typeInvalidation",
"tweakValidation",
"undefinedNames",
"undefinedVars",
"unknownDefines",
"uselessCode",
"violatedModuleDep",
"visibility"
],
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "ADVANCED",
"output_wrapper": "// OpenLayers 3. See http://ol3.js.org/\n(function(){%output%})();",
"use_types_for_optimization": True,
"manage_closure_dependencies": True
}
})
with open(t.name, 'w') as f:
with open(t.name, 'wb') as f:
f.write(content)
dependencies = [__file__, 'buildcfg/base.json']
return Target(name, action=action, dependencies=dependencies)
return Target(name, action=action, dependencies=[__file__])
@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())
config = 'build/examples/%(id)s.json' % match.groupdict()
t.run('node', 'tasks/build.js', config, name)
report_sizes(t)
dependencies = [PLOVR_JAR, SRC, INTERNAL_SRC, SHADER_SRC,
'buildcfg/base.json',
dependencies = [SRC, SHADER_SRC,
'examples/%(id)s.js' % match.groupdict(),
'build/examples/%(id)s.json' % match.groupdict()]
return Target(name, action=action, dependencies=dependencies)
@target('serve', PLOVR_JAR, 'test-deps', 'examples')
@target('serve', 'examples')
def serve(t):
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve', 'buildcfg/ol.json',
'buildcfg/ol-all.json', EXAMPLES_JSON, 'buildcfg/test.json')
t.run('node', 'tasks/serve.js')
@target('serve-integration-test', PLOVR_JAR, INTERNAL_SRC)
def serve_precommit(t):
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve',
'buildcfg/ol-all.json', 'buildcfg/test.json')
virtual('lint', 'build/lint-timestamp', 'build/check-requires-timestamp',
'build/check-whitespace-timestamp')
virtual('lint', 'build/lint-timestamp', 'build/lint-generated-timestamp',
'build/check-requires-timestamp', 'build/check-whitespace-timestamp')
@target('build/lint-timestamp', SRC, EXAMPLES_SRC, SPEC, precious=True)
@target('build/lint-timestamp', SRC, EXPORTS, EXAMPLES_SRC, SPEC, precious=True)
def build_lint_src_timestamp(t):
t.run('%(GJSLINT)s',
'--jslint_error=all',
'--custom_jsdoc_tags=event,fires,function,classdesc,api,observable',
'--strict',
t.newer(t.dependencies))
t.touch()
@target('build/lint-generated-timestamp', INTERNAL_SRC, EXTERNAL_SRC,
virtual('jshint', 'build/jshint-timestamp')
@target('build/jshint-timestamp', SRC, EXPORTS, EXAMPLES_SRC, SPEC,
precious=True)
def build_lint_generated_timestamp(t):
limited_doc_files = [
path
for path in ifind('externs', 'build/src/external/externs')
if path.endswith('.js')]
t.run('%(GJSLINT)s',
'--jslint_error=all',
# ignore error for max line length (for these auto-generated sources)
'--disable=110',
# 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),),
'--strict',
t.newer(t.dependencies))
def build_jshint_timestamp(t):
t.run(variables.JSHINT, '--verbose', t.newer(t.dependencies))
t.touch()
@@ -405,31 +395,28 @@ def _strip_comments(lines):
yield lineno, line
@target('build/check-requires-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC,
EXAMPLES_SRC, SHADER_SRC, SPEC)
@target('build/check-requires-timestamp', SRC, EXAMPLES_SRC, SHADER_SRC, SPEC)
def build_check_requires_timestamp(t):
from zipfile import ZipFile
unused_count = 0
all_provides = set()
zf = ZipFile(PLOVR_JAR)
for zi in zf.infolist():
if zi.filename.endswith('.js'):
if not zi.filename.startswith('closure/goog/'):
closure_lib_path = output('node', '-e',
'process.stdout.write(require("closure-util").getLibraryPath())')
for filename in ifind(closure_lib_path):
if filename.endswith('.js'):
if not re.match(r'.*/closure/goog/', filename):
continue
# Skip goog.i18n because it contains so many modules that it causes
# the generated regular expression to exceed Python's limits
if zi.filename.startswith('closure/goog/i18n/'):
if re.match(r'.*/closure/goog/i18n/', filename):
continue
for line in zf.open(zi):
for line in open(filename, 'rU'):
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
if m:
all_provides.add(m.group(1))
for filename in sorted(t.dependencies):
if filename == 'build/src/internal/src/requireall.js':
continue
require_linenos = {}
uses = set()
lines = open(filename).readlines()
lines = open(filename, 'rU').readlines()
for lineno, line in _strip_comments(lines):
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
if m:
@@ -506,13 +493,11 @@ def build_check_requires_timestamp(t):
for key, child in root.children.iteritems()]
missing_count = 0
for filename in sorted(t.dependencies):
if filename in INTERNAL_SRC or filename in EXTERNAL_SRC:
continue
provides = set()
requires = set()
uses = set()
uses_linenos = {}
for lineno, line in _strip_comments(open(filename)):
for lineno, line in _strip_comments(open(filename, 'rU')):
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
if m:
provides.add(m.group(1))
@@ -550,18 +535,21 @@ def build_check_requires_timestamp(t):
t.touch()
@target('build/check-whitespace-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC,
EXAMPLES_SRC, SPEC, EXPORTS, JSDOC_SRC,
precious=True)
@target('build/check-whitespace-timestamp', SRC, EXPORTS, EXAMPLES_SRC,
SPEC, JSDOC_SRC, precious=True)
def build_check_whitespace_timestamp(t):
CR_RE = re.compile(r'\r')
LEADING_WHITESPACE_RE = re.compile(r'\s+')
TRAILING_WHITESPACE_RE = re.compile(r'\s+\n\Z')
NO_NEWLINE_RE = re.compile(r'[^\n]\Z')
ALL_WHITESPACE_RE = re.compile(r'\s+\Z')
errors = 0
for filename in sorted(t.newer(t.dependencies)):
whitespace = False
for lineno, line in enumerate(open(filename)):
for lineno, line in enumerate(open(filename, 'rU')):
if lineno == 0 and LEADING_WHITESPACE_RE.match(line):
t.info('%s:%d: leading whitespace', filename, lineno + 1)
errors += 1
if CR_RE.search(line):
t.info('%s:%d: carriage return character in line', filename, lineno + 1)
errors += 1
@@ -580,31 +568,20 @@ def build_check_whitespace_timestamp(t):
t.touch()
virtual('plovr', PLOVR_JAR)
@target(PLOVR_JAR, clean=False)
def plovr_jar(t):
t.info('downloading %r', t.name)
t.download('https://plovr.googlecode.com/files/' +
os.path.basename(PLOVR_JAR), md5=PLOVR_JAR_MD5)
t.info('downloaded %r', t.name)
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('apidoc/template'))
EXPORTS, SRC, SHADER_SRC,
ifind('apidoc/template'))
def jsdoc_BRANCH_timestamp(t):
t.run('%(JSDOC)s', '-c', 'apidoc/conf.json', 'src', 'apidoc/index.md',
t.run('%(JSDOC)s', 'apidoc/index.md', '-c', 'apidoc/conf.json',
'-d', 'build/hosted/%(BRANCH)s/apidoc')
t.touch()
def split_example_file(example, dst_dir):
lines = open(example).readlines()
lines = open(example, 'rU').readlines()
target_lines = []
target_require_lines = []
@@ -622,11 +599,11 @@ def split_example_file(example, dst_dir):
target_lines.append(line)
target = open(
os.path.join(dst_dir, os.path.basename(example)), 'w')
os.path.join(dst_dir, os.path.basename(example)), 'wb')
target_require = open(
os.path.join(dst_dir, os.path.basename(example)
.replace('.js', '-require.js')),
'w')
'wb')
target.writelines(target_lines)
target.close()
@@ -646,29 +623,32 @@ def host_resources(t):
def host_examples(t):
examples_dir = 'build/hosted/%(BRANCH)s/examples'
build_dir = 'build/hosted/%(BRANCH)s/build'
css_dir = 'build/hosted/%(BRANCH)s/css'
closure_lib_path = output('node', '-e',
'process.stdout.write(require("closure-util").getLibraryPath())')
t.rm_rf(examples_dir)
t.makedirs(examples_dir)
t.rm_rf(build_dir)
t.makedirs(build_dir)
t.rm_rf(css_dir)
t.makedirs(css_dir)
t.cp(EXAMPLES, examples_dir)
for example in [path.replace('.html', '.js') for path in EXAMPLES]:
split_example_file(example, examples_dir % vars(variables))
t.cp_r('examples/data', examples_dir + '/data')
t.cp('bin/loader_hosted_examples.js', examples_dir + '/loader.js')
t.cp('build/ol.js', 'build/ol-simple.js', 'build/ol-whitespace.js',
'build/ol.css', build_dir)
build_dir)
t.cp('build/ol.css', css_dir)
t.cp('examples/index.html', 'examples/example-list.js',
'examples/example-list.xml', 'examples/Jugl.js',
'examples/jquery.min.js', examples_dir)
t.rm_rf('build/hosted/%(BRANCH)s/closure-library')
t.makedirs('build/hosted/%(BRANCH)s/closure-library')
with t.chdir('build/hosted/%(BRANCH)s/closure-library'):
t.run('%(JAR)s', 'xf', '../../../../' + PLOVR_JAR, 'closure')
t.run('%(JAR)s', 'xf', '../../../../' + PLOVR_JAR, 'third_party')
t.cp_r(closure_lib_path, 'build/hosted/%(BRANCH)s/closure-library')
t.rm_rf('build/hosted/%(BRANCH)s/ol')
t.makedirs('build/hosted/%(BRANCH)s/ol')
t.cp_r('src/ol', 'build/hosted/%(BRANCH)s/ol/ol')
t.run('%(PYTHON)s', 'bin/closure/depswriter.py',
t.run('%(PYTHON)s', closure_lib_path + '/closure/bin/build/depswriter.py',
'--root_with_prefix', 'src ../../../ol',
'--root', 'build/hosted/%(BRANCH)s/closure-library/closure/goog',
'--root_with_prefix', 'build/hosted/%(BRANCH)s/closure-library/'
@@ -678,36 +658,18 @@ 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'), 'rU').readline().startswith('// NOCOMPILE')]
all_examples = \
[e + '?mode=advanced' for e in examples]
for example in all_examples:
t.run('%(PHANTOMJS)s', 'bin/check-example.js', example)
@target(PROJ4JS, PROJ4JS_ZIP)
def proj4js(t):
from zipfile import ZipFile
zf = ZipFile(PROJ4JS_ZIP)
contents = zf.open('proj4js/lib/proj4js-combined.js').read()
with open(t.name, 'wb') as f:
f.write(contents)
@target(PROJ4JS_ZIP, clean=False)
def proj4js_zip(t):
t.info('downloading %r', t.name)
t.download('http://download.osgeo.org/proj4js/' +
os.path.basename(t.name), md5=PROJ4JS_ZIP_MD5)
t.info('downloaded %r', t.name)
virtual('test-deps', INTERNAL_SRC, PROJ4JS, 'build/test/requireall.js')
@target('test', 'test-deps', phony=True)
@target('test', phony=True)
def test(t):
t.run('%(PHANTOMJS)s', 'test/mocha-phantomjs.js', 'test/ol.html')
t.run('node', 'tasks/test.js')
@target('fixme', phony=True)
@@ -768,7 +730,7 @@ 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.
serve - Serves files, on port 3000.
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
@@ -781,23 +743,22 @@ The most common targets are:
Other less frequently used targets are:
apidoc - Builds the API-Documentation using JSDoc3.
integration-test - Builds all examples in various modes and usually tales a
ci - 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.
check-examples and apidoc. This is the target run on
Travis CI.
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.
todo - This is an alias for the fixme-target (see above).
If no target is given, the build-target will be executed.
The above list is not complete, please see the sourceode for not-mentioned and
only seldomly called targets.
The above list is not complete, please see the source code for not-mentioned
and only seldomly called targets.
'''
if __name__ == '__main__':

View File

@@ -1,107 +0,0 @@
{
"ambiguate-properties": true,
"checks": {
"accessControls": "ERROR",
"ambiguousFunctionDecl": "ERROR",
"checkDebuggerStatement": "WARNING",
"checkRegExp": "ERROR",
"checkTypes": "ERROR",
"checkVars": "ERROR",
"const": "ERROR",
"constantProperty": "ERROR",
"deprecated": "ERROR",
"duplicate": "ERROR",
"duplicateMessage": "ERROR",
"es5Strict": "ERROR",
"externsValidation": "ERROR",
"fileoverviewTags": "ERROR",
"globalThis": "ERROR",
"internetExplorerChecks": "ERROR",
"invalidCasts": "ERROR",
"missingProperties": "ERROR",
"nonStandardJsDocs": "ERROR",
"strictModuleDepCheck": "ERROR",
"typeInvalidation": "ERROR",
"undefinedNames": "ERROR",
"undefinedVars": "ERROR",
"unknownDefines": "ERROR",
"uselessCode": "ERROR",
"visibility": "ERROR"
},
"define": {
"goog.dom.ASSUME_STANDARDS_MODE": true,
"goog.DEBUG": false
},
"disambiguate-properties": true,
"externs": [
"//json.js",
"../externs/bingmaps.js",
"../externs/geojson.js",
"../externs/topojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/closure-compiler.js"
],
"level": "VERBOSE",
"mode": "ADVANCED",
"name-suffixes-to-strip": [
"logger",
"logger_"
],
"paths": [
"../build/src/internal/src",
"../src"
],
"treat-warnings-as-errors": false,
"type-prefixes-to-strip": [
"goog.asserts",
"goog.debug.Console",
"goog.debug.DebugWindow",
"goog.debug.DevCss",
"goog.debug.DivConsole",
"goog.debug.EntryPointMonitor",
"goog.debug.ErrorHandler",
"goog.debug.ErrorReporter",
"goog.debug.FancyWindow",
"goog.debug.Formatter",
"goog.debug.FpsDisplay",
"goog.debug.GcDiagnostics",
"goog.debug.HtmlFormatter",
"goog.debug.LogBuffer",
"goog.debug.LogManager",
"goog.debug.LogRecord",
"goog.debug.Logger",
"goog.debug.RelativeTimeProvider",
"goog.debug.TextFormatter",
"goog.debug.Trace",
"goog.debug.catchErrors",
"goog.debug.deepExpose",
"goog.debug.enhanceError",
"goog.debug.entryPointRegistry",
"goog.debug.errorHandlerWeakDep",
"goog.debug.expose",
"goog.debug.exposeArray",
"goog.debug.exposeException",
"goog.debug.getFunctionName",
"goog.debug.getStacktrace",
"goog.debug.getStacktraceSimple",
"goog.debug.logRecordSerializer",
"goog.debug.makeWhitespaceVisible",
"goog.debug.normalizeErrorObject",
"goog.debug.reflect",
"goog.log"
]
}

View File

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

View File

@@ -0,0 +1,15 @@
/**
* Handle the api annotation.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('api', {
onTagged: function(doclet, tag) {
doclet.api = tag.text || 'experimental';
}
});
};

View File

@@ -0,0 +1,16 @@
{
"opts": {
"recurse": true,
"template": "buildcfg/jsdoc/info"
},
"tags": {
"allowUnknownTags": true
},
"source": {
"includePattern": "\\.js$"
},
"plugins": [
"buildcfg/jsdoc/info/api-plugin",
"buildcfg/jsdoc/info/define-plugin"
]
}

View File

@@ -0,0 +1,35 @@
/**
* @fileoverview This plugin extracts info from boolean defines. This only
* handles boolean defines with the default value in the description. Default
* is assumed to be provided with something like "default is `true`" (case
* insensitive, with or without ticks).
*/
var DEFAULT_VALUE = /default\s+is\s+`?(true|false)`?/i;
/**
* Hook to define new tags.
* @param {Object} dictionary The tag dictionary.
*/
exports.defineTags = function(dictionary) {
dictionary.defineTag('define', {
canHaveType: true,
mustHaveValue: true,
onTagged: function(doclet, tag) {
var types = tag.value.type.names;
if (types.length === 1 && types[0] === 'boolean') {
var match = tag.value.description.match(DEFAULT_VALUE);
if (match) {
doclet.define = {
default: match[1] === 'true'
};
doclet.description = tag.value.description;
}
}
}
});
};

View File

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

View File

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

View File

@@ -1,39 +1,66 @@
{
// If ambiguate-properties and disambiguate-properties are set to true
// we get function names like "ol_control_Control_prototype$setMap" in
// the compiled code when using the SIMPLE compilation. It looks like
// "ambiguate-properties" and "disambiguate-properties" are only
// appropriate for ADVANCED compilation.
"ambiguate-properties": false,
"disambiguate-properties": false,
"id": "ol-simple",
"externs": [
"//json.js",
"../externs/bingmaps.js",
"../externs/geojson.js",
"../externs/topojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/closure-compiler.js"
],
"inherits": "ol.json",
"inputs": [
"../build/src/internal/src/requireall.js",
"../build/src/internal/src/types.js"
],
"mode": "SIMPLE",
// 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%"
"exports": ["*"],
"src": ["src/**/*.js"],
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/closure-compiler.js",
"externs/geojson.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js",
"externs/vbarray.js"
],
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"accessControls",
"ambiguousFunctionDecl",
"checkEventfulObjectDisposal",
"checkRegExp",
"checkStructDictInheritance",
"checkTypes",
"checkVars",
"const",
"constantProperty",
"deprecated",
"duplicateMessage",
"es3",
"externsValidation",
"fileoverviewTags",
"globalThis",
"internetExplorerChecks",
"invalidCasts",
"misplacedTypeAnnotation",
"missingGetCssName",
"missingProperties",
"missingProvide",
"missingRequire",
"missingReturn",
"newCheckTypes",
"nonStandardJsDocs",
"suspiciousCode",
"strictModuleDepCheck",
"typeInvalidation",
"undefinedNames",
"undefinedVars",
"unknownDefines",
"uselessCode",
"visibility"
],
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "SIMPLE",
"output_wrapper": "%output%",
"use_types_for_optimization": false,
"manage_closure_dependencies": true
}
}

View File

@@ -1,42 +1,66 @@
{
"id": "ol-whitespace",
// If ambiguate-properties and disambiguate-properties are set to true
// we get function names like "ol_control_Control_prototype$setMap" in
// the compiled code when using the SIMPLE compilation. It looks like
// "ambiguate-properties" and "disambiguate-properties" are only
// appropriate for ADVANCED compilation. To be sure we also don't
// set them for WHITESPACE.
"ambiguate-properties": false,
"disambiguate-properties": false,
"externs": [
"//json.js",
"../externs/bingmaps.js",
"../externs/geojson.js",
"../externs/topojson.js",
"../externs/oli.js",
"../externs/proj4js.js",
"../externs/tilejson.js",
"../externs/closure-compiler.js"
],
"inherits": "ol.json",
"inputs": [
"../build/src/internal/src/requireall.js",
"../build/src/internal/src/types.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%",
"pretty-print": true
"exports": ["*"],
"src": ["src/**/*.js"],
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/closure-compiler.js",
"externs/geojson.js",
"externs/oli.js",
"externs/olx.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js",
"externs/vbarray.js"
],
"define": [
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"accessControls",
"ambiguousFunctionDecl",
"checkEventfulObjectDisposal",
"checkRegExp",
"checkStructDictInheritance",
"checkTypes",
"checkVars",
"const",
"constantProperty",
"deprecated",
"duplicateMessage",
"es3",
"externsValidation",
"fileoverviewTags",
"globalThis",
"internetExplorerChecks",
"invalidCasts",
"misplacedTypeAnnotation",
"missingGetCssName",
"missingProperties",
"missingProvide",
"missingRequire",
"missingReturn",
"newCheckTypes",
"nonStandardJsDocs",
"suspiciousCode",
"strictModuleDepCheck",
"typeInvalidation",
"undefinedNames",
"undefinedVars",
"unknownDefines",
"uselessCode",
"visibility"
],
"extra_annotation_name": [
"api", "observable"
],
"jscomp_off": [
"es5Strict"
],
"compilation_level": "WHITESPACE_ONLY",
"output_wrapper": "var CLOSURE_DEPS = false;\n%output%",
"use_types_for_optimization": false,
"manage_closure_dependencies": true
}
}

View File

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

12
buildcfg/readme.md Normal file
View File

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

View File

@@ -1,16 +0,0 @@
{
"id": "test",
"inherits": "base.json",
"inputs": [
"../build/test/requireall.js"
],
"paths": [
"../src",
"../test"
]
}

3
closure-util.json Normal file
View File

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

View File

@@ -1,100 +1,12 @@
.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;
}
.ol-attribution ul {
margin: 0;
padding: 0;
font-size: 10px;
line-height: 12px;
}
.ol-attribution li {
display: inline;
list-style: none;
line-height: inherit;
}
.ol-attribution li:not(:last-child):after {
content: "\2003";
}
.ol-dragbox {
position: absolute;
border: 2px solid red;
}
.ol-full-screen {
background: rgba(255,255,255,0.4);
border-radius: 4px;
padding: 2px;
position: absolute;
right: 8px;
top: 8px;
}
@media print {
.ol-full-screen {
display: none;
}
}
.ol-full-screen a {
background: rgba(0,60,136,0.5);
color: white;
display: block;
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
font-size: 18px;
font-weight: bold;
height: 22px;
line-height: 19px;
margin: 1px;
padding: 0;
text-align: center;
text-decoration: none;
width: 22px;
}
a.ol-full-screen-false:after {
content: "\2194";
}
a.ol-full-screen-true:after {
content: "\00d7";
}
.ol-full-screen div {
border-radius: 2px;
}
.ol-full-screen div a {
border-radius: 2px;
}
.ol-full-screen a:hover {
background: rgba(0,60,136,0.7);
}
.ol-logo {
bottom: 0;
left: 0;
padding: 2px;
position: absolute;
}
.ol-logo ul {
margin: 0;
}
.ol-logo ul li {
display: inline;
list-style: none;
}
.ol-mouse-position {
top: 8px;
right: 8px;
position: absolute;
position: absolute;
}
.ol-scale-line {
background: #95b9e6;
background: rgba(0,60,136,0.3);
border-radius: 4px;
bottom: 8px;
@@ -107,7 +19,6 @@ a.ol-full-screen-true:after {
border-top: none;
color: #eeeeee;
font-size: 10px;
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
text-align: center;
margin: 1px;
padding: 0px 2px;
@@ -124,121 +35,248 @@ a.ol-full-screen-true:after {
user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
.ol-zoom {
.ol-control {
position: absolute;
top: 8px;
left: 8px;
background: rgba(255,255,255,0.4);
background-color: #eee;
background-color: rgba(255,255,255,0.4);
border-radius: 4px;
padding: 2px;
}
.ol-control:hover {
background-color: rgba(255,255,255,0.6);
}
.ol-zoom {
top: .5em;
left: .5em;
}
.ol-rotate {
top: .5em;
right: .5em;
transition: opacity .25s;
}
.ol-zoom-extent {
top: 4.643em;
left: .5em;
}
.ol-full-screen {
right: .5em;
top: .5em;
}
@media print {
.ol-zoom {
.ol-control {
display: none;
}
}
.ol-zoom a {
.ol-control button {
display: block;
margin: 1px;
padding: 0;
color: white;
font-size: 18px;
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
font-size: 1.14em;
font-weight: bold;
text-decoration: none;
text-align: center;
height: 22px;
width: 22px;
line-height: 19px;
background: rgba(0,60,136,0.5);
height: 1.375em;
width: 1.375em;
line-height: .4em;
background-color: #7b98bc;
background-color: rgba(0,60,136,0.5);
border: none;
border-radius: 2px;
}
.ol-touch .ol-zoom a {
font-size: 20px;
height: 30px;
width: 30px;
line-height: 26px;
.ol-control button::-moz-focus-inner {
border: none;
padding: 0;
}
.ol-zoom a:hover {
background: rgba(0,60,136,0.7);
.ol-zoom-extent button {
line-height: 1.4em;
}
.ol-zoom-in {
.ol-compass {
display: block;
font-family: Arial;
font-weight: normal;
font-size: 1.2em;
}
.ol-touch .ol-control button {
font-size: 1.5em;
}
.ol-touch .ol-zoom-extent {
top: 5.5em;
}
.ol-control button:hover,
.ol-control button:focus {
text-decoration: none;
background-color: #4c6079;
background-color: rgba(0,60,136,0.7);
}
.ol-zoom-extent button:after {
content: "E";
}
.ol-zoom .ol-zoom-in {
border-radius: 2px 2px 0 0;
}
.ol-zoom-in:before {
content: "+";
}
.ol-zoom-out {
.ol-zoom .ol-zoom-out {
border-radius: 0 0 2px 2px;
}
.ol-zoom-out:before {
content: "\2212";
button.ol-full-screen-false:after {
content: "\2194";
}
button.ol-full-screen-true:after {
content: "\00d7";
}
/* invisible but not hidden */
.ol-has-tooltip [role=tooltip] {
position: absolute;
clip: rect(1px 1px 1px 1px); /* < IE8 */
clip: rect(1px, 1px, 1px, 1px);
padding: 0;
border: 0;
height: 1px;
width: 1px;
overflow: hidden;
font-weight: normal;
font-size: 14px;
text-shadow: 0 0 2px #fff;
}
/* show a tooltip offset to below and right */
.ol-has-tooltip:hover [role=tooltip], .ol-has-tooltip:focus [role=tooltip] {
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
clip: auto;
padding: 0 .4em;
font-size: .8em;
height: 1.2em;
width: auto;
line-height: 1.2em;
z-index: 1100;
max-height: 100px;
white-space: nowrap;
display: inline-block;
background: #FFF;
background: rgba(255,255,255,0.6);
color: #000;
border: 3px solid rgba(255,255,255,0);
border-left-width: 0;
border-radius: 0 4px 4px 0;
bottom: .3em;
left: 2.2em;
}
.ol-touch .ol-has-tooltip:hover [role=tooltip],
.ol-touch .ol-has-tooltip:focus [role=tooltip] {
display: none;
}
.ol-zoom .ol-has-tooltip:hover [role=tooltip],
.ol-zoom .ol-has-tooltip:focus [role=tooltip] {
top: 1.1em;
}
.ol-rotate .ol-has-tooltip:hover [role=tooltip],
.ol-rotate .ol-has-tooltip:focus [role=tooltip],
.ol-attribution .ol-has-tooltip:hover [role=tooltip],
.ol-attribution .ol-has-tooltip:focus [role=tooltip],
.ol-full-screen .ol-has-tooltip:hover [role=tooltip],
.ol-full-screen .ol-has-tooltip:focus [role=tooltip] {
right: 2.2em;
left: auto;
border-radius: 4px 0 0 4px;
border-left-width: 3px;
border-right-width: 0;
}
.ol-attribution {
text-align: right;
bottom: .5em;
right: .5em;
}
.ol-attribution ul {
margin: 0;
padding: 0 .5em;
font-size: .7rem;
line-height: 1.375em;
color: #000;
text-shadow: 0 0 2px #fff;
}
.ol-attribution li {
display: inline;
list-style: none;
line-height: inherit;
}
.ol-attribution li:not(:last-child):after {
content: " ";
}
.ol-attribution img {
max-height: 2em;
}
.ol-attribution ul, .ol-attribution button {
display: inline-block;
}
.ol-attribution:not(.ol-collapsed) button:hover [role=tooltip],
.ol-attribution.ol-collapsed ul {
display: none;
}
.ol-attribution:not(.ol-collapsed) {
background: rgba(255,255,255,0.8);
}
.ol-attribution.ol-uncollapsible {
bottom: 0;
right: 0;
border-radius: 4px 0 0;
height: 1.1em;
line-height: 1em;
}
.ol-attribution.ol-uncollapsible img {
margin-top: -.2em;
max-height: 1.6em;
}
.ol-attribution.ol-uncollapsible button {
display: none;
}
.ol-zoomslider {
position: absolute;
top: 67px;
left: 8px;
top: 4.5em;
left: .5em;
background: #eee;
background: rgba(255, 255, 255, 0.4);
border-radius: 4px;
width: 28px;
height: 200px;
outline: none;
overflow: hidden;
padding: 0;
width: 1.5675em;
height: 200px;
padding: 3px;
margin: 0;
}
.ol-zoomslider-thumb {
position: absolute;
display: block;
padding: 0;
margin: 2px;
background: #7b98bc;
background: rgba(0,60,136,0.5);
border-radius: 2px;
outline: none;
overflow: hidden;
height: 20px;
width: 24px;
}
.ol-zoom-extent {
position: absolute;
background: rgba(255,255,255,0.4);
border-radius: 4px;
left: 8px;
padding: 2px;
top: 65px;
}
@media print {
.ol-zoom-extent {
display: none;
}
}
.ol-zoom-extent a {
display: block;
margin: 1px;
cursor: pointer;
font-size: 1.14em;
height: 1em;
width: 1.375em;
margin: 3px;
padding: 0;
color: white;
font-size: 16px;
}
.ol-touch .ol-zoomslider {
top: 5.5em;
width: 2.052em;
}
.ol-touch .ol-zoomslider-thumb {
width: 1.8em;
}
.ol-control button,
.ol-attribution,
.ol-scale-line-inner,
.ol-has-tooltip [role=tooltip] {
font-family: 'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;
font-weight: bold;
text-decoration: none;
text-align: center;
height: 22px;
width: 22px;
background-color: rgba(0, 60, 136, 0.5);
border-radius: 2px;
}
.ol-touch .ol-zoom-extent a {
font-size: 20px;
height: 30px;
width: 30px;
line-height: 26px;
}
.ol-zoom-extent a:hover {
background-color: rgba(0, 60, 136, 0.7);
}
.ol-zoom-extent a:after {
content: "E";
}

View File

@@ -9,4 +9,6 @@ If you're eager to get your first OpenLayers 3 map on a page, dive into the [qui
For a more in-depth overview of OpenLayers 3 core concepts, check out the [tutorials](tutorials/).
Make sure to also check out the [OpenLayers 3 workshop](../../../ol3-workshop/).
Find additional reference material in the [API docs](../apidoc).

View File

@@ -13,7 +13,7 @@ Below you'll find a complete working example. Create a new file, copy in the co
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="http://ol3js.org/en/{{ latest }}/build/ol.css" type="text/css">
<link rel="stylesheet" href="http://ol3js.org/en/{{ latest }}/css/ol.css" type="text/css">
<style>
.map {
height: 400px;
@@ -31,10 +31,10 @@ Below you'll find a complete working example. Create a new file, copy in the co
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuestOpenAerial()
source: new ol.source.MapQuest({layer: 'sat'})
})
],
view: new ol.View2D({
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
@@ -72,7 +72,8 @@ The map in the application is contained in a [`<div>` HTML element](http://en.wi
```xml
<style>
.map {
height: 400px; width: 100%;
height: 400px;
width: 100%;
}
</style>
```
@@ -84,10 +85,10 @@ The map in the application is contained in a [`<div>` HTML element](http://en.wi
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuestOpenAerial()
source: new ol.source.MapQuest({layer: 'sat'})
})
],
view: new ol.View2D({
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
@@ -113,17 +114,17 @@ The `layers: [ ... ]` array is used to define the list of layers available in th
```js
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuestOpenAerial()
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.
The next part of the `Map` object is the `View`. The view allow to specify the center, resolution, and rotation of the map. 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({
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})

View File

@@ -16,16 +16,16 @@ The core component of OpenLayers 3 is the map (`ol.Map`). It is rendered to a `t
```
## 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`.
`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.
```js
map.setView(new ol.View2D({
map.setView(new ol.View({
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.
An `ol.View` 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.
@@ -63,7 +63,7 @@ The above snippets can be conflated to a self contained map configuration with v
layers: [
new ol.layer.Tile({source: new ol.source.OSM()})
],
view: new ol.View2D({
view: new ol.View({
center: [0, 0],
zoom: 2
}),

View File

@@ -5,4 +5,4 @@ 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!
We'll be putting together a more comprehensive set of tutorials here. For now, you can take a look at the [introduction](introduction.html) and [basic concepts](concepts.html) tutorial. Stay tuned for more!

View File

@@ -0,0 +1,44 @@
---
title: Introduction
layout: doc.hbs
---
# Introduction
## Objectives
OpenLayers 3 (OL3) is a fundamental redesign of the OpenLayers web mapping library. Version 2 is widely used, but dates from the early days of Javascript development, and is increasingly showing its age. OL3 has been rewritten from the ground up to use modern design patterns.
The initial release aims to support much of the functionality provided by version 2, with support for a wide range of commercial and free tile sources, and the most popular open-source vector data formats. As with version 2, data can be in any projection. The initial release also adds some additional functionality, such as the ability to easily rotate or animate maps.
It is also designed such that major new features, such as displaying 3D maps, or using WebGL to quickly display large vector data sets, can be added in later releases.
## Closure Tools
OL3 is based on Google's Closure Tools. It makes heavy use of parts of the [__Closure Library__](https://developers.google.com/closure/library/). Using this to handle basics like DOM or event handling means the developers can concentrate on mapping functionality, and be sure that the underlying software is well-tested and cross-browser. Closure Library is specially designed to be optimized by the [__Closure Compiler__](https://developers.google.com/closure/compiler/). The 'advanced' optimizations that this provides offers a level of compression that far exceeds anything else available. OL3 has been designed to make full use of this.
## Public API
Using the advanced optimizations of the Closure Compiler means that properties and methods are renamed &ndash; `longMeaningfulName` might become `xB` &ndash; and so are effectively unusable in applications using the library. To be usable, they have to be explicitly `exported`. This means the exported names, those not renamed, effectively become the public API of the library. These __exportable__ properties and methods are marked in the source, and documented in the [API docs](../apidoc). This is the officially supported API of the library. A build containing all these exportable names is known as a __full build__. A hosted version of this is available, which can be used by any application.
Although Closure library functions are widely used within OL3, none of them are exported. You will see references to them (they are all in the `goog` namespace) in the API docs, but these are for information only. You can use the Closure library in your own applications if you like, but this is not required.
## Custom Builds
Unlike in, say, Node, where a module's exports are fixed in the source, with Closure Compiler, exports can be defined at compile time. This makes it easy to create builds that are customized to the needs of a particular site or application: a __custom build__ only exports those properties and methods needed by the site or application. As the full build is large, and will probably become larger as new features are added to the API, it's recommended that sites create a custom build for production software.
## Renderers and Browser Support
The library currently includes three renderers: Canvas, DOM, and WebGL. All three support raster data from tile/image servers, but only the Canvas renderer currently supports vector data. This means that only those browsers that [support Canvas](http://caniuse.com/canvas) can handle vector data. In particular, this excludes Internet Explorer versions before 9, though there is some support for those in the DOM renderer. Clearly, the WebGL renderer can only be used on those devices and browsers supporting WebGL.
The library is intended for use on both desktop/laptop and mobile devices.
## Objects and Naming Conventions
OL3 uses a similar object hierarchy to the Closure library. There is a top-level `ol` namespace (basically, `var ol = {};`). Subdivisions of this are:
* further namespaces, such as `ol.layer`; these have a lower-case initial
* simple objects containing static properties and methods, such as `ol.animation`; these also have a lower-case initial
* types, which have an upper-case initial. These are mainly 'classes', which here means a constructor function with prototypal inheritance, such as `ol.Map` or `ol.layer.Vector` (the Vector class within the layer namespace). There are however other, simpler, types, such as `ol.Extent`, which is an array.
In the API docs, the index on the left lists the namespaces and simple objects first, followed by the classes.
Class namespaces, such as `ol.layer` have a base class type with the same name, such as `ol.layer.Layer`. These are mainly abstract classes, from which the other subclasses inherit.
Source files are similarly organised, with a directory for each class namespace. Names are however all lower-case, and the subclasses repeat the superclass type in their name, for example, `ol/layer/vectorlayer.js`.
The naming structure means that there are sometimes 2 objects with the same name but different initial, such as `ol.feature`, a simple object with static functions to be used with features, and `ol.Feature`, a class used to instantiate new features. These two objects are however stored in the same file, in this case, `ol/feature.js`

View File

@@ -10,8 +10,21 @@
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<title>Accessibility example</title>
<style>
a.accesskey {
color: #FFFFFF;
a.skiplink {
position: absolute;
clip: rect(1px, 1px, 1px, 1px);
padding: 0;
border: 0;
height: 1px;
width: 1px;
overflow: hidden;
}
a.skiplink:focus {
clip: auto;
height: auto;
width: auto;
background-color: #fff;
padding: 0.3em;
}
</style>
</head>
@@ -20,7 +33,7 @@
<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>
<a class="brand" href="./"><img src="../resources/logo.png" alt=""> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -29,10 +42,8 @@
<div class="row-fluid">
<div class="span12">
<a class="accesskey" onclick="document.getElementById('map').focus(); return false;" accesskey="1" href="">Go to map</a>
<a class="skiplink" href="#map">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>
@@ -42,9 +53,9 @@
<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>
<p>This page's <code>map</code> element has its <code>tabindex</code> attribute set to <code>"0"</code>, that makes it focusable. To focus the map element you can either navigate to it using the "tab" key or use the skip link. When the <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" buttons below the map zoom the map in and out, respectively. You can navigate to the buttons using the "tab" key, and press the "enter" key to trigger the zooming action.</p>
<p>See the <a href="accessible.js" target="_blank">accessible.js source</a> to see how this is done.</p>
</div>
<div id="tags">accessibility, tabindex</div>
</div>
@@ -53,8 +64,9 @@
</div>
<script src="loader.js?id=accessible" type="text/javascript"></script>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=accessible" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,6 +1,6 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
@@ -11,10 +11,22 @@ var map = new ol.Map({
source: new ol.source.OSM()
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: exampleNS.getRendererFromQueryString(),
target: 'map',
view: new ol.View2D({
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
jQuery('#map').after('<button type="button" ' +
'onclick="map.getView().setZoom(map.getView().getZoom() - 1);">' +
'Zoom out</button>');
jQuery('#map').after('<button type="button" ' +
'onclick="map.getView().setZoom(map.getView().getZoom() + 1);">' +
'Zoom in</button>');

View File

@@ -15,7 +15,7 @@
<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>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -32,6 +32,7 @@
<div class="span12">
<button id="rotate-left"><i class="icon-arrow-left"></i></button>
<button id="rotate-right"><i class="icon-arrow-right"></i></button>
<button id="rotate-around-rome">Rotate around Rome</button>
<button id="pan-to-london">Pan to London</button>
<button id="elastic-to-moscow">Elastic to Moscow</button>
<button id="bounce-to-istanbul">Bounce to Istanbul</button>
@@ -56,8 +57,9 @@
</div>
<script src="loader.js?id=animation" type="text/javascript"></script>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=animation" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,13 +1,39 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.View');
goog.require('ol.animation');
goog.require('ol.easing');
goog.require('ol.control');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.OSM');
// from https://github.com/DmitryBaranovskiy/raphael
function bounce(t) {
var s = 7.5625, p = 2.75, l;
if (t < (1 / p)) {
l = s * t * t;
} else {
if (t < (2 / p)) {
t -= (1.5 / p);
l = s * t * t + 0.75;
} else {
if (t < (2.5 / p)) {
t -= (2.25 / p);
l = s * t * t + 0.9375;
} else {
t -= (2.625 / p);
l = s * t * t + 0.984375;
}
}
}
return l;
}
// from https://github.com/DmitryBaranovskiy/raphael
function elastic(t) {
return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * (2 * Math.PI) / 0.3) + 1;
}
var london = ol.proj.transform([-0.12755, 51.507222], 'EPSG:4326', 'EPSG:3857');
var moscow = ol.proj.transform([37.6178, 55.7517], 'EPSG:4326', 'EPSG:3857');
var istanbul = ol.proj.transform([28.9744, 41.0128], 'EPSG:4326', 'EPSG:3857');
@@ -15,7 +41,7 @@ var rome = ol.proj.transform([12.5, 41.9], 'EPSG:4326', 'EPSG:3857');
var bern = ol.proj.transform([7.4458, 46.95], 'EPSG:4326', 'EPSG:3857');
var madrid = ol.proj.transform([-3.683333, 40.4], 'EPSG:4326', 'EPSG:3857');
var view = new ol.View2D({
var view = new ol.View({
// the view's initial state
center: istanbul,
zoom: 6
@@ -28,8 +54,13 @@ var map = new ol.Map({
source: new ol.source.OSM()
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: exampleNS.getRendererFromQueryString(),
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
view: view
});
@@ -50,12 +81,23 @@ rotateRight.addEventListener('click', function() {
map.beforeRender(rotateRight);
}, false);
var rotateAroundRome = document.getElementById('rotate-around-rome');
rotateAroundRome.addEventListener('click', function() {
var currentRotation = view.getRotation();
var rotateAroundRome = ol.animation.rotate({
anchor: rome,
duration: 1000,
rotation: currentRotation
});
map.beforeRender(rotateAroundRome);
view.rotate(currentRotation + (Math.PI / 2), rome);
}, false);
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.beforeRender(pan);
view.setCenter(london);
@@ -65,8 +107,8 @@ var elasticToMoscow = document.getElementById('elastic-to-moscow');
elasticToMoscow.addEventListener('click', function() {
var pan = ol.animation.pan({
duration: 2000,
easing: ol.easing.elastic,
source: view.getCenter()
easing: elastic,
source: /** @type {ol.Coordinate} */ (view.getCenter())
});
map.beforeRender(pan);
view.setCenter(moscow);
@@ -76,8 +118,8 @@ var bounceToIstanbul = document.getElementById('bounce-to-istanbul');
bounceToIstanbul.addEventListener('click', function() {
var pan = ol.animation.pan({
duration: 2000,
easing: ol.easing.bounce,
source: view.getCenter()
easing: bounce,
source: /** @type {ol.Coordinate} */ (view.getCenter())
});
map.beforeRender(pan);
view.setCenter(istanbul);
@@ -89,7 +131,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({
@@ -107,7 +149,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({
@@ -125,7 +167,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({

View File

@@ -8,14 +8,14 @@
<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>WMTS from capabilities example</title>
<title>Attributions 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>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -31,21 +31,21 @@
<div class="row-fluid">
<div class="span12">
<h4 id="title">WMTS from capabilities example</h4>
<p id="shortdesc">Example of a WMTS source built from a WMTS getCapabilities response.</p>
<h4 id="title">Attributions example</h4>
<p id="shortdesc">Example of a attributions visibily change on map resize, to collapse them on small maps.</p>
<div id="docs">
<p>See the <a href="wmts-from-capabilities.js" target="_blank">wmts-from-capabilities.js source</a> to see how this is done.</p>
<p>See the <a href="attributions.js" target="_blank">attributions.js source</a> to see how this is done.</p>
</div>
<div id="tags">wmts</div>
<div id="tags">attributions, openstreetmap</div>
</div>
</div>
</div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/proj4js/1.1.0/proj4js-compressed.js" type="text/javascript"></script>
<script src="loader.js?id=wmts-from-capabilities" type="text/javascript"></script>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=attributions" type="text/javascript"></script>
</body>
</html>

33
examples/attributions.js Normal file
View File

@@ -0,0 +1,33 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.Attribution');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var attribution = new ol.control.Attribution({
collapsible: false
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
controls: ol.control.defaults({ attribution: false }).extend([attribution]),
renderer: exampleNS.getRendererFromQueryString(),
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
function checkSize() {
var small = map.getSize()[0] < 600;
attribution.setCollapsible(small);
attribution.setCollapsed(small);
}
$(window).on('resize', checkSize);
checkSize();

View File

@@ -15,7 +15,7 @@
<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>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -35,6 +35,7 @@
<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>
<p id="has-webgl" style="display: none">With the <a href="?renderer=webgl">WebGL renderer</a>, <strong>hue</strong>, <strong>saturation</strong>, <strong>contrast</strong> and <strong>brightness</strong> can also be controlled.</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
@@ -53,14 +54,16 @@
</label>
<label>opacity</label>
<input id="opacity" type="range" min="0" max="1" step="0.01"/>
</fieldset>
<fieldset id="webgl" style="display: none">
<label>hue</label>
<input id="hue" class="webgl" type="range" min="-3.141592653589793" max="3.141592653589793" step="0.01"/>
<input id="hue" type="range" min="-3.141592653589793" max="3.141592653589793" step="0.01"/>
<label>saturation</label>
<input id="saturation" class="webgl" type="range" min="0" max="5" step="0.01"/>
<input id="saturation" type="range" min="0" max="5" step="0.01"/>
<label>contrast</label>
<input id="contrast" class="webgl" type="range" min="0" max="2" step="0.01"/>
<input id="contrast" type="range" min="0" max="2" step="0.01"/>
<label>brightness</label>
<input id="brightness" class="webgl" type="range" min="-1" max="1" step="0.01"/>
<input id="brightness" type="range" min="-1" max="1" step="0.01"/>
</fieldset>
</form>
</div>
@@ -81,8 +84,9 @@
</div>
<script src="loader.js?id=bind-input" type="text/javascript"></script>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=bind-input" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,58 +1,69 @@
goog.require('ol.BrowserFeature');
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.dom.Input');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
goog.require('ol.webgl');
if (!ol.webgl.SUPPORTED) {
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 = '';
function checkWebGL(evt) {
document.getElementById('no-webgl').style.display =
ol.BrowserFeature.HAS_WEBGL ? 'none' : '';
document.getElementById('has-webgl').style.display =
ol.BrowserFeature.HAS_WEBGL && !evt.glContext ? '' : 'none';
document.getElementById('webgl').style.display =
evt.glContext ? '' : 'none';
}
var layer = new ol.layer.Tile({
source: new ol.source.OSM()
});
layer.once('precompose', checkWebGL);
var view = new ol.View({
center: [0, 0],
zoom: 2
});
var map = new ol.Map({
layers: [layer],
renderers: ol.RendererHints.createFromQueryData(),
renderer: exampleNS.getRendererFromQueryString(),
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
})
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
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('valueAsNumber', layer, 'opacity');
opacity.bindTo('value', layer, 'opacity')
.transform(parseFloat, String);
var hue = new ol.dom.Input(document.getElementById('hue'));
hue.bindTo('valueAsNumber', layer, 'hue');
hue.bindTo('value', layer, 'hue')
.transform(parseFloat, String);
var saturation = new ol.dom.Input(document.getElementById('saturation'));
saturation.bindTo('valueAsNumber', layer, 'saturation');
saturation.bindTo('value', layer, 'saturation')
.transform(parseFloat, String);
var contrast = new ol.dom.Input(document.getElementById('contrast'));
contrast.bindTo('valueAsNumber', layer, 'contrast');
contrast.bindTo('value', layer, 'contrast')
.transform(parseFloat, String);
var brightness = new ol.dom.Input(document.getElementById('brightness'));
brightness.bindTo('valueAsNumber', layer, 'brightness');
brightness.bindTo('value', layer, 'brightness')
.transform(parseFloat, String);
var rotation = new ol.dom.Input(document.getElementById('rotation'));
rotation.bindTo('valueAsNumber', map.getView(), 'rotation');
rotation.bindTo('value', view, 'rotation').transform(parseFloat, String);
var resolution = new ol.dom.Input(document.getElementById('resolution'));
resolution.bindTo('valueAsNumber', map.getView(), 'resolution');
resolution.bindTo('value', view, 'resolution').transform(parseFloat, String);

View File

@@ -15,7 +15,7 @@
<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>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -30,6 +30,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>
@@ -50,8 +52,8 @@
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=bing-maps" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=bing-maps" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,36 +1,42 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
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) {
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: 'Ar33pRUvQOdESG8m_T15MUmNz__E1twPo42bFx9jvdDePhX0PNgAcEm44OVTS7tt',
style: styles[i]
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3',
imagerySet: styles[i]
})
}));
}
var map = new ol.Map({
layers: layers,
renderers: ol.RendererHints.createFromQueryData(),
renderer: exampleNS.getRendererFromQueryString(),
target: 'map',
view: new ol.View2D({
center: ol.proj.transform([-123.1, 49.25], 'EPSG:4326', 'EPSG:3857'),
zoom: 8
view: new ol.View({
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

@@ -23,7 +23,7 @@
<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>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -66,8 +66,9 @@
</div>
<script src="loader.js?id=brightness-contrast" type="text/javascript"></script>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=brightness-contrast" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,9 +1,8 @@
goog.require('ol.BrowserFeature');
goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.MapQuestOpenAerial');
goog.require('ol.webgl');
goog.require('ol.source.MapQuest');
function setResetBrightnessButtonHTML() {
@@ -15,7 +14,7 @@ function setResetContrastButtonHTML() {
resetContrast.innerHTML = 'Contrast (' + layer.getContrast().toFixed(3) + ')';
}
if (!ol.webgl.SUPPORTED) {
if (!ol.BrowserFeature.HAS_WEBGL) {
var info = document.getElementById('no-webgl');
/**
* display error message
@@ -23,14 +22,14 @@ if (!ol.webgl.SUPPORTED) {
info.style.display = '';
} else {
var layer = new ol.layer.Tile({
source: new ol.source.MapQuestOpenAerial()
source: new ol.source.MapQuest({layer: 'sat'})
});
var map = new ol.Map({
layers: [layer],
renderer: ol.RendererHint.WEBGL,
renderer: 'webgl',
target: 'map',
view: new ol.View2D({
view: new ol.View({
center: [0, 0],
zoom: 2
})

View File

@@ -15,7 +15,7 @@
<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>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -44,8 +44,9 @@
</div>
<script src="loader.js?id=canvas-tiles" type="text/javascript"></script>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=canvas-tiles" type="text/javascript"></script>
</body>
</html>

View File

@@ -1,6 +1,6 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.OSM');
@@ -22,9 +22,14 @@ var map = new ol.Map({
})
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: exampleNS.getRendererFromQueryString(),
target: 'map',
view: new ol.View2D({
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
view: new ol.View({
center: ol.proj.transform(
[-0.1275, 51.507222], 'EPSG:4326', 'EPSG:3857'),
zoom: 10

131
examples/center.html Normal file
View File

@@ -0,0 +1,131 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<style>
.mapcontainer {
position: relative;
margin-bottom: 20px;
}
.map {
width: 1000px;
height: 600px;
}
div.ol-zoom {
top: 178px;
left: 158px;
}
div.ol-attribution {
bottom: 30px;
right: 50px;
}
.padding-top {
position: absolute;
top: 0;
left: 0px;
width: 1000px;
height: 170px;
background: rgba(255, 255, 255, 0.5);
}
.padding-left {
position: absolute;
top: 170px;
left: 0;
width: 150px;
height: 400px;
background: rgba(255, 255, 255, 0.5);
}
.padding-right {
position: absolute;
top: 170px;
left: 950px;
width: 50px;
height: 400px;
background: rgba(255, 255, 255, 0.5);
}
.padding-bottom {
position: absolute;
top: 570px;
left: 0px;
width: 1000px;
height: 30px;
background: rgba(255, 255, 255, 0.5);
}
.center {
position: absolute;
border: solid 1px black;
top: 490px;
left: 560px;
width: 20px;
height: 20px;
}
</style>
<title>Advanced View Positioning 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 mapcontainer">
<div id="map" class="map"></div>
<div class="padding-top"></div>
<div class="padding-left"></div>
<div class="padding-right"></div>
<div class="padding-bottom"></div>
<div class="center"></div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<button id="zoomtoswitzerlandbest">Zoom to Switzerland</button> (best fit),<br/>
<button id="zoomtoswitzerlandconstrained">Zoom to Switzerland</button> (respect resolution constraint).<br/>
<button id="zoomtoswitzerlandnearest">Zoom to Switzerland</button> (nearest),<br/>
<button id="zoomtolausanne">Zoom to Lausanne</button> (with min resolution),<br/>
<button id="centerlausanne">Center on Lausanne</button>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<h4 id="title">Advanced View Positioning example</h4>
<p id="shortdesc">This example demonstrates how a map's view can be
adjusted so a geometry or coordinate is positioned at a specific
pixel location. The map above has top, right, bottom, and left
padding applied inside the viewport. The view's <code>fitGeometry</code> method
is used to fit a geometry in the view with the same padding. The
view's <code>centerOn</code> method is used to position a coordinate (Lausanne)
at a specific pixel location (the center of the black box).</p>
<div id="docs">
<p>Use <code>Alt</code>+<code>Shift</code>+drag to rotate the map.</p>
<p>See the <a href="center.js" target="_blank">center.js source</a> to see how this is done.</p>
</div>
<div id="tags">center, rotation, openstreetmap</div>
</div>
</div>
</div>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="loader.js?id=center" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
</body>
</html>

133
examples/center.js Normal file
View File

@@ -0,0 +1,133 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.geom.Point');
goog.require('ol.geom.SimpleGeometry');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.GeoJSON');
goog.require('ol.source.OSM');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var source = new ol.source.GeoJSON({
projection: 'EPSG:3857',
url: 'data/geojson/switzerland.geojson'
});
var style = new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(255, 255, 255, 0.6)'
}),
stroke: new ol.style.Stroke({
color: '#319FD3',
width: 1
}),
image: new ol.style.Circle({
radius: 5,
fill: new ol.style.Fill({
color: 'rgba(255, 255, 255, 0.6)'
}),
stroke: new ol.style.Stroke({
color: '#319FD3',
width: 1
})
})
});
var vectorLayer = new ol.layer.Vector({
source: source,
style: style
});
var view = new ol.View({
center: [0, 0],
zoom: 1
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
vectorLayer
],
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
view: view
});
var zoomtoswitzerlandbest = document.getElementById('zoomtoswitzerlandbest');
zoomtoswitzerlandbest.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.fitGeometry(
polygon,
size,
{
padding: [170, 50, 30, 150],
constrainResolution: false
}
);
}, false);
var zoomtoswitzerlandconstrained =
document.getElementById('zoomtoswitzerlandconstrained');
zoomtoswitzerlandconstrained.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.fitGeometry(
polygon,
size,
{
padding: [170, 50, 30, 150]
}
);
}, false);
var zoomtoswitzerlandnearest =
document.getElementById('zoomtoswitzerlandnearest');
zoomtoswitzerlandnearest.addEventListener('click', function() {
var feature = source.getFeatures()[0];
var polygon = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.fitGeometry(
polygon,
size,
{
padding: [170, 50, 30, 150],
nearest: true
}
);
}, false);
var zoomtolausanne = document.getElementById('zoomtolausanne');
zoomtolausanne.addEventListener('click', function() {
var feature = source.getFeatures()[1];
var point = /** @type {ol.geom.SimpleGeometry} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.fitGeometry(
point,
size,
{
padding: [170, 50, 30, 150],
minResolution: 50
}
);
}, false);
var centerlausanne = document.getElementById('centerlausanne');
centerlausanne.addEventListener('click', function() {
var feature = source.getFeatures()[1];
var point = /** @type {ol.geom.Point} */ (feature.getGeometry());
var size = /** @type {ol.Size} */ (map.getSize());
view.centerOn(
point.getCoordinates(),
size,
[570, 500]
);
}, false);

View File

@@ -51,7 +51,7 @@
<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>
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a>
</div>
</div>
</div>
@@ -82,8 +82,9 @@
</div>
</div>
<script src="loader.js?id=custom-controls" type="text/javascript"></script>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=custom-controls" type="text/javascript"></script>
</body>

View File

@@ -1,7 +1,6 @@
goog.require('ol');
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.Control');
goog.require('ol.layer.Tile');
@@ -38,7 +37,7 @@ app.RotateNorthControl = function(opt_options) {
var handleRotateNorth = function(e) {
// prevent #rotate-north anchor from getting appended to the url
e.preventDefault();
this_.getMap().getView().getView2D().setRotation(0);
this_.getMap().getView().setRotation(0);
};
anchor.addEventListener('click', handleRotateNorth, false);
@@ -63,7 +62,11 @@ ol.inherits(app.RotateNorthControl, ol.control.Control);
var map = new ol.Map({
controls: ol.control.defaults().extend([
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}).extend([
new app.RotateNorthControl()
]),
layers: [
@@ -71,9 +74,9 @@ var map = new ol.Map({
source: new ol.source.OSM()
})
],
renderers: ol.RendererHints.createFromQueryData(),
renderer: exampleNS.getRendererFromQueryString(),
target: 'map',
view: new ol.View2D({
view: new ol.View({
center: [0, 0],
zoom: 2,
rotation: 1

54
examples/d3.html Normal file
View File

@@ -0,0 +1,54 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../resources/layout.css" type="text/css">
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css">
<title>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="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="loader.js?id=d3" type="text/javascript"></script>
</body>
</html>

96
examples/d3.js vendored Normal file
View File

@@ -0,0 +1,96 @@
// NOCOMPILE
// this example uses d3 for which we don't have an externs file.
goog.require('ol');
goog.require('ol.Map');
goog.require('ol.View');
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'
})
})
],
target: 'map',
view: new ol.View({
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);
});

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