From ef9db32ddab6df171496846c48e3a2917f1d0f78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89ric=20Lemoine?=
Date: Fri, 15 Mar 2013 10:38:51 +0100
Subject: [PATCH] Updated
---
master/apidoc/{user..html => 44f1750883.html} | 6 +-
master/apidoc/global.html | 10 +-
master/apidoc/index.html | 6 +-
master/apidoc/ol.AnchoredElement.html | 10 +-
master/apidoc/ol.Attribution.html | 8 +-
master/apidoc/ol.Collection.html | 14 +-
master/apidoc/ol.CollectionEvent.html | 10 +-
master/apidoc/ol.Color.html | 8 +-
master/apidoc/ol.Constraints.html | 6 +-
master/apidoc/ol.Coordinate.html | 10 +-
master/apidoc/ol.CoverageArea.html | 591 ++++
master/apidoc/ol.Ellipsoid.html | 22 +-
master/apidoc/ol.Extent.html | 220 +-
master/apidoc/ol.Geolocation.html | 10 +-
master/apidoc/ol.Image.html | 10 +-
master/apidoc/ol.ImageTile.html | 8 +-
master/apidoc/ol.Kinetic.html | 6 +-
master/apidoc/ol.Map.html | 28 +-
master/apidoc/ol.MapBrowserEvent.html | 10 +-
master/apidoc/ol.MapBrowserEventHandler.html | 6 +-
master/apidoc/ol.MapEvent.html | 10 +-
master/apidoc/ol.Object.html | 12 +-
master/apidoc/ol.Pixel.html | 6 +-
master/apidoc/ol.PixelBounds.html | 6 +-
master/apidoc/ol.Proj4jsProjection.html | 561 ++++
master/apidoc/ol.Projection.html | 6 +-
master/apidoc/ol.Rectangle.html | 6 +-
master/apidoc/ol.Size.html | 6 +-
master/apidoc/ol.Sphere.html | 6 +-
master/apidoc/ol.Tile.html | 6 +-
master/apidoc/ol.TileCache.html | 12 +-
master/apidoc/ol.TileCoord.html | 6 +-
master/apidoc/ol.TileCoverageArea.html | 702 ++++
master/apidoc/ol.TileQueue.html | 6 +-
master/apidoc/ol.TileRange.html | 8 +-
master/apidoc/ol.View.html | 10 +-
master/apidoc/ol.View2D.html | 34 +-
master/apidoc/ol.control.Attribution.html | 10 +-
master/apidoc/ol.control.Control.html | 6 +-
master/apidoc/ol.control.DragBox.html | 6 +-
master/apidoc/ol.control.MousePosition.html | 8 +-
master/apidoc/ol.control.ScaleLine.html | 8 +-
master/apidoc/ol.control.Zoom.html | 8 +-
.../apidoc/ol.interaction.DblClickZoom.html | 6 +-
master/apidoc/ol.interaction.Drag.html | 6 +-
master/apidoc/ol.interaction.DragPan.html | 8 +-
master/apidoc/ol.interaction.DragRotate.html | 6 +-
.../ol.interaction.DragRotateAndZoom.html | 6 +-
master/apidoc/ol.interaction.DragZoom.html | 6 +-
master/apidoc/ol.interaction.Interaction.html | 6 +-
master/apidoc/ol.interaction.Keyboard.html | 6 +-
master/apidoc/ol.interaction.KeyboardPan.html | 8 +-
.../apidoc/ol.interaction.KeyboardZoom.html | 8 +-
.../apidoc/ol.interaction.MouseWheelZoom.html | 6 +-
master/apidoc/ol.interaction.Touch.html | 6 +-
master/apidoc/ol.interaction.TouchPan.html | 8 +-
master/apidoc/ol.interaction.TouchRotate.html | 8 +-
.../ol.interaction.TouchRotateAndZoom.html | 447 +++
master/apidoc/ol.interaction.TouchZoom.html | 6 +-
master/apidoc/ol.layer.ImageLayer.html | 10 +-
master/apidoc/ol.layer.Layer.html | 10 +-
master/apidoc/ol.layer.TileLayer.html | 10 +-
master/apidoc/ol.overlay.Overlay.html | 787 +++++
master/apidoc/ol.parser.XML.html | 8 +-
.../apidoc/ol.parser.ogc.ExceptionReport.html | 8 +-
master/apidoc/ol.parser.ogc.OWSCommon_v1.html | 8 +-
.../ol.parser.ogc.OWSCommon_v1_1_0.html | 8 +-
master/apidoc/ol.parser.ogc.Versioned.html | 12 +-
.../apidoc/ol.parser.ogc.WMSCapabilities.html | 14 +-
.../ol.parser.ogc.WMSCapabilities_v1.html | 8 +-
.../ol.parser.ogc.WMSCapabilities_v1_0_0.html | 8 +-
.../ol.parser.ogc.WMSCapabilities_v1_1.html | 8 +-
.../ol.parser.ogc.WMSCapabilities_v1_1_0.html | 8 +-
.../ol.parser.ogc.WMSCapabilities_v1_1_1.html | 8 +-
...arser.ogc.WMSCapabilities_v1_1_1_WMSC.html | 8 +-
.../ol.parser.ogc.WMSCapabilities_v1_3_0.html | 8 +-
.../ol.parser.ogc.WMTSCapabilities.html | 14 +-
...ol.parser.ogc.WMTSCapabilities_v1_0_0.html | 8 +-
master/apidoc/ol.projection.EPSG3857.html | 14 +-
master/apidoc/ol.projection.EPSG4326.html | 8 +-
master/apidoc/ol.renderer.Layer.html | 227 +-
master/apidoc/ol.renderer.Map.html | 6 +-
.../apidoc/ol.renderer.canvas.ImageLayer.html | 228 +-
master/apidoc/ol.renderer.canvas.Layer.html | 230 +-
master/apidoc/ol.renderer.canvas.Map.html | 6 +-
.../apidoc/ol.renderer.canvas.TileLayer.html | 238 +-
master/apidoc/ol.renderer.dom.ImageLayer.html | 232 +-
master/apidoc/ol.renderer.dom.Layer.html | 236 +-
master/apidoc/ol.renderer.dom.Map.html | 6 +-
master/apidoc/ol.renderer.dom.TileLayer.html | 232 +-
.../ol.renderer.webgl.FragmentShader.html | 6 +-
.../apidoc/ol.renderer.webgl.ImageLayer.html | 220 +-
master/apidoc/ol.renderer.webgl.Layer.html | 222 +-
master/apidoc/ol.renderer.webgl.Map.html | 6 +-
master/apidoc/ol.renderer.webgl.Shader.html | 6 +-
.../apidoc/ol.renderer.webgl.TileLayer.html | 220 +-
.../ol.renderer.webgl.VertexShader.html | 6 +-
...ol.renderer.webgl.map.shader.Fragment.html | 6 +-
.../ol.renderer.webgl.map.shader.Vertex.html | 6 +-
...bgl.tilelayerrenderer.shader.Fragment.html | 6 +-
...webgl.tilelayerrenderer.shader.Vertex.html | 6 +-
master/apidoc/ol.source.BingMaps.html | 6 +-
master/apidoc/ol.source.DebugTileSource.html | 6 +-
master/apidoc/ol.source.ImageSource.html | 6 +-
master/apidoc/ol.source.ImageTileSource.html | 6 +-
master/apidoc/ol.source.MapQuestOSM.html | 6 +-
.../apidoc/ol.source.MapQuestOpenAerial.html | 6 +-
master/apidoc/ol.source.OpenStreetMap.html | 6 +-
master/apidoc/ol.source.SingleImageWMS.html | 6 +-
master/apidoc/ol.source.Source.html | 6 +-
master/apidoc/ol.source.Stamen.html | 6 +-
master/apidoc/ol.source.StaticImage.html | 6 +-
master/apidoc/ol.source.TileJSON.html | 6 +-
master/apidoc/ol.source.TileSource.html | 6 +-
master/apidoc/ol.source.TiledWMS.html | 6 +-
master/apidoc/ol.source.WMTS.html | 2156 ------------
master/apidoc/ol.source.XYZ.html | 6 +-
master/apidoc/ol.tilegrid.TileGrid.html | 8 +-
master/apidoc/ol.tilegrid.WMTS.html | 2691 ---------------
master/apidoc/ol.tilegrid.XYZ.html | 6 +-
master/apidoc/styles/apidoc.css | 266 ++
master/build/ol-deps.js | 52 +-
master/build/ol-simple.js | 301 +-
master/build/ol-whitespace.js | 2992 +++++++++++++++--
master/build/ol.css | 2 +-
master/build/ol.js | 526 +--
master/examples/bing-maps.html | 7 +
master/examples/bing-maps.js | 28 +-
master/examples/canvas-tiles-require.js | 2 +-
master/examples/canvas-tiles.html | 15 +-
master/examples/canvas-tiles.js | 46 +-
master/examples/epsg-4326-require.js | 1 -
master/examples/example-list.js | 2 +-
master/examples/example-list.xml | 2 +-
master/examples/full-screen-require.js | 1 -
master/examples/mouse-position-require.js | 1 -
master/examples/side-by-side-require.js | 2 -
master/examples/style-rules-require.js | 15 +
master/examples/style-rules.html | 52 +
master/examples/style-rules.js | 117 +
master/examples/vector-layer-require.js | 14 +
master/examples/vector-layer.html | 52 +
master/examples/vector-layer.js | 52 +
master/examples/wms-custom-proj-require.js | 5 +-
master/examples/wms-custom-proj.html | 2 +
master/examples/wms-custom-proj.js | 12 +-
.../wms-single-image-custom-proj-require.js | 9 +
.../wms-single-image-custom-proj.html | 54 +
.../examples/wms-single-image-custom-proj.js | 44 +
master/examples/wms-single-image.js | 4 +-
master/examples/wms-tiled.js | 4 +-
master/examples/zoomslider-require.js | 6 +
master/examples/zoomslider.html | 115 +
master/examples/zoomslider.js | 35 +
master/ol/ol/control/attributioncontrol.js | 3 +-
master/ol/ol/control/scalelinecontrol.js | 3 +-
master/ol/ol/control/zoomcontrol.js | 6 +-
master/ol/ol/control/zoomslider.exports | 1 +
master/ol/ol/control/zoomslidercontrol.js | 373 ++
master/ol/ol/expression.js | 70 +
master/ol/ol/feature.exports | 7 +
master/ol/ol/feature.js | 112 +
master/ol/ol/filter/extentfilter.js | 39 +
master/ol/ol/filter/filter.exports | 7 +
master/ol/ol/filter/filter.js | 24 +
master/ol/ol/filter/geometryfilter.js | 42 +
master/ol/ol/filter/logicalfilter.js | 63 +
master/ol/ol/geom/abstractcollection.js | 79 +
master/ol/ol/geom/base.js | 14 +
master/ol/ol/geom/expression.exports | 1 +
master/ol/ol/geom/geometry.exports | 6 +
master/ol/ol/geom/geometry.js | 71 +
master/ol/ol/geom/geometrycollection.js | 48 +
master/ol/ol/geom/linearring.js | 35 +
master/ol/ol/geom/linestring.js | 149 +
master/ol/ol/geom/multilinestring.js | 72 +
master/ol/ol/geom/multipoint.js | 77 +
master/ol/ol/geom/multipolygon.js | 73 +
master/ol/ol/geom/point.js | 105 +
master/ol/ol/geom/polygon.js | 90 +
master/ol/ol/geom/sharedvertices.js | 163 +
master/ol/ol/layer/vectorlayer.exports | 3 +
master/ol/ol/layer/vectorlayer.js | 360 ++
master/ol/ol/ol.js | 8 +
master/ol/ol/parser/featureparser.js | 66 +
master/ol/ol/parser/geojson.exports | 3 +
master/ol/ol/parser/geojson.js | 285 ++
master/ol/ol/parser/parser.js | 8 +
master/ol/ol/parser/polyline.js | 335 ++
master/ol/ol/parser/xml.js | 4 +
.../ol/renderer/canvas/canvasmaprenderer.js | 11 +-
.../canvas/canvasvectorlayerrenderer.js | 404 +++
.../renderer/canvas/canvasvectorrenderer.js | 439 +++
master/ol/ol/renderer/dom/dommaprenderer.js | 12 +-
master/ol/ol/renderer/maprenderer.js | 2 +
.../ol/ol/renderer/webgl/webglmaprenderer.js | 25 +-
master/ol/ol/source/imagetilesource.js | 7 +-
master/ol/ol/source/singleimagewmssource.js | 4 +-
master/ol/ol/source/tiledwmssource.js | 15 +-
master/ol/ol/source/vectorsource.exports | 1 +
master/ol/ol/source/vectorsource.js | 15 +
master/ol/ol/source/wmtssource.js | 48 +-
master/ol/ol/source/xyzsource.js | 3 +-
master/ol/ol/structs/rtree.js | 213 ++
master/ol/ol/style.exports | 9 +
master/ol/ol/style/icon.js | 160 +
master/ol/ol/style/line.js | 128 +
master/ol/ol/style/point.js | 33 +
master/ol/ol/style/polygon.js | 189 ++
master/ol/ol/style/rule.js | 46 +
master/ol/ol/style/shape.js | 230 ++
master/ol/ol/style/style.js | 70 +
master/ol/ol/style/symbolizer.js | 33 +
master/ol/ol/tilegrid/tilegrid.js | 2 +-
master/ol/ol/tileurlfunction.js | 50 +-
215 files changed, 12768 insertions(+), 8296 deletions(-)
rename master/apidoc/{user..html => 44f1750883.html} (93%)
create mode 100644 master/apidoc/ol.CoverageArea.html
create mode 100644 master/apidoc/ol.Proj4jsProjection.html
create mode 100644 master/apidoc/ol.TileCoverageArea.html
create mode 100644 master/apidoc/ol.interaction.TouchRotateAndZoom.html
create mode 100644 master/apidoc/ol.overlay.Overlay.html
delete mode 100644 master/apidoc/ol.source.WMTS.html
delete mode 100644 master/apidoc/ol.tilegrid.WMTS.html
create mode 100644 master/apidoc/styles/apidoc.css
create mode 100644 master/examples/style-rules-require.js
create mode 100644 master/examples/style-rules.html
create mode 100644 master/examples/style-rules.js
create mode 100644 master/examples/vector-layer-require.js
create mode 100644 master/examples/vector-layer.html
create mode 100644 master/examples/vector-layer.js
create mode 100644 master/examples/wms-single-image-custom-proj-require.js
create mode 100644 master/examples/wms-single-image-custom-proj.html
create mode 100644 master/examples/wms-single-image-custom-proj.js
create mode 100644 master/examples/zoomslider-require.js
create mode 100644 master/examples/zoomslider.html
create mode 100644 master/examples/zoomslider.js
create mode 100644 master/ol/ol/control/zoomslider.exports
create mode 100644 master/ol/ol/control/zoomslidercontrol.js
create mode 100644 master/ol/ol/expression.js
create mode 100644 master/ol/ol/feature.exports
create mode 100644 master/ol/ol/feature.js
create mode 100644 master/ol/ol/filter/extentfilter.js
create mode 100644 master/ol/ol/filter/filter.exports
create mode 100644 master/ol/ol/filter/filter.js
create mode 100644 master/ol/ol/filter/geometryfilter.js
create mode 100644 master/ol/ol/filter/logicalfilter.js
create mode 100644 master/ol/ol/geom/abstractcollection.js
create mode 100644 master/ol/ol/geom/base.js
create mode 100644 master/ol/ol/geom/expression.exports
create mode 100644 master/ol/ol/geom/geometry.exports
create mode 100644 master/ol/ol/geom/geometry.js
create mode 100644 master/ol/ol/geom/geometrycollection.js
create mode 100644 master/ol/ol/geom/linearring.js
create mode 100644 master/ol/ol/geom/linestring.js
create mode 100644 master/ol/ol/geom/multilinestring.js
create mode 100644 master/ol/ol/geom/multipoint.js
create mode 100644 master/ol/ol/geom/multipolygon.js
create mode 100644 master/ol/ol/geom/point.js
create mode 100644 master/ol/ol/geom/polygon.js
create mode 100644 master/ol/ol/geom/sharedvertices.js
create mode 100644 master/ol/ol/layer/vectorlayer.exports
create mode 100644 master/ol/ol/layer/vectorlayer.js
create mode 100644 master/ol/ol/parser/featureparser.js
create mode 100644 master/ol/ol/parser/geojson.exports
create mode 100644 master/ol/ol/parser/geojson.js
create mode 100644 master/ol/ol/parser/parser.js
create mode 100644 master/ol/ol/parser/polyline.js
create mode 100644 master/ol/ol/renderer/canvas/canvasvectorlayerrenderer.js
create mode 100644 master/ol/ol/renderer/canvas/canvasvectorrenderer.js
create mode 100644 master/ol/ol/source/vectorsource.exports
create mode 100644 master/ol/ol/source/vectorsource.js
create mode 100644 master/ol/ol/structs/rtree.js
create mode 100644 master/ol/ol/style.exports
create mode 100644 master/ol/ol/style/icon.js
create mode 100644 master/ol/ol/style/line.js
create mode 100644 master/ol/ol/style/point.js
create mode 100644 master/ol/ol/style/polygon.js
create mode 100644 master/ol/ol/style/rule.js
create mode 100644 master/ol/ol/style/shape.js
create mode 100644 master/ol/ol/style/style.js
create mode 100644 master/ol/ol/style/symbolizer.js
diff --git a/master/apidoc/user..html b/master/apidoc/44f1750883.html
similarity index 93%
rename from master/apidoc/user..html
rename to master/apidoc/44f1750883.html
index 9d27975249..07a97e6501 100644
--- a/master/apidoc/user..html
+++ b/master/apidoc/44f1750883.html
@@ -135,15 +135,15 @@ items from the cache is the responsibility of the user.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:29 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:28 GMT+0100 (CET)
diff --git a/master/apidoc/global.html b/master/apidoc/global.html
index 034906e2fc..00ce1e8aaf 100644
--- a/master/apidoc/global.html
+++ b/master/apidoc/global.html
@@ -298,7 +298,7 @@
Source:
- dragzoominteraction.js, line 20
+
@@ -377,7 +377,7 @@
Source:
-
+ dragzoominteraction.js, line 20
@@ -419,15 +419,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:11 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:56 GMT+0100 (CET)
diff --git a/master/apidoc/index.html b/master/apidoc/index.html
index e47578aba0..3fb1c959c8 100644
--- a/master/apidoc/index.html
+++ b/master/apidoc/index.html
@@ -48,15 +48,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:11 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:56 GMT+0100 (CET)
diff --git a/master/apidoc/ol.AnchoredElement.html b/master/apidoc/ol.AnchoredElement.html
index 588d311e5d..f2a3228c26 100644
--- a/master/apidoc/ol.AnchoredElement.html
+++ b/master/apidoc/ol.AnchoredElement.html
@@ -381,7 +381,7 @@
-string
+string=
@@ -412,7 +412,7 @@
-boolean
+boolean=
@@ -2335,15 +2335,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:29 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:29 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Attribution.html b/master/apidoc/ol.Attribution.html
index b4706c6d51..78b5b7472d 100644
--- a/master/apidoc/ol.Attribution.html
+++ b/master/apidoc/ol.Attribution.html
@@ -114,7 +114,7 @@
-Object.<string, Array.<ol.TileRange>>
+Object.<string, Array.<ol.TileRange>>=
@@ -426,15 +426,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:30 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:29 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Collection.html b/master/apidoc/ol.Collection.html
index 3d6cb70c08..f363375756 100644
--- a/master/apidoc/ol.Collection.html
+++ b/master/apidoc/ol.Collection.html
@@ -85,7 +85,7 @@
-Array
+Array=
@@ -390,7 +390,7 @@
-string
+string=
@@ -421,7 +421,7 @@
-boolean
+boolean=
@@ -742,7 +742,7 @@
-Object
+Object=
@@ -2612,15 +2612,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:30 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:29 GMT+0100 (CET)
diff --git a/master/apidoc/ol.CollectionEvent.html b/master/apidoc/ol.CollectionEvent.html
index 3c99e36d70..590e39e826 100644
--- a/master/apidoc/ol.CollectionEvent.html
+++ b/master/apidoc/ol.CollectionEvent.html
@@ -114,7 +114,7 @@
-*
+*=
@@ -145,7 +145,7 @@
-Object
+Object=
@@ -299,15 +299,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:30 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:30 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Color.html b/master/apidoc/ol.Color.html
index 309ecc5c8e..68cc893eba 100644
--- a/master/apidoc/ol.Color.html
+++ b/master/apidoc/ol.Color.html
@@ -496,7 +496,7 @@
-number
+number=
@@ -754,15 +754,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:31 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:30 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Constraints.html b/master/apidoc/ol.Constraints.html
index a46486f1fb..1961411736 100644
--- a/master/apidoc/ol.Constraints.html
+++ b/master/apidoc/ol.Constraints.html
@@ -292,15 +292,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:31 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:30 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Coordinate.html b/master/apidoc/ol.Coordinate.html
index 3c6bc81c28..a5b636254c 100644
--- a/master/apidoc/ol.Coordinate.html
+++ b/master/apidoc/ol.Coordinate.html
@@ -293,7 +293,7 @@
-number
+number=
@@ -752,7 +752,7 @@
-number
+number=
@@ -858,15 +858,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:33 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:31 GMT+0100 (CET)
diff --git a/master/apidoc/ol.CoverageArea.html b/master/apidoc/ol.CoverageArea.html
new file mode 100644
index 0000000000..ad1c890a2e
--- /dev/null
+++ b/master/apidoc/ol.CoverageArea.html
@@ -0,0 +1,591 @@
+
+
+
+
+ OpenLayers: Class: ol.CoverageArea
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: ol.CoverageArea
+
+
+
+
+
+
+
+
+
+ ol.CoverageArea
+
+
+
+
+
+
+
+
+
+
+
+ new CoverageArea
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ extent
+
+
+
+
+
+ol.Extent
+
+
+
+
+
+
+
+
+
+ Extent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ intersectsExtentAndResolution
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ intersectsExtentAndZ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+ intersectsExtent
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ extent
+
+
+
+
+
+ol.Extent
+
+
+
+
+
+
+
+
+
+ Extent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Intersects.
+
+
+
+
+
+
+ Type
+
+
+
+boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ transformFn
+
+
+
+
+
+ol.TransformFunction
+
+
+
+
+
+
+
+
+
+ Transform.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Transformed coverage area.
+
+
+
+
+
+
+ Type
+
+
+
+ol.CoverageArea
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Classes Global
+
+
+
+
+
+ Documentation generated by JSDoc 3 on Wed Nov 14 2012 21:15:10 GMT+0100 (CET)
+
+
+
+
+
diff --git a/master/apidoc/ol.Ellipsoid.html b/master/apidoc/ol.Ellipsoid.html
index 4eda8eebda..8742e399ce 100644
--- a/master/apidoc/ol.Ellipsoid.html
+++ b/master/apidoc/ol.Ellipsoid.html
@@ -433,7 +433,7 @@
-number
+number=
@@ -464,7 +464,7 @@
-number
+number=
@@ -665,7 +665,7 @@
-number
+number=
@@ -696,7 +696,7 @@
-number
+number=
@@ -897,7 +897,7 @@
-number
+number=
@@ -928,7 +928,7 @@
-number
+number=
@@ -1129,7 +1129,7 @@
-number
+number=
@@ -1160,7 +1160,7 @@
-number
+number=
@@ -1266,15 +1266,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:34 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:31 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Extent.html b/master/apidoc/ol.Extent.html
index 8ab53a9781..34303d9104 100644
--- a/master/apidoc/ol.Extent.html
+++ b/master/apidoc/ol.Extent.html
@@ -571,205 +571,7 @@ projection.
-ol.Extent
-
-
-
-
-
-
-
-
-
-
-
-
-
- <static> getForView2DAndSize
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- rotation
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Rotation.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Extent.
-
-
-
-
-
-
- Type
-
-
-
-ol.Extent
+!ol.Extent
@@ -872,7 +674,7 @@ of the extent.
Source:
-
+
@@ -1006,7 +808,7 @@ extent.
Source:
-
+
@@ -1333,7 +1135,7 @@ extent.
Source:
-
+
@@ -1414,7 +1216,7 @@ extent.
Source:
-
+
@@ -1753,7 +1555,7 @@ extent.
Source:
-
+
@@ -1834,7 +1636,7 @@ extent.
Source:
-
+
@@ -2515,7 +2317,7 @@ extent.
Source:
-
+
@@ -2573,15 +2375,15 @@ extent.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:34 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:32 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Geolocation.html b/master/apidoc/ol.Geolocation.html
index 91a6b50d4d..6d70f355e2 100644
--- a/master/apidoc/ol.Geolocation.html
+++ b/master/apidoc/ol.Geolocation.html
@@ -378,7 +378,7 @@
-string
+string=
@@ -409,7 +409,7 @@
-boolean
+boolean=
@@ -2405,15 +2405,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:34 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:32 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Image.html b/master/apidoc/ol.Image.html
index 65cfe69c87..06d960ece5 100644
--- a/master/apidoc/ol.Image.html
+++ b/master/apidoc/ol.Image.html
@@ -172,7 +172,7 @@
-string
+?string
@@ -613,7 +613,7 @@
-Object
+Object=
@@ -950,15 +950,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:35 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:32 GMT+0100 (CET)
diff --git a/master/apidoc/ol.ImageTile.html b/master/apidoc/ol.ImageTile.html
index 8ef7dd0f6a..1738f94105 100644
--- a/master/apidoc/ol.ImageTile.html
+++ b/master/apidoc/ol.ImageTile.html
@@ -172,7 +172,7 @@
-string
+?string
@@ -666,15 +666,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:35 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:32 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Kinetic.html b/master/apidoc/ol.Kinetic.html
index 327adf0518..e0409a9324 100644
--- a/master/apidoc/ol.Kinetic.html
+++ b/master/apidoc/ol.Kinetic.html
@@ -789,15 +789,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:40 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:35 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Map.html b/master/apidoc/ol.Map.html
index b1c24b123d..3cb7869779 100644
--- a/master/apidoc/ol.Map.html
+++ b/master/apidoc/ol.Map.html
@@ -406,7 +406,7 @@
Source:
-
+
@@ -876,7 +876,7 @@
-string
+string=
@@ -907,7 +907,7 @@
-boolean
+boolean=
@@ -2574,7 +2574,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-string
+string=
@@ -3670,7 +3670,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
+
@@ -3777,7 +3777,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
+
@@ -3996,7 +3996,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
+
@@ -4103,7 +4103,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
+
@@ -4346,7 +4346,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
+
@@ -4444,7 +4444,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-T
+T=
@@ -4492,7 +4492,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
+
@@ -4528,15 +4528,15 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:42 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:37 GMT+0100 (CET)
diff --git a/master/apidoc/ol.MapBrowserEvent.html b/master/apidoc/ol.MapBrowserEvent.html
index 4639f7d8d1..e65c2793bc 100644
--- a/master/apidoc/ol.MapBrowserEvent.html
+++ b/master/apidoc/ol.MapBrowserEvent.html
@@ -172,7 +172,7 @@
-ol.FrameState
+?ol.FrameState=
@@ -875,7 +875,7 @@ FIXME: replace with goog.events.EventType enum once we use
- frameState :ol.FrameState
+ frameState :?ol.FrameState
@@ -1311,15 +1311,15 @@ FIXME: replace with goog.events.EventType enum once we use
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:43 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:37 GMT+0100 (CET)
diff --git a/master/apidoc/ol.MapBrowserEventHandler.html b/master/apidoc/ol.MapBrowserEventHandler.html
index 24f9695d9e..265e851933 100644
--- a/master/apidoc/ol.MapBrowserEventHandler.html
+++ b/master/apidoc/ol.MapBrowserEventHandler.html
@@ -246,15 +246,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:43 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:38 GMT+0100 (CET)
diff --git a/master/apidoc/ol.MapEvent.html b/master/apidoc/ol.MapEvent.html
index 1ef487e054..9a34668f06 100644
--- a/master/apidoc/ol.MapEvent.html
+++ b/master/apidoc/ol.MapEvent.html
@@ -143,7 +143,7 @@
-ol.FrameState
+?ol.FrameState=
@@ -284,7 +284,7 @@
- frameState :ol.FrameState
+ frameState :?ol.FrameState
@@ -458,15 +458,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:44 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:38 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Object.html b/master/apidoc/ol.Object.html
index 75918c4263..81839b3aed 100644
--- a/master/apidoc/ol.Object.html
+++ b/master/apidoc/ol.Object.html
@@ -85,7 +85,7 @@
-Object.<string, *>
+Object.<string, *>=
@@ -1154,7 +1154,7 @@
-string
+string=
@@ -1185,7 +1185,7 @@
-boolean
+boolean=
@@ -1997,15 +1997,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:44 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:38 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Pixel.html b/master/apidoc/ol.Pixel.html
index b9eb62eafe..88bd6d1ce2 100644
--- a/master/apidoc/ol.Pixel.html
+++ b/master/apidoc/ol.Pixel.html
@@ -202,15 +202,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:51 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:41 GMT+0100 (CET)
diff --git a/master/apidoc/ol.PixelBounds.html b/master/apidoc/ol.PixelBounds.html
index 17aa0a9935..89fec75667 100644
--- a/master/apidoc/ol.PixelBounds.html
+++ b/master/apidoc/ol.PixelBounds.html
@@ -1516,15 +1516,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:52 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:41 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Proj4jsProjection.html b/master/apidoc/ol.Proj4jsProjection.html
new file mode 100644
index 0000000000..f7eed9e95a
--- /dev/null
+++ b/master/apidoc/ol.Proj4jsProjection.html
@@ -0,0 +1,561 @@
+
+
+
+
+ OpenLayers: Class: ol.Proj4jsProjection
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: ol.Proj4jsProjection
+
+
+
+
+
+
+
+
+
+ ol.Proj4jsProjection
+
+
+
+
+
+
+
+
+
+
+
+ new Proj4jsProjection
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ code
+
+
+
+
+
+string
+
+
+
+
+
+
+
+
+
+ Code.
+
+
+
+
+
+
+ proj4jsProj
+
+
+
+
+
+Proj4js.Proj
+
+
+
+
+
+
+
+
+
+ Proj4js projection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extends
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+ getCode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherited From:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Code.
+
+
+
+
+
+
+ Type
+
+
+
+string
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getExtent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherited From:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Extent.
+
+
+
+
+
+
+ Type
+
+
+
+ol.Extent
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getProj4jsProj
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Proj4js projection.
+
+
+
+
+
+
+ Type
+
+
+
+Proj4js.Proj
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getUnits
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherited From:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Units.
+
+
+
+
+
+
+ Type
+
+
+
+ol.ProjectionUnits
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Classes Global
+
+
+
+
+
+ Documentation generated by JSDoc 3 on Wed Feb 20 2013 10:37:55 GMT+0100 (CET)
+
+
+
+
+
diff --git a/master/apidoc/ol.Projection.html b/master/apidoc/ol.Projection.html
index b2a1eede30..970cf57e8c 100644
--- a/master/apidoc/ol.Projection.html
+++ b/master/apidoc/ol.Projection.html
@@ -901,15 +901,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:52 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:42 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Rectangle.html b/master/apidoc/ol.Rectangle.html
index 4b9bad8534..fd557c18fc 100644
--- a/master/apidoc/ol.Rectangle.html
+++ b/master/apidoc/ol.Rectangle.html
@@ -1440,15 +1440,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:54 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:43 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Size.html b/master/apidoc/ol.Size.html
index df3f145783..253ca9b3ab 100644
--- a/master/apidoc/ol.Size.html
+++ b/master/apidoc/ol.Size.html
@@ -335,15 +335,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:04 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:50 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Sphere.html b/master/apidoc/ol.Sphere.html
index 3ad57ef5a1..0d7feb2c0e 100644
--- a/master/apidoc/ol.Sphere.html
+++ b/master/apidoc/ol.Sphere.html
@@ -1679,15 +1679,15 @@ latitude.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:08 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:53 GMT+0100 (CET)
diff --git a/master/apidoc/ol.Tile.html b/master/apidoc/ol.Tile.html
index 66dc5955dd..7ebed340b8 100644
--- a/master/apidoc/ol.Tile.html
+++ b/master/apidoc/ol.Tile.html
@@ -619,15 +619,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:08 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:53 GMT+0100 (CET)
diff --git a/master/apidoc/ol.TileCache.html b/master/apidoc/ol.TileCache.html
index 24ca7b8f23..879e048d69 100644
--- a/master/apidoc/ol.TileCache.html
+++ b/master/apidoc/ol.TileCache.html
@@ -85,7 +85,7 @@
-number
+number=
@@ -160,7 +160,7 @@
Extends
@@ -713,7 +713,7 @@
-Object
+Object=
@@ -1587,15 +1587,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:08 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:53 GMT+0100 (CET)
diff --git a/master/apidoc/ol.TileCoord.html b/master/apidoc/ol.TileCoord.html
index f1de395e2e..2b53c43400 100644
--- a/master/apidoc/ol.TileCoord.html
+++ b/master/apidoc/ol.TileCoord.html
@@ -781,15 +781,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:09 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:54 GMT+0100 (CET)
diff --git a/master/apidoc/ol.TileCoverageArea.html b/master/apidoc/ol.TileCoverageArea.html
new file mode 100644
index 0000000000..4cf4415c58
--- /dev/null
+++ b/master/apidoc/ol.TileCoverageArea.html
@@ -0,0 +1,702 @@
+
+
+
+
+ OpenLayers: Class: ol.TileCoverageArea
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: ol.TileCoverageArea
+
+
+
+
+
+
+
+
+
+ ol.TileCoverageArea
+
+
+
+
+
+
+
+
+
+
+
+ new TileCoverageArea
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ tileGrid
+
+
+
+
+
+ol.tilegrid.TileGrid
+
+
+
+
+
+
+
+
+
+ Tile grid.
+
+
+
+
+
+
+ extent
+
+
+
+
+
+ol.Extent
+
+
+
+
+
+
+
+
+
+ Extent.
+
+
+
+
+
+
+ minZ
+
+
+
+
+
+number
+
+
+
+
+
+
+
+
+
+ Minimum Z.
+
+
+
+
+
+
+ maxZ
+
+
+
+
+
+number
+
+
+
+
+
+
+
+
+
+ Maximum Z.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ tilecoveragearea.js, line 17
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extends
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherited From:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+ intersectsExtent
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ extent
+
+
+
+
+
+ol.Extent
+
+
+
+
+
+
+
+
+
+ Extent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherited From:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Intersects.
+
+
+
+
+
+
+ Type
+
+
+
+boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+ intersectsExtentAndResolution
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ tilecoveragearea.js, line 46
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ intersectsExtentAndZ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ tilecoveragearea.js, line 56
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ transformFn
+
+
+
+
+
+ol.TransformFunction
+
+
+
+
+
+
+
+
+
+ Transform.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ tilecoveragearea.js, line 65
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Transformed tile coverage area.
+
+
+
+
+
+
+ Type
+
+
+
+ol.TileCoverageArea
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Classes Global
+
+
+
+
+
+ Documentation generated by JSDoc 3 on Wed Nov 14 2012 21:15:24 GMT+0100 (CET)
+
+
+
+
+
diff --git a/master/apidoc/ol.TileQueue.html b/master/apidoc/ol.TileQueue.html
index dbba082dcc..b28512e794 100644
--- a/master/apidoc/ol.TileQueue.html
+++ b/master/apidoc/ol.TileQueue.html
@@ -537,15 +537,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:10 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:54 GMT+0100 (CET)
diff --git a/master/apidoc/ol.TileRange.html b/master/apidoc/ol.TileRange.html
index 14d396fb5b..faa2892f20 100644
--- a/master/apidoc/ol.TileRange.html
+++ b/master/apidoc/ol.TileRange.html
@@ -547,7 +547,7 @@ by its min/max tile coordinates and is inclusive of coordinates.
-ol.TileRange
+!ol.TileRange
@@ -1878,15 +1878,15 @@ by its min/max tile coordinates and is inclusive of coordinates.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:10 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:54 GMT+0100 (CET)
diff --git a/master/apidoc/ol.View.html b/master/apidoc/ol.View.html
index dda7ec3443..b22084d6d3 100644
--- a/master/apidoc/ol.View.html
+++ b/master/apidoc/ol.View.html
@@ -424,7 +424,7 @@
-string
+string=
@@ -455,7 +455,7 @@
-boolean
+boolean=
@@ -1518,15 +1518,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:10 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:55 GMT+0100 (CET)
diff --git a/master/apidoc/ol.View2D.html b/master/apidoc/ol.View2D.html
index 245b2e4694..095fc04244 100644
--- a/master/apidoc/ol.View2D.html
+++ b/master/apidoc/ol.View2D.html
@@ -85,7 +85,7 @@
-ol.View2DOptions
+ol.View2DOptions=
@@ -436,7 +436,7 @@
-string
+string=
@@ -467,7 +467,7 @@
-boolean
+boolean=
@@ -2000,7 +2000,7 @@
-number
+number=
@@ -2178,7 +2178,7 @@
-ol.Coordinate
+ol.Coordinate=
@@ -2209,7 +2209,7 @@
-number
+number=
@@ -2387,7 +2387,7 @@
-ol.Coordinate
+ol.Coordinate=
@@ -2418,7 +2418,7 @@
-number
+number=
@@ -3598,7 +3598,7 @@
-ol.Coordinate
+ol.Coordinate=
@@ -3629,7 +3629,7 @@
-number
+number=
@@ -3804,7 +3804,7 @@
-ol.Coordinate
+ol.Coordinate=
@@ -3835,7 +3835,7 @@
-number
+number=
@@ -4013,7 +4013,7 @@
-ol.Coordinate
+ol.Coordinate=
@@ -4044,7 +4044,7 @@
-number
+number=
@@ -4128,15 +4128,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:10 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:55 GMT+0100 (CET)
diff --git a/master/apidoc/ol.control.Attribution.html b/master/apidoc/ol.control.Attribution.html
index 13ed365398..c90ebd0855 100644
--- a/master/apidoc/ol.control.Attribution.html
+++ b/master/apidoc/ol.control.Attribution.html
@@ -85,7 +85,7 @@
-ol.control.AttributionOptions
+ol.control.AttributionOptions=
@@ -431,7 +431,7 @@
-Object.<string, Object.<string, ol.TileRange>>
+?Object.<string, Object.<string, ol.TileRange>>
@@ -733,15 +733,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:31 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:30 GMT+0100 (CET)
diff --git a/master/apidoc/ol.control.Control.html b/master/apidoc/ol.control.Control.html
index cc1046c452..7ee1eb585f 100644
--- a/master/apidoc/ol.control.Control.html
+++ b/master/apidoc/ol.control.Control.html
@@ -491,15 +491,15 @@ to the map here.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:32 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:30 GMT+0100 (CET)
diff --git a/master/apidoc/ol.control.DragBox.html b/master/apidoc/ol.control.DragBox.html
index 0509d4c381..d6bfe3ce8e 100644
--- a/master/apidoc/ol.control.DragBox.html
+++ b/master/apidoc/ol.control.DragBox.html
@@ -447,15 +447,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:32 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:30 GMT+0100 (CET)
diff --git a/master/apidoc/ol.control.MousePosition.html b/master/apidoc/ol.control.MousePosition.html
index 5e1cc6b3b3..6ea339819c 100644
--- a/master/apidoc/ol.control.MousePosition.html
+++ b/master/apidoc/ol.control.MousePosition.html
@@ -85,7 +85,7 @@
-ol.control.MousePositionOptions
+ol.control.MousePositionOptions=
@@ -778,15 +778,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:32 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:31 GMT+0100 (CET)
diff --git a/master/apidoc/ol.control.ScaleLine.html b/master/apidoc/ol.control.ScaleLine.html
index 39057d224a..c099f8f2f3 100644
--- a/master/apidoc/ol.control.ScaleLine.html
+++ b/master/apidoc/ol.control.ScaleLine.html
@@ -85,7 +85,7 @@
-ol.control.ScaleLineOptions
+ol.control.ScaleLineOptions=
@@ -610,15 +610,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:33 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:31 GMT+0100 (CET)
diff --git a/master/apidoc/ol.control.Zoom.html b/master/apidoc/ol.control.Zoom.html
index 419511ce19..667f6a2822 100644
--- a/master/apidoc/ol.control.Zoom.html
+++ b/master/apidoc/ol.control.Zoom.html
@@ -85,7 +85,7 @@
-ol.control.ZoomOptions
+ol.control.ZoomOptions=
@@ -516,15 +516,15 @@ to the map here.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:33 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:31 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.DblClickZoom.html b/master/apidoc/ol.interaction.DblClickZoom.html
index be4e9e89f4..a846b48575 100644
--- a/master/apidoc/ol.interaction.DblClickZoom.html
+++ b/master/apidoc/ol.interaction.DblClickZoom.html
@@ -242,15 +242,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:36 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:33 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.Drag.html b/master/apidoc/ol.interaction.Drag.html
index b10cc5c2a3..a8af2ac8c8 100644
--- a/master/apidoc/ol.interaction.Drag.html
+++ b/master/apidoc/ol.interaction.Drag.html
@@ -658,15 +658,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:36 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:33 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.DragPan.html b/master/apidoc/ol.interaction.DragPan.html
index 39b3b7af41..ffa36d7247 100644
--- a/master/apidoc/ol.interaction.DragPan.html
+++ b/master/apidoc/ol.interaction.DragPan.html
@@ -114,7 +114,7 @@
-ol.Kinetic
+ol.Kinetic=
@@ -832,15 +832,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:36 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:33 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.DragRotate.html b/master/apidoc/ol.interaction.DragRotate.html
index 447a65b323..d830cb892a 100644
--- a/master/apidoc/ol.interaction.DragRotate.html
+++ b/master/apidoc/ol.interaction.DragRotate.html
@@ -785,15 +785,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:36 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:33 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.DragRotateAndZoom.html b/master/apidoc/ol.interaction.DragRotateAndZoom.html
index 0a86994c0a..258b3c1e9f 100644
--- a/master/apidoc/ol.interaction.DragRotateAndZoom.html
+++ b/master/apidoc/ol.interaction.DragRotateAndZoom.html
@@ -777,15 +777,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:37 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:33 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.DragZoom.html b/master/apidoc/ol.interaction.DragZoom.html
index bd051b3ffd..3610319827 100644
--- a/master/apidoc/ol.interaction.DragZoom.html
+++ b/master/apidoc/ol.interaction.DragZoom.html
@@ -777,15 +777,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:37 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:34 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.Interaction.html b/master/apidoc/ol.interaction.Interaction.html
index 4bf43e77c2..66c9555356 100644
--- a/master/apidoc/ol.interaction.Interaction.html
+++ b/master/apidoc/ol.interaction.Interaction.html
@@ -175,15 +175,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:37 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:34 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.Keyboard.html b/master/apidoc/ol.interaction.Keyboard.html
index 36e9475c5b..38c5f8c13a 100644
--- a/master/apidoc/ol.interaction.Keyboard.html
+++ b/master/apidoc/ol.interaction.Keyboard.html
@@ -324,15 +324,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:38 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:34 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.KeyboardPan.html b/master/apidoc/ol.interaction.KeyboardPan.html
index 634f6e72a2..de8cdb5fbc 100644
--- a/master/apidoc/ol.interaction.KeyboardPan.html
+++ b/master/apidoc/ol.interaction.KeyboardPan.html
@@ -85,7 +85,7 @@
-ol.interaction.KeyboardPanOptions
+ol.interaction.KeyboardPanOptions=
@@ -252,15 +252,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:38 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:34 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.KeyboardZoom.html b/master/apidoc/ol.interaction.KeyboardZoom.html
index 204e337cfb..88a80e1494 100644
--- a/master/apidoc/ol.interaction.KeyboardZoom.html
+++ b/master/apidoc/ol.interaction.KeyboardZoom.html
@@ -85,7 +85,7 @@
-ol.interaction.KeyboardZoomOptions
+ol.interaction.KeyboardZoomOptions=
@@ -252,15 +252,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:38 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:34 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.MouseWheelZoom.html b/master/apidoc/ol.interaction.MouseWheelZoom.html
index b35d9c0f07..a505decd12 100644
--- a/master/apidoc/ol.interaction.MouseWheelZoom.html
+++ b/master/apidoc/ol.interaction.MouseWheelZoom.html
@@ -194,15 +194,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:38 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:34 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.Touch.html b/master/apidoc/ol.interaction.Touch.html
index 30f037e75f..3b290e8d06 100644
--- a/master/apidoc/ol.interaction.Touch.html
+++ b/master/apidoc/ol.interaction.Touch.html
@@ -511,15 +511,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:38 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:35 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.TouchPan.html b/master/apidoc/ol.interaction.TouchPan.html
index 8cdbaf58c0..5ebffe37a7 100644
--- a/master/apidoc/ol.interaction.TouchPan.html
+++ b/master/apidoc/ol.interaction.TouchPan.html
@@ -85,7 +85,7 @@
-ol.Kinetic
+ol.Kinetic=
@@ -535,15 +535,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:39 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:35 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.TouchRotate.html b/master/apidoc/ol.interaction.TouchRotate.html
index 25d44c2af9..b3429e857c 100644
--- a/master/apidoc/ol.interaction.TouchRotate.html
+++ b/master/apidoc/ol.interaction.TouchRotate.html
@@ -89,7 +89,7 @@
-number
+number=
@@ -494,15 +494,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:39 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:35 GMT+0100 (CET)
diff --git a/master/apidoc/ol.interaction.TouchRotateAndZoom.html b/master/apidoc/ol.interaction.TouchRotateAndZoom.html
new file mode 100644
index 0000000000..a6e2cfa844
--- /dev/null
+++ b/master/apidoc/ol.interaction.TouchRotateAndZoom.html
@@ -0,0 +1,447 @@
+
+
+
+
+ OpenLayers: Class: ol.interaction.TouchRotateAndZoom
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: ol.interaction.TouchRotateAndZoom
+
+
+
+
+
+
+
+
+
+ ol.interaction.TouchRotateAndZoom
+
+
+
+
+
+
+
+
+
+
+
+ new TouchRotateAndZoom
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ touchrotateandzoominteraction.js, line 16
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extends
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+
+ targetTouches :Array.<Object>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherited From:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ touchinteraction.js, line 35
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+ handleMapBrowserEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherited From:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ touchinteraction.js, line 105
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ handleTouchEnd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ touchrotateandzoominteraction.js, line 118
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ handleTouchMove
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ touchrotateandzoominteraction.js, line 57
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ handleTouchStart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ touchrotateandzoominteraction.js, line 136
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Classes Global
+
+
+
+
+
+ Documentation generated by JSDoc 3 on Sun Mar 03 2013 20:45:27 GMT+0100 (CET)
+
+
+
+
+
diff --git a/master/apidoc/ol.interaction.TouchZoom.html b/master/apidoc/ol.interaction.TouchZoom.html
index ed689c0a06..e462914064 100644
--- a/master/apidoc/ol.interaction.TouchZoom.html
+++ b/master/apidoc/ol.interaction.TouchZoom.html
@@ -431,15 +431,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:39 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:35 GMT+0100 (CET)
diff --git a/master/apidoc/ol.layer.ImageLayer.html b/master/apidoc/ol.layer.ImageLayer.html
index d282936c4f..7121eba884 100644
--- a/master/apidoc/ol.layer.ImageLayer.html
+++ b/master/apidoc/ol.layer.ImageLayer.html
@@ -380,7 +380,7 @@
-string
+string=
@@ -411,7 +411,7 @@
-boolean
+boolean=
@@ -2827,15 +2827,15 @@ permitted).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:40 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:36 GMT+0100 (CET)
diff --git a/master/apidoc/ol.layer.Layer.html b/master/apidoc/ol.layer.Layer.html
index 429ddfce31..2cdc30aad6 100644
--- a/master/apidoc/ol.layer.Layer.html
+++ b/master/apidoc/ol.layer.Layer.html
@@ -380,7 +380,7 @@
-string
+string=
@@ -411,7 +411,7 @@
-boolean
+boolean=
@@ -2671,15 +2671,15 @@ permitted).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:41 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:36 GMT+0100 (CET)
diff --git a/master/apidoc/ol.layer.TileLayer.html b/master/apidoc/ol.layer.TileLayer.html
index d437d18bd6..1ac6092cc1 100644
--- a/master/apidoc/ol.layer.TileLayer.html
+++ b/master/apidoc/ol.layer.TileLayer.html
@@ -380,7 +380,7 @@
-string
+string=
@@ -411,7 +411,7 @@
-boolean
+boolean=
@@ -2827,15 +2827,15 @@ permitted).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:42 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:36 GMT+0100 (CET)
diff --git a/master/apidoc/ol.overlay.Overlay.html b/master/apidoc/ol.overlay.Overlay.html
new file mode 100644
index 0000000000..bfcb4aff3a
--- /dev/null
+++ b/master/apidoc/ol.overlay.Overlay.html
@@ -0,0 +1,787 @@
+
+
+
+
+ OpenLayers: Class: ol.overlay.Overlay
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: ol.overlay.Overlay
+
+
+
+
+
+
+
+
+
+ ol.overlay.Overlay
+
+
+
+
+
+
+
+
+
+
+
+ new Overlay
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ overlayOptions
+
+
+
+
+
+ol.overlay.OverlayOptions
+
+
+
+
+
+
+
+
+
+ Overlay options.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+ getElement
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ The DOM element for the overlay.
+
+
+
+
+
+
+ Type
+
+
+
+Element
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getMap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns:
+
+
+
+ Map.
+
+
+
+
+
+
+ Type
+
+
+
+ol.Map
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setCoordinate
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ coordinate
+
+
+
+
+
+ol.Coordinate
+
+
+
+
+
+
+
+
+
+ Coordinate for the overlay's position on
+ the map.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setElement
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ element
+
+
+
+
+
+Element
+
+
+
+
+
+
+
+
+
+ The DOM element for the overlay.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setMap
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ map
+
+
+
+
+
+ol.Map
+
+
+
+
+
+
+
+
+
+ Map.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setPositioning
+
+
+
+
+
+
+
+ Set the CSS properties to use for x- and y-positioning of the element. If
+not set, the default is {@code ['left', 'bottom']}.
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ positioning
+
+
+
+
+
+Array.<string>
+
+
+
+
+
+
+
+
+
+ The positioning.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Classes Global
+
+
+
+
+
+ Documentation generated by JSDoc 3 on Wed Nov 14 2012 21:15:15 GMT+0100 (CET)
+
+
+
+
+
diff --git a/master/apidoc/ol.parser.XML.html b/master/apidoc/ol.parser.XML.html
index 6a3b2a3395..48f3e46d64 100644
--- a/master/apidoc/ol.parser.XML.html
+++ b/master/apidoc/ol.parser.XML.html
@@ -281,7 +281,7 @@
-Element
+?Element
@@ -968,15 +968,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:51 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:41 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.ExceptionReport.html b/master/apidoc/ol.parser.ogc.ExceptionReport.html
index c1f8e06218..a5fc875423 100644
--- a/master/apidoc/ol.parser.ogc.ExceptionReport.html
+++ b/master/apidoc/ol.parser.ogc.ExceptionReport.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1136,15 +1136,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:45 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:38 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.OWSCommon_v1.html b/master/apidoc/ol.parser.ogc.OWSCommon_v1.html
index 25caf7634e..40463f69ac 100644
--- a/master/apidoc/ol.parser.ogc.OWSCommon_v1.html
+++ b/master/apidoc/ol.parser.ogc.OWSCommon_v1.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -999,15 +999,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:45 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:38 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.OWSCommon_v1_1_0.html b/master/apidoc/ol.parser.ogc.OWSCommon_v1_1_0.html
index c9601dd0b4..17557bf081 100644
--- a/master/apidoc/ol.parser.ogc.OWSCommon_v1_1_0.html
+++ b/master/apidoc/ol.parser.ogc.OWSCommon_v1_1_0.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -999,15 +999,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:45 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:39 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.Versioned.html b/master/apidoc/ol.parser.ogc.Versioned.html
index ca59e1806c..a14bec751d 100644
--- a/master/apidoc/ol.parser.ogc.Versioned.html
+++ b/master/apidoc/ol.parser.ogc.Versioned.html
@@ -368,7 +368,7 @@
-Object
+Object=
@@ -539,7 +539,7 @@
-Object
+Object=
@@ -711,7 +711,7 @@
-Object
+Object=
@@ -820,15 +820,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:45 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:39 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMSCapabilities.html b/master/apidoc/ol.parser.ogc.WMSCapabilities.html
index deee3b26c5..423d4e902e 100644
--- a/master/apidoc/ol.parser.ogc.WMSCapabilities.html
+++ b/master/apidoc/ol.parser.ogc.WMSCapabilities.html
@@ -85,7 +85,7 @@
-Object
+Object=
@@ -389,7 +389,7 @@
-Object
+Object=
@@ -565,7 +565,7 @@
-Object
+Object=
@@ -742,7 +742,7 @@
-Object
+Object=
@@ -856,15 +856,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:46 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:39 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1.html b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1.html
index 8617eb412f..e12b9fb66e 100644
--- a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1.html
+++ b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1134,15 +1134,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:46 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:39 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_0_0.html b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_0_0.html
index 3bde977491..1e194097c3 100644
--- a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_0_0.html
+++ b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_0_0.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1139,15 +1139,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:46 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:39 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1.html b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1.html
index a71794cedb..30e9a4d7b5 100644
--- a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1.html
+++ b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1139,15 +1139,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:47 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:40 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_0.html b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_0.html
index a7aa326ecd..8aca013751 100644
--- a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_0.html
+++ b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_0.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1139,15 +1139,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:47 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:40 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_1.html b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_1.html
index b7796abacd..5ccd95d9fc 100644
--- a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_1.html
+++ b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_1.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1139,15 +1139,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:48 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:40 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC.html b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC.html
index 0d4087d94a..775c070841 100644
--- a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC.html
+++ b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1139,15 +1139,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:48 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:40 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_3_0.html b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_3_0.html
index 3c4e5ac270..bec214a4c9 100644
--- a/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_3_0.html
+++ b/master/apidoc/ol.parser.ogc.WMSCapabilities_v1_3_0.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1139,15 +1139,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:49 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:41 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMTSCapabilities.html b/master/apidoc/ol.parser.ogc.WMTSCapabilities.html
index 51fdf8f4d4..68586048ae 100644
--- a/master/apidoc/ol.parser.ogc.WMTSCapabilities.html
+++ b/master/apidoc/ol.parser.ogc.WMTSCapabilities.html
@@ -85,7 +85,7 @@
-Object
+Object=
@@ -389,7 +389,7 @@
-Object
+Object=
@@ -565,7 +565,7 @@
-Object
+Object=
@@ -742,7 +742,7 @@
-Object
+Object=
@@ -856,15 +856,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:49 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:41 GMT+0100 (CET)
diff --git a/master/apidoc/ol.parser.ogc.WMTSCapabilities_v1_0_0.html b/master/apidoc/ol.parser.ogc.WMTSCapabilities_v1_0_0.html
index 0eab97ba5f..e50c3c3b12 100644
--- a/master/apidoc/ol.parser.ogc.WMTSCapabilities_v1_0_0.html
+++ b/master/apidoc/ol.parser.ogc.WMTSCapabilities_v1_0_0.html
@@ -292,7 +292,7 @@
-Element
+?Element
@@ -1134,15 +1134,15 @@ provided).
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:50 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:41 GMT+0100 (CET)
diff --git a/master/apidoc/ol.projection.EPSG3857.html b/master/apidoc/ol.projection.EPSG3857.html
index 75354194e8..f70504db3a 100644
--- a/master/apidoc/ol.projection.EPSG3857.html
+++ b/master/apidoc/ol.projection.EPSG3857.html
@@ -1264,7 +1264,7 @@
-Array.<number>
+Array.<number>=
@@ -1295,7 +1295,7 @@
-number
+number=
@@ -1467,7 +1467,7 @@
-Array.<number>
+Array.<number>=
@@ -1498,7 +1498,7 @@
-number
+number=
@@ -1604,15 +1604,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:53 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:42 GMT+0100 (CET)
diff --git a/master/apidoc/ol.projection.EPSG4326.html b/master/apidoc/ol.projection.EPSG4326.html
index 74697c4db9..99c6f89218 100644
--- a/master/apidoc/ol.projection.EPSG4326.html
+++ b/master/apidoc/ol.projection.EPSG4326.html
@@ -114,7 +114,7 @@
-string
+string=
@@ -1099,15 +1099,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:53 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:42 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.Layer.html b/master/apidoc/ol.renderer.Layer.html
index ee1a3210f0..d745cce223 100644
--- a/master/apidoc/ol.renderer.Layer.html
+++ b/master/apidoc/ol.renderer.Layer.html
@@ -146,7 +146,7 @@
Source:
- layerrenderer.js, line 28
+ layerrenderer.js, line 27
@@ -271,7 +271,7 @@
Source:
- layerrenderer.js, line 116
+ layerrenderer.js, line 115
@@ -317,7 +317,7 @@
Source:
- layerrenderer.js, line 122
+ layerrenderer.js, line 121
@@ -363,7 +363,7 @@
Source:
- layerrenderer.js, line 128
+ layerrenderer.js, line 127
@@ -409,7 +409,7 @@
Source:
- layerrenderer.js, line 163
+ layerrenderer.js, line 162
@@ -455,7 +455,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -501,7 +501,7 @@
Source:
- layerrenderer.js, line 207
+ layerrenderer.js, line 206
@@ -679,7 +679,7 @@
-string
+string=
@@ -710,7 +710,7 @@
-boolean
+boolean=
@@ -940,7 +940,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -1021,7 +1021,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1304,7 +1304,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1385,7 +1385,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1466,7 +1466,7 @@
Source:
- layerrenderer.js, line 108
+ layerrenderer.js, line 107
@@ -1599,7 +1599,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -1658,7 +1658,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -1717,7 +1717,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -1776,7 +1776,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -1887,7 +1887,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2129,7 +2129,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -2394,181 +2394,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -2862,7 +2687,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3038,7 +2863,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3191,7 +3016,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3227,15 +3052,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:59 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:47 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.Map.html b/master/apidoc/ol.renderer.Map.html
index 98d351c638..c7f195450e 100644
--- a/master/apidoc/ol.renderer.Map.html
+++ b/master/apidoc/ol.renderer.Map.html
@@ -1756,15 +1756,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:00 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:47 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.canvas.ImageLayer.html b/master/apidoc/ol.renderer.canvas.ImageLayer.html
index 2591a356f6..46d164e2b7 100644
--- a/master/apidoc/ol.renderer.canvas.ImageLayer.html
+++ b/master/apidoc/ol.renderer.canvas.ImageLayer.html
@@ -276,7 +276,7 @@
Source:
- layerrenderer.js, line 116
+ layerrenderer.js, line 115
@@ -327,7 +327,7 @@
Source:
- layerrenderer.js, line 122
+ layerrenderer.js, line 121
@@ -378,7 +378,7 @@
Source:
- layerrenderer.js, line 128
+ layerrenderer.js, line 127
@@ -429,7 +429,7 @@
Source:
- layerrenderer.js, line 163
+ layerrenderer.js, line 162
@@ -480,7 +480,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -658,7 +658,7 @@
-string
+string=
@@ -689,7 +689,7 @@
-boolean
+boolean=
@@ -924,7 +924,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -1010,7 +1010,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1438,7 +1438,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1524,7 +1524,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1610,7 +1610,7 @@
Source:
- layerrenderer.js, line 108
+ layerrenderer.js, line 107
@@ -1807,7 +1807,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -1871,7 +1871,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -1935,7 +1935,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -1999,7 +1999,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2115,7 +2115,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2421,7 +2421,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -2686,186 +2686,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3164,7 +2984,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3345,7 +3165,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3503,7 +3323,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3539,15 +3359,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:54 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:43 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.canvas.Layer.html b/master/apidoc/ol.renderer.canvas.Layer.html
index f340fcf9d7..c2ae069d63 100644
--- a/master/apidoc/ol.renderer.canvas.Layer.html
+++ b/master/apidoc/ol.renderer.canvas.Layer.html
@@ -368,7 +368,7 @@
Source:
- layerrenderer.js, line 116
+ layerrenderer.js, line 115
@@ -419,7 +419,7 @@
Source:
- layerrenderer.js, line 122
+ layerrenderer.js, line 121
@@ -470,7 +470,7 @@
Source:
- layerrenderer.js, line 128
+ layerrenderer.js, line 127
@@ -521,7 +521,7 @@
Source:
- layerrenderer.js, line 163
+ layerrenderer.js, line 162
@@ -572,7 +572,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -623,7 +623,7 @@
Source:
- layerrenderer.js, line 207
+ layerrenderer.js, line 206
@@ -801,7 +801,7 @@
-string
+string=
@@ -832,7 +832,7 @@
-boolean
+boolean=
@@ -1067,7 +1067,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -1153,7 +1153,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1441,7 +1441,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1527,7 +1527,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1613,7 +1613,7 @@
Source:
- layerrenderer.js, line 108
+ layerrenderer.js, line 107
@@ -1751,7 +1751,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -1815,7 +1815,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -1879,7 +1879,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -1943,7 +1943,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2059,7 +2059,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2306,7 +2306,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -2571,186 +2571,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3049,7 +2869,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3230,7 +3050,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3388,7 +3208,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3424,15 +3244,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:55 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:43 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.canvas.Map.html b/master/apidoc/ol.renderer.canvas.Map.html
index 6f24b8660d..96bb911b96 100644
--- a/master/apidoc/ol.renderer.canvas.Map.html
+++ b/master/apidoc/ol.renderer.canvas.Map.html
@@ -1778,15 +1778,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:56 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:44 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.canvas.TileLayer.html b/master/apidoc/ol.renderer.canvas.TileLayer.html
index ea662c6e7f..f69a45e0ff 100644
--- a/master/apidoc/ol.renderer.canvas.TileLayer.html
+++ b/master/apidoc/ol.renderer.canvas.TileLayer.html
@@ -146,7 +146,7 @@
Source:
- canvastilelayerrenderer.js, line 26
+ canvastilelayerrenderer.js, line 25
@@ -276,7 +276,7 @@
Source:
- layerrenderer.js, line 116
+ layerrenderer.js, line 115
@@ -327,7 +327,7 @@
Source:
- layerrenderer.js, line 122
+ layerrenderer.js, line 121
@@ -378,7 +378,7 @@
Source:
- layerrenderer.js, line 128
+ layerrenderer.js, line 127
@@ -429,7 +429,7 @@
Source:
- layerrenderer.js, line 163
+ layerrenderer.js, line 162
@@ -480,7 +480,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -658,7 +658,7 @@
-string
+string=
@@ -689,7 +689,7 @@
-boolean
+boolean=
@@ -924,7 +924,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -1010,7 +1010,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1203,7 +1203,7 @@
Source:
- canvastilelayerrenderer.js, line 67
+ canvastilelayerrenderer.js, line 66
@@ -1357,7 +1357,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1443,7 +1443,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1529,7 +1529,7 @@
Source:
- layerrenderer.js, line 108
+ layerrenderer.js, line 107
@@ -1610,7 +1610,7 @@
Source:
- canvastilelayerrenderer.js, line 75
+ canvastilelayerrenderer.js, line 74
@@ -1691,7 +1691,7 @@
Source:
- canvastilelayerrenderer.js, line 83
+ canvastilelayerrenderer.js, line 82
@@ -1807,7 +1807,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -1871,7 +1871,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -1935,7 +1935,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -1999,7 +1999,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2115,7 +2115,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2286,7 +2286,7 @@
Source:
- canvastilelayerrenderer.js, line 91
+ canvastilelayerrenderer.js, line 90
@@ -2421,7 +2421,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -2686,186 +2686,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3164,7 +2984,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3345,7 +3165,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3503,7 +3323,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3539,15 +3359,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:56 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:44 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.dom.ImageLayer.html b/master/apidoc/ol.renderer.dom.ImageLayer.html
index d8fb402e13..634d3adab4 100644
--- a/master/apidoc/ol.renderer.dom.ImageLayer.html
+++ b/master/apidoc/ol.renderer.dom.ImageLayer.html
@@ -276,7 +276,7 @@
Source:
- layerrenderer.js, line 116
+ layerrenderer.js, line 115
@@ -327,7 +327,7 @@
Source:
- layerrenderer.js, line 122
+ layerrenderer.js, line 121
@@ -378,7 +378,7 @@
Source:
- layerrenderer.js, line 128
+ layerrenderer.js, line 127
@@ -429,7 +429,7 @@
Source:
- layerrenderer.js, line 163
+ layerrenderer.js, line 162
@@ -480,7 +480,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -548,7 +548,7 @@
- <protected> target :Element
+ <protected> target :!Element
@@ -709,7 +709,7 @@
-string
+string=
@@ -740,7 +740,7 @@
-boolean
+boolean=
@@ -975,7 +975,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -1061,7 +1061,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1494,7 +1494,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1580,7 +1580,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1666,7 +1666,7 @@
Source:
- layerrenderer.js, line 108
+ layerrenderer.js, line 107
@@ -1783,7 +1783,7 @@
-Element
+!Element
@@ -1890,7 +1890,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -1954,7 +1954,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -2018,7 +2018,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -2082,7 +2082,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2198,7 +2198,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2504,7 +2504,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -2876,186 +2876,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3354,7 +3174,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3535,7 +3355,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3693,7 +3513,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3729,15 +3549,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:57 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:44 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.dom.Layer.html b/master/apidoc/ol.renderer.dom.Layer.html
index ad17ab944a..ac419defcd 100644
--- a/master/apidoc/ol.renderer.dom.Layer.html
+++ b/master/apidoc/ol.renderer.dom.Layer.html
@@ -129,7 +129,7 @@
-Element
+!Element
@@ -299,7 +299,7 @@
Source:
- layerrenderer.js, line 116
+ layerrenderer.js, line 115
@@ -350,7 +350,7 @@
Source:
- layerrenderer.js, line 122
+ layerrenderer.js, line 121
@@ -401,7 +401,7 @@
Source:
- layerrenderer.js, line 128
+ layerrenderer.js, line 127
@@ -452,7 +452,7 @@
Source:
- layerrenderer.js, line 163
+ layerrenderer.js, line 162
@@ -503,7 +503,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -554,7 +554,7 @@
Source:
- layerrenderer.js, line 207
+ layerrenderer.js, line 206
@@ -622,7 +622,7 @@
- <protected> target :Element
+ <protected> target :!Element
@@ -778,7 +778,7 @@
-string
+string=
@@ -809,7 +809,7 @@
-boolean
+boolean=
@@ -1044,7 +1044,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -1130,7 +1130,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1477,7 +1477,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1563,7 +1563,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1649,7 +1649,7 @@
Source:
- layerrenderer.js, line 108
+ layerrenderer.js, line 107
@@ -1761,7 +1761,7 @@
-Element
+!Element
@@ -1868,7 +1868,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -1932,7 +1932,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -1996,7 +1996,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -2060,7 +2060,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2176,7 +2176,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2423,7 +2423,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -2688,186 +2688,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3166,7 +2986,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3347,7 +3167,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3505,7 +3325,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3541,15 +3361,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:58 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:45 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.dom.Map.html b/master/apidoc/ol.renderer.dom.Map.html
index 488ac752c2..f4f61b6f73 100644
--- a/master/apidoc/ol.renderer.dom.Map.html
+++ b/master/apidoc/ol.renderer.dom.Map.html
@@ -1717,15 +1717,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:58 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:46 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.dom.TileLayer.html b/master/apidoc/ol.renderer.dom.TileLayer.html
index 8cd3a48ec3..e9ab3d02a7 100644
--- a/master/apidoc/ol.renderer.dom.TileLayer.html
+++ b/master/apidoc/ol.renderer.dom.TileLayer.html
@@ -276,7 +276,7 @@
Source:
- layerrenderer.js, line 116
+ layerrenderer.js, line 115
@@ -327,7 +327,7 @@
Source:
- layerrenderer.js, line 122
+ layerrenderer.js, line 121
@@ -378,7 +378,7 @@
Source:
- layerrenderer.js, line 128
+ layerrenderer.js, line 127
@@ -429,7 +429,7 @@
Source:
- layerrenderer.js, line 163
+ layerrenderer.js, line 162
@@ -480,7 +480,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -548,7 +548,7 @@
- <protected> target :Element
+ <protected> target :!Element
@@ -709,7 +709,7 @@
-string
+string=
@@ -740,7 +740,7 @@
-boolean
+boolean=
@@ -975,7 +975,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -1061,7 +1061,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1413,7 +1413,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1499,7 +1499,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1585,7 +1585,7 @@
Source:
- layerrenderer.js, line 108
+ layerrenderer.js, line 107
@@ -1702,7 +1702,7 @@
-Element
+!Element
@@ -1890,7 +1890,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -1954,7 +1954,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -2018,7 +2018,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -2082,7 +2082,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2198,7 +2198,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2504,7 +2504,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -2769,186 +2769,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3247,7 +3067,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3428,7 +3248,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3586,7 +3406,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3622,15 +3442,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:46:59 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:46 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.FragmentShader.html b/master/apidoc/ol.renderer.webgl.FragmentShader.html
index 292ec68678..ce43588f2f 100644
--- a/master/apidoc/ol.renderer.webgl.FragmentShader.html
+++ b/master/apidoc/ol.renderer.webgl.FragmentShader.html
@@ -383,15 +383,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:00 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:47 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.ImageLayer.html b/master/apidoc/ol.renderer.webgl.ImageLayer.html
index acb218016a..f4b747a0d8 100644
--- a/master/apidoc/ol.renderer.webgl.ImageLayer.html
+++ b/master/apidoc/ol.renderer.webgl.ImageLayer.html
@@ -276,7 +276,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -454,7 +454,7 @@
-string
+string=
@@ -485,7 +485,7 @@
-boolean
+boolean=
@@ -720,7 +720,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -806,7 +806,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1094,7 +1094,7 @@
-goog.vec.Mat4.Float32
+!goog.vec.Mat4.Float32
@@ -1320,7 +1320,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1406,7 +1406,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1807,7 +1807,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -2063,7 +2063,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -2127,7 +2127,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -2255,7 +2255,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2430,7 +2430,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2736,7 +2736,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -3001,186 +3001,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3479,7 +3299,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3660,7 +3480,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3818,7 +3638,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3854,15 +3674,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:00 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:47 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.Layer.html b/master/apidoc/ol.renderer.webgl.Layer.html
index eeee112933..ff82654655 100644
--- a/master/apidoc/ol.renderer.webgl.Layer.html
+++ b/master/apidoc/ol.renderer.webgl.Layer.html
@@ -464,7 +464,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -515,7 +515,7 @@
Source:
- layerrenderer.js, line 207
+ layerrenderer.js, line 206
@@ -693,7 +693,7 @@
-string
+string=
@@ -724,7 +724,7 @@
-boolean
+boolean=
@@ -959,7 +959,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -1045,7 +1045,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1269,7 +1269,7 @@
-goog.vec.Mat4.Float32
+!goog.vec.Mat4.Float32
@@ -1414,7 +1414,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1500,7 +1500,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1719,7 +1719,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -1960,7 +1960,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -2024,7 +2024,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -2147,7 +2147,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2263,7 +2263,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2510,7 +2510,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -2775,186 +2775,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3253,7 +3073,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3434,7 +3254,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3592,7 +3412,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3628,15 +3448,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:01 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:48 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.Map.html b/master/apidoc/ol.renderer.webgl.Map.html
index ff9d573215..2d0045244a 100644
--- a/master/apidoc/ol.renderer.webgl.Map.html
+++ b/master/apidoc/ol.renderer.webgl.Map.html
@@ -2523,15 +2523,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:01 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:48 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.Shader.html b/master/apidoc/ol.renderer.webgl.Shader.html
index 906fafe044..d6e05f32e8 100644
--- a/master/apidoc/ol.renderer.webgl.Shader.html
+++ b/master/apidoc/ol.renderer.webgl.Shader.html
@@ -354,15 +354,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:02 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:49 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.TileLayer.html b/master/apidoc/ol.renderer.webgl.TileLayer.html
index dd4d390e7b..d3394a8f5b 100644
--- a/master/apidoc/ol.renderer.webgl.TileLayer.html
+++ b/master/apidoc/ol.renderer.webgl.TileLayer.html
@@ -276,7 +276,7 @@
Source:
- layerrenderer.js, line 48
+ layerrenderer.js, line 47
@@ -454,7 +454,7 @@
-string
+string=
@@ -485,7 +485,7 @@
-boolean
+boolean=
@@ -720,7 +720,7 @@
Source:
- layerrenderer.js, line 296
+ layerrenderer.js, line 295
@@ -806,7 +806,7 @@
Source:
- layerrenderer.js, line 84
+ layerrenderer.js, line 83
@@ -1094,7 +1094,7 @@
-goog.vec.Mat4.Float32
+!goog.vec.Mat4.Float32
@@ -1239,7 +1239,7 @@
Source:
- layerrenderer.js, line 92
+ layerrenderer.js, line 91
@@ -1325,7 +1325,7 @@
Source:
- layerrenderer.js, line 100
+ layerrenderer.js, line 99
@@ -1807,7 +1807,7 @@
Source:
- layerrenderer.js, line 136
+ layerrenderer.js, line 135
@@ -2063,7 +2063,7 @@
Source:
- layerrenderer.js, line 147
+ layerrenderer.js, line 146
@@ -2127,7 +2127,7 @@
Source:
- layerrenderer.js, line 155
+ layerrenderer.js, line 154
@@ -2255,7 +2255,7 @@
Source:
- layerrenderer.js, line 169
+ layerrenderer.js, line 168
@@ -2430,7 +2430,7 @@
Source:
- layerrenderer.js, line 193
+ layerrenderer.js, line 192
@@ -2736,7 +2736,7 @@
Source:
- layerrenderer.js, line 215
+ layerrenderer.js, line 214
@@ -3001,186 +3001,6 @@
-
-
-
-
-
- <protected> snapCenterToPixel
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- center
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Center.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
- size
-
-
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
- Size.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- layerrenderer.js, line 312
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Snapped center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
@@ -3479,7 +3299,7 @@
Source:
- layerrenderer.js, line 233
+ layerrenderer.js, line 232
@@ -3660,7 +3480,7 @@
Source:
- layerrenderer.js, line 253
+ layerrenderer.js, line 252
@@ -3818,7 +3638,7 @@
Source:
- layerrenderer.js, line 277
+ layerrenderer.js, line 276
@@ -3854,15 +3674,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:02 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:49 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.VertexShader.html b/master/apidoc/ol.renderer.webgl.VertexShader.html
index 1e122fa271..8314c35058 100644
--- a/master/apidoc/ol.renderer.webgl.VertexShader.html
+++ b/master/apidoc/ol.renderer.webgl.VertexShader.html
@@ -383,15 +383,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:03 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:49 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.map.shader.Fragment.html b/master/apidoc/ol.renderer.webgl.map.shader.Fragment.html
index a83ed9b66d..bac3a9bbb0 100644
--- a/master/apidoc/ol.renderer.webgl.map.shader.Fragment.html
+++ b/master/apidoc/ol.renderer.webgl.map.shader.Fragment.html
@@ -347,15 +347,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:01 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:48 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.map.shader.Vertex.html b/master/apidoc/ol.renderer.webgl.map.shader.Vertex.html
index 2bc971ad51..ce8503ad6c 100644
--- a/master/apidoc/ol.renderer.webgl.map.shader.Vertex.html
+++ b/master/apidoc/ol.renderer.webgl.map.shader.Vertex.html
@@ -340,15 +340,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:02 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:48 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.tilelayerrenderer.shader.Fragment.html b/master/apidoc/ol.renderer.webgl.tilelayerrenderer.shader.Fragment.html
index 991b59f872..bff85a080c 100644
--- a/master/apidoc/ol.renderer.webgl.tilelayerrenderer.shader.Fragment.html
+++ b/master/apidoc/ol.renderer.webgl.tilelayerrenderer.shader.Fragment.html
@@ -340,15 +340,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:03 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:49 GMT+0100 (CET)
diff --git a/master/apidoc/ol.renderer.webgl.tilelayerrenderer.shader.Vertex.html b/master/apidoc/ol.renderer.webgl.tilelayerrenderer.shader.Vertex.html
index 21426ce6bd..e00d21bd60 100644
--- a/master/apidoc/ol.renderer.webgl.tilelayerrenderer.shader.Vertex.html
+++ b/master/apidoc/ol.renderer.webgl.tilelayerrenderer.shader.Vertex.html
@@ -340,15 +340,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:03 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:49 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.BingMaps.html b/master/apidoc/ol.source.BingMaps.html
index b7bf9c10cf..61b363771d 100644
--- a/master/apidoc/ol.source.BingMaps.html
+++ b/master/apidoc/ol.source.BingMaps.html
@@ -1868,15 +1868,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:04 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:50 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.DebugTileSource.html b/master/apidoc/ol.source.DebugTileSource.html
index 9e84977437..d0073c27f6 100644
--- a/master/apidoc/ol.source.DebugTileSource.html
+++ b/master/apidoc/ol.source.DebugTileSource.html
@@ -1784,15 +1784,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:04 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:50 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.ImageSource.html b/master/apidoc/ol.source.ImageSource.html
index 170866c7f7..c402dda495 100644
--- a/master/apidoc/ol.source.ImageSource.html
+++ b/master/apidoc/ol.source.ImageSource.html
@@ -1367,15 +1367,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:04 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:50 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.ImageTileSource.html b/master/apidoc/ol.source.ImageTileSource.html
index f94ca40d8b..9d20d9f8d1 100644
--- a/master/apidoc/ol.source.ImageTileSource.html
+++ b/master/apidoc/ol.source.ImageTileSource.html
@@ -1834,15 +1834,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:05 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:50 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.MapQuestOSM.html b/master/apidoc/ol.source.MapQuestOSM.html
index b65de8ea6a..00478e7801 100644
--- a/master/apidoc/ol.source.MapQuestOSM.html
+++ b/master/apidoc/ol.source.MapQuestOSM.html
@@ -1811,15 +1811,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:05 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:51 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.MapQuestOpenAerial.html b/master/apidoc/ol.source.MapQuestOpenAerial.html
index 8b84ae6773..1d899688b4 100644
--- a/master/apidoc/ol.source.MapQuestOpenAerial.html
+++ b/master/apidoc/ol.source.MapQuestOpenAerial.html
@@ -1811,15 +1811,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:05 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:51 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.OpenStreetMap.html b/master/apidoc/ol.source.OpenStreetMap.html
index e2bb6d1b3c..67c2fb9ec9 100644
--- a/master/apidoc/ol.source.OpenStreetMap.html
+++ b/master/apidoc/ol.source.OpenStreetMap.html
@@ -1811,15 +1811,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:05 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:51 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.SingleImageWMS.html b/master/apidoc/ol.source.SingleImageWMS.html
index 79a33aa559..bcdb4afb95 100644
--- a/master/apidoc/ol.source.SingleImageWMS.html
+++ b/master/apidoc/ol.source.SingleImageWMS.html
@@ -1394,15 +1394,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:06 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:51 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.Source.html b/master/apidoc/ol.source.Source.html
index b7444358fa..5a19d0003e 100644
--- a/master/apidoc/ol.source.Source.html
+++ b/master/apidoc/ol.source.Source.html
@@ -902,15 +902,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:06 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:51 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.Stamen.html b/master/apidoc/ol.source.Stamen.html
index 5cb5f332eb..849f7077c6 100644
--- a/master/apidoc/ol.source.Stamen.html
+++ b/master/apidoc/ol.source.Stamen.html
@@ -1859,15 +1859,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:06 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:52 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.StaticImage.html b/master/apidoc/ol.source.StaticImage.html
index 1f6a8d8e26..5cd2065a51 100644
--- a/master/apidoc/ol.source.StaticImage.html
+++ b/master/apidoc/ol.source.StaticImage.html
@@ -1526,15 +1526,15 @@
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:06 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:52 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.TileJSON.html b/master/apidoc/ol.source.TileJSON.html
index 9412abd69b..9381719196 100644
--- a/master/apidoc/ol.source.TileJSON.html
+++ b/master/apidoc/ol.source.TileJSON.html
@@ -1820,15 +1820,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:07 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:52 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.TileSource.html b/master/apidoc/ol.source.TileSource.html
index 93a958c741..def80623cd 100644
--- a/master/apidoc/ol.source.TileSource.html
+++ b/master/apidoc/ol.source.TileSource.html
@@ -1710,15 +1710,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:07 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:53 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.TiledWMS.html b/master/apidoc/ol.source.TiledWMS.html
index 6de884e617..ed71cf3077 100644
--- a/master/apidoc/ol.source.TiledWMS.html
+++ b/master/apidoc/ol.source.TiledWMS.html
@@ -1859,15 +1859,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:07 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:52 GMT+0100 (CET)
diff --git a/master/apidoc/ol.source.WMTS.html b/master/apidoc/ol.source.WMTS.html
deleted file mode 100644
index c94da8b54f..0000000000
--- a/master/apidoc/ol.source.WMTS.html
+++ /dev/null
@@ -1,2156 +0,0 @@
-
-
-
-
- OpenLayers: Class: ol.source.WMTS
-
-
-
-
-
-
-
-
-
-
-
-
-
Class: ol.source.WMTS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new WMTS
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- wmtsOptions
-
-
-
-
-
-ol.source.WMTSOptions
-
-
-
-
-
-
-
-
-
- WMTS options.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Extends
-
-
-
-
-
-
-
-
-
-
-
-
-
- Members
-
-
-
-
- isReady
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <protected> tileUrlFunction :ol.TileUrlFunctionType
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- imagetilesource.js, line 49
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Methods
-
-
-
-
- <static> optionsFromCapabilities
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- wmtsCap
-
-
-
-
-
-Object
-
-
-
-
-
-
-
-
-
- An object representing the capabilities document.
-
-
-
-
-
-
- layer
-
-
-
-
-
-string
-
-
-
-
-
-
-
-
-
- The layer identifier.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- WMTS source options object.
-
-
-
-
-
-
- Type
-
-
-
-ol.source.WMTSOptions
-
-
-
-
-
-
-
-
-
-
-
-
-
- canExpireCache
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- imagetilesource.js, line 73
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <protected> dispatchLoadEvent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- expireCache
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- imagetilesource.js, line 81
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- findLoadedTiles
-
-
-
-
-
-
-
- Look for loaded tiles over a given tile range and zoom level. Adds
-properties to the provided lookup representing key/tile pairs for already
-loaded tiles.
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- loadedTilesByZ
-
-
-
-
-
-Object.<number, Object.<string, ol.Tile>>
-
-
-
-
-
-
-
-
-
- A lookup of
- loaded tiles by zoom level.
-
-
-
-
-
-
- getTileIfLoaded
-
-
-
-
-
-function(ol.TileCoord): ol.Tile
-
-
-
-
-
-
-
-
-
- A function that
- returns the tile only if it is fully loaded.
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Zoom level.
-
-
-
-
-
-
- tileRange
-
-
-
-
-
-ol.TileRange
-
-
-
-
-
-
-
-
-
- Tile range.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- The tile range is fully covered with loaded tiles.
-
-
-
-
-
-
- Type
-
-
-
-boolean
-
-
-
-
-
-
-
-
-
-
-
-
-
- getAttributions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Attributions.
-
-
-
-
-
-
- Type
-
-
-
-Array.<ol.Attribution>
-
-
-
-
-
-
-
-
-
-
-
-
-
- getExtent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Extent.
-
-
-
-
-
-
- Type
-
-
-
-ol.Extent
-
-
-
-
-
-
-
-
-
-
-
-
-
- getOpaque
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Opaque.
-
-
-
-
-
-
- Type
-
-
-
-boolean
-
-
-
-
-
-
-
-
-
-
-
-
-
- getProjection
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Projection.
-
-
-
-
-
-
- Type
-
-
-
-ol.Projection
-
-
-
-
-
-
-
-
-
-
-
-
-
- getResolutions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTile
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- imagetilesource.js, line 89
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileGrid
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile grid.
-
-
-
-
-
-
- Type
-
-
-
-ol.tilegrid.TileGrid
-
-
-
-
-
-
-
-
-
-
-
-
-
- setAttributions
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- attributions
-
-
-
-
-
-Array.<ol.Attribution>
-
-
-
-
-
-
-
-
-
- Attributions.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- setExtent
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- extent
-
-
-
-
-
-ol.Extent
-
-
-
-
-
-
-
-
-
- Extent.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- setProjection
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- projection
-
-
-
-
-
-ol.Projection
-
-
-
-
-
-
-
-
-
- Projetion.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- useLowResolutionTiles
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Z.
-
-
-
-
-
-
- extent
-
-
-
-
-
-ol.Extent
-
-
-
-
-
-
-
-
-
- Extent.
-
-
-
-
-
-
- tileGrid
-
-
-
-
-
-ol.tilegrid.TileGrid
-
-
-
-
-
-
-
-
-
- Tile grid.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- useTile
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
- imagetilesource.js, line 112
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <inner> createFromWMTSTemplate
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- template
-
-
-
-
-
-string
-
-
-
-
-
-
-
-
-
- Template.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile URL function.
-
-
-
-
-
-
- Type
-
-
-
-ol.TileUrlFunctionType
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Classes Global
-
-
-
-
-
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:07 GMT+0100 (CET)
-
-
-
-
-
diff --git a/master/apidoc/ol.source.XYZ.html b/master/apidoc/ol.source.XYZ.html
index f3098a4e03..bfe381ffbd 100644
--- a/master/apidoc/ol.source.XYZ.html
+++ b/master/apidoc/ol.source.XYZ.html
@@ -1905,15 +1905,15 @@ loaded tiles.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:08 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:53 GMT+0100 (CET)
diff --git a/master/apidoc/ol.tilegrid.TileGrid.html b/master/apidoc/ol.tilegrid.TileGrid.html
index 113cc3ba25..9fe8191db2 100644
--- a/master/apidoc/ol.tilegrid.TileGrid.html
+++ b/master/apidoc/ol.tilegrid.TileGrid.html
@@ -268,7 +268,7 @@
-T
+T=
@@ -2254,15 +2254,15 @@ assigned the higher tile coordinate.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:09 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:54 GMT+0100 (CET)
diff --git a/master/apidoc/ol.tilegrid.WMTS.html b/master/apidoc/ol.tilegrid.WMTS.html
deleted file mode 100644
index 89004cd1c8..0000000000
--- a/master/apidoc/ol.tilegrid.WMTS.html
+++ /dev/null
@@ -1,2691 +0,0 @@
-
-
-
-
- OpenLayers: Class: ol.tilegrid.WMTS
-
-
-
-
-
-
-
-
-
-
-
-
-
Class: ol.tilegrid.WMTS
-
-
-
-
-
-
-
-
-
- ol.tilegrid.WMTS
-
-
-
-
-
-
-
-
-
-
-
- new WMTS
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- wmtsOptions
-
-
-
-
-
-ol.tilegrid.WMTSOptions
-
-
-
-
-
-
-
-
-
- WMTS options.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Extends
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Methods
-
-
-
-
- <static> createFromCapabilitiesMatrixSet
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- matrixSet
-
-
-
-
-
-Object
-
-
-
-
-
-
-
-
-
- An object representing a matrixSet in the
- capabilities document.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- WMTS tileGrid instance.
-
-
-
-
-
-
- Type
-
-
-
-ol.tilegrid.WMTS
-
-
-
-
-
-
-
-
-
-
-
-
-
- forEachTileCoordParentTileRange
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
- Argument
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- tileCoord
-
-
-
-
-
-ol.TileCoord
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tile coordinate.
-
-
-
-
-
-
- callback
-
-
-
-
-
-function(this: T, number, ol.TileRange): boolean
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Callback.
-
-
-
-
-
-
- obj
-
-
-
-
-
-T
-
-
-
-
-
-
-
-
- <optional>
-
-
-
-
-
-
-
-
- (Optional) Object.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- getMatrixId
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Z.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- MatrixId..
-
-
-
-
-
-
- Type
-
-
-
-string
-
-
-
-
-
-
-
-
-
-
-
-
-
- getMatrixIds
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- MatrixIds.
-
-
-
-
-
-
- Type
-
-
-
-Array.<string>
-
-
-
-
-
-
-
-
-
-
-
-
-
- getOrigin
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Z.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Origin.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
-
-
-
-
- getPixelBoundsForTileCoordAndResolution
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- tileCoord
-
-
-
-
-
-ol.TileCoord
-
-
-
-
-
-
-
-
-
- Tile coordinate.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Pixel bounds.
-
-
-
-
-
-
- Type
-
-
-
-ol.PixelBounds
-
-
-
-
-
-
-
-
-
-
-
-
-
- getResolution
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Z.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Resolution.
-
-
-
-
-
-
- Type
-
-
-
-number
-
-
-
-
-
-
-
-
-
-
-
-
-
- getResolutions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Resolutions.
-
-
-
-
-
-
- Type
-
-
-
-Array.<number>
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileCoordCenter
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- tileCoord
-
-
-
-
-
-ol.TileCoord
-
-
-
-
-
-
-
-
-
- Tile coordinate.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile center.
-
-
-
-
-
-
- Type
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileCoordExtent
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- tileCoord
-
-
-
-
-
-ol.TileCoord
-
-
-
-
-
-
-
-
-
- Tile coordinate.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Extent.
-
-
-
-
-
-
- Type
-
-
-
-ol.Extent
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileCoordForCoordAndResolution
-
-
-
-
-
-
-
- Get the tile coordinate for the given map coordinate and resolution. This
-method considers that coordinates that intersect tile boundaries should be
-assigned the higher tile coordinate.
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- coordinate
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Coordinate.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile coordinate.
-
-
-
-
-
-
- Type
-
-
-
-ol.TileCoord
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileCoordForCoordAndZ
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- coordinate
-
-
-
-
-
-ol.Coordinate
-
-
-
-
-
-
-
-
-
- Coordinate.
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Z.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile coordinate.
-
-
-
-
-
-
- Type
-
-
-
-ol.TileCoord
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileCoordResolution
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- tileCoord
-
-
-
-
-
-ol.TileCoord
-
-
-
-
-
-
-
-
-
- Tile coordinate.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile resolution.
-
-
-
-
-
-
- Type
-
-
-
-number
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileRangeExtent
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Z.
-
-
-
-
-
-
- tileRange
-
-
-
-
-
-ol.TileRange
-
-
-
-
-
-
-
-
-
- Tile range.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Extent.
-
-
-
-
-
-
- Type
-
-
-
-ol.Extent
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileRangeForExtentAndResolution
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- extent
-
-
-
-
-
-ol.Extent
-
-
-
-
-
-
-
-
-
- Extent.
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile range.
-
-
-
-
-
-
- Type
-
-
-
-ol.TileRange
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileRangeForExtentAndZ
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- extent
-
-
-
-
-
-ol.Extent
-
-
-
-
-
-
-
-
-
- Extent.
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Z.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile range.
-
-
-
-
-
-
- Type
-
-
-
-ol.TileRange
-
-
-
-
-
-
-
-
-
-
-
-
-
- getTileSize
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- z
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Z.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Tile size.
-
-
-
-
-
-
- Type
-
-
-
-ol.Size
-
-
-
-
-
-
-
-
-
-
-
-
-
- getZForResolution
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- resolution
-
-
-
-
-
-number
-
-
-
-
-
-
-
-
-
- Resolution.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Inherited From:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns:
-
-
-
- Z.
-
-
-
-
-
-
- Type
-
-
-
-number
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Classes Global
-
-
-
-
-
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:09 GMT+0100 (CET)
-
-
-
-
-
diff --git a/master/apidoc/ol.tilegrid.XYZ.html b/master/apidoc/ol.tilegrid.XYZ.html
index 48056b5c2d..3d692d0c1d 100644
--- a/master/apidoc/ol.tilegrid.XYZ.html
+++ b/master/apidoc/ol.tilegrid.XYZ.html
@@ -2214,15 +2214,15 @@ assigned the higher tile coordinate.
- Classes Global
- Documentation generated by JSDoc 3 on Mon Mar 11 2013 16:47:09 GMT+0100 (CET)
+ Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:54 GMT+0100 (CET)
diff --git a/master/apidoc/styles/apidoc.css b/master/apidoc/styles/apidoc.css
new file mode 100644
index 0000000000..4190811f54
--- /dev/null
+++ b/master/apidoc/styles/apidoc.css
@@ -0,0 +1,266 @@
+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:100px; 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;
+}
diff --git a/master/build/ol-deps.js b/master/build/ol-deps.js
index 38b183ea43..5153f81e11 100644
--- a/master/build/ol-deps.js
+++ b/master/build/ol-deps.js
@@ -9,21 +9,40 @@ goog.addDependency('../../../ol/ol/canvas/canvas.js', ['ol.canvas'], ['goog.dom'
goog.addDependency('../../../ol/ol/collection.js', ['ol.Collection', 'ol.CollectionEvent', 'ol.CollectionEventType'], ['goog.array', 'goog.events.Event', 'ol.Object']);
goog.addDependency('../../../ol/ol/color.js', ['ol.Color'], ['goog.color', 'goog.math']);
goog.addDependency('../../../ol/ol/constraints.js', ['ol.Constraints'], ['ol.ResolutionConstraintType', 'ol.RotationConstraintType']);
-goog.addDependency('../../../ol/ol/control/attributioncontrol.js', ['ol.control.Attribution'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.object', 'goog.style', 'ol.Attribution', 'ol.FrameState', 'ol.MapEvent', 'ol.MapEventType', 'ol.TileRange', 'ol.control.Control', 'ol.source.Source']);
+goog.addDependency('../../../ol/ol/control/attributioncontrol.js', ['ol.control.Attribution'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.object', 'goog.style', 'ol', 'ol.Attribution', 'ol.FrameState', 'ol.MapEvent', 'ol.MapEventType', 'ol.TileRange', 'ol.control.Control', 'ol.source.Source']);
goog.addDependency('../../../ol/ol/control/control.js', ['ol.control.Control', 'ol.control.ControlOptions'], ['goog.Disposable']);
goog.addDependency('../../../ol/ol/control/defaults.js', ['ol.control.defaults'], ['goog.array', 'ol.control.Attribution', 'ol.control.Zoom']);
goog.addDependency('../../../ol/ol/control/dragboxcontrol.js', ['ol.control.DragBox'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.style', 'ol.Coordinate', 'ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.Pixel', 'ol.Size', 'ol.control.Control']);
goog.addDependency('../../../ol/ol/control/mousepositioncontrol.js', ['ol.control.MousePosition'], ['goog.array', 'goog.dom', 'goog.events', 'goog.events.EventType', 'goog.style', 'ol.Coordinate', 'ol.CoordinateFormatType', 'ol.MapEvent', 'ol.MapEventType', 'ol.Pixel', 'ol.Projection', 'ol.TransformFunction', 'ol.control.Control', 'ol.projection']);
-goog.addDependency('../../../ol/ol/control/scalelinecontrol.js', ['ol.control.ScaleLine', 'ol.control.ScaleLineUnits'], ['goog.dom', 'goog.style', 'ol.FrameState', 'ol.MapEvent', 'ol.MapEventType', 'ol.ProjectionUnits', 'ol.TransformFunction', 'ol.control.Control', 'ol.projection', 'ol.sphere.NORMAL']);
-goog.addDependency('../../../ol/ol/control/zoomcontrol.js', ['ol.control.Zoom'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'ol.control.Control']);
+goog.addDependency('../../../ol/ol/control/scalelinecontrol.js', ['ol.control.ScaleLine', 'ol.control.ScaleLineUnits'], ['goog.dom', 'goog.style', 'ol', 'ol.FrameState', 'ol.MapEvent', 'ol.MapEventType', 'ol.ProjectionUnits', 'ol.TransformFunction', 'ol.control.Control', 'ol.projection', 'ol.sphere.NORMAL']);
+goog.addDependency('../../../ol/ol/control/zoomcontrol.js', ['ol.control.Zoom'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'ol', 'ol.control.Control']);
+goog.addDependency('../../../ol/ol/control/zoomslidercontrol.js', ['ol.control.ZoomSlider'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.fx.Dragger', 'goog.style', 'ol.MapEventType', 'ol.control.Control']);
goog.addDependency('../../../ol/ol/coordinate.js', ['ol.Coordinate', 'ol.CoordinateFormatType'], ['goog.math', 'goog.math.Vec2']);
goog.addDependency('../../../ol/ol/dom/dom.js', ['ol.dom', 'ol.dom.BrowserFeature'], ['goog.vec.Mat4']);
goog.addDependency('../../../ol/ol/easing.js', ['ol.easing'], ['goog.fx.easing']);
goog.addDependency('../../../ol/ol/ellipsoid.js', ['ol.Ellipsoid'], ['goog.math', 'ol.Coordinate']);
goog.addDependency('../../../ol/ol/ellipsoid/wgs84.js', ['ol.ellipsoid.WGS84'], ['ol.Ellipsoid']);
+goog.addDependency('../../../ol/ol/expression.js', ['ol.Expression', 'ol.ExpressionLiteral'], []);
goog.addDependency('../../../ol/ol/extent.js', ['ol.Extent'], ['ol.Coordinate', 'ol.Rectangle', 'ol.TransformFunction']);
+goog.addDependency('../../../ol/ol/feature.js', ['ol.Feature'], ['ol.Object', 'ol.geom.Geometry']);
+goog.addDependency('../../../ol/ol/filter/extentfilter.js', ['ol.filter.Extent'], ['ol.Extent', 'ol.filter.Filter']);
+goog.addDependency('../../../ol/ol/filter/filter.js', ['ol.filter.Filter'], ['ol.Feature']);
+goog.addDependency('../../../ol/ol/filter/geometryfilter.js', ['ol.filter.Geometry', 'ol.filter.GeometryType'], ['ol.filter.Filter', 'ol.geom.GeometryType']);
+goog.addDependency('../../../ol/ol/filter/logicalfilter.js', ['ol.filter.Logical', 'ol.filter.LogicalOperator'], ['ol.filter.Filter']);
goog.addDependency('../../../ol/ol/framestate.js', ['ol.FrameState', 'ol.PostRenderFunction', 'ol.PreRenderFunction'], ['goog.vec.Mat4', 'ol.Attribution', 'ol.Color', 'ol.Extent', 'ol.Size', 'ol.TileQueue', 'ol.TileRange', 'ol.View2DState', 'ol.layer.Layer', 'ol.layer.LayerState']);
goog.addDependency('../../../ol/ol/geolocation.js', ['ol.Geolocation', 'ol.GeolocationProperty'], ['goog.functions', 'goog.math', 'ol.Coordinate', 'ol.Object', 'ol.Projection', 'ol.projection']);
+goog.addDependency('../../../ol/ol/geom/abstractcollection.js', ['ol.geom.AbstractCollection'], ['ol.Extent', 'ol.geom.Geometry']);
+goog.addDependency('../../../ol/ol/geom/base.js', ['ol.geom.Vertex', 'ol.geom.VertexArray'], []);
+goog.addDependency('../../../ol/ol/geom/geometry.js', ['ol.geom.Geometry', 'ol.geom.GeometryType'], ['ol.Extent', 'ol.geom.SharedVertices']);
+goog.addDependency('../../../ol/ol/geom/geometrycollection.js', ['ol.geom.GeometryCollection'], ['ol.geom.AbstractCollection', 'ol.geom.Geometry', 'ol.geom.GeometryType']);
+goog.addDependency('../../../ol/ol/geom/linearring.js', ['ol.geom.LinearRing'], ['ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.SharedVertices', 'ol.geom.VertexArray']);
+goog.addDependency('../../../ol/ol/geom/linestring.js', ['ol.geom.LineString'], ['goog.asserts', 'ol.Extent', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.SharedVertices', 'ol.geom.VertexArray']);
+goog.addDependency('../../../ol/ol/geom/multilinestring.js', ['ol.geom.MultiLineString'], ['goog.asserts', 'ol.geom.AbstractCollection', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.SharedVertices', 'ol.geom.VertexArray']);
+goog.addDependency('../../../ol/ol/geom/multipoint.js', ['ol.geom.MultiPoint'], ['goog.asserts', 'ol.geom.AbstractCollection', 'ol.geom.GeometryType', 'ol.geom.Point', 'ol.geom.SharedVertices', 'ol.geom.VertexArray']);
+goog.addDependency('../../../ol/ol/geom/multipolygon.js', ['ol.geom.MultiPolygon'], ['goog.asserts', 'ol.geom.AbstractCollection', 'ol.geom.GeometryType', 'ol.geom.Polygon', 'ol.geom.SharedVertices', 'ol.geom.VertexArray']);
+goog.addDependency('../../../ol/ol/geom/point.js', ['ol.geom.Point'], ['goog.asserts', 'ol.Extent', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.SharedVertices', 'ol.geom.Vertex']);
+goog.addDependency('../../../ol/ol/geom/polygon.js', ['ol.geom.Polygon'], ['goog.asserts', 'ol.Extent', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.LinearRing', 'ol.geom.SharedVertices', 'ol.geom.VertexArray']);
+goog.addDependency('../../../ol/ol/geom/sharedvertices.js', ['ol.geom.SharedVertices'], ['goog.asserts', 'ol.geom.Vertex', 'ol.geom.VertexArray']);
goog.addDependency('../../../ol/ol/image.js', ['ol.Image', 'ol.ImageState'], ['goog.array', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'ol.Attribution', 'ol.Extent']);
goog.addDependency('../../../ol/ol/imagetile.js', ['ol.ImageTile'], ['goog.array', 'goog.events', 'goog.events.EventType', 'ol.Tile', 'ol.TileCoord', 'ol.TileState']);
goog.addDependency('../../../ol/ol/imageurlfunction.js', ['ol.ImageUrlFunction', 'ol.ImageUrlFunctionType'], ['ol.Extent', 'ol.Size', 'ol.source.wms']);
@@ -51,12 +70,15 @@ goog.addDependency('../../../ol/ol/kinetic.js', ['ol.Kinetic'], ['ol.Coordinate'
goog.addDependency('../../../ol/ol/layer/imagelayer.js', ['ol.layer.ImageLayer'], ['ol.layer.Layer', 'ol.source.ImageSource']);
goog.addDependency('../../../ol/ol/layer/layer.js', ['ol.layer.Layer', 'ol.layer.LayerProperty', 'ol.layer.LayerState'], ['goog.events', 'goog.events.EventType', 'goog.math', 'ol.Object', 'ol.source.Source']);
goog.addDependency('../../../ol/ol/layer/tilelayer.js', ['ol.layer.TileLayer'], ['ol.layer.Layer', 'ol.source.TileSource']);
+goog.addDependency('../../../ol/ol/layer/vectorlayer.js', ['ol.layer.Vector'], ['goog.events.EventType', 'ol.Feature', 'ol.filter.Extent', 'ol.filter.Geometry', 'ol.filter.Logical', 'ol.filter.LogicalOperator', 'ol.geom.GeometryType', 'ol.geom.SharedVertices', 'ol.layer.Layer', 'ol.projection', 'ol.source.Vector', 'ol.structs.RTree', 'ol.style.Style']);
goog.addDependency('../../../ol/ol/map.js', ['ol.Map', 'ol.MapProperty', 'ol.RendererHint', 'ol.RendererHints'], ['goog.Uri.QueryData', 'goog.async.AnimationDelay', 'goog.debug.Logger', 'goog.dom', 'goog.dom.ViewportSizeMonitor', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyHandler', 'goog.events.KeyHandler.EventType', 'goog.events.MouseWheelHandler', 'goog.events.MouseWheelHandler.EventType', 'goog.style', 'ol.BrowserFeature', 'ol.Collection', 'ol.Color', 'ol.Coordinate', 'ol.Extent', 'ol.FrameState', 'ol.IView', 'ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.MapBrowserEventHandler', 'ol.MapEvent', 'ol.MapEventType', 'ol.Object', 'ol.ObjectEventType', 'ol.Pixel', 'ol.PostRenderFunction', 'ol.PreRenderFunction', 'ol.Size', 'ol.Tile', 'ol.TileQueue', 'ol.View', 'ol.View2D', 'ol.control.defaults', 'ol.interaction.defaults', 'ol.layer.Layer', 'ol.projection', 'ol.projection.addCommonProjections', 'ol.renderer.Map', 'ol.renderer.canvas.Map', 'ol.renderer.canvas.SUPPORTED', 'ol.renderer.dom.Map', 'ol.renderer.dom.SUPPORTED', 'ol.renderer.webgl.Map', 'ol.renderer.webgl.SUPPORTED']);
goog.addDependency('../../../ol/ol/mapbrowserevent.js', ['ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.MapBrowserEventHandler'], ['goog.array', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.style', 'ol.BrowserFeature', 'ol.Coordinate', 'ol.FrameState', 'ol.MapEvent', 'ol.Pixel']);
goog.addDependency('../../../ol/ol/mapevent.js', ['ol.MapEvent', 'ol.MapEventType'], ['goog.events.Event', 'ol.FrameState']);
goog.addDependency('../../../ol/ol/math.js', ['ol.math'], []);
goog.addDependency('../../../ol/ol/object.js', ['ol.Object', 'ol.ObjectEventType'], ['goog.array', 'goog.events', 'goog.events.EventTarget', 'goog.object']);
goog.addDependency('../../../ol/ol/ol.js', ['ol'], ['goog.debug.Logger']);
+goog.addDependency('../../../ol/ol/parser/featureparser.js', ['ol.parser.DomFeatureParser', 'ol.parser.ObjectFeatureParser', 'ol.parser.ReadFeaturesOptions', 'ol.parser.StringFeatureParser'], ['ol.Feature']);
+goog.addDependency('../../../ol/ol/parser/geojson.js', ['ol.parser.GeoJSON'], ['ol.Feature', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.MultiLineString', 'ol.geom.MultiPoint', 'ol.geom.MultiPolygon', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.geom.SharedVertices', 'ol.parser.Parser', 'ol.parser.ReadFeaturesOptions', 'ol.parser.StringFeatureParser']);
goog.addDependency('../../../ol/ol/parser/ogc/exceptionreport.js', ['ol.parser.ogc.ExceptionReport'], ['goog.dom.xml', 'ol.parser.XML']);
goog.addDependency('../../../ol/ol/parser/ogc/owscommon_v1.js', ['ol.parser.ogc.OWSCommon_v1'], ['ol.Extent', 'ol.parser.XML']);
goog.addDependency('../../../ol/ol/parser/ogc/owscommon_v1_1_0.js', ['ol.parser.ogc.OWSCommon_v1_1_0'], ['goog.object', 'ol.parser.ogc.OWSCommon_v1']);
@@ -71,7 +93,9 @@ goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.js', [
goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1_3_0.js', ['ol.parser.ogc.WMSCapabilities_v1_3_0'], ['ol.parser.ogc.WMSCapabilities_v1']);
goog.addDependency('../../../ol/ol/parser/ogc/wmtscapabilities.js', ['ol.parser.ogc.WMTSCapabilities'], ['ol.parser.ogc.Versioned', 'ol.parser.ogc.WMTSCapabilities_v1_0_0']);
goog.addDependency('../../../ol/ol/parser/ogc/wmtscapabilities_v1_0_0.js', ['ol.parser.ogc.WMTSCapabilities_v1_0_0'], ['goog.dom.xml', 'ol.Coordinate', 'ol.parser.XML', 'ol.parser.ogc.OWSCommon_v1_1_0', 'ol.projection']);
-goog.addDependency('../../../ol/ol/parser/xml.js', ['ol.parser.XML'], []);
+goog.addDependency('../../../ol/ol/parser/parser.js', ['ol.parser.Parser'], []);
+goog.addDependency('../../../ol/ol/parser/polyline.js', ['ol.parser.polyline'], []);
+goog.addDependency('../../../ol/ol/parser/xml.js', ['ol.parser.XML'], ['ol.parser.Parser']);
goog.addDependency('../../../ol/ol/pixel.js', ['ol.Pixel'], ['goog.math.Coordinate']);
goog.addDependency('../../../ol/ol/pixelbounds.js', ['ol.PixelBounds'], ['ol.Rectangle']);
goog.addDependency('../../../ol/ol/projection.js', ['ol.Projection', 'ol.ProjectionLike', 'ol.ProjectionUnits', 'ol.projection'], ['goog.array', 'goog.asserts', 'goog.object', 'ol.Coordinate', 'ol.Extent', 'ol.TransformFunction', 'ol.sphere.NORMAL']);
@@ -81,12 +105,14 @@ goog.addDependency('../../../ol/ol/projection/epsg4326.js', ['ol.projection.EPSG
goog.addDependency('../../../ol/ol/rectangle.js', ['ol.Rectangle'], ['goog.asserts', 'ol.Coordinate', 'ol.Size']);
goog.addDependency('../../../ol/ol/renderer/canvas/canvasimagelayerrenderer.js', ['ol.renderer.canvas.ImageLayer'], ['goog.vec.Mat4', 'ol.Image', 'ol.ImageState', 'ol.ViewHint', 'ol.layer.ImageLayer', 'ol.renderer.Map', 'ol.renderer.canvas.Layer']);
goog.addDependency('../../../ol/ol/renderer/canvas/canvaslayerrenderer.js', ['ol.renderer.canvas.Layer'], ['ol.layer.Layer', 'ol.renderer.Layer']);
-goog.addDependency('../../../ol/ol/renderer/canvas/canvasmaprenderer.js', ['ol.renderer.canvas.Map'], ['goog.array', 'goog.dom', 'goog.style', 'goog.vec.Mat4', 'ol.Size', 'ol.layer.ImageLayer', 'ol.layer.TileLayer', 'ol.renderer.Map', 'ol.renderer.canvas.ImageLayer', 'ol.renderer.canvas.TileLayer']);
+goog.addDependency('../../../ol/ol/renderer/canvas/canvasmaprenderer.js', ['ol.renderer.canvas.Map'], ['goog.array', 'goog.dom', 'goog.style', 'goog.vec.Mat4', 'ol', 'ol.Size', 'ol.layer.ImageLayer', 'ol.layer.TileLayer', 'ol.layer.Vector', 'ol.renderer.Map', 'ol.renderer.canvas.ImageLayer', 'ol.renderer.canvas.TileLayer', 'ol.renderer.canvas.VectorLayer']);
goog.addDependency('../../../ol/ol/renderer/canvas/canvasrenderer.js', ['ol.renderer.canvas.SUPPORTED'], ['ol.canvas']);
goog.addDependency('../../../ol/ol/renderer/canvas/canvastilelayerrenderer.js', ['ol.renderer.canvas.TileLayer'], ['goog.array', 'goog.dom', 'goog.vec.Mat4', 'ol.Extent', 'ol.Size', 'ol.Tile', 'ol.TileCoord', 'ol.TileState', 'ol.layer.TileLayer', 'ol.renderer.Map', 'ol.renderer.canvas.Layer']);
+goog.addDependency('../../../ol/ol/renderer/canvas/canvasvectorlayerrenderer.js', ['ol.renderer.canvas.VectorLayer'], ['goog.vec.Mat4', 'ol.Extent', 'ol.Size', 'ol.TileCache', 'ol.TileCoord', 'ol.ViewHint', 'ol.filter.Extent', 'ol.filter.Geometry', 'ol.filter.Logical', 'ol.filter.LogicalOperator', 'ol.geom.GeometryType', 'ol.layer.Vector', 'ol.renderer.canvas.Layer', 'ol.renderer.canvas.VectorRenderer', 'ol.tilegrid.TileGrid']);
+goog.addDependency('../../../ol/ol/renderer/canvas/canvasvectorrenderer.js', ['ol.renderer.canvas.VectorRenderer'], ['goog.asserts', 'goog.vec.Mat4', 'ol.Feature', 'ol.Pixel', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.MultiLineString', 'ol.geom.MultiPoint', 'ol.geom.MultiPolygon', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.style.IconLiteral', 'ol.style.LineLiteral', 'ol.style.PointLiteral', 'ol.style.PolygonLiteral', 'ol.style.ShapeLiteral', 'ol.style.ShapeType', 'ol.style.SymbolizerLiteral']);
goog.addDependency('../../../ol/ol/renderer/dom/domimagelayerrenderer.js', ['ol.renderer.dom.ImageLayer'], ['goog.dom', 'goog.vec.Mat4', 'ol.Image', 'ol.ImageState', 'ol.ViewHint', 'ol.dom', 'ol.layer.ImageLayer', 'ol.renderer.dom.Layer']);
goog.addDependency('../../../ol/ol/renderer/dom/domlayerrenderer.js', ['ol.renderer.dom.Layer'], ['ol.layer.Layer', 'ol.renderer.Layer']);
-goog.addDependency('../../../ol/ol/renderer/dom/dommaprenderer.js', ['ol.renderer.dom.Map'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.style', 'ol.layer.ImageLayer', 'ol.layer.TileLayer', 'ol.renderer.Map', 'ol.renderer.dom.ImageLayer', 'ol.renderer.dom.TileLayer']);
+goog.addDependency('../../../ol/ol/renderer/dom/dommaprenderer.js', ['ol.renderer.dom.Map'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.style', 'ol', 'ol.layer.ImageLayer', 'ol.layer.TileLayer', 'ol.renderer.Map', 'ol.renderer.dom.ImageLayer', 'ol.renderer.dom.TileLayer']);
goog.addDependency('../../../ol/ol/renderer/dom/domrenderer.js', ['ol.renderer.dom.SUPPORTED'], []);
goog.addDependency('../../../ol/ol/renderer/dom/domtilelayerrenderer.js', ['ol.renderer.dom.TileLayer'], ['goog.asserts', 'goog.dom', 'goog.style', 'goog.vec.Mat4', 'ol.Coordinate', 'ol.Extent', 'ol.Tile', 'ol.TileCoord', 'ol.TileState', 'ol.ViewHint', 'ol.dom', 'ol.layer.TileLayer', 'ol.renderer.dom.Layer', 'ol.tilegrid.TileGrid']);
goog.addDependency('../../../ol/ol/renderer/layerrenderer.js', ['ol.renderer.Layer'], ['goog.events', 'goog.events.EventType', 'ol.Attribution', 'ol.Coordinate', 'ol.FrameState', 'ol.Image', 'ol.ImageState', 'ol.Object', 'ol.Tile', 'ol.TileCoord', 'ol.TileRange', 'ol.TileState', 'ol.layer.Layer', 'ol.layer.LayerProperty', 'ol.layer.LayerState', 'ol.source.TileSource']);
@@ -94,7 +120,7 @@ goog.addDependency('../../../ol/ol/renderer/maprenderer.js', ['ol.renderer.Map']
goog.addDependency('../../../ol/ol/renderer/webgl/shader.js', ['ol.renderer.webgl.FragmentShader', 'ol.renderer.webgl.VertexShader'], ['goog.functions', 'goog.webgl']);
goog.addDependency('../../../ol/ol/renderer/webgl/webglimagelayerrenderer.js', ['ol.renderer.webgl.ImageLayer'], ['goog.vec.Mat4', 'ol.Coordinate', 'ol.Extent', 'ol.Image', 'ol.ImageState', 'ol.ViewHint', 'ol.layer.ImageLayer', 'ol.renderer.webgl.Layer']);
goog.addDependency('../../../ol/ol/renderer/webgl/webgllayerrenderer.js', ['ol.renderer.webgl.Layer'], ['goog.vec.Mat4', 'ol.layer.Layer', 'ol.renderer.Layer', 'ol.vec.Mat4']);
-goog.addDependency('../../../ol/ol/renderer/webgl/webglmaprenderer.js', ['ol.renderer.webgl.Map', 'ol.renderer.webgl.map.shader'], ['goog.array', 'goog.debug.Logger', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.style', 'goog.webgl', 'ol.FrameState', 'ol.Size', 'ol.Tile', 'ol.layer.ImageLayer', 'ol.layer.TileLayer', 'ol.renderer.Map', 'ol.renderer.webgl.FragmentShader', 'ol.renderer.webgl.ImageLayer', 'ol.renderer.webgl.TileLayer', 'ol.renderer.webgl.VertexShader', 'ol.structs.LRUCache', 'ol.webgl', 'ol.webgl.WebGLContextEventType']);
+goog.addDependency('../../../ol/ol/renderer/webgl/webglmaprenderer.js', ['ol.renderer.webgl.Map', 'ol.renderer.webgl.map.shader'], ['goog.array', 'goog.debug.Logger', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.style', 'goog.webgl', 'ol', 'ol.FrameState', 'ol.Size', 'ol.Tile', 'ol.layer.ImageLayer', 'ol.layer.TileLayer', 'ol.renderer.Map', 'ol.renderer.webgl.FragmentShader', 'ol.renderer.webgl.ImageLayer', 'ol.renderer.webgl.TileLayer', 'ol.renderer.webgl.VertexShader', 'ol.structs.LRUCache', 'ol.webgl', 'ol.webgl.WebGLContextEventType']);
goog.addDependency('../../../ol/ol/renderer/webgl/webglrenderer.js', ['ol.renderer.webgl.SUPPORTED'], ['ol.webgl']);
goog.addDependency('../../../ol/ol/renderer/webgl/webgltilelayerrenderer.js', ['ol.renderer.webgl.TileLayer', 'ol.renderer.webgl.tilelayerrenderer', 'ol.renderer.webgl.tilelayerrenderer.shader.Fragment', 'ol.renderer.webgl.tilelayerrenderer.shader.Vertex'], ['goog.array', 'goog.object', 'goog.structs.PriorityQueue', 'goog.vec.Mat4', 'goog.vec.Vec4', 'goog.webgl', 'ol.Extent', 'ol.FrameState', 'ol.Size', 'ol.Tile', 'ol.TileCoord', 'ol.TileRange', 'ol.TileState', 'ol.layer.TileLayer', 'ol.renderer.webgl.FragmentShader', 'ol.renderer.webgl.Layer', 'ol.renderer.webgl.VertexShader']);
goog.addDependency('../../../ol/ol/resolutionconstraint.js', ['ol.ResolutionConstraint', 'ol.ResolutionConstraintType'], ['goog.math', 'ol.array']);
@@ -113,13 +139,23 @@ goog.addDependency('../../../ol/ol/source/staticimagesource.js', ['ol.source.Sta
goog.addDependency('../../../ol/ol/source/tiledwmssource.js', ['ol.source.TiledWMS'], ['goog.array', 'ol.Extent', 'ol.TileCoord', 'ol.TileUrlFunction', 'ol.source.ImageTileSource']);
goog.addDependency('../../../ol/ol/source/tilejsonsource.js', ['ol.source.TileJSON', 'ol.tilejson'], ['goog.asserts', 'goog.net.jsloader', 'ol.Attribution', 'ol.Extent', 'ol.TileCoord', 'ol.TileRange', 'ol.TileUrlFunction', 'ol.projection', 'ol.source.ImageTileSource', 'ol.tilegrid.XYZ']);
goog.addDependency('../../../ol/ol/source/tilesource.js', ['ol.source.TileSource', 'ol.source.TileSourceOptions'], ['goog.functions', 'ol.Attribution', 'ol.Extent', 'ol.Tile', 'ol.TileCoord', 'ol.TileRange', 'ol.source.Source', 'ol.tilegrid.TileGrid']);
+goog.addDependency('../../../ol/ol/source/vectorsource.js', ['ol.source.Vector'], ['ol.source.Source']);
goog.addDependency('../../../ol/ol/source/wms.js', ['ol.source.wms'], []);
-goog.addDependency('../../../ol/ol/source/wmtssource.js', ['ol.source.WMTS', 'ol.source.WMTSRequestEncoding'], ['ol.Attribution', 'ol.Extent', 'ol.Projection', 'ol.TileCoord', 'ol.TileUrlFunction', 'ol.TileUrlFunctionType', 'ol.projection', 'ol.source.ImageTileSource', 'ol.tilegrid.WMTS']);
+goog.addDependency('../../../ol/ol/source/wmtssource.js', ['ol.source.WMTS', 'ol.source.WMTSRequestEncoding'], ['ol.Attribution', 'ol.TileCoord', 'ol.TileUrlFunction', 'ol.TileUrlFunctionType', 'ol.projection', 'ol.source.ImageTileSource', 'ol.tilegrid.WMTS']);
goog.addDependency('../../../ol/ol/source/xyzsource.js', ['ol.source.XYZ', 'ol.source.XYZOptions'], ['goog.math', 'ol.Attribution', 'ol.Extent', 'ol.Projection', 'ol.TileCoord', 'ol.TileUrlFunction', 'ol.TileUrlFunctionType', 'ol.projection', 'ol.source.ImageTileSource', 'ol.tilegrid.XYZ']);
goog.addDependency('../../../ol/ol/sphere.js', ['ol.Sphere'], ['goog.math', 'ol.Coordinate']);
goog.addDependency('../../../ol/ol/sphere/normal.js', ['ol.sphere.NORMAL'], ['ol.Sphere']);
goog.addDependency('../../../ol/ol/sphere/wgs84.js', ['ol.sphere.WGS84'], ['ol.Sphere']);
goog.addDependency('../../../ol/ol/structs/lrucache.js', ['ol.structs.LRUCache'], ['goog.asserts', 'goog.object']);
+goog.addDependency('../../../ol/ol/structs/rtree.js', ['ol.structs.RTree'], ['ol.Rectangle']);
+goog.addDependency('../../../ol/ol/style/icon.js', ['ol.style.Icon', 'ol.style.IconLiteral', 'ol.style.IconType'], ['ol.Expression', 'ol.ExpressionLiteral', 'ol.style.Point', 'ol.style.PointLiteral']);
+goog.addDependency('../../../ol/ol/style/line.js', ['ol.style.Line', 'ol.style.LineLiteral'], ['ol.Expression', 'ol.ExpressionLiteral', 'ol.style.Symbolizer', 'ol.style.SymbolizerLiteral']);
+goog.addDependency('../../../ol/ol/style/point.js', ['ol.style.Point', 'ol.style.PointLiteral'], ['ol.style.Symbolizer', 'ol.style.SymbolizerLiteral']);
+goog.addDependency('../../../ol/ol/style/polygon.js', ['ol.style.Polygon', 'ol.style.PolygonLiteral'], ['ol.Expression', 'ol.ExpressionLiteral', 'ol.style.Symbolizer', 'ol.style.SymbolizerLiteral']);
+goog.addDependency('../../../ol/ol/style/rule.js', ['ol.style.Rule'], ['ol.Feature', 'ol.filter.Filter', 'ol.style.Symbolizer']);
+goog.addDependency('../../../ol/ol/style/shape.js', ['ol.style.Shape', 'ol.style.ShapeLiteral', 'ol.style.ShapeType'], ['ol.Expression', 'ol.ExpressionLiteral', 'ol.style.Point', 'ol.style.PointLiteral']);
+goog.addDependency('../../../ol/ol/style/style.js', ['ol.style.Style'], ['ol.Feature', 'ol.geom.GeometryType', 'ol.style.Rule', 'ol.style.SymbolizerLiteral']);
+goog.addDependency('../../../ol/ol/style/symbolizer.js', ['ol.style.Symbolizer', 'ol.style.SymbolizerLiteral'], ['ol.Feature']);
goog.addDependency('../../../ol/ol/tile.js', ['ol.Tile', 'ol.TileState'], ['goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'ol.TileCoord']);
goog.addDependency('../../../ol/ol/tilecache.js', ['ol.TileCache'], ['ol.Tile', 'ol.TileRange', 'ol.structs.LRUCache']);
goog.addDependency('../../../ol/ol/tilecoord.js', ['ol.TileCoord'], ['goog.array', 'ol.Coordinate']);
diff --git a/master/build/ol-simple.js b/master/build/ol-simple.js
index b4e09c3951..b14aaf57c1 100644
--- a/master/build/ol-simple.js
+++ b/master/build/ol-simple.js
@@ -37,8 +37,8 @@ goog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goo
goog.string.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&(bb?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;cb?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c(d=goog.arr
goog.array.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,arguments)};goog.array.toArray=function(a){var b=a.length;if(0=arguments.length?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b){for(var c=b||a,d={},e=0,f=0;f>1,j;j=c?b.call(e,a[i],i,a):b(d,a[i]);0>1,k;k=c?b.call(e,a[i],i,a):b(d,a[i]);0b?1:ac?(goog.array.insertAt(a,b,-(c+1)),!0):!1};
@@ -112,7 +112,7 @@ goog.userAgent.determineVersion_=function(){var a="",b;goog.userAgent.OPERA&&goo
goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionCache_={};goog.userAgent.isVersion=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.userAgent.isVersionCache_[a]||(goog.userAgent.isVersionCache_[a]=0<=goog.string.compareVersions(goog.userAgent.VERSION,a))};
goog.userAgent.isDocumentModeCache_={};goog.userAgent.isDocumentMode=function(a){return goog.userAgent.isDocumentModeCache_[a]||(goog.userAgent.isDocumentModeCache_[a]=goog.userAgent.IE&&!!document.documentMode&&document.documentMode>=a)};goog.debug.catchErrors=function(a,b,c){var c=c||goog.global,d=c.onerror,e=!!b;goog.userAgent.WEBKIT&&!goog.userAgent.isVersion("535.3")&&(e=!e);c.onerror=function(b,c,h){d&&d(b,c,h);a({message:b,fileName:c,line:h});return e}};goog.debug.expose=function(a,b){if("undefined"==typeof a)return"undefined";if(null==a)return"NULL";var c=[],d;for(d in a)if(b||!goog.isFunction(a[d])){var e=d+" = ";try{e+=a[d]}catch(f){e+="*** "+f+" ***"}c.push(e)}return c.join("\n")};
goog.debug.deepExpose=function(a,b){var c=new goog.structs.Set,d=[],e=function(a,g){var h=g+" ";try{if(goog.isDef(a))if(goog.isNull(a))d.push("NULL");else if(goog.isString(a))d.push('"'+a.replace(/\n/g,"\n"+g)+'"');else if(goog.isFunction(a))d.push(String(a).replace(/\n/g,"\n"+g));else if(goog.isObject(a))if(c.contains(a))d.push("*** reference loop detected ***");else{c.add(a);d.push("{");for(var i in a)if(b||!goog.isFunction(a[i]))d.push("\n"),d.push(h),d.push(i+" = "),e(a[i],h);d.push("\n"+g+"}")}else d.push(a);
-else d.push("undefined")}catch(j){d.push("*** "+j+" ***")}};e(a,"");return d.join("")};goog.debug.exposeArray=function(a){for(var b=[],c=0;c'+c.fileName+"\nLine: "+c.lineNumber+"\n\nBrowser stack:\n"+goog.string.htmlEscape(c.stack+"-> ")+"[end]\n\nJS stack traversal:\n"+goog.string.htmlEscape(goog.debug.getStacktrace(b)+"-> ")}catch(d){return"Exception trying to expose exception! You win, we lose. "+d}};
goog.debug.normalizeErrorObject=function(a){var b=goog.getObjectByName("window.location.href");if(goog.isString(a))return{message:a,name:"Unknown error",lineNumber:"Not available",fileName:b,stack:"Not available"};var c,d,e=!1;try{c=a.lineNumber||a.line||"Not available"}catch(f){c="Not available",e=!0}try{d=a.fileName||a.filename||a.sourceURL||b}catch(g){d="Not available",e=!0}return e||!a.lineNumber||!a.fileName||!a.stack?{message:a.message,name:a.name,lineNumber:c,fileName:d,stack:a.stack||"Not available"}:
a};goog.debug.enhanceError=function(a,b){var c="string"==typeof a?Error(a):a;c.stack||(c.stack=goog.debug.getStacktrace(arguments.callee.caller));if(b){for(var d=0;c["message"+d];)++d;c["message"+d]=String(b)}return c};
@@ -143,7 +143,7 @@ goog.debug.Logger.prototype.finer=function(a,b){this.log(goog.debug.Logger.Level
goog.debug.Logger.prototype.doLogRecord_=function(a){goog.debug.Logger.logToProfilers("log:"+a.getMessage());if(goog.debug.Logger.ENABLE_HIERARCHY)for(var b=this;b;)b.callPublish_(a),b=b.getParent();else for(var b=0,c;c=goog.debug.Logger.rootHandlers_[b++];)c(a)};goog.debug.Logger.prototype.callPublish_=function(a){if(this.handlers_)for(var b=0,c;c=this.handlers_[b];b++)c(a)};goog.debug.Logger.prototype.setParent_=function(a){this.parent_=a};
goog.debug.Logger.prototype.addChild_=function(a,b){this.getChildren()[a]=b};goog.debug.LogManager={};goog.debug.LogManager.loggers_={};goog.debug.LogManager.rootLogger_=null;goog.debug.LogManager.initialize=function(){goog.debug.LogManager.rootLogger_||(goog.debug.LogManager.rootLogger_=new goog.debug.Logger(""),goog.debug.LogManager.loggers_[""]=goog.debug.LogManager.rootLogger_,goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG))};goog.debug.LogManager.getLoggers=function(){return goog.debug.LogManager.loggers_};
goog.debug.LogManager.getRoot=function(){goog.debug.LogManager.initialize();return goog.debug.LogManager.rootLogger_};goog.debug.LogManager.getLogger=function(a){goog.debug.LogManager.initialize();return goog.debug.LogManager.loggers_[a]||goog.debug.LogManager.createLogger_(a)};goog.debug.LogManager.createFunctionForCatchErrors=function(a){return function(b){(a||goog.debug.LogManager.getRoot()).severe("Error: "+b.message+" ("+b.fileName+" @ Line: "+b.line+")")}};
-goog.debug.LogManager.createLogger_=function(a){var b=new goog.debug.Logger(a);if(goog.debug.Logger.ENABLE_HIERARCHY){var c=a.lastIndexOf("."),d=a.substr(0,c),c=a.substr(c+1),d=goog.debug.LogManager.getLogger(d);d.addChild_(c,b);b.setParent_(d)}return goog.debug.LogManager.loggers_[a]=b};var ol={};if(goog.DEBUG){var logger=goog.debug.Logger.getLogger("ol");logger.setLevel(goog.debug.Logger.Level.FINEST)};goog.dom={};goog.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE||goog.userAgent.isDocumentMode(9),CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO&&!goog.userAgent.IE||goog.userAgent.IE&&goog.userAgent.isDocumentMode(9)||goog.userAgent.GECKO&&goog.userAgent.isVersion("1.9.1"),CAN_USE_INNER_TEXT:goog.userAgent.IE&&!goog.userAgent.isVersion("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE||goog.userAgent.OPERA||goog.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE};goog.dom.TagName={A:"A",ABBR:"ABBR",ACRONYM:"ACRONYM",ADDRESS:"ADDRESS",APPLET:"APPLET",AREA:"AREA",ARTICLE:"ARTICLE",ASIDE:"ASIDE",AUDIO:"AUDIO",B:"B",BASE:"BASE",BASEFONT:"BASEFONT",BDI:"BDI",BDO:"BDO",BIG:"BIG",BLOCKQUOTE:"BLOCKQUOTE",BODY:"BODY",BR:"BR",BUTTON:"BUTTON",CANVAS:"CANVAS",CAPTION:"CAPTION",CENTER:"CENTER",CITE:"CITE",CODE:"CODE",COL:"COL",COLGROUP:"COLGROUP",COMMAND:"COMMAND",DATA:"DATA",DATALIST:"DATALIST",DD:"DD",DEL:"DEL",DETAILS:"DETAILS",DFN:"DFN",DIALOG:"DIALOG",DIR:"DIR",DIV:"DIV",
+goog.debug.LogManager.createLogger_=function(a){var b=new goog.debug.Logger(a);if(goog.debug.Logger.ENABLE_HIERARCHY){var c=a.lastIndexOf("."),d=a.substr(0,c),c=a.substr(c+1),d=goog.debug.LogManager.getLogger(d);d.addChild_(c,b);b.setParent_(d)}return goog.debug.LogManager.loggers_[a]=b};var ol={};if(goog.DEBUG){var logger=goog.debug.Logger.getLogger("ol");logger.setLevel(goog.debug.Logger.Level.FINEST)}ol.CSS_CLASS_UNSELECTABLE="ol-unselectable";goog.dom={};goog.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE||goog.userAgent.isDocumentMode(9),CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO&&!goog.userAgent.IE||goog.userAgent.IE&&goog.userAgent.isDocumentMode(9)||goog.userAgent.GECKO&&goog.userAgent.isVersion("1.9.1"),CAN_USE_INNER_TEXT:goog.userAgent.IE&&!goog.userAgent.isVersion("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE||goog.userAgent.OPERA||goog.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE};goog.dom.TagName={A:"A",ABBR:"ABBR",ACRONYM:"ACRONYM",ADDRESS:"ADDRESS",APPLET:"APPLET",AREA:"AREA",ARTICLE:"ARTICLE",ASIDE:"ASIDE",AUDIO:"AUDIO",B:"B",BASE:"BASE",BASEFONT:"BASEFONT",BDI:"BDI",BDO:"BDO",BIG:"BIG",BLOCKQUOTE:"BLOCKQUOTE",BODY:"BODY",BR:"BR",BUTTON:"BUTTON",CANVAS:"CANVAS",CAPTION:"CAPTION",CENTER:"CENTER",CITE:"CITE",CODE:"CODE",COL:"COL",COLGROUP:"COLGROUP",COMMAND:"COMMAND",DATA:"DATA",DATALIST:"DATALIST",DD:"DD",DEL:"DEL",DETAILS:"DETAILS",DFN:"DFN",DIALOG:"DIALOG",DIR:"DIR",DIV:"DIV",
DL:"DL",DT:"DT",EM:"EM",EMBED:"EMBED",FIELDSET:"FIELDSET",FIGCAPTION:"FIGCAPTION",FIGURE:"FIGURE",FONT:"FONT",FOOTER:"FOOTER",FORM:"FORM",FRAME:"FRAME",FRAMESET:"FRAMESET",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",HEAD:"HEAD",HEADER:"HEADER",HGROUP:"HGROUP",HR:"HR",HTML:"HTML",I:"I",IFRAME:"IFRAME",IMG:"IMG",INPUT:"INPUT",INS:"INS",ISINDEX:"ISINDEX",KBD:"KBD",KEYGEN:"KEYGEN",LABEL:"LABEL",LEGEND:"LEGEND",LI:"LI",LINK:"LINK",MAP:"MAP",MARK:"MARK",MATH:"MATH",MENU:"MENU",META:"META",METER:"METER",
NAV:"NAV",NOFRAMES:"NOFRAMES",NOSCRIPT:"NOSCRIPT",OBJECT:"OBJECT",OL:"OL",OPTGROUP:"OPTGROUP",OPTION:"OPTION",OUTPUT:"OUTPUT",P:"P",PARAM:"PARAM",PRE:"PRE",PROGRESS:"PROGRESS",Q:"Q",RP:"RP",RT:"RT",RUBY:"RUBY",S:"S",SAMP:"SAMP",SCRIPT:"SCRIPT",SECTION:"SECTION",SELECT:"SELECT",SMALL:"SMALL",SOURCE:"SOURCE",SPAN:"SPAN",STRIKE:"STRIKE",STRONG:"STRONG",STYLE:"STYLE",SUB:"SUB",SUMMARY:"SUMMARY",SUP:"SUP",SVG:"SVG",TABLE:"TABLE",TBODY:"TBODY",TD:"TD",TEXTAREA:"TEXTAREA",TFOOT:"TFOOT",TH:"TH",THEAD:"THEAD",
TIME:"TIME",TITLE:"TITLE",TR:"TR",TRACK:"TRACK",TT:"TT",U:"U",UL:"UL",VAR:"VAR",VIDEO:"VIDEO",WBR:"WBR"};goog.dom.classes={};goog.dom.classes.set=function(a,b){a.className=b};goog.dom.classes.get=function(a){a=a.className;return goog.isString(a)&&a.match(/\S+/g)||[]};goog.dom.classes.add=function(a,b){var c=goog.dom.classes.get(a),d=goog.array.slice(arguments,1),e=c.length+d.length;goog.dom.classes.add_(c,d);a.className=c.join(" ");return c.length==e};
@@ -151,7 +151,7 @@ goog.dom.classes.remove=function(a,b){var c=goog.dom.classes.get(a),d=goog.array
goog.dom.classes.swap=function(a,b,c){for(var d=goog.dom.classes.get(a),e=!1,f=0;fc*b?c+b:c};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};goog.math.angleDifference=function(a,b){var c=goog.math.standardAngle(b)-goog.math.standardAngle(a);180=c&&(c=360+c);return c};
-goog.math.sign=function(a){return 0==a?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){for(var c=c||function(a,b){return a==b},d=d||function(b){return a[b]},e=a.length,f=b.length,g=[],h=0;hg[h][i-1]?h--:i--;return j};
+goog.math.sign=function(a){return 0==a?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){for(var c=c||function(a,b){return a==b},d=d||function(b){return a[b]},e=a.length,f=b.length,g=[],h=0;hg[h][i-1]?h--:i--;return k};
goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.standardDeviation=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments),b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1);return Math.sqrt(b)};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};
goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.Coordinate=function(a,b){this.x=goog.isDef(a)?a:0;this.y=goog.isDef(b)?b:0};goog.math.Coordinate.prototype.clone=function(){return new goog.math.Coordinate(this.x,this.y)};goog.DEBUG&&(goog.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"});goog.math.Coordinate.equals=function(a,b){return a==b?!0:!a||!b?!1:a.x==b.x&&a.y==b.y};goog.math.Coordinate.distance=function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)};
goog.math.Coordinate.magnitude=function(a){return Math.sqrt(a.x*a.x+a.y*a.y)};goog.math.Coordinate.azimuth=function(a){return goog.math.angle(0,0,a.x,a.y)};goog.math.Coordinate.squaredDistance=function(a,b){var c=a.x-b.x,d=a.y-b.y;return c*c+d*d};goog.math.Coordinate.difference=function(a,b){return new goog.math.Coordinate(a.x-b.x,a.y-b.y)};goog.math.Coordinate.sum=function(a,b){return new goog.math.Coordinate(a.x+b.x,a.y+b.y)};goog.math.Size=function(a,b){this.width=a;this.height=b};goog.math.Size.equals=function(a,b){return a==b?!0:!a||!b?!1:a.width==b.width&&a.height==b.height};goog.math.Size.prototype.clone=function(){return new goog.math.Size(this.width,this.height)};goog.DEBUG&&(goog.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"});goog.math.Size.prototype.getLongest=function(){return Math.max(this.width,this.height)};
@@ -237,8 +237,8 @@ goog.events.fireListeners_=function(a,b,c,d,e){var f=1,b=goog.getUid(b);if(a[b])
goog.events.dispatchEvent=function(a,b){var c=b.type||b,d=goog.events.listenerTree_;if(!(c in d))return!0;if(goog.isString(b))b=new goog.events.Event(b,a);else if(b instanceof goog.events.Event)b.target=b.target||a;else{var e=b,b=new goog.events.Event(c,a);goog.object.extend(b,e)}var e=1,f,d=d[c],c=!0 in d,g;if(c){f=[];for(g=a;g;g=g.getParentEventTarget())f.push(g);g=d[!0];g.remaining_=g.count_;for(var h=f.length-1;!b.propagationStopped_&&0<=h&&g.remaining_;h--)b.currentTarget=f[h],e&=goog.events.fireListeners_(g,
f[h],b.type,!0,b)&&!1!=b.returnValue_}if(!1 in d)if(g=d[!1],g.remaining_=g.count_,c)for(h=0;!b.propagationStopped_&&ha.keyCode||void 0!=a.returnValue};goog.events.uniqueIdCounter_=0;goog.events.getUniqueId=function(a){return a+"_"+goog.events.uniqueIdCounter_++};goog.debug.entryPointRegistry.register(function(a){goog.events.handleBrowserEvent_=a(goog.events.handleBrowserEvent_)});goog.math.Box=function(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d};goog.math.Box.boundingBox=function(a){for(var b=new goog.math.Box(arguments[0].y,arguments[0].x,arguments[0].y,arguments[0].x),c=1;cgoog.vec.EPSILON?(b[2]=Math.atan2(a[2]*c,a[6]*c),b[1]=Math.atan2(d*c,a[10]),b[0]=Math.atan2(a[8]*c,-a[9]*c)):(b[0]=0,b[1]=Math.atan2(d*c,a[10]),b[2]=Math.atan2(a[1],a[0]));b[0]=(b[0]+2*Math.PI)%(2*Math.PI);b[2]=(b[2]+2*Math.PI)%(2*Math.PI);b[1]=(b[1]*c+2*Math.PI)%(2*Math.PI)*c;return b};
goog.vec.Mat4.translate=function(a,b,c,d){return goog.vec.Mat4.setColumnValues(a,3,a[0]*b+a[4]*c+a[8]*d+a[12],a[1]*b+a[5]*c+a[9]*d+a[13],a[2]*b+a[6]*c+a[10]*d+a[14],a[3]*b+a[7]*c+a[11]*d+a[15])};goog.vec.Mat4.scale=function(a,b,c,d){return goog.vec.Mat4.setFromValues(a,a[0]*b,a[1]*b,a[2]*b,a[3]*b,a[4]*c,a[5]*c,a[6]*c,a[7]*c,a[8]*d,a[9]*d,a[10]*d,a[11]*d,a[12],a[13],a[14],a[15])};
-goog.vec.Mat4.rotate=function(a,b,c,d,e){var f=a[0],g=a[1],h=a[2],i=a[3],j=a[4],m=a[5],k=a[6],l=a[7],p=a[8],n=a[9],q=a[10],r=a[11],s=a[12],t=a[13],x=a[14],u=a[15],v=Math.cos(b),y=Math.sin(b),w=1-v,b=c*c*w+v,A=c*d*w+e*y,B=c*e*w-d*y,C=c*d*w-e*y,D=d*d*w+v,E=d*e*w+c*y,F=c*e*w+d*y,c=d*e*w-c*y,e=e*e*w+v;return goog.vec.Mat4.setFromValues(a,f*b+j*A+p*B,g*b+m*A+n*B,h*b+k*A+q*B,i*b+l*A+r*B,f*C+j*D+p*E,g*C+m*D+n*E,h*C+k*D+q*E,i*C+l*D+r*E,f*F+j*c+p*e,g*F+m*c+n*e,h*F+k*c+q*e,i*F+l*c+r*e,s,t,x,u)};
-goog.vec.Mat4.rotateX=function(a,b){var c=a[4],d=a[5],e=a[6],f=a[7],g=a[8],h=a[9],i=a[10],j=a[11],m=Math.cos(b),k=Math.sin(b);a[4]=c*m+g*k;a[5]=d*m+h*k;a[6]=e*m+i*k;a[7]=f*m+j*k;a[8]=c*-k+g*m;a[9]=d*-k+h*m;a[10]=e*-k+i*m;a[11]=f*-k+j*m;return a};goog.vec.Mat4.rotateY=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[8],h=a[9],i=a[10],j=a[11],m=Math.cos(b),k=Math.sin(b);a[0]=c*m+g*-k;a[1]=d*m+h*-k;a[2]=e*m+i*-k;a[3]=f*m+j*-k;a[8]=c*k+g*m;a[9]=d*k+h*m;a[10]=e*k+i*m;a[11]=f*k+j*m;return a};
-goog.vec.Mat4.rotateZ=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],i=a[6],j=a[7],m=Math.cos(b),k=Math.sin(b);a[0]=c*m+g*k;a[1]=d*m+h*k;a[2]=e*m+i*k;a[3]=f*m+j*k;a[4]=c*-k+g*m;a[5]=d*-k+h*m;a[6]=e*-k+i*m;a[7]=f*-k+j*m;return a};goog.vec.Mat4.getTranslation=function(a,b){b[0]=a[12];b[1]=a[13];b[2]=a[14];return b};goog.vec.Mat4.tmpVec3_=[goog.vec.Vec3.createFloat64(),goog.vec.Vec3.createFloat64()];goog.vec.Mat4.tmpVec4_=[goog.vec.Vec4.createFloat64(),goog.vec.Vec4.createFloat64(),goog.vec.Vec4.createFloat64()];
+goog.vec.Mat4.rotate=function(a,b,c,d,e){var f=a[0],g=a[1],h=a[2],i=a[3],k=a[4],l=a[5],j=a[6],m=a[7],q=a[8],n=a[9],p=a[10],r=a[11],s=a[12],t=a[13],y=a[14],w=a[15],v=Math.cos(b),u=Math.sin(b),x=1-v,b=c*c*x+v,A=c*d*x+e*u,z=c*e*x-d*u,C=c*d*x-e*u,D=d*d*x+v,E=d*e*x+c*u,F=c*e*x+d*u,c=d*e*x-c*u,e=e*e*x+v;return goog.vec.Mat4.setFromValues(a,f*b+k*A+q*z,g*b+l*A+n*z,h*b+j*A+p*z,i*b+m*A+r*z,f*C+k*D+q*E,g*C+l*D+n*E,h*C+j*D+p*E,i*C+m*D+r*E,f*F+k*c+q*e,g*F+l*c+n*e,h*F+j*c+p*e,i*F+m*c+r*e,s,t,y,w)};
+goog.vec.Mat4.rotateX=function(a,b){var c=a[4],d=a[5],e=a[6],f=a[7],g=a[8],h=a[9],i=a[10],k=a[11],l=Math.cos(b),j=Math.sin(b);a[4]=c*l+g*j;a[5]=d*l+h*j;a[6]=e*l+i*j;a[7]=f*l+k*j;a[8]=c*-j+g*l;a[9]=d*-j+h*l;a[10]=e*-j+i*l;a[11]=f*-j+k*l;return a};goog.vec.Mat4.rotateY=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[8],h=a[9],i=a[10],k=a[11],l=Math.cos(b),j=Math.sin(b);a[0]=c*l+g*-j;a[1]=d*l+h*-j;a[2]=e*l+i*-j;a[3]=f*l+k*-j;a[8]=c*j+g*l;a[9]=d*j+h*l;a[10]=e*j+i*l;a[11]=f*j+k*l;return a};
+goog.vec.Mat4.rotateZ=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],i=a[6],k=a[7],l=Math.cos(b),j=Math.sin(b);a[0]=c*l+g*j;a[1]=d*l+h*j;a[2]=e*l+i*j;a[3]=f*l+k*j;a[4]=c*-j+g*l;a[5]=d*-j+h*l;a[6]=e*-j+i*l;a[7]=f*-j+k*l;return a};goog.vec.Mat4.getTranslation=function(a,b){b[0]=a[12];b[1]=a[13];b[2]=a[14];return b};goog.vec.Mat4.tmpVec3_=[goog.vec.Vec3.createFloat64(),goog.vec.Vec3.createFloat64()];goog.vec.Mat4.tmpVec4_=[goog.vec.Vec4.createFloat64(),goog.vec.Vec4.createFloat64(),goog.vec.Vec4.createFloat64()];
goog.vec.Mat4.tmpMat4_=[goog.vec.Mat4.createFloat64()];ol.QuadKeyCharCode={ZERO:48,ONE:49,TWO:50,THREE:51};ol.TileCoord=function(a,b,c){ol.Coordinate.call(this,b,c);this.z=a};goog.inherits(ol.TileCoord,ol.Coordinate);ol.TileCoord.createFromQuadKey=function(a){var b=a.length,c=0,d=0,e=1<>=1}return new ol.TileCoord(b,c,d)};
ol.TileCoord.createFromString=function(a){a=a.split("/");a=goog.array.map(a,function(a){return parseInt(a,10)});return new ol.TileCoord(a[0],a[1],a[2])};ol.TileCoord.prototype.hash=function(){return(this.x<>=1;return a.join("")};
ol.TileCoord.prototype.toString=function(){return[this.z,this.x,this.y].join("/")};ol.TileRange=function(a,b,c,d){this.minX=a;this.minY=b;this.maxX=c;this.maxY=d};goog.inherits(ol.TileRange,ol.Rectangle);ol.TileRange.boundingTileRange=function(a){var b=arguments[0],c=new ol.TileRange(b.x,b.y,b.x,b.y),d,e;for(d=1;da?ol.easing.inAndOut(2*a):1-ol.easing.inAndOut(2*(a-0.5))};ol.animation={};ol.animation.bounce=function(a){var b=a.resolution,c=goog.isDef(a.start)?a.start:goog.now(),d=goog.isDef(a.duration)?a.duration:1E3,e=goog.isDef(a.easing)?a.easing:ol.easing.upAndDown;return function(a,g){if(g.timea-this.delay_;)c--;if(0<=c){var a=this.points_[c],b=this.points_[b],c=b.x-a.x,d=b.y-a.y;this.angle_=Math.atan2(d,c);this.initialVelocity_=Math.sqrt(c*c+d*d)/(b.t-a.t);return this.initialVelocity_>this.minVelocity_}return!1};
ol.Kinetic.prototype.pan=function(a){var b=this.decay_,c=this.initialVelocity_,d=this.minVelocity_,e=this.getDuration_();return ol.animation.pan({source:a,duration:e,easing:function(a){return c*(Math.exp(b*a*e)-1)/(d-c)}})};ol.Kinetic.prototype.getDuration_=function(){return Math.log(this.minVelocity_/this.initialVelocity_)/this.decay_};ol.Kinetic.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_};ol.Kinetic.prototype.getAngle=function(){return this.angle_};ol.interaction={};ol.interaction.Interaction=function(){};ol.interaction.DBLCLICKZOOM_ANIMATION_DURATION=250;ol.interaction.DblClickZoom=function(a){this.delta_=a;ol.interaction.Interaction.call(this)};goog.inherits(ol.interaction.DblClickZoom,ol.interaction.Interaction);
ol.interaction.DblClickZoom.prototype.handleMapBrowserEvent=function(a){var b=a.browserEvent;if(a.type==ol.MapBrowserEvent.EventType.DBLCLICK&&a.isMouseActionButton()){var c=a.map,d=a.getCoordinate(),e=a.browserEvent.shiftKey?-this.delta_:this.delta_,f=c.getView();goog.asserts.assert(f instanceof ol.View2D);f.zoomByDelta(c,e,d,ol.interaction.DBLCLICKZOOM_ANIMATION_DURATION);a.preventDefault();b.preventDefault()}};ol.interaction.condition={};ol.interaction.condition.altKeyOnly=function(a){return a.altKey&&!a.platformModifierKey&&!a.shiftKey};ol.interaction.condition.altShiftKeysOnly=function(a){return a.altKey&&!a.platformModifierKey&&a.shiftKey};ol.interaction.condition.noModifierKeys=function(a){return!a.altKey&&!a.platformModifierKey&&!a.shiftKey};ol.interaction.condition.platformModifierKeyOnly=function(a){return!a.altKey&&a.platformModifierKey&&!a.shiftKey};
@@ -600,7 +600,7 @@ ol.tilegrid.TileGrid.prototype.getTileCoordCenter=function(a){var b=this.getOrig
ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndResolution=function(a,b){return this.getTileCoordForCoordAndResolution_(a,b)};ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndResolution_=function(a,b,c){var d=this.getZForResolution(b),e=b/this.getResolution(d),f=this.getOrigin(d),g=this.getTileSize(d),h=e*(a.x-f.x)/(b*g.width),a=e*(a.y-f.y)/(b*g.height);c?(h=Math.ceil(h)-1,a=Math.ceil(a)-1):(h=Math.floor(h),a=Math.floor(a));return new ol.TileCoord(d,h,a)};
ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndZ=function(a,b){var c=this.getResolution(b);return this.getTileCoordForCoordAndResolution_(a,c)};ol.tilegrid.TileGrid.prototype.getTileCoordResolution=function(a){goog.asserts.assert(0<=a.z&&a.z=ol.structs.RTree.MAX_OBJECTS&&d.level=b;++b)e=d[b],e instanceof ol.filter.Geometry?f=e:e instanceof ol.filter.Extent&&(g=e);g&&f&&(c=this.rTree_.find(g.getExtent(),
+f.getType()))}}if(!goog.isDef(c))for(b in d=this.idLookup_,c={},d)e=d[b],!0===a.applies(e)&&(c[b]=e)}else c=this.idLookup_;return c};ol.layer.FeatureCache.prototype.getFeaturesByGeometryType_=function(a){return goog.object.getValues(this.geometryTypeIndex_[a.getType()])};ol.layer.FeatureCache.prototype.getFeaturesByIds_=function(a){var b=a.length,c=Array(b),d;for(d=0;dthis.highWaterMark_};ol.TileCache.prototype.expireCache=function(a){for(var b,c;this.canExpireCache()&&!(b=this.peekLast(),c=b.tileCoord.z.toString(),c in a&&a[c].contains(b.tileCoord));)this.pop()};ol.geom.LineString=function(a,b){ol.geom.Geometry.call(this);goog.asserts.assert(goog.isArray(a[0]));var c=b;goog.isDef(c)||(c=a[0].length,c=new ol.geom.SharedVertices({dimension:c}));this.vertices=c;this.sharedId_=c.add(a);this.dimension=c.getDimension();goog.asserts.assert(2<=this.dimension);this.bounds_=null};goog.inherits(ol.geom.LineString,ol.geom.Geometry);ol.geom.LineString.prototype.get=function(a,b){return this.vertices.get(this.sharedId_,a,b)};
+ol.geom.LineString.prototype.getCoordinates=function(){for(var a=this.getCount(),b=Array(a),c,d=0;df&&(f=e),ih&&(h=i);this.bounds_=new ol.Extent(c,g,f,h)}return this.bounds_};ol.geom.LineString.prototype.getType=function(){return ol.geom.GeometryType.LINESTRING};ol.geom.LineString.prototype.getSharedId=function(){return this.sharedId_};ol.geom.AbstractCollection=function(){ol.geom.Geometry.call(this);this.bounds=this.components=null};goog.inherits(ol.geom.AbstractCollection,ol.geom.Geometry);ol.geom.AbstractCollection.prototype.getBounds=function(){if(goog.isNull(this.bounds)){var a,b=a=Number.POSITIVE_INFINITY,c,d=c=Number.NEGATIVE_INFINITY,e=this.components,f=e.length,g,h;for(h=0;hd;++d)e[d]=b[d].toFixed(c);c=e.join(",")}else c=b.join(",");ol.dom.setTransform(a,"matrix3d("+c+")")}else if(ol.dom.BrowserFeature.CAN_USE_CSS_TRANSFORM){b=[goog.vec.Mat4.getElement(b,0,0),goog.vec.Mat4.getElement(b,1,0),goog.vec.Mat4.getElement(b,0,1),goog.vec.Mat4.getElement(b,1,1),goog.vec.Mat4.getElement(b,0,3),goog.vec.Mat4.getElement(b,1,3)];if(goog.isDef(c)){e=
Array(6);for(d=0;6>d;++d)e[d]=b[d].toFixed(c);c=e.join(",")}else c=b.join(",");ol.dom.setTransform(a,"matrix("+c+")")}else ol.dom.BrowserFeature.CAN_USE_MATRIX_FILTER?goog.asserts.assert(!1):(a=a.style,a.left=Math.round(goog.vec.Mat4.getElement(b,0,3))+"px",a.top=Math.round(goog.vec.Mat4.getElement(b,1,3))+"px")};ol.renderer.dom={};ol.renderer.dom.Layer=function(a,b,c){ol.renderer.Layer.call(this,a,b);this.target=c};goog.inherits(ol.renderer.dom.Layer,ol.renderer.Layer);ol.renderer.dom.Layer.prototype.disposeInternal=function(){goog.dom.removeNode(this.target);ol.renderer.dom.Layer.superClass_.disposeInternal.call(this)};ol.renderer.dom.Layer.prototype.getTarget=function(){return this.target};ol.renderer.dom.ImageLayer=function(a,b){var c=goog.dom.createElement(goog.dom.TagName.DIV);c.className="ol-layer-image";c.style.position="absolute";ol.renderer.dom.Layer.call(this,a,b,c);this.image_=null;this.transform_=goog.vec.Mat4.createNumberIdentity()};goog.inherits(ol.renderer.dom.ImageLayer,ol.renderer.dom.Layer);ol.renderer.dom.ImageLayer.prototype.getImageLayer=function(){return this.getLayer()};
ol.renderer.dom.ImageLayer.prototype.renderFrame=function(a){var b=a.view2DState,c=b.center,d=b.resolution,e=b.rotation,f=this.image_,g=this.getImageLayer().getImageSource(),h=a.viewHints;!h[ol.ViewHint.ANIMATING]&&!h[ol.ViewHint.INTERACTING]&&(b=g.getImage(a.extent,d,b.projection),goog.isNull(b)||(g=b.getState(),g==ol.ImageState.IDLE?(goog.events.listenOnce(b,goog.events.EventType.CHANGE,this.handleImageChange,!1,this),b.load()):g==ol.ImageState.LOADED&&(f=b)));goog.isNull(f)||(g=f.getExtent(),h=
f.getResolution(),b=goog.vec.Mat4.createNumber(),goog.vec.Mat4.makeIdentity(b),goog.vec.Mat4.translate(b,a.size.width/2,a.size.height/2,0),goog.vec.Mat4.rotateZ(b,e),goog.vec.Mat4.scale(b,h/d,h/d,1),goog.vec.Mat4.translate(b,(g.minX-c.x)/h,(c.y-g.maxY)/h,0),f!=this.image_&&(c=f.getImageElement(this),c.style.position="absolute",goog.dom.removeChildren(this.target),goog.dom.appendChild(this.target,c),this.image_=f),this.setTransform(b),this.updateAttributions(a.attributions,f.getAttributions()))};
ol.renderer.dom.ImageLayer.prototype.setTransform=function(a){goog.vec.Mat4.equals(a,this.transform_)||(ol.dom.transformElement2D(this.target,a,6),goog.vec.Mat4.setFromArray(this.transform_,a))};ol.renderer.dom.TileLayer=function(a,b){var c=goog.dom.createElement(goog.dom.TagName.DIV);c.className="ol-layer-tile";c.style.position="absolute";ol.renderer.dom.Layer.call(this,a,b,c);this.renderedVisible_=!0;this.renderedOpacity_=1;this.tileLayerZs_={}};goog.inherits(ol.renderer.dom.TileLayer,ol.renderer.dom.Layer);ol.renderer.dom.TileLayer.prototype.getTileLayer=function(){return this.getLayer()};
-ol.renderer.dom.TileLayer.prototype.renderFrame=function(a,b){if(b.visible){var c=a.view2DState,d=c.projection,e=this.getTileLayer().getTileSource(),f=goog.getUid(e).toString(),g=e.getTileGrid();goog.isNull(g)&&(g=ol.tilegrid.getForProjection(d));var h=g.getZForResolution(c.resolution),i=g.getResolution(h),j=c.center,m;i==c.resolution?(j=this.snapCenterToPixel(j,i,a.size),m=ol.Extent.getForView2DAndSize(j,i,c.rotation,a.size)):m=a.extent;var i=g.getTileRangeForExtentAndResolution(m,i),k={};k[h]={};
-var l=this.createGetTileIfLoadedFunction(function(a){return!goog.isNull(a)&&a.getState()==ol.TileState.LOADED},e,g,d),l=goog.bind(e.findLoadedTiles,e,k,l),p,n,q,r,s;for(r=i.minX;r<=i.maxX;++r)for(s=i.minY;s<=i.maxY;++s){q=new ol.TileCoord(h,r,s);p=e.getTile(q,g,d);n=p.getState();if(n==ol.TileState.IDLE)this.updateWantedTiles(a.wantedTiles,e,q),n=g.getTileCoordCenter(q),a.tileQueue.enqueue(p,f,n);else if(n==ol.TileState.LOADING)this.listenToTileChange(p);else if(n==ol.TileState.LOADED){k[h][q.toString()]=
-p;continue}else if(n==ol.TileState.ERROR||n==ol.TileState.EMPTY)continue;g.forEachTileCoordParentTileRange(q,l)}p=goog.array.map(goog.object.getKeys(k),Number);goog.array.sort(p);var d={},t;for(q=0;ql&&goog.dom.insertChildAt(this.target,f.target,0)}else!a.viewHints[ol.ViewHint.ANIMATING]&&!a.viewHints[ol.ViewHint.INTERACTING]&&f.removeTilesOutsideExtent(m);else goog.dom.removeNode(f.target),delete this.tileLayerZs_[l];b.opacity!=this.renderedOpacity_&&(goog.style.setOpacity(this.target,b.opacity),this.renderedOpacity_=b.opacity);b.visible&&!this.renderedVisible_&&(goog.style.showElement(this.target,!0),this.renderedVisible_=!0);this.updateUsedTiles(a.usedTiles,e,h,i);e.useLowResolutionTiles(h,
-m,g);this.scheduleExpireCache(a,e)}else this.renderedVisible_&&(goog.style.showElement(this.target,!1),this.renderedVisible_=!1)};ol.renderer.dom.TileLayerZ_=function(a,b){this.target=goog.dom.createElement(goog.dom.TagName.DIV);this.target.style.position="absolute";this.tileGrid_=a;this.tileCoordOrigin_=b;this.origin_=a.getTileCoordExtent(b).getTopLeft();this.resolution_=a.getResolution(b.z);this.tiles_={};this.documentFragment_=null;this.transform_=goog.vec.Mat4.createNumberIdentity()};
+ol.renderer.dom.TileLayer.prototype.renderFrame=function(a,b){if(b.visible){var c=a.view2DState,d=c.projection,e=this.getTileLayer().getTileSource(),f=goog.getUid(e).toString(),g=e.getTileGrid();goog.isNull(g)&&(g=ol.tilegrid.getForProjection(d));var h=g.getZForResolution(c.resolution),i=g.getResolution(h),k=c.center,l;i==c.resolution?(k=this.snapCenterToPixel(k,i,a.size),l=ol.Extent.getForView2DAndSize(k,i,c.rotation,a.size)):l=a.extent;var i=g.getTileRangeForExtentAndResolution(l,i),j={};j[h]={};
+var m=this.createGetTileIfLoadedFunction(function(a){return!goog.isNull(a)&&a.getState()==ol.TileState.LOADED},e,g,d),m=goog.bind(e.findLoadedTiles,e,j,m),q,n,p,r,s;for(r=i.minX;r<=i.maxX;++r)for(s=i.minY;s<=i.maxY;++s){p=new ol.TileCoord(h,r,s);q=e.getTile(p,g,d);n=q.getState();if(n==ol.TileState.IDLE)this.updateWantedTiles(a.wantedTiles,e,p),n=g.getTileCoordCenter(p),a.tileQueue.enqueue(q,f,n);else if(n==ol.TileState.LOADING)this.listenToTileChange(q);else if(n==ol.TileState.LOADED){j[h][p.toString()]=
+q;continue}else if(n==ol.TileState.ERROR||n==ol.TileState.EMPTY)continue;g.forEachTileCoordParentTileRange(p,m)}q=goog.array.map(goog.object.getKeys(j),Number);goog.array.sort(q);var d={},t;for(p=0;pm&&goog.dom.insertChildAt(this.target,f.target,0)}else!a.viewHints[ol.ViewHint.ANIMATING]&&!a.viewHints[ol.ViewHint.INTERACTING]&&f.removeTilesOutsideExtent(l);else goog.dom.removeNode(f.target),delete this.tileLayerZs_[m];b.opacity!=this.renderedOpacity_&&(goog.style.setOpacity(this.target,b.opacity),this.renderedOpacity_=b.opacity);b.visible&&!this.renderedVisible_&&(goog.style.showElement(this.target,!0),this.renderedVisible_=!0);this.updateUsedTiles(a.usedTiles,e,h,i);e.useLowResolutionTiles(h,
+l,g);this.scheduleExpireCache(a,e)}else this.renderedVisible_&&(goog.style.showElement(this.target,!1),this.renderedVisible_=!1)};ol.renderer.dom.TileLayerZ_=function(a,b){this.target=goog.dom.createElement(goog.dom.TagName.DIV);this.target.style.position="absolute";this.tileGrid_=a;this.tileCoordOrigin_=b;this.origin_=a.getTileCoordExtent(b).getTopLeft();this.resolution_=a.getResolution(b.z);this.tiles_={};this.documentFragment_=null;this.transform_=goog.vec.Mat4.createNumberIdentity()};
ol.renderer.dom.TileLayerZ_.prototype.addTile=function(a){var b=a.tileCoord;goog.asserts.assert(b.z==this.tileCoordOrigin_.z);var c=b.toString();if(!(c in this.tiles_)){var d=this.tileGrid_.getTileSize(b.z),e=a.getImage(this),f=e.style;f.position="absolute";f.left=(b.x-this.tileCoordOrigin_.x)*d.width+"px";f.top=(this.tileCoordOrigin_.y-b.y)*d.height+"px";goog.isNull(this.documentFragment_)&&(this.documentFragment_=document.createDocumentFragment());goog.dom.appendChild(this.documentFragment_,e);
this.tiles_[c]=a}};ol.renderer.dom.TileLayerZ_.prototype.finalizeAddTiles=function(){goog.isNull(this.documentFragment_)||(goog.dom.appendChild(this.target,this.documentFragment_),this.documentFragment_=null)};ol.renderer.dom.TileLayerZ_.prototype.getOrigin=function(){return this.origin_};ol.renderer.dom.TileLayerZ_.prototype.getResolution=function(){return this.resolution_};
ol.renderer.dom.TileLayerZ_.prototype.removeTilesOutsideExtent=function(a){var b=this.tileGrid_.getTileRangeForExtentAndZ(a,this.tileCoordOrigin_.z),a=[],c,d;for(d in this.tiles_)c=this.tiles_[d],b.contains(c.tileCoord)||a.push(c);for(b=0;b=a.getCount()){for(var a=this.nodes_,d=0;d=b))return 1==b?goog.array.clear(a):(a[0]=a.pop(),this.moveDown_(0)),c.getValue()};
@@ -692,27 +772,20 @@ ol.renderer.webgl.TileLayer.prototype.bindFramebuffer_=function(a,b){var c=this.
null);c.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MAG_FILTER,goog.webgl.LINEAR);c.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MIN_FILTER,goog.webgl.LINEAR);var e=c.createFramebuffer();c.bindFramebuffer(goog.webgl.FRAMEBUFFER,e);c.framebufferTexture2D(goog.webgl.FRAMEBUFFER,goog.webgl.COLOR_ATTACHMENT0,goog.webgl.TEXTURE_2D,d,0);this.texture_=d;this.framebuffer_=e;this.framebufferDimension_=b}else c.bindFramebuffer(goog.webgl.FRAMEBUFFER,this.framebuffer_)};
ol.renderer.webgl.TileLayer.prototype.disposeInternal=function(){var a=this.getMapRenderer().getGL();a.isContextLost()||(a.deleteBuffer(this.arrayBuffer_),a.deleteFramebuffer(this.framebuffer_),a.deleteTexture(this.texture_));ol.renderer.webgl.TileLayer.superClass_.disposeInternal.call(this)};ol.renderer.webgl.TileLayer.prototype.getTexCoordMatrix=function(){return this.texCoordMatrix_};ol.renderer.webgl.TileLayer.prototype.getTexture=function(){return this.texture_};
ol.renderer.webgl.TileLayer.prototype.getProjectionMatrix=function(){return this.projectionMatrix_};ol.renderer.webgl.TileLayer.prototype.getTileLayer=function(){return this.getLayer()};ol.renderer.webgl.TileLayer.prototype.handleWebGLContextLost=function(){this.framebuffer_=this.texture_=this.arrayBuffer_=this.locations_=null;this.framebufferDimension_=void 0};
-ol.renderer.webgl.TileLayer.prototype.renderFrame=function(a){var b=this.getMapRenderer(),c=b.getGL(),d=a.view2DState,e=d.projection,f=this.getTileLayer().getTileSource(),g=goog.getUid(f).toString(),h=f.getTileGrid();goog.isNull(h)&&(h=ol.tilegrid.getForProjection(e));var i=h.getZForResolution(d.resolution),j=h.getResolution(i),m=d.center,k;j==d.resolution?(m=this.snapCenterToPixel(m,j,a.size),k=ol.Extent.getForView2DAndSize(m,j,d.rotation,a.size)):k=a.extent;var l=h.getTileRangeForExtentAndResolution(k,
-j),p;if(!goog.isNull(this.renderedTileRange_)&&this.renderedTileRange_.equals(l))p=this.renderedFramebufferExtent_;else{var n=l.getSize(),q=h.getTileSize(i),n=Math.max(n.width*q.width,n.height*q.height),n=Math.pow(2,Math.ceil(Math.log(n)/Math.log(2))),r=new ol.Size(j*n,j*n),s=h.getOrigin(i),t=s.x+l.minX*q.width*j,j=s.y+l.minY*q.height*j;p=new ol.Extent(t,j,t+r.width,j+r.height);this.bindFramebuffer_(a,n);c.viewport(0,0,n,n);c.clearColor(0,0,0,0);c.clear(goog.webgl.COLOR_BUFFER_BIT);c.disable(goog.webgl.BLEND);
-j=b.getProgram(this.fragmentShader_,this.vertexShader_);c.useProgram(j);goog.isNull(this.locations_)&&(this.locations_={aPosition:c.getAttribLocation(j,"aPosition"),aTexCoord:c.getAttribLocation(j,"aTexCoord"),uTileOffset:c.getUniformLocation(j,"uTileOffset"),uTexture:c.getUniformLocation(j,"uTexture")});goog.isNull(this.arrayBuffer_)?(j=c.createBuffer(),c.bindBuffer(goog.webgl.ARRAY_BUFFER,j),c.bufferData(goog.webgl.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]),goog.webgl.STATIC_DRAW),
-this.arrayBuffer_=j):c.bindBuffer(goog.webgl.ARRAY_BUFFER,this.arrayBuffer_);c.enableVertexAttribArray(this.locations_.aPosition);c.vertexAttribPointer(this.locations_.aPosition,2,goog.webgl.FLOAT,!1,16,0);c.enableVertexAttribArray(this.locations_.aTexCoord);c.vertexAttribPointer(this.locations_.aTexCoord,2,goog.webgl.FLOAT,!1,16,8);c.uniform1i(this.locations_.uTexture,0);var x={};x[i]={};for(var j=this.createGetTileIfLoadedFunction(function(a){return!goog.isNull(a)&&a.getState()==ol.TileState.LOADED&&
-b.isTileTextureLoaded(a)},f,h,e),q=goog.bind(f.findLoadedTiles,f,x,j),j=new goog.structs.PriorityQueue,u=!0,v,y,s=l.minX;s<=l.maxX;++s)for(y=l.minY;y<=l.maxY;++y){t=new ol.TileCoord(i,s,y);n=f.getTile(t,h,e);v=n.getState();if(v==ol.TileState.IDLE)this.updateWantedTiles(a.wantedTiles,f,t),v=h.getTileCoordCenter(t),a.tileQueue.enqueue(n,g,v);else if(v==ol.TileState.LOADING)this.listenToTileChange(n);else if(v==ol.TileState.LOADED)if(b.isTileTextureLoaded(n)){x[i][t.toString()]=n;continue}else v=h.getTileCoordCenter(t),
-u=v.x-m.x,v=v.y-m.y,u=Math.sqrt(u*u+v*v),j.enqueue(u,n);else if(v==ol.TileState.ERROR||v==ol.TileState.EMPTY)continue;u=!1;h.forEachTileCoordParentTileRange(t,q)}e=goog.array.map(goog.object.getKeys(x),Number);goog.array.sort(e);var w=goog.vec.Vec4.createFloat32();goog.array.forEach(e,function(a){goog.object.forEach(x[a],function(a){var d=h.getTileCoordExtent(a.tileCoord),e=2*d.getWidth()/r.width,f=2*d.getHeight()/r.height;goog.vec.Vec4.setFromValues(w,e,f,2*(d.minX-p.minX)/r.width-1,2*(d.minY-p.minY)/
-r.height-1);c.uniform4fv(this.locations_.uTileOffset,w);b.bindTileTexture(a,goog.webgl.LINEAR,goog.webgl.LINEAR);c.drawArrays(goog.webgl.TRIANGLE_STRIP,0,4)},this)},this);j.isEmpty()||a.postRenderFunctions.push(goog.partial(function(a,b){var c,d;for(c=0;!b.isEmpty()&&4>c;++c)d=b.remove(),a.bindTileTexture(d,goog.webgl.LINEAR,goog.webgl.LINEAR)},b,j));u?(this.renderedTileRange_=l,this.renderedFramebufferExtent_=p):(this.renderedFramebufferExtent_=this.renderedTileRange_=null,a.animate=!0)}this.updateUsedTiles(a.usedTiles,
-f,i,l);f.useLowResolutionTiles(i,k,h);this.scheduleExpireCache(a,f);goog.vec.Mat4.makeIdentity(this.texCoordMatrix_);goog.vec.Mat4.translate(this.texCoordMatrix_,(m.x-p.minX)/(p.maxX-p.minX),(m.y-p.minY)/(p.maxY-p.minY),0);goog.vec.Mat4.rotateZ(this.texCoordMatrix_,d.rotation);goog.vec.Mat4.scale(this.texCoordMatrix_,a.size.width*d.resolution/(p.maxX-p.minX),a.size.height*d.resolution/(p.maxY-p.minY),1);goog.vec.Mat4.translate(this.texCoordMatrix_,-0.5,-0.5,0)};ol.structs={};ol.structs.LRUCache=function(){this.count_=0;this.entries_={};this.newest_=this.oldest_=null};
-ol.structs.LRUCache.prototype.assertValid=function(){if(0===this.count_)goog.asserts.assert(goog.object.isEmpty(this.entries_)),goog.asserts.assert(goog.isNull(this.oldest_)),goog.asserts.assert(goog.isNull(this.newest_));else{goog.asserts.assert(goog.object.getCount(this.entries_)==this.count_);goog.asserts.assert(!goog.isNull(this.oldest_));goog.asserts.assert(goog.isNull(this.oldest_.older));goog.asserts.assert(!goog.isNull(this.newest_));goog.asserts.assert(goog.isNull(this.newest_.newer));var a,
-b,c=null;a=0;for(b=this.oldest_;!goog.isNull(b);b=b.newer)goog.asserts.assert(b.older===c),c=b,++a;goog.asserts.assert(a==this.count_);c=null;a=0;for(b=this.newest_;!goog.isNull(b);b=b.older)goog.asserts.assert(b.newer===c),c=b,++a;goog.asserts.assert(a==this.count_)}};ol.structs.LRUCache.prototype.clear=function(){this.count_=0;this.entries_={};this.newest_=this.oldest_=null};ol.structs.LRUCache.prototype.containsKey=function(a){return this.entries_.hasOwnProperty(a)};
-ol.structs.LRUCache.prototype.forEach=function(a,b){for(var c=this.oldest_;!goog.isNull(c);)a.call(b,c.value_,c.key_,this),c=c.newer};ol.structs.LRUCache.prototype.get=function(a){a=this.entries_[a];goog.asserts.assert(goog.isDef(a));if(a===this.newest_)return a.value_;a===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(a.newer.older=a.older,a.older.newer=a.newer);a.newer=null;a.older=this.newest_;this.newest_=this.newest_.newer=a;return a.value_};
-ol.structs.LRUCache.prototype.getCount=function(){return this.count_};ol.structs.LRUCache.prototype.getKeys=function(){var a=Array(this.count_),b=0,c;for(c=this.newest_;!goog.isNull(c);c=c.older)a[b++]=c.key_;goog.asserts.assert(b==this.count_);return a};ol.structs.LRUCache.prototype.getValues=function(){var a=Array(this.count_),b=0,c;for(c=this.newest_;!goog.isNull(c);c=c.older)a[b++]=c.value_;goog.asserts.assert(b==this.count_);return a};
-ol.structs.LRUCache.prototype.peekLast=function(){goog.asserts.assert(!goog.isNull(this.oldest_));return this.oldest_.value_};ol.structs.LRUCache.prototype.peekLastKey=function(){goog.asserts.assert(!goog.isNull(this.oldest_));return this.oldest_.key_};
-ol.structs.LRUCache.prototype.pop=function(){goog.asserts.assert(!goog.isNull(this.oldest_));goog.asserts.assert(!goog.isNull(this.newest_));var a=this.oldest_;goog.asserts.assert(a.key_ in this.entries_);delete this.entries_[a.key_];goog.isNull(a.newer)||(a.newer.older=null);this.oldest_=a.newer;goog.isNull(this.oldest_)&&(this.newest_=null);--this.count_;return a.value_};
-ol.structs.LRUCache.prototype.set=function(a,b){goog.asserts.assert(!(a in{}));goog.asserts.assert(!(a in this.entries_));var c={key_:a,newer:null,older:this.newest_,value_:b};goog.isNull(this.newest_)?this.oldest_=c:this.newest_.newer=c;this.newest_=c;this.entries_[a]=c;++this.count_};ol.webgl={};ol.webgl.CONTEXT_IDS_=["webgl","webgl-experimental","webkit-3d","moz-webgl"];ol.webgl.WebGLContextEventType={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};ol.webgl.getContext=function(a,b){var c,d,e=ol.webgl.CONTEXT_IDS_.length;for(d=0;dc;++c)d=b.remove(),a.bindTileTexture(d,goog.webgl.LINEAR,goog.webgl.LINEAR)},b,k));w?(this.renderedTileRange_=m,this.renderedFramebufferExtent_=q):(this.renderedFramebufferExtent_=this.renderedTileRange_=null,a.animate=!0)}this.updateUsedTiles(a.usedTiles,
+f,i,m);f.useLowResolutionTiles(i,j,h);this.scheduleExpireCache(a,f);goog.vec.Mat4.makeIdentity(this.texCoordMatrix_);goog.vec.Mat4.translate(this.texCoordMatrix_,(l.x-q.minX)/(q.maxX-q.minX),(l.y-q.minY)/(q.maxY-q.minY),0);goog.vec.Mat4.rotateZ(this.texCoordMatrix_,d.rotation);goog.vec.Mat4.scale(this.texCoordMatrix_,a.size.width*d.resolution/(q.maxX-q.minX),a.size.height*d.resolution/(q.maxY-q.minY),1);goog.vec.Mat4.translate(this.texCoordMatrix_,-0.5,-0.5,0)};ol.webgl={};ol.webgl.CONTEXT_IDS_=["webgl","webgl-experimental","webkit-3d","moz-webgl"];ol.webgl.WebGLContextEventType={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};ol.webgl.getContext=function(a,b){var c,d,e=ol.webgl.CONTEXT_IDS_.length;for(d=0;dthis.highWaterMark_};ol.TileCache.prototype.expireCache=function(a){for(var b,c;this.canExpireCache()&&!(b=this.peekLast(),c=b.tileCoord.z.toString(),c in a&&a[c].contains(b.tileCoord));)this.pop()};ol.TileUrlFunction={};ol.TileUrlFunction.createFromTemplate=function(a){var b=/\{(\d)-(\d)\}/.exec(a)||/\{([a-z])-([a-z])\}/.exec(a);if(b){for(var c=[],d=b[1].charCodeAt(0),e=b[2].charCodeAt(0);d<=e;++d)c.push(a.replace(b[0],String.fromCharCode(d)));return ol.TileUrlFunction.createFromTemplates(c)}return function(b){return goog.isNull(b)?void 0:a.replace("{z}",b.z).replace("{x}",b.x).replace("{y}",b.y)}};
-ol.TileUrlFunction.createFromTemplates=function(a){return ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(a,ol.TileUrlFunction.createFromTemplate))};ol.TileUrlFunction.createFromTileUrlFunctions=function(a){return 1===a.length?a[0]:function(b,c,d){if(!goog.isNull(b)){var e=goog.math.modulo(b.hash(),a.length);return a[e](b,c,d)}}};
-ol.TileUrlFunction.createWMSParams=function(a,b){return function(c,d,e){if(!goog.isNull(c)){var f=d.getTileSize(c.z),c=d.getTileCoordExtent(c);return ol.source.wms.getUrl(a,b,c,f,e)}}};ol.TileUrlFunction.nullTileUrlFunction=function(){};ol.TileUrlFunction.withTileCoordTransform=function(a,b){return function(c,d,e){return goog.isNull(c)?void 0:b(a(c,d,e),d,e)}};ol.control.MousePosition=function(a){var a=goog.isDef(a)?a:{},b=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-mouse-position"});ol.control.Control.call(this,{element:b,map:a.map,target:a.target});this.projection_=ol.projection.get(a.projection);this.coordinateFormat_=a.coordinateFormat;this.undefinedHTML_=goog.isDef(a.undefinedHTML)?a.undefinedHTML:"";this.renderedHTML_=b.innerHTML;this.mapProjection_=null;this.transform_=ol.projection.identityTransform;this.listenerKeys_=this.lastMouseMovePixel_=
+ol.ImageTile.prototype.unlistenImage_=function(){goog.asserts.assert(!goog.isNull(this.imageListenerKeys_));goog.array.forEach(this.imageListenerKeys_,goog.events.unlistenByKey);this.imageListenerKeys_=null};ol.TileUrlFunction={};ol.TileUrlFunction.createFromTemplate=function(a){return function(b){return goog.isNull(b)?void 0:a.replace("{z}",b.z).replace("{x}",b.x).replace("{y}",b.y)}};ol.TileUrlFunction.createFromTemplates=function(a){return ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(a,ol.TileUrlFunction.createFromTemplate))};
+ol.TileUrlFunction.createFromTileUrlFunctions=function(a){return 1===a.length?a[0]:function(b,c,d){if(!goog.isNull(b)){var e=goog.math.modulo(b.hash(),a.length);return a[e](b,c,d)}}};ol.TileUrlFunction.createWMSParams=function(a,b){return function(c,d,e){if(!goog.isNull(c)){var f=d.getTileSize(c.z),c=d.getTileCoordExtent(c);return ol.source.wms.getUrl(a,b,c,f,e)}}};ol.TileUrlFunction.nullTileUrlFunction=function(){};
+ol.TileUrlFunction.withTileCoordTransform=function(a,b){return function(c,d,e){return goog.isNull(c)?void 0:b(a(c,d,e),d,e)}};ol.TileUrlFunction.expandUrl=function(a){var b=[],c=/\{(\d)-(\d)\}/.exec(a)||/\{([a-z])-([a-z])\}/.exec(a);if(c)for(var d=c[1].charCodeAt(0),e=c[2].charCodeAt(0);d<=e;++d)b.push(a.replace(c[0],String.fromCharCode(d)));else b.push(a);return b};ol.control.MousePosition=function(a){var a=goog.isDef(a)?a:{},b=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-mouse-position"});ol.control.Control.call(this,{element:b,map:a.map,target:a.target});this.projection_=ol.projection.get(a.projection);this.coordinateFormat_=a.coordinateFormat;this.undefinedHTML_=goog.isDef(a.undefinedHTML)?a.undefinedHTML:"";this.renderedHTML_=b.innerHTML;this.mapProjection_=null;this.transform_=ol.projection.identityTransform;this.listenerKeys_=this.lastMouseMovePixel_=
this.renderedProjection_=null};goog.inherits(ol.control.MousePosition,ol.control.Control);ol.control.MousePosition.prototype.handleMapPostrender=function(a){a=a.frameState;this.mapProjection_=goog.isNull(a)?null:a.view2DState.projection;this.updateHTML_(this.lastMouseMovePixel_)};ol.control.MousePosition.prototype.handleMouseMove=function(a){var b=this.getMap(),a=goog.style.getRelativePosition(a,b.getViewport()),a=new ol.Pixel(a.x,a.y);this.updateHTML_(a);this.lastMouseMovePixel_=a};
ol.control.MousePosition.prototype.handleMouseOut=function(){this.updateHTML_(null);this.lastMouseMovePixel_=null};
ol.control.MousePosition.prototype.setMap=function(a){goog.isNull(this.listenerKeys_)||(goog.array.forEach(this.listenerKeys_,goog.events.unlistenByKey),this.listenerKeys_=null);ol.control.MousePosition.superClass_.setMap.call(this,a);if(!goog.isNull(a)){var b=a.getViewport();this.listenerKeys_=[goog.events.listen(b,goog.events.EventType.MOUSEMOVE,this.handleMouseMove,!1,this),goog.events.listen(b,goog.events.EventType.MOUSEOUT,this.handleMouseOut,!1,this),goog.events.listen(a,ol.MapEventType.POSTRENDER,
this.handleMapPostrender,!1,this)]}};
ol.control.MousePosition.prototype.updateHTML_=function(a){var b=this.undefinedHTML_;goog.isNull(a)||(this.renderedProjection_!=this.mapProjection_&&(this.transform_=goog.isNull(this.projection_)?ol.projection.identityTransform:ol.projection.getTransformFromProjections(this.mapProjection_,this.projection_),this.renderedProjection_=this.mapProjection_),a=this.getMap().getCoordinateFromPixel(a),goog.isNull(a)||(b=[a.x,a.y],b=this.transform_(b,b),a=new ol.Coordinate(b[0],b[1]),b=goog.isDef(this.coordinateFormat_)?
this.coordinateFormat_(a):a.toString()));if(!goog.isDef(this.renderedHTML_)||b!=this.renderedHTML_)this.renderedHTML_=this.element.innerHTML=b};ol.control.ScaleLineUnits={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"};
-ol.control.ScaleLine=function(a){a=a||{};this.innerElement_=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-scale-line-inner"});this.element_=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-scale-line ol-unselectable"},this.innerElement_);this.minWidth_=goog.isDef(a.minWidth)?a.minWidth:64;this.units_=goog.isDef(a.units)?a.units:ol.control.ScaleLineUnits.METRIC;this.listenerKeys_=null;this.renderedVisible_=!1;this.renderedHTML_="";this.toEPSG4326_=null;ol.control.Control.call(this,{element:this.element_,
-map:a.map,target:a.target})};goog.inherits(ol.control.ScaleLine,ol.control.Control);ol.control.ScaleLine.LEADING_DIGITS=[1,2,5];ol.control.ScaleLine.prototype.handleMapPostrender=function(a){this.updateElement_(a.frameState)};
+ol.control.ScaleLine=function(a){a=a||{};this.innerElement_=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-scale-line-inner"});this.element_=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-scale-line "+ol.CSS_CLASS_UNSELECTABLE},this.innerElement_);this.minWidth_=goog.isDef(a.minWidth)?a.minWidth:64;this.units_=goog.isDef(a.units)?a.units:ol.control.ScaleLineUnits.METRIC;this.listenerKeys_=null;this.renderedVisible_=!1;this.renderedHTML_="";this.toEPSG4326_=null;ol.control.Control.call(this,
+{element:this.element_,map:a.map,target:a.target})};goog.inherits(ol.control.ScaleLine,ol.control.Control);ol.control.ScaleLine.LEADING_DIGITS=[1,2,5];ol.control.ScaleLine.prototype.handleMapPostrender=function(a){this.updateElement_(a.frameState)};
ol.control.ScaleLine.prototype.setMap=function(a){goog.isNull(this.listenerKeys_)||(goog.array.forEach(this.listenerKeys_,goog.events.unlistenByKey),this.listenerKeys_=null);ol.control.ScaleLine.superClass_.setMap.call(this,a);goog.isNull(a)||(this.listenerKeys_=[goog.events.listen(a,ol.MapEventType.POSTRENDER,this.handleMapPostrender,!1,this)])};
ol.control.ScaleLine.prototype.updateElement_=function(a){if(goog.isNull(a))this.renderedVisible_&&(goog.style.showElement(this.element_,!1),this.renderedVisible_=!1);else{var a=a.view2DState,b=a.center,c=a.projection,a=c.getPointResolution(a.resolution,b),d=c.getUnits();d==ol.ProjectionUnits.DEGREES&&(this.units_==ol.control.ScaleLineUnits.METRIC||this.units_==ol.control.ScaleLineUnits.IMPERIAL)?(this.toEPSG4326_=null,b=Math.cos(goog.math.toRadians(b.y)),a*=Math.PI*b*ol.sphere.NORMAL.radius/180,
d=ol.ProjectionUnits.METERS):(d==ol.ProjectionUnits.FEET||d==ol.ProjectionUnits.METERS)&&this.units_==ol.control.ScaleLineUnits.DEGREES?(goog.isNull(this.toEPSG4326_)&&(this.toEPSG4326_=ol.projection.getTransformFromProjections(c,ol.projection.get("EPSG:4326"))),b=[b.x,b.y],b=this.toEPSG4326_(b,b,2),b=Math.cos(goog.math.toRadians(b[1])),c=ol.sphere.NORMAL.radius,d==ol.ProjectionUnits.FEET&&(c/=0.3048),a*=180/(Math.PI*b*c),d=ol.ProjectionUnits.DEGREES):this.toEPSG4326_=null;goog.asserts.assert((this.units_==
ol.control.ScaleLineUnits.METRIC||this.units_==ol.control.ScaleLineUnits.IMPERIAL)&&d==ol.ProjectionUnits.METERS||this.units_==ol.control.ScaleLineUnits.DEGREES&&d==ol.ProjectionUnits.DEGREES);b=this.minWidth_*a;d="";this.units_==ol.control.ScaleLineUnits.DEGREES?b<1/60?(d="\u2033",a*=3600):1>b?(d="\u2032",a*=60):d="\u00b0":this.units_==ol.control.ScaleLineUnits.IMPERIAL?0.9144>b?(d="in",a/=0.0254):1609.344>b?(d="ft",a/=0.3048):(d="mi",a/=1609.344):this.units_==ol.control.ScaleLineUnits.NAUTICAL?
(a/=1852,d="nm"):this.units_==ol.control.ScaleLineUnits.METRIC?1>b?(d="mm",a*=1E3):1E3>b?d="m":(d="km",a/=1E3):this.units_==ol.control.ScaleLineUnits.US?0.9144>b?(d="in",a*=39.37):1609.344>b?(d="ft",a/=0.30480061):(d="mi",a/=1609.3472):goog.asserts.assert(!1);for(var b=3*Math.floor(Math.log(this.minWidth_*a)/Math.log(10)),e,f;;){e=ol.control.ScaleLine.LEADING_DIGITS[b%3]*Math.pow(10,Math.floor(b/3));f=Math.round(e/a);if(f>=this.minWidth_)break;++b}e+=d;this.renderedHTML_!=e&&(this.renderedHTML_=this.innerElement_.innerHTML=
-e);this.renderedWidth_!=f&&(this.innerElement_.style.width=f+"px",this.renderedWidth_=f);this.renderedVisible_||(goog.style.showElement(this.element_,!0),this.renderedVisible_=!0)}};ol.ellipsoid={};ol.ellipsoid.WGS84=new ol.Ellipsoid(6378137,1/298.257223563);ol.interaction.DragRotateAndZoom=function(a){ol.interaction.Drag.call(this);this.condition_=a};goog.inherits(ol.interaction.DragRotateAndZoom,ol.interaction.Drag);
+e);this.renderedWidth_!=f&&(this.innerElement_.style.width=f+"px",this.renderedWidth_=f);this.renderedVisible_||(goog.style.showElement(this.element_,!0),this.renderedVisible_=!0)}};goog.events.EventHandler=function(a){goog.Disposable.call(this);this.handler_=a;this.keys_=[]};goog.inherits(goog.events.EventHandler,goog.Disposable);goog.events.EventHandler.typeArray_=[];goog.events.EventHandler.prototype.listen=function(a,b,c,d,e){goog.isArray(b)||(goog.events.EventHandler.typeArray_[0]=b,b=goog.events.EventHandler.typeArray_);for(var f=0;fthis.hysteresisDistanceSquared_)if(this.fireDragStart_(a))this.dragging_=!0;else{this.isDisposed()||this.endDrag(a);
+return}}c=this.calculatePosition_(b,c);b=c.x;c=c.y;this.dragging_&&this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.BEFOREDRAG,this,a.clientX,a.clientY,a,b,c))&&(this.doDrag(a,b,c,!1),a.preventDefault())}};
+goog.fx.Dragger.prototype.calculatePosition_=function(a,b){var c=goog.dom.getDomHelper(this.document_).getDocumentScroll(),a=a+(c.x-this.pageScroll.x),b=b+(c.y-this.pageScroll.y);this.pageScroll=c;this.deltaX+=a;this.deltaY+=b;var c=this.limitX(this.deltaX),d=this.limitY(this.deltaY);return new goog.math.Coordinate(c,d)};goog.fx.Dragger.prototype.onScroll_=function(a){var b=this.calculatePosition_(0,0);a.clientX=this.clientX;a.clientY=this.clientY;this.doDrag(a,b.x,b.y,!0)};
+goog.fx.Dragger.prototype.doDrag=function(a,b,c){this.defaultAction(b,c);this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.DRAG,this,a.clientX,a.clientY,a,b,c))};goog.fx.Dragger.prototype.limitX=function(a){var b=this.limits,c=!isNaN(b.left)?b.left:null,b=!isNaN(b.width)?b.width:0;return Math.min(null!=c?c+b:Infinity,Math.max(null!=c?c:-Infinity,a))};
+goog.fx.Dragger.prototype.limitY=function(a){var b=this.limits,c=!isNaN(b.top)?b.top:null,b=!isNaN(b.height)?b.height:0;return Math.min(null!=c?c+b:Infinity,Math.max(null!=c?c:-Infinity,a))};goog.fx.Dragger.prototype.defaultAction=function(a,b){this.useRightPositioningForRtl_&&this.isRightToLeft_()?this.target.style.right=a+"px":this.target.style.left=a+"px";this.target.style.top=b+"px"};goog.fx.Dragger.prototype.isDragging=function(){return this.dragging_};
+goog.fx.DragEvent=function(a,b,c,d,e,f,g,h){goog.events.Event.call(this,a);this.clientX=c;this.clientY=d;this.browserEvent=e;this.left=goog.isDef(f)?f:b.deltaX;this.top=goog.isDef(g)?g:b.deltaY;this.dragger=b;this.dragCanceled=!!h};goog.inherits(goog.fx.DragEvent,goog.events.Event);ol.control.ZoomSlider=function(a){this.maxResolution_=goog.isDef(a.maxResolution)?a.maxResolution:ol.control.ZoomSlider.DEFAULT_MAX_RESOLUTION;this.minResolution_=goog.isDef(a.minResolution)?a.minResolution:ol.control.ZoomSlider.DEFAULT_MIN_RESOLUTION;goog.asserts.assert(this.minResolution_a.height?(this.direction_=ol.control.ZoomSlider.direction.HORIZONTAL,a=new goog.math.Rect(0,0,b,0)):(this.direction_=ol.control.ZoomSlider.direction.VERTICAL,a=new goog.math.Rect(0,
+0,0,c));this.dragger_.setLimits(a)};ol.control.ZoomSlider.prototype.handleMapPostRender_=function(a){a=a.frameState.view2DState.resolution;a!==this.currentResolution_&&(this.currentResolution_=a,this.positionThumbForResolution_(a))};ol.control.ZoomSlider.prototype.handleContainerClick_=function(){};
+ol.control.ZoomSlider.prototype.positionThumbForResolution_=function(a){var a=this.amountForResolution_(a),b=this.dragger_,c=goog.dom.getFirstElementChild(this.element);this.direction_==ol.control.ZoomSlider.direction.HORIZONTAL?goog.style.setPosition(c,b.limits.left+b.limits.width*a):goog.style.setPosition(c,b.limits.left,b.limits.top+b.limits.height*a)};
+ol.control.ZoomSlider.prototype.amountDragged_=function(a){var b=this.dragger_.limits,c=0;return c=this.direction_===ol.control.ZoomSlider.direction.HORIZONTAL?(a.left-b.left)/b.width:(a.top-b.top)/b.height};ol.control.ZoomSlider.prototype.resolutionForAmount_=function(a){a=goog.math.clamp(a,0,1);return this.minResolution_+this.range_*a};ol.control.ZoomSlider.prototype.amountForResolution_=function(a){return(goog.math.clamp(a,this.minResolution_,this.maxResolution_)-this.minResolution_)/this.range_};
+ol.control.ZoomSlider.prototype.handleSliderChange_=function(a){var b=this.getMap(),a=this.amountDragged_(a),a=this.resolutionForAmount_(a);goog.asserts.assert(a>=this.minResolution_&&a<=this.maxResolution_,"calculated new resolution is in allowed bounds.");a!==this.currentResolution_&&(this.currentResolution_=a,b.getView().setResolution(a))};
+ol.control.ZoomSlider.prototype.createDraggable_=function(a){goog.isNull(this.draggerListenerKeys_)||(goog.array.forEach(this.draggerListenerKeys_,goog.events.unlistenByKey),this.draggerListenerKeys_=null);a=new goog.fx.Dragger(a.childNodes[0]);this.draggerListenerKeys_=[goog.events.listen(a,[goog.fx.Dragger.EventType.DRAG,goog.fx.Dragger.EventType.END],this.handleSliderChange_,void 0,this)];return a};
+ol.control.ZoomSlider.prototype.createDom_=function(){return goog.dom.createDom(goog.dom.TagName.DIV,ol.control.ZoomSlider.CSS_CLASS_CONTAINER+" ol-unselectable",goog.dom.createDom(goog.dom.TagName.DIV,ol.control.ZoomSlider.CSS_CLASS_THUMB+" ol-unselectable"))};ol.ellipsoid={};ol.ellipsoid.WGS84=new ol.Ellipsoid(6378137,1/298.257223563);ol.geom.GeometryCollection=function(a){ol.geom.AbstractCollection.call(this);this.components=a;for(var b=0,c=0,d=a.length;cd&&(e=~e);a[c]=e}return ol.parser.polyline.encodeUnsignedIntegers(a)};ol.parser.polyline.decodeSignedIntegers=function(a){for(var a=ol.parser.polyline.decodeUnsignedIntegers(a),b=a.length,c=0;c>1):d>>1}return a};
+ol.parser.polyline.encodeUnsignedIntegers=function(a){for(var b="",c=a.length,d=0;dg?(b.push(c),d=c=0):d+=5}return b};ol.parser.polyline.encodeFloat=function(a,b){a=Math.round(a*(b||1E5));return ol.parser.polyline.encodeSignedInteger(a)};
+ol.parser.polyline.decodeFloat=function(a,b){return ol.parser.polyline.decodeSignedInteger(a)/(b||1E5)};ol.parser.polyline.encodeSignedInteger=function(a){var b=a<<1;0>a&&(b=~b);return ol.parser.polyline.encodeUnsignedInteger(b)};ol.parser.polyline.decodeSignedInteger=function(a){a=ol.parser.polyline.decodeUnsignedInteger(a);return a&1?~(a>>1):a>>1};
+ol.parser.polyline.encodeUnsignedInteger=function(a){for(var b,c="";32<=a;)b=(32|a&31)+63,c+=String.fromCharCode(b),a>>=5;return c+=String.fromCharCode(a+63)};ol.parser.polyline.decodeUnsignedInteger=function(a){for(var b=0,c=0,d=a.length,e=0;ef)break;c+=5}return b};/*
Portions of this code are from MochiKit, received by
The Closure Authors under the MIT license. All other code is Copyright
2005-2009 The Closure Authors. All Rights Reserved.
@@ -873,18 +989,18 @@ goog.net.Jsonp.prototype.send=function(a,b,c,d){a=a||null;d=d||"_"+(goog.net.Jso
cleanupWhenDone:!0});c=goog.net.Jsonp.newErrorHandler_(d,a,c);b.addErrback(c);return{id_:d,deferred_:b}};goog.net.Jsonp.prototype.cancel=function(a){a&&(a.deferred_&&a.deferred_.cancel(),a.id_&&goog.net.Jsonp.cleanup_(a.id_,!1))};goog.net.Jsonp.newErrorHandler_=function(a,b,c){return function(){goog.net.Jsonp.cleanup_(a,!1);c&&c(b)}};goog.net.Jsonp.newReplyHandler_=function(a,b){return function(c){goog.net.Jsonp.cleanup_(a,!0);b.apply(void 0,arguments)}};
goog.net.Jsonp.cleanup_=function(a,b){goog.global[goog.net.Jsonp.CALLBACKS][a]&&(b?delete goog.global[goog.net.Jsonp.CALLBACKS][a]:goog.global[goog.net.Jsonp.CALLBACKS][a]=goog.nullFunction)};goog.net.Jsonp.addPayloadToUri_=function(a,b){for(var c in a)(!a.hasOwnProperty||a.hasOwnProperty(c))&&b.setParameterValues(c,a[c]);return b};ol.source.ImageTileSource=function(a){ol.source.TileSource.call(this,{attributions:a.attributions,extent:a.extent,opaque:a.opaque,projection:a.projection,tileGrid:a.tileGrid});this.tileUrlFunction=goog.isDef(a.tileUrlFunction)?a.tileUrlFunction:ol.TileUrlFunction.nullTileUrlFunction;this.crossOrigin_=goog.isDef(a.crossOrigin)?a.crossOrigin:"anonymous";this.tileCache_=new ol.TileCache};goog.inherits(ol.source.ImageTileSource,ol.source.TileSource);
ol.source.ImageTileSource.prototype.canExpireCache=function(){return this.tileCache_.canExpireCache()};ol.source.ImageTileSource.prototype.expireCache=function(a){this.tileCache_.expireCache(a)};
-ol.source.ImageTileSource.prototype.getTile=function(a,b,c){var d=a.toString();if(this.tileCache_.containsKey(d))return this.tileCache_.get(d);goog.asserts.assert(b);goog.asserts.assert(c);b=this.tileUrlFunction(a,b,c);a=new ol.ImageTile(a,goog.isDef(b)?ol.TileState.IDLE:ol.TileState.EMPTY,goog.isDef(b)?b:"",this.crossOrigin_);this.tileCache_.set(d,a);return a};ol.source.ImageTileSource.prototype.useTile=function(a){a=a.toString();this.tileCache_.containsKey(a)&&this.tileCache_.get(a)};ol.tilegrid.XYZ=function(a){var b=Array(a.maxZoom+1),c,d=2*ol.projection.EPSG3857.HALF_SIZE/ol.DEFAULT_TILE_SIZE;for(c=0;c<=a.maxZoom;++c)b[c]=d/Math.pow(2,c);ol.tilegrid.TileGrid.call(this,{origin:new ol.Coordinate(-ol.projection.EPSG3857.HALF_SIZE,ol.projection.EPSG3857.HALF_SIZE),resolutions:b,tileSize:new ol.Size(ol.DEFAULT_TILE_SIZE,ol.DEFAULT_TILE_SIZE)})};goog.inherits(ol.tilegrid.XYZ,ol.tilegrid.TileGrid);
+ol.source.ImageTileSource.prototype.getTile=function(a,b,c){var d=a.toString();if(this.tileCache_.containsKey(d))return this.tileCache_.get(d);goog.asserts.assert(b);goog.asserts.assert(c);b=this.tileUrlFunction(a,b,c);a=new ol.ImageTile(a,goog.isDef(b)?ol.TileState.IDLE:ol.TileState.EMPTY,goog.isDef(b)?b:"",this.crossOrigin_);this.tileCache_.set(d,a);return a};ol.source.ImageTileSource.prototype.useTile=function(a){this.tileCache_.containsKey(a)&&this.tileCache_.get(a)};ol.tilegrid.XYZ=function(a){var b=Array(a.maxZoom+1),c,d=2*ol.projection.EPSG3857.HALF_SIZE/ol.DEFAULT_TILE_SIZE;for(c=0;c<=a.maxZoom;++c)b[c]=d/Math.pow(2,c);ol.tilegrid.TileGrid.call(this,{origin:new ol.Coordinate(-ol.projection.EPSG3857.HALF_SIZE,ol.projection.EPSG3857.HALF_SIZE),resolutions:b,tileSize:new ol.Size(ol.DEFAULT_TILE_SIZE,ol.DEFAULT_TILE_SIZE)})};goog.inherits(ol.tilegrid.XYZ,ol.tilegrid.TileGrid);
ol.tilegrid.XYZ.prototype.forEachTileCoordParentTileRange=function(a,b,c){for(var d=a.x,e=a.y,a=a.z,f;;){a-=1;if(0>a)break;d>>=1;e>>=1;f=new ol.TileRange(d,e,d,e);if(b.call(c,a,f))break}};ol.source.BingMaps=function(a){ol.source.ImageTileSource.call(this,{opaque:!0,projection:ol.projection.get("EPSG:3857")});this.culture_=goog.isDef(a.culture)?a.culture:"en-us";this.ready_=!1;var b=new goog.Uri("//dev.virtualearth.net/REST/v1/Imagery/Metadata/"+a.style);(new goog.net.Jsonp(b,"jsonp")).send({include:"ImageryProviders",key:a.key},goog.bind(this.handleImageryMetadataResponse,this))};goog.inherits(ol.source.BingMaps,ol.source.ImageTileSource);
ol.source.BingMaps.prototype.handleImageryMetadataResponse=function(a){goog.asserts.assert("ValidCredentials"==a.authenticationResultCode);goog.asserts.assert(200==a.statusCode);goog.asserts.assert("OK"==a.statusDescription);goog.asserts.assert(1==a.resourceSets.length);a=a.resourceSets[0];goog.asserts.assert(1==a.resources.length);var b=a.resources[0],c=b.zoomMin,d=b.zoomMax,a=new ol.Size(b.imageWidth,b.imageHeight),e=new ol.tilegrid.XYZ({maxZoom:d,tileSize:a});this.tileGrid=e;this.tileUrlFunction=
ol.TileUrlFunction.withTileCoordTransform(function(a){if(a.ze||b<=e)return null;b=goog.math.modulo(a.x,b);return new ol.TileCoord(a.z,b,e)},ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(b.imageUrlSubdomains,function(a){var c=b.imageUrl.replace("{subdomain}",a).replace("{culture}",this.culture_);return function(a){return goog.isNull(a)?void 0:c.replace("{quadkey}",a.quadKey())}})));var f=ol.projection.getTransformFromProjections(ol.projection.get("EPSG:4326"),
this.getProjection()),a=goog.array.map(b.imageryProviders,function(a){var b=a.attribution,c={};goog.array.forEach(a.coverageAreas,function(a){var b=a.zoomMin,d=a.zoomMax,a=a.bbox,a=(new ol.Extent(a[1],a[0],a[3],a[2])).transform(f),g,h;for(g=b;g<=d;++g)h=g.toString(),b=e.getTileRangeForExtentAndZ(a,g),h in c?c[h].push(b):c[h]=[b]});return new ol.Attribution(b,c)});this.setAttributions(a);this.ready_=!0;this.dispatchLoadEvent()};ol.source.BingMaps.prototype.isReady=function(){return this.ready_};ol.DebugTile_=function(a,b){ol.Tile.call(this,a,ol.TileState.LOADED);this.tileCoord_=a;this.tileSize_=b.getTileSize(a.z);this.canvasByContext_={}};goog.inherits(ol.DebugTile_,ol.Tile);
ol.DebugTile_.prototype.getImage=function(a){a=goog.isDef(a)?goog.getUid(a):-1;if(a in this.canvasByContext_)return this.canvasByContext_[a];var b=this.tileSize_,c=goog.dom.createElement(goog.dom.TagName.CANVAS);c.width=b.width;c.height=b.height;var d=c.getContext("2d");d.strokeStyle="black";d.strokeRect(0.5,0.5,b.width+0.5,b.height+0.5);d.fillStyle="black";d.textAlign="center";d.textBaseline="middle";d.font="24px sans-serif";d.fillText(this.tileCoord_.toString(),b.width/2,b.height/2);return this.canvasByContext_[a]=
c};ol.source.DebugTileSource=function(a){ol.source.TileSource.call(this,{extent:a.extent,opaque:!1,projection:a.projection,tileGrid:a.tileGrid});this.tileCache_=new ol.TileCache};goog.inherits(ol.source.DebugTileSource,ol.source.TileSource);ol.source.DebugTileSource.prototype.canExpireCache=function(){return this.tileCache_.canExpireCache()};ol.source.DebugTileSource.prototype.expireCache=function(a){this.tileCache_.expireCache(a)};
-ol.source.DebugTileSource.prototype.getTile=function(a){var b=a.toString();if(this.tileCache_.containsKey(b))return this.tileCache_.get(b);a=new ol.DebugTile_(a,this.tileGrid);this.tileCache_.set(b,a);return a};ol.source.XYZ=function(a){var b=a.projection||ol.projection.get("EPSG:3857"),c=ol.TileUrlFunction.nullTileUrlFunction;goog.isDef(a.tileUrlFunction)?c=a.tileUrlFunction:goog.isDef(a.urls)?c=ol.TileUrlFunction.createFromTemplates(a.urls):goog.isDef(a.url)&&(c=ol.TileUrlFunction.createFromTemplate(a.url));var d=new ol.tilegrid.XYZ({maxZoom:a.maxZoom}),e=a.extent,c=goog.isDefAndNotNull(e)?ol.TileUrlFunction.withTileCoordTransform(function(b){if(a.maxZoomh||
-c<=h)return null;c=goog.math.modulo(b.x,c);return!d.getTileCoordExtent(new ol.TileCoord(b.z,c,b.y)).intersects(e)?null:new ol.TileCoord(b.z,c,h)},c):ol.TileUrlFunction.withTileCoordTransform(function(b){if(a.maxZoomd||c<=d)return null;c=goog.math.modulo(b.x,c);return new ol.TileCoord(b.z,c,d)},c);ol.source.ImageTileSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:b,tileGrid:d,tileUrlFunction:c})};
-goog.inherits(ol.source.XYZ,ol.source.ImageTileSource);ol.source.MapQuestOSM=function(){var a=[new ol.Attribution('Tiles Courtesy of MapQuest '),new ol.Attribution('Data © OpenStreetMap contributors, CC BY-SA ')];ol.source.XYZ.call(this,{attributions:a,opaque:!0,maxZoom:28,url:"http://otile{1-4}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg"})};
+ol.source.DebugTileSource.prototype.getTile=function(a){var b=a.toString();if(this.tileCache_.containsKey(b))return this.tileCache_.get(b);a=new ol.DebugTile_(a,this.tileGrid);this.tileCache_.set(b,a);return a};ol.source.XYZ=function(a){var b=a.projection||ol.projection.get("EPSG:3857"),c=ol.TileUrlFunction.nullTileUrlFunction;goog.isDef(a.tileUrlFunction)?c=a.tileUrlFunction:goog.isDef(a.urls)?c=ol.TileUrlFunction.createFromTemplates(a.urls):goog.isDef(a.url)&&(c=ol.TileUrlFunction.createFromTemplates(ol.TileUrlFunction.expandUrl(a.url)));var d=new ol.tilegrid.XYZ({maxZoom:a.maxZoom}),e=a.extent,c=goog.isDefAndNotNull(e)?ol.TileUrlFunction.withTileCoordTransform(function(b){if(a.maxZoomh||c<=h)return null;c=goog.math.modulo(b.x,c);return!d.getTileCoordExtent(new ol.TileCoord(b.z,c,b.y)).intersects(e)?null:new ol.TileCoord(b.z,c,h)},c):ol.TileUrlFunction.withTileCoordTransform(function(b){if(a.maxZoomd||c<=d)return null;c=goog.math.modulo(b.x,c);return new ol.TileCoord(b.z,c,d)},c);ol.source.ImageTileSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:b,tileGrid:d,
+tileUrlFunction:c})};goog.inherits(ol.source.XYZ,ol.source.ImageTileSource);ol.source.MapQuestOSM=function(){var a=[new ol.Attribution('Tiles Courtesy of MapQuest '),new ol.Attribution('Data © OpenStreetMap contributors, CC BY-SA ')];ol.source.XYZ.call(this,{attributions:a,opaque:!0,maxZoom:28,url:"http://otile{1-4}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg"})};
goog.inherits(ol.source.MapQuestOSM,ol.source.XYZ);ol.source.MapQuestOpenAerial=function(){var a=[new ol.Attribution('Tiles Courtesy of MapQuest '),new ol.Attribution("Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency")];ol.source.XYZ.call(this,{attributions:a,maxZoom:18,opaque:!0,url:"http://oatile{1-4}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg"})};
-goog.inherits(ol.source.MapQuestOpenAerial,ol.source.XYZ);ol.source.OpenStreetMap=function(){var a=new ol.Attribution('© OpenStreetMap contributors, CC BY-SA ');ol.source.XYZ.call(this,{attributions:[a],opaque:!0,maxZoom:18,url:"http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"})};goog.inherits(ol.source.OpenStreetMap,ol.source.XYZ);ol.source.SingleImageWMS=function(a){var b=goog.isDef(a.url)?ol.ImageUrlFunction.createWMSParams(a.url,a.params):ol.ImageUrlFunction.nullImageUrlFunction;ol.source.ImageSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,resolutions:a.resolutions,imageUrlFunction:b});this.image_=null;this.ratio_=1.5};goog.inherits(ol.source.SingleImageWMS,ol.source.ImageSource);
+goog.inherits(ol.source.MapQuestOpenAerial,ol.source.XYZ);ol.source.OpenStreetMap=function(){var a=new ol.Attribution('© OpenStreetMap contributors, CC BY-SA ');ol.source.XYZ.call(this,{attributions:[a],opaque:!0,maxZoom:18,url:"http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"})};goog.inherits(ol.source.OpenStreetMap,ol.source.XYZ);ol.source.SingleImageWMS=function(a){var b=goog.isDef(a.url)?ol.ImageUrlFunction.createWMSParams(a.url,a.params):ol.ImageUrlFunction.nullImageUrlFunction;ol.source.ImageSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,resolutions:a.resolutions,imageUrlFunction:b});this.image_=null;this.ratio_=goog.isDef(a.ratio)?a.ratio:1.5};goog.inherits(ol.source.SingleImageWMS,ol.source.ImageSource);
ol.source.SingleImageWMS.prototype.getImage=function(a,b,c){var b=this.findNearestResolution(b),d=this.image_;if(!goog.isNull(d)&&d.getResolution()==b&&d.getExtent().containsExtent(a))return d;a=new ol.Extent(a.minX,a.minY,a.maxX,a.maxY);a.scaleFromCenter(this.ratio_);var d=a.getWidth()/b,e=a.getHeight()/b,d=new ol.Size(d,e);return this.image_=this.createImage(a,b,d,c)};ol.source.StamenLayerConfig={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}};
ol.source.StamenProviderConfig={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:3,maxZoom:16}};ol.source.STAMEN_ATTRIBUTIONS=[new ol.Attribution('Map tiles by Stamen Design , under CC BY 3.0 . Data by OpenStreetMap , under CC BY SA .')];
ol.source.Stamen=function(a){var b=a.layer.indexOf("-"),b=-1==b?a.layer:a.layer.slice(0,b);goog.asserts.assert(b in ol.source.StamenProviderConfig);b=ol.source.StamenProviderConfig[b];goog.asserts.assert(a.layer in ol.source.StamenLayerConfig);var c=ol.source.StamenLayerConfig[a.layer],a=goog.isDef(a.url)?a.url:"http://{a-d}.tile.stamen.com/"+a.layer+"/{z}/{x}/{y}."+c.extension;ol.source.XYZ.call(this,{attributions:ol.source.STAMEN_ATTRIBUTIONS,maxZoom:b.maxZoom,opaque:c.opaque,url:a})};
@@ -892,15 +1008,16 @@ goog.inherits(ol.source.Stamen,ol.source.XYZ);ol.source.StaticImage=function(a){
ol.source.StaticImage.prototype.getImage=function(a){return a.intersects(this.image_.getExtent())?this.image_:null};ol.source.StaticImage.createImageFunction=function(a){return function(){return a}};ol.tilejson={};ol.tilejson.grids_=[];var grid=function(a){ol.tilejson.grids_.push(a)};goog.exportSymbol("grid",grid);ol.source.TileJSON=function(a){ol.source.ImageTileSource.call(this,{projection:ol.projection.get("EPSG:3857")});this.ready_=!1;this.deferred_=goog.net.jsloader.load(a.uri,{cleanupWhenDone:!0});this.deferred_.addCallback(this.handleTileJSONResponse,this)};goog.inherits(ol.source.TileJSON,ol.source.ImageTileSource);
ol.source.TileJSON.prototype.handleTileJSONResponse=function(){var a=ol.tilejson.grids_.pop(),b=ol.projection.get("EPSG:4326"),c,d;goog.isDef(a.bounds)?(c=a.bounds,c=new ol.Extent(c[0],c[1],c[2],c[3]),d=c.transform(ol.projection.getTransformFromProjections(b,this.getProjection())),this.setExtent(d)):d=c=null;goog.isDef(a.scheme);goog.isDef(a.scheme)&&goog.asserts.assert("xyz"==a.scheme);var e=a.minzoom||0;goog.asserts.assert(0===e);var f=a.maxzoom||22,g=new ol.tilegrid.XYZ({maxZoom:f});this.tileGrid=
g;this.tileUrlFunction=ol.TileUrlFunction.withTileCoordTransform(function(a){if(a.zc||b<=c)return null;b=goog.math.modulo(a.x,b);return!goog.isNull(d)&&!g.getTileCoordExtent(new ol.TileCoord(a.z,b,a.y)).intersects(d)?null:new ol.TileCoord(a.z,b,c)},ol.TileUrlFunction.createFromTemplates(a.tiles));if(goog.isDef(a.attribution)){b=goog.isNull(d)?b.getExtent():d;c={};var h,i;for(h=e;h<=f;++h)i=h.toString(),c[i]=[g.getTileRangeForExtentAndZ(b,h)];this.setAttributions([new ol.Attribution(a.attribution,
-c)])}this.ready_=!0;this.dispatchLoadEvent()};ol.source.TileJSON.prototype.isReady=function(){return this.ready_};ol.source.TiledWMS=function(a){goog.isDef(a.tileGrid);var b;a.urls?(b=goog.array.map(a.urls,function(b){return ol.TileUrlFunction.createWMSParams(b,a.params)}),b=ol.TileUrlFunction.createFromTileUrlFunctions(b)):b=a.url?ol.TileUrlFunction.createWMSParams(a.url,a.params):ol.TileUrlFunction.nullTileUrlFunction;var c=goog.isDef(a.params.TRANSPARENT)?a.params.TRANSPARENT:!0,d=a.extent;ol.source.ImageTileSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:d,tileGrid:a.tileGrid,
-opaque:!c,projection:a.projection,tileUrlFunction:ol.TileUrlFunction.withTileCoordTransform(function(a,b,c){if(b.getResolutions().length<=a.z)return null;var h=a.x,i=b.getTileCoordExtent(a),j=c.getExtent();d=goog.isDef(d)?d:j;!goog.isNull(d)&&(c.isGlobal()&&d.minX===j.minX&&d.maxX===j.maxX)&&(c=Math.ceil((d.maxX-d.minX)/(i.maxX-i.minX)),h=goog.math.modulo(h,c),i=b.getTileCoordExtent(new ol.TileCoord(a.z,h,a.y)));return!i.intersects(d)?null:new ol.TileCoord(a.z,h,a.y)},b)})};
-goog.inherits(ol.source.TiledWMS,ol.source.ImageTileSource);ol.tilegrid.WMTS=function(a){goog.asserts.assert(a.resolutions.length==a.matrixIds.length);this.matrixIds_=a.matrixIds;ol.tilegrid.TileGrid.call(this,{origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes})};goog.inherits(ol.tilegrid.WMTS,ol.tilegrid.TileGrid);ol.tilegrid.WMTS.prototype.getMatrixId=function(a){goog.asserts.assert(0<=a&&af&&(f=0);var f=c.styles[f].identifier,g={};goog.array.forEach(c.dimensions,function(a){var b=a.identifier,c=a["default"];goog.isDef(c)?goog.asserts.assert(0<=
-goog.array.indexOf(a.values,c)):c=a.values[0];goog.asserts.assert(goog.isDef(c));g[b]=c});var h=a.contents.tileMatrixSets;goog.asserts.assert(d in h);var i=h[d],h=ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet(i),i=ol.projection.get(i.supportedCRS),j=a.operationsMetadata.GetTile.dcp.http.get,m=goog.object.getKeys(j[0].constraints.GetEncoding.allowedValues);goog.asserts.assert(0= ol.structs.RTree.MAX_OBJECTS && found.level < ol.structs.RTree.MAX_SUB_DIVISIONS) {
+ found.divide()
+ }
+ }
+};
+ol.structs.RTree.MAX_SUB_DIVISIONS = 6;
+ol.structs.RTree.MAX_OBJECTS = 6;
+goog.provide("ol.filter.Filter");
+goog.require("ol.Feature");
+ol.filter.Filter = function(opt_filterFunction) {
+ if(goog.isDef(opt_filterFunction)) {
+ this.applies = opt_filterFunction
+ }
+};
+ol.filter.Filter.prototype.applies = goog.abstractMethod;
+goog.provide("ol.style.Symbolizer");
+goog.provide("ol.style.SymbolizerLiteral");
+goog.require("ol.Feature");
+ol.style.SymbolizerLiteral = function() {
+};
+ol.style.SymbolizerLiteral.prototype.equals = goog.abstractMethod;
+ol.style.Symbolizer = function() {
+};
+ol.style.Symbolizer.prototype.createLiteral = goog.abstractMethod;
+goog.provide("ol.style.Rule");
+goog.require("ol.Feature");
+goog.require("ol.filter.Filter");
+goog.require("ol.style.Symbolizer");
+ol.style.Rule = function(options) {
+ this.filter_ = goog.isDef(options.filter) ? options.filter : null;
+ this.symbolizers_ = goog.isDef(options.symbolizers) ? options.symbolizers : []
+};
+ol.style.Rule.prototype.applies = function(feature) {
+ return goog.isNull(this.filter_) ? true : this.filter_.applies(feature)
+};
+ol.style.Rule.prototype.getSymbolizers = function() {
+ return this.symbolizers_
+};
+goog.provide("ol.style.Style");
+goog.require("ol.Feature");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.style.Rule");
+goog.require("ol.style.SymbolizerLiteral");
+ol.style.Style = function(options) {
+ this.rules_ = goog.isDef(options.rules) ? options.rules : []
+};
+ol.style.Style.prototype.apply = function(feature) {
+ var rules = this.rules_, literals = [], rule, symbolizers;
+ for(var i = 0, ii = rules.length;i < ii;++i) {
+ rule = rules[i];
+ if(rule.applies(feature)) {
+ symbolizers = rule.getSymbolizers();
+ for(var j = 0, jj = symbolizers.length;j < jj;++j) {
+ literals.push(symbolizers[j].createLiteral(feature))
+ }
+ }
+ }
+ return literals
+};
+ol.style.Style.applyDefaultStyle = function(feature) {
+ var geometry = feature.getGeometry(), symbolizerLiterals = [];
+ if(!goog.isNull(geometry)) {
+ var type = geometry.getType();
+ if(type === ol.geom.GeometryType.POINT || type === ol.geom.GeometryType.MULTIPOINT) {
+ symbolizerLiterals.push(ol.style.ShapeDefaults)
+ }else {
+ if(type === ol.geom.GeometryType.LINESTRING || type === ol.geom.GeometryType.MULTILINESTRING) {
+ symbolizerLiterals.push(ol.style.LineDefaults)
+ }else {
+ if(type === ol.geom.GeometryType.LINEARRING || type === ol.geom.GeometryType.POLYGON || type === ol.geom.GeometryType.MULTIPOLYGON) {
+ symbolizerLiterals.push(ol.style.PolygonDefaults)
+ }
+ }
+ }
+ }
+ return symbolizerLiterals
+};
+goog.provide("ol.filter.Extent");
+goog.require("ol.Extent");
+goog.require("ol.filter.Filter");
+ol.filter.Extent = function(extent) {
+ goog.base(this);
+ this.extent_ = extent
+};
+goog.inherits(ol.filter.Extent, ol.filter.Filter);
+ol.filter.Extent.prototype.getExtent = function() {
+ return this.extent_
+};
+ol.filter.Extent.prototype.applies = function(feature) {
+ return feature.getGeometry().getBounds().intersects(this.extent_)
+};
+goog.provide("ol.filter.Geometry");
+goog.provide("ol.filter.GeometryType");
+goog.require("ol.filter.Filter");
+goog.require("ol.geom.GeometryType");
+ol.filter.Geometry = function(type) {
+ goog.base(this);
+ this.type_ = type
+};
+goog.inherits(ol.filter.Geometry, ol.filter.Filter);
+ol.filter.Geometry.prototype.applies = function(feature) {
+ var geometry = feature.getGeometry();
+ return goog.isNull(geometry) ? false : geometry.getType() === this.type_
+};
+ol.filter.Geometry.prototype.getType = function() {
+ return this.type_
+};
+goog.provide("ol.filter.Logical");
+goog.provide("ol.filter.LogicalOperator");
+goog.require("ol.filter.Filter");
+ol.filter.Logical = function(filters, operator) {
+ goog.base(this);
+ this.filters_ = filters;
+ this.operator = operator
+};
+goog.inherits(ol.filter.Logical, ol.filter.Filter);
+ol.filter.Logical.prototype.applies = function(feature) {
+ var filters = this.filters_, i = 0, ii = filters.length, operator = this.operator, start = operator(true, false), result = start;
+ while(result === start && i < ii) {
+ result = operator(result, filters[i].applies(feature));
+ ++i
+ }
+ return result
+};
+ol.filter.Logical.prototype.getFilters = function() {
+ return this.filters_
+};
+ol.filter.LogicalOperator = {AND:function(a, b) {
+ return a && b
+}, OR:function(a, b) {
+ return a || b
+}};
+goog.provide("ol.layer.Vector");
+goog.require("goog.events.EventType");
+goog.require("ol.Feature");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.layer.Layer");
+goog.require("ol.projection");
+goog.require("ol.source.Vector");
+goog.require("ol.structs.RTree");
+goog.require("ol.style.Style");
+ol.layer.FeatureCache = function() {
+ this.idLookup_;
+ this.geometryTypeIndex_;
+ this.rTree_;
+ this.clear()
+};
+ol.layer.FeatureCache.prototype.clear = function() {
+ this.idLookup_ = {};
+ var geometryTypeIndex = {};
+ for(var key in ol.geom.GeometryType) {
+ geometryTypeIndex[ol.geom.GeometryType[key]] = {}
+ }
+ this.geometryTypeIndex_ = geometryTypeIndex;
+ this.rTree_ = new ol.structs.RTree
+};
+ol.layer.FeatureCache.prototype.add = function(feature) {
+ var id = goog.getUid(feature).toString(), geometry = feature.getGeometry();
+ this.idLookup_[id] = feature;
+ if(!goog.isNull(geometry)) {
+ var geometryType = geometry.getType();
+ this.geometryTypeIndex_[geometryType][id] = feature;
+ this.rTree_.put(geometry.getBounds(), feature, geometryType)
+ }
+};
+ol.layer.FeatureCache.prototype.getFeaturesObject = function(opt_filter) {
+ var i, features;
+ if(!goog.isDef(opt_filter)) {
+ features = this.idLookup_
+ }else {
+ if(opt_filter instanceof ol.filter.Geometry) {
+ features = this.geometryTypeIndex_[opt_filter.getType()]
+ }else {
+ if(opt_filter instanceof ol.filter.Extent) {
+ features = this.rTree_.find(opt_filter.getExtent())
+ }else {
+ if(opt_filter instanceof ol.filter.Logical && opt_filter.operator === ol.filter.LogicalOperator.AND) {
+ var filters = opt_filter.getFilters();
+ if(filters.length === 2) {
+ var filter, geometryFilter, extentFilter;
+ for(i = 0;i <= 1;++i) {
+ filter = filters[i];
+ if(filter instanceof ol.filter.Geometry) {
+ geometryFilter = filter
+ }else {
+ if(filter instanceof ol.filter.Extent) {
+ extentFilter = filter
+ }
+ }
+ }
+ if(extentFilter && geometryFilter) {
+ features = this.rTree_.find(extentFilter.getExtent(), geometryFilter.getType())
+ }
+ }
+ }
+ }
+ }
+ if(!goog.isDef(features)) {
+ var candidates = this.idLookup_, feature;
+ features = {};
+ for(i in candidates) {
+ feature = candidates[i];
+ if(opt_filter.applies(feature) === true) {
+ features[i] = feature
+ }
+ }
+ }
+ }
+ return features
+};
+ol.layer.FeatureCache.prototype.getFeaturesByGeometryType_ = function(filter) {
+ return goog.object.getValues(this.geometryTypeIndex_[filter.getType()])
+};
+ol.layer.FeatureCache.prototype.getFeaturesByIds_ = function(ids) {
+ var len = ids.length, features = new Array(len), i;
+ for(i = 0;i < len;++i) {
+ features[i] = this.idLookup_[ids[i]]
+ }
+ return features
+};
+ol.layer.Vector = function(layerOptions) {
+ goog.base(this, layerOptions);
+ this.style_ = goog.isDef(layerOptions.style) ? layerOptions.style : null;
+ this.featureCache_ = new ol.layer.FeatureCache;
+ this.pointVertices_ = new ol.geom.SharedVertices;
+ this.lineVertices_ = new ol.geom.SharedVertices;
+ this.polygonVertices_ = new ol.geom.SharedVertices
+};
+goog.inherits(ol.layer.Vector, ol.layer.Layer);
+ol.layer.Vector.prototype.addFeatures = function(features) {
+ for(var i = 0, ii = features.length;i < ii;++i) {
+ this.featureCache_.add(features[i])
+ }
+ this.dispatchEvent(goog.events.EventType.CHANGE)
+};
+ol.layer.Vector.prototype.getVectorSource = function() {
+ return this.getSource()
+};
+ol.layer.Vector.prototype.getFeatures = function(opt_filter) {
+ return goog.object.getValues(this.featureCache_.getFeaturesObject(opt_filter))
+};
+ol.layer.Vector.prototype.getFeaturesObject = function(opt_filter) {
+ return this.featureCache_.getFeaturesObject(opt_filter)
+};
+ol.layer.Vector.prototype.getLineVertices = function() {
+ return this.lineVertices_
+};
+ol.layer.Vector.prototype.getPointVertices = function() {
+ return this.pointVertices_
+};
+ol.layer.Vector.prototype.getPolygonVertices = function() {
+ return this.polygonVertices_
+};
+ol.layer.Vector.prototype.groupFeaturesBySymbolizerLiteral = function(features) {
+ var uniqueLiterals = {}, featuresBySymbolizer = [], style = this.style_, i, j, l, feature, literals, numLiterals, literal, uniqueLiteral, key;
+ for(i in features) {
+ feature = features[i];
+ literals = feature.getSymbolizerLiterals();
+ if(goog.isNull(literals)) {
+ literals = goog.isNull(style) ? ol.style.Style.applyDefaultStyle(feature) : style.apply(feature)
+ }
+ numLiterals = literals.length;
+ for(j = 0;j < numLiterals;++j) {
+ literal = literals[j];
+ for(l in uniqueLiterals) {
+ uniqueLiteral = featuresBySymbolizer[uniqueLiterals[l]][1];
+ if(literal.equals(uniqueLiteral)) {
+ literal = uniqueLiteral;
+ break
+ }
+ }
+ key = goog.getUid(literal);
+ if(!goog.object.containsKey(uniqueLiterals, key)) {
+ uniqueLiterals[key] = featuresBySymbolizer.length;
+ featuresBySymbolizer.push([[], literal])
+ }
+ featuresBySymbolizer[uniqueLiterals[key]][0].push(feature)
+ }
+ }
+ return featuresBySymbolizer
+};
+ol.layer.Vector.prototype.parseFeatures = function(data, parser, projection) {
+ var features;
+ var lookup = {"point":this.pointVertices_, "linestring":this.lineVertices_, "polygon":this.polygonVertices_, "multipoint":this.pointVertices_, "multilinstring":this.lineVertices_, "multipolygon":this.polygonVertices_};
+ var callback = function(feature, type) {
+ return lookup[type]
+ };
+ if(typeof data === "string") {
+ goog.asserts.assert(typeof parser.readFeaturesFromString === "function", "Expected a parser with readFeaturesFromString method.");
+ features = parser.readFeaturesFromString(data, {callback:callback})
+ }else {
+ if(typeof data === "object") {
+ goog.asserts.assert(typeof parser.readFeaturesFromObject === "function", "Expected a parser with a readFeaturesFromObject method.");
+ features = parser.readFeaturesFromObject(data, {callback:callback})
+ }else {
+ throw new Error("Data type not supported: " + data);
+ }
+ }
+ var sourceProjection = this.getSource().getProjection();
+ var transform = ol.projection.getTransform(sourceProjection, projection);
+ transform(this.pointVertices_.coordinates, this.pointVertices_.coordinates, this.pointVertices_.getDimension());
+ transform(this.lineVertices_.coordinates, this.lineVertices_.coordinates, this.lineVertices_.getDimension());
+ transform(this.polygonVertices_.coordinates, this.polygonVertices_.coordinates, this.polygonVertices_.getDimension());
+ this.addFeatures(features)
+};
+goog.require("ol.filter.Extent");
+goog.require("ol.filter.Geometry");
+goog.require("ol.filter.Logical");
+goog.require("ol.filter.LogicalOperator");
+goog.require("ol.geom.GeometryType");
goog.provide("ol.renderer.canvas.Layer");
goog.require("ol.layer.Layer");
goog.require("ol.renderer.Layer");
@@ -14551,24 +15131,1168 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame = function(frameState, layerS
goog.vec.Mat4.scale(transform, tileResolution / view2DState.resolution, tileResolution / view2DState.resolution, 1);
goog.vec.Mat4.translate(transform, (origin.x - center.x) / tileResolution, (center.y - origin.y) / tileResolution, 0)
};
+goog.provide("ol.structs.LRUCache");
+goog.require("goog.asserts");
+goog.require("goog.object");
+ol.structs.LRUCache = function() {
+ this.count_ = 0;
+ this.entries_ = {};
+ this.oldest_ = null;
+ this.newest_ = null
+};
+ol.structs.LRUCache.prototype.assertValid = function() {
+ if(this.count_ === 0) {
+ goog.asserts.assert(goog.object.isEmpty(this.entries_));
+ goog.asserts.assert(goog.isNull(this.oldest_));
+ goog.asserts.assert(goog.isNull(this.newest_))
+ }else {
+ goog.asserts.assert(goog.object.getCount(this.entries_) == this.count_);
+ goog.asserts.assert(!goog.isNull(this.oldest_));
+ goog.asserts.assert(goog.isNull(this.oldest_.older));
+ goog.asserts.assert(!goog.isNull(this.newest_));
+ goog.asserts.assert(goog.isNull(this.newest_.newer));
+ var i, entry;
+ var older = null;
+ i = 0;
+ for(entry = this.oldest_;!goog.isNull(entry);entry = entry.newer) {
+ goog.asserts.assert(entry.older === older);
+ older = entry;
+ ++i
+ }
+ goog.asserts.assert(i == this.count_);
+ var newer = null;
+ i = 0;
+ for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) {
+ goog.asserts.assert(entry.newer === newer);
+ newer = entry;
+ ++i
+ }
+ goog.asserts.assert(i == this.count_)
+ }
+};
+ol.structs.LRUCache.prototype.clear = function() {
+ this.count_ = 0;
+ this.entries_ = {};
+ this.oldest_ = null;
+ this.newest_ = null
+};
+ol.structs.LRUCache.prototype.containsKey = function(key) {
+ return this.entries_.hasOwnProperty(key)
+};
+ol.structs.LRUCache.prototype.forEach = function(f, opt_obj) {
+ var entry = this.oldest_;
+ while(!goog.isNull(entry)) {
+ f.call(opt_obj, entry.value_, entry.key_, this);
+ entry = entry.newer
+ }
+};
+ol.structs.LRUCache.prototype.get = function(key) {
+ var entry = this.entries_[key];
+ goog.asserts.assert(goog.isDef(entry));
+ if(entry === this.newest_) {
+ return entry.value_
+ }else {
+ if(entry === this.oldest_) {
+ this.oldest_ = this.oldest_.newer;
+ this.oldest_.older = null
+ }else {
+ entry.newer.older = entry.older;
+ entry.older.newer = entry.newer
+ }
+ }
+ entry.newer = null;
+ entry.older = this.newest_;
+ this.newest_.newer = entry;
+ this.newest_ = entry;
+ return entry.value_
+};
+ol.structs.LRUCache.prototype.getCount = function() {
+ return this.count_
+};
+ol.structs.LRUCache.prototype.getKeys = function() {
+ var keys = new Array(this.count_);
+ var i = 0;
+ var entry;
+ for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) {
+ keys[i++] = entry.key_
+ }
+ goog.asserts.assert(i == this.count_);
+ return keys
+};
+ol.structs.LRUCache.prototype.getValues = function() {
+ var values = new Array(this.count_);
+ var i = 0;
+ var entry;
+ for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) {
+ values[i++] = entry.value_
+ }
+ goog.asserts.assert(i == this.count_);
+ return values
+};
+ol.structs.LRUCache.prototype.peekLast = function() {
+ goog.asserts.assert(!goog.isNull(this.oldest_));
+ return this.oldest_.value_
+};
+ol.structs.LRUCache.prototype.peekLastKey = function() {
+ goog.asserts.assert(!goog.isNull(this.oldest_));
+ return this.oldest_.key_
+};
+ol.structs.LRUCache.prototype.pop = function() {
+ goog.asserts.assert(!goog.isNull(this.oldest_));
+ goog.asserts.assert(!goog.isNull(this.newest_));
+ var entry = this.oldest_;
+ goog.asserts.assert(entry.key_ in this.entries_);
+ delete this.entries_[entry.key_];
+ if(!goog.isNull(entry.newer)) {
+ entry.newer.older = null
+ }
+ this.oldest_ = entry.newer;
+ if(goog.isNull(this.oldest_)) {
+ this.newest_ = null
+ }
+ --this.count_;
+ return entry.value_
+};
+ol.structs.LRUCache.prototype.set = function(key, value) {
+ goog.asserts.assert(!(key in {}));
+ goog.asserts.assert(!(key in this.entries_));
+ var entry = {key_:key, newer:null, older:this.newest_, value_:value};
+ if(goog.isNull(this.newest_)) {
+ this.oldest_ = entry
+ }else {
+ this.newest_.newer = entry
+ }
+ this.newest_ = entry;
+ this.entries_[key] = entry;
+ ++this.count_
+};
+ol.structs.LRUCacheEntry;
+goog.provide("ol.TileCache");
+goog.require("ol.Tile");
+goog.require("ol.TileRange");
+goog.require("ol.structs.LRUCache");
+ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK = 512;
+ol.TileCache = function(opt_highWaterMark) {
+ goog.base(this);
+ this.highWaterMark_ = goog.isDef(opt_highWaterMark) ? opt_highWaterMark : ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK
+};
+goog.inherits(ol.TileCache, ol.structs.LRUCache);
+ol.TileCache.prototype.canExpireCache = function() {
+ return this.getCount() > this.highWaterMark_
+};
+ol.TileCache.prototype.expireCache = function(usedTiles) {
+ var tile, zKey;
+ while(this.canExpireCache()) {
+ tile = this.peekLast();
+ zKey = tile.tileCoord.z.toString();
+ if(zKey in usedTiles && usedTiles[zKey].contains(tile.tileCoord)) {
+ break
+ }else {
+ this.pop()
+ }
+ }
+};
+goog.provide("ol.geom.LineString");
+goog.require("goog.asserts");
+goog.require("ol.Extent");
+goog.require("ol.geom.Geometry");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.geom.VertexArray");
+ol.geom.LineString = function(coordinates, opt_shared) {
+ goog.base(this);
+ goog.asserts.assert(goog.isArray(coordinates[0]));
+ var vertices = opt_shared, dimension;
+ if(!goog.isDef(vertices)) {
+ dimension = coordinates[0].length;
+ vertices = new ol.geom.SharedVertices({dimension:dimension})
+ }
+ this.vertices = vertices;
+ this.sharedId_ = vertices.add(coordinates);
+ this.dimension = vertices.getDimension();
+ goog.asserts.assert(this.dimension >= 2);
+ this.bounds_ = null
+};
+goog.inherits(ol.geom.LineString, ol.geom.Geometry);
+ol.geom.LineString.prototype.get = function(index, dim) {
+ return this.vertices.get(this.sharedId_, index, dim)
+};
+ol.geom.LineString.prototype.getCoordinates = function() {
+ var count = this.getCount();
+ var coordinates = new Array(count);
+ var vertex;
+ for(var i = 0;i < count;++i) {
+ vertex = new Array(this.dimension);
+ for(var j = 0;j < this.dimension;++j) {
+ vertex[j] = this.get(i, j)
+ }
+ coordinates[i] = vertex
+ }
+ return coordinates
+};
+ol.geom.LineString.prototype.getCount = function() {
+ return this.vertices.getCount(this.sharedId_)
+};
+ol.geom.LineString.prototype.getBounds = function() {
+ if(goog.isNull(this.bounds_)) {
+ var dimension = this.dimension, vertices = this.vertices, id = this.sharedId_, count = vertices.getCount(id), start = vertices.getStart(id), end = start + count * dimension, coordinates = vertices.coordinates, minX, maxX, minY, maxY, x, y, i;
+ minX = maxX = coordinates[start];
+ minY = maxY = coordinates[start + 1];
+ for(i = start + dimension;i < end;i += dimension) {
+ x = coordinates[i];
+ y = coordinates[i + 1];
+ if(x < minX) {
+ minX = x
+ }else {
+ if(x > maxX) {
+ maxX = x
+ }
+ }
+ if(y < minY) {
+ minY = y
+ }else {
+ if(y > maxY) {
+ maxY = y
+ }
+ }
+ }
+ this.bounds_ = new ol.Extent(minX, minY, maxX, maxY)
+ }
+ return this.bounds_
+};
+ol.geom.LineString.prototype.getType = function() {
+ return ol.geom.GeometryType.LINESTRING
+};
+ol.geom.LineString.prototype.getSharedId = function() {
+ return this.sharedId_
+};
+goog.provide("ol.geom.AbstractCollection");
+goog.require("ol.Extent");
+goog.require("ol.geom.Geometry");
+ol.geom.AbstractCollection = function() {
+ goog.base(this);
+ this.dimension;
+ this.components = null;
+ this.bounds = null
+};
+goog.inherits(ol.geom.AbstractCollection, ol.geom.Geometry);
+ol.geom.AbstractCollection.prototype.getBounds = function() {
+ if(goog.isNull(this.bounds)) {
+ var minX, minY = minX = Number.POSITIVE_INFINITY, maxX, maxY = maxX = Number.NEGATIVE_INFINITY, components = this.components, len = components.length, bounds, i;
+ for(i = 0;i < len;++i) {
+ bounds = components[i].getBounds();
+ minX = Math.min(bounds.minX, minX);
+ minY = Math.min(bounds.minY, minY);
+ maxX = Math.max(bounds.maxX, maxX);
+ maxY = Math.max(bounds.maxY, maxY)
+ }
+ this.bounds = new ol.Extent(minX, minY, maxX, maxY)
+ }
+ return this.bounds
+};
+ol.geom.AbstractCollection.prototype.getCoordinates = function() {
+ var count = this.components.length;
+ var coordinates = new Array(count);
+ for(var i = 0;i < count;++i) {
+ coordinates[i] = this.components[i].getCoordinates()
+ }
+ return coordinates
+};
+ol.geom.AbstractCollection.prototype.getType = goog.abstractMethod;
+goog.provide("ol.geom.MultiLineString");
+goog.require("goog.asserts");
+goog.require("ol.geom.AbstractCollection");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.LineString");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.geom.VertexArray");
+ol.geom.MultiLineString = function(coordinates, opt_shared) {
+ goog.base(this);
+ goog.asserts.assert(goog.isArray(coordinates[0][0]));
+ var vertices = opt_shared, dimension;
+ if(!goog.isDef(vertices)) {
+ dimension = coordinates[0][0].length;
+ vertices = new ol.geom.SharedVertices({dimension:dimension})
+ }
+ var numParts = coordinates.length;
+ this.components = new Array(numParts);
+ for(var i = 0;i < numParts;++i) {
+ this.components[i] = new ol.geom.LineString(coordinates[i], vertices)
+ }
+ this.dimension = vertices.getDimension()
+};
+goog.inherits(ol.geom.MultiLineString, ol.geom.AbstractCollection);
+ol.geom.MultiLineString.prototype.getType = function() {
+ return ol.geom.GeometryType.MULTILINESTRING
+};
+ol.geom.MultiLineString.fromParts = function(geometries, opt_shared) {
+ var count = geometries.length;
+ var coordinates = new Array(count);
+ for(var i = 0;i < count;++i) {
+ coordinates[i] = geometries[i].getCoordinates()
+ }
+ return new ol.geom.MultiLineString(coordinates, opt_shared)
+};
+goog.provide("ol.geom.Point");
+goog.require("goog.asserts");
+goog.require("ol.Extent");
+goog.require("ol.geom.Geometry");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.geom.Vertex");
+ol.geom.Point = function(coordinates, opt_shared) {
+ goog.base(this);
+ var vertices = opt_shared, dimension;
+ if(!goog.isDef(vertices)) {
+ dimension = coordinates.length;
+ vertices = new ol.geom.SharedVertices({dimension:dimension})
+ }
+ this.vertices = vertices;
+ this.sharedId_ = vertices.add([coordinates]);
+ this.dimension = vertices.getDimension();
+ goog.asserts.assert(this.dimension >= 2);
+ this.bounds_ = null
+};
+goog.inherits(ol.geom.Point, ol.geom.Geometry);
+ol.geom.Point.prototype.get = function(dim) {
+ return this.vertices.get(this.sharedId_, 0, dim)
+};
+ol.geom.Point.prototype.getBounds = function() {
+ if(goog.isNull(this.bounds_)) {
+ var x = this.get(0), y = this.get(1);
+ this.bounds_ = new ol.Extent(x, y, x, y)
+ }
+ return this.bounds_
+};
+ol.geom.Point.prototype.getCoordinates = function() {
+ var coordinates = new Array(this.dimension);
+ for(var i = 0;i < this.dimension;++i) {
+ coordinates[i] = this.get(i)
+ }
+ return coordinates
+};
+ol.geom.Point.prototype.getType = function() {
+ return ol.geom.GeometryType.POINT
+};
+ol.geom.Point.prototype.getSharedId = function() {
+ return this.sharedId_
+};
+goog.provide("ol.geom.MultiPoint");
+goog.require("goog.asserts");
+goog.require("ol.geom.AbstractCollection");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.Point");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.geom.VertexArray");
+ol.geom.MultiPoint = function(coordinates, opt_shared) {
+ goog.base(this);
+ goog.asserts.assert(goog.isArray(coordinates[0]));
+ var vertices = opt_shared, dimension;
+ if(!goog.isDef(vertices)) {
+ dimension = coordinates[0].length;
+ vertices = new ol.geom.SharedVertices({dimension:dimension})
+ }
+ this.vertices = vertices;
+ var numParts = coordinates.length;
+ this.components = new Array(numParts);
+ for(var i = 0;i < numParts;++i) {
+ this.components[i] = new ol.geom.Point(coordinates[i], vertices)
+ }
+ this.dimension = vertices.getDimension()
+};
+goog.inherits(ol.geom.MultiPoint, ol.geom.AbstractCollection);
+ol.geom.MultiPoint.prototype.getType = function() {
+ return ol.geom.GeometryType.MULTIPOINT
+};
+ol.geom.MultiPoint.fromParts = function(geometries, opt_shared) {
+ var count = geometries.length;
+ var coordinates = new Array(count);
+ for(var i = 0;i < count;++i) {
+ coordinates[i] = geometries[i].getCoordinates()
+ }
+ return new ol.geom.MultiPoint(coordinates, opt_shared)
+};
+goog.provide("ol.geom.LinearRing");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.LineString");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.geom.VertexArray");
+ol.geom.LinearRing = function(coordinates, opt_shared) {
+ goog.base(this, coordinates, opt_shared)
+};
+goog.inherits(ol.geom.LinearRing, ol.geom.LineString);
+ol.geom.LinearRing.prototype.getType = function() {
+ return ol.geom.GeometryType.LINEARRING
+};
+goog.provide("ol.geom.Polygon");
+goog.require("goog.asserts");
+goog.require("ol.Extent");
+goog.require("ol.geom.Geometry");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.LinearRing");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.geom.VertexArray");
+ol.geom.Polygon = function(coordinates, opt_shared) {
+ goog.base(this);
+ goog.asserts.assert(goog.isArray(coordinates[0][0]));
+ var vertices = opt_shared, dimension;
+ if(!goog.isDef(vertices)) {
+ dimension = coordinates[0][0].length;
+ vertices = new ol.geom.SharedVertices({dimension:dimension})
+ }
+ this.vertices = vertices;
+ var numRings = coordinates.length;
+ this.rings = new Array(numRings);
+ for(var i = 0;i < numRings;++i) {
+ this.rings[i] = new ol.geom.LinearRing(coordinates[i], vertices)
+ }
+ this.dimension = vertices.getDimension();
+ goog.asserts.assert(this.dimension >= 2);
+ this.bounds_ = null
+};
+goog.inherits(ol.geom.Polygon, ol.geom.Geometry);
+ol.geom.Polygon.prototype.getBounds = function() {
+ return this.rings[0].getBounds()
+};
+ol.geom.Polygon.prototype.getCoordinates = function() {
+ var count = this.rings.length;
+ var coordinates = new Array(count);
+ for(var i = 0;i < count;++i) {
+ coordinates[i] = this.rings[i].getCoordinates()
+ }
+ return coordinates
+};
+ol.geom.Polygon.prototype.getType = function() {
+ return ol.geom.GeometryType.POLYGON
+};
+goog.provide("ol.geom.MultiPolygon");
+goog.require("goog.asserts");
+goog.require("ol.geom.AbstractCollection");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.Polygon");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.geom.VertexArray");
+ol.geom.MultiPolygon = function(coordinates, opt_shared) {
+ goog.base(this);
+ goog.asserts.assert(goog.isArray(coordinates[0][0][0]));
+ var vertices = opt_shared, dimension;
+ if(!goog.isDef(vertices)) {
+ dimension = coordinates[0][0][0].length;
+ vertices = new ol.geom.SharedVertices({dimension:dimension})
+ }
+ var numParts = coordinates.length;
+ this.components = new Array(numParts);
+ for(var i = 0;i < numParts;++i) {
+ this.components[i] = new ol.geom.Polygon(coordinates[i], vertices)
+ }
+ this.dimension = vertices.getDimension()
+};
+goog.inherits(ol.geom.MultiPolygon, ol.geom.AbstractCollection);
+ol.geom.MultiPolygon.prototype.getType = function() {
+ return ol.geom.GeometryType.MULTIPOLYGON
+};
+ol.geom.MultiPolygon.fromParts = function(geometries, opt_shared) {
+ var count = geometries.length;
+ var coordinates = new Array(count);
+ for(var i = 0;i < count;++i) {
+ coordinates[i] = geometries[i].getCoordinates()
+ }
+ return new ol.geom.MultiPolygon(coordinates, opt_shared)
+};
+goog.provide("ol.Expression");
+goog.provide("ol.ExpressionLiteral");
+ol.Expression = function(source) {
+ this.source_ = source
+};
+ol.Expression.prototype.evaluate = function(opt_thisArg, opt_scope) {
+ var thisArg = goog.isDef(opt_thisArg) ? opt_thisArg : goog.global, scope = goog.isDef(opt_scope) ? opt_scope : goog.global, names = [], values = [];
+ for(var name in scope) {
+ names.push(name);
+ values.push(scope[name])
+ }
+ var evaluator = new Function(names.join(","), "return " + this.source_);
+ return evaluator.apply(thisArg, values)
+};
+ol.ExpressionLiteral = function(value) {
+ this.value_ = value
+};
+goog.inherits(ol.ExpressionLiteral, ol.Expression);
+ol.ExpressionLiteral.prototype.evaluate = function(opt_thisArg, opt_scope) {
+ return this.value_
+};
+goog.provide("ol.style.Point");
+goog.provide("ol.style.PointLiteral");
+goog.require("ol.style.Symbolizer");
+goog.require("ol.style.SymbolizerLiteral");
+ol.style.PointLiteral = function() {
+ goog.base(this)
+};
+goog.inherits(ol.style.PointLiteral, ol.style.SymbolizerLiteral);
+ol.style.Point = function() {
+ goog.base(this)
+};
+goog.inherits(ol.style.Point, ol.style.Symbolizer);
+ol.style.Point.prototype.createLiteral = goog.abstractMethod;
+goog.provide("ol.style.Icon");
+goog.provide("ol.style.IconLiteral");
+goog.provide("ol.style.IconType");
+goog.require("ol.Expression");
+goog.require("ol.ExpressionLiteral");
+goog.require("ol.style.Point");
+goog.require("ol.style.PointLiteral");
+ol.style.IconLiteralOptions;
+ol.style.IconLiteral = function(config) {
+ this.url = config.url;
+ this.width = config.width;
+ this.height = config.height;
+ this.opacity = config.opacity;
+ this.rotation = config.rotation
+};
+goog.inherits(ol.style.IconLiteral, ol.style.PointLiteral);
+ol.style.IconLiteral.prototype.equals = function(iconLiteral) {
+ return this.url == iconLiteral.type && this.width == iconLiteral.width && this.height == iconLiteral.height && this.opacity == iconLiteral.opacity && this.rotation == iconLiteral.rotation
+};
+ol.style.Icon = function(options) {
+ goog.asserts.assert(options.url, "url must be set");
+ this.url_ = options.url instanceof ol.Expression ? options.url : new ol.ExpressionLiteral(options.url);
+ this.width_ = !goog.isDef(options.width) ? null : options.width instanceof ol.Expression ? options.width : new ol.ExpressionLiteral(options.width);
+ this.height_ = !goog.isDef(options.height) ? null : options.height instanceof ol.Expression ? options.height : new ol.ExpressionLiteral(options.height);
+ this.opacity_ = !goog.isDef(options.opacity) ? new ol.ExpressionLiteral(ol.style.IconDefaults.opacity) : options.opacity instanceof ol.Expression ? options.opacity : new ol.ExpressionLiteral(options.opacity);
+ this.rotation_ = !goog.isDef(options.rotation) ? new ol.ExpressionLiteral(ol.style.IconDefaults.rotation) : options.rotation instanceof ol.Expression ? options.rotation : new ol.ExpressionLiteral(options.rotation)
+};
+ol.style.Icon.prototype.createLiteral = function(feature) {
+ var attrs = feature.getAttributes();
+ var url = this.url_.evaluate(feature, attrs);
+ goog.asserts.assert(goog.isString(url) && url != "#", "url must be a string");
+ var width = goog.isNull(this.width_) ? undefined : this.width_.evaluate(feature, attrs);
+ goog.asserts.assert(!goog.isDef(width) || goog.isNumber(width), "width must be undefined or a number");
+ var height = goog.isNull(this.height_) ? undefined : this.height_.evaluate(feature, attrs);
+ goog.asserts.assert(!goog.isDef(height) || goog.isNumber(height), "height must be undefined or a number");
+ var opacity = this.opacity_.evaluate(feature, attrs);
+ goog.asserts.assertNumber(opacity, "opacity must be a number");
+ var rotation = this.opacity_.evaluate(feature, attrs);
+ goog.asserts.assertNumber(rotation, "rotation must be a number");
+ return new ol.style.IconLiteral({url:url, width:width, height:height, opacity:opacity, rotation:rotation})
+};
+ol.style.IconDefaults = new ol.style.IconLiteral({url:"#", opacity:1, rotation:0});
+goog.provide("ol.style.Line");
+goog.provide("ol.style.LineLiteral");
+goog.require("ol.Expression");
+goog.require("ol.ExpressionLiteral");
+goog.require("ol.style.Symbolizer");
+goog.require("ol.style.SymbolizerLiteral");
+ol.style.LineLiteralOptions;
+ol.style.LineLiteral = function(config) {
+ goog.base(this);
+ goog.asserts.assertString(config.strokeColor, "strokeColor must be a string");
+ this.strokeColor = config.strokeColor;
+ goog.asserts.assertNumber(config.strokeWidth, "strokeWidth must be a number");
+ this.strokeWidth = config.strokeWidth;
+ goog.asserts.assertNumber(config.opacity, "opacity must be a number");
+ this.opacity = config.opacity
+};
+goog.inherits(ol.style.LineLiteral, ol.style.SymbolizerLiteral);
+ol.style.LineLiteral.prototype.equals = function(lineLiteral) {
+ return this.strokeColor == lineLiteral.strokeColor && this.strokeWidth == lineLiteral.strokeWidth && this.opacity == lineLiteral.opacity
+};
+ol.style.Line = function(options) {
+ goog.base(this);
+ this.strokeColor_ = !goog.isDef(options.strokeColor) ? new ol.ExpressionLiteral(ol.style.LineDefaults.strokeColor) : options.strokeColor instanceof ol.Expression ? options.strokeColor : new ol.ExpressionLiteral(options.strokeColor);
+ this.strokeWidth_ = !goog.isDef(options.strokeWidth) ? new ol.ExpressionLiteral(ol.style.LineDefaults.strokeWidth) : options.strokeWidth instanceof ol.Expression ? options.strokeWidth : new ol.ExpressionLiteral(options.strokeWidth);
+ this.opacity_ = !goog.isDef(options.opacity) ? new ol.ExpressionLiteral(ol.style.LineDefaults.opacity) : options.opacity instanceof ol.Expression ? options.opacity : new ol.ExpressionLiteral(options.opacity)
+};
+goog.inherits(ol.style.Line, ol.style.Symbolizer);
+ol.style.Line.prototype.createLiteral = function(opt_feature) {
+ var attrs, feature = opt_feature;
+ if(goog.isDef(feature)) {
+ attrs = feature.getAttributes()
+ }
+ var strokeColor = this.strokeColor_.evaluate(feature, attrs);
+ goog.asserts.assertString(strokeColor, "strokeColor must be a string");
+ var strokeWidth = this.strokeWidth_.evaluate(feature, attrs);
+ goog.asserts.assertNumber(strokeWidth, "strokeWidth must be a number");
+ var opacity = this.opacity_.evaluate(feature, attrs);
+ goog.asserts.assertNumber(opacity, "opacity must be a number");
+ return new ol.style.LineLiteral({strokeColor:strokeColor, strokeWidth:strokeWidth, opacity:opacity})
+};
+ol.style.LineDefaults = new ol.style.LineLiteral({strokeColor:"#696969", strokeWidth:1.5, opacity:0.75});
+goog.provide("ol.style.Polygon");
+goog.provide("ol.style.PolygonLiteral");
+goog.require("ol.Expression");
+goog.require("ol.ExpressionLiteral");
+goog.require("ol.style.Symbolizer");
+goog.require("ol.style.SymbolizerLiteral");
+ol.style.PolygonLiteralOptions;
+ol.style.PolygonLiteral = function(config) {
+ goog.base(this);
+ this.fillColor = config.fillColor;
+ if(goog.isDef(config.fillColor)) {
+ goog.asserts.assertString(config.fillColor, "fillColor must be a string")
+ }
+ this.strokeColor = config.strokeColor;
+ if(goog.isDef(this.strokeColor)) {
+ goog.asserts.assertString(this.strokeColor, "strokeColor must be a string")
+ }
+ this.strokeWidth = config.strokeWidth;
+ if(goog.isDef(this.strokeWidth)) {
+ goog.asserts.assertNumber(this.strokeWidth, "strokeWidth must be a number")
+ }
+ goog.asserts.assert(goog.isDef(this.fillColor) || goog.isDef(this.strokeColor) && goog.isDef(this.strokeWidth), "Either fillColor or strokeColor and strokeWidth must be set");
+ goog.asserts.assertNumber(config.opacity, "opacity must be a number");
+ this.opacity = config.opacity
+};
+goog.inherits(ol.style.PolygonLiteral, ol.style.SymbolizerLiteral);
+ol.style.PolygonLiteral.prototype.equals = function(polygonLiteral) {
+ return this.fillColor == polygonLiteral.fillColor && this.strokeColor == polygonLiteral.strokeColor && this.strokeWidth == polygonLiteral.strokeWidth && this.opacity == polygonLiteral.opacity
+};
+ol.style.Polygon = function(options) {
+ goog.base(this);
+ this.fillColor_ = !goog.isDefAndNotNull(options.fillColor) ? null : options.fillColor instanceof ol.Expression ? options.fillColor : new ol.ExpressionLiteral(options.fillColor);
+ var strokeColor = null, strokeWidth = null;
+ if(goog.isDefAndNotNull(options.strokeColor) || goog.isDefAndNotNull(options.strokeWidth)) {
+ strokeColor = !goog.isDefAndNotNull(options.strokeColor) ? new ol.ExpressionLiteral(ol.style.PolygonDefaults.strokeColor) : options.strokeColor instanceof ol.Expression ? options.strokeColor : new ol.ExpressionLiteral(options.strokeColor);
+ strokeWidth = !goog.isDef(options.strokeWidth) ? new ol.ExpressionLiteral(ol.style.PolygonDefaults.strokeWidth) : options.strokeWidth instanceof ol.Expression ? options.strokeWidth : new ol.ExpressionLiteral(options.strokeWidth)
+ }
+ this.strokeColor_ = strokeColor;
+ this.strokeWidth_ = strokeWidth;
+ goog.asserts.assert(!goog.isNull(this.fillColor_) || !(goog.isNull(this.strokeColor_) && goog.isNull(this.strokeWidth_)), "Stroke or fill properties must be provided");
+ this.opacity_ = !goog.isDef(options.opacity) ? new ol.ExpressionLiteral(ol.style.PolygonDefaults.opacity) : options.opacity instanceof ol.Expression ? options.opacity : new ol.ExpressionLiteral(options.opacity)
+};
+goog.inherits(ol.style.Polygon, ol.style.Symbolizer);
+ol.style.Polygon.prototype.createLiteral = function(opt_feature) {
+ var attrs, feature = opt_feature;
+ if(goog.isDef(feature)) {
+ attrs = feature.getAttributes()
+ }
+ var fillColor = goog.isNull(this.fillColor_) ? undefined : this.fillColor_.evaluate(feature, attrs);
+ goog.asserts.assert(!goog.isDef(fillColor) || goog.isString(fillColor));
+ var strokeColor = goog.isNull(this.strokeColor_) ? undefined : this.strokeColor_.evaluate(feature, attrs);
+ goog.asserts.assert(!goog.isDef(strokeColor) || goog.isString(strokeColor));
+ var strokeWidth = goog.isNull(this.strokeWidth_) ? undefined : this.strokeWidth_.evaluate(feature, attrs);
+ goog.asserts.assert(!goog.isDef(strokeWidth) || goog.isNumber(strokeWidth));
+ goog.asserts.assert(goog.isDef(fillColor) || goog.isDef(strokeColor) && goog.isDef(strokeWidth), "either fill style or strokeColor and strokeWidth must be defined");
+ var opacity = this.opacity_.evaluate(feature, attrs);
+ goog.asserts.assertNumber(opacity, "opacity must be a number");
+ return new ol.style.PolygonLiteral({fillColor:fillColor, strokeColor:strokeColor, strokeWidth:strokeWidth, opacity:opacity})
+};
+ol.style.PolygonDefaults = new ol.style.PolygonLiteral({fillColor:"#ffffff", strokeColor:"#696969", strokeWidth:1.5, opacity:0.75});
+goog.provide("ol.style.Shape");
+goog.provide("ol.style.ShapeLiteral");
+goog.provide("ol.style.ShapeType");
+goog.require("ol.Expression");
+goog.require("ol.ExpressionLiteral");
+goog.require("ol.style.Point");
+goog.require("ol.style.PointLiteral");
+ol.style.ShapeType = {CIRCLE:"circle"};
+ol.style.ShapeLiteralOptions;
+ol.style.ShapeLiteral = function(config) {
+ goog.asserts.assertString(config.type, "type must be a string");
+ this.type = config.type;
+ goog.asserts.assertNumber(config.size, "size must be a number");
+ this.size = config.size;
+ this.fillColor = config.fillColor;
+ if(goog.isDef(config.fillColor)) {
+ goog.asserts.assertString(config.fillColor, "fillColor must be a string")
+ }
+ this.strokeColor = config.strokeColor;
+ if(goog.isDef(this.strokeColor)) {
+ goog.asserts.assertString(this.strokeColor, "strokeColor must be a string")
+ }
+ this.strokeWidth = config.strokeWidth;
+ if(goog.isDef(this.strokeWidth)) {
+ goog.asserts.assertNumber(this.strokeWidth, "strokeWidth must be a number")
+ }
+ goog.asserts.assert(goog.isDef(this.fillColor) || goog.isDef(this.strokeColor) && goog.isDef(this.strokeWidth), "Either fillColor or strokeColor and strokeWidth must be set");
+ goog.asserts.assertNumber(config.opacity, "opacity must be a number");
+ this.opacity = config.opacity
+};
+goog.inherits(ol.style.ShapeLiteral, ol.style.PointLiteral);
+ol.style.ShapeLiteral.prototype.equals = function(shapeLiteral) {
+ return this.type == shapeLiteral.type && this.size == shapeLiteral.size && this.fillColor == shapeLiteral.fillColor && this.strokeColor == shapeLiteral.strokeColor && this.strokeWidth == shapeLiteral.strokeWidth && this.opacity == shapeLiteral.opacity
+};
+ol.style.Shape = function(options) {
+ this.type_ = goog.isDef(options.type) ? options.type : ol.style.ShapeDefaults.type;
+ this.size_ = !goog.isDef(options.size) ? new ol.ExpressionLiteral(ol.style.ShapeDefaults.size) : options.size instanceof ol.Expression ? options.size : new ol.ExpressionLiteral(options.size);
+ this.fillColor_ = !goog.isDefAndNotNull(options.fillColor) ? null : options.fillColor instanceof ol.Expression ? options.fillColor : new ol.ExpressionLiteral(options.fillColor);
+ var strokeColor = null, strokeWidth = null;
+ if(goog.isDefAndNotNull(options.strokeColor) || goog.isDefAndNotNull(options.strokeWidth)) {
+ strokeColor = !goog.isDefAndNotNull(options.strokeColor) ? new ol.ExpressionLiteral(ol.style.ShapeDefaults.strokeColor) : options.strokeColor instanceof ol.Expression ? options.strokeColor : new ol.ExpressionLiteral(options.strokeColor);
+ strokeWidth = !goog.isDef(options.strokeWidth) ? new ol.ExpressionLiteral(ol.style.ShapeDefaults.strokeWidth) : options.strokeWidth instanceof ol.Expression ? options.strokeWidth : new ol.ExpressionLiteral(options.strokeWidth)
+ }
+ this.strokeColor_ = strokeColor;
+ this.strokeWidth_ = strokeWidth;
+ goog.asserts.assert(!goog.isNull(this.fillColor_) || !(goog.isNull(this.strokeColor_) && goog.isNull(this.strokeWidth_)), "Stroke or fill properties must be provided");
+ this.opacity_ = !goog.isDef(options.opacity) ? new ol.ExpressionLiteral(ol.style.ShapeDefaults.opacity) : options.opacity instanceof ol.Expression ? options.opacity : new ol.ExpressionLiteral(options.opacity)
+};
+ol.style.Shape.prototype.createLiteral = function(opt_feature) {
+ var attrs, feature = opt_feature;
+ if(goog.isDef(feature)) {
+ attrs = feature.getAttributes()
+ }
+ var size = this.size_.evaluate(feature, attrs);
+ goog.asserts.assertNumber(size, "size must be a number");
+ var fillColor = goog.isNull(this.fillColor_) ? undefined : this.fillColor_.evaluate(feature, attrs);
+ goog.asserts.assert(!goog.isDef(fillColor) || goog.isString(fillColor));
+ var strokeColor = goog.isNull(this.strokeColor_) ? undefined : this.strokeColor_.evaluate(feature, attrs);
+ goog.asserts.assert(!goog.isDef(strokeColor) || goog.isString(strokeColor));
+ var strokeWidth = goog.isNull(this.strokeWidth_) ? undefined : this.strokeWidth_.evaluate(feature, attrs);
+ goog.asserts.assert(!goog.isDef(strokeWidth) || goog.isNumber(strokeWidth));
+ goog.asserts.assert(goog.isDef(fillColor) || goog.isDef(strokeColor) && goog.isDef(strokeWidth), "either fill style or strokeColor and strokeWidth must be defined");
+ var opacity = this.opacity_.evaluate(feature, attrs);
+ goog.asserts.assertNumber(opacity, "opacity must be a number");
+ return new ol.style.ShapeLiteral({type:this.type_, size:size, fillColor:fillColor, strokeColor:strokeColor, strokeWidth:strokeWidth, opacity:opacity})
+};
+ol.style.ShapeDefaults = new ol.style.ShapeLiteral({type:ol.style.ShapeType.CIRCLE, size:5, fillColor:"#ffffff", strokeColor:"#696969", strokeWidth:1.5, opacity:0.75});
+goog.provide("ol.renderer.canvas.VectorRenderer");
+goog.require("goog.asserts");
+goog.require("goog.vec.Mat4");
+goog.require("ol.Feature");
+goog.require("ol.Pixel");
+goog.require("ol.geom.Geometry");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.LineString");
+goog.require("ol.geom.MultiLineString");
+goog.require("ol.geom.MultiPoint");
+goog.require("ol.geom.MultiPolygon");
+goog.require("ol.geom.Point");
+goog.require("ol.geom.Polygon");
+goog.require("ol.style.IconLiteral");
+goog.require("ol.style.LineLiteral");
+goog.require("ol.style.PointLiteral");
+goog.require("ol.style.PolygonLiteral");
+goog.require("ol.style.ShapeLiteral");
+goog.require("ol.style.ShapeType");
+goog.require("ol.style.SymbolizerLiteral");
+ol.renderer.canvas.VectorRenderer = function(canvas, transform, opt_offset, opt_iconLoadedCallback) {
+ var context = canvas.getContext("2d"), dx = goog.isDef(opt_offset) ? opt_offset.x : 0, dy = goog.isDef(opt_offset) ? opt_offset.y : 0;
+ this.transform_ = transform;
+ context.setTransform(goog.vec.Mat4.getElement(transform, 0, 0), goog.vec.Mat4.getElement(transform, 1, 0), goog.vec.Mat4.getElement(transform, 0, 1), goog.vec.Mat4.getElement(transform, 1, 1), goog.vec.Mat4.getElement(transform, 0, 3) + dx, goog.vec.Mat4.getElement(transform, 1, 3) + dy);
+ var vec = [1, 0, 0];
+ goog.vec.Mat4.multVec3NoTranslate(transform, vec, vec);
+ this.inverseScale_ = 1 / Math.sqrt(vec[0] * vec[0] + vec[1] * vec[1]);
+ this.context_ = context;
+ this.iconLoadedCallback_ = opt_iconLoadedCallback
+};
+ol.renderer.canvas.VectorRenderer.prototype.renderFeaturesByGeometryType = function(type, features, symbolizer) {
+ var deferred = false;
+ switch(type) {
+ case ol.geom.GeometryType.POINT:
+ ;
+ case ol.geom.GeometryType.MULTIPOINT:
+ goog.asserts.assert(symbolizer instanceof ol.style.PointLiteral, "Expected point symbolizer: " + symbolizer);
+ deferred = this.renderPointFeatures_(features, symbolizer);
+ break;
+ case ol.geom.GeometryType.LINESTRING:
+ ;
+ case ol.geom.GeometryType.MULTILINESTRING:
+ goog.asserts.assert(symbolizer instanceof ol.style.LineLiteral, "Expected line symbolizer: " + symbolizer);
+ this.renderLineStringFeatures_(features, symbolizer);
+ break;
+ case ol.geom.GeometryType.POLYGON:
+ ;
+ case ol.geom.GeometryType.MULTIPOLYGON:
+ goog.asserts.assert(symbolizer instanceof ol.style.PolygonLiteral, "Expected polygon symbolizer: " + symbolizer);
+ this.renderPolygonFeatures_(features, symbolizer);
+ break;
+ default:
+ throw new Error("Rendering not implemented for geometry type: " + type);
+ }
+ return deferred
+};
+ol.renderer.canvas.VectorRenderer.prototype.renderLineStringFeatures_ = function(features, symbolizer) {
+ var context = this.context_, i, ii, geometry, components, j, jj, line, dim, k, kk, x, y;
+ context.globalAlpha = symbolizer.opacity;
+ context.strokeStyle = symbolizer.strokeColor;
+ context.lineWidth = symbolizer.strokeWidth * this.inverseScale_;
+ context.lineCap = "round";
+ context.lineJoin = "round";
+ context.beginPath();
+ for(i = 0, ii = features.length;i < ii;++i) {
+ geometry = features[i].getGeometry();
+ if(geometry instanceof ol.geom.LineString) {
+ components = [geometry]
+ }else {
+ goog.asserts.assert(geometry instanceof ol.geom.MultiLineString, "Expected MultiLineString");
+ components = geometry.components
+ }
+ for(j = 0, jj = components.length;j < jj;++j) {
+ line = components[j];
+ dim = line.dimension;
+ for(k = 0, kk = line.getCount();k < kk;++k) {
+ x = line.get(k, 0);
+ y = line.get(k, 1);
+ if(k === 0) {
+ context.moveTo(x, y)
+ }else {
+ context.lineTo(x, y)
+ }
+ }
+ }
+ }
+ context.stroke()
+};
+ol.renderer.canvas.VectorRenderer.prototype.renderPointFeatures_ = function(features, symbolizer) {
+ var context = this.context_, content, alpha, i, ii, geometry, components, j, jj, point, vec;
+ if(symbolizer instanceof ol.style.ShapeLiteral) {
+ content = ol.renderer.canvas.VectorRenderer.renderShape(symbolizer);
+ alpha = 1
+ }else {
+ if(symbolizer instanceof ol.style.IconLiteral) {
+ content = ol.renderer.canvas.VectorRenderer.renderIcon(symbolizer, this.iconLoadedCallback_);
+ alpha = symbolizer.opacity
+ }else {
+ throw new Error("Unsupported symbolizer: " + symbolizer);
+ }
+ }
+ if(goog.isNull(content)) {
+ return true
+ }
+ var midWidth = content.width / 2;
+ var midHeight = content.height / 2;
+ context.save();
+ context.setTransform(1, 0, 0, 1, -midWidth, -midHeight);
+ context.globalAlpha = alpha;
+ for(i = 0, ii = features.length;i < ii;++i) {
+ geometry = features[i].getGeometry();
+ if(geometry instanceof ol.geom.Point) {
+ components = [geometry]
+ }else {
+ goog.asserts.assert(geometry instanceof ol.geom.MultiPoint, "Expected MultiPoint");
+ components = geometry.components
+ }
+ for(j = 0, jj = components.length;j < jj;++j) {
+ point = components[j];
+ vec = goog.vec.Mat4.multVec3(this.transform_, [point.get(0), point.get(1), 0], []);
+ context.drawImage(content, vec[0], vec[1], content.width, content.height)
+ }
+ }
+ context.restore();
+ return false
+};
+ol.renderer.canvas.VectorRenderer.prototype.renderPolygonFeatures_ = function(features, symbolizer) {
+ var context = this.context_, strokeColor = symbolizer.strokeColor, fillColor = symbolizer.fillColor, i, ii, geometry, components, j, jj, poly, rings, numRings, ring, dim, k, kk, x, y;
+ context.globalAlpha = symbolizer.opacity;
+ if(strokeColor) {
+ context.strokeStyle = symbolizer.strokeColor;
+ context.lineWidth = symbolizer.strokeWidth * this.inverseScale_;
+ context.lineCap = "round";
+ context.lineJoin = "round"
+ }
+ if(fillColor) {
+ context.fillStyle = fillColor
+ }
+ context.beginPath();
+ for(i = 0, ii = features.length;i < ii;++i) {
+ geometry = features[i].getGeometry();
+ if(geometry instanceof ol.geom.Polygon) {
+ components = [geometry]
+ }else {
+ goog.asserts.assert(geometry instanceof ol.geom.MultiPolygon, "Expected MultiPolygon");
+ components = geometry.components
+ }
+ for(j = 0, jj = components.length;j < jj;++j) {
+ poly = components[j];
+ dim = poly.dimension;
+ rings = poly.rings;
+ numRings = rings.length;
+ if(numRings > 0) {
+ ring = rings[0];
+ for(k = 0, kk = ring.getCount();k < kk;++k) {
+ x = ring.get(k, 0);
+ y = ring.get(k, 1);
+ if(k === 0) {
+ context.moveTo(x, y)
+ }else {
+ context.lineTo(x, y)
+ }
+ }
+ if(fillColor && strokeColor) {
+ context.fill();
+ context.stroke();
+ if(i < ii - 1 || j < jj - 1) {
+ context.beginPath()
+ }
+ }
+ }
+ }
+ }
+ if(!(fillColor && strokeColor)) {
+ if(fillColor) {
+ context.fill()
+ }else {
+ context.stroke()
+ }
+ }
+};
+ol.renderer.canvas.VectorRenderer.renderCircle_ = function(circle) {
+ var strokeWidth = circle.strokeWidth || 0, size = circle.size + 2 * strokeWidth + 1, mid = size / 2, canvas = goog.dom.createElement(goog.dom.TagName.CANVAS), context = canvas.getContext("2d"), fillColor = circle.fillColor, strokeColor = circle.strokeColor, twoPi = Math.PI * 2;
+ canvas.height = size;
+ canvas.width = size;
+ context.globalAlpha = circle.opacity;
+ if(fillColor) {
+ context.fillStyle = fillColor
+ }
+ if(strokeColor) {
+ context.lineWidth = strokeWidth;
+ context.strokeStyle = strokeColor;
+ context.lineCap = "round";
+ context.lineJoin = "round"
+ }
+ context.beginPath();
+ context.arc(mid, mid, circle.size / 2, 0, twoPi, true);
+ if(fillColor) {
+ context.fill()
+ }
+ if(strokeColor) {
+ context.stroke()
+ }
+ return canvas
+};
+ol.renderer.canvas.VectorRenderer.renderShape = function(shape) {
+ var canvas;
+ if(shape.type === ol.style.ShapeType.CIRCLE) {
+ canvas = ol.renderer.canvas.VectorRenderer.renderCircle_(shape)
+ }else {
+ throw new Error("Unsupported shape type: " + shape);
+ }
+ return canvas
+};
+ol.renderer.canvas.VectorRenderer.renderIcon = function(icon, opt_callback) {
+ var url = icon.url;
+ var image = ol.renderer.canvas.VectorRenderer.icons_[url];
+ var deferred = false;
+ if(!goog.isDef(image)) {
+ deferred = true;
+ image = goog.dom.createElement(goog.dom.TagName.IMG);
+ goog.events.listenOnce(image, goog.events.EventType.ERROR, goog.bind(ol.renderer.canvas.VectorRenderer.handleIconError_, null, opt_callback), false, ol.renderer.canvas.VectorRenderer.renderIcon);
+ goog.events.listenOnce(image, goog.events.EventType.LOAD, goog.bind(ol.renderer.canvas.VectorRenderer.handleIconLoad_, null, opt_callback), false, ol.renderer.canvas.VectorRenderer.renderIcon);
+ image.setAttribute("src", url);
+ ol.renderer.canvas.VectorRenderer.icons_[url] = image
+ }else {
+ if(!goog.isNull(image)) {
+ var width = icon.width, height = icon.height;
+ if(goog.isDef(width) && goog.isDef(height)) {
+ image.width = width;
+ image.height = height
+ }else {
+ if(goog.isDef(width)) {
+ image.height = width / image.width * image.height;
+ image.width = width
+ }else {
+ if(goog.isDef(height)) {
+ image.width = height / image.height * image.width;
+ image.height = height
+ }
+ }
+ }
+ }
+ }
+ return deferred ? null : image
+};
+ol.renderer.canvas.VectorRenderer.icons_ = {};
+ol.renderer.canvas.VectorRenderer.handleIconError_ = function(opt_callback, opt_event) {
+ if(goog.isDef(opt_event)) {
+ var url = opt_event.target.getAttribute("src");
+ ol.renderer.canvas.VectorRenderer.icons_[url] = null;
+ ol.renderer.canvas.VectorRenderer.handleIconLoad_(opt_callback, opt_event)
+ }
+};
+ol.renderer.canvas.VectorRenderer.handleIconLoad_ = function(opt_callback, opt_event) {
+ if(goog.isDef(opt_event)) {
+ var url = opt_event.target.getAttribute("src");
+ ol.renderer.canvas.VectorRenderer.icons_[url] = opt_event.target
+ }
+ if(goog.isDef(opt_callback)) {
+ opt_callback()
+ }
+};
+goog.provide("ol.renderer.canvas.VectorLayer");
+goog.require("goog.vec.Mat4");
+goog.require("ol.Extent");
+goog.require("ol.Size");
+goog.require("ol.TileCache");
+goog.require("ol.TileCoord");
+goog.require("ol.ViewHint");
+goog.require("ol.filter.Extent");
+goog.require("ol.filter.Geometry");
+goog.require("ol.filter.Logical");
+goog.require("ol.filter.LogicalOperator");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.layer.Vector");
+goog.require("ol.renderer.canvas.Layer");
+goog.require("ol.renderer.canvas.VectorRenderer");
+goog.require("ol.tilegrid.TileGrid");
+ol.renderer.canvas.VectorLayer = function(mapRenderer, layer) {
+ goog.base(this, mapRenderer, layer);
+ this.canvas_ = goog.dom.createElement(goog.dom.TagName.CANVAS);
+ this.context_ = this.canvas_.getContext("2d");
+ this.transform_ = goog.vec.Mat4.createNumber();
+ this.sketchCanvas_ = goog.dom.createElement(goog.dom.TagName.CANVAS);
+ this.sketchTransform_ = goog.vec.Mat4.createNumber();
+ this.tileCache_ = new ol.TileCache(ol.renderer.canvas.VectorLayer.TILECACHE_SIZE);
+ goog.events.listenOnce(layer, goog.events.EventType.CHANGE, this.handleLayerChange_, false, this);
+ this.tileArchetype_ = null;
+ this.geometryFilters_ = [new ol.filter.Geometry(ol.geom.GeometryType.POINT), new ol.filter.Geometry(ol.geom.GeometryType.MULTIPOINT), new ol.filter.Geometry(ol.geom.GeometryType.LINESTRING), new ol.filter.Geometry(ol.geom.GeometryType.MULTILINESTRING), new ol.filter.Geometry(ol.geom.GeometryType.POLYGON), new ol.filter.Geometry(ol.geom.GeometryType.MULTIPOLYGON)];
+ this.renderedResolution_;
+ this.renderedExtent_ = null;
+ this.dirty_ = false;
+ this.pendingCachePrune_ = false;
+ this.tileGrid_ = null;
+ this.requestMapRenderFrame_ = goog.bind(function() {
+ this.dirty_ = true;
+ mapRenderer.getMap().requestRenderFrame()
+ }, this)
+};
+goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer);
+ol.renderer.canvas.VectorLayer.prototype.expireTiles_ = function(opt_extent) {
+ if(goog.isDef(opt_extent)) {
+ }
+ this.tileCache_.clear()
+};
+ol.renderer.canvas.VectorLayer.prototype.getImage = function() {
+ return this.canvas_
+};
+ol.renderer.canvas.VectorLayer.prototype.getVectorLayer = function() {
+ return this.getLayer()
+};
+ol.renderer.canvas.VectorLayer.prototype.getTransform = function() {
+ return this.transform_
+};
+ol.renderer.canvas.VectorLayer.prototype.handleLayerChange_ = function(event) {
+ this.expireTiles_();
+ this.requestMapRenderFrame_()
+};
+ol.renderer.canvas.VectorLayer.prototype.renderFrame = function(frameState, layerState) {
+ var view2DState = frameState.view2DState, resolution = view2DState.resolution, extent = frameState.extent, layer = this.getVectorLayer(), tileGrid = this.tileGrid_;
+ if(goog.isNull(tileGrid)) {
+ tileGrid = ol.tilegrid.createForProjection(view2DState.projection, 22, new ol.Size(512, 512));
+ this.tileGrid_ = tileGrid
+ }
+ var z = tileGrid.getZForResolution(resolution), tileResolution = tileGrid.getResolution(z), tileRange = tileGrid.getTileRangeForExtentAndResolution(extent, tileResolution), tileRangeExtent = tileGrid.getTileRangeExtent(z, tileRange), tileSize = tileGrid.getTileSize(z), sketchOrigin = tileRangeExtent.getTopLeft(), transform = this.transform_;
+ goog.vec.Mat4.makeIdentity(transform);
+ goog.vec.Mat4.translate(transform, frameState.size.width / 2, frameState.size.height / 2, 0);
+ goog.vec.Mat4.scale(transform, tileResolution / resolution, tileResolution / resolution, 1);
+ goog.vec.Mat4.rotateZ(transform, view2DState.rotation);
+ goog.vec.Mat4.translate(transform, (sketchOrigin.x - view2DState.center.x) / tileResolution, (view2DState.center.y - sketchOrigin.y) / tileResolution, 0);
+ if(!this.dirty_ && this.renderedResolution_ === tileResolution && this.renderedExtent_.toString() === tileRangeExtent.toString()) {
+ return
+ }
+ if(goog.isNull(this.tileArchetype_)) {
+ this.tileArchetype_ = goog.dom.createElement(goog.dom.TagName.CANVAS);
+ this.tileArchetype_.width = tileSize.width;
+ this.tileArchetype_.height = tileSize.height
+ }
+ var sketchCanvas = this.sketchCanvas_;
+ var sketchSize = new ol.Size(tileSize.width * tileRange.getWidth(), tileSize.height * tileRange.getHeight());
+ var sketchTransform = this.sketchTransform_;
+ var halfWidth = sketchSize.width / 2;
+ var halfHeight = sketchSize.height / 2;
+ goog.vec.Mat4.makeIdentity(sketchTransform);
+ goog.vec.Mat4.translate(sketchTransform, halfWidth, halfHeight, 0);
+ goog.vec.Mat4.scale(sketchTransform, 1 / tileResolution, -1 / tileResolution, 1);
+ goog.vec.Mat4.translate(sketchTransform, -(sketchOrigin.x + halfWidth * tileResolution), -(sketchOrigin.y - halfHeight * tileResolution), 0);
+ sketchCanvas.width = sketchSize.width;
+ sketchCanvas.height = sketchSize.height;
+ var sketchCanvasRenderer = new ol.renderer.canvas.VectorRenderer(sketchCanvas, sketchTransform, undefined, this.requestMapRenderFrame_);
+ var finalCanvas = this.canvas_;
+ finalCanvas.width = sketchSize.width;
+ finalCanvas.height = sketchSize.height;
+ var finalContext = this.context_;
+ var featuresToRender = {};
+ var tilesToRender = {};
+ var tilesOnSketchCanvas = {};
+ var tileGutter = 15 * tileResolution;
+ var tile, tileCoord, key, tileState, x, y;
+ var filters = this.geometryFilters_, numFilters = filters.length, deferred = false, i, geomFilter, tileExtent, extentFilter, type, groups, group, j, numGroups;
+ for(x = tileRange.minX;x <= tileRange.maxX;++x) {
+ for(y = tileRange.minY;y <= tileRange.maxY;++y) {
+ tileCoord = new ol.TileCoord(z, x, y);
+ key = tileCoord.toString();
+ if(this.tileCache_.containsKey(key)) {
+ tilesToRender[key] = tileCoord
+ }else {
+ if(!frameState.viewHints[ol.ViewHint.ANIMATING]) {
+ tileExtent = tileGrid.getTileCoordExtent(tileCoord);
+ tileExtent.minX -= tileGutter;
+ tileExtent.minY -= tileGutter;
+ tileExtent.maxX += tileGutter;
+ tileExtent.maxY += tileGutter;
+ extentFilter = new ol.filter.Extent(tileExtent);
+ for(i = 0;i < numFilters;++i) {
+ geomFilter = filters[i];
+ type = geomFilter.getType();
+ if(!goog.isDef(featuresToRender[type])) {
+ featuresToRender[type] = {}
+ }
+ goog.object.extend(featuresToRender[type], layer.getFeaturesObject(new ol.filter.Logical([geomFilter, extentFilter], ol.filter.LogicalOperator.AND)))
+ }
+ tilesOnSketchCanvas[key] = tileCoord
+ }
+ }
+ }
+ }
+ for(type in featuresToRender) {
+ groups = layer.groupFeaturesBySymbolizerLiteral(featuresToRender[type]);
+ numGroups = groups.length;
+ for(j = 0;j < numGroups;++j) {
+ group = groups[j];
+ deferred = sketchCanvasRenderer.renderFeaturesByGeometryType(type, group[0], group[1]);
+ if(deferred) {
+ break
+ }
+ }
+ if(!deferred) {
+ goog.object.extend(tilesToRender, tilesOnSketchCanvas)
+ }
+ }
+ this.dirty_ = true;
+ for(key in tilesToRender) {
+ tileCoord = tilesToRender[key];
+ if(this.tileCache_.containsKey(key)) {
+ tile = this.tileCache_.get(key)
+ }else {
+ tile = this.tileArchetype_.cloneNode(false);
+ tile.getContext("2d").drawImage(sketchCanvas, (tileRange.minX - tileCoord.x) * tileSize.width, (tileCoord.y - tileRange.maxY) * tileSize.height);
+ this.tileCache_.set(key, tile)
+ }
+ finalContext.drawImage(tile, tileSize.width * (tileCoord.x - tileRange.minX), tileSize.height * (tileRange.maxY - tileCoord.y));
+ this.dirty_ = false
+ }
+ this.renderedResolution_ = tileResolution;
+ this.renderedExtent_ = tileRangeExtent;
+ if(!this.pendingCachePrune_) {
+ this.pendingCachePrune_ = true;
+ frameState.postRenderFunctions.push(goog.bind(this.pruneTileCache_, this))
+ }
+};
+ol.renderer.canvas.VectorLayer.prototype.pruneTileCache_ = function() {
+ while(this.tileCache_.canExpireCache()) {
+ this.tileCache_.pop()
+ }
+ this.pendingCachePrune_ = false
+};
+ol.renderer.canvas.VectorLayer.TILECACHE_SIZE = 128;
goog.provide("ol.renderer.canvas.Map");
goog.require("goog.array");
goog.require("goog.dom");
goog.require("goog.style");
goog.require("goog.vec.Mat4");
+goog.require("ol");
goog.require("ol.Size");
goog.require("ol.layer.ImageLayer");
goog.require("ol.layer.TileLayer");
+goog.require("ol.layer.Vector");
goog.require("ol.renderer.Map");
goog.require("ol.renderer.canvas.ImageLayer");
goog.require("ol.renderer.canvas.TileLayer");
+goog.require("ol.renderer.canvas.VectorLayer");
ol.renderer.canvas.Map = function(container, map) {
goog.base(this, container, map);
this.canvasSize_ = new ol.Size(container.clientHeight, container.clientWidth);
this.canvas_ = goog.dom.createElement(goog.dom.TagName.CANVAS);
this.canvas_.height = this.canvasSize_.height;
this.canvas_.width = this.canvasSize_.width;
- this.canvas_.className = "ol-unselectable";
+ this.canvas_.className = ol.CSS_CLASS_UNSELECTABLE;
goog.dom.insertChildAt(container, this.canvas_, 0);
this.renderedVisible_ = true;
this.context_ = this.canvas_.getContext("2d")
@@ -14581,8 +16305,12 @@ ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) {
if(layer instanceof ol.layer.TileLayer) {
return new ol.renderer.canvas.TileLayer(this, layer)
}else {
- goog.asserts.assert(false);
- return null
+ if(layer instanceof ol.layer.Vector) {
+ return new ol.renderer.canvas.VectorLayer(this, layer)
+ }else {
+ goog.asserts.assert(false);
+ return null
+ }
}
}
};
@@ -14609,6 +16337,7 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) {
context.fillStyle = "rgb(" + backgroundColor.r.toFixed(0) + "," + backgroundColor.g.toFixed(0) + "," + backgroundColor.b.toFixed(0) + ")";
context.globalAlpha = 1;
context.fillRect(0, 0, size.width, size.height);
+ this.calculateMatrices2D(frameState);
goog.array.forEach(frameState.layersArray, function(layer) {
var layerState = frameState.layerStates[goog.getUid(layer)];
if(!layerState.visible) {
@@ -14633,7 +16362,6 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) {
goog.style.showElement(this.canvas_, true);
this.renderedVisible_ = true
}
- this.calculateMatrices2D(frameState)
};
goog.provide("ol.canvas");
goog.require("goog.dom");
@@ -15018,6 +16746,7 @@ goog.require("goog.asserts");
goog.require("goog.dom");
goog.require("goog.dom.TagName");
goog.require("goog.style");
+goog.require("ol");
goog.require("ol.layer.ImageLayer");
goog.require("ol.layer.TileLayer");
goog.require("ol.renderer.Map");
@@ -15026,7 +16755,7 @@ goog.require("ol.renderer.dom.TileLayer");
ol.renderer.dom.Map = function(container, map) {
goog.base(this, container, map);
this.layersPane_ = goog.dom.createElement(goog.dom.TagName.DIV);
- this.layersPane_.className = "ol-layers ol-unselectable";
+ this.layersPane_.className = "ol-layers " + ol.CSS_CLASS_UNSELECTABLE;
var style = this.layersPane_.style;
style.position = "absolute";
style.width = "100%";
@@ -15035,10 +16764,6 @@ ol.renderer.dom.Map = function(container, map) {
this.renderedVisible_ = true
};
goog.inherits(ol.renderer.dom.Map, ol.renderer.Map);
-ol.renderer.dom.Map.prototype.addLayer = function(layer) {
- goog.base(this, "addLayer", layer);
- this.getMap().render()
-};
ol.renderer.dom.Map.prototype.createLayerRenderer = function(layer) {
var layerRenderer;
if(layer instanceof ol.layer.TileLayer) {
@@ -16052,142 +17777,6 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame = function(frameState, layerSt
goog.vec.Mat4.scale(this.texCoordMatrix_, frameState.size.width * view2DState.resolution / (framebufferExtent.maxX - framebufferExtent.minX), frameState.size.height * view2DState.resolution / (framebufferExtent.maxY - framebufferExtent.minY), 1);
goog.vec.Mat4.translate(this.texCoordMatrix_, -0.5, -0.5, 0)
};
-goog.provide("ol.structs.LRUCache");
-goog.require("goog.asserts");
-goog.require("goog.object");
-ol.structs.LRUCache = function() {
- this.count_ = 0;
- this.entries_ = {};
- this.oldest_ = null;
- this.newest_ = null
-};
-ol.structs.LRUCache.prototype.assertValid = function() {
- if(this.count_ === 0) {
- goog.asserts.assert(goog.object.isEmpty(this.entries_));
- goog.asserts.assert(goog.isNull(this.oldest_));
- goog.asserts.assert(goog.isNull(this.newest_))
- }else {
- goog.asserts.assert(goog.object.getCount(this.entries_) == this.count_);
- goog.asserts.assert(!goog.isNull(this.oldest_));
- goog.asserts.assert(goog.isNull(this.oldest_.older));
- goog.asserts.assert(!goog.isNull(this.newest_));
- goog.asserts.assert(goog.isNull(this.newest_.newer));
- var i, entry;
- var older = null;
- i = 0;
- for(entry = this.oldest_;!goog.isNull(entry);entry = entry.newer) {
- goog.asserts.assert(entry.older === older);
- older = entry;
- ++i
- }
- goog.asserts.assert(i == this.count_);
- var newer = null;
- i = 0;
- for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) {
- goog.asserts.assert(entry.newer === newer);
- newer = entry;
- ++i
- }
- goog.asserts.assert(i == this.count_)
- }
-};
-ol.structs.LRUCache.prototype.clear = function() {
- this.count_ = 0;
- this.entries_ = {};
- this.oldest_ = null;
- this.newest_ = null
-};
-ol.structs.LRUCache.prototype.containsKey = function(key) {
- return this.entries_.hasOwnProperty(key)
-};
-ol.structs.LRUCache.prototype.forEach = function(f, opt_obj) {
- var entry = this.oldest_;
- while(!goog.isNull(entry)) {
- f.call(opt_obj, entry.value_, entry.key_, this);
- entry = entry.newer
- }
-};
-ol.structs.LRUCache.prototype.get = function(key) {
- var entry = this.entries_[key];
- goog.asserts.assert(goog.isDef(entry));
- if(entry === this.newest_) {
- return entry.value_
- }else {
- if(entry === this.oldest_) {
- this.oldest_ = this.oldest_.newer;
- this.oldest_.older = null
- }else {
- entry.newer.older = entry.older;
- entry.older.newer = entry.newer
- }
- }
- entry.newer = null;
- entry.older = this.newest_;
- this.newest_.newer = entry;
- this.newest_ = entry;
- return entry.value_
-};
-ol.structs.LRUCache.prototype.getCount = function() {
- return this.count_
-};
-ol.structs.LRUCache.prototype.getKeys = function() {
- var keys = new Array(this.count_);
- var i = 0;
- var entry;
- for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) {
- keys[i++] = entry.key_
- }
- goog.asserts.assert(i == this.count_);
- return keys
-};
-ol.structs.LRUCache.prototype.getValues = function() {
- var values = new Array(this.count_);
- var i = 0;
- var entry;
- for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) {
- values[i++] = entry.value_
- }
- goog.asserts.assert(i == this.count_);
- return values
-};
-ol.structs.LRUCache.prototype.peekLast = function() {
- goog.asserts.assert(!goog.isNull(this.oldest_));
- return this.oldest_.value_
-};
-ol.structs.LRUCache.prototype.peekLastKey = function() {
- goog.asserts.assert(!goog.isNull(this.oldest_));
- return this.oldest_.key_
-};
-ol.structs.LRUCache.prototype.pop = function() {
- goog.asserts.assert(!goog.isNull(this.oldest_));
- goog.asserts.assert(!goog.isNull(this.newest_));
- var entry = this.oldest_;
- goog.asserts.assert(entry.key_ in this.entries_);
- delete this.entries_[entry.key_];
- if(!goog.isNull(entry.newer)) {
- entry.newer.older = null
- }
- this.oldest_ = entry.newer;
- if(goog.isNull(this.oldest_)) {
- this.newest_ = null
- }
- --this.count_;
- return entry.value_
-};
-ol.structs.LRUCache.prototype.set = function(key, value) {
- goog.asserts.assert(!(key in {}));
- goog.asserts.assert(!(key in this.entries_));
- var entry = {key_:key, newer:null, older:this.newest_, value_:value};
- if(goog.isNull(this.newest_)) {
- this.oldest_ = entry
- }else {
- this.newest_.newer = entry
- }
- this.newest_ = entry;
- this.entries_[key] = entry;
- ++this.count_
-};
-ol.structs.LRUCacheEntry;
goog.provide("ol.webgl");
goog.provide("ol.webgl.WebGLContextEventType");
ol.webgl.CONTEXT_IDS_ = ["webgl", "webgl-experimental", "webkit-3d", "moz-webgl"];
@@ -16226,6 +17815,7 @@ goog.require("goog.events");
goog.require("goog.events.Event");
goog.require("goog.style");
goog.require("goog.webgl");
+goog.require("ol");
goog.require("ol.FrameState");
goog.require("ol.Size");
goog.require("ol.Tile");
@@ -16259,7 +17849,7 @@ ol.renderer.webgl.Map = function(container, map) {
this.canvas_ = goog.dom.createElement(goog.dom.TagName.CANVAS);
this.canvas_.height = container.clientHeight;
this.canvas_.width = container.clientWidth;
- this.canvas_.className = "ol-unselectable";
+ this.canvas_.className = ol.CSS_CLASS_UNSELECTABLE;
goog.dom.insertChildAt(container, this.canvas_, 0);
this.renderedVisible_ = true;
this.canvasSize_ = new ol.Size(container.clientHeight, container.clientWidth);
@@ -16278,12 +17868,6 @@ ol.renderer.webgl.Map = function(container, map) {
this.initializeGL_()
};
goog.inherits(ol.renderer.webgl.Map, ol.renderer.Map);
-ol.renderer.webgl.Map.prototype.addLayer = function(layer) {
- goog.base(this, "addLayer", layer);
- if(layer.getVisible()) {
- this.getMap().render()
- }
-};
ol.renderer.webgl.Map.prototype.bindTileTexture = function(tile, magFilter, minFilter) {
var gl = this.getGL();
var tileKey = tile.getKey();
@@ -16434,12 +18018,6 @@ ol.renderer.webgl.Map.prototype.initializeGL_ = function() {
ol.renderer.webgl.Map.prototype.isTileTextureLoaded = function(tile) {
return this.textureCache_.containsKey(tile.getKey())
};
-ol.renderer.webgl.Map.prototype.removeLayer = function(layer) {
- goog.base(this, "removeLayer", layer);
- if(layer.getVisible()) {
- this.getMap().render()
- }
-};
ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
var gl = this.getGL();
if(goog.isNull(frameState)) {
@@ -17354,31 +18932,6 @@ ol.ImageTile.prototype.unlistenImage_ = function() {
goog.array.forEach(this.imageListenerKeys_, goog.events.unlistenByKey);
this.imageListenerKeys_ = null
};
-goog.provide("ol.TileCache");
-goog.require("ol.Tile");
-goog.require("ol.TileRange");
-goog.require("ol.structs.LRUCache");
-ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK = 512;
-ol.TileCache = function(opt_highWaterMark) {
- goog.base(this);
- this.highWaterMark_ = goog.isDef(opt_highWaterMark) ? opt_highWaterMark : ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK
-};
-goog.inherits(ol.TileCache, ol.structs.LRUCache);
-ol.TileCache.prototype.canExpireCache = function() {
- return this.getCount() > this.highWaterMark_
-};
-ol.TileCache.prototype.expireCache = function(usedTiles) {
- var tile, zKey;
- while(this.canExpireCache()) {
- tile = this.peekLast();
- zKey = tile.tileCoord.z.toString();
- if(zKey in usedTiles && usedTiles[zKey].contains(tile.tileCoord)) {
- break
- }else {
- this.pop()
- }
- }
-};
goog.provide("ol.TileUrlFunction");
goog.provide("ol.TileUrlFunctionType");
goog.require("goog.array");
@@ -17388,23 +18941,11 @@ goog.require("ol.source.wms");
goog.require("ol.tilegrid.TileGrid");
ol.TileUrlFunctionType;
ol.TileUrlFunction.createFromTemplate = function(template) {
- var match = /\{(\d)-(\d)\}/.exec(template) || /\{([a-z])-([a-z])\}/.exec(template);
- if(match) {
- var templates = [];
- var startCharCode = match[1].charCodeAt(0);
- var stopCharCode = match[2].charCodeAt(0);
- var charCode;
- for(charCode = startCharCode;charCode <= stopCharCode;++charCode) {
- templates.push(template.replace(match[0], String.fromCharCode(charCode)))
- }
- return ol.TileUrlFunction.createFromTemplates(templates)
- }else {
- return function(tileCoord) {
- if(goog.isNull(tileCoord)) {
- return undefined
- }else {
- return template.replace("{z}", tileCoord.z).replace("{x}", tileCoord.x).replace("{y}", tileCoord.y)
- }
+ return function(tileCoord) {
+ if(goog.isNull(tileCoord)) {
+ return undefined
+ }else {
+ return template.replace("{z}", tileCoord.z).replace("{x}", tileCoord.x).replace("{y}", tileCoord.y)
}
}
};
@@ -17447,6 +18988,21 @@ ol.TileUrlFunction.withTileCoordTransform = function(transformFn, tileUrlFunctio
}
}
};
+ol.TileUrlFunction.expandUrl = function(url) {
+ var urls = [];
+ var match = /\{(\d)-(\d)\}/.exec(url) || /\{([a-z])-([a-z])\}/.exec(url);
+ if(match) {
+ var startCharCode = match[1].charCodeAt(0);
+ var stopCharCode = match[2].charCodeAt(0);
+ var charCode;
+ for(charCode = startCharCode;charCode <= stopCharCode;++charCode) {
+ urls.push(url.replace(match[0], String.fromCharCode(charCode)))
+ }
+ }else {
+ urls.push(url)
+ }
+ return urls
+};
goog.provide("ol.control.MousePosition");
goog.require("goog.array");
goog.require("goog.dom");
@@ -17541,6 +19097,7 @@ goog.provide("ol.control.ScaleLine");
goog.provide("ol.control.ScaleLineUnits");
goog.require("goog.dom");
goog.require("goog.style");
+goog.require("ol");
goog.require("ol.FrameState");
goog.require("ol.MapEvent");
goog.require("ol.MapEventType");
@@ -17553,7 +19110,7 @@ ol.control.ScaleLineUnits = {DEGREES:"degrees", IMPERIAL:"imperial", NAUTICAL:"n
ol.control.ScaleLine = function(opt_options) {
var options = opt_options || {};
this.innerElement_ = goog.dom.createDom(goog.dom.TagName.DIV, {"class":"ol-scale-line-inner"});
- this.element_ = goog.dom.createDom(goog.dom.TagName.DIV, {"class":"ol-scale-line ol-unselectable"}, this.innerElement_);
+ this.element_ = goog.dom.createDom(goog.dom.TagName.DIV, {"class":"ol-scale-line " + ol.CSS_CLASS_UNSELECTABLE}, this.innerElement_);
this.minWidth_ = goog.isDef(options.minWidth) ? options.minWidth : 64;
this.units_ = goog.isDef(options.units) ? options.units : ol.control.ScaleLineUnits.METRIC;
this.listenerKeys_ = null;
@@ -17707,9 +19264,553 @@ ol.control.ScaleLine.prototype.updateElement_ = function(frameState) {
this.renderedVisible_ = true
}
};
+goog.provide("goog.events.EventHandler");
+goog.require("goog.Disposable");
+goog.require("goog.array");
+goog.require("goog.events");
+goog.require("goog.events.EventWrapper");
+goog.events.EventHandler = function(opt_handler) {
+ goog.Disposable.call(this);
+ this.handler_ = opt_handler;
+ this.keys_ = []
+};
+goog.inherits(goog.events.EventHandler, goog.Disposable);
+goog.events.EventHandler.typeArray_ = [];
+goog.events.EventHandler.prototype.listen = function(src, type, opt_fn, opt_capture, opt_handler) {
+ if(!goog.isArray(type)) {
+ goog.events.EventHandler.typeArray_[0] = type;
+ type = goog.events.EventHandler.typeArray_
+ }
+ for(var i = 0;i < type.length;i++) {
+ var key = goog.events.listen(src, type[i], opt_fn || this, opt_capture || false, opt_handler || this.handler_ || this);
+ this.keys_.push(key)
+ }
+ return this
+};
+goog.events.EventHandler.prototype.listenOnce = function(src, type, opt_fn, opt_capture, opt_handler) {
+ if(goog.isArray(type)) {
+ for(var i = 0;i < type.length;i++) {
+ this.listenOnce(src, type[i], opt_fn, opt_capture, opt_handler)
+ }
+ }else {
+ var key = goog.events.listenOnce(src, type, opt_fn || this, opt_capture, opt_handler || this.handler_ || this);
+ this.keys_.push(key)
+ }
+ return this
+};
+goog.events.EventHandler.prototype.listenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) {
+ wrapper.listen(src, listener, opt_capt, opt_handler || this.handler_ || this, this);
+ return this
+};
+goog.events.EventHandler.prototype.getListenerCount = function() {
+ return this.keys_.length
+};
+goog.events.EventHandler.prototype.unlisten = function(src, type, opt_fn, opt_capture, opt_handler) {
+ if(goog.isArray(type)) {
+ for(var i = 0;i < type.length;i++) {
+ this.unlisten(src, type[i], opt_fn, opt_capture, opt_handler)
+ }
+ }else {
+ var listener = goog.events.getListener(src, type, opt_fn || this, opt_capture, opt_handler || this.handler_ || this);
+ if(listener) {
+ var key = listener.key;
+ goog.events.unlistenByKey(key);
+ goog.array.remove(this.keys_, key)
+ }
+ }
+ return this
+};
+goog.events.EventHandler.prototype.unlistenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) {
+ wrapper.unlisten(src, listener, opt_capt, opt_handler || this.handler_ || this, this);
+ return this
+};
+goog.events.EventHandler.prototype.removeAll = function() {
+ goog.array.forEach(this.keys_, goog.events.unlistenByKey);
+ this.keys_.length = 0
+};
+goog.events.EventHandler.prototype.disposeInternal = function() {
+ goog.events.EventHandler.superClass_.disposeInternal.call(this);
+ this.removeAll()
+};
+goog.events.EventHandler.prototype.handleEvent = function(e) {
+ throw Error("EventHandler.handleEvent not implemented");
+};
+goog.provide("goog.style.bidi");
+goog.require("goog.dom");
+goog.require("goog.style");
+goog.require("goog.userAgent");
+goog.style.bidi.getScrollLeft = function(element) {
+ var isRtl = goog.style.isRightToLeft(element);
+ if(isRtl && goog.userAgent.GECKO) {
+ return-element.scrollLeft
+ }else {
+ if(isRtl && !(goog.userAgent.IE && goog.userAgent.isVersion("8"))) {
+ return element.scrollWidth - element.clientWidth - element.scrollLeft
+ }
+ }
+ return element.scrollLeft
+};
+goog.style.bidi.getOffsetStart = function(element) {
+ var offsetLeftForReal = element.offsetLeft;
+ var bestParent = element.offsetParent;
+ if(!bestParent && goog.style.getComputedPosition(element) == "fixed") {
+ bestParent = goog.dom.getOwnerDocument(element).documentElement
+ }
+ if(!bestParent) {
+ return offsetLeftForReal
+ }
+ if(goog.userAgent.GECKO) {
+ var borderWidths = goog.style.getBorderBox(bestParent);
+ offsetLeftForReal += borderWidths.left
+ }else {
+ if(goog.userAgent.isDocumentMode(8)) {
+ var borderWidths = goog.style.getBorderBox(bestParent);
+ offsetLeftForReal -= borderWidths.left
+ }
+ }
+ if(goog.style.isRightToLeft(bestParent)) {
+ var elementRightOffset = offsetLeftForReal + element.offsetWidth;
+ return bestParent.clientWidth - elementRightOffset
+ }
+ return offsetLeftForReal
+};
+goog.style.bidi.setScrollOffset = function(element, offsetStart) {
+ offsetStart = Math.max(offsetStart, 0);
+ if(!goog.style.isRightToLeft(element)) {
+ element.scrollLeft = offsetStart
+ }else {
+ if(goog.userAgent.GECKO) {
+ element.scrollLeft = -offsetStart
+ }else {
+ if(!(goog.userAgent.IE && goog.userAgent.isVersion("8"))) {
+ element.scrollLeft = element.scrollWidth - offsetStart - element.clientWidth
+ }else {
+ element.scrollLeft = offsetStart
+ }
+ }
+ }
+};
+goog.style.bidi.setPosition = function(elem, left, top, isRtl) {
+ if(!goog.isNull(top)) {
+ elem.style.top = top + "px"
+ }
+ if(isRtl) {
+ elem.style.right = left + "px";
+ elem.style.left = ""
+ }else {
+ elem.style.left = left + "px";
+ elem.style.right = ""
+ }
+};
+goog.provide("goog.fx.DragEvent");
+goog.provide("goog.fx.Dragger");
+goog.provide("goog.fx.Dragger.EventType");
+goog.require("goog.dom");
+goog.require("goog.events");
+goog.require("goog.events.BrowserEvent.MouseButton");
+goog.require("goog.events.Event");
+goog.require("goog.events.EventHandler");
+goog.require("goog.events.EventTarget");
+goog.require("goog.events.EventType");
+goog.require("goog.math.Coordinate");
+goog.require("goog.math.Rect");
+goog.require("goog.style");
+goog.require("goog.style.bidi");
+goog.require("goog.userAgent");
+goog.fx.Dragger = function(target, opt_handle, opt_limits) {
+ goog.events.EventTarget.call(this);
+ this.target = target;
+ this.handle = opt_handle || target;
+ this.limits = opt_limits || new goog.math.Rect(NaN, NaN, NaN, NaN);
+ this.document_ = goog.dom.getOwnerDocument(target);
+ this.eventHandler_ = new goog.events.EventHandler(this);
+ goog.events.listen(this.handle, [goog.events.EventType.TOUCHSTART, goog.events.EventType.MOUSEDOWN], this.startDrag, false, this)
+};
+goog.inherits(goog.fx.Dragger, goog.events.EventTarget);
+goog.fx.Dragger.HAS_SET_CAPTURE_ = goog.userAgent.IE || goog.userAgent.GECKO && goog.userAgent.isVersion("1.9.3");
+goog.fx.Dragger.EventType = {EARLY_CANCEL:"earlycancel", START:"start", BEFOREDRAG:"beforedrag", DRAG:"drag", END:"end"};
+goog.fx.Dragger.prototype.target;
+goog.fx.Dragger.prototype.handle;
+goog.fx.Dragger.prototype.limits;
+goog.fx.Dragger.prototype.rightToLeft_;
+goog.fx.Dragger.prototype.clientX = 0;
+goog.fx.Dragger.prototype.clientY = 0;
+goog.fx.Dragger.prototype.screenX = 0;
+goog.fx.Dragger.prototype.screenY = 0;
+goog.fx.Dragger.prototype.startX = 0;
+goog.fx.Dragger.prototype.startY = 0;
+goog.fx.Dragger.prototype.deltaX = 0;
+goog.fx.Dragger.prototype.deltaY = 0;
+goog.fx.Dragger.prototype.pageScroll;
+goog.fx.Dragger.prototype.enabled_ = true;
+goog.fx.Dragger.prototype.dragging_ = false;
+goog.fx.Dragger.prototype.hysteresisDistanceSquared_ = 0;
+goog.fx.Dragger.prototype.mouseDownTime_ = 0;
+goog.fx.Dragger.prototype.document_;
+goog.fx.Dragger.prototype.eventHandler_;
+goog.fx.Dragger.prototype.scrollTarget_;
+goog.fx.Dragger.prototype.ieDragStartCancellingOn_ = false;
+goog.fx.Dragger.prototype.useRightPositioningForRtl_ = false;
+goog.fx.Dragger.prototype.enableRightPositioningForRtl = function(useRightPositioningForRtl) {
+ this.useRightPositioningForRtl_ = useRightPositioningForRtl
+};
+goog.fx.Dragger.prototype.getHandler = function() {
+ return this.eventHandler_
+};
+goog.fx.Dragger.prototype.setLimits = function(limits) {
+ this.limits = limits || new goog.math.Rect(NaN, NaN, NaN, NaN)
+};
+goog.fx.Dragger.prototype.setHysteresis = function(distance) {
+ this.hysteresisDistanceSquared_ = Math.pow(distance, 2)
+};
+goog.fx.Dragger.prototype.getHysteresis = function() {
+ return Math.sqrt(this.hysteresisDistanceSquared_)
+};
+goog.fx.Dragger.prototype.setScrollTarget = function(scrollTarget) {
+ this.scrollTarget_ = scrollTarget
+};
+goog.fx.Dragger.prototype.setCancelIeDragStart = function(cancelIeDragStart) {
+ this.ieDragStartCancellingOn_ = cancelIeDragStart
+};
+goog.fx.Dragger.prototype.getEnabled = function() {
+ return this.enabled_
+};
+goog.fx.Dragger.prototype.setEnabled = function(enabled) {
+ this.enabled_ = enabled
+};
+goog.fx.Dragger.prototype.disposeInternal = function() {
+ goog.fx.Dragger.superClass_.disposeInternal.call(this);
+ goog.events.unlisten(this.handle, [goog.events.EventType.TOUCHSTART, goog.events.EventType.MOUSEDOWN], this.startDrag, false, this);
+ this.cleanUpAfterDragging_();
+ this.target = null;
+ this.handle = null;
+ this.eventHandler_ = null
+};
+goog.fx.Dragger.prototype.isRightToLeft_ = function() {
+ if(!goog.isDef(this.rightToLeft_)) {
+ this.rightToLeft_ = goog.style.isRightToLeft(this.target)
+ }
+ return this.rightToLeft_
+};
+goog.fx.Dragger.prototype.startDrag = function(e) {
+ var isMouseDown = e.type == goog.events.EventType.MOUSEDOWN;
+ if(this.enabled_ && !this.dragging_ && (!isMouseDown || e.isMouseActionButton())) {
+ this.maybeReinitTouchEvent_(e);
+ if(this.hysteresisDistanceSquared_ == 0) {
+ if(this.fireDragStart_(e)) {
+ this.dragging_ = true;
+ e.preventDefault()
+ }else {
+ return
+ }
+ }else {
+ e.preventDefault()
+ }
+ this.setupDragHandlers();
+ this.clientX = this.startX = e.clientX;
+ this.clientY = this.startY = e.clientY;
+ this.screenX = e.screenX;
+ this.screenY = e.screenY;
+ this.deltaX = this.useRightPositioningForRtl_ ? goog.style.bidi.getOffsetStart(this.target) : this.target.offsetLeft;
+ this.deltaY = this.target.offsetTop;
+ this.pageScroll = goog.dom.getDomHelper(this.document_).getDocumentScroll();
+ this.mouseDownTime_ = goog.now()
+ }else {
+ this.dispatchEvent(goog.fx.Dragger.EventType.EARLY_CANCEL)
+ }
+};
+goog.fx.Dragger.prototype.setupDragHandlers = function() {
+ var doc = this.document_;
+ var docEl = doc.documentElement;
+ var useCapture = !goog.fx.Dragger.HAS_SET_CAPTURE_;
+ this.eventHandler_.listen(doc, [goog.events.EventType.TOUCHMOVE, goog.events.EventType.MOUSEMOVE], this.handleMove_, useCapture);
+ this.eventHandler_.listen(doc, [goog.events.EventType.TOUCHEND, goog.events.EventType.MOUSEUP], this.endDrag, useCapture);
+ if(goog.fx.Dragger.HAS_SET_CAPTURE_) {
+ docEl.setCapture(false);
+ this.eventHandler_.listen(docEl, goog.events.EventType.LOSECAPTURE, this.endDrag)
+ }else {
+ this.eventHandler_.listen(goog.dom.getWindow(doc), goog.events.EventType.BLUR, this.endDrag)
+ }
+ if(goog.userAgent.IE && this.ieDragStartCancellingOn_) {
+ this.eventHandler_.listen(doc, goog.events.EventType.DRAGSTART, goog.events.Event.preventDefault)
+ }
+ if(this.scrollTarget_) {
+ this.eventHandler_.listen(this.scrollTarget_, goog.events.EventType.SCROLL, this.onScroll_, useCapture)
+ }
+};
+goog.fx.Dragger.prototype.fireDragStart_ = function(e) {
+ return this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.START, this, e.clientX, e.clientY, e))
+};
+goog.fx.Dragger.prototype.cleanUpAfterDragging_ = function() {
+ this.eventHandler_.removeAll();
+ if(goog.fx.Dragger.HAS_SET_CAPTURE_) {
+ this.document_.releaseCapture()
+ }
+};
+goog.fx.Dragger.prototype.endDrag = function(e, opt_dragCanceled) {
+ this.cleanUpAfterDragging_();
+ if(this.dragging_) {
+ this.maybeReinitTouchEvent_(e);
+ this.dragging_ = false;
+ var x = this.limitX(this.deltaX);
+ var y = this.limitY(this.deltaY);
+ var dragCanceled = opt_dragCanceled || e.type == goog.events.EventType.TOUCHCANCEL;
+ this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.END, this, e.clientX, e.clientY, e, x, y, dragCanceled))
+ }else {
+ this.dispatchEvent(goog.fx.Dragger.EventType.EARLY_CANCEL)
+ }
+ if(e.type == goog.events.EventType.TOUCHEND || e.type == goog.events.EventType.TOUCHCANCEL) {
+ e.preventDefault()
+ }
+};
+goog.fx.Dragger.prototype.endDragCancel = function(e) {
+ this.endDrag(e, true)
+};
+goog.fx.Dragger.prototype.maybeReinitTouchEvent_ = function(e) {
+ var type = e.type;
+ if(type == goog.events.EventType.TOUCHSTART || type == goog.events.EventType.TOUCHMOVE) {
+ e.init(e.getBrowserEvent().targetTouches[0], e.currentTarget)
+ }else {
+ if(type == goog.events.EventType.TOUCHEND || type == goog.events.EventType.TOUCHCANCEL) {
+ e.init(e.getBrowserEvent().changedTouches[0], e.currentTarget)
+ }
+ }
+};
+goog.fx.Dragger.prototype.handleMove_ = function(e) {
+ if(this.enabled_) {
+ this.maybeReinitTouchEvent_(e);
+ var sign = this.useRightPositioningForRtl_ && this.isRightToLeft_() ? -1 : 1;
+ var dx = sign * (e.clientX - this.clientX);
+ var dy = e.clientY - this.clientY;
+ this.clientX = e.clientX;
+ this.clientY = e.clientY;
+ this.screenX = e.screenX;
+ this.screenY = e.screenY;
+ if(!this.dragging_) {
+ var diffX = this.startX - this.clientX;
+ var diffY = this.startY - this.clientY;
+ var distance = diffX * diffX + diffY * diffY;
+ if(distance > this.hysteresisDistanceSquared_) {
+ if(this.fireDragStart_(e)) {
+ this.dragging_ = true
+ }else {
+ if(!this.isDisposed()) {
+ this.endDrag(e)
+ }
+ return
+ }
+ }
+ }
+ var pos = this.calculatePosition_(dx, dy);
+ var x = pos.x;
+ var y = pos.y;
+ if(this.dragging_) {
+ var rv = this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.BEFOREDRAG, this, e.clientX, e.clientY, e, x, y));
+ if(rv) {
+ this.doDrag(e, x, y, false);
+ e.preventDefault()
+ }
+ }
+ }
+};
+goog.fx.Dragger.prototype.calculatePosition_ = function(dx, dy) {
+ var pageScroll = goog.dom.getDomHelper(this.document_).getDocumentScroll();
+ dx += pageScroll.x - this.pageScroll.x;
+ dy += pageScroll.y - this.pageScroll.y;
+ this.pageScroll = pageScroll;
+ this.deltaX += dx;
+ this.deltaY += dy;
+ var x = this.limitX(this.deltaX);
+ var y = this.limitY(this.deltaY);
+ return new goog.math.Coordinate(x, y)
+};
+goog.fx.Dragger.prototype.onScroll_ = function(e) {
+ var pos = this.calculatePosition_(0, 0);
+ e.clientX = this.clientX;
+ e.clientY = this.clientY;
+ this.doDrag(e, pos.x, pos.y, true)
+};
+goog.fx.Dragger.prototype.doDrag = function(e, x, y, dragFromScroll) {
+ this.defaultAction(x, y);
+ this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.DRAG, this, e.clientX, e.clientY, e, x, y))
+};
+goog.fx.Dragger.prototype.limitX = function(x) {
+ var rect = this.limits;
+ var left = !isNaN(rect.left) ? rect.left : null;
+ var width = !isNaN(rect.width) ? rect.width : 0;
+ var maxX = left != null ? left + width : Infinity;
+ var minX = left != null ? left : -Infinity;
+ return Math.min(maxX, Math.max(minX, x))
+};
+goog.fx.Dragger.prototype.limitY = function(y) {
+ var rect = this.limits;
+ var top = !isNaN(rect.top) ? rect.top : null;
+ var height = !isNaN(rect.height) ? rect.height : 0;
+ var maxY = top != null ? top + height : Infinity;
+ var minY = top != null ? top : -Infinity;
+ return Math.min(maxY, Math.max(minY, y))
+};
+goog.fx.Dragger.prototype.defaultAction = function(x, y) {
+ if(this.useRightPositioningForRtl_ && this.isRightToLeft_()) {
+ this.target.style.right = x + "px"
+ }else {
+ this.target.style.left = x + "px"
+ }
+ this.target.style.top = y + "px"
+};
+goog.fx.Dragger.prototype.isDragging = function() {
+ return this.dragging_
+};
+goog.fx.DragEvent = function(type, dragobj, clientX, clientY, browserEvent, opt_actX, opt_actY, opt_dragCanceled) {
+ goog.events.Event.call(this, type);
+ this.clientX = clientX;
+ this.clientY = clientY;
+ this.browserEvent = browserEvent;
+ this.left = goog.isDef(opt_actX) ? opt_actX : dragobj.deltaX;
+ this.top = goog.isDef(opt_actY) ? opt_actY : dragobj.deltaY;
+ this.dragger = dragobj;
+ this.dragCanceled = !!opt_dragCanceled
+};
+goog.inherits(goog.fx.DragEvent, goog.events.Event);
+goog.provide("ol.control.ZoomSlider");
+goog.require("goog.asserts");
+goog.require("goog.dom");
+goog.require("goog.dom.TagName");
+goog.require("goog.events");
+goog.require("goog.fx.Dragger");
+goog.require("goog.style");
+goog.require("ol.MapEventType");
+goog.require("ol.control.Control");
+ol.control.ZoomSlider = function(zoomSliderOptions) {
+ this.maxResolution_ = goog.isDef(zoomSliderOptions.maxResolution) ? zoomSliderOptions.maxResolution : ol.control.ZoomSlider.DEFAULT_MAX_RESOLUTION;
+ this.minResolution_ = goog.isDef(zoomSliderOptions.minResolution) ? zoomSliderOptions.minResolution : ol.control.ZoomSlider.DEFAULT_MIN_RESOLUTION;
+ goog.asserts.assert(this.minResolution_ < this.maxResolution_, "minResolution must be smaller than maxResolution.");
+ this.range_ = this.maxResolution_ - this.minResolution_;
+ this.currentResolution_;
+ this.direction_ = ol.control.ZoomSlider.direction.VERTICAL;
+ this.mapListenerKeys_ = null;
+ this.draggerListenerKeys_ = null;
+ var elem = this.createDom_();
+ this.dragger_ = this.createDraggable_(elem);
+ goog.events.listen(elem, [goog.events.EventType.TOUCHEND, goog.events.EventType.CLICK], this.handleContainerClick_, false, this);
+ goog.base(this, {element:elem, map:zoomSliderOptions.map})
+};
+goog.inherits(ol.control.ZoomSlider, ol.control.Control);
+ol.control.ZoomSlider.direction = {VERTICAL:0, HORIZONTAL:1};
+ol.control.ZoomSlider.CSS_CLASS_CONTAINER = "ol-zoomslider";
+ol.control.ZoomSlider.CSS_CLASS_THUMB = ol.control.ZoomSlider.CSS_CLASS_CONTAINER + "-thumb";
+ol.control.ZoomSlider.DEFAULT_MIN_RESOLUTION = 0.5971642833948135;
+ol.control.ZoomSlider.DEFAULT_MAX_RESOLUTION = 156543.0339;
+ol.control.ZoomSlider.prototype.setMap = function(map) {
+ goog.base(this, "setMap", map);
+ this.currentResolution_ = map.getView().getResolution();
+ this.initMapEventListeners_();
+ this.initSlider_();
+ this.positionThumbForResolution_(this.currentResolution_)
+};
+ol.control.ZoomSlider.prototype.initMapEventListeners_ = function() {
+ if(!goog.isNull(this.mapListenerKeys_)) {
+ goog.array.forEach(this.mapListenerKeys_, goog.events.unlistenByKey);
+ this.mapListenerKeys_ = null
+ }
+ if(!goog.isNull(this.getMap())) {
+ this.mapListenerKeys_ = [goog.events.listen(this.getMap(), ol.MapEventType.POSTRENDER, this.handleMapPostRender_, undefined, this)]
+ }
+};
+ol.control.ZoomSlider.prototype.initSlider_ = function() {
+ var container = this.element, thumb = goog.dom.getFirstElementChild(container), elemSize = goog.style.getContentBoxSize(container), thumbBounds = goog.style.getBounds(thumb), thumbMargins = goog.style.getMarginBox(thumb), thumbBorderBox = goog.style.getBorderBox(thumb), w = elemSize.width - thumbMargins.left - thumbMargins.right - thumbBorderBox.left - thumbBorderBox.right - thumbBounds.width, h = elemSize.height - thumbMargins.top - thumbMargins.bottom - thumbBorderBox.top - thumbBorderBox.bottom -
+ thumbBounds.height, limits;
+ if(elemSize.width > elemSize.height) {
+ this.direction_ = ol.control.ZoomSlider.direction.HORIZONTAL;
+ limits = new goog.math.Rect(0, 0, w, 0)
+ }else {
+ this.direction_ = ol.control.ZoomSlider.direction.VERTICAL;
+ limits = new goog.math.Rect(0, 0, 0, h)
+ }
+ this.dragger_.setLimits(limits)
+};
+ol.control.ZoomSlider.prototype.handleMapPostRender_ = function(mapEvtObj) {
+ var res = mapEvtObj.frameState.view2DState.resolution;
+ if(res !== this.currentResolution_) {
+ this.currentResolution_ = res;
+ this.positionThumbForResolution_(res)
+ }
+};
+ol.control.ZoomSlider.prototype.handleContainerClick_ = function(browserEvent) {
+};
+ol.control.ZoomSlider.prototype.positionThumbForResolution_ = function(res) {
+ var amount = this.amountForResolution_(res), dragger = this.dragger_, thumb = goog.dom.getFirstElementChild(this.element);
+ if(this.direction_ == ol.control.ZoomSlider.direction.HORIZONTAL) {
+ var left = dragger.limits.left + dragger.limits.width * amount;
+ goog.style.setPosition(thumb, left)
+ }else {
+ var top = dragger.limits.top + dragger.limits.height * amount;
+ goog.style.setPosition(thumb, dragger.limits.left, top)
+ }
+};
+ol.control.ZoomSlider.prototype.amountDragged_ = function(e) {
+ var draggerLimits = this.dragger_.limits, amount = 0;
+ if(this.direction_ === ol.control.ZoomSlider.direction.HORIZONTAL) {
+ amount = (e.left - draggerLimits.left) / draggerLimits.width
+ }else {
+ amount = (e.top - draggerLimits.top) / draggerLimits.height
+ }
+ return amount
+};
+ol.control.ZoomSlider.prototype.resolutionForAmount_ = function(amount) {
+ var saneAmount = goog.math.clamp(amount, 0, 1);
+ return this.minResolution_ + this.range_ * saneAmount
+};
+ol.control.ZoomSlider.prototype.amountForResolution_ = function(res) {
+ var saneRes = goog.math.clamp(res, this.minResolution_, this.maxResolution_);
+ return(saneRes - this.minResolution_) / this.range_
+};
+ol.control.ZoomSlider.prototype.handleSliderChange_ = function(e) {
+ var map = this.getMap(), amountDragged = this.amountDragged_(e), res = this.resolutionForAmount_(amountDragged);
+ goog.asserts.assert(res >= this.minResolution_ && res <= this.maxResolution_, "calculated new resolution is in allowed bounds.");
+ if(res !== this.currentResolution_) {
+ this.currentResolution_ = res;
+ map.getView().setResolution(res)
+ }
+};
+ol.control.ZoomSlider.prototype.createDraggable_ = function(elem) {
+ if(!goog.isNull(this.draggerListenerKeys_)) {
+ goog.array.forEach(this.draggerListenerKeys_, goog.events.unlistenByKey);
+ this.draggerListenerKeys_ = null
+ }
+ var dragger = new goog.fx.Dragger(elem.childNodes[0]);
+ this.draggerListenerKeys_ = [goog.events.listen(dragger, [goog.fx.Dragger.EventType.DRAG, goog.fx.Dragger.EventType.END], this.handleSliderChange_, undefined, this)];
+ return dragger
+};
+ol.control.ZoomSlider.prototype.createDom_ = function(opt_elem) {
+ var elem, sliderCssCls = ol.control.ZoomSlider.CSS_CLASS_CONTAINER + " ol-unselectable", thumbCssCls = ol.control.ZoomSlider.CSS_CLASS_THUMB + " ol-unselectable";
+ elem = goog.dom.createDom(goog.dom.TagName.DIV, sliderCssCls, goog.dom.createDom(goog.dom.TagName.DIV, thumbCssCls));
+ return elem
+};
goog.provide("ol.ellipsoid.WGS84");
goog.require("ol.Ellipsoid");
ol.ellipsoid.WGS84 = new ol.Ellipsoid(6378137, 1 / 298.257223563);
+goog.provide("ol.geom.GeometryCollection");
+goog.require("ol.geom.AbstractCollection");
+goog.require("ol.geom.Geometry");
+goog.require("ol.geom.GeometryType");
+ol.geom.GeometryCollection = function(geometries) {
+ goog.base(this);
+ this.components = geometries;
+ var dimension = 0;
+ for(var i = 0, ii = geometries.length;i < ii;++i) {
+ if(goog.isDef(dimension)) {
+ dimension = geometries[i].dimension
+ }else {
+ goog.asserts.assert(dimension == geometries[i].dimension)
+ }
+ }
+ this.dimension = dimension
+};
+goog.inherits(ol.geom.GeometryCollection, ol.geom.AbstractCollection);
+ol.geom.GeometryCollection.prototype.getType = function() {
+ return ol.geom.GeometryType.GEOMETRYCOLLECTION
+};
goog.provide("ol.interaction.DragRotateAndZoom");
goog.require("goog.math.Vec2");
goog.require("ol.View2D");
@@ -17776,10 +19877,164 @@ ol.interaction.Keyboard.prototype.handleMapBrowserEvent = function(mapBrowserEve
}
}
};
+goog.provide("ol.parser.DomFeatureParser");
+goog.provide("ol.parser.ObjectFeatureParser");
+goog.provide("ol.parser.ReadFeaturesOptions");
+goog.provide("ol.parser.StringFeatureParser");
+goog.require("ol.Feature");
+ol.parser.DomFeatureParser = function() {
+};
+ol.parser.DomFeatureParser.prototype.readFeaturesFromNode = goog.abstractMethod;
+ol.parser.ObjectFeatureParser = function() {
+};
+ol.parser.ObjectFeatureParser.prototype.readFeaturesFromObject = goog.abstractMethod;
+ol.parser.StringFeatureParser = function() {
+};
+ol.parser.StringFeatureParser.prototype.readFeaturesFromString = goog.abstractMethod;
+ol.parser.ReadFeaturesCallback;
+ol.parser.ReadFeaturesOptions;
+goog.provide("ol.parser.Parser");
+ol.parser.Parser = function() {
+};
+goog.provide("ol.parser.GeoJSON");
+goog.require("ol.Feature");
+goog.require("ol.geom.Geometry");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.LineString");
+goog.require("ol.geom.MultiLineString");
+goog.require("ol.geom.MultiPoint");
+goog.require("ol.geom.MultiPolygon");
+goog.require("ol.geom.Point");
+goog.require("ol.geom.Polygon");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.parser.Parser");
+goog.require("ol.parser.ReadFeaturesOptions");
+goog.require("ol.parser.StringFeatureParser");
+ol.parser.GeoJSON = function() {
+};
+goog.inherits(ol.parser.GeoJSON, ol.parser.Parser);
+ol.parser.GeoJSON.prototype.read = function(str) {
+ var json = JSON.parse(str);
+ return this.parse_(json)
+};
+ol.parser.GeoJSON.prototype.readFeaturesFromString = function(str, opt_options) {
+ var json = JSON.parse(str);
+ return this.parseFeatureCollection_(json, opt_options)
+};
+ol.parser.GeoJSON.prototype.readFeaturesFromObject = function(object, opt_options) {
+ return this.parseFeatureCollection_(object, opt_options)
+};
+ol.parser.GeoJSON.prototype.parse_ = function(json) {
+ var result;
+ switch(json.type) {
+ case "FeatureCollection":
+ result = this.parseFeatureCollection_(json);
+ break;
+ case "Feature":
+ result = this.parseFeature_(json);
+ break;
+ case "GeometryCollection":
+ result = this.parseGeometryCollection_(json);
+ break;
+ case "Point":
+ result = this.parsePoint_(json);
+ break;
+ case "LineString":
+ result = this.parseLineString_(json);
+ break;
+ case "Polygon":
+ result = this.parsePolygon_(json);
+ break;
+ case "MultiPoint":
+ result = this.parseMultiPoint_(json);
+ break;
+ case "MultiLineString":
+ result = this.parseMultiLineString_(json);
+ break;
+ case "MultiPolygon":
+ result = this.parseMultiPolygon_(json);
+ break;
+ default:
+ throw new Error("GeoJSON parsing not implemented for type: " + json.type);
+ }
+ return result
+};
+ol.parser.GeoJSON.prototype.parseFeature_ = function(json, opt_options) {
+ var geomJson = json.geometry, geometry = null, options = opt_options || {};
+ var feature = new ol.Feature(json.properties);
+ if(geomJson) {
+ var type = geomJson.type;
+ var callback = options.callback;
+ var sharedVertices;
+ if(callback) {
+ goog.asserts.assert(type in ol.parser.GeoJSON.GeometryType, "Bad geometry type: " + type);
+ sharedVertices = callback(feature, ol.parser.GeoJSON.GeometryType[type])
+ }
+ switch(type) {
+ case "Point":
+ geometry = this.parsePoint_(geomJson, sharedVertices);
+ break;
+ case "LineString":
+ geometry = this.parseLineString_(geomJson, sharedVertices);
+ break;
+ case "Polygon":
+ geometry = this.parsePolygon_(geomJson, sharedVertices);
+ break;
+ case "MultiPoint":
+ geometry = this.parseMultiPoint_(geomJson, sharedVertices);
+ break;
+ case "MultiLineString":
+ geometry = this.parseMultiLineString_(geomJson, sharedVertices);
+ break;
+ case "MultiPolygon":
+ geometry = this.parseMultiPolygon_(geomJson, sharedVertices);
+ break;
+ default:
+ throw new Error("Bad geometry type: " + type);
+ }
+ feature.setGeometry(geometry)
+ }
+ return feature
+};
+ol.parser.GeoJSON.prototype.parseFeatureCollection_ = function(json, opt_options) {
+ var features = json.features, len = features.length, result = new Array(len), i;
+ for(i = 0;i < len;++i) {
+ result[i] = this.parseFeature_(features[i], opt_options)
+ }
+ return result
+};
+ol.parser.GeoJSON.prototype.parseGeometryCollection_ = function(json) {
+ var geometries = json.geometries, len = geometries.length, result = new Array(len), i;
+ for(i = 0;i < len;++i) {
+ result[i] = this.parse_(geometries[i])
+ }
+ return result
+};
+ol.parser.GeoJSON.prototype.parseLineString_ = function(json, opt_vertices) {
+ return new ol.geom.LineString(json.coordinates, opt_vertices)
+};
+ol.parser.GeoJSON.prototype.parseMultiLineString_ = function(json, opt_vertices) {
+ return new ol.geom.MultiLineString(json.coordinates, opt_vertices)
+};
+ol.parser.GeoJSON.prototype.parseMultiPoint_ = function(json, opt_vertices) {
+ return new ol.geom.MultiPoint(json.coordinates, opt_vertices)
+};
+ol.parser.GeoJSON.prototype.parseMultiPolygon_ = function(json, opt_vertices) {
+ return new ol.geom.MultiPolygon(json.coordinates, opt_vertices)
+};
+ol.parser.GeoJSON.prototype.parsePoint_ = function(json, opt_vertices) {
+ return new ol.geom.Point(json.coordinates, opt_vertices)
+};
+ol.parser.GeoJSON.prototype.parsePolygon_ = function(json, opt_vertices) {
+ return new ol.geom.Polygon(json.coordinates, opt_vertices)
+};
+ol.parser.GeoJSON.GeometryType = {"Point":ol.geom.GeometryType.POINT, "LineString":ol.geom.GeometryType.LINESTRING, "Polygon":ol.geom.GeometryType.POLYGON, "MultiPoint":ol.geom.GeometryType.MULTIPOINT, "MultiLineString":ol.geom.GeometryType.MULTILINESTRING, "MultiPolygon":ol.geom.GeometryType.MULTIPOLYGON, "GeometryCollection":ol.geom.GeometryType.GEOMETRYCOLLECTION};
goog.provide("ol.parser.XML");
+goog.require("ol.parser.Parser");
ol.parser.XML = function() {
this.regExes = {trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g}
};
+goog.inherits(ol.parser.XML, ol.parser.Parser);
ol.parser.XML.prototype.readNode = function(node, obj) {
if(!obj) {
obj = {}
@@ -18844,6 +21099,158 @@ ol.parser.ogc.WMTSCapabilities = function(opt_options) {
goog.base(this, opt_options)
};
goog.inherits(ol.parser.ogc.WMTSCapabilities, ol.parser.ogc.Versioned);
+goog.provide("ol.parser.polyline");
+ol.parser.polyline.encodeFlatCoordinates = function(flatPoints, opt_dimension) {
+ var dimension = opt_dimension || 2;
+ return ol.parser.polyline.encodeDeltas(flatPoints, dimension)
+};
+ol.parser.polyline.decodeFlatCoordinates = function(encoded, opt_dimension) {
+ var dimension = opt_dimension || 2;
+ return ol.parser.polyline.decodeDeltas(encoded, dimension)
+};
+ol.parser.polyline.encodeDeltas = function(numbers, dimension, opt_factor) {
+ var factor = opt_factor || 1E5;
+ var d;
+ var lastNumbers = new Array(dimension);
+ for(d = 0;d < dimension;++d) {
+ lastNumbers[d] = 0
+ }
+ var numbersLength = numbers.length;
+ for(var i = 0;i < numbersLength;) {
+ for(d = 0;d < dimension;++d, ++i) {
+ var num = numbers[i];
+ var delta = num - lastNumbers[d];
+ lastNumbers[d] = num;
+ numbers[i] = delta
+ }
+ }
+ return ol.parser.polyline.encodeFloats(numbers, factor)
+};
+ol.parser.polyline.decodeDeltas = function(encoded, dimension, opt_factor) {
+ var factor = opt_factor || 1E5;
+ var d;
+ var lastNumbers = new Array(dimension);
+ for(d = 0;d < dimension;++d) {
+ lastNumbers[d] = 0
+ }
+ var numbers = ol.parser.polyline.decodeFloats(encoded, factor);
+ var numbersLength = numbers.length;
+ for(var i = 0;i < numbersLength;) {
+ for(d = 0;d < dimension;++d, ++i) {
+ lastNumbers[d] += numbers[i];
+ numbers[i] = lastNumbers[d]
+ }
+ }
+ return numbers
+};
+ol.parser.polyline.encodeFloats = function(numbers, opt_factor) {
+ var factor = opt_factor || 1E5;
+ var numbersLength = numbers.length;
+ for(var i = 0;i < numbersLength;++i) {
+ numbers[i] = Math.round(numbers[i] * factor)
+ }
+ return ol.parser.polyline.encodeSignedIntegers(numbers)
+};
+ol.parser.polyline.decodeFloats = function(encoded, opt_factor) {
+ var factor = opt_factor || 1E5;
+ var numbers = ol.parser.polyline.decodeSignedIntegers(encoded);
+ var numbersLength = numbers.length;
+ for(var i = 0;i < numbersLength;++i) {
+ numbers[i] /= factor
+ }
+ return numbers
+};
+ol.parser.polyline.encodeSignedIntegers = function(numbers) {
+ var numbersLength = numbers.length;
+ for(var i = 0;i < numbersLength;++i) {
+ var num = numbers[i];
+ var signedNum = num << 1;
+ if(num < 0) {
+ signedNum = ~signedNum
+ }
+ numbers[i] = signedNum
+ }
+ return ol.parser.polyline.encodeUnsignedIntegers(numbers)
+};
+ol.parser.polyline.decodeSignedIntegers = function(encoded) {
+ var numbers = ol.parser.polyline.decodeUnsignedIntegers(encoded);
+ var numbersLength = numbers.length;
+ for(var i = 0;i < numbersLength;++i) {
+ var num = numbers[i];
+ numbers[i] = num & 1 ? ~(num >> 1) : num >> 1
+ }
+ return numbers
+};
+ol.parser.polyline.encodeUnsignedIntegers = function(numbers) {
+ var encoded = "";
+ var numbersLength = numbers.length;
+ for(var i = 0;i < numbersLength;++i) {
+ encoded += ol.parser.polyline.encodeUnsignedInteger(numbers[i])
+ }
+ return encoded
+};
+ol.parser.polyline.decodeUnsignedIntegers = function(encoded) {
+ var numbers = [];
+ var current = 0;
+ var shift = 0;
+ var encodedLength = encoded.length;
+ for(var i = 0;i < encodedLength;++i) {
+ var b = encoded.charCodeAt(i) - 63;
+ current |= (b & 31) << shift;
+ if(b < 32) {
+ numbers.push(current);
+ current = 0;
+ shift = 0
+ }else {
+ shift += 5
+ }
+ }
+ return numbers
+};
+ol.parser.polyline.encodeFloat = function(num, opt_factor) {
+ num = Math.round(num * (opt_factor || 1E5));
+ return ol.parser.polyline.encodeSignedInteger(num)
+};
+ol.parser.polyline.decodeFloat = function(encoded, opt_factor) {
+ var result = ol.parser.polyline.decodeSignedInteger(encoded);
+ return result / (opt_factor || 1E5)
+};
+ol.parser.polyline.encodeSignedInteger = function(num) {
+ var signedNum = num << 1;
+ if(num < 0) {
+ signedNum = ~signedNum
+ }
+ return ol.parser.polyline.encodeUnsignedInteger(signedNum)
+};
+ol.parser.polyline.decodeSignedInteger = function(encoded) {
+ var result = ol.parser.polyline.decodeUnsignedInteger(encoded);
+ return result & 1 ? ~(result >> 1) : result >> 1
+};
+ol.parser.polyline.encodeUnsignedInteger = function(num) {
+ var value, encoded = "";
+ while(num >= 32) {
+ value = (32 | num & 31) + 63;
+ encoded += String.fromCharCode(value);
+ num >>= 5
+ }
+ value = num + 63;
+ encoded += String.fromCharCode(value);
+ return encoded
+};
+ol.parser.polyline.decodeUnsignedInteger = function(encoded) {
+ var result = 0;
+ var shift = 0;
+ var encodedLength = encoded.length;
+ for(var i = 0;i < encodedLength;++i) {
+ var b = encoded.charCodeAt(i) - 63;
+ result |= (b & 31) << shift;
+ if(b < 32) {
+ break
+ }
+ shift += 5
+ }
+ return result
+};
/*
Portions of this code are from MochiKit, received by
The Closure Authors under the MIT license. All other code is Copyright
@@ -19315,10 +21722,9 @@ ol.source.ImageTileSource.prototype.getTile = function(tileCoord, tileGrid, proj
return tile
}
};
-ol.source.ImageTileSource.prototype.useTile = function(tileCoord) {
- var key = tileCoord.toString();
- if(this.tileCache_.containsKey(key)) {
- this.tileCache_.get(key)
+ol.source.ImageTileSource.prototype.useTile = function(tileCoordKey) {
+ if(this.tileCache_.containsKey(tileCoordKey)) {
+ this.tileCache_.get(tileCoordKey)
}
};
goog.provide("ol.tilegrid.XYZ");
@@ -19525,7 +21931,7 @@ ol.source.XYZ = function(xyzOptions) {
tileUrlFunction = ol.TileUrlFunction.createFromTemplates(xyzOptions.urls)
}else {
if(goog.isDef(xyzOptions.url)) {
- tileUrlFunction = ol.TileUrlFunction.createFromTemplate(xyzOptions.url)
+ tileUrlFunction = ol.TileUrlFunction.createFromTemplates(ol.TileUrlFunction.expandUrl(xyzOptions.url))
}
}
}
@@ -19598,7 +22004,7 @@ ol.source.SingleImageWMS = function(options) {
var imageUrlFunction = goog.isDef(options.url) ? ol.ImageUrlFunction.createWMSParams(options.url, options.params) : ol.ImageUrlFunction.nullImageUrlFunction;
goog.base(this, {attributions:options.attributions, crossOrigin:options.crossOrigin, extent:options.extent, projection:options.projection, resolutions:options.resolutions, imageUrlFunction:imageUrlFunction});
this.image_ = null;
- this.ratio_ = 1.5
+ this.ratio_ = goog.isDef(options.ratio) ? options.ratio : 1.5
};
goog.inherits(ol.source.SingleImageWMS, ol.source.ImageSource);
ol.source.SingleImageWMS.prototype.getImage = function(extent, resolution, projection) {
@@ -19750,18 +22156,16 @@ ol.source.TiledWMS = function(tiledWMSOptions) {
if(goog.isDef(tiledWMSOptions.tileGrid)) {
tileGrid = tiledWMSOptions.tileGrid
}
- var tileUrlFunction;
- if(tiledWMSOptions.urls) {
- var tileUrlFunctions = goog.array.map(tiledWMSOptions.urls, function(url) {
+ var tileUrlFunction = ol.TileUrlFunction.nullTileUrlFunction;
+ var urls = tiledWMSOptions.urls;
+ if(!goog.isDef(urls) && goog.isDef(tiledWMSOptions.url)) {
+ urls = ol.TileUrlFunction.expandUrl(tiledWMSOptions.url)
+ }
+ if(goog.isDef(urls)) {
+ var tileUrlFunctions = goog.array.map(urls, function(url) {
return ol.TileUrlFunction.createWMSParams(url, tiledWMSOptions.params)
});
tileUrlFunction = ol.TileUrlFunction.createFromTileUrlFunctions(tileUrlFunctions)
- }else {
- if(tiledWMSOptions.url) {
- tileUrlFunction = ol.TileUrlFunction.createWMSParams(tiledWMSOptions.url, tiledWMSOptions.params)
- }else {
- tileUrlFunction = ol.TileUrlFunction.nullTileUrlFunction
- }
}
var transparent = goog.isDef(tiledWMSOptions.params["TRANSPARENT"]) ? tiledWMSOptions.params["TRANSPARENT"] : true;
var extent = tiledWMSOptions.extent;
@@ -19821,8 +22225,6 @@ ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet = function(matrixSet) {
goog.provide("ol.source.WMTS");
goog.provide("ol.source.WMTSRequestEncoding");
goog.require("ol.Attribution");
-goog.require("ol.Extent");
-goog.require("ol.Projection");
goog.require("ol.TileCoord");
goog.require("ol.TileUrlFunction");
goog.require("ol.TileUrlFunctionType");
@@ -19843,23 +22245,6 @@ ol.source.WMTS = function(wmtsOptions) {
kvpParams = {"Service":"WMTS", "Request":"GetTile", "Version":version, "Format":format, "TileMatrix":"{TileMatrix}", "TileRow":"{TileRow}", "TileCol":"{TileCol}"};
goog.object.extend(kvpParams, context)
}
- var urls = wmtsOptions.urls;
- if(!goog.isDef(urls)) {
- urls = [];
- var url = wmtsOptions.url;
- goog.asserts.assert(goog.isDef(url));
- var match = /\{(\d)-(\d)\}/.exec(url) || /\{([a-z])-([a-z])\}/.exec(url);
- if(match) {
- var startCharCode = match[1].charCodeAt(0);
- var stopCharCode = match[2].charCodeAt(0);
- var charCode;
- for(charCode = startCharCode;charCode <= stopCharCode;++charCode) {
- urls.push(url.replace(match[0], String.fromCharCode(charCode)))
- }
- }else {
- urls.push(url)
- }
- }
function createFromWMTSTemplate(template) {
return function(tileCoord) {
if(goog.isNull(tileCoord)) {
@@ -19877,12 +22262,19 @@ ol.source.WMTS = function(wmtsOptions) {
}
}
}
- var tileUrlFunction = ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(urls, function(url) {
- if(goog.isDef(kvpParams)) {
- url = goog.uri.utils.appendParamsFromMap(url, kvpParams)
- }
- return createFromWMTSTemplate(url)
- }));
+ var tileUrlFunction = ol.TileUrlFunction.nullTileUrlFunction;
+ var urls = wmtsOptions.urls;
+ if(!goog.isDef(urls) && goog.isDef(wmtsOptions.url)) {
+ urls = ol.TileUrlFunction.expandUrl(wmtsOptions.url)
+ }
+ if(goog.isDef(urls)) {
+ tileUrlFunction = ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(urls, function(url) {
+ if(goog.isDef(kvpParams)) {
+ url = goog.uri.utils.appendParamsFromMap(url, kvpParams)
+ }
+ return createFromWMTSTemplate(url)
+ }))
+ }
tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(function(tileCoord, tileGrid, projection) {
if(tileGrid.getResolutions().length <= tileCoord.z) {
return null
@@ -19980,7 +22372,10 @@ goog.require("ol.Constraints");
goog.require("ol.Coordinate");
goog.require("ol.CoordinateFormatType");
goog.require("ol.Ellipsoid");
+goog.require("ol.Expression");
+goog.require("ol.ExpressionLiteral");
goog.require("ol.Extent");
+goog.require("ol.Feature");
goog.require("ol.FrameState");
goog.require("ol.Geolocation");
goog.require("ol.GeolocationProperty");
@@ -20044,11 +22439,32 @@ goog.require("ol.control.MousePosition");
goog.require("ol.control.ScaleLine");
goog.require("ol.control.ScaleLineUnits");
goog.require("ol.control.Zoom");
+goog.require("ol.control.ZoomSlider");
goog.require("ol.control.defaults");
goog.require("ol.dom");
goog.require("ol.dom.BrowserFeature");
goog.require("ol.easing");
goog.require("ol.ellipsoid.WGS84");
+goog.require("ol.filter.Extent");
+goog.require("ol.filter.Filter");
+goog.require("ol.filter.Geometry");
+goog.require("ol.filter.GeometryType");
+goog.require("ol.filter.Logical");
+goog.require("ol.filter.LogicalOperator");
+goog.require("ol.geom.AbstractCollection");
+goog.require("ol.geom.Geometry");
+goog.require("ol.geom.GeometryCollection");
+goog.require("ol.geom.GeometryType");
+goog.require("ol.geom.LineString");
+goog.require("ol.geom.LinearRing");
+goog.require("ol.geom.MultiLineString");
+goog.require("ol.geom.MultiPoint");
+goog.require("ol.geom.MultiPolygon");
+goog.require("ol.geom.Point");
+goog.require("ol.geom.Polygon");
+goog.require("ol.geom.SharedVertices");
+goog.require("ol.geom.Vertex");
+goog.require("ol.geom.VertexArray");
goog.require("ol.interaction.ConditionType");
goog.require("ol.interaction.DblClickZoom");
goog.require("ol.interaction.Drag");
@@ -20072,7 +22488,14 @@ goog.require("ol.layer.Layer");
goog.require("ol.layer.LayerProperty");
goog.require("ol.layer.LayerState");
goog.require("ol.layer.TileLayer");
+goog.require("ol.layer.Vector");
goog.require("ol.math");
+goog.require("ol.parser.DomFeatureParser");
+goog.require("ol.parser.GeoJSON");
+goog.require("ol.parser.ObjectFeatureParser");
+goog.require("ol.parser.Parser");
+goog.require("ol.parser.ReadFeaturesOptions");
+goog.require("ol.parser.StringFeatureParser");
goog.require("ol.parser.XML");
goog.require("ol.parser.ogc.ExceptionReport");
goog.require("ol.parser.ogc.OWSCommon_v1");
@@ -20088,6 +22511,7 @@ goog.require("ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC");
goog.require("ol.parser.ogc.WMSCapabilities_v1_3_0");
goog.require("ol.parser.ogc.WMTSCapabilities");
goog.require("ol.parser.ogc.WMTSCapabilities_v1_0_0");
+goog.require("ol.parser.polyline");
goog.require("ol.projection");
goog.require("ol.projection.EPSG3857");
goog.require("ol.projection.EPSG4326");
@@ -20099,6 +22523,8 @@ goog.require("ol.renderer.canvas.Layer");
goog.require("ol.renderer.canvas.Map");
goog.require("ol.renderer.canvas.SUPPORTED");
goog.require("ol.renderer.canvas.TileLayer");
+goog.require("ol.renderer.canvas.VectorLayer");
+goog.require("ol.renderer.canvas.VectorRenderer");
goog.require("ol.renderer.dom.ImageLayer");
goog.require("ol.renderer.dom.Layer");
goog.require("ol.renderer.dom.Map");
@@ -20131,6 +22557,7 @@ goog.require("ol.source.TileJSON");
goog.require("ol.source.TileSource");
goog.require("ol.source.TileSourceOptions");
goog.require("ol.source.TiledWMS");
+goog.require("ol.source.Vector");
goog.require("ol.source.WMTS");
goog.require("ol.source.WMTSRequestEncoding");
goog.require("ol.source.XYZ");
@@ -20139,6 +22566,23 @@ goog.require("ol.source.wms");
goog.require("ol.sphere.NORMAL");
goog.require("ol.sphere.WGS84");
goog.require("ol.structs.LRUCache");
+goog.require("ol.structs.RTree");
+goog.require("ol.style.Icon");
+goog.require("ol.style.IconLiteral");
+goog.require("ol.style.IconType");
+goog.require("ol.style.Line");
+goog.require("ol.style.LineLiteral");
+goog.require("ol.style.Point");
+goog.require("ol.style.PointLiteral");
+goog.require("ol.style.Polygon");
+goog.require("ol.style.PolygonLiteral");
+goog.require("ol.style.Rule");
+goog.require("ol.style.Shape");
+goog.require("ol.style.ShapeLiteral");
+goog.require("ol.style.ShapeType");
+goog.require("ol.style.Style");
+goog.require("ol.style.Symbolizer");
+goog.require("ol.style.SymbolizerLiteral");
goog.require("ol.tilegrid.TileGrid");
goog.require("ol.tilegrid.WMTS");
goog.require("ol.tilegrid.XYZ");
@@ -20160,6 +22604,7 @@ goog.provide("ol.control.DefaultsOptionsType");
goog.provide("ol.control.MousePositionOptionsType");
goog.provide("ol.control.ScaleLineOptionsType");
goog.provide("ol.control.ZoomOptionsType");
+goog.provide("ol.control.ZoomSliderOptionsType");
goog.provide("ol.interaction.DefaultOptionsType");
goog.provide("ol.interaction.KeyboardPanOptionsType");
goog.provide("ol.interaction.KeyboardZoomOptionsType");
@@ -20167,11 +22612,18 @@ goog.provide("ol.layer.LayerOptionsType");
goog.provide("ol.source.BingMapsOptionsType");
goog.provide("ol.source.DebugTileSourceOptionsType");
goog.provide("ol.source.SingleImageWMSOptionsType");
+goog.provide("ol.source.SourceOptionsType");
goog.provide("ol.source.StamenOptionsType");
goog.provide("ol.source.StaticImageOptionsType");
goog.provide("ol.source.TileJSONOptionsType");
goog.provide("ol.source.TiledWMSOptionsType");
goog.provide("ol.source.WMTSOptionsType");
+goog.provide("ol.style.IconOptionsType");
+goog.provide("ol.style.LineOptionsType");
+goog.provide("ol.style.PolygonOptionsType");
+goog.provide("ol.style.RuleOptionsType");
+goog.provide("ol.style.ShapeOptionsType");
+goog.provide("ol.style.StyleOptionsType");
goog.provide("ol.tilegrid.TileGridOptionsType");
goog.provide("ol.tilegrid.WMTSOptionsType");
goog.provide("ol.tilegrid.XYZOptionsType");
@@ -20189,6 +22641,7 @@ ol.control.DefaultsOptions;
ol.control.MousePositionOptions;
ol.control.ScaleLineOptions;
ol.control.ZoomOptions;
+ol.control.ZoomSliderOptions;
ol.interaction.DefaultOptions;
ol.interaction.KeyboardPanOptions;
ol.interaction.KeyboardZoomOptions;
@@ -20196,11 +22649,18 @@ ol.layer.LayerOptions;
ol.source.BingMapsOptions;
ol.source.DebugTileSourceOptions;
ol.source.SingleImageWMSOptions;
+ol.source.SourceOptions;
ol.source.StamenOptions;
ol.source.StaticImageOptions;
ol.source.TileJSONOptions;
ol.source.TiledWMSOptions;
ol.source.WMTSOptions;
+ol.style.IconOptions;
+ol.style.LineOptions;
+ol.style.PolygonOptions;
+ol.style.RuleOptions;
+ol.style.ShapeOptions;
+ol.style.StyleOptions;
ol.tilegrid.TileGridOptions;
ol.tilegrid.WMTSOptions;
ol.tilegrid.XYZOptions;
diff --git a/master/build/ol.css b/master/build/ol.css
index 03b93113a1..05046b4231 100644
--- a/master/build/ol.css
+++ b/master/build/ol.css
@@ -1 +1 @@
-.ol-attribution{position:absolute;font-size:10px;text-align:right;color:#eee;bottom:0;right:0;background:rgba(0,60,136,0.3);font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;padding:2px 4px}.ol-attribution a{color:white;text-decoration:none}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:"\2003"}.ol-dragbox{position:absolute;border:2px solid red}.ol-renderer-webgl-canvas{width:100%;height:100%}.ol-scale-line{background:rgba(0,60,136,0.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;text-align:center;margin:1px;padding:0 2px}.ol-viewport .ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ol-zoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px}.ol-zoom a{display:block;margin:1px;padding:0;color:white;font-size:18px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;font-weight:bold;text-decoration:none;text-align:center;height:22px;width:22px;line-height:19px;background:rgba(0,60,136,0.5)}.ol-zoom a:hover{background:rgba(0,60,136,0.7)}.ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom-in:before{content:"+"}.ol-zoom-out{border-radius:0 0 2px 2px}.ol-zoom-out:before{content:"\2212"}
\ No newline at end of file
+.ol-attribution{position:absolute;font-size:10px;text-align:right;color:#eee;bottom:0;right:0;background:rgba(0,60,136,0.3);font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;padding:2px 4px}.ol-attribution a{color:white;text-decoration:none}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:"\2003"}.ol-dragbox{position:absolute;border:2px solid red}.ol-renderer-webgl-canvas{width:100%;height:100%}.ol-scale-line{background:rgba(0,60,136,0.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;text-align:center;margin:1px;padding:0 2px}.ol-viewport .ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ol-zoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px}.ol-zoom a{display:block;margin:1px;padding:0;color:white;font-size:18px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;font-weight:bold;text-decoration:none;text-align:center;height:22px;width:22px;line-height:19px;background:rgba(0,60,136,0.5)}.ol-zoom a:hover{background:rgba(0,60,136,0.7)}.ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom-in:before{content:"+"}.ol-zoom-out{border-radius:0 0 2px 2px}.ol-zoom-out:before{content:"\2212"}.ol-zoomslider{position:absolute;top:67px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;width:28px;height:200px;outline:none;overflow:hidden;padding:0;margin:0}.ol-zoomslider-thumb{position:absolute;display:block;padding:0;margin:2px;background:rgba(0,60,136,0.5);border-radius:2px;outline:none;overflow:hidden;height:20px;width:24px}
\ No newline at end of file
diff --git a/master/build/ol.js b/master/build/ol.js
index 22cb5a1e2f..75ebd3c8d1 100644
--- a/master/build/ol.js
+++ b/master/build/ol.js
@@ -1,250 +1,296 @@
-(function(){var h=void 0,j=!0,k=null,l=!1;function aa(){return function(a){return a}}function n(a){return function(){return this[a]}}var p,v=this;function ba(){}function ca(a){a.cb=function(){return a.zc?a.zc:a.zc=new a}}
-function da(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
-else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function z(a){return a!==h}function ea(a){return"array"==da(a)}function fa(a){var b=da(a);return"array"==b||"object"==b&&"number"==typeof a.length}function ga(a){return"string"==typeof a}function ha(a){return"function"==da(a)}function ia(a){var b=typeof a;return"object"==b&&a!=k||"function"==b}function A(a){return a[ja]||(a[ja]=++ka)}var ja="closure_uid_"+Math.floor(2147483648*Math.random()).toString(36),ka=0;
-function la(a,b,c){return a.call.apply(a.bind,arguments)}function ma(a,b,c){if(!a)throw Error();if(2")&&(a=a.replace(wa,">"));-1!=a.indexOf('"')&&(a=a.replace(za,"""));return a}var ua=/&/g,va=/ /g,za=/\"/g,ta=/[&<>\"]/;var Aa=Array.prototype,Ba=Aa.indexOf?function(a,b,c){return Aa.indexOf.call(a,b,c)}:function(a,b,c){c=c==k?0:0>c?Math.max(0,a.length+c):c;if(ga(a))return!ga(b)||1!=b.length?-1:a.indexOf(b,c);for(;c =arguments.length?Aa.slice.call(a,b):Aa.slice.call(a,b,c)}function Ma(a){Aa.sort.call(a,Na)}function Na(a,b){return a>b?1:a2*this.o&&$a(this),j):l};function $a(a){if(a.o!=a.a.length){for(var b=0,c=0;bparseFloat(ub)){tb=String(yb);break a}}tb=ub}var Ab={};
-function Bb(a){var b;if(!(b=Ab[a])){b=0;for(var c=String(tb).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),d=String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),e=Math.max(c.length,d.length),f=0;0==b&&f(0==r[1].length?0:parseInt(r[1],10))?1:0)||((0==t[2].length)<(0==r[2].length)?-1:(0==t[2].length)>(0==r[2].length)?1:0)||(t[2]r[2]?1:0)}while(0==b)}b=Ab[a]=0<=b}return b}var Cb={};function Db(a){return Cb[a]||(Cb[a]=G&&!!document.documentMode&&document.documentMode>=a)};var Eb,Fb=!G||Db(9);!ob&&!G||G&&Db(9)||ob&&Bb("1.9.1");G&&Bb("9");function Gb(a,b){var c;c=a.className;c=ga(c)&&c.match(/\S+/g)||[];for(var d=La(arguments,1),e=c.length+d.length,f=c,g=0;gc*b?c+b:c};function Jb(a,b){this.x=z(a)?a:0;this.y=z(b)?b:0}Jb.prototype.T=function(){return new Jb(this.x,this.y)};function Kb(a,b){this.width=a;this.height=b}p=Kb.prototype;p.T=function(){return new Kb(this.width,this.height)};p.Pa=function(){return!(this.width*this.height)};p.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};p.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};p.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};function Lb(a){return a?new Mb(Nb(a)):Eb||(Eb=new Mb)}function Ob(a,b){Oa(b,function(b,d){"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:d in Pb?a.setAttribute(Pb[d],b):0==d.lastIndexOf("aria-",0)||0==d.lastIndexOf("data-",0)?a.setAttribute(d,b):a[d]=b})}var Pb={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};
-function Qb(a){a=a.document.documentElement;return new Kb(a.clientWidth,a.clientHeight)}function Rb(a,b,c){var d=arguments,e=document,f=d[0],g=d[1];if(!Fb&&g&&(g.name||g.type)){f=["<",f];g.name&&f.push(' name="',sa(g.name),'"');if(g.type){f.push(' type="',sa(g.type),'"');var i={};Wa(i,g);delete i.type;g=i}f.push(">");f=f.join("")}f=e.createElement(f);g&&(ga(g)?f.className=g:ea(g)?Gb.apply(k,[f].concat(g)):Ob(f,g));2=a.keyCode)a.keyCode=-1}catch(b){}};p.pd=n("L");function oc(){}var pc=0;oc.prototype.key=0;oc.prototype.Ea=l;oc.prototype.a=l;oc.prototype.handleEvent=function(a){return this.b?this.Ra.call(this.Ub||this.src,a):this.Ra.handleEvent.call(this.Ra,a)};var qc={},rc={},sc={},tc={};
-function H(a,b,c,d,e){if(b){if(ea(b)){for(var f=0;f")&&(a=a.replace(Ba,">"));-1!=a.indexOf('"')&&(a=a.replace(Ca,"""));return a}var ya=/&/g,za=//g,Ca=/\"/g,xa=/[&<>\"]/;var Da=Array.prototype,Fa=Da.indexOf?function(a,b,c){return Da.indexOf.call(a,b,c)}:function(a,b,c){c=c==k?0:0>c?Math.max(0,a.length+c):c;if(ja(a))return!ja(b)||1!=b.length?-1:a.indexOf(b,c);for(;c=arguments.length?Da.slice.call(a,b):Da.slice.call(a,b,c)}function Sa(a){Da.sort.call(a,Ta)}function Ta(a,b){return a>b?1:a2*this.o&&db(this),i):l};function db(a){if(a.o!=a.a.length){for(var b=0,c=0;bparseFloat(Eb)){Bb=String(Ib);break a}}Bb=Eb}var Kb={};
+function Lb(a){var b;if(!(b=Kb[a])){b=0;for(var c=String(Bb).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),d=String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),e=Math.max(c.length,d.length),f=0;0==b&&f(0==s[1].length?0:parseInt(s[1],10))?1:0)||((0==v[2].length)<(0==s[2].length)?-1:(0==v[2].length)>(0==s[2].length)?1:0)||(v[2]s[2]?1:0)}while(0==b)}b=Kb[a]=0<=b}return b}var Mb={};function Nb(a){return Mb[a]||(Mb[a]=G&&!!document.documentMode&&document.documentMode>=a)};var Ob,Pb=!G||Nb(9);!ub&&!G||G&&Nb(9)||ub&&Lb("1.9.1");G&&Lb("9");function Qb(a,b){var c;c=a.className;c=ja(c)&&c.match(/\S+/g)||[];for(var d=Ra(arguments,1),e=c.length+d.length,f=c,h=0;hc*b?c+b:c};function Tb(a,b){this.x=x(a)?a:0;this.y=x(b)?b:0}Tb.prototype.V=function(){return new Tb(this.x,this.y)};function Ub(a,b){this.width=a;this.height=b}p=Ub.prototype;p.V=function(){return new Ub(this.width,this.height)};p.Wa=function(){return!(this.width*this.height)};p.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};p.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};p.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};function Vb(a){return a?new Zb($b(a)):Ob||(Ob=new Zb)}function ac(a,b){Ua(b,function(b,d){"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:d in bc?a.setAttribute(bc[d],b):0==d.lastIndexOf("aria-",0)||0==d.lastIndexOf("data-",0)?a.setAttribute(d,b):a[d]=b})}var bc={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};
+function cc(a){a=a.document.documentElement;return new Ub(a.clientWidth,a.clientHeight)}function dc(a,b,c){var d=arguments,e=document,f=d[0],h=d[1];if(!Pb&&h&&(h.name||h.type)){f=["<",f];h.name&&f.push(' name="',va(h.name),'"');if(h.type){f.push(' type="',va(h.type),'"');var j={};$a(j,h);delete j.type;h=j}f.push(">");f=f.join("")}f=e.createElement(f);h&&(ja(h)?f.className=h:ha(h)?Qb.apply(k,[f].concat(h)):ac(f,h));2=a.keyCode)a.keyCode=-1}catch(b){}};p.Kd=n("L");function Hc(){}var Ic=0;Hc.prototype.key=0;Hc.prototype.La=l;Hc.prototype.a=l;Hc.prototype.handleEvent=function(a){return this.b?this.Xa.call(this.fc||this.src,a):this.Xa.handleEvent.call(this.Xa,a)};var Jc={},Kc={},Lc={},Mc={};
+function I(a,b,c,d,e){if(b){if(ha(b)){for(var f=0;ff.keyCode||f.returnValue!=h)return j;a:{var q=l;if(0==f.keyCode)try{f.keyCode=-1;break a}catch(t){q=j}if(q||f.returnValue==h)f.returnValue=j}}q=new kc;lc(q,f,this);f=j;try{if(i){for(var r=[],y=q.c;y;y=y.parentNode)r.push(y);g=e[j];g.R=g.o;for(var w=r.length-
-1;!q.sa&&0<=w&&g.R;w--)q.c=r[w],f&=yc(g,r[w],d,j,q);if(m){g=e[l];g.R=g.o;for(w=0;!q.sa&&w=this.left&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom};function Bc(a,b){var c=Nb(a);return c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(a,k))?c[b]||c.getPropertyValue(b)||"":""}function Cc(a,b){return a.currentStyle?a.currentStyle[b]:k}function Dc(a,b){return Bc(a,b)||Cc(a,b)||a.style&&a.style[b]}function Ec(a,b){var c,d,e=ob&&(gb||sb)&&Bb("1.9");b instanceof Jb?(c=b.x,d=b.y):(c=b,d=h);a.style.left=Fc(c,e);a.style.top=Fc(d,e)}
-function Gc(a){var b=a.getBoundingClientRect();G&&(a=a.ownerDocument,b.left-=a.documentElement.clientLeft+a.body.clientLeft,b.top-=a.documentElement.clientTop+a.body.clientTop);return b}
-function Hc(a){if(G&&!Db(8))return a.offsetParent;for(var b=Nb(a),c=Dc(a,"position"),d="fixed"==c||"absolute"==c,a=a.parentNode;a&&a!=b;a=a.parentNode)if(c=Dc(a,"position"),d=d&&"static"==c&&a!=b.documentElement&&a!=b.body,!d&&(a.scrollWidth>a.clientWidth||a.scrollHeight>a.clientHeight||"fixed"==c||"absolute"==c||"relative"==c))return a;return k}function Ic(a,b){var c=Jc(a),d=Jc(b);return new Jb(c.x-d.x,c.y-d.y)}
-function Jc(a){var b=new Jb;if(1==a.nodeType){if(a.getBoundingClientRect){var c=Gc(a);b.x=c.left;b.y=c.top}else{c=Yb(Lb(a));var d,e=Nb(a),f=Dc(a,"position"),g=ob&&e.getBoxObjectFor&&!a.getBoundingClientRect&&"absolute"==f&&(d=e.getBoxObjectFor(a))&&(0>d.screenX||0>d.screenY),i=new Jb(0,0),m;d=e?Nb(e):document;if(m=G)if(m=!Db(9))Lb(d),m=l;m=m?d.body:d.documentElement;if(a!=m)if(a.getBoundingClientRect)d=Gc(a),e=Yb(Lb(e)),i.x=d.left+e.x,i.y=d.top+e.y;else if(e.getBoxObjectFor&&!g)d=e.getBoxObjectFor(a),
-e=e.getBoxObjectFor(m),i.x=d.screenX-e.screenX,i.y=d.screenY-e.screenY;else{g=a;do{i.x+=g.offsetLeft;i.y+=g.offsetTop;g!=a&&(i.x+=g.clientLeft||0,i.y+=g.clientTop||0);if(pb&&"fixed"==Dc(g,"position")){i.x+=e.body.scrollLeft;i.y+=e.body.scrollTop;break}g=g.offsetParent}while(g&&g!=a);if(nb||pb&&"absolute"==f)i.y-=e.body.offsetTop;for(g=a;(g=Hc(g))&&g!=e.body&&g!=m;)if(i.x-=g.scrollLeft,!nb||"TR"!=g.tagName)i.y-=g.scrollTop}b.x=i.x-c.x;b.y=i.y-c.y}if(ob&&!Bb(12)){var q;G?q="-ms-transform":pb?q="-webkit-transform":
-nb?q="-o-transform":ob&&(q="-moz-transform");var t;q&&(t=Dc(a,q));t||(t=Dc(a,"transform"));t?(a=t.match(Kc),a=!a?new Jb(0,0):new Jb(parseFloat(a[1]),parseFloat(a[2]))):a=new Jb(0,0);b=new Jb(b.x+a.x,b.y+a.y)}}else q=ha(a.pd),t=a,a.targetTouches?t=a.targetTouches[0]:q&&a.L.targetTouches&&(t=a.L.targetTouches[0]),b.x=t.clientX,b.y=t.clientY;return b}function Fc(a,b){"number"==typeof a&&(a=(b?Math.round(a):a)+"px");return a}
-function Lc(a){var b=a.offsetWidth,c=a.offsetHeight,d=pb&&!b&&!c;return(!z(b)||d)&&a.getBoundingClientRect?(a=Gc(a),new Kb(a.right-a.left,a.bottom-a.top)):new Kb(b,c)}function Mc(a,b){a.style.display=b?"":"none"}
-function Nc(a,b){Lb(Nb(a));if(G&&!Bb("8")){var c=a.style,d;if(G){d=Oc(a,Cc(a,"paddingLeft"));var e=Oc(a,Cc(a,"paddingRight")),f=Oc(a,Cc(a,"paddingTop")),g=Oc(a,Cc(a,"paddingBottom"));d=new Ac(f,e,g,d)}else d=Bc(a,"paddingLeft"),e=Bc(a,"paddingRight"),f=Bc(a,"paddingTop"),g=Bc(a,"paddingBottom"),d=new Ac(parseFloat(f),parseFloat(e),parseFloat(g),parseFloat(d));if(G)var e=Pc(a,"borderLeft"),f=Pc(a,"borderRight"),g=Pc(a,"borderTop"),i=Pc(a,"borderBottom"),e=new Ac(g,f,i,e);else e=Bc(a,"borderLeftWidth"),
-f=Bc(a,"borderRightWidth"),g=Bc(a,"borderTopWidth"),i=Bc(a,"borderBottomWidth"),e=new Ac(parseFloat(g),parseFloat(f),parseFloat(i),parseFloat(e));c.pixelWidth=b.width-e.left-d.left-d.right-e.right;c.pixelHeight=b.height-e.top-d.top-d.bottom-e.bottom}else c=a.style,ob?c.MozBoxSizing="border-box":pb?c.WebkitBoxSizing="border-box":c.boxSizing="border-box",c.width=Math.max(b.width,0)+"px",c.height=Math.max(b.height,0)+"px"}
-function Oc(a,b){if(/^\d+px?$/.test(b))return parseInt(b,10);var c=a.style.left,d=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;a.style.left=b;var e=a.style.pixelLeft;a.style.left=c;a.runtimeStyle.left=d;return e}var Qc={thin:2,medium:4,thick:6};function Pc(a,b){if("none"==Cc(a,b+"Style"))return 0;var c=Cc(a,b+"Width");return c in Qc?Qc[c]:Oc(a,c)}var Kc=/matrix\([0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, ([0-9\.\-]+)p?x?, ([0-9\.\-]+)p?x?\)/;function Rc(a,b){this.x=a;this.y=b}D(Rc,Jb);Rc.prototype.T=function(){return new Rc(this.x,this.y)};Rc.prototype.rotate=function(a){var b=Math.cos(a),a=Math.sin(a),c=this.y*b+this.x*a;this.x=this.x*b-this.y*a;this.y=c;return this};function L(a,b){Rc.call(this,a,b)}D(L,Rc);function Sc(a,b){var c=Ib(a+180,360)-180,d=Math.abs(Math.round(3600*c));return Math.floor(d/3600)+"\u00b0 "+Math.floor(d/60%60)+"\u2032 "+Math.floor(d%60)+"\u2033 "+b.charAt(0>c?1:0)}function Tc(a,b){if(z(a)){var c=b||0;return a.x.toFixed(c)+", "+a.y.toFixed(c)}return""}function Uc(a,b){var c=b.charAt(0);return"n"===c||"s"===c?new L(a[1],a[0]):new L(a[0],a[1])};var Vc=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$");function Wc(a){if(a[1]){var b=a[0],c=b.indexOf("#");0<=c&&(a.push(b.substr(c)),a[0]=b=b.substr(0,c));c=b.indexOf("?");0>c?a[1]="?":c==b.length-1&&(a[1]=h)}return a.join("")}function Xc(a,b,c){if(ea(b))for(var d=0;db)throw Error("Bad port number "+b);a.yb=b}else a.yb=k}
-function cd(a,b,c){ad(a);if(b instanceof dd){a.a=b;b=a.a;if((a=a.pa)&&!b.b){jd(b);b.a=k;var d=b.F,c=function(a,b){var c=b.toLowerCase();b!=c&&(this.remove(b),kd(this,c,a))};if("function"==typeof d.forEach)d.forEach(c,b);else if(fa(d)||ga(d))F(d,c,b);else{var e;if("function"==typeof d.Z)e=d.Z();else if("function"!=typeof d.O)if(fa(d)||ga(d)){e=[];for(var f=d.length,g=0;g>4&15).toString(16)+(a&15).toString(16)}var fd=/[#\/\?@]/g,hd=/[\#\?:]/g,gd=/[\#\?]/g,ld=/[\#\?@]/g,id=/#/g;function dd(a,b,c){this.a=a||k;this.b=!!c}
-function jd(a){if(!a.F&&(a.F=new Ya,a.o=0,a.a))for(var b=a.a.split("&"),c=0;c=a||96<=a&&106>=a||65<=a&&90>=a||pb&&0==a)return j;switch(a){case 32:case 63:case 107:case 109:case 110:case 111:case 186:case 59:case 189:case 187:case 61:case 188:case 190:case 191:case 192:case 222:case 219:case 220:case 221:return j;default:return l}}
-function Hd(a){switch(a){case 61:return 187;case 59:return 186;case 224:return 91;case 0:return 224;default:return a}};function Id(a,b){bc.call(this);a&&(this.ob&&Jd(this),this.Ka=a,this.nb=H(this.Ka,"keypress",this,b),this.Vb=H(this.Ka,"keydown",this.a,b,this),this.ob=H(this.Ka,"keyup",this.b,b,this))}D(Id,rd);p=Id.prototype;p.Ka=k;p.nb=k;p.Vb=k;p.ob=k;p.ja=-1;p.ia=-1;p.Hb=l;
-var Kd={3:13,12:144,63232:38,63233:40,63234:37,63235:39,63236:112,63237:113,63238:114,63239:115,63240:116,63241:117,63242:118,63243:119,63244:120,63245:121,63246:122,63247:123,63248:44,63272:46,63273:36,63275:35,63276:33,63277:34,63289:144,63302:45},Ld={Up:38,Down:40,Left:37,Right:39,Enter:13,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"U+007F":46,Home:36,End:35,PageUp:33,PageDown:34,Insert:45},Md=G||pb&&Bb("525"),Nd=gb&&ob;
-Id.prototype.a=function(a){if(pb&&(17==this.ja&&!a.ib||18==this.ja&&!a.fa))this.ia=this.ja=-1;Md&&!Fd(a.za,this.ja,a.qa,a.ib,a.fa)?this.handleEvent(a):(this.ia=ob?Hd(a.za):a.za,Nd&&(this.Hb=a.fa))};Id.prototype.b=function(a){this.ia=this.ja=-1;this.Hb=a.fa};
-Id.prototype.handleEvent=function(a){var b=a.L,c,d,e=b.altKey;G&&"keypress"==a.type?(c=this.ia,d=13!=c&&27!=c?b.keyCode:0):pb&&"keypress"==a.type?(c=this.ia,d=0<=b.charCode&&63232>b.charCode&&Gd(c)?b.charCode:0):nb?(c=this.ia,d=Gd(c)?b.keyCode:0):(c=b.keyCode||this.ia,d=b.charCode||0,Nd&&(e=this.Hb),gb&&(63==d&&224==c)&&(c=191));var f=c,g=b.keyIdentifier;c?63232<=c&&c in Kd?f=Kd[c]:25==c&&a.qa&&(f=9):g&&g in Ld&&(f=Ld[g]);a=f==this.ja;this.ja=f;b=new Od(f,d,a,b);b.fa=e;K(this,b)};
-function Jd(a){a.nb&&(J(a.nb),J(a.Vb),J(a.ob),a.nb=k,a.Vb=k,a.ob=k);a.Ka=k;a.ja=-1;a.ia=-1}Id.prototype.s=function(){Id.w.s.call(this);Jd(this)};function Od(a,b,c,d){d&&lc(this,d,h);this.type="key";this.za=a;this.hb=b;this.b=c}D(Od,kc);function Pd(a){bc.call(this);this.a=a;a=ia(this.a)&&1==this.a.nodeType?this.a:this.a?this.a.body:k;this.e=!!a&&"rtl"==Dc(a,"direction");this.b=H(this.a,ob?"DOMMouseScroll":"mousewheel",this)}D(Pd,rd);
-Pd.prototype.handleEvent=function(a){var b=0,c=0,d=0,a=a.L;if("mousewheel"==a.type){c=1;if(G||pb&&(hb||Bb("532.0")))c=40;d=Qd(-a.wheelDelta,c);z(a.wheelDeltaX)?(b=Qd(-a.wheelDeltaX,c),c=Qd(-a.wheelDeltaY,c)):c=d}else d=a.detail,100d&&(d=-3),z(a.axis)&&a.axis===a.HORIZONTAL_AXIS?b=d:c=d;"number"==typeof this.c&&(b=Hb(b,-this.c,this.c));"number"==typeof this.d&&(c=Hb(c,-this.d,this.d));this.e&&(b=-b);b=new Rd(d,a,b,c);K(this,b)};function Qd(a,b){return pb&&(gb||ib)&&0!=a%b?a:a/b}
-Pd.prototype.s=function(){Pd.w.s.call(this);J(this.b);delete this.b};function Rd(a,b,c,d){b&&lc(this,b,h);this.type="mousewheel";this.e=a;this.d=c;this.b=d}D(Rd,kc);var Sd=document&&"ontouchstart"in document.documentElement||!!window.navigator.msPointerEnabled;function M(a){bc.call(this);this.t={};z(a)&&this.ub(a)}D(M,rd);var Td={},Ud={},Vd={};function Wd(a){return a.substr(0,1).toUpperCase()+a.substr(1)}function Xd(a){return a.ol_accessors_||(a.ol_accessors_={})}function Yd(a){return Td.hasOwnProperty(a)?Td[a]:Td[a]=a.toLowerCase()+"_changed"}function Zd(a){return a.ol_bindings_||(a.ol_bindings_={})}p=M.prototype;
-p.ad=function(a,b,c,d){c=c||a;this.bc(a);var e=Yd(c);Zd(this)[a]=H(b,e,function(){$d(this,a)},h,this);Xd(this)[a]={target:b,key:c};d||$d(this,a)};p.dd=ba;p.q=function(a){var b,c=Xd(this);c.hasOwnProperty(a)?(b=c[a],a=b.target,b=b.key,c=Ud.hasOwnProperty(b)?Ud[b]:Ud[b]="get"+Wd(b),b=a[c]?a[c]():a.q(b)):this.t.hasOwnProperty(a)&&(b=this.t[a]);return b};
-p.Z=function(){for(var a=Qa(Xd(this)).concat(Qa(this.t)),b={},c=0,d=0;d=b.h&&a.k<=b.l&&a.l>=b.k}ee.prototype.toString=function(){return"("+[this.h,this.k,this.j,this.l].join(", ")+")"};function P(a,b,c,d){ee.call(this,a,b,c,d)}D(P,ee);function ge(a){var b=arguments[0],b=new P(b.x,b.y,b.x,b.y),c;for(c=1;cf;++f)g=e[f],i=c[f],e[f]=a.x+g*b-i*d,c[f]=a.y+g*d+i*b;a=Math.min.apply(k,e);b=Math.min.apply(k,c);e=Math.max.apply(k,e);c=Math.max.apply(k,c);return new P(a,b,e,c)}p=P.prototype;p.ed=function(a){return this.h<=a.x&&a.x<=this.j&&this.k<=a.y&&a.y<=this.l};p.lc=function(a){return this.h<=a.h&&a.j<=this.j&&this.k<=a.k&&a.l<=this.l};p.nd=function(){return new L(this.h,this.k)};
-p.od=function(){return new L(this.j,this.k)};p.gb=function(){return new L(this.h,this.l)};p.sd=function(){return new L(this.j,this.l)};p.transform=function(a){var b=[this.h,this.k,this.j,this.l],b=a(b,b,2);return new P(Math.min(b[0],b[2]),Math.min(b[1],b[3]),Math.max(b[0],b[2]),Math.max(b[1],b[3]))};function ie(a){this.length=a.length||a;for(var b=0;b>=1;return b.join("")}ve.prototype.toString=function(){return[this.n,this.x,this.y].join("/")};function xe(a,b,c,d){this.h=a;this.k=b;this.j=c;this.l=d}D(xe,ee);xe.prototype.contains=function(a){return this.h<=a.x&&a.x<=this.j&&this.k<=a.y&&a.y<=this.l};xe.prototype.da=function(){return this.l-this.k+1};xe.prototype.ha=function(){return this.j-this.h+1};function ye(a,b){this.b=a;this.a=b||k};function ze(a,b){bc.call(this);this.X=a;this.a=b}D(ze,rd);ze.prototype.b=function(){return A(this).toString()};function Ae(a){this.d=a;this.f=8;this.c=0;this.a=[];this.b={}}function Be(a,b,c,d){if(0==b.a){var e=b.b();if(!(e in a.b)){var f=a.d(b,c,d);Infinity!=f&&(a.a.push([f,b,c,d]),a.b[e]=j,Ce(a,0,a.a.length-1))}}}Ae.prototype.e=function(){--this.c};function De(a,b){for(var c=a.a,d=c.length,e=c[b],f=b;b>1;){var g=2*b+1,i=2*b+2,g=ib;){var e=c-1>>1;if(a[e][0]>d[0])a[c]=a[e],c=e;else break}a[c]=d};/*
+function Nc(a,b){if(!Jc[a])return i;var c=Jc[a],d=c.type,e=Kc;if(!(d in e))return i;var e=e[d],f,h;if(!rc){var j;if(!(j=b))a:{j=["window","event"];for(var m=r;f=j.shift();)if(m[f]!=k)m=m[f];else{j=k;break a}j=m}f=j;j=i in e;m=l in e;if(j){if(0>f.keyCode||f.returnValue!=g)return i;a:{var q=l;if(0==f.keyCode)try{f.keyCode=-1;break a}catch(v){q=i}if(q||f.returnValue==g)f.returnValue=i}}q=new Dc;Ec(q,f,this);f=i;try{if(j){for(var s=[],A=q.b;A;A=A.parentNode)s.push(A);h=e[i];h.Y=h.o;for(var u=s.length-
+1;!q.Ga&&0<=u&&h.Y;u--)q.b=s[u],f&=Wc(h,s[u],d,i,q);if(m){h=e[l];h.Y=h.o;for(u=0;!q.Ga&&u=this.left&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom};function Zc(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d}Zc.prototype.V=function(){return new Zc(this.left,this.top,this.width,this.height)};Zc.prototype.ha=function(a){return this.left<=a.left+a.width&&a.left<=this.left+this.width&&this.top<=a.top+a.height&&a.top<=this.top+this.height};
+Zc.prototype.contains=function(a){return a instanceof Zc?this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};function $c(a,b){var c=$b(a);return c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(a,k))?c[b]||c.getPropertyValue(b)||"":""}function ad(a,b){return $c(a,b)||(a.currentStyle?a.currentStyle[b]:k)||a.style&&a.style[b]}function bd(a,b,c){var d,e=ub&&(kb||Ab)&&Lb("1.9");b instanceof Tb?(d=b.x,b=b.y):(d=b,b=c);a.style.left=cd(d,e);a.style.top=cd(b,e)}
+function dd(a){var b=a.getBoundingClientRect();G&&(a=a.ownerDocument,b.left-=a.documentElement.clientLeft+a.body.clientLeft,b.top-=a.documentElement.clientTop+a.body.clientTop);return b}
+function ed(a){if(G&&!Nb(8))return a.offsetParent;for(var b=$b(a),c=ad(a,"position"),d="fixed"==c||"absolute"==c,a=a.parentNode;a&&a!=b;a=a.parentNode)if(c=ad(a,"position"),d=d&&"static"==c&&a!=b.documentElement&&a!=b.body,!d&&(a.scrollWidth>a.clientWidth||a.scrollHeight>a.clientHeight||"fixed"==c||"absolute"==c||"relative"==c))return a;return k}
+function fd(a){var b,c=$b(a),d=ad(a,"position"),e=ub&&c.getBoxObjectFor&&!a.getBoundingClientRect&&"absolute"==d&&(b=c.getBoxObjectFor(a))&&(0>b.screenX||0>b.screenY),f=new Tb(0,0),h;b=c?$b(c):document;h=G&&!Nb(9)&&!lc(Vb(b))?b.body:b.documentElement;if(a==h)return f;if(a.getBoundingClientRect)b=dd(a),a=mc(Vb(c)),f.x=b.left+a.x,f.y=b.top+a.y;else if(c.getBoxObjectFor&&!e)b=c.getBoxObjectFor(a),a=c.getBoxObjectFor(h),f.x=b.screenX-a.screenX,f.y=b.screenY-a.screenY;else{b=a;do{f.x+=b.offsetLeft;f.y+=
+b.offsetTop;b!=a&&(f.x+=b.clientLeft||0,f.y+=b.clientTop||0);if(xb&&"fixed"==ad(b,"position")){f.x+=c.body.scrollLeft;f.y+=c.body.scrollTop;break}b=b.offsetParent}while(b&&b!=a);if(tb||xb&&"absolute"==d)f.y-=c.body.offsetTop;for(b=a;(b=ed(b))&&b!=c.body&&b!=h;)if(f.x-=b.scrollLeft,!tb||"TR"!=b.tagName)f.y-=b.scrollTop}return f}function gd(a,b){var c=hd(a),d=hd(b);return new Tb(c.x-d.x,c.y-d.y)}
+function hd(a){var b=new Tb;if(1==a.nodeType){if(a.getBoundingClientRect){var c=dd(a);b.x=c.left;b.y=c.top}else{var c=mc(Vb(a)),d=fd(a);b.x=d.x-c.x;b.y=d.y-c.y}if(ub&&!Lb(12)){var e;G?e="-ms-transform":xb?e="-webkit-transform":tb?e="-o-transform":ub&&(e="-moz-transform");var f;e&&(f=ad(a,e));f||(f=ad(a,"transform"));f?(a=f.match(id),a=!a?new Tb(0,0):new Tb(parseFloat(a[1]),parseFloat(a[2]))):a=new Tb(0,0);b=new Tb(b.x+a.x,b.y+a.y)}}else e=ka(a.Kd),f=a,a.targetTouches?f=a.targetTouches[0]:e&&a.L.targetTouches&&
+(f=a.L.targetTouches[0]),b.x=f.clientX,b.y=f.clientY;return b}function cd(a,b){"number"==typeof a&&(a=(b?Math.round(a):a)+"px");return a}function jd(a){if("none"!=ad(a,"display"))return kd(a);var b=a.style,c=b.display,d=b.visibility,e=b.position;b.visibility="hidden";b.position="absolute";b.display="inline";a=kd(a);b.display=c;b.position=e;b.visibility=d;return a}
+function kd(a){var b=a.offsetWidth,c=a.offsetHeight,d=xb&&!b&&!c;return(!x(b)||d)&&a.getBoundingClientRect?(a=dd(a),new Ub(a.right-a.left,a.bottom-a.top)):new Ub(b,c)}function ld(a,b){a.style.display=b?"":"none"}function md(a){return"rtl"==ad(a,"direction")}
+function nd(a,b){var c=lc(Vb($b(a)));if(G&&(!c||!Lb("8"))){var d=a.style;if(c){var c=od(a,"padding"),e=pd(a);d.pixelWidth=b.width-e.left-c.left-c.right-e.right;d.pixelHeight=b.height-e.top-c.top-c.bottom-e.bottom}else d.pixelWidth=b.width,d.pixelHeight=b.height}else d=a.style,ub?d.MozBoxSizing="border-box":xb?d.WebkitBoxSizing="border-box":d.boxSizing="border-box",d.width=Math.max(b.width,0)+"px",d.height=Math.max(b.height,0)+"px"}
+function qd(a,b,c,d){if(/^\d+px?$/.test(b))return parseInt(b,10);var e=a.style[c],f=a.runtimeStyle[c];a.runtimeStyle[c]=a.currentStyle[c];a.style[c]=b;b=a.style[d];a.style[c]=e;a.runtimeStyle[c]=f;return b}function rd(a,b){return qd(a,a.currentStyle?a.currentStyle[b]:k,"left","pixelLeft")}
+function od(a,b){if(G){var c=rd(a,b+"Left"),d=rd(a,b+"Right"),e=rd(a,b+"Top"),f=rd(a,b+"Bottom");return new Yc(e,d,f,c)}c=$c(a,b+"Left");d=$c(a,b+"Right");e=$c(a,b+"Top");f=$c(a,b+"Bottom");return new Yc(parseFloat(e),parseFloat(d),parseFloat(f),parseFloat(c))}var sd={thin:2,medium:4,thick:6};function td(a,b){if("none"==(a.currentStyle?a.currentStyle[b+"Style"]:k))return 0;var c=a.currentStyle?a.currentStyle[b+"Width"]:k;return c in sd?sd[c]:qd(a,c,"left","pixelLeft")}
+function pd(a){if(G){var b=td(a,"borderLeft"),c=td(a,"borderRight"),d=td(a,"borderTop"),a=td(a,"borderBottom");return new Yc(d,c,a,b)}b=$c(a,"borderLeftWidth");c=$c(a,"borderRightWidth");d=$c(a,"borderTopWidth");a=$c(a,"borderBottomWidth");return new Yc(parseFloat(d),parseFloat(c),parseFloat(a),parseFloat(b))}var id=/matrix\([0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, ([0-9\.\-]+)p?x?, ([0-9\.\-]+)p?x?\)/;function ud(a,b){this.x=a;this.y=b}D(ud,Tb);ud.prototype.V=function(){return new ud(this.x,this.y)};ud.prototype.rotate=function(a){var b=Math.cos(a),a=Math.sin(a),c=this.y*b+this.x*a;this.x=this.x*b-this.y*a;this.y=c;return this};function L(a,b){ud.call(this,a,b)}D(L,ud);function vd(a,b){var c=Sb(a+180,360)-180,d=Math.abs(Math.round(3600*c));return Math.floor(d/3600)+"\u00b0 "+Math.floor(d/60%60)+"\u2032 "+Math.floor(d%60)+"\u2033 "+b.charAt(0>c?1:0)}function wd(a,b){if(x(a)){var c=b||0;return a.x.toFixed(c)+", "+a.y.toFixed(c)}return""}function xd(a,b){var c=b.charAt(0);return"n"===c||"s"===c?new L(a[1],a[0]):new L(a[0],a[1])};var yd=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$");function zd(a){if(a[1]){var b=a[0],c=b.indexOf("#");0<=c&&(a.push(b.substr(c)),a[0]=b=b.substr(0,c));c=b.indexOf("?");0>c?a[1]="?":c==b.length-1&&(a[1]=g)}return a.join("")}function Ad(a,b,c){if(ha(b))for(var d=0;db)&&aa(Error("Bad port number "+b)),a.Hb=b):a.Hb=k}
+function Gd(a,b,c){Ed(a);if(b instanceof Hd){a.a=b;b=a.a;if((a=a.Aa)&&!b.b){Nd(b);b.a=k;var d=b.H,c=function(a,b){var c=b.toLowerCase();b!=c&&(this.remove(b),$d(this,c,a))};if("function"==typeof d.forEach)d.forEach(c,b);else if(ia(d)||ja(d))F(d,c,b);else{var e;if("function"==typeof d.ba)e=d.ba();else if("function"!=typeof d.W)if(ia(d)||ja(d)){e=[];for(var f=d.length,h=0;h>4&15).toString(16)+(a&15).toString(16)}var Jd=/[#\/\?@]/g,Ld=/[\#\?:]/g,Kd=/[\#\?]/g,ae=/[\#\?@]/g,Md=/#/g;function Hd(a,b,c){this.a=a||k;this.b=!!c}
+function Nd(a){if(!a.H&&(a.H=new bb,a.o=0,a.a))for(var b=a.a.split("&"),c=0;c=a||96<=a&&106>=a||65<=a&&90>=a||xb&&0==a)return i;switch(a){case 32:case 63:case 107:case 109:case 110:case 111:case 186:case 59:case 189:case 187:case 61:case 188:case 190:case 191:case 192:case 222:case 219:case 220:case 221:return i;default:return l}}
+function te(a){switch(a){case 61:return 187;case 59:return 186;case 224:return 91;case 0:return 224;default:return a}};function ue(a,b){tc.call(this);a&&(this.xb&&ve(this),this.Ra=a,this.wb=I(this.Ra,"keypress",this,b),this.gc=I(this.Ra,"keydown",this.a,b,this),this.xb=I(this.Ra,"keyup",this.b,b,this))}D(ue,ge);p=ue.prototype;p.Ra=k;p.wb=k;p.gc=k;p.xb=k;p.ua=-1;p.ta=-1;p.Qb=l;
+var we={3:13,12:144,63232:38,63233:40,63234:37,63235:39,63236:112,63237:113,63238:114,63239:115,63240:116,63241:117,63242:118,63243:119,63244:120,63245:121,63246:122,63247:123,63248:44,63272:46,63273:36,63275:35,63276:33,63277:34,63289:144,63302:45},xe={Up:38,Down:40,Left:37,Right:39,Enter:13,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"U+007F":46,Home:36,End:35,PageUp:33,PageDown:34,Insert:45},ye=G||xb&&Lb("525"),ze=kb&&ub;
+ue.prototype.a=function(a){if(xb&&(17==this.ua&&!a.qb||18==this.ua&&!a.na))this.ta=this.ua=-1;ye&&!re(a.Ia,this.ua,a.Ca,a.qb,a.na)?this.handleEvent(a):(this.ta=ub?te(a.Ia):a.Ia,ze&&(this.Qb=a.na))};ue.prototype.b=function(a){this.ta=this.ua=-1;this.Qb=a.na};
+ue.prototype.handleEvent=function(a){var b=a.L,c,d,e=b.altKey;G&&"keypress"==a.type?(c=this.ta,d=13!=c&&27!=c?b.keyCode:0):xb&&"keypress"==a.type?(c=this.ta,d=0<=b.charCode&&63232>b.charCode&&se(c)?b.charCode:0):tb?(c=this.ta,d=se(c)?b.keyCode:0):(c=b.keyCode||this.ta,d=b.charCode||0,ze&&(e=this.Qb),kb&&(63==d&&224==c)&&(c=191));var f=c,h=b.keyIdentifier;c?63232<=c&&c in we?f=we[c]:25==c&&a.Ca&&(f=9):h&&h in xe&&(f=xe[h]);a=f==this.ua;this.ua=f;b=new Ae(f,d,a,b);b.na=e;K(this,b)};
+function ve(a){a.wb&&(J(a.wb),J(a.gc),J(a.xb),a.wb=k,a.gc=k,a.xb=k);a.Ra=k;a.ua=-1;a.ta=-1}ue.prototype.r=function(){ue.z.r.call(this);ve(this)};function Ae(a,b,c,d){d&&Ec(this,d,g);this.type="key";this.Ia=a;this.pb=b;this.c=c}D(Ae,Dc);function Be(a){tc.call(this);this.a=a;a=la(this.a)&&1==this.a.nodeType?this.a:this.a?this.a.body:k;this.e=!!a&&md(a);this.b=I(this.a,ub?"DOMMouseScroll":"mousewheel",this)}D(Be,ge);
+Be.prototype.handleEvent=function(a){var b=0,c=0,d=0,a=a.L;if("mousewheel"==a.type){c=1;if(G||xb&&(lb||Lb("532.0")))c=40;d=Ce(-a.wheelDelta,c);x(a.wheelDeltaX)?(b=Ce(-a.wheelDeltaX,c),c=Ce(-a.wheelDeltaY,c)):c=d}else d=a.detail,100d&&(d=-3),x(a.axis)&&a.axis===a.HORIZONTAL_AXIS?b=d:c=d;"number"==typeof this.c&&(b=Rb(b,-this.c,this.c));"number"==typeof this.d&&(c=Rb(c,-this.d,this.d));this.e&&(b=-b);b=new De(d,a,b,c);K(this,b)};function Ce(a,b){return xb&&(kb||ob)&&0!=a%b?a:a/b}
+Be.prototype.r=function(){Be.z.r.call(this);J(this.b);delete this.b};function De(a,b,c,d){b&&Ec(this,b,g);this.type="mousewheel";this.c=a;this.O=c;this.N=d}D(De,Dc);var Ee=document&&"ontouchstart"in document.documentElement||!!window.navigator.msPointerEnabled;function M(a){tc.call(this);this.s={};x(a)&&this.Db(a)}D(M,ge);var Fe={},Ge={},He={};function Ie(a){return a.substr(0,1).toUpperCase()+a.substr(1)}function Je(a){return a.ol_accessors_||(a.ol_accessors_={})}function Ke(a){return Fe.hasOwnProperty(a)?Fe[a]:Fe[a]=a.toLowerCase()+"_changed"}function Le(a){return a.ol_bindings_||(a.ol_bindings_={})}p=M.prototype;
+p.xd=function(a,b,c,d){c=c||a;this.nc(a);var e=Ke(c);Le(this)[a]=I(b,e,function(){Me(this,a)},g,this);Je(this)[a]={target:b,key:c};d||Me(this,a)};p.Ad=da;p.q=function(a){var b,c=Je(this);c.hasOwnProperty(a)?(b=c[a],a=b.target,b=b.key,c=Ge.hasOwnProperty(b)?Ge[b]:Ge[b]="get"+Ie(b),b=a[c]?a[c]():a.q(b)):this.s.hasOwnProperty(a)&&(b=this.s[a]);return b};
+p.ba=function(){for(var a=Wa(Je(this)).concat(Wa(this.s)),b={},c=0,d=0;d=a.h&&this.l<=a.k&&this.k>=a.l};p.toString=function(){return"("+[this.h,this.l,this.j,this.k].join(", ")+")"};function O(a,b,c,d){Re.call(this,a,b,c,d)}D(O,Re);function Te(a){var b=arguments[0],b=new O(b.x,b.y,b.x,b.y),c;for(c=1;cf;++f)h=e[f],j=c[f],e[f]=a.x+h*b-j*d,c[f]=a.y+h*d+j*b;a=Math.min.apply(k,e);b=Math.min.apply(k,c);e=Math.max.apply(k,e);c=Math.max.apply(k,c);return new O(a,b,e,c)}p=O.prototype;p.Bd=function(a){return this.h<=a.x&&a.x<=this.j&&this.l<=a.y&&a.y<=this.k};p.yc=function(a){return this.h<=a.h&&a.j<=this.j&&this.l<=a.l&&a.k<=this.k};p.Gc=function(){return new L(this.h,this.l)};
+p.Jd=function(){return new L(this.j,this.l)};p.ob=function(){return new L(this.h,this.k)};p.Nd=function(){return new L(this.j,this.k)};p.transform=function(a){var b=[this.h,this.l,this.j,this.k],b=a(b,b,2);return new O(Math.min(b[0],b[2]),Math.min(b[1],b[3]),Math.max(b[0],b[2]),Math.max(b[1],b[3]))};function Ve(a){this.length=a.length||a;for(var b=0;b>=1;return b.join("")}yf.prototype.toString=function(){return[this.n,this.x,this.y].join("/")};function Af(a,b,c,d){this.h=a;this.l=b;this.j=c;this.k=d}D(Af,Re);Af.prototype.contains=function(a){return this.h<=a.x&&a.x<=this.j&&this.l<=a.y&&a.y<=this.k};Af.prototype.ga=function(){return this.k-this.l+1};Af.prototype.ma=function(){return this.j-this.h+1};function Bf(a,b){this.b=a;this.a=b||k};function Cf(a,b){tc.call(this);this.fa=a;this.a=b}D(Cf,ge);Cf.prototype.b=function(){return z(this).toString()};function Df(a){this.d=a;this.f=8;this.c=0;this.a=[];this.b={}}function Ef(a,b,c,d){if(0==b.a){var e=b.b();if(!(e in a.b)){var f=a.d(b,c,d);Infinity!=f&&(a.a.push([f,b,c,d]),a.b[e]=i,Ff(a,0,a.a.length-1))}}}Df.prototype.e=function(){--this.c};function Gf(a,b){for(var c=a.a,d=c.length,e=c[b],f=b;b>1;){var h=2*b+1,j=2*b+2,h=jb;){var e=c-1>>1;if(a[e][0]>d[0])a[c]=a[e],c=e;else break}a[c]=d};/*
Latitude/longitude spherical geodesy formulae taken from
http://www.movable-type.co.uk/scripts/latlong.html
Licenced under CC-BY-3.0.
*/
-function Ee(a,b){var c=a.y*Math.PI/180,d=b.y*Math.PI/180,e=(d-c)/2,f=(b.x-a.x)*Math.PI/180/2,c=Math.sin(e)*Math.sin(e)+Math.sin(f)*Math.sin(f)*Math.cos(c)*Math.cos(d);return 2*Fe.a*Math.atan2(Math.sqrt(c),Math.sqrt(1-c))};var Fe=new function(){this.a=6370997};var Ge="object"==typeof Proj4js,He={Uc:"degrees",Ne:"ft",Re:"m"},Ie={};Ie.degrees=2*Math.PI*Fe.a/360;Ie.ft=0.3048;Ie.m=1;function Je(a){this.a=a.code;this.b=a.units;this.g=a.extent;this.d=z(a.axisOrientation)?a.axisOrientation:"enu";this.Lb=z(a.global)?a.global:l;this.f=k}p=Je.prototype;p.qd=n("a");p.I=n("g");p.td=n("b");p.sc=function(){return Ie[this.b]};p.md=n("d");p.$d=n("Lb");function Ke(a,b){var c={units:a.units,axisOrientation:a.axis};Wa(c,b);Je.call(this,c);this.Ic=a;this.e=k}D(Ke,Je);
-Ke.prototype.c=function(a,b){if("degrees"==this.b)return a;this.e===k&&(this.e=Le(this,Me({code:"EPSG:4326",extent:k})));var c=[b.x-a/2,b.y,b.x+a/2,b.y,b.x,b.y-a/2,b.x,b.y+a/2],c=this.e(c,c,2),c=(Ee(new L(c[0],c[1]),new L(c[2],c[3]))+Ee(new L(c[4],c[5]),new L(c[6],c[7])))/2;"ft"==this.b&&(c/=0.3048);return c};var Ne={},Oe={},Pe={};function Qe(a){F(a,function(a){Re(a)});F(a,function(b){F(a,function(a){b!==a&&Se(b,a,Te)})})}function Re(a){Oe[a.a]=a;Se(a,a,Te)}
-function Ue(a){return a!=k?ga(a)?Ve(a):a:Ve("EPSG:3857")}function Se(a,b,c){a=a.a;b=b.a;a in Pe||(Pe[a]={});Pe[a][b]=c}function Ve(a){var b;a instanceof Je?b=a:ga(a)?(b=Oe[a],Ge&&!z(b)&&(b=Me({code:a,extent:k})),z(b)||(b=k)):b=k;return b}function Me(a){var b=a.code,c=Ne[b];if(!z(c)){var d=new Proj4js.Proj(b),e=d.srsCode,c=Ne[e];z(c)||(a=Ua(a),a.code=e,c=new Ke(d,a),Ne[e]=c);Ne[b]=c}return c}function We(a,b){var c=Ve(a),d=Ve(b);return Le(c,d)}
-function Le(a,b){var c=a.a,d=b.a,e;c in Pe&&d in Pe[c]&&(e=Pe[c][d]);if(Ge&&!z(e)){var f;f=(a instanceof Ke?a:Me({code:c,extent:k})).Ic;var g;g=(b instanceof Ke?b:Me({code:d,extent:k})).Ic;e=function(a,b,c){var d=a.length,c=1=Math.abs(a+c)?0:a+c}};var S={Ib:function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a},hd:function(a){return a*a*a},Ia:function(a){return 1-Math.pow(1-a,3)},jd:function(a){return Math.pow(2,-10*a)*Math.sin((a-0.075)*2*Math.PI/0.3)+1},Aa:function(a){return 3*a*a-2*a*a*a},Ac:aa(),Rc:function(a){return 0.5>a?S.Aa(2*a):1-S.Aa(2*(a-0.5))}};var tf={Ib:function(a){var b=a.resolution,c=z(a.start)?a.start:qa(),d=z(a.duration)?a.duration:1E3,e=z(a.easing)?a.easing:S.Rc;return function(a,g){if(g.timeb-a.f;)d--;if(0<=d){var b=a.a[d],c=a.a[c],d=c.x-b.x,e=c.y-b.y;a.c=Math.atan2(e,d);a.b=Math.sqrt(d*d+e*e)/(c.Ua-b.Ua);return a.b>a.d}return l}Df.prototype.aa=function(a){var b=this.e,c=this.b,d=this.d,e=Math.log(this.d/this.b)/this.e;return tf.aa({source:a,duration:e,easing:function(a){return c*(Math.exp(b*a*e)-1)/(d-c)}})};function Ff(){};function Gf(a){this.a=a}D(Gf,Ff);Gf.prototype.ra=function(a){var b=a.a;if(a.type==ef&&(Sd||nc(a.a))){var c=a.map,d=a.b(),e=a.a.qa?-this.a:this.a;yf(c.a(),c,e,d,250);a.D();b.D()}};function Hf(a){return a.fa&&!a.xb&&a.qa}function If(a){return!a.fa&&!a.xb&&!a.qa}function Jf(a){return!a.fa&&!a.xb&&a.qa};function Kf(){this.e=l;this.r=this.Qa=this.i=this.g=0;this.Ta=this.f=k}D(Kf,Ff);p=Kf.prototype;p.Ob=ba;p.kb=ba;p.lb=td;p.yc=ba;p.ra=function(a){var b=a.map;if(b.Oa()){var b=b.a(),c=a.a;a.type==hf&&this.yc(a);this.e?a.type==kf?(this.d=c.clientX-this.g,this.b=c.clientY-this.i,this.Ob(a)):a.type==gf&&(this.d=c.clientX-this.g,this.b=c.clientY-this.i,this.kb(a),this.e=l):a.type==jf&&(this.g=c.clientX,this.i=c.clientY,this.b=this.d=0,this.f=b.N(),this.Ta=a.b(),this.lb(a)&&(this.e=j,a.D()))}};function Lf(a,b){Kf.call(this);this.t=a;this.a=b;this.c=k}D(Lf,Kf);Lf.prototype.Ob=function(a){this.a&&this.a.a.push({x:a.a.clientX,y:a.a.clientY,Ua:qa()});var a=a.map,b=a.a(),c=b.Q(),d=b.V(),c=new L(-c*this.d,c*this.b);c.rotate(d);d=new L(this.f.x+c.x,this.f.y+c.y);uf(a);b.a(d)};
-Lf.prototype.kb=function(a){var b=a.map,a=b.a();qf(a,-1);if(this.a&&Ef(this.a)){var c=(this.a.d-this.a.b)/this.a.e,d=this.a.c,e=a.N();this.c=this.a.aa(e);b.ga(this.c);e=Mf(b,e);b=bf(b,new $e(e.x-c*Math.cos(d),e.y-c*Math.sin(d)));a.a(b)}};Lf.prototype.lb=function(a){var b=a.a;if(this.t(b)){if(this.a){var c=this.a;c.a.length=0;c.c=0;c.b=0;this.a.a.push({x:b.clientX,y:b.clientY,Ua:qa()})}a=a.map;uf(a);qf(a.a(),1);return j}return l};
-Lf.prototype.yc=function(a){var b=a.map,c=b.a();this.c!==k&&Ga(b.i,this.c)&&(uf(b),c.a(a.d.v.center),this.c=k)};function Nf(a){Kf.call(this);this.c=a}D(Nf,Kf);Nf.prototype.Ob=function(a){var b=a.map,c=b.f(),a=cf(a),c=Math.atan2(c.height/2-a.y,a.x-c.width/2);if(z(this.a)){var a=c-this.a,d=b.a();uf(b);vf(d,b,d.V()-a)}this.a=c};Nf.prototype.kb=function(a){var a=a.map,b=a.a();b.rotate(a,b.V(),h,250);qf(b,-1)};Nf.prototype.lb=function(a){var b=a.a;return nc(b)&&this.c(b)?(a=a.map,b=a.a(),uf(a),this.a=h,qf(b,1),j):l};function Of(a){var b=Rb("DIV","ol-dragbox");this.c=k;this.e=a.Ta;this.d=k;zf.call(this,{element:b,map:a.map})}D(Of,zf);Of.prototype.a=function(a){this.d!==k&&(J(this.d),this.d=k);a!==k&&(this.c=Mf(a,this.e),Ec(this.element,this.c),Nc(this.element,new de(0,0)),this.d=H(a,kf,this.f,l,this));Of.w.a.call(this,a)};Of.prototype.f=function(a){var b=this.b,a=a.b(),b=Mf(b,a);Ec(this.element,new $e(Math.min(b.x,this.c.x),Math.min(b.y,this.c.y)));Nc(this.element,new de(Math.abs(b.x-this.c.x),Math.abs(b.y-this.c.y)))};function Pf(a){Kf.call(this);this.c=a;this.a=k}D(Pf,Kf);Pf.prototype.kb=function(a){this.a.a(k);this.a=k;if(64<=this.d*this.d+this.b*this.b){var b=a.map,c=ge(this.Ta,a.b());wf(b,function(){var a=b.a(),e=b.f();a.f(c,e);a.d(0)})}};Pf.prototype.lb=function(a){var b=a.a;return nc(b)&&this.c(b)?(this.a=new Of({map:a.map,Ta:this.Ta}),j):l};function Qf(a){a=z(a)?a:{};this.a=z(a.delta)?a.delta:128}D(Qf,Ff);Qf.prototype.ra=function(a){if("key"==a.type){var b=a.a,c=b.za;if(40==c||37==c||39==c||38==c){var d=a.map,e=d.a(),f=e.Q(),g=e.V(),f=f*this.a,i=0,m=0;40==c?m=-f:37==c?i=-f:39==c?i=f:m=f;c=new L(i,m);c.rotate(g);e.aa(d,c,100);b.D();a.D()}}};function Rf(a){a=z(a)?a:{};this.a=z(a.delta)?a.delta:1}D(Rf,Ff);Rf.prototype.ra=function(a){if("key"==a.type){var b=a.a,c=b.hb;if(43==c||45==c){var d=a.map,c=43==c?this.a:-this.a;uf(d);yf(d.a(),d,c,h,100);b.D();a.D()}}};function Sf(){this.a=0;this.c=k;this.d=this.b=h}D(Sf,Ff);Sf.prototype.ra=function(a){if("mousewheel"==a.type){var b=a.map,c=a.a;this.c=a.b();this.a+=c.b/3;z(this.b)||(this.b=qa());var d=Math.max(80-(qa()-this.b),0);v.clearTimeout(this.d);this.d=v.setTimeout(na(this.e,this,b),d);a.D();c.D()}};Sf.prototype.e=function(a){var b=Hb(this.a,-1,1),c=a.a();uf(a);yf(c,a,-b,this.c,250);this.a=0;this.c=k;this.d=this.b=h};function Tf(){this.g=l;this.i={};this.targetTouches=[]}D(Tf,Ff);function Uf(a){for(var b=a.length,c=0,d=0,e=0;ethis.t&&(this.a=j));this.c=c;var a=a.map,c=a.a(),d=Jc(a.b),e=Uf(this.targetTouches);e.x-=d.x;e.y-=d.y;d=bf(a,e);this.a&&vf(c,a,c.V()+b,d)};
-Wf.prototype.d=function(a){if(2>this.targetTouches.length){var a=a.map,b=a.a();this.a&&b.rotate(a,b.V(),h,250);qf(b,-1);return l}return j};Wf.prototype.f=function(a){return 2<=this.targetTouches.length?(a=a.map.a(),this.c=h,this.a=l,this.b=0,qf(a,1),j):l};function Xf(){Tf.call(this)}D(Xf,Tf);Xf.prototype.e=function(a){var b=1,c=this.targetTouches[0],d=this.targetTouches[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);z(this.a)&&(b=this.a/e);this.a=e;a=a.map;e=a.a();c=Jc(a.b);d=Uf(this.targetTouches);d.x-=c.x;d.y-=c.y;c=bf(a,d);xf(e,a,e.Q()*b,c)};Xf.prototype.d=function(a){if(2>this.targetTouches.length){var a=a.map,b=a.a();b.zoom(a,b.Q(),h,250);qf(b,-1);return l}return j};
-Xf.prototype.f=function(a){return 2<=this.targetTouches.length?(a=a.map.a(),this.a=h,qf(a,1),j):l};function Yf(a,b){var c=z(a)?a:{},d=new N;(z(c.rotate)?c.rotate:1)&&d.push(new Nf(Hf));if(z(c.fe)?c.fe:1)d.push(new Gf(z(c.Ae)?c.Ae:1));(z(c.ke)?c.ke:1)&&d.push(new Vf(new Df(-0.005,0.05,100)));(z(c.le)?c.le:1)&&d.push(new Wf);(z(c.me)?c.me:1)&&d.push(new Xf);(z(c.ge)?c.ge:1)&&d.push(new Lf(If,new Df(-0.005,0.05,100)));if(z(c.he)?c.he:1)d.push(new Qf),d.push(new Rf);(z(c.ie)?c.ie:1)&&d.push(new Sf);(z(c.je)?c.je:1)&&d.push(new Pf(Jf));if(z(b))for(c=0;cc;++c)d[c]=b[c].toFixed(6);c=d.join(",")}else c=b.join(",");c="matrix3d("+c+")";d=a.style;d.WebkitTransform=c;d.MozTransform=c;d.a=c;d.transform=c};function Tg(a,b,c){sg.call(this,a,b);this.target=c}D(Tg,sg);Tg.prototype.s=function(){Xb(this.target);Tg.w.s.call(this)};function Ug(a,b){var c=Tb("DIV");c.className="ol-layer-image";c.style.position="absolute";Tg.call(this,a,b,c);this.b=k;this.c=me()}D(Ug,Tg);
-Ug.prototype.ka=function(a){var b=a.v,c=b.center,d=b.resolution,e=b.rotation,f=this.b,g=this.a.$(),i=a.C;!i[0]&&!i[1]&&(b=g.J(a.extent,d,b.projection),b!==k&&(g=b.a,0==g?(vc(b,"change",this.Pb,l,this),hg(b)):2==g&&(f=b)));f!==k&&(g=f.I(),i=f.e,b=ke(),oe(b),se(b,a.size.width/2,a.size.height/2),ue(b,e),te(b,i/d,i/d),se(b,(g.h-c.x)/i,(c.y-g.l)/i),f!=this.b&&(c=gg(f,this),c.style.position="absolute",Vb(this.target),this.target.appendChild(c),this.b=f),qe(b,this.c)||(Sg(this.target,b),ne(this.c,b)),wg(a.attributions,
-f.oa()))};function Vg(a,b){var c=Tb("DIV");c.className="ol-layer-tile";c.style.position="absolute";Tg.call(this,a,b,c);this.c=j;this.d=1;this.b={}}D(Vg,Tg);
-Vg.prototype.ka=function(a,b){if(b.visible){var c=a.v,d=c.projection,e=this.a.$(),f=A(e).toString(),g=e.tileGrid;g===k&&(g=pg(d));var i=rf(g.a,c.resolution),m=g.a[i],q=c.center,t;m==c.resolution?(q=Ag(q,m,a.size),t=he(q,m,c.rotation,a.size)):t=a.extent;var m=kg(g,t,m),r={};r[i]={};var y=na(e.d,e,r,zg(function(a){return a!==k&&2==a.a},e,g,d)),w,s,x,u,B;for(u=m.h;u<=m.j;++u)for(B=m.k;B<=m.l;++B){x=new ve(i,u,B);w=e.b(x,g,d);s=w.a;if(0==s)yg(a.Wa,e,x),s=ng(g,x),Be(a.ac,w,f,s);else if(1==s)ug(this,w);
-else if(2==s){r[i][x.toString()]=w;continue}else if(3==s||4==s)continue;g.b(x,y)}y=Ca(Qa(r),Number);Ma(y);var d={},E;for(w=0;wx&&Wb(this.target,f.target)}else{if(!a.C[0]&&!a.C[1]){s=
-kg(f.d,t,f.d.a[f.c.n]);x=[];B=u=h;for(B in f.b)u=f.b[B],s.contains(u.X)||x.push(u);s=h;for(s=0;s=a.ca()){for(var a=this.a,d=0;d>1,a[d].M>c.M)a[b]=a[d],b=d;else break;a[b]=c}p=eh.prototype;
-p.remove=function(){var a=this.a,b=a.length,c=a[0];if(!(0>=b)){if(1==b)Fa(a);else{a[0]=a.pop();for(var a=0,b=this.a,d=b.length,e=b[a];a>1;){var f=2*a+1,g=2*a+2,f=ge.M)break;b[a]=b[f];a=f}b[a]=e}return c.Y}};p.O=function(){for(var a=this.a,b=[],c=a.length,d=0;dc;++c)d=b.remove(),mh(a,d)},b,s));I?(this.b=y,this.z=w):(this.z=this.b=k,a.S=
-j)}xg(a.Va,f,m,y);rg(f,m,r,i);vg(a,f);oe(this.d);se(this.d,(t.x-w.h)/(w.j-w.h),(t.y-w.k)/(w.l-w.k));ue(this.d,d.rotation);te(this.d,a.size.width*d.resolution/(w.j-w.h),a.size.height*d.resolution/(w.l-w.k));se(this.d,-0.5,-0.5)};function nh(){this.o=0;this.c={};this.b=this.a=k}p=nh.prototype;p.clear=function(){this.o=0;this.c={};this.b=this.a=k};function lh(a,b){return a.c.hasOwnProperty(b)}p.forEach=function(a,b){for(var c=this.a;c!==k;)a.call(b,c.Y,c.M,this),c=c.W};function oh(a,b){var c=a.c[b];if(c===a.b)return c.Y;c===a.a?(a.a=a.a.W,a.a.la=k):(c.W.la=c.la,c.la.W=c.W);c.W=k;c.la=a.b;a.b.W=c;a.b=c;return c.Y}p.ca=n("o");p.Z=function(){var a=Array(this.o),b=0,c;for(c=this.b;c!==k;c=c.la)a[b++]=c.M;return a};
-p.O=function(){var a=Array(this.o),b=0,c;for(c=this.b;c!==k;c=c.la)a[b++]=c.Y;return a};p.pop=function(){var a=this.a;delete this.c[a.M];a.W!==k&&(a.W.la=k);this.a=a.W;this.a===k&&(this.b=k);--this.o;return a.Y};function ph(a,b,c){c={M:b,W:k,la:a.b,Y:c};a.b===k?a.a=c:a.b.W=c;a.b=c;a.c[b]=c;++a.o};var qh=["webgl","webgl-experimental","webkit-3d","moz-webgl"];function rh(a,b){var c,d,e=qh.length;for(d=0;d>1)-1;0<=b;b--)De(a,b);for(var a=this.K,m;0b?(d="\u2032",a*=60):d="\u00b0":"imperial"==this.c?0.9144>b?(d="in",a/=0.0254):1609.344>b?(d="ft",a/=0.3048):(d="mi",a/=1609.344):"nautical"==this.c?(a/=1852,d="nm"):"metric"==this.c?1>b?(d="mm",a*=1E3):1E3>b?d="m":(d="km",a/=1E3):"us"==this.c&&(0.9144>b?(d="in",a*=39.37):1609.344>b?(d="ft",a/=0.30480061):(d="mi",a/=1609.3472));for(var b=3*Math.floor(Math.log(this.i*a)/Math.log(10)),e,f;;){e=Lh[b%3]*Math.pow(10,Math.floor(b/3));f=Math.round(e/a);if(f>=this.i)break;++b}e=e+d;this.u!=e&&
-(this.u=this.g.innerHTML=e);this.G!=f&&(this.g.style.width=f+"px",this.G=f);this.f||(Mc(this.t,j),this.f=j)}};Kh.prototype.a=function(a){this.e!==k&&(F(this.e,J),this.e=k);Kh.w.a.call(this,a);a!==k&&(this.e=[H(a,"postrender",this.z,l,this)])};function Mh(){this.a={}}D(Mh,Ff);Mh.prototype.b=function(a,b){var c;for(c=0;c=Math.abs(a+c)?0:a+c}};var wg={Rb:function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a},Ed:function(a){return a*a*a},Oa:function(a){return 1-Math.pow(1-a,3)},Fd:function(a){return Math.pow(2,-10*a)*Math.sin((a-0.075)*2*Math.PI/0.3)+1},Ja:function(a){return 3*a*a-2*a*a*a},Uc:ba(),pd:function(a){return 0.5>a?wg.Ja(2*a):1-wg.Ja(2*(a-0.5))}};var xg={Rb:function(a){var b=a.resolution,c=x(a.start)?a.start:ta(),d=x(a.duration)?a.duration:1E3,e=x(a.easing)?a.easing:wg.pd;return function(a,h){if(h.timeb-a.f;)d--;if(0<=d){var b=a.a[d],c=a.a[c],d=c.x-b.x,e=c.y-b.y;a.c=Math.atan2(e,d);a.b=Math.sqrt(d*d+e*e)/(c.$a-b.$a);return a.b>a.d}return l}Hg.prototype.ia=function(a){var b=this.e,c=this.b,d=this.d,e=Math.log(this.d/this.b)/this.e;return xg.ia({source:a,duration:e,easing:function(a){return c*(Math.exp(b*a*e)-1)/(d-c)}})};function Jg(){};function Kg(a){this.a=a}D(Kg,Jg);Kg.prototype.Ea=function(a){var b=a.a;if(a.type==ig&&(Ee||Gc(a.a))){var c=a.map,d=a.d(),e=a.a.Ca?-this.a:this.a;Cg(c.a(),c,e,d,250);a.A();b.A()}};function Lg(a){return a.na&&!a.Gb&&a.Ca}function Mg(a){return!a.na&&!a.Gb&&!a.Ca}function Ng(a){return!a.na&&!a.Gb&&a.Ca};function Og(){this.c=l;this.s=this.i=this.e=this.d=0;this.Za=this.f=k}D(Og,Jg);p=Og.prototype;p.$b=da;p.sb=da;p.tb=ie;p.Rc=da;p.Ea=function(a){var b=a.map;if(b.Va()){var b=b.a(),c=a.a;a.type==lg&&this.Rc(a);this.c?a.type==ng?(this.O=c.clientX-this.d,this.N=c.clientY-this.e,this.$b(a)):a.type==kg&&(this.O=c.clientX-this.d,this.N=c.clientY-this.e,this.sb(a),this.c=l):a.type==mg&&(this.d=c.clientX,this.e=c.clientY,this.N=this.O=0,this.f=b.R(),this.Za=a.d(),this.tb(a)&&(this.c=i,a.A()))}};function Pg(a,b){Og.call(this);this.g=a;this.a=b;this.b=k}D(Pg,Og);Pg.prototype.$b=function(a){this.a&&this.a.a.push({x:a.a.clientX,y:a.a.clientY,$a:ta()});var a=a.map,b=a.a(),c=b.S(),d=b.ca(),c=new L(-c*this.O,c*this.N);c.rotate(d);d=new L(this.f.x+c.x,this.f.y+c.y);yg(a);b.a(d)};
+Pg.prototype.sb=function(a){var b=a.map,a=b.a();tg(a,-1);if(this.a&&Ig(this.a)){var c=(this.a.d-this.a.b)/this.a.e,d=this.a.c,e=a.R();this.b=this.a.ia(e);b.ra(this.b);e=Qg(b,e);b=fg(b,new dg(e.x-c*Math.cos(d),e.y-c*Math.sin(d)));a.a(b)}};Pg.prototype.tb=function(a){var b=a.a;if(this.g(b)){if(this.a){var c=this.a;c.a.length=0;c.c=0;c.b=0;this.a.a.push({x:b.clientX,y:b.clientY,$a:ta()})}a=a.map;yg(a);tg(a.a(),1);return i}return l};
+Pg.prototype.Rc=function(a){var b=a.map,c=b.a();this.b!==k&&Ma(b.i,this.b)&&(yg(b),c.a(a.c.v.center),this.b=k)};function Rg(a){Og.call(this);this.b=a}D(Rg,Og);Rg.prototype.$b=function(a){var b=a.map,c=b.f(),a=gg(a),c=Math.atan2(c.height/2-a.y,a.x-c.width/2);if(x(this.a)){var a=c-this.a,d=b.a();yg(b);zg(d,b,d.ca()-a)}this.a=c};Rg.prototype.sb=function(a){var a=a.map,b=a.a();b.rotate(a,b.ca(),g,250);tg(b,-1)};Rg.prototype.tb=function(a){var b=a.a;return Gc(b)&&this.b(b)?(a=a.map,b=a.a(),yg(a),this.a=g,tg(b,1),i):l};function Sg(a){var b=dc("DIV","ol-dragbox");this.c=k;this.e=a.Za;this.d=k;Dg.call(this,{element:b,map:a.map})}D(Sg,Dg);Sg.prototype.a=function(a){this.d!==k&&(J(this.d),this.d=k);a!==k&&(this.c=Qg(a,this.e),bd(this.element,this.c),nd(this.element,new Qe(0,0)),this.d=I(a,ng,this.f,l,this));Sg.z.a.call(this,a)};Sg.prototype.f=function(a){var b=this.b,a=a.d(),b=Qg(b,a);bd(this.element,new dg(Math.min(b.x,this.c.x),Math.min(b.y,this.c.y)));nd(this.element,new Qe(Math.abs(b.x-this.c.x),Math.abs(b.y-this.c.y)))};function Tg(a){Og.call(this);this.b=a;this.a=k}D(Tg,Og);Tg.prototype.sb=function(a){this.a.a(k);this.a=k;if(64<=this.O*this.O+this.N*this.N){var b=a.map,c=Te(this.Za,a.d());Ag(b,function(){var a=b.a(),e=b.f();a.f(c,e);a.d(0)})}};Tg.prototype.tb=function(a){var b=a.a;return Gc(b)&&this.b(b)?(this.a=new Sg({map:a.map,Za:this.Za}),i):l};function Ug(a){a=x(a)?a:{};this.a=x(a.delta)?a.delta:128}D(Ug,Jg);Ug.prototype.Ea=function(a){if("key"==a.type){var b=a.a,c=b.Ia;if(40==c||37==c||39==c||38==c){var d=a.map,e=d.a(),f=e.S(),h=e.ca(),f=f*this.a,j=0,m=0;40==c?m=-f:37==c?j=-f:39==c?j=f:m=f;c=new L(j,m);c.rotate(h);e.ia(d,c,100);b.A();a.A()}}};function Vg(a){a=x(a)?a:{};this.a=x(a.delta)?a.delta:1}D(Vg,Jg);Vg.prototype.Ea=function(a){if("key"==a.type){var b=a.a,c=b.pb;if(43==c||45==c){var d=a.map,c=43==c?this.a:-this.a;yg(d);Cg(d.a(),d,c,g,100);b.A();a.A()}}};function Wg(){this.a=0;this.c=k;this.d=this.b=g}D(Wg,Jg);Wg.prototype.Ea=function(a){if("mousewheel"==a.type){var b=a.map,c=a.a;this.c=a.d();this.a+=c.N/3;x(this.b)||(this.b=ta());var d=Math.max(80-(ta()-this.b),0);r.clearTimeout(this.d);this.d=r.setTimeout(ra(this.e,this,b),d);a.A();c.A()}};Wg.prototype.e=function(a){var b=Rb(this.a,-1,1),c=a.a();yg(a);Cg(c,a,-b,this.c,250);this.a=0;this.c=k;this.d=this.b=g};function Xg(){this.g=l;this.i={};this.targetTouches=[]}D(Xg,Jg);function Yg(a){for(var b=a.length,c=0,d=0,e=0;ethis.s&&(this.a=i));this.c=c;var a=a.map,c=a.a(),d=hd(a.b),e=Yg(this.targetTouches);e.x-=d.x;e.y-=d.y;d=fg(a,e);this.a&&zg(c,a,c.ca()+b,d)};
+$g.prototype.d=function(a){if(2>this.targetTouches.length){var a=a.map,b=a.a();this.a&&b.rotate(a,b.ca(),g,250);tg(b,-1);return l}return i};$g.prototype.f=function(a){return 2<=this.targetTouches.length?(a=a.map.a(),this.c=g,this.a=l,this.b=0,tg(a,1),i):l};function ah(){Xg.call(this)}D(ah,Xg);ah.prototype.e=function(a){var b=1,c=this.targetTouches[0],d=this.targetTouches[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);x(this.a)&&(b=this.a/e);this.a=e;a=a.map;e=a.a();c=hd(a.b);d=Yg(this.targetTouches);d.x-=c.x;d.y-=c.y;c=fg(a,d);Bg(e,a,e.S()*b,c)};ah.prototype.d=function(a){if(2>this.targetTouches.length){var a=a.map,b=a.a();b.zoom(a,b.S(),g,250);tg(b,-1);return l}return i};
+ah.prototype.f=function(a){return 2<=this.targetTouches.length?(a=a.map.a(),this.a=g,tg(a,1),i):l};function bh(a,b){var c=x(a)?a:{},d=new N;(x(c.rotate)?c.rotate:1)&&d.push(new Rg(Lg));if(x(c.Ce)?c.Ce:1)d.push(new Kg(x(c.$e)?c.$e:1));(x(c.He)?c.He:1)&&d.push(new Zg(new Hg(-0.005,0.05,100)));(x(c.Ie)?c.Ie:1)&&d.push(new $g);(x(c.Je)?c.Je:1)&&d.push(new ah);(x(c.De)?c.De:1)&&d.push(new Pg(Mg,new Hg(-0.005,0.05,100)));if(x(c.Ee)?c.Ee:1)d.push(new Ug),d.push(new Vg);(x(c.Fe)?c.Fe:1)&&d.push(new Wg);(x(c.Ge)?c.Ge:1)&&d.push(new Tg(Ng));if(x(b))for(c=0;cb.d&&(j=b.a.length,0!==j))for(var q=Math.ceil(j/2),m=h=g,v=0;vthis.d&&!(b=this.a.U,c=b.fa.n.toString(),c in a&&a[c].contains(b.fa));)this.pop()};function ej(a,b){this.a=k;var c=b;x(c)||(c=a[0].length,c=new wi({P:c}));this.a=c;this.b=xi(c,a);this.P=c.a;this.e=k}D(ej,zi);ej.prototype.J=function(){return this.a.J(this.b)};ej.prototype.d=function(){if(this.e===k){var a=this.P,b=this.a,c=this.b,d=b.J(c),e=b.d[c],d=e+d*a,b=b.b,f,h,j,m,q,c=f=b[e];h=j=b[e+1];for(q=e+a;qf&&(f=e),mj&&(j=m);this.e=new O(c,h,f,j)}return this.e};ej.prototype.c=ca("linestring");function fj(){this.bounds=this.b=this.a=k}D(fj,zi);fj.prototype.d=function(){if(this.bounds===k){var a,b=a=Number.POSITIVE_INFINITY,c,d=c=Number.NEGATIVE_INFINITY,e=this.b,f=e.length,h,j;for(j=0;j=oc;++oc)Pd=hk[oc],Pd instanceof Pi?ph=Pd:Pd instanceof Oi&&(qh=Pd);qh&&ph&&(Wb=Ii(Od.b,qh.I(),
+ph.b))}}if(!x(Wb)){var ik=Od.a,rh=g,Wb={};for(oc in ik)rh=ik[oc],Cb.a(rh)===i&&(Wb[oc]=rh)}}else Wb=Od.a;Sm(Tm,Wb)}wa[Ia]=S}for(nc in ea){var jk=ea[nc],Qd={},Rd=[],kk=e.Pb,lk=g,jf=g,mk=g,kf=g,Sd=g,nk=g,Td=g,sh=g,lf=g;for(lk in jk){var mf=kf=jk[lk],th=k;if(mf.b!==k)for(var ok=mf.b.length,th=Array(ok),nf=0;nfthis.b.d;)this.b.pop();this.e=l};var Hj=128;function Ij(a,b){ki.call(this,a,b);this.f=new Qe(a.clientHeight,a.clientWidth);this.c=fc("CANVAS");this.c.height=this.f.height;this.c.width=this.f.width;this.c.className="ol-unselectable";ic(a,this.c);this.g=i;this.i=this.c.getContext("2d")}D(Ij,ki);Ij.prototype.gb=function(a){return a instanceof ui?new Yi(this,a):a instanceof vi?new Zi(this,a):a instanceof Vi?new Gj(this,a):k};Ij.prototype.kb=n("c");
+Ij.prototype.Eb=function(a){if(a===k)this.g&&(ld(this.c,l),this.g=l);else{var b=a.size;this.f.width==b.width&&this.f.height==b.height||(this.c.width=b.width,this.c.height=b.height,this.f=b);var c=this.i;c.setTransform(1,0,0,1,0,0);var d=a.backgroundColor;c.fillStyle="rgb("+d.c.toFixed(0)+","+d.b.toFixed(0)+","+d.a.toFixed(0)+")";c.globalAlpha=1;c.fillRect(0,0,b.width,b.height);ni(a);F(a.zb,function(b){var d=a.yb[z(b)];if(d.visible)if(d.Ib){var h=oi(this,b);h.oa(a,d);b=h.M();b!==k&&(h=h.Ub(),c.setTransform(h[0],
+h[1],h[4],h[5],h[12],h[13]),c.globalAlpha=d.opacity,c.drawImage(b,0,0))}else a.$=i},this);this.g||(ld(this.c,i),this.g=i)}};var Jj=function(){if(!("HTMLCanvasElement"in r))return l;try{return fc("CANVAS").getContext("2d")!==k}catch(a){return l}}();function Kj(a,b){var c;if(x(6)){var d=Array(16);for(c=0;16>c;++c)d[c]=b[c].toFixed(6);c=d.join(",")}else c=b.join(",");c="matrix3d("+c+")";d=a.style;d.WebkitTransform=c;d.MozTransform=c;d.a=c;d.transform=c};function Lj(a,b,c){bi.call(this,a,b);this.target=c}D(Lj,bi);Lj.prototype.r=function(){jc(this.target);Lj.z.r.call(this)};function Mj(a,b){var c=fc("DIV");c.className="ol-layer-image";c.style.position="absolute";Lj.call(this,a,b,c);this.b=k;this.c=Ze()}D(Mj,Lj);
+Mj.prototype.oa=function(a){var b=a.v,c=b.center,d=b.resolution,e=b.rotation,f=this.b,h=this.a.da(),j=a.F;!j[0]&&!j[1]&&(b=h.M(a.extent,d,b.projection),b!==k&&(h=b.a,0==h?(Oc(b,"change",this.ac,l,this),lh(b)):2==h&&(f=b)));f!==k&&(h=f.I(),j=f.e,b=Xe(),af(b),ef(b,a.size.width/2,a.size.height/2),xf(b,e),ff(b,j/d,j/d),ef(b,(h.h-c.x)/j,(c.y-h.k)/j),f!=this.b&&(c=kh(f,this),c.style.position="absolute",hc(this.target),this.target.appendChild(c),this.b=f),cf(b,this.c)||(Kj(this.target,b),$e(this.c,b)),fi(a.attributions,
+f.za()))};function Nj(a,b){var c=fc("DIV");c.className="ol-layer-tile";c.style.position="absolute";Lj.call(this,a,b,c);this.c=i;this.d=1;this.b={}}D(Nj,Lj);
+Nj.prototype.oa=function(a,b){if(b.visible){var c=a.v,d=c.projection,e=this.a.da(),f=z(e).toString(),h=e.tileGrid;h===k&&(h=Yh(d));var j=ug(h.a,c.resolution),m=h.a[j],q=c.center,v;m==c.resolution?(q=ji(q,m,a.size),v=Ue(q,m,c.rotation,a.size)):v=a.extent;var m=Th(h,v,m),s={};s[j]={};var A=ra(e.e,e,s,ii(function(a){return a!==k&&2==a.a},e,h,d)),u,t,y,w,B;for(w=m.h;w<=m.j;++w)for(B=m.l;B<=m.k;++B){y=new yf(j,w,B);u=e.b(y,h,d);t=u.a;if(0==t)hi(a.bb,e,y),t=Wh(h,y),Ef(a.mc,u,f,t);else if(1==t)di(this,u);
+else if(2==t){s[j][y.toString()]=u;continue}else if(3==t||4==t)continue;h.b(y,A)}A=Ga(Wa(s),Number);Sa(A);var d={},E;for(u=0;uy&&ic(this.target,f.target)}else{if(!a.F[0]&&!a.F[1]){t=
+Th(f.c,v,f.c.a[f.d.n]);y=[];B=w=g;for(B in f.b)w=f.b[B],t.contains(w.fa)||y.push(w);t=g;for(t=0;t=a.J()){for(var a=this.a,d=0;d>1,a[d].Q>c.Q)a[b]=a[d],b=d;else break;a[b]=c}p=Xj.prototype;
+p.remove=function(){var a=this.a,b=a.length,c=a[0];if(!(0>=b)){if(1==b)La(a);else{a[0]=a.pop();for(var a=0,b=this.a,d=b.length,e=b[a];a>1;){var f=2*a+1,h=2*a+2,f=he.Q)break;b[a]=b[f];a=f}b[a]=e}return c.U}};p.W=function(){for(var a=this.a,b=[],c=a.length,d=0;dc;++c)d=b.remove(),Hk(a,d)},b,t));H?(this.b=A,this.w=u):(this.w=this.b=k,
+a.$=i)}gi(a.ab,f,m,A);ai(f,m,s,j);ei(a,f);af(this.d);ef(this.d,(v.x-u.h)/(u.j-u.h),(v.y-u.l)/(u.k-u.l));xf(this.d,d.rotation);ff(this.d,a.size.width*d.resolution/(u.j-u.h),a.size.height*d.resolution/(u.k-u.l));ef(this.d,-0.5,-0.5)};var Ik=["webgl","webgl-experimental","webkit-3d","moz-webgl"];function Jk(a,b){var c,d,e=Ik.length;for(d=0;d>1)-1;0<=b;b--)Gf(a,b);for(var a=this.G,m;0b?(d="\u2032",a*=60):d="\u00b0":"imperial"==this.c?0.9144>b?(d="in",a/=0.0254):1609.344>b?(d="ft",a/=0.3048):(d="mi",a/=1609.344):"nautical"==this.c?(a/=1852,d="nm"):"metric"==this.c?1>b?(d="mm",a*=1E3):1E3>b?d="m":(d="km",a/=1E3):"us"==this.c&&(0.9144>b?(d="in",a*=39.37):1609.344>b?(d="ft",a/=0.30480061):(d="mi",a/=1609.3472));for(var b=3*Math.floor(Math.log(this.i*a)/Math.log(10)),e,f;;){e=cl[b%3]*Math.pow(10,Math.floor(b/3));f=Math.round(e/a);if(f>=this.i)break;++b}e=e+d;this.t!=e&&
+(this.t=this.g.innerHTML=e);this.B!=f&&(this.g.style.width=f+"px",this.B=f);this.f||(ld(this.s,i),this.f=i)}};bl.prototype.a=function(a){this.e!==k&&(F(this.e,J),this.e=k);bl.z.a.call(this,a);a!==k&&(this.e=[I(a,"postrender",this.w,l,this)])};function dl(a){tc.call(this);this.b=a;this.a=[]}D(dl,tc);var el=[];function fl(a,b,c,d,e){ha(c)||(el[0]=c,c=el);for(var f=0;fthis.Sc)if(K(this,new ll("start",this,a.clientX,a.clientY,a)))this.Da=i;else{this.hc||this.ib(a);return}}c=pl(this,b,c);b=c.x;c=c.y;this.Da&&K(this,new ll("beforedrag",this,a.clientX,a.clientY,a,b,c))&&(ql(this,a,b,c),a.A())}};
+function pl(a,b,c){var d=mc(Vb(a.c)),b=b+(d.x-a.e.x),c=c+(d.y-a.e.y);a.e=d;a.O+=b;a.N+=c;b=ml(a,a.O);a=nl(a,a.N);return new Tb(b,a)}p.Ke=function(a){var b=pl(this,0,0);a.clientX=this.clientX;a.clientY=this.clientY;ql(this,a,b.x,b.y)};function ql(a,b,c,d){a.oc&&jl(a)?a.target.style.right=c+"px":a.target.style.left=c+"px";a.target.style.top=d+"px";K(a,new ll("drag",a,b.clientX,b.clientY,b,c,d))}
+function ml(a,b){var c=a.b,d=!isNaN(c.left)?c.left:k,c=!isNaN(c.width)?c.width:0;return Math.min(d!=k?d+c:Infinity,Math.max(d!=k?d:-Infinity,b))}function nl(a,b){var c=a.b,d=!isNaN(c.top)?c.top:k,c=!isNaN(c.height)?c.height:0;return Math.min(d!=k?d+c:Infinity,Math.max(d!=k?d:-Infinity,b))}function ll(a,b,c,d,e,f,h,j){zc.call(this,a);this.clientX=c;this.clientY=d;this.d=e;this.left=x(f)?f:b.O;this.top=x(h)?h:b.N;this.c=b;this.a=!!j}D(ll,zc);function rl(a){this.s=x(a.maxResolution)?a.maxResolution:156543.0339;this.g=x(a.minResolution)?a.minResolution:0.5971642833948135;this.t=this.s-this.g;this.d=sl;this.e=this.f=k;var b=dc("DIV","ol-zoomslider ol-unselectable",dc("DIV","ol-zoomslider-thumb ol-unselectable"));this.e!==k&&(F(this.e,J),this.e=k);var c=new hl(b.childNodes[0]);this.e=[I(c,["drag","end"],this.G,g,this)];this.i=c;I(b,["touchend","click"],this.w,l,this);Dg.call(this,{element:b,map:a.map})}D(rl,Dg);var sl=0;
+rl.prototype.a=function(a){rl.z.a.call(this,a);this.c=a.a().S();this.f!==k&&(F(this.f,J),this.f=k);this.b!==k&&(this.f=[I(this.b,"postrender",this.B,g,this)]);var b=this.element,a=b.firstElementChild!=g?b.firstElementChild:kc(b.firstChild);var c=$b(b),d=G&&b.currentStyle;d&&lc(Vb(c))&&"auto"!=d.width&&"auto"!=d.height&&!d.boxSizing?(c=qd(b,d.width,"width","pixelWidth"),b=qd(b,d.height,"height","pixelHeight"),b=new Ub(c,b)):(d=new Ub(b.offsetWidth,b.offsetHeight),c=od(b,"padding"),b=pd(b),b=new Ub(d.width-
+b.left-c.left-c.right-b.right,d.height-b.top-c.top-c.bottom-b.bottom));var d=fd(a),c=jd(a),d=new Zc(d.x,d.y,c.width,c.height),c=od(a,"margin"),e=pd(a),a=b.width-c.left-c.right-e.left-e.right-d.width,d=b.height-c.top-c.bottom-e.top-e.bottom-d.height;b.width>b.height?(this.d=1,a=new Zc(0,0,a,0)):(this.d=sl,a=new Zc(0,0,0,d));this.i.b=a||new Zc(NaN,NaN,NaN,NaN);tl(this,this.c)};rl.prototype.B=function(a){a=a.c.v.resolution;a!==this.c&&(this.c=a,tl(this,a))};rl.prototype.w=function(){};
+function tl(a,b){var c=(Rb(b,a.g,a.s)-a.g)/a.t,d=a.i,e=a.element.firstElementChild!=g?a.element.firstElementChild:kc(a.element.firstChild);1==a.d?bd(e,d.b.left+d.b.width*c):bd(e,d.b.left,d.b.top+d.b.height*c)}rl.prototype.G=function(a){var b=this.b,c=this.i.b,d=0,d=1===this.d?(a.left-c.left)/c.width:(a.top-c.top)/c.height,a=Rb(d,0,1),a=this.g+this.t*a;a!==this.c&&(this.c=a,b.a().b(a))};function ul(){this.a={}}D(ul,Jg);ul.prototype.b=function(a,b){var c;for(c=0;cthis.d&&!(b=this.a.Y,c=b.X.n.toString(),c in a&&a[c].contains(b.X));)this.pop()};function yi(a){qg.call(this,{attributions:a.attributions,extent:a.extent,opaque:a.opaque,projection:a.projection,tileGrid:a.tileGrid});this.ba=z(a.ba)?a.ba:ui;this.G=z(a.crossOrigin)?a.crossOrigin:"anonymous";this.a=new xi}D(yi,qg);yi.prototype.g=function(){return this.a.ca()>this.a.d};yi.prototype.Ja=function(a){this.a.Ja(a)};yi.prototype.b=function(a,b,c){var d=a.toString();if(lh(this.a,d))return oh(this.a,d);b=this.ba(a,b,c);a=new wi(a,z(b)?0:4,z(b)?b:"",this.G);ph(this.a,d,a);return a};
-yi.prototype.r=function(a){a=a.toString();lh(this.a,a)&&oh(this.a,a)};function zi(a){var b=Array(a.maxZoom+1),c,d=2*ag/256;for(c=0;c<=a.maxZoom;++c)b[c]=d/Math.pow(2,c);ig.call(this,{origin:new L(-ag,ag),resolutions:b,tileSize:new de(256,256)})}D(zi,ig);zi.prototype.b=function(a,b,c){for(var d=a.x,e=a.y,a=a.n,f;;){a-=1;if(0>a)break;d>>=1;e>>=1;f=new xe(d,e,d,e);if(b.call(c,a,f))break}};function Ai(a){yi.call(this,{opaque:j,projection:Ve("EPSG:3857")});this.gd=z(a.culture)?a.culture:"en-us";this.i=l;var b=new Zc("//dev.virtualearth.net/REST/v1/Imagery/Metadata/"+a.style),b=new oi(b),a={include:"ImageryProviders",key:a.key},c=na(this.u,this),a=a||k,d="_"+(pi++).toString(36)+qa().toString(36);v._callbacks_||(v._callbacks_={});var e=b.b.T();if(a)for(var f in a)(!a.hasOwnProperty||a.hasOwnProperty(f))&&md(e,f,a[f]);c&&(v._callbacks_[d]=function(a){qi(d,j);c.apply(h,arguments)},md(e,
-b.a,"_callbacks_."+d));f=ii(e.toString(),{timeout:b.Cb,jc:j});f.a.push([k,function(){qi(d,l)},h]);f.na&&ei(f)}D(Ai,yi);
-Ai.prototype.u=function(a){var b=a.resourceSets[0].resources[0],c=b.zoomMin,d=b.zoomMax,e=new zi({maxZoom:d,tileSize:new de(b.imageWidth,b.imageHeight)});this.tileGrid=e;this.ba=vi(function(a){if(a.ne||b<=e?k:new ve(a.n,Ib(a.x,b),e)},si(Ca(b.imageUrlSubdomains,function(a){var c=b.imageUrl.replace("{subdomain}",a).replace("{culture}",this.gd);return function(a){return a===k?h:c.replace("{quadkey}",we(a))}})));var f=Le(Ve("EPSG:4326"),this.f);this.e=
-Ca(b.imageryProviders,function(a){var b=a.attribution,c={};F(a.coverageAreas,function(a){var b=a.zoomMin,d=a.zoomMax,a=a.bbox,a=(new P(a[1],a[0],a[3],a[2])).transform(f),g,i;for(g=b;g<=d;++g)i=g.toString(),b=kg(e,a,e.a[g]),i in c?c[i].push(b):c[i]=[b]});return new ye(b,c)});this.i=j;K(this,"load")};Ai.prototype.c=n("i");function Bi(a,b){ze.call(this,a,2);this.e=a;this.d=og(b,a.n);this.c={}}D(Bi,ze);Bi.prototype.J=function(a){a=z(a)?A(a):-1;if(a in this.c)return this.c[a];var b=this.d,c=Tb("CANVAS");c.width=b.width;c.height=b.height;var d=c.getContext("2d");d.strokeStyle="black";d.strokeRect(0.5,0.5,b.width+0.5,b.height+0.5);d.fillStyle="black";d.textAlign="center";d.textBaseline="middle";d.font="24px sans-serif";d.fillText(this.e.toString(),b.width/2,b.height/2);return this.c[a]=c};
-function Ci(a){qg.call(this,{extent:a.extent,opaque:l,projection:a.projection,tileGrid:a.tileGrid});this.a=new xi}D(Ci,qg);Ci.prototype.g=function(){return this.a.ca()>this.a.d};Ci.prototype.Ja=function(a){this.a.Ja(a)};Ci.prototype.b=function(a){var b=a.toString();if(lh(this.a,b))return oh(this.a,b);a=new Bi(a,this.tileGrid);ph(this.a,b,a);return a};function Di(a){var b=a.projection||Ve("EPSG:3857"),c=ui;z(a.ba)?c=a.ba:z(a.urls)?c=si(Ca(a.urls,ri)):z(a.url)&&(c=ri(a.url));var d=new zi({maxZoom:a.maxZoom}),e=a.extent,c=e!=k?vi(function(b){if(a.maxZoomi||c<=i)return k;c=Ib(b.x,c);return!fe(jg(d,new ve(b.n,c,b.y)),e)?k:new ve(b.n,c,i)},c):vi(function(b){if(a.maxZoomd||c<=d?k:new ve(b.n,Ib(b.x,c),d)},c);yi.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,
-extent:a.extent,projection:b,tileGrid:d,ba:c})}D(Di,yi);function Ei(){Di.call(this,{attributions:[new ye('Tiles Courtesy of MapQuest '),new ye('Data © OpenStreetMap contributors, CC BY-SA ')],opaque:j,maxZoom:28,url:"http://otile{1-4}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg"})}D(Ei,Di);
-function Fi(){Di.call(this,{attributions:[new ye('Tiles Courtesy of MapQuest '),new ye("Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency")],maxZoom:18,opaque:j,url:"http://oatile{1-4}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg"})}D(Fi,Di);function Gi(){Di.call(this,{attributions:[new ye('© OpenStreetMap contributors, CC BY-SA ')],opaque:j,maxZoom:18,url:"http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"})}D(Gi,Di);function Hi(a){Jg.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,resolutions:a.resolutions,Na:z(a.url)?Hg(a.url,a.params):Ig});this.b=k;this.g=1.5}D(Hi,Jg);Hi.prototype.J=function(a,b,c){this.a===k||(b=this.a[rf(this.a,b)]);var d=this.b;if(d!==k&&d.e==b&&d.I().lc(a))return d;var d=a=new P(a.h,a.k,a.j,a.l),e=this.g,f=d.ha()/2*(e-1),e=d.da()/2*(e-1);d.h-=f;d.k-=e;d.j+=f;d.l+=e;return this.b=Kg(this,a,b,new de(a.ha()/b,a.da()/b),c)};var Ii={terrain:{U:"jpg",opaque:j},"terrain-background":{U:"jpg",opaque:j},"terrain-labels":{U:"png",opaque:l},"terrain-lines":{U:"png",opaque:l},"toner-background":{U:"png",opaque:j},toner:{U:"png",opaque:j},"toner-hybrid":{U:"png",opaque:l},"toner-labels":{U:"png",opaque:l},"toner-lines":{U:"png",opaque:l},"toner-lite":{U:"png",opaque:j},watercolor:{U:"jpg",opaque:j}},Ji={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:3,maxZoom:16}},Ki=[new ye('Map tiles by Stamen Design , under CC BY 3.0 . Data by OpenStreetMap , under CC BY SA .')];
-function Li(a){var b=a.layer.indexOf("-"),b=-1==b?a.layer:a.layer.slice(0,b),c=Ii[a.layer];Di.call(this,{attributions:Ki,maxZoom:Ji[b].maxZoom,opaque:c.opaque,url:z(a.url)?a.url:"http://{a-d}.tile.stamen.com/"+a.layer+"/{z}/{x}/{y}."+c.U})}D(Li,Di);function Mi(a){var b=a.url,c=a.imageExtent,d=a.imageSize,e=c.da()/d.height,f=Ve(a.projection);Jg.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,Na:function(){return b},resolutions:[e]});this.b=Kg(this,c,e,d,f)}D(Mi,Jg);Mi.prototype.J=function(a){return fe(a,this.b.I())?this.b:k};var Ni=[];C("grid",function(a){Ni.push(a)});function Oi(a){yi.call(this,{projection:Ve("EPSG:3857")});this.i=l;a=this.u=ii(a.uri,{jc:j});a.a.push([this.z,k,this]);a.na&&ei(a)}D(Oi,yi);
-Oi.prototype.z=function(){var a=Ni.pop(),b=Ve("EPSG:4326"),c,d;z(a.bounds)?(c=a.bounds,c=new P(c[0],c[1],c[2],c[3]),this.t=d=c.transform(Le(b,this.f))):d=c=k;var e=a.minzoom||0,f=a.maxzoom||22,g=new zi({maxZoom:f});this.tileGrid=g;this.ba=vi(function(a){if(a.nc||b<=c)return k;b=Ib(a.x,b);return d!==k&&!fe(jg(g,new ve(a.n,b,a.y)),d)?k:new ve(a.n,b,c)},si(Ca(a.tiles,ri)));if(z(a.attribution)){b=d===k?b.I():d;c={};var i,m;for(i=e;i<=f;++i)m=i.toString(),
-c[m]=[kg(g,b,g.a[i])];this.e=[new ye(a.attribution,c)]}this.i=j;K(this,"load")};Oi.prototype.c=n("i");function Pi(a){var b;a.urls?(b=Ca(a.urls,function(b){return ti(b,a.params)}),b=si(b)):b=a.url?ti(a.url,a.params):ui;var c=a.extent;yi.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:c,tileGrid:a.tileGrid,opaque:!(z(a.params.TRANSPARENT)?a.params.TRANSPARENT:1),projection:a.projection,ba:vi(function(a,b,f){if(b.fb().length<=a.n)return k;var g=a.x,i=jg(b,a),m=f.I();c=z(c)?c:m;c!==k&&(f.Lb&&c.h===m.h&&c.j===m.j)&&(f=Math.ceil((c.j-c.h)/(i.j-i.h)),g=Ib(g,f),i=jg(b,new ve(a.n,g,
-a.y)));return!fe(i,c)?k:new ve(a.n,g,a.y)},b)})}D(Pi,yi);function Qi(a){this.g=a.matrixIds;ig.call(this,{origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes})}D(Qi,ig);function Ri(a){var b=z(a.version)?a.version:"1.0.0",c=z(a.format)?a.format:"image/jpeg",d=z(a.requestEncoding)?a.requestEncoding:"KVP",e=a.tileGrid,f={Layer:a.layer,style:a.style,TileMatrixSet:a.matrixSet};Wa(f,a.dimensions||{});var g;"KVP"==d&&(g={Service:"WMTS",Request:"GetTile",Version:b,Format:c,TileMatrix:"{TileMatrix}",TileRow:"{TileRow}",TileCol:"{TileCol}"},Wa(g,f));b=a.urls;if(!z(b)){var b=[],c=a.url,i=/\{(\d)-(\d)\}/.exec(c)||/\{([a-z])-([a-z])\}/.exec(c);if(i){var m=i[2].charCodeAt(0),
-q;for(q=i[1].charCodeAt(0);q<=m;++q)b.push(c.replace(i[0],String.fromCharCode(q)))}else b.push(c)}b=si(Ca(b,function(a){z(g)&&(a=Wc(Yc([a],g)));var b=a;return function(a){if(a!==k){a={TileMatrix:e.g[a.n],TileCol:a.x,TileRow:a.y};"KVP"!=d&&Wa(a,f);var c=b,g;for(g in a)c=c.replace("{"+g+"}",a[g]).replace("%7B"+g+"%7D",a[g]);return c}}}));b=vi(function(b,c,d){if(c.fb().length<=b.n)return k;var e=b.x,f=-b.y-1,g=jg(c,b),i=d.I(),m=z(a.extent)?a.extent:i;m!==k&&(d.Lb&&m.h===i.h&&m.j===i.j)&&(d=Math.ceil((m.j-
-m.h)/(g.j-g.h)),e=Ib(e,d),g=jg(c,new ve(b.n,e,b.y)));return!fe(g,m)?k:new ve(b.n,e,f)},b);yi.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,tileGrid:e,ba:b})}D(Ri,yi);C("goog.require",ba);function Si(a){Eh.call(this,{element:a.element,map:a.map,position:a.position,positioning:a.positioning})}D(Si,Eh);C("ol.AnchoredElement",Si);C("ol.AnchoredElementPositioning",Dh);Dh.BOTTOM_LEFT="bottom-left";Dh.BOTTOM_RIGHT="bottom-right";Dh.TOP_LEFT="top-left";Dh.TOP_RIGHT="top-right";C("ol.Attribution",ye);C("ol.Collection",N);N.prototype.clear=N.prototype.clear;N.prototype.forEach=N.prototype.forEach;N.prototype.getAt=N.prototype.ld;N.prototype.getLength=N.prototype.eb;
-N.prototype.insertAt=N.prototype.mb;N.prototype.pop=N.prototype.pop;N.prototype.push=N.prototype.push;N.prototype.remove=N.prototype.remove;N.prototype.removeAt=N.prototype.Yb;N.prototype.setAt=N.prototype.oe;C("ol.Coordinate",L);C("ol.Coordinate.createStringXY",function(a){return function(b){return Tc(b,a)}});C("ol.Coordinate.fromProjectedArray",Uc);C("ol.Coordinate.toStringHDMS",function(a){return z(a)?Sc(a.y,"NS")+" "+Sc(a.x,"EW"):""});C("ol.Coordinate.toStringXY",Tc);C("ol.Extent",P);
-P.prototype.containsCoordinate=P.prototype.ed;P.prototype.containsExtent=P.prototype.lc;P.prototype.getBottomLeft=P.prototype.nd;P.prototype.getBottomRight=P.prototype.od;P.prototype.getCenter=P.prototype.a;P.prototype.getHeight=P.prototype.da;P.prototype.getTopLeft=P.prototype.gb;P.prototype.getTopRight=P.prototype.sd;P.prototype.getWidth=P.prototype.ha;P.prototype.transform=P.prototype.transform;C("ol.Geolocation",V);
-function Ti(a){U.call(this,{controls:a.controls,interactions:a.interactions,layers:a.layers,renderer:a.renderer,renderers:a.renderers,target:a.target,view:a.view})}D(Ti,U);C("ol.Map",Ti);U.prototype.addLayer=U.prototype.ce;U.prototype.addPreRenderFunction=U.prototype.ga;U.prototype.addPreRenderFunctions=U.prototype.$c;U.prototype.getInteractions=U.prototype.Gb;U.prototype.getRenderer=U.prototype.Tc;U.prototype.removeLayer=U.prototype.de;af.prototype.getCoordinate=af.prototype.b;C("ol.Object",M);
-M.prototype.bindTo=M.prototype.ad;M.prototype.changed=M.prototype.dd;M.prototype.get=M.prototype.q;M.prototype.notify=M.prototype.Ec;M.prototype.set=M.prototype.p;M.prototype.setOptions=M.prototype.Mc;M.prototype.setValues=M.prototype.ub;M.prototype.unbind=M.prototype.bc;M.prototype.unbindAll=M.prototype.ye;function Ui(a){Je.call(this,{axisOrientation:a.axisOrientation,code:a.code,extent:a.extent,global:a.global,units:a.units})}D(Ui,Je);C("ol.Projection",Ui);Je.prototype.getAxisOrientation=Je.prototype.md;
-Je.prototype.getCode=Je.prototype.qd;Je.prototype.getExtent=Je.prototype.I;Je.prototype.getMetersPerUnit=Je.prototype.sc;Je.prototype.getPointResolution=Je.prototype.c;Je.prototype.getUnits=Je.prototype.td;Je.prototype.isGlobal=Je.prototype.$d;C("ol.ProjectionUnits",He);He.DEGREES="degrees";He.FEET="ft";He.METERS="m";C("ol.RendererHint",zh);zh.CANVAS="canvas";zh.DOM="dom";zh.WEBGL="webgl";C("ol.RendererHints",yh);yh.createFromQueryData=yh.fd;
-function Vi(a){T.call(this,{center:a.center,maxResolution:a.maxResolution,numZoomLevels:a.numZoomLevels,projection:a.projection,resolution:a.resolution,resolutions:a.resolutions,rotation:a.rotation,zoom:a.zoom,zoomFactor:a.zoomFactor})}D(Vi,T);C("ol.View2D",Vi);T.prototype.fitExtent=T.prototype.f;T.prototype.getView2D=T.prototype.g;C("ol.animation",tf);tf.bounce=tf.Ib;tf.pan=tf.aa;tf.rotate=tf.rotate;tf.zoom=tf.zoom;function Wi(a){Af.call(this,{map:a.map,target:a.target})}D(Wi,Af);
-C("ol.control.Attribution",Wi);Af.prototype.setMap=Af.prototype.a;function Xi(a){Hh.call(this,{coordinateFormat:a.coordinateFormat,map:a.map,projection:a.projection,target:a.target,undefinedHTML:a.undefinedHTML})}D(Xi,Hh);C("ol.control.MousePosition",Xi);Hh.prototype.setMap=Hh.prototype.a;function Yi(a){Kh.call(this,{map:a.map,minWidth:a.minWidth,target:a.target,units:a.units})}D(Yi,Kh);C("ol.control.ScaleLine",Yi);Kh.prototype.setMap=Kh.prototype.a;C("ol.control.ScaleLineUnits",Jh);Jh.DEGREES="degrees";
-Jh.IMPERIAL="imperial";Jh.METRIC="metric";Jh.NAUTICAL="nautical";Jh.US="us";function Zi(a){Bf.call(this,{delta:a.delta,map:a.map,target:a.target})}D(Zi,Bf);C("ol.control.Zoom",Zi);Bf.prototype.setMap=Bf.prototype.a;C("ol.control.defaults",Cf);C("ol.easing",S);S.bounce=S.Ib;S.easeIn=S.hd;S.easeOut=S.Ia;S.elastic=S.jd;S.inAndOut=S.Aa;S.linear=S.Ac;S.upAndDown=S.Rc;C("ol.interaction.Keyboard",Mh);Mh.prototype.addCallback=Mh.prototype.b;C("ol.interaction.defaults",Yf);
-function $i(a){R.call(this,{brightness:a.brightness,contrast:a.contrast,hue:a.hue,opacity:a.opacity,saturation:a.saturation,source:a.source,visible:a.visible})}D($i,Lg);C("ol.layer.ImageLayer",$i);function aj(a){R.call(this,{brightness:a.brightness,contrast:a.contrast,hue:a.hue,opacity:a.opacity,saturation:a.saturation,source:a.source,visible:a.visible})}D(aj,Mg);C("ol.layer.TileLayer",aj);C("ol.parser.ogc.WMSCapabilities",Yh);Yh.prototype.read=Yh.prototype.ta;C("ol.parser.ogc.WMTSCapabilities",bi);
-bi.prototype.read=bi.prototype.ta;C("ol.projection.addProjection",Re);C("ol.projection.configureProj4jsProjection",function(a){return Me(a)});C("ol.projection.get",Ve);C("ol.projection.getTransform",We);C("ol.projection.getTransformFromProjections",Le);C("ol.projection.transform",function(a,b,c){b=We(b,c);a=[a.x,a.y];a=b(a,a,2);return new L(a[0],a[1])});C("ol.projection.transformWithProjections",function(a,b,c){b=Le(b,c);a=[a.x,a.y];a=b(a,a,2);return new L(a[0],a[1])});Qg.prototype.getCanvas=Qg.prototype.bb;
-function bj(a){Ai.call(this,{culture:a.culture,key:a.key,style:a.style})}D(bj,Ai);C("ol.source.BingMaps",bj);function cj(a){Ci.call(this,{extent:a.extent,projection:a.projection,tileGrid:a.tileGrid})}D(cj,Ci);C("ol.source.DebugTileSource",cj);C("ol.source.MapQuestOSM",Ei);C("ol.source.MapQuestOpenAerial",Fi);C("ol.source.OpenStreetMap",Gi);
-function dj(a){Hi.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,params:a.params,projection:a.projection,resolutions:a.resolutions,url:a.url})}D(dj,Hi);C("ol.source.SingleImageWMS",dj);function ej(a){Li.call(this,{layer:a.layer,maxZoom:a.maxZoom,minZoom:a.minZoom,opaque:a.opaque,url:a.url})}D(ej,Li);C("ol.source.Stamen",ej);
-function fj(a){Mi.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,imageExtent:a.imageExtent,imageSize:a.imageSize,projection:a.projection,url:a.url})}D(fj,Mi);C("ol.source.StaticImage",fj);function gj(a){Oi.call(this,{uri:a.uri})}D(gj,Oi);C("ol.source.TileJSON",gj);function hj(a){Pi.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,maxZoom:a.maxZoom,params:a.params,projection:a.projection,tileGrid:a.tileGrid,url:a.url,urls:a.urls})}
-D(hj,Pi);C("ol.source.TiledWMS",hj);function ij(a){Ri.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,dimensions:a.dimensions,extent:a.extent,format:a.format,layer:a.layer,matrixSet:a.matrixSet,maxZoom:a.maxZoom,projection:a.projection,requestEncoding:a.requestEncoding,style:a.style,tileGrid:a.tileGrid,url:a.url,urls:a.urls})}D(ij,Ri);C("ol.source.WMTS",ij);
-C("ol.source.WMTS.optionsFromCapabilities",function(a,b){var c;c=a.contents.layers;var d=Ea(c,function(a){return a.identifier==b},h);c=0>d?k:ga(c)?c.charAt(d):c[d];var d=c.tileMatrixSetLinks[0].tileMatrixSet,e=c.formats[0],f=Ea(c.styles,function(a){return a.isDefault});0>f&&(f=0);var f=c.styles[f].identifier,g={};F(c.dimensions,function(a){var b=a.identifier,c=a["default"];z(c)||(c=a.values[0]);g[b]=c});var i=a.contents.tileMatrixSets[d],m,q=[],t=[],r=[],y=[],w=Ve(i.supportedCRS).sc();F(i.matrixIds,
-function(a){t.push(a.identifier);r.push(a.topLeftCorner);q.push(2.8E-4*a.scaleDenominator/w);y.push(new de(a.tileWidth,a.tileHeight))});m=new Qi({origins:r,resolutions:q,matrixIds:t,tileSizes:y});var i=Ve(i.supportedCRS),s=a.operationsMetadata.GetTile.dcp.http.get,x=Qa(s[0].constraints.GetEncoding.allowedValues)[0],u;switch(x){case "REST":u=c.resourceUrls.tile[e];break;case "KVP":u=[],F(s,function(a){a.constraints.GetEncoding.allowedValues.hasOwnProperty("KVP")&&u.push(a.url)})}return{urls:u,layer:b,
-matrixSet:d,format:e,projection:i,requestEncoding:x,tileGrid:m,style:f,dimensions:g}});function jj(a){ig.call(this,{origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes})}D(jj,ig);C("ol.tilegrid.TileGrid",jj);function kj(a){Qi.call(this,{matrixIds:a.matrixIds,origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes})}D(kj,Qi);C("ol.tilegrid.WMTS",kj);function lj(a){zi.call(this,{maxZoom:a.maxZoom})}
-D(lj,zi);C("ol.tilegrid.XYZ",lj);tf.De={};tf.Ue={};tf.Ve={};tf.df={};})();
+function Ql(a,b){this.a=[];this.f=a;this.e=b||k}p=Ql.prototype;p.ya=l;p.Sa=l;p.Ya=0;p.jd=l;p.zd=l;p.yd=0;p.zc=function(a,b){Rl(this,a,b);this.Ya--;0==this.Ya&&this.ya&&Sl(this)};function Rl(a,b,c){a.ya=i;a.b=c;a.Sa=!b;Sl(a)}function Tl(a){a.ya&&(a.jd||aa(new Ul(a)),a.jd=l)}p.fb=function(a){Tl(this);Rl(this,i,a)};function Vl(a){return Ha(a.a,function(a){return ka(a[1])})}
+function Sl(a){a.c&&(a.ya&&Vl(a))&&(r.clearTimeout(a.c),delete a.c);a.d&&(a.d.yd--,delete a.d);for(var b=a.b,c=l,d=l;a.a.length&&0==a.Ya;){var e=a.a.shift(),f=e[0],h=e[1],e=e[2];if(f=a.Sa?h:f)try{var j=f.call(e||a.e,b);x(j)&&(a.Sa=a.Sa&&(j==b||j instanceof Error),a.b=b=j);b instanceof Ql&&(d=i,a.Ya++)}catch(m){b=m,a.Sa=i,Vl(a)||(c=i)}}a.b=b;d&&a.Ya&&(d=b,j=ra(a.zc,a,i),f=ra(a.zc,a,l),d.a.push([j,f,g]),d.ya&&Sl(d),b.zd=i);c&&(a.c=r.setTimeout(function(){aa(b)},0))}
+function Ul(a){ua.call(this);this.a=a}D(Ul,ua);Ul.prototype.message="Deferred has already fired";Ul.prototype.name="AlreadyCalledError";function Wl(a,b){var c=b||{},d=c.document||document,e=fc("SCRIPT"),f={ed:e,Lb:g},h=new Ql(Xl,f),j=k,m=c.timeout!=k?c.timeout:5E3;0this.a.d};km.prototype.Pa=function(a){this.a.Pa(a)};km.prototype.b=function(a,b,c){var d=a.toString();if(aj(this.a,d))return bj(this.a,d);b=this.ja(a,b,c);a=new jm(a,x(b)?0:4,x(b)?b:"",this.B);cj(this.a,d,a);return a};
+km.prototype.u=function(a){aj(this.a,a)&&bj(this.a,a)};function lm(a){var b=Array(a.maxZoom+1),c,d=2*eh/256;for(c=0;c<=a.maxZoom;++c)b[c]=d/Math.pow(2,c);Rh.call(this,{origin:new L(-eh,eh),resolutions:b,tileSize:new Qe(256,256)})}D(lm,Rh);lm.prototype.b=function(a,b,c){for(var d=a.x,e=a.y,a=a.n,f;;){a-=1;if(0>a)break;d>>=1;e>>=1;f=new Af(d,e,d,e);if(b.call(c,a,f))break}};function mm(a){km.call(this,{opaque:i,projection:Zf("EPSG:3857")});this.Dd=x(a.culture)?a.culture:"en-us";this.i=l;var b=new Cd("//dev.virtualearth.net/REST/v1/Imagery/Metadata/"+a.style),b=new bm(b),a={include:"ImageryProviders",key:a.key},c=ra(this.t,this),a=a||k,d="_"+(cm++).toString(36)+ta().toString(36);r._callbacks_||(r._callbacks_={});var e=b.b.V();if(a)for(var f in a)(!a.hasOwnProperty||a.hasOwnProperty(f))&&be(e,f,a[f]);c&&(r._callbacks_[d]=function(a){dm(d,i);c.apply(g,arguments)},be(e,
+b.a,"_callbacks_."+d));f=Wl(e.toString(),{timeout:b.Lb,wc:i});f.a.push([k,function(){dm(d,l)},g]);f.ya&&Sl(f)}D(mm,km);
+mm.prototype.t=function(a){var b=a.resourceSets[0].resources[0],c=b.zoomMin,d=b.zoomMax,e=new lm({maxZoom:d,tileSize:new Qe(b.imageWidth,b.imageHeight)});this.tileGrid=e;this.ja=hm(function(a){if(a.ne||b<=e?k:new yf(a.n,Sb(a.x,b),e)},fm(Ga(b.imageUrlSubdomains,function(a){var c=b.imageUrl.replace("{subdomain}",a).replace("{culture}",this.Dd);return function(a){return a===k?g:c.replace("{quadkey}",zf(a))}})));var f=Pf(Zf("EPSG:4326"),this.c);this.f=
+Ga(b.imageryProviders,function(a){var b=a.attribution,c={};F(a.coverageAreas,function(a){var b=a.zoomMin,d=a.zoomMax,a=a.bbox,a=(new O(a[1],a[0],a[3],a[2])).transform(f),h,j;for(h=b;h<=d;++h)j=h.toString(),b=Th(e,a,e.a[h]),j in c?c[j].push(b):c[j]=[b]});return new Bf(b,c)});this.i=i;K(this,"load")};mm.prototype.d=n("i");function nm(a,b){Cf.call(this,a,2);this.e=a;this.d=Xh(b,a.n);this.c={}}D(nm,Cf);nm.prototype.M=function(a){a=x(a)?z(a):-1;if(a in this.c)return this.c[a];var b=this.d,c=fc("CANVAS");c.width=b.width;c.height=b.height;var d=c.getContext("2d");d.strokeStyle="black";d.strokeRect(0.5,0.5,b.width+0.5,b.height+0.5);d.fillStyle="black";d.textAlign="center";d.textBaseline="middle";d.font="24px sans-serif";d.fillText(this.e.toString(),b.width/2,b.height/2);return this.c[a]=c};
+function om(a){$h.call(this,{extent:a.extent,opaque:l,projection:a.projection,tileGrid:a.tileGrid});this.a=new dj}D(om,$h);om.prototype.g=function(){return this.a.J()>this.a.d};om.prototype.Pa=function(a){this.a.Pa(a)};om.prototype.b=function(a){var b=a.toString();if(aj(this.a,b))return bj(this.a,b);a=new nm(a,this.tileGrid);cj(this.a,b,a);return a};function pm(a){var b=a.projection||Zf("EPSG:3857"),c=gm;x(a.ja)?c=a.ja:x(a.urls)?c=fm(Ga(a.urls,em)):x(a.url)&&(c=im(a.url),c=fm(Ga(c,em)));var d=new lm({maxZoom:a.maxZoom}),e=a.extent,c=e!=k?hm(function(b){if(a.maxZoomj||c<=j)return k;c=Sb(b.x,c);return!Sh(d,new yf(b.n,c,b.y)).ha(e)?k:new yf(b.n,c,j)},c):hm(function(b){if(a.maxZoomd||c<=d?k:new yf(b.n,Sb(b.x,c),d)},c);km.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,
+extent:a.extent,projection:b,tileGrid:d,ja:c})}D(pm,km);function qm(){pm.call(this,{attributions:[new Bf('Tiles Courtesy of MapQuest '),new Bf('Data © OpenStreetMap contributors, CC BY-SA ')],opaque:i,maxZoom:28,url:"http://otile{1-4}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg"})}D(qm,pm);
+function rm(){pm.call(this,{attributions:[new Bf('Tiles Courtesy of MapQuest '),new Bf("Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency")],maxZoom:18,opaque:i,url:"http://oatile{1-4}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg"})}D(rm,pm);function sm(){pm.call(this,{attributions:[new Bf('© OpenStreetMap contributors, CC BY-SA ')],opaque:i,maxZoom:18,url:"http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"})}D(sm,pm);function tm(a){si.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,resolutions:a.resolutions,Ua:x(a.url)?qi(a.url,a.params):ri});this.b=k;this.g=x(a.ratio)?a.ratio:1.5}D(tm,si);
+tm.prototype.M=function(a,b,c){this.a===k||(b=this.a[ug(this.a,b)]);var d=this.b;if(d!==k&&d.e==b&&d.I().yc(a))return d;var d=a=new O(a.h,a.l,a.j,a.k),e=this.g,f=d.ma()/2*(e-1),e=d.ga()/2*(e-1);d.h-=f;d.l-=e;d.j+=f;d.k+=e;return this.b=ti(this,a,b,new Qe(a.ma()/b,a.ga()/b),c)};var um={terrain:{aa:"jpg",opaque:i},"terrain-background":{aa:"jpg",opaque:i},"terrain-labels":{aa:"png",opaque:l},"terrain-lines":{aa:"png",opaque:l},"toner-background":{aa:"png",opaque:i},toner:{aa:"png",opaque:i},"toner-hybrid":{aa:"png",opaque:l},"toner-labels":{aa:"png",opaque:l},"toner-lines":{aa:"png",opaque:l},"toner-lite":{aa:"png",opaque:i},watercolor:{aa:"jpg",opaque:i}},vm={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:3,maxZoom:16}},wm=[new Bf('Map tiles by Stamen Design , under CC BY 3.0 . Data by OpenStreetMap , under CC BY SA .')];
+function xm(a){var b=a.layer.indexOf("-"),b=-1==b?a.layer:a.layer.slice(0,b),c=um[a.layer];pm.call(this,{attributions:wm,maxZoom:vm[b].maxZoom,opaque:c.opaque,url:x(a.url)?a.url:"http://{a-d}.tile.stamen.com/"+a.layer+"/{z}/{x}/{y}."+c.aa})}D(xm,pm);function ym(a){var b=a.url,c=a.imageExtent,d=a.imageSize,e=c.ga()/d.height,f=Zf(a.projection);si.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,Ua:function(){return b},resolutions:[e]});this.b=ti(this,c,e,d,f)}D(ym,si);ym.prototype.M=function(a){return a.ha(this.b.I())?this.b:k};var zm=[];C("grid",function(a){zm.push(a)});function Am(a){km.call(this,{projection:Zf("EPSG:3857")});this.i=l;a=this.t=Wl(a.uri,{wc:i});a.a.push([this.w,k,this]);a.ya&&Sl(a)}D(Am,km);
+Am.prototype.w=function(){var a=zm.pop(),b=Zf("EPSG:4326"),c,d;x(a.bounds)?(c=a.bounds,c=new O(c[0],c[1],c[2],c[3]),this.s=d=c.transform(Pf(b,this.c))):d=c=k;var e=a.minzoom||0,f=a.maxzoom||22,h=new lm({maxZoom:f});this.tileGrid=h;this.ja=hm(function(a){if(a.nc||b<=c)return k;b=Sb(a.x,b);return d!==k&&!Sh(h,new yf(a.n,b,a.y)).ha(d)?k:new yf(a.n,b,c)},fm(Ga(a.tiles,em)));if(x(a.attribution)){b=d===k?b.I():d;c={};var j,m;for(j=e;j<=f;++j)m=j.toString(),
+c[m]=[Th(h,b,h.a[j])];this.f=[new Bf(a.attribution,c)]}this.i=i;K(this,"load")};Am.prototype.d=n("i");function Bm(a){var b=gm,c=a.urls;!x(c)&&x(a.url)&&(c=im(a.url));x(c)&&(b=Ga(c,function(b){var c=a.params;return function(a,d,m){return a===k?g:pi(b,c,Sh(d,a),Xh(d,a.n),m)}}),b=fm(b));var d=a.extent;km.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:d,tileGrid:a.tileGrid,opaque:!(x(a.params.TRANSPARENT)?a.params.TRANSPARENT:1),projection:a.projection,ja:hm(function(a,b,c){if(b.nb().length<=a.n)return k;var j=a.x,m=Sh(b,a),q=c.I();d=x(d)?d:q;d!==k&&(c.Vb&&d.h===q.h&&d.j===q.j)&&
+(c=Math.ceil((d.j-d.h)/(m.j-m.h)),j=Sb(j,c),m=Sh(b,new yf(a.n,j,a.y)));return!m.ha(d)?k:new yf(a.n,j,a.y)},b)})}D(Bm,km);function Cm(a){this.g=a.matrixIds;Rh.call(this,{origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes})}D(Cm,Rh);function Dm(a){var b=x(a.version)?a.version:"1.0.0",c=x(a.format)?a.format:"image/jpeg",d=x(a.requestEncoding)?a.requestEncoding:"KVP",e=a.tileGrid,f={Layer:a.layer,style:a.style,TileMatrixSet:a.matrixSet};$a(f,a.dimensions||{});var h;"KVP"==d&&(h={Service:"WMTS",Request:"GetTile",Version:b,Format:c,TileMatrix:"{TileMatrix}",TileRow:"{TileRow}",TileCol:"{TileCol}"},$a(h,f));b=gm;c=a.urls;!x(c)&&x(a.url)&&(c=im(a.url));x(c)&&(b=fm(Ga(c,function(a){x(h)&&(a=zd(Bd([a],h)));var b=a;return function(a){if(a!==
+k){a={TileMatrix:e.g[a.n],TileCol:a.x,TileRow:a.y};"KVP"!=d&&$a(a,f);var c=b,h;for(h in a)c=c.replace("{"+h+"}",a[h]).replace("%7B"+h+"%7D",a[h]);return c}}})));b=hm(function(b,c,d){if(c.nb().length<=b.n)return k;var e=b.x,f=-b.y-1,h=Sh(c,b),u=d.I(),t=x(a.extent)?a.extent:u;t!==k&&(d.Vb&&t.h===u.h&&t.j===u.j)&&(d=Math.ceil((t.j-t.h)/(h.j-h.h)),e=Sb(e,d),h=Sh(c,new yf(b.n,e,b.y)));return!h.ha(t)?k:new yf(b.n,e,f)},b);km.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,
+projection:a.projection,tileGrid:e,ja:b})}D(Dm,km);C("goog.require",da);function Em(a){Wk.call(this,{element:a.element,map:a.map,position:a.position,positioning:a.positioning})}D(Em,Wk);C("ol.AnchoredElement",Em);C("ol.AnchoredElementPositioning",Vk);Vk.BOTTOM_LEFT="bottom-left";Vk.BOTTOM_RIGHT="bottom-right";Vk.TOP_LEFT="top-left";Vk.TOP_RIGHT="top-right";C("ol.Attribution",Bf);C("ol.Collection",N);N.prototype.clear=N.prototype.clear;N.prototype.forEach=N.prototype.forEach;N.prototype.getAt=N.prototype.Hd;N.prototype.getLength=N.prototype.mb;
+N.prototype.insertAt=N.prototype.ub;N.prototype.pop=N.prototype.pop;N.prototype.push=N.prototype.push;N.prototype.remove=N.prototype.remove;N.prototype.removeAt=N.prototype.jc;N.prototype.setAt=N.prototype.Ne;C("ol.Coordinate",L);C("ol.Coordinate.createStringXY",function(a){return function(b){return wd(b,a)}});C("ol.Coordinate.fromProjectedArray",xd);C("ol.Coordinate.toStringHDMS",function(a){return x(a)?vd(a.y,"NS")+" "+vd(a.x,"EW"):""});C("ol.Coordinate.toStringXY",wd);C("ol.Expression",mj);
+C("ol.Extent",O);O.prototype.containsCoordinate=O.prototype.Bd;O.prototype.containsExtent=O.prototype.yc;O.prototype.getBottomLeft=O.prototype.Gc;O.prototype.getBottomRight=O.prototype.Jd;O.prototype.getCenter=O.prototype.ad;O.prototype.getHeight=O.prototype.ga;O.prototype.getTopLeft=O.prototype.ob;O.prototype.getTopRight=O.prototype.Nd;O.prototype.getWidth=O.prototype.ma;O.prototype.transform=O.prototype.transform;C("ol.Feature",Bi);Bi.prototype.get=Bi.prototype.q;Bi.prototype.getAttributes=Bi.prototype.Qa;
+Bi.prototype.getGeometry=Bi.prototype.sa;Bi.prototype.set=Bi.prototype.p;Bi.prototype.setGeometry=Bi.prototype.gd;Bi.prototype.setSymbolizers=Bi.prototype.Pe;C("ol.Geolocation",W);function Fm(a){V.call(this,{controls:a.controls,interactions:a.interactions,layers:a.layers,renderer:a.renderer,renderers:a.renderers,target:a.target,view:a.view})}D(Fm,V);C("ol.Map",Fm);V.prototype.addLayer=V.prototype.ze;V.prototype.addPreRenderFunction=V.prototype.ra;V.prototype.addPreRenderFunctions=V.prototype.wd;
+V.prototype.getInteractions=V.prototype.xa;V.prototype.getRenderer=V.prototype.Pb;V.prototype.removeLayer=V.prototype.Ae;eg.prototype.getCoordinate=eg.prototype.d;C("ol.Object",M);M.prototype.bindTo=M.prototype.xd;M.prototype.changed=M.prototype.Ad;M.prototype.get=M.prototype.q;M.prototype.notify=M.prototype.Yc;M.prototype.set=M.prototype.p;M.prototype.setOptions=M.prototype.hd;M.prototype.setValues=M.prototype.Db;M.prototype.unbind=M.prototype.nc;M.prototype.unbindAll=M.prototype.Ye;
+function Gm(a){Nf.call(this,{axisOrientation:a.axisOrientation,code:a.code,extent:a.extent,global:a.global,units:a.units})}D(Gm,Nf);C("ol.Projection",Gm);Nf.prototype.getAxisOrientation=Nf.prototype.Id;Nf.prototype.getCode=Nf.prototype.Ld;Nf.prototype.getExtent=Nf.prototype.I;Nf.prototype.getMetersPerUnit=Nf.prototype.Hc;Nf.prototype.getPointResolution=Nf.prototype.c;Nf.prototype.getUnits=Nf.prototype.Od;Nf.prototype.isGlobal=Nf.prototype.ve;C("ol.ProjectionUnits",Lf);Lf.DEGREES="degrees";
+Lf.FEET="ft";Lf.METERS="m";C("ol.RendererHint",Rk);Rk.CANVAS="canvas";Rk.DOM="dom";Rk.WEBGL="webgl";C("ol.RendererHints",Qk);Qk.createFromQueryData=Qk.Cd;function Hm(a){T.call(this,{center:a.center,maxResolution:a.maxResolution,numZoomLevels:a.numZoomLevels,projection:a.projection,resolution:a.resolution,resolutions:a.resolutions,rotation:a.rotation,zoom:a.zoom,zoomFactor:a.zoomFactor})}D(Hm,T);C("ol.View2D",Hm);T.prototype.fitExtent=T.prototype.f;T.prototype.getView2D=T.prototype.g;
+C("ol.animation",xg);xg.bounce=xg.Rb;xg.pan=xg.ia;xg.rotate=xg.rotate;xg.zoom=xg.zoom;function Im(a){Eg.call(this,{map:a.map,target:a.target})}D(Im,Eg);C("ol.control.Attribution",Im);Eg.prototype.setMap=Eg.prototype.a;function Jm(a){Zk.call(this,{coordinateFormat:a.coordinateFormat,map:a.map,projection:a.projection,target:a.target,undefinedHTML:a.undefinedHTML})}D(Jm,Zk);C("ol.control.MousePosition",Jm);Zk.prototype.setMap=Zk.prototype.a;
+function Km(a){bl.call(this,{map:a.map,minWidth:a.minWidth,target:a.target,units:a.units})}D(Km,bl);C("ol.control.ScaleLine",Km);bl.prototype.setMap=bl.prototype.a;C("ol.control.ScaleLineUnits",al);al.DEGREES="degrees";al.IMPERIAL="imperial";al.METRIC="metric";al.NAUTICAL="nautical";al.US="us";function Lm(a){Fg.call(this,{delta:a.delta,map:a.map,target:a.target})}D(Lm,Fg);C("ol.control.Zoom",Lm);Fg.prototype.setMap=Fg.prototype.a;
+function Mm(a){rl.call(this,{map:a.map,maxResolution:a.maxResolution,minResolution:a.minResolution})}D(Mm,rl);C("ol.control.ZoomSlider",Mm);C("ol.control.defaults",Gg);C("ol.easing",wg);wg.bounce=wg.Rb;wg.easeIn=wg.Ed;wg.easeOut=wg.Oa;wg.elastic=wg.Fd;wg.inAndOut=wg.Ja;wg.linear=wg.Uc;wg.upAndDown=wg.pd;C("ol.filter.Filter",Ji);C("ol.filter.Geometry",Pi);C("ol.filter.Logical",Qi);C("ol.filter.LogicalOperator",Ti);Ti.AND=Ri;Ti.OR=Si;C("ol.geom.LineString",ej);C("ol.geom.MultiLineString",gj);
+C("ol.geom.MultiPoint",ij);C("ol.geom.MultiPolygon",lj);C("ol.geom.Point",hj);C("ol.geom.Polygon",kj);C("ol.interaction.Keyboard",ul);ul.prototype.addCallback=ul.prototype.b;C("ol.interaction.defaults",bh);function Nm(a){P.call(this,{brightness:a.brightness,contrast:a.contrast,hue:a.hue,opacity:a.opacity,saturation:a.saturation,source:a.source,visible:a.visible})}D(Nm,ui);C("ol.layer.ImageLayer",Nm);
+function Om(a){P.call(this,{brightness:a.brightness,contrast:a.contrast,hue:a.hue,opacity:a.opacity,saturation:a.saturation,source:a.source,visible:a.visible})}D(Om,vi);C("ol.layer.TileLayer",Om);function Pm(a){Vi.call(this,{brightness:a.brightness,contrast:a.contrast,hue:a.hue,opacity:a.opacity,saturation:a.saturation,source:a.source,visible:a.visible})}D(Pm,Vi);C("ol.layer.Vector",Pm);Vi.prototype.parseFeatures=Vi.prototype.xa;C("ol.parser.GeoJSON",wl);wl.prototype.read=wl.prototype.pa;
+C("ol.parser.ogc.WMSCapabilities",Ll);Ll.prototype.read=Ll.prototype.pa;C("ol.parser.ogc.WMTSCapabilities",Pl);Pl.prototype.read=Pl.prototype.pa;C("ol.projection.addProjection",Vf);C("ol.projection.configureProj4jsProjection",function(a){return Qf(a)});C("ol.projection.get",Zf);C("ol.projection.getTransform",$f);C("ol.projection.getTransformFromProjections",Pf);C("ol.projection.transform",function(a,b,c){b=$f(b,c);a=[a.x,a.y];a=b(a,a,2);return new L(a[0],a[1])});
+C("ol.projection.transformWithProjections",function(a,b,c){b=Pf(b,c);a=[a.x,a.y];a=b(a,a,2);return new L(a[0],a[1])});Ij.prototype.getCanvas=Ij.prototype.kb;function Qm(a){mm.call(this,{culture:a.culture,key:a.key,style:a.style})}D(Qm,mm);C("ol.source.BingMaps",Qm);function Xm(a){om.call(this,{extent:a.extent,projection:a.projection,tileGrid:a.tileGrid})}D(Xm,om);C("ol.source.DebugTileSource",Xm);C("ol.source.MapQuestOSM",qm);C("ol.source.MapQuestOpenAerial",rm);C("ol.source.OpenStreetMap",sm);
+function Ym(a){tm.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,params:a.params,projection:a.projection,ratio:a.ratio,resolutions:a.resolutions,url:a.url})}D(Ym,tm);C("ol.source.SingleImageWMS",Ym);function Zm(a){xm.call(this,{layer:a.layer,maxZoom:a.maxZoom,minZoom:a.minZoom,opaque:a.opaque,url:a.url})}D(Zm,xm);C("ol.source.Stamen",Zm);
+function $m(a){ym.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,imageExtent:a.imageExtent,imageSize:a.imageSize,projection:a.projection,url:a.url})}D($m,ym);C("ol.source.StaticImage",$m);function an(a){Am.call(this,{uri:a.uri})}D(an,Am);C("ol.source.TileJSON",an);function bn(a){Bm.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,maxZoom:a.maxZoom,params:a.params,projection:a.projection,tileGrid:a.tileGrid,url:a.url,urls:a.urls})}
+D(bn,Bm);C("ol.source.TiledWMS",bn);function cn(a){bg.call(this,{attributions:a.attributions,extent:a.extent,projection:a.projection})}D(cn,Ci);C("ol.source.Vector",cn);function dn(a){Dm.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,dimensions:a.dimensions,extent:a.extent,format:a.format,layer:a.layer,matrixSet:a.matrixSet,maxZoom:a.maxZoom,projection:a.projection,requestEncoding:a.requestEncoding,style:a.style,tileGrid:a.tileGrid,url:a.url,urls:a.urls})}D(dn,Dm);
+C("ol.source.WMTS",dn);
+C("ol.source.WMTS.optionsFromCapabilities",function(a,b){var c;c=a.contents.layers;var d=Ja(c,function(a){return a.identifier==b},g);c=0>d?k:ja(c)?c.charAt(d):c[d];var d=c.tileMatrixSetLinks[0].tileMatrixSet,e=c.formats[0],f=Ja(c.styles,function(a){return a.isDefault});0>f&&(f=0);var f=c.styles[f].identifier,h={};F(c.dimensions,function(a){var b=a.identifier,c=a["default"];x(c)||(c=a.values[0]);h[b]=c});var j=a.contents.tileMatrixSets[d],m,q=[],v=[],s=[],A=[],u=Zf(j.supportedCRS).Hc();F(j.matrixIds,
+function(a){v.push(a.identifier);s.push(a.topLeftCorner);q.push(2.8E-4*a.scaleDenominator/u);A.push(new Qe(a.tileWidth,a.tileHeight))});m=new Cm({origins:s,resolutions:q,matrixIds:v,tileSizes:A});var j=Zf(j.supportedCRS),t=a.operationsMetadata.GetTile.dcp.http.get,y=Wa(t[0].constraints.GetEncoding.allowedValues)[0],w;switch(y){case "REST":w=c.resourceUrls.tile[e];break;case "KVP":w=[],F(t,function(a){a.constraints.GetEncoding.allowedValues.hasOwnProperty("KVP")&&w.push(a.url)})}return{urls:w,layer:b,
+matrixSet:d,format:e,projection:j,requestEncoding:y,tileGrid:m,style:f,dimensions:h}});function en(a){pj.call(this,{height:a.height,opacity:a.opacity,rotation:a.rotation,url:a.url,width:a.width})}D(en,pj);C("ol.style.Icon",en);C("ol.style.IconType",{});function fn(a){sj.call(this,{opacity:a.opacity,strokeColor:a.strokeColor,strokeWidth:a.strokeWidth})}D(fn,sj);C("ol.style.Line",fn);
+function gn(a){vj.call(this,{fillColor:a.fillColor,opacity:a.opacity,strokeColor:a.strokeColor,strokeWidth:a.strokeWidth})}D(gn,vj);C("ol.style.Polygon",gn);function hn(a){Mi.call(this,{filter:a.filter,symbolizers:a.symbolizers})}D(hn,Mi);C("ol.style.Rule",hn);function jn(a){zj.call(this,{fillColor:a.fillColor,opacity:a.opacity,size:a.size,strokeColor:a.strokeColor,strokeWidth:a.strokeWidth,type:a.type})}D(jn,zj);C("ol.style.Shape",jn);C("ol.style.ShapeType",xj);xj.CIRCLE="circle";
+function kn(a){Ni.call(this,{rules:a.rules})}D(kn,Ni);C("ol.style.Style",kn);function ln(a){Rh.call(this,{origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes})}D(ln,Rh);C("ol.tilegrid.TileGrid",ln);function mn(a){Cm.call(this,{matrixIds:a.matrixIds,origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes})}D(mn,Cm);C("ol.tilegrid.WMTS",mn);function nn(a){lm.call(this,{maxZoom:a.maxZoom})}D(nn,lm);
+C("ol.tilegrid.XYZ",nn);xg.cf={};xg.Df={};xg.Ef={};xg.Nf={};})();
diff --git a/master/examples/bing-maps.html b/master/examples/bing-maps.html
index 1265dac5c3..b4c20e3071 100644
--- a/master/examples/bing-maps.html
+++ b/master/examples/bing-maps.html
@@ -28,6 +28,12 @@
+
+
+ Aerial
+ Aerial with labels
+ Road
+
@@ -46,6 +52,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
Style with rules example
+
Draws features with rule based styles.
+
+
vector, geojson, style
+
+
+
+
+
+
+
+
+
diff --git a/master/examples/bing-maps.js b/master/examples/bing-maps.js
index b40f3630f3..9929cf31e0 100644
--- a/master/examples/bing-maps.js
+++ b/master/examples/bing-maps.js
@@ -1,12 +1,16 @@
-var map = new ol.Map({
- layers: [
- new ol.layer.TileLayer({
- source: new ol.source.BingMaps({
- key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R',
- style: 'AerialWithLabels'
- })
+var styles = ['Road', 'Aerial', 'AerialWithLabels'];
+var layers = [];
+for (var i = 0; i < styles.length; ++i) {
+ layers.push(new ol.layer.TileLayer({
+ visible: false,
+ source: new ol.source.BingMaps({
+ key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R',
+ style: styles[i]
})
- ],
+ }));
+}
+var map = new ol.Map({
+ layers: layers,
renderers: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
@@ -15,3 +19,11 @@ var map = new ol.Map({
zoom: 8
})
});
+
+$('#layer-select').change(function() {
+ var style = $(this).find(':selected').val();
+ for (var i = 0; i < layers.length; ++i) {
+ layers[i].setVisible(styles[i] == style);
+ }
+});
+$('#layer-select').trigger('change');
diff --git a/master/examples/canvas-tiles-require.js b/master/examples/canvas-tiles-require.js
index 2f0bf9dd89..1cad0ff019 100644
--- a/master/examples/canvas-tiles-require.js
+++ b/master/examples/canvas-tiles-require.js
@@ -1,6 +1,6 @@
goog.require('ol.Coordinate');
goog.require('ol.Map');
-goog.require('ol.RendererHint');
+goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.layer.TileLayer');
goog.require('ol.projection');
diff --git a/master/examples/canvas-tiles.html b/master/examples/canvas-tiles.html
index 099760ec20..388b70a0f4 100644
--- a/master/examples/canvas-tiles.html
+++ b/master/examples/canvas-tiles.html
@@ -26,17 +26,8 @@
+
diff --git a/master/examples/canvas-tiles.js b/master/examples/canvas-tiles.js
index 9fb07531b6..fb093483e5 100644
--- a/master/examples/canvas-tiles.js
+++ b/master/examples/canvas-tiles.js
@@ -1,38 +1,22 @@
-var layers = [
- new ol.layer.TileLayer({
- source: new ol.source.OpenStreetMap()
- }),
- new ol.layer.TileLayer({
- source: new ol.source.DebugTileSource({
- projection: 'EPSG:3857',
- tileGrid: new ol.tilegrid.XYZ({
- maxZoom: 22
+var map = new ol.Map({
+ layers: [
+ new ol.layer.TileLayer({
+ source: new ol.source.OpenStreetMap()
+ }),
+ new ol.layer.TileLayer({
+ source: new ol.source.DebugTileSource({
+ projection: 'EPSG:3857',
+ tileGrid: new ol.tilegrid.XYZ({
+ maxZoom: 22
+ })
})
})
- })
-];
-
-var webglMap = new ol.Map({
+ ],
+ renderers: ol.RendererHints.createFromQueryData(),
+ target: 'map',
view: new ol.View2D({
center: ol.projection.transform(
new ol.Coordinate(-0.1275, 51.507222), 'EPSG:4326', 'EPSG:3857'),
zoom: 10
- }),
- layers: layers,
- renderer: ol.RendererHint.WEBGL,
- target: 'webglMap'
+ })
});
-
-var domMap = new ol.Map({
- renderer: ol.RendererHint.DOM,
- target: 'domMap'
-});
-domMap.bindTo('layers', webglMap);
-domMap.bindTo('view', webglMap);
-
-var canvasMap = new ol.Map({
- renderer: ol.RendererHint.CANVAS,
- target: 'canvasMap'
-});
-canvasMap.bindTo('layers', webglMap);
-canvasMap.bindTo('view', webglMap);
diff --git a/master/examples/epsg-4326-require.js b/master/examples/epsg-4326-require.js
index 89e246c983..425de5f5a7 100644
--- a/master/examples/epsg-4326-require.js
+++ b/master/examples/epsg-4326-require.js
@@ -6,5 +6,4 @@ goog.require('ol.control.ScaleLine');
goog.require('ol.control.ScaleLineUnits');
goog.require('ol.control.defaults');
goog.require('ol.layer.TileLayer');
-goog.require('ol.projection');
goog.require('ol.source.TiledWMS');
diff --git a/master/examples/example-list.js b/master/examples/example-list.js
index 5b4e75cfce..ddb3b0ef0b 100644
--- a/master/examples/example-list.js
+++ b/master/examples/example-list.js
@@ -1 +1 @@
-var info={"index": {"composed": {"17": 1}, "code": {"12": 4}, "labels": {"17": 2}, "rotated": {"12": 1}, "jpeg": {"6": 3}, "openaerial": {"0": 1, "7": 1}, "osm": {"4": 1}, "parks": {"20": 1}, "alt": {"12": 1}, "wmts": {"24": 3, "23": 4}, "layers": {"17": 2, "4": 1, "20": 1, "15": 1}, "1": {"20": 2}, "style": {"25": 1}, "wms": {"19": 3, "20": 3, "21": 3, "22": 3}, "coordinates": {"4": 3}, "to": {"12": 1}, "only": {"9": 1, "3": 1}, "black": {"4": 1}, "saturation": {"9": 3}, "controls": {"25": 1}, "watercolor": {"17": 2}, "grid": {"4": 1}, "tiled": {"20": 2, "22": 2}, "not": {"4": 1}, "using": {"20": 1}, "rotation": {"12": 2, "15": 1}, "parsing": {"19": 2}, "transparent": {"14": 3}, "and": {"20": 1, "15": 1}, "rotate": {"12": 1}, "semi": {"14": 2}, "brightness": {"3": 3}, "zoom": {"25": 1}, "side": {"15": 4}, "national": {"20": 1}, "terrain": {"17": 2}, "sync": {"15": 1}, "4326": {"5": 2}, "anchored": {"0": 3}, "full": {"7": 2}, "export": {"6": 2}, "are": {"17": 1, "4": 2}, "fullscreen": {"7": 1}, "canvas": {"4": 3, "15": 3}, "scale": {"13": 3}, "overlay": {"0": 1}, "demonstrates": {"0": 1}, "outside": {"11": 1}, "various": {"25": 1}, "exporting": {"6": 1}, "contrast": {"3": 3}, "popup": {"0": 1}, "zoomslider": {"25": 3}, "screen": {"7": 2}, "ol3": {"4": 1}, "html5": {"4": 1}, "tilejson": {"18": 3, "14": 1}, "by": {"15": 2}, "on": {"9": 1, "3": 1, "4": 1}, "shift": {"12": 1}, "generated": {"4": 1}, "openstreetmap": {"4": 1, "6": 1, "8": 1, "11": 1, "12": 1, "13": 1, "16": 1}, "base": {"17": 1}, "origin": {"4": 2}, "geolocation": {"8": 3}, "projection": {"20": 3}, "simple": {"16": 3}, "image": {"21": 3, "6": 1}, "one": {"15": 3}, "tilelayer": {"20": 1, "22": 1, "7": 1}, "capabilities": {"19": 1, "23": 1}, "mapquest": {"0": 1, "10": 3, "14": 1, "7": 1}, "epsg4326": {"5": 1}, "use": {"12": 1}, "from": {"23": 2}, "source": {"24": 1, "17": 1, "23": 1}, "epsg": {"20": 1, "5": 2}, "top": {"4": 1}, "three": {"15": 1}, "custom": {"20": 1}, "pixelmap": {"20": 1}, "hue": {"9": 3}, "that": {"4": 1}, "slider": {"25": 1}, "normalized": {"4": 1}, "line": {"13": 3}, "with": {"17": 1, "4": 1, "14": 1, "20": 1}, "single": {"21": 2}, "of": {"2": 1, "3": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, "21": 1, "22": 1, "23": 1, "24": 1, "25": 1}, "example": {"0": 1, "1": 2, "2": 2, "3": 2, "4": 1, "5": 2, "6": 2, "7": 2, "8": 2, "9": 2, "10": 2, "11": 2, "12": 2, "13": 2, "14": 2, "15": 1, "16": 2, "17": 2, "18": 2, "19": 2, "20": 2, "21": 2, "22": 2, "23": 2, "24": 2, "25": 1}, "control": {"11": 1, "9": 1, "3": 1, "25": 2}, "layer": {"2": 1, "14": 2, "17": 1, "18": 1, "21": 1, "22": 1}, "share": {"15": 1}, "tiles": {"4": 2}, "21781": {"20": 1}, "an": {"4": 1}, "as": {"6": 1}, "in": {"5": 1}, "getcapabilities": {"19": 3, "23": 1}, "mouse": {"11": 3}, "built": {"23": 1}, "webgl": {"9": 2, "3": 2, "15": 2}, "same": {"15": 1}, "note": {"4": 1}, "maps": {"2": 3, "15": 1}, "animation": {"1": 2}, "tile": {"17": 1, "4": 3, "22": 1, "20": 1, "7": 1}, "css": {"25": 1}, "stamen": {"17": 3}, "map": {"5": 1, "6": 1, "7": 1, "8": 1, "10": 1, "11": 1, "12": 2, "14": 1, "16": 1}, "elements": {"0": 3}, "styling": {"25": 1}, "object": {"15": 1}, "drag": {"12": 1}, "000": {"20": 2}, "two": {"17": 2, "20": 1}, "animations": {"1": 1}, "response": {"19": 1, "23": 1}, "a": {"2": 1, "5": 1, "6": 2, "7": 1, "8": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 2, "16": 1, "17": 1, "18": 1, "19": 1, "21": 1, "22": 1, "23": 2, "24": 1}, "center": {"15": 1}, "dom": {"15": 2}, "bing": {"2": 4}, "bottom": {"4": 1}, "client": {"9": 1, "3": 1, "4": 1}, "position": {"11": 3}, "the": {"3": 1, "4": 3, "9": 1, "11": 1, "12": 1, "15": 2, "17": 2, "20": 1}, "resolution": {"15": 1}, "left": {"4": 2}}, "examples": [{"author": "Frederic Junod", "tags": "anchored elements, overlay, popup, mapquest, openaerial", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "anchored-elements.html", "shortdesc": "Demonstrates anchored elements.", "title": "Anchored elements example", "example": "anchored-elements.html"}, {"author": "Tom Payne", "tags": "animation", "modified": "2013-03-07T02:56:28+0100", "classes": [], "link": "animation.html", "shortdesc": "Example animations.", "title": "Animation example", "example": "animation.html"}, {"author": "Tom Payne", "tags": "bing, bing-maps", "modified": "2013-03-06T20:13:45+0100", "classes": [], "link": "bing-maps.html", "shortdesc": "Example of a Bing Maps layer.", "title": "Bing Maps example", "example": "bing-maps.html"}, {"author": "Tom Payne", "tags": "brightness, contrast, webgl", "modified": "2013-03-07T01:53:52+0100", "classes": [], "link": "brightness-contrast.html", "shortdesc": "Example of brightness/contrast control on the client (WebGL only).", "title": "Brightness/contrast example", "example": "brightness-contrast.html"}, {"author": "Frederic Junod", "tags": "layers, openstreetmap, canvas", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "canvas-tiles.html", "shortdesc": "The black grid tiles are generated on the client with an HTML5 canvas. Note that the tile coordinates are ol3 normalized tile coordinates (origin bottom left), not OSM tile coordinates (origin top left).", "title": "Canvas tiles example", "example": "canvas-tiles.html"}, {"author": "Frederic Junod", "tags": "epsg4326", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "epsg-4326.html", "shortdesc": "Example of a map in EPSG:4326.", "title": "EPSG:4326 example", "example": "epsg-4326.html"}, {"author": "Tom Payne", "tags": "export-jpeg, openstreetmap", "modified": "2013-03-06T21:28:59+0100", "classes": [], "link": "export-jpeg.html", "shortdesc": "Example of exporting a map as a JPEG image.", "title": "Export JPEG example", "example": "export-jpeg.html"}, {"author": "Frederic Junod", "tags": "fullscreen, mapquest, openaerial, tile, tilelayer", "modified": "2013-03-06T17:31:46+0100", "classes": [], "link": "full-screen.html", "shortdesc": "Example of a full-screen map.", "title": "Full-screen example", "example": "full-screen.html"}, {"author": "Frederic Junod", "tags": "geolocation, openstreetmap", "modified": "2013-03-11T09:27:15+0100", "classes": [], "link": "geolocation.html", "shortdesc": "Example of a geolocation map.", "title": "Geolocation example", "example": "geolocation.html"}, {"author": "Tom Payne", "tags": "hue, saturation, webgl", "modified": "2013-03-07T01:42:14+0100", "classes": [], "link": "hue-saturation.html", "shortdesc": "Example of hue/saturation control on the client (WebGL only).", "title": "Hue/saturation example", "example": "hue-saturation.html"}, {"author": "Tom Payne", "tags": "mapquest", "modified": "2013-03-07T00:46:09+0100", "classes": [], "link": "mapquest.html", "shortdesc": "Example of a MapQuest map.", "title": "MapQuest example", "example": "mapquest.html"}, {"author": "Tom Payne", "tags": "mouse-position, openstreetmap", "modified": "2013-03-06T20:45:08+0100", "classes": [], "link": "mouse-position.html", "shortdesc": "Example of a mouse position control, outside the map.", "title": "Mouse position example", "example": "mouse-position.html"}, {"author": "Tom Payne", "tags": "rotation, openstreetmap", "modified": "2013-03-09T21:48:33+0100", "classes": [], "link": "rotation.html", "shortdesc": "Example of a rotated map. Use Alt+Shift+drag to rotate the map.", "title": "Rotation example", "example": "rotation.html"}, {"author": "Tom Payne", "tags": "scale-line, openstreetmap", "modified": "2013-03-06T20:34:47+0100", "classes": [], "link": "scale-line.html", "shortdesc": "Example of a scale line.", "title": "Scale line example", "example": "scale-line.html"}, {"author": "Tom Payne", "tags": "transparent, mapquest, tilejson", "modified": "2013-03-09T17:18:41+0100", "classes": [], "link": "semi-transparent-layer.html", "shortdesc": "Example of a map with a semi-transparent layer.", "title": "Semi-transparent layer example", "example": "semi-transparent-layer.html"}, {"author": "Tom Payne", "tags": "side-by-side, canvas, webgl, dom, canvas, sync, object", "modified": "2013-03-07T03:15:19+0100", "classes": [], "link": "side-by-side.html", "shortdesc": "The three maps, one WebGL, one Canvas, one DOM, share the same center, resolution, rotation and layers.", "title": "Side-by-side example", "example": "side-by-side.html"}, {"author": "Frederic Junod", "tags": "simple, openstreetmap", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "simple.html", "shortdesc": "Example of a simple map.", "title": "Simple example", "example": "simple.html"}, {"author": "Tom Payne", "tags": "stamen, watercolor, terrain-labels, two-layers", "modified": "2013-03-06T21:08:06+0100", "classes": [], "link": "stamen.html", "shortdesc": "Example of a Stamen tile source. Two layers are composed: the watercolor base layer with the terrain labels.", "title": "Stamen example", "example": "stamen.html"}, {"author": "Tom Payne", "tags": "tilejson", "modified": "2013-03-06T20:21:07+0100", "classes": [], "link": "tilejson.html", "shortdesc": "Example of a TileJSON layer.", "title": "TileJSON example", "example": "tilejson.html"}, {"author": "Frederic Junod", "tags": "wms, capabilities, getcapabilities", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "wms-capabilities.html", "shortdesc": "Example of parsing a WMS GetCapabilities response.", "title": "WMS GetCapabilities parsing example", "example": "wms-capabilities.html"}, {"author": "Frederic Junod", "tags": "wms, tile, tilelayer, projection", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "wms-custom-proj.html", "shortdesc": "Example of two tiled WMS layers (Pixelmap 1:1'000'000 and national parks) using the projection EPSG:21781.", "title": "Tiled WMS with custom projection example", "example": "wms-custom-proj.html"}, {"author": "\u00c9ric Lemoine", "tags": "wms, image", "modified": "2013-03-07T12:29:13+0100", "classes": [], "link": "wms-single-image.html", "shortdesc": "Example of a single image WMS layer.", "title": "Single image WMS example", "example": "wms-single-image.html"}, {"author": "\u00c9ric Lemoine", "tags": "wms, tile, tilelayer", "modified": "2013-03-07T11:59:09+0100", "classes": [], "link": "wms-tiled.html", "shortdesc": "Example of a tiled WMS layer.", "title": "Tiled WMS example", "example": "wms-tiled.html"}, {"author": "Bruno Binet", "tags": "wmts", "modified": "2013-03-11T11:48:06+0100", "classes": [], "link": "wmts-from-capabilities.html", "shortdesc": "Example of a WMTS source built from a WMTS getCapabilities response.", "title": "WMTS from capabilities example", "example": "wmts-from-capabilities.html"}, {"author": "Bruno Binet", "tags": "wmts", "modified": "2013-03-07T19:40:39+0100", "classes": [], "link": "wmts.html", "shortdesc": "Example of a WMTS source.", "title": "WMTS example", "example": "wmts.html"}, {"author": "Marc Jansen", "tags": "zoom, zoomslider, slider, style, styling, css, control", "modified": "2013-03-11T16:10:10+0100", "classes": [], "link": "zoomslider.html", "shortdesc": "Example of various ZoomSlider controls.", "title": "ZoomSlider control", "example": "zoomslider.html"}]};
\ No newline at end of file
+var info={"index": {"composed": {"17": 1}, "code": {"12": 4}, "labels": {"17": 2}, "rotated": {"12": 1}, "jpeg": {"6": 3}, "openaerial": {"0": 1, "7": 1}, "osm": {"4": 1}, "geojson": {"18": 1, "20": 1}, "alt": {"12": 1}, "projection": {"22": 3, "23": 3}, "layers": {"17": 2, "23": 1, "4": 1, "22": 1, "15": 1}, "1": {"22": 2, "23": 2}, "style": {"28": 1, "18": 2, "20": 1}, "based": {"18": 1}, "wms": {"24": 3, "25": 3, "21": 3, "22": 3, "23": 3}, "coordinates": {"4": 3}, "to": {"12": 1}, "only": {"9": 1, "3": 1}, "black": {"4": 1}, "styles": {"18": 1}, "saturation": {"9": 3}, "rules": {"18": 1}, "controls": {"28": 1}, "watercolor": {"17": 2}, "grid": {"4": 1}, "tiled": {"25": 2, "22": 2}, "not": {"4": 1}, "using": {"22": 1, "23": 1}, "rotation": {"12": 2, "15": 1}, "parsing": {"21": 2}, "transparent": {"14": 3}, "and": {"23": 1, "22": 1, "15": 1}, "rotate": {"12": 1}, "semi": {"14": 2}, "brightness": {"3": 3}, "zoom": {"28": 1}, "vector": {"18": 1, "20": 3}, "side": {"15": 4}, "national": {"22": 1, "23": 1}, "terrain": {"17": 2}, "sync": {"15": 1}, "4326": {"5": 2}, "anchored": {"0": 3}, "full": {"7": 2}, "export": {"6": 2}, "are": {"17": 1, "4": 2}, "wmts": {"26": 4, "27": 3}, "fullscreen": {"7": 1}, "canvas": {"4": 3, "15": 3}, "scale": {"13": 3}, "draws": {"18": 1}, "overlay": {"0": 1}, "demonstrates": {"0": 1}, "outside": {"11": 1}, "various": {"28": 1}, "exporting": {"6": 1}, "parks": {"22": 1, "23": 1}, "contrast": {"3": 3}, "popup": {"0": 1}, "zoomslider": {"28": 3}, "screen": {"7": 2}, "ol3": {"4": 1}, "html5": {"4": 1}, "tilejson": {"19": 3, "14": 1}, "by": {"15": 2}, "on": {"9": 1, "3": 1, "4": 1}, "shift": {"12": 1}, "generated": {"4": 1}, "openstreetmap": {"4": 1, "6": 1, "8": 1, "11": 1, "12": 1, "13": 1, "16": 1}, "base": {"17": 1}, "origin": {"4": 2}, "geolocation": {"8": 3}, "features": {"18": 1}, "simple": {"16": 3}, "image": {"24": 3, "6": 1, "23": 3}, "one": {"15": 3}, "tilelayer": {"25": 1, "22": 1, "7": 1}, "capabilities": {"26": 1, "21": 1}, "mapquest": {"0": 1, "10": 3, "14": 1, "7": 1}, "epsg4326": {"5": 1}, "use": {"12": 1}, "from": {"26": 2}, "source": {"17": 1, "26": 1, "27": 1}, "epsg": {"5": 2, "22": 1, "23": 1}, "top": {"4": 1}, "three": {"15": 1}, "custom": {"22": 1, "23": 1}, "pixelmap": {"22": 1, "23": 1}, "hue": {"9": 3}, "that": {"4": 1}, "slider": {"28": 1}, "normalized": {"4": 1}, "line": {"13": 3}, "with": {"4": 1, "14": 1, "17": 1, "18": 2, "22": 1, "23": 1}, "single": {"24": 2, "23": 3}, "of": {"2": 1, "3": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 1, "16": 1, "17": 1, "19": 1, "20": 1, "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1}, "example": {"0": 1, "1": 2, "2": 2, "3": 2, "4": 1, "5": 2, "6": 2, "7": 2, "8": 2, "9": 2, "10": 2, "11": 2, "12": 2, "13": 2, "14": 2, "15": 1, "16": 2, "17": 2, "18": 1, "19": 2, "20": 2, "21": 2, "22": 2, "23": 2, "24": 2, "25": 2, "26": 2, "27": 2, "28": 1}, "control": {"11": 1, "9": 1, "3": 1, "28": 2}, "layer": {"2": 1, "14": 2, "17": 1, "19": 1, "20": 2, "24": 1, "25": 1}, "share": {"15": 1}, "tiles": {"4": 2}, "21781": {"22": 1, "23": 1}, "an": {"4": 1}, "as": {"6": 1}, "in": {"5": 1}, "getcapabilities": {"26": 1, "21": 3}, "mouse": {"11": 3}, "built": {"26": 1}, "webgl": {"9": 2, "3": 2, "15": 2}, "same": {"15": 1}, "note": {"4": 1}, "maps": {"2": 3, "15": 1}, "animation": {"1": 2}, "tile": {"17": 1, "4": 3, "25": 1, "22": 1, "7": 1}, "css": {"28": 1}, "stamen": {"17": 3}, "map": {"5": 1, "6": 1, "7": 1, "8": 1, "10": 1, "11": 1, "12": 2, "14": 1, "16": 1}, "elements": {"0": 3}, "styling": {"28": 1}, "object": {"15": 1}, "drag": {"12": 1}, "000": {"22": 2, "23": 2}, "two": {"17": 2, "22": 1, "23": 1}, "animations": {"1": 1}, "response": {"26": 1, "21": 1}, "a": {"2": 1, "5": 1, "6": 2, "7": 1, "8": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 2, "16": 1, "17": 1, "19": 1, "20": 1, "21": 1, "24": 1, "25": 1, "26": 2, "27": 1}, "center": {"15": 1}, "dom": {"15": 2}, "bing": {"2": 4}, "bottom": {"4": 1}, "rule": {"18": 1}, "client": {"9": 1, "3": 1, "4": 1}, "position": {"11": 3}, "the": {"3": 1, "4": 3, "9": 1, "11": 1, "12": 1, "15": 2, "17": 2, "22": 1, "23": 1}, "resolution": {"15": 1}, "left": {"4": 2}}, "examples": [{"author": "Frederic Junod", "tags": "anchored elements, overlay, popup, mapquest, openaerial", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "anchored-elements.html", "shortdesc": "Demonstrates anchored elements.", "title": "Anchored elements example", "example": "anchored-elements.html"}, {"author": "Tom Payne", "tags": "animation", "modified": "2013-03-07T02:56:28+0100", "classes": [], "link": "animation.html", "shortdesc": "Example animations.", "title": "Animation example", "example": "animation.html"}, {"author": "Frederic Junod", "tags": "bing, bing-maps", "modified": "2013-03-13T13:36:31+0100", "classes": [], "link": "bing-maps.html", "shortdesc": "Example of a Bing Maps layer.", "title": "Bing Maps example", "example": "bing-maps.html"}, {"author": "Tom Payne", "tags": "brightness, contrast, webgl", "modified": "2013-03-07T01:53:52+0100", "classes": [], "link": "brightness-contrast.html", "shortdesc": "Example of brightness/contrast control on the client (WebGL only).", "title": "Brightness/contrast example", "example": "brightness-contrast.html"}, {"author": "Tom Payne", "tags": "layers, openstreetmap, canvas", "modified": "2013-03-11T17:07:27+0100", "classes": [], "link": "canvas-tiles.html", "shortdesc": "The black grid tiles are generated on the client with an HTML5 canvas. Note that the tile coordinates are ol3 normalized tile coordinates (origin bottom left), not OSM tile coordinates (origin top left).", "title": "Canvas tiles example", "example": "canvas-tiles.html"}, {"author": "Frederic Junod", "tags": "epsg4326", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "epsg-4326.html", "shortdesc": "Example of a map in EPSG:4326.", "title": "EPSG:4326 example", "example": "epsg-4326.html"}, {"author": "Tom Payne", "tags": "export-jpeg, openstreetmap", "modified": "2013-03-06T21:28:59+0100", "classes": [], "link": "export-jpeg.html", "shortdesc": "Example of exporting a map as a JPEG image.", "title": "Export JPEG example", "example": "export-jpeg.html"}, {"author": "Frederic Junod", "tags": "fullscreen, mapquest, openaerial, tile, tilelayer", "modified": "2013-03-06T17:31:46+0100", "classes": [], "link": "full-screen.html", "shortdesc": "Example of a full-screen map.", "title": "Full-screen example", "example": "full-screen.html"}, {"author": "Frederic Junod", "tags": "geolocation, openstreetmap", "modified": "2013-03-11T09:27:15+0100", "classes": [], "link": "geolocation.html", "shortdesc": "Example of a geolocation map.", "title": "Geolocation example", "example": "geolocation.html"}, {"author": "Tom Payne", "tags": "hue, saturation, webgl", "modified": "2013-03-07T01:42:14+0100", "classes": [], "link": "hue-saturation.html", "shortdesc": "Example of hue/saturation control on the client (WebGL only).", "title": "Hue/saturation example", "example": "hue-saturation.html"}, {"author": "Tom Payne", "tags": "mapquest", "modified": "2013-03-07T00:46:09+0100", "classes": [], "link": "mapquest.html", "shortdesc": "Example of a MapQuest map.", "title": "MapQuest example", "example": "mapquest.html"}, {"author": "Tom Payne", "tags": "mouse-position, openstreetmap", "modified": "2013-03-06T20:45:08+0100", "classes": [], "link": "mouse-position.html", "shortdesc": "Example of a mouse position control, outside the map.", "title": "Mouse position example", "example": "mouse-position.html"}, {"author": "Tom Payne", "tags": "rotation, openstreetmap", "modified": "2013-03-09T21:48:33+0100", "classes": [], "link": "rotation.html", "shortdesc": "Example of a rotated map. Use Alt+Shift+drag to rotate the map.", "title": "Rotation example", "example": "rotation.html"}, {"author": "Tom Payne", "tags": "scale-line, openstreetmap", "modified": "2013-03-06T20:34:47+0100", "classes": [], "link": "scale-line.html", "shortdesc": "Example of a scale line.", "title": "Scale line example", "example": "scale-line.html"}, {"author": "Tom Payne", "tags": "transparent, mapquest, tilejson", "modified": "2013-03-09T17:18:41+0100", "classes": [], "link": "semi-transparent-layer.html", "shortdesc": "Example of a map with a semi-transparent layer.", "title": "Semi-transparent layer example", "example": "semi-transparent-layer.html"}, {"author": "Tom Payne", "tags": "side-by-side, canvas, webgl, dom, canvas, sync, object", "modified": "2013-03-07T03:15:19+0100", "classes": [], "link": "side-by-side.html", "shortdesc": "The three maps, one WebGL, one Canvas, one DOM, share the same center, resolution, rotation and layers.", "title": "Side-by-side example", "example": "side-by-side.html"}, {"author": "Frederic Junod", "tags": "simple, openstreetmap", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "simple.html", "shortdesc": "Example of a simple map.", "title": "Simple example", "example": "simple.html"}, {"author": "Tom Payne", "tags": "stamen, watercolor, terrain-labels, two-layers", "modified": "2013-03-06T21:08:06+0100", "classes": [], "link": "stamen.html", "shortdesc": "Example of a Stamen tile source. Two layers are composed: the watercolor base layer with the terrain labels.", "title": "Stamen example", "example": "stamen.html"}, {"author": "ahocevar", "tags": "vector, geojson, style", "modified": "2013-03-08T16:26:18+0100", "classes": [], "link": "style-rules.html", "shortdesc": "Draws features with rule based styles.", "title": "Style with rules example", "example": "style-rules.html"}, {"author": "Tom Payne", "tags": "tilejson", "modified": "2013-03-06T20:21:07+0100", "classes": [], "link": "tilejson.html", "shortdesc": "Example of a TileJSON layer.", "title": "TileJSON example", "example": "tilejson.html"}, {"author": "Tim Schaub", "tags": "vector, geojson, style", "modified": "2013-03-07T23:48:23-0700", "classes": [], "link": "vector-layer.html", "shortdesc": "Example of a vector layer.", "title": "Vector layer example", "example": "vector-layer.html"}, {"author": "Frederic Junod", "tags": "wms, capabilities, getcapabilities", "modified": "2013-03-06T15:12:01+0100", "classes": [], "link": "wms-capabilities.html", "shortdesc": "Example of parsing a WMS GetCapabilities response.", "title": "WMS GetCapabilities parsing example", "example": "wms-capabilities.html"}, {"author": "C\u00e9dric Moullet", "tags": "wms, tile, tilelayer, projection", "modified": "2013-03-11T20:15:54+0100", "classes": [], "link": "wms-custom-proj.html", "shortdesc": "Example of two tiled WMS layers (Pixelmap 1:1'000'000 and national parks) using the projection EPSG:21781.", "title": "Tiled WMS with custom projection example", "example": "wms-custom-proj.html"}, {"author": "C\u00e9dric Moullet", "tags": "wms, single image, projection", "modified": "2013-03-11T20:25:29+0100", "classes": [], "link": "wms-single-image-custom-proj.html", "shortdesc": "Example of two single image WMS layers (Pixelmap 1:1'000'000 and national parks) using the projection EPSG:21781.", "title": "Single image WMS with custom projection example", "example": "wms-single-image-custom-proj.html"}, {"author": "\u00c9ric Lemoine", "tags": "wms, image", "modified": "2013-03-07T12:29:13+0100", "classes": [], "link": "wms-single-image.html", "shortdesc": "Example of a single image WMS layer.", "title": "Single image WMS example", "example": "wms-single-image.html"}, {"author": "\u00c9ric Lemoine", "tags": "wms, tile, tilelayer", "modified": "2013-03-07T11:59:09+0100", "classes": [], "link": "wms-tiled.html", "shortdesc": "Example of a tiled WMS layer.", "title": "Tiled WMS example", "example": "wms-tiled.html"}, {"author": "Bruno Binet", "tags": "wmts", "modified": "2013-03-11T11:48:06+0100", "classes": [], "link": "wmts-from-capabilities.html", "shortdesc": "Example of a WMTS source built from a WMTS getCapabilities response.", "title": "WMTS from capabilities example", "example": "wmts-from-capabilities.html"}, {"author": "Bruno Binet", "tags": "wmts", "modified": "2013-03-07T19:40:39+0100", "classes": [], "link": "wmts.html", "shortdesc": "Example of a WMTS source.", "title": "WMTS example", "example": "wmts.html"}, {"author": "Marc Jansen", "tags": "zoom, zoomslider, slider, style, styling, css, control", "modified": "2013-03-11T16:10:10+0100", "classes": [], "link": "zoomslider.html", "shortdesc": "Example of various ZoomSlider controls.", "title": "ZoomSlider control", "example": "zoomslider.html"}]};
\ No newline at end of file
diff --git a/master/examples/example-list.xml b/master/examples/example-list.xml
index 65014137e6..fc65bbae19 100644
--- a/master/examples/example-list.xml
+++ b/master/examples/example-list.xml
@@ -1 +1 @@
-OpenLayers Examples http://openlayers.github.com/ol3/master/examples/example-list.xml#2013-03-11T03:26:49Z 2013-03-11T03:26:49Z ZoomSlider control zoom, zoomslider, slider, style, styling, css, control Example of various ZoomSlider controls. 2013-03-11T16:10:10+0100 Marc Jansen http://openlayers.github.com/ol3/master/examples/zoomslider.html#2013-03-11T16:10:10+0100 WMTS from capabilities example wmts Example of a WMTS source built from a WMTS getCapabilities response. 2013-03-11T11:48:06+0100 Bruno Binet http://openlayers.github.com/ol3/master/examples/wmts-from-capabilities.html#2013-03-11T11:48:06+0100 Geolocation example geolocation, openstreetmap Example of a geolocation map. 2013-03-11T09:27:15+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/geolocation.html#2013-03-11T09:27:15+0100 Rotation example rotation, openstreetmap Example of a rotated map. Use <code>Alt</code>+<code>Shift</code>+drag to rotate the map. 2013-03-09T21:48:33+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/rotation.html#2013-03-09T21:48:33+0100 Semi-transparent layer example transparent, mapquest, tilejson Example of a map with a semi-transparent layer. 2013-03-09T17:18:41+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/semi-transparent-layer.html#2013-03-09T17:18:41+0100 WMTS example wmts Example of a WMTS source. 2013-03-07T19:40:39+0100 Bruno Binet http://openlayers.github.com/ol3/master/examples/wmts.html#2013-03-07T19:40:39+0100 Single image WMS example wms, image Example of a single image WMS layer. 2013-03-07T12:29:13+0100 Éric Lemoine http://openlayers.github.com/ol3/master/examples/wms-single-image.html#2013-03-07T12:29:13+0100 Tiled WMS example wms, tile, tilelayer Example of a tiled WMS layer. 2013-03-07T11:59:09+0100 Éric Lemoine http://openlayers.github.com/ol3/master/examples/wms-tiled.html#2013-03-07T11:59:09+0100 Side-by-side example side-by-side, canvas, webgl, dom, canvas, sync, object The three maps, one WebGL, one Canvas, one DOM, share the same center, resolution, rotation and layers. 2013-03-07T03:15:19+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/side-by-side.html#2013-03-07T03:15:19+0100 Animation example animation Example animations. 2013-03-07T02:56:28+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/animation.html#2013-03-07T02:56:28+0100 Brightness/contrast example brightness, contrast, webgl Example of brightness/contrast control on the client (WebGL only). 2013-03-07T01:53:52+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/brightness-contrast.html#2013-03-07T01:53:52+0100 Hue/saturation example hue, saturation, webgl Example of hue/saturation control on the client (WebGL only). 2013-03-07T01:42:14+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/hue-saturation.html#2013-03-07T01:42:14+0100 MapQuest example mapquest Example of a MapQuest map. 2013-03-07T00:46:09+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/mapquest.html#2013-03-07T00:46:09+0100 Export JPEG example export-jpeg, openstreetmap Example of exporting a map as a JPEG image. 2013-03-06T21:28:59+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/export-jpeg.html#2013-03-06T21:28:59+0100 Stamen example stamen, watercolor, terrain-labels, two-layers Example of a Stamen tile source. Two layers are composed: the watercolor base layer with the terrain labels. 2013-03-06T21:08:06+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/stamen.html#2013-03-06T21:08:06+0100 Mouse position example mouse-position, openstreetmap Example of a mouse position control, outside the map. 2013-03-06T20:45:08+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/mouse-position.html#2013-03-06T20:45:08+0100 Scale line example scale-line, openstreetmap Example of a scale line. 2013-03-06T20:34:47+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/scale-line.html#2013-03-06T20:34:47+0100 TileJSON example tilejson Example of a TileJSON layer. 2013-03-06T20:21:07+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/tilejson.html#2013-03-06T20:21:07+0100 Bing Maps example bing, bing-maps Example of a Bing Maps layer. 2013-03-06T20:13:45+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/bing-maps.html#2013-03-06T20:13:45+0100 Full-screen example fullscreen, mapquest, openaerial, tile, tilelayer Example of a full-screen map. 2013-03-06T17:31:46+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/full-screen.html#2013-03-06T17:31:46+0100 Anchored elements example anchored elements, overlay, popup, mapquest, openaerial Demonstrates anchored elements. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/anchored-elements.html#2013-03-06T15:12:01+0100 Canvas tiles example layers, openstreetmap, canvas The black grid tiles are generated on the client with an HTML5 canvas. Note that the tile coordinates are ol3 normalized tile coordinates (origin bottom left), not OSM tile coordinates (origin top left). 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/canvas-tiles.html#2013-03-06T15:12:01+0100 EPSG:4326 example epsg4326 Example of a map in EPSG:4326. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/epsg-4326.html#2013-03-06T15:12:01+0100 Simple example simple, openstreetmap Example of a simple map. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/simple.html#2013-03-06T15:12:01+0100 WMS GetCapabilities parsing example wms, capabilities, getcapabilities Example of parsing a WMS GetCapabilities response. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/wms-capabilities.html#2013-03-06T15:12:01+0100 Tiled WMS with custom projection example wms, tile, tilelayer, projection Example of two tiled WMS layers (Pixelmap 1:1'000'000 and national parks) using the projection EPSG:21781. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/wms-custom-proj.html#2013-03-06T15:12:01+0100
\ No newline at end of file
+OpenLayers Examples http://openlayers.github.com/ol3/master/examples/example-list.xml#2013-03-15T09:37:32Z 2013-03-15T09:37:32Z Bing Maps example bing, bing-maps Example of a Bing Maps layer. 2013-03-13T13:36:31+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/bing-maps.html#2013-03-13T13:36:31+0100 Single image WMS with custom projection example wms, single image, projection Example of two single image WMS layers (Pixelmap 1:1'000'000 and national parks) using the projection EPSG:21781. 2013-03-11T20:25:29+0100 Cédric Moullet http://openlayers.github.com/ol3/master/examples/wms-single-image-custom-proj.html#2013-03-11T20:25:29+0100 Tiled WMS with custom projection example wms, tile, tilelayer, projection Example of two tiled WMS layers (Pixelmap 1:1'000'000 and national parks) using the projection EPSG:21781. 2013-03-11T20:15:54+0100 Cédric Moullet http://openlayers.github.com/ol3/master/examples/wms-custom-proj.html#2013-03-11T20:15:54+0100 Canvas tiles example layers, openstreetmap, canvas The black grid tiles are generated on the client with an HTML5 canvas. Note that the tile coordinates are ol3 normalized tile coordinates (origin bottom left), not OSM tile coordinates (origin top left). 2013-03-11T17:07:27+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/canvas-tiles.html#2013-03-11T17:07:27+0100 ZoomSlider control zoom, zoomslider, slider, style, styling, css, control Example of various ZoomSlider controls. 2013-03-11T16:10:10+0100 Marc Jansen http://openlayers.github.com/ol3/master/examples/zoomslider.html#2013-03-11T16:10:10+0100 WMTS from capabilities example wmts Example of a WMTS source built from a WMTS getCapabilities response. 2013-03-11T11:48:06+0100 Bruno Binet http://openlayers.github.com/ol3/master/examples/wmts-from-capabilities.html#2013-03-11T11:48:06+0100 Geolocation example geolocation, openstreetmap Example of a geolocation map. 2013-03-11T09:27:15+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/geolocation.html#2013-03-11T09:27:15+0100 Rotation example rotation, openstreetmap Example of a rotated map. Use <code>Alt</code>+<code>Shift</code>+drag to rotate the map. 2013-03-09T21:48:33+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/rotation.html#2013-03-09T21:48:33+0100 Semi-transparent layer example transparent, mapquest, tilejson Example of a map with a semi-transparent layer. 2013-03-09T17:18:41+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/semi-transparent-layer.html#2013-03-09T17:18:41+0100 Style with rules example vector, geojson, style Draws features with rule based styles. 2013-03-08T16:26:18+0100 ahocevar http://openlayers.github.com/ol3/master/examples/style-rules.html#2013-03-08T16:26:18+0100 Vector layer example vector, geojson, style Example of a vector layer. 2013-03-07T23:48:23-0700 Tim Schaub http://openlayers.github.com/ol3/master/examples/vector-layer.html#2013-03-07T23:48:23-0700 WMTS example wmts Example of a WMTS source. 2013-03-07T19:40:39+0100 Bruno Binet http://openlayers.github.com/ol3/master/examples/wmts.html#2013-03-07T19:40:39+0100 Single image WMS example wms, image Example of a single image WMS layer. 2013-03-07T12:29:13+0100 Éric Lemoine http://openlayers.github.com/ol3/master/examples/wms-single-image.html#2013-03-07T12:29:13+0100 Tiled WMS example wms, tile, tilelayer Example of a tiled WMS layer. 2013-03-07T11:59:09+0100 Éric Lemoine http://openlayers.github.com/ol3/master/examples/wms-tiled.html#2013-03-07T11:59:09+0100 Side-by-side example side-by-side, canvas, webgl, dom, canvas, sync, object The three maps, one WebGL, one Canvas, one DOM, share the same center, resolution, rotation and layers. 2013-03-07T03:15:19+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/side-by-side.html#2013-03-07T03:15:19+0100 Animation example animation Example animations. 2013-03-07T02:56:28+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/animation.html#2013-03-07T02:56:28+0100 Brightness/contrast example brightness, contrast, webgl Example of brightness/contrast control on the client (WebGL only). 2013-03-07T01:53:52+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/brightness-contrast.html#2013-03-07T01:53:52+0100 Hue/saturation example hue, saturation, webgl Example of hue/saturation control on the client (WebGL only). 2013-03-07T01:42:14+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/hue-saturation.html#2013-03-07T01:42:14+0100 MapQuest example mapquest Example of a MapQuest map. 2013-03-07T00:46:09+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/mapquest.html#2013-03-07T00:46:09+0100 Export JPEG example export-jpeg, openstreetmap Example of exporting a map as a JPEG image. 2013-03-06T21:28:59+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/export-jpeg.html#2013-03-06T21:28:59+0100 Stamen example stamen, watercolor, terrain-labels, two-layers Example of a Stamen tile source. Two layers are composed: the watercolor base layer with the terrain labels. 2013-03-06T21:08:06+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/stamen.html#2013-03-06T21:08:06+0100 Mouse position example mouse-position, openstreetmap Example of a mouse position control, outside the map. 2013-03-06T20:45:08+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/mouse-position.html#2013-03-06T20:45:08+0100 Scale line example scale-line, openstreetmap Example of a scale line. 2013-03-06T20:34:47+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/scale-line.html#2013-03-06T20:34:47+0100 TileJSON example tilejson Example of a TileJSON layer. 2013-03-06T20:21:07+0100 Tom Payne http://openlayers.github.com/ol3/master/examples/tilejson.html#2013-03-06T20:21:07+0100 Full-screen example fullscreen, mapquest, openaerial, tile, tilelayer Example of a full-screen map. 2013-03-06T17:31:46+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/full-screen.html#2013-03-06T17:31:46+0100 Anchored elements example anchored elements, overlay, popup, mapquest, openaerial Demonstrates anchored elements. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/anchored-elements.html#2013-03-06T15:12:01+0100 EPSG:4326 example epsg4326 Example of a map in EPSG:4326. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/epsg-4326.html#2013-03-06T15:12:01+0100 Simple example simple, openstreetmap Example of a simple map. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/simple.html#2013-03-06T15:12:01+0100 WMS GetCapabilities parsing example wms, capabilities, getcapabilities Example of parsing a WMS GetCapabilities response. 2013-03-06T15:12:01+0100 Frederic Junod http://openlayers.github.com/ol3/master/examples/wms-capabilities.html#2013-03-06T15:12:01+0100
\ No newline at end of file
diff --git a/master/examples/full-screen-require.js b/master/examples/full-screen-require.js
index 04ee3aa6fc..be7a9b1a84 100644
--- a/master/examples/full-screen-require.js
+++ b/master/examples/full-screen-require.js
@@ -2,6 +2,5 @@ goog.require('ol.Coordinate');
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
-goog.require('ol.control.defaults');
goog.require('ol.layer.TileLayer');
goog.require('ol.source.MapQuestOpenAerial');
diff --git a/master/examples/mouse-position-require.js b/master/examples/mouse-position-require.js
index 52f645eee6..943ec598d4 100644
--- a/master/examples/mouse-position-require.js
+++ b/master/examples/mouse-position-require.js
@@ -5,5 +5,4 @@ goog.require('ol.View2D');
goog.require('ol.control.MousePosition');
goog.require('ol.control.defaults');
goog.require('ol.layer.TileLayer');
-goog.require('ol.projection');
goog.require('ol.source.OpenStreetMap');
diff --git a/master/examples/side-by-side-require.js b/master/examples/side-by-side-require.js
index aaede8a080..69b2ff2d3d 100644
--- a/master/examples/side-by-side-require.js
+++ b/master/examples/side-by-side-require.js
@@ -3,8 +3,6 @@ goog.require('ol.Coordinate');
goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
-goog.require('ol.animation');
-goog.require('ol.easing');
goog.require('ol.interaction.Keyboard');
goog.require('ol.layer.TileLayer');
goog.require('ol.projection');
diff --git a/master/examples/style-rules-require.js b/master/examples/style-rules-require.js
new file mode 100644
index 0000000000..633b161b09
--- /dev/null
+++ b/master/examples/style-rules-require.js
@@ -0,0 +1,15 @@
+goog.require('ol.Collection');
+goog.require('ol.Coordinate');
+goog.require('ol.Expression');
+goog.require('ol.Map');
+goog.require('ol.RendererHint');
+goog.require('ol.View2D');
+goog.require('ol.control.defaults');
+goog.require('ol.filter.Filter');
+goog.require('ol.layer.Vector');
+goog.require('ol.parser.GeoJSON');
+goog.require('ol.projection');
+goog.require('ol.source.Vector');
+goog.require('ol.style.Line');
+goog.require('ol.style.Rule');
+goog.require('ol.style.Style');
diff --git a/master/examples/style-rules.html b/master/examples/style-rules.html
new file mode 100644
index 0000000000..7a0859f3ba
--- /dev/null
+++ b/master/examples/style-rules.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
Style with rules example
+
+
+