Compare commits

...

1100 Commits

Author SHA1 Message Date
Andreas Hocevar 7bc26050f0 Tagging temporary release 2016-07-06 21:24:26 +02:00
Andreas Hocevar 5d8b99ab10 Additional tests and code comments 2016-07-06 20:13:08 +02:00
Andreas Hocevar 3c37ce3990 Introduce new overlaps option for Vector and VectorTile sources
Instead of deciding whether to batch fills and strokes by looking at the
opacity of the style, we now rely on user input.
2016-07-06 16:37:06 +02:00
Andreas Hocevar 091dc9fbf4 Batch polygon and circle fills and strokes 2016-07-06 16:03:45 +02:00
Tobias Sauerwein 343d2c032d Merge pull request #5570 from bjornharrtell/jsts_1.2.0
Upgrade JSTS in example to 1.2.0
2016-07-05 22:24:47 +02:00
Björn Harrtell 7d4c7b7982 Upgrade JSTS in example to 1.2.0 2016-07-05 21:21:36 +02:00
Frédéric Junod 130052c935 Merge pull request #5566 from fredj/5253
Fix ol.style.Image#getAnchor documentation
2016-07-05 16:23:20 +02:00
Frederic Junod 8957e618a5 Fix ol.style.Image#getAnchor documentation 2016-07-05 14:51:33 +02:00
Andreas Hocevar c49fbf9070 Merge pull request #5546 from ahocevar/event-no-target
Remove useless target argument from ol.Event and subclass constructors
2016-07-05 09:54:19 +02:00
Andreas Hocevar d840bba905 Merge pull request #5565 from probins/enum
Reinsert goog.provide for enums in olx.js
2016-07-05 09:52:22 +02:00
Andreas Hocevar ccf15b8be3 Remove useless target argument from ol.Event and subclass constructors 2016-07-05 09:40:00 +02:00
Peter Robins d7180fd1e8 Reinsert goog.provide for enums in olx.js 2016-07-05 07:32:30 +00:00
Frédéric Junod 2845f50ff7 Merge pull request #5561 from fredj/test_centerConstraint
Add unit tests for ol.View.createCenterConstraint
2016-07-05 09:13:34 +02:00
Frédéric Junod 39e06151c5 Merge pull request #5563 from fredj/removeVertex_return
Return if a vertex was removed in ol.interaction.Modify#removeVertex_
2016-07-05 09:13:19 +02:00
Frederic Junod 460ea4e809 Return if a vertex was removed in ol.interaction.Modify#removeVertex_ 2016-07-04 17:09:01 +02:00
Frederic Junod 6910c471bf Add unit tests for ol.View.createCenterConstraint 2016-07-04 16:46:57 +02:00
Andreas Hocevar b5da32340e Merge pull request #5533 from ahocevar/update-wms-params-reproj
Make sure reprojected tiles are recreated on updateParams
2016-07-04 11:21:42 +02:00
Andreas Hocevar 102eb1b94f Handle interim tiles correctly when reprojecting 2016-07-04 10:31:20 +02:00
Bart van den Eijnden ee3e302f69 Merge pull request #5557 from openlayers/release-v3.17.1
Release v3.17.1
2016-07-04 10:14:16 +02:00
Bart van den Eijnden eb92c268ab Update package version to 3.17.1 2016-07-04 10:01:47 +02:00
Bart van den Eijnden 518212ce7d Changelog for v3.17.1 2016-07-04 10:01:10 +02:00
Andreas Hocevar bbfc93b1d8 Merge pull request #5548 from GaborFarkas/fullscreen_event_enum
Fix CHANGETYPE in ol.control.FullScreen
2016-07-04 09:59:03 +02:00
Andreas Hocevar 4d10a6b9a1 Merge pull request #5548 from GaborFarkas/fullscreen_event_enum
Fix CHANGETYPE in ol.control.FullScreen
2016-07-03 11:25:39 +02:00
GaborFarkas 2e68be13f6 Create a dedicated function to changeType. 2016-07-03 11:14:53 +02:00
Andreas Hocevar d05f1ce743 Merge pull request #5534 from ahocevar/scaleline-docs
Fix ScaleLine control documentation
2016-07-02 21:36:53 +02:00
Tim Schaub a30d4843cf Merge pull request #5541 from probins/isnumber
Replace goog.isNumber
2016-07-02 09:20:53 -06:00
Tim Schaub 5e98b27afd Merge pull request #5552 from probins/webgl
Replace goog.webgl.
2016-07-02 09:19:16 -06:00
Peter Robins 294a129083 Replace goog.webgl 2016-07-02 10:40:55 +00:00
Andreas Hocevar c95c9846fb Fix ScaleLine control documentation
The scale line shown is derived from y-axis distances, not x-axis.
2016-07-02 09:44:47 +02:00
Andreas Hocevar 512c442ccc Merge pull request #5550 from ahocevar/rename-multvec2
Remove use of ol.vec.Mat4 calls remaining after #5482
2016-07-01 23:12:03 +02:00
Andreas Hocevar 2d4bccacb5 Remove use of ol.vec.Mat4 calls remaining after #5482 2016-07-01 23:00:29 +02:00
Andreas Hocevar 9624357bc3 Merge pull request #5507 from ahocevar/remove-goog-vec
Remove use of goog.vec.*
2016-07-01 22:46:42 +02:00
Bart van den Eijnden 9cc724550a Merge pull request #5549 from openlayers/release-v3.17.0
Release v3.17.0
2016-07-01 19:34:17 +02:00
Bart van den Eijnden d3e15e4394 Update package version to 3.17.0 2016-07-01 19:20:18 +02:00
Bart van den Eijnden 0dbca294b2 Changelog for v3.17.0 2016-07-01 19:19:50 +02:00
GaborFarkas 27e3124dca Set changeType when the map exists 2016-07-01 18:28:36 +02:00
GaborFarkas 34cc5c6bde Fix error from early enum of CHANGETYPE 2016-07-01 18:06:11 +02:00
Andreas Hocevar c74d7171aa Merge pull request #5539 from probins/dom
Remove outdated comments re goog.dom
2016-07-01 15:07:59 +02:00
Tobias Sauerwein 6ebc67f1c5 Merge pull request #5543 from tsauerwein/update-rbush-2
Update rbush to 2.0.1
2016-07-01 13:13:20 +02:00
Bart van den Eijnden 72568305c0 Merge pull request #5540 from bartvde/issue-5484
Remove MapQuest source
2016-07-01 13:08:26 +02:00
tsauerwein 749660dd22 Update rbush to 2.0.1 2016-07-01 12:01:48 +02:00
Bart van den Eijnden ed80d243fb Remove MapQuest source 2016-07-01 11:38:52 +02:00
Peter Robins 3eea9d4558 Replace goog.isNumber 2016-07-01 09:35:54 +00:00
Bart van den Eijnden 0d26c33484 Merge pull request #5538 from probins/inherits
Replace remaining goog.inherits
2016-07-01 11:30:26 +02:00
Peter Robins 1775a5aeea Remove outdated comments re goog.dom 2016-07-01 08:56:24 +00:00
Peter Robins f196ed8102 Replace remaining goog.inherits 2016-07-01 08:45:15 +00:00
Bart van den Eijnden c56432cf2e Merge pull request #5536 from tschaub/more-layer-extent
Update to layer-extent example
2016-07-01 09:13:47 +02:00
Tim Schaub 17e11fb84a Source shuffle 2016-06-30 15:28:33 -06:00
Tim Schaub 4154df9aa8 Remove unnecessary interaction 2016-06-30 15:22:51 -06:00
Tim Schaub 728e1dd1f2 Merge pull request #5482 from ischneider/layer-extent
Fix for regression in tile layer extent
2016-06-30 15:19:13 -06:00
Frédéric Junod 6d41e87ff5 Merge pull request #5475 from probins/enumprovide
Remove goog.provide from enums only used internally or in olx.js
2016-06-30 16:57:21 +02:00
Frédéric Junod 77e66221c1 Merge pull request #5424 from fredj/select_event
Don't dispatch select event if no feature is selected or deselected
2016-06-29 15:15:13 +02:00
Frederic Junod b562f4d68a Don't dispatch select event if a selected feature is selected again 2016-06-29 15:03:42 +02:00
Frederic Junod e7c2d9ab32 Don't dispatch select event if no feature is selected or deselected 2016-06-29 15:03:42 +02:00
Frédéric Junod 39de933e64 Merge pull request #5522 from SamuelBerger/master
Add 'condition' option to ol.interaction.DragPanOptions in olx.js
2016-06-29 14:52:34 +02:00
Frédéric Junod c43740a4ad Merge pull request #5443 from fredj/max_zoom_options
Remove olx.source.WMTSOptions#maxZoom option
2016-06-29 14:52:14 +02:00
Frederic Junod 7a43a667ce Remove olx.source.TileWMSOptions#maxZoom option 2016-06-29 13:44:10 +02:00
Frederic Junod 1b662ff048 Use minZoom and maxZoom olx.source.StamenOptions 2016-06-29 13:41:49 +02:00
Frederic Junod 93a98337d8 Remove olx.source.WMTSOptions#maxZoom option
The option is not handled by `ol.source.WMTS`
2016-06-29 13:41:49 +02:00
Frédéric Junod 65c8eba59b Merge pull request #5497 from openlayers/greenkeeper-istanbul-0.4.4
Update istanbul to version 0.4.4 🚀
2016-06-28 13:32:54 +02:00
greenkeeperio-bot 059ac56fef chore(package): update istanbul to version 0.4.4
https://greenkeeper.io/
2016-06-27 07:10:41 -06:00
Frédéric Junod 64afa2eab5 Merge pull request #5523 from openlayers/greenkeeper-closure-util-1.15.0
Update closure-util to version 1.15.0 🚀
2016-06-27 15:10:26 +02:00
greenkeeperio-bot 13546d27f2 chore(package): update closure-util to version 1.15.0
https://greenkeeper.io/
2016-06-27 06:49:14 -06:00
Samuel Berger a2326f7180 Add 'condition' option to ol.interaction.DragPanOptions in olx.js 2016-06-27 14:01:40 +02:00
Frédéric Junod ffe0529df8 Merge pull request #5508 from tsauerwein/compiler-properties
Fix problems with ol.format.WFS in compiled mode
2016-06-27 11:59:13 +02:00
Andreas Hocevar 38f7aef6b0 Merge pull request #5512 from ahocevar/foreachtilecoord
Use forEachTileCoord name instead of forEachTileCoordInExtentAndZ
2016-06-25 21:18:58 +02:00
Tim Schaub 618cb389e5 Use ol.transform.compose() for common transform compositions 2016-06-24 19:33:53 +02:00
Tim Schaub a655234cc3 Convenience function for common composite transform 2016-06-24 19:32:29 +02:00
Tim Schaub 4cde6a0a6d Move assertions into it blocks 2016-06-24 19:32:13 +02:00
Andreas Hocevar a1e0969d9f Add tests 2016-06-23 17:17:59 +02:00
Andreas Hocevar 3e928718f4 ol.vec.Mat4 improvements
* Rename ol.vec.Mat4.fromMatrix to ol.vec.Mat4.fromTransform
* Make result from ol.vec.Mat4.fromTransform immutable by adding result
  matrix as argument.
2016-06-23 15:52:25 +02:00
Bart van den Eijnden f549f1946c Merge pull request #5513 from bartvde/view-getminmaxres
Add getters for min and max resolution of the view
2016-06-23 15:28:07 +02:00
Bart van den Eijnden 449ea370c0 Add getters for min and max resolution of the view 2016-06-23 15:00:30 +02:00
Andreas Hocevar bc506389fc Use forEachTileCoord name instead of forEachTileCoordInExtentAndZ 2016-06-23 14:27:21 +02:00
Andreas Hocevar 5d85867fbf Merge pull request #5471 from probins/gpx
Fix GPX write of xsi ns
2016-06-23 14:24:48 +02:00
Andreas Hocevar 6b4ee42c90 Refactor to a more convenient internal API 2016-06-23 13:10:41 +02:00
Andreas Hocevar cf7ff841a7 Remove use of goog.vec.* 2016-06-23 13:10:41 +02:00
Andreas Hocevar 55edf4003f Merge pull request #5134 from nicholas-l/removeGoogDom
Remove goog.dom
2016-06-23 12:15:03 +02:00
nicholas 6b465902cd Remove goog.dom 2016-06-23 22:06:35 +12:00
Andreas Hocevar 9453984f9a Merge pull request #5511 from ahocevar/keep-last-point
Do not optimize lines away entirely
2016-06-23 11:07:04 +02:00
Andreas Hocevar 35129af7f0 Do not optimize lines away entirely 2016-06-23 10:38:10 +02:00
Andreas Hocevar 3726b25ba2 Merge pull request #5509 from ahocevar/foreachtilecoordinextentandz
Make it easier to work with tile ranges in custom source implementations
2016-06-23 09:03:08 +02:00
tsauerwein 7048de8e83 Make sure properties are not renamed 2016-06-23 08:38:06 +02:00
Frederic Junod 4b7cdffaf4 Export getZForResolution from ol.tilegrid.TileGrid 2016-06-22 20:48:49 +02:00
Andreas Hocevar 14cecb7163 Add function to iterate over tile coordinates in extent and z 2016-06-22 18:05:18 +02:00
Frédéric Junod 29c8af7559 Merge pull request #5498 from openlayers/greenkeeper-eslint-2.13.1
Update eslint to version 2.13.1 🚀
2016-06-21 12:28:40 +02:00
Frédéric Junod b19ac3c26d Merge pull request #5495 from fredj/rm_goog.isFunction
Get rid of goog.isFunction
2016-06-21 08:37:15 +02:00
greenkeeperio-bot f26bcf5c3e chore(package): update eslint to version 2.13.1
https://greenkeeper.io/
2016-06-21 00:36:29 -06:00
Frédéric Junod e4168e3582 Merge pull request #5499 from openlayers/greenkeeper-glob-7.0.5
Update glob to version 7.0.5 🚀
2016-06-21 08:36:15 +02:00
greenkeeperio-bot dd8dc8ad0f chore(package): update glob to version 7.0.5
https://greenkeeper.io/
2016-06-20 19:13:36 -06:00
Frederic Junod b8ce70fbf0 Get rid of goog.isFunction 2016-06-20 16:09:25 +02:00
Andreas Hocevar e916345e8c Merge pull request #5125 from nicholas-l/removeGoogStyle
Remove goog style
2016-06-20 13:04:00 +02:00
Frédéric Junod 925a272fb8 Merge pull request #5494 from probins/global
Remove goog.global
2016-06-20 12:27:33 +02:00
Peter Robins eaa0d70289 Remove goog.global 2016-06-20 09:47:32 +00:00
Andreas Hocevar 030c0dad3d Avoid creation of unnecessary object literals 2016-06-20 21:44:15 +12:00
Nicholas L 0fef14137c Remove unneeded comments and use ol.global 2016-06-20 21:41:20 +12:00
Andreas Hocevar 04287e0fd5 Merge pull request #5492 from openlayers/greenkeeper-eslint-2.13.0
Update eslint to version 2.13.0 🚀
2016-06-20 07:55:20 +02:00
nicholas ea1c7a6551 Remove goog.style.getPageOffset 2016-06-19 19:26:25 +12:00
nicholas 6da5a1e9f7 Remove goog.style.getContentBoxSize 2016-06-19 19:22:11 +12:00
nicholas ec12c34edd Remove goog.style.getBorderBoxSize 2016-06-19 19:22:11 +12:00
nicholas 837c48a2e2 Remove goog.style.getMarginBox 2016-06-19 19:22:11 +12:00
nicholas 04c4b4efc1 Remove goog.style.setElementShown 2016-06-19 19:22:11 +12:00
nicholas 96a14e0515 Remove getSize 2016-06-19 19:22:11 +12:00
greenkeeperio-bot cd4f1c109b chore(package): update eslint to version 2.13.0
https://greenkeeper.io/
2016-06-17 11:35:35 -06:00
Andreas Hocevar 609c891524 Merge pull request #5490 from openlayers/greenkeeper-glob-7.0.4
Update glob to version 7.0.4 🚀
2016-06-17 09:12:45 +02:00
greenkeeperio-bot 5442c1f587 chore(package): update glob to version 7.0.4
https://greenkeeper.io/
2016-06-16 11:38:16 -06:00
Frédéric Junod 810c655940 Merge pull request #5460 from openlayers/greenkeeper-eslint-2.12.0
Update eslint to version 2.12.0 🚀
2016-06-16 16:26:09 +02:00
Ian Schneider 9d5232d9af canvas tests for tile rendering with layer.extent 2016-06-15 21:14:37 -06:00
Ian Schneider 265068e782 example - layer-extent uses country bboxes 2016-06-15 21:13:49 -06:00
Ian Schneider 44a4fbdda2 respect layer.extent in canvas tilelayer renderer 2016-06-15 12:42:38 -06:00
Ian Schneider 6902791dc5 layer extent example changes for testing
- add draw extent tool
- rotation control
2016-06-15 12:42:32 -06:00
greenkeeperio-bot 95a3f42315 chore(package): update eslint to version 2.12.0
https://greenkeeper.io/
2016-06-15 09:54:46 -06:00
Andreas Hocevar 6fe1a58b26 Merge pull request #5479 from openlayers/greenkeeper-slimerjs-0.906.2
Update slimerjs to version 0.906.2 🚀
2016-06-15 17:54:31 +02:00
greenkeeperio-bot 466b02836b chore(package): update slimerjs to version 0.906.2
https://greenkeeper.io/
2016-06-15 09:17:14 -06:00
Peter Robins e5cc971dc9 Remove goog.provide for enums only in olx.js 2016-06-15 09:14:13 +00:00
Peter Robins bda673f389 Remove goog.provide from internal enums 2016-06-15 09:04:44 +00:00
Frédéric Junod fa995cf7f3 Merge pull request #5474 from openlayers/greenkeeper-clean-css-3.4.18
Update clean-css to version 3.4.18 🚀
2016-06-15 08:51:08 +02:00
greenkeeperio-bot 1a159f3ac4 chore(package): update clean-css to version 3.4.18
https://greenkeeper.io/
2016-06-15 00:39:12 -06:00
Andreas Hocevar 6718fc982e Merge pull request #5450 from probins/typedefs
Remove sub-namespaces from all remaining typedefs
2016-06-14 17:32:10 +02:00
Andreas Hocevar 2809df86ca Merge pull request #5465 from ahocevar/fix-custom-symbol
Fix custom icon positions and rotation
2016-06-14 17:29:00 +02:00
Andreas Hocevar 1d20215bfa Make all typedefs work without provide/require 2016-06-14 15:01:20 +00:00
Peter Robins 7d210948e8 Fix GPX write of xsi ns
Also add version/creator attributes to <gpx> node.
2016-06-14 11:14:19 +00:00
Frédéric Junod 3c50d12ad9 Merge pull request #5469 from gberaudo/webgl_typo
Fix typo
2016-06-14 09:28:06 +02:00
Guillaume Beraudo bb32b6ac55 Fix typo 2016-06-14 09:10:07 +02:00
Andreas Hocevar 103ff01456 Fix custom icon positions and rotation 2016-06-13 22:08:02 +02:00
Andreas Hocevar d26ac55ed0 Merge pull request #5453 from ahocevar/mapbrowserpointerevent
Reference ol.MapBrowserEvent instead of ol.MapBrowserPointerEvent
2016-06-13 14:01:49 +02:00
Bart van den Eijnden 31dcb80725 Merge pull request #5208 from probins/rtewpt
Stop GPX writing rtept properties
2016-06-10 13:10:53 +02:00
Peter Robins f3acac5259 Stop GPX writing rtept properties 2016-06-10 10:56:30 +00:00
Andreas Hocevar 06249be6bd Remove last reference to ol.MapBrowserPointerEvent from the API
This is a bit of a hack, but in fact it improves the situation for the end
user because it asserts the correct event type instead of failing silently.
2016-06-09 18:22:11 +02:00
Andreas Hocevar 400484e663 Reference ol.MapBrowserEvent instead of ol.MapBrowserPointerEvent
There is nothing exportable in ol.MapBrowserEvent in addition to what is
exportable in ol.MapBrowserEvent.
2016-06-09 18:22:11 +02:00
Frédéric Junod ab4da04312 Merge pull request #5452 from openlayers/greenkeeper-eslint-config-openlayers-5.0.0
Update eslint-config-openlayers to version 5.0.0 🚀
2016-06-09 16:06:45 +02:00
Frederic Junod 4bf1f56405 Add missing semicolon 2016-06-09 15:39:46 +02:00
greenkeeperio-bot 08f8cd0f16 chore(package): update eslint-config-openlayers to version 5.0.0
https://greenkeeper.io/
2016-06-09 07:25:37 -06:00
Andreas Hocevar 40ead5b329 Merge pull request #5432 from bjornharrtell/rm_goog.uri
Remove use of goog.uri
2016-06-09 14:20:56 +02:00
Peter Robins 2c29512c80 Remove sub-namespaces from all remaining typedefs 2016-06-09 10:01:52 +00:00
Andreas Hocevar 09202cf95d Merge pull request #5449 from ahocevar/examples-absolute-urls
Make example data/ paths absolute for source view and JSFiddle
2016-06-09 10:10:47 +02:00
Andreas Hocevar e39ea746a7 Make example data/ paths absolute for source view and JSFiddle 2016-06-09 08:51:34 +02:00
Andreas Hocevar 54f7bb6958 Merge pull request #5399 from probins/raster
Remove ol.raster namespace
2016-06-08 16:09:37 +02:00
Björn Harrtell 27853ea7dd Remove use of goog.uri 2016-06-08 15:14:18 +02:00
Peter Robins 395f3c0756 Remove ol.raster namespace
Now used only for 1 typedefs and 1 enum, it serves little purpose,
so the typedef is renamed in the ol namespace, and the enum moved to rastersource.js
2016-06-08 12:37:20 +00:00
Frédéric Junod e63b4d1f48 Merge pull request #5270 from fredj/load_error
Load erroneous image in ol.Image#load and ol.ImageTile#load
2016-06-08 09:25:57 +02:00
Frédéric Junod 3935b7db24 Merge pull request #5194 from fredj/rm_goog.inherits
Get rid of goog.inherits and goog.base
2016-06-08 09:17:07 +02:00
Frederic Junod e289bfbb7d Use ol.inherits instead of goog.inherits 2016-06-08 08:38:12 +02:00
Frederic Junod a598737ec5 Add unit tests for ol.ImageTile 2016-06-08 08:36:58 +02:00
Frederic Junod 1f48198e95 Allow tiles in ol.ImageState.ERROR state to be loaded. 2016-06-08 08:36:58 +02:00
Andreas Hocevar 072728b083 Merge pull request #5427 from ahocevar/auto-typedef-enum-options
Document typedefs and enums used by API symbols
2016-06-07 23:58:04 +02:00
Andreas Hocevar abec4f4ba7 Fix ol.raster.Operation type and docs 2016-06-07 08:36:44 +02:00
Frédéric Junod edb3987054 Merge pull request #5438 from fredj/filter_inherit_object
Don't make ol.format.ogc.filter.Filter inherit from ol.Object
2016-06-06 17:20:25 +02:00
Frederic Junod c51fc84b72 Don't make ol.format.ogc.filter.Filter inherit from ol.Object 2016-06-06 17:05:04 +02:00
Frédéric Junod de9c338fb1 Merge pull request #5433 from openlayers/greenkeeper-clean-css-3.4.17
Update clean-css to version 3.4.17 🚀
2016-06-06 08:51:19 +02:00
Frédéric Junod 26789d91d2 Merge pull request #5434 from tsauerwein/fix-externs
Fix externs in closure compiler tutorial
2016-06-06 08:47:04 +02:00
Andreas Hocevar aa9dbb984a Work around undetected types in {function(argType):returnType} types 2016-06-06 08:02:10 +02:00
tsauerwein b2120b2bab Fix externs in closure tutorial 2016-06-04 10:52:17 +02:00
greenkeeperio-bot b4b61e737f chore(package): update clean-css to version 3.4.17
https://greenkeeper.io/
2016-06-03 23:13:17 -07:00
Andreas Hocevar 0dca194525 Handle types in arrays etc. 2016-06-04 00:27:25 +02:00
Andreas Hocevar 9e980663ee Remove api annotations from typedefs in olx.js 2016-06-03 10:38:55 +02:00
Andreas Hocevar 2ec4969ac7 Remove api annotations from enums 2016-06-03 09:29:14 +02:00
Andreas Hocevar ca07de422c Remove api annotations from typedefs 2016-06-03 09:29:04 +02:00
Andreas Hocevar eddd006fcf Document typedefs and enums used by API symbols
It is no longer necessary to add api annotations to typedefs and enums
that are used by API symbols.
2016-06-03 09:28:53 +02:00
Marc Jansen 9e209a3362 Merge pull request #5426 from frankrowe/icon-example
Fix icon example to anchor popup to feature location
2016-06-03 07:53:09 +02:00
Frank Rowe 30482f023e fix icon example to anchor popup to feature location 2016-06-02 15:28:37 -04:00
Frédéric Junod 3d8ca68bac Merge pull request #5421 from probins/patch-1
Correct typo in config/jsdoc/api/readme.md
2016-06-02 17:03:58 +02:00
Peter Robins 3b1c76a1da Correct typo in config/jsdoc/api/readme.md 2016-06-02 15:29:41 +01:00
Frédéric Junod 578b653c40 Merge pull request #5417 from openlayers/greenkeeper-clean-css-3.4.16
Update clean-css to version 3.4.16 🚀
2016-06-02 11:52:35 +02:00
greenkeeperio-bot da5f47999f chore(package): update clean-css to version 3.4.16
https://greenkeeper.io/
2016-06-02 03:19:55 -06:00
Frédéric Junod d51fecd827 Merge pull request #5413 from openlayers/greenkeeper-clean-css-3.4.15
Update clean-css to version 3.4.15 🚀
2016-06-01 11:37:50 +02:00
greenkeeperio-bot 370f810f6b chore(package): update clean-css to version 3.4.15
https://greenkeeper.io/
2016-06-01 03:22:28 -06:00
Frédéric Junod d270643ce1 Merge pull request #5410 from openlayers/greenkeeper-eslint-2.11.1
Update eslint to version 2.11.1 🚀
2016-05-31 08:46:17 +02:00
greenkeeperio-bot 1e2ea333cc chore(package): update eslint to version 2.11.1
https://greenkeeper.io/
2016-05-31 08:35:42 +02:00
Frédéric Junod a9df88004c Merge pull request #5408 from openlayers/greenkeeper-pbf-2.0.1
Update pbf to version 2.0.1 🚀
2016-05-30 09:45:44 +02:00
greenkeeperio-bot f477a6ccb9 chore(package): update pbf to version 2.0.1
https://greenkeeper.io/
2016-05-30 01:27:19 -06:00
Frédéric Junod 2305991ee9 Merge pull request #5404 from openlayers/greenkeeper-eslint-2.11.0
Update eslint to version 2.11.0 🚀
2016-05-30 09:27:05 +02:00
greenkeeperio-bot 3bdcdb5937 chore(package): update eslint to version 2.11.0
https://greenkeeper.io/
2016-05-27 13:24:13 -06:00
Bart van den Eijnden bb8b43abce Merge pull request #5402 from anzhihun/master
Pass in srsName option to writeTransaction
2016-05-27 11:49:06 +02:00
Wei Lin 4877a7864c Pass in srsName option to writeTransaction
Fix #5397 :  By passing `srsName` option to `ol.format.WFS.writeTransaction`
2016-05-27 17:36:37 +08:00
Frédéric Junod 1b70931433 Merge pull request #5393 from openlayers/greenkeeper-mocha-2.5.3
Update mocha to version 2.5.3 🚀
2016-05-25 14:17:47 +02:00
greenkeeperio-bot 0acbaa20f9 chore(package): update mocha to version 2.5.3
https://greenkeeper.io/
2016-05-25 05:39:47 -06:00
Frédéric Junod d2c8823359 Merge pull request #5394 from openlayers/greenkeeper-resemblejs-2.2.1
Update resemblejs to version 2.2.1 🚀
2016-05-25 13:39:33 +02:00
greenkeeperio-bot 2cac34e938 chore(package): update resemblejs to version 2.2.1
https://greenkeeper.io/
2016-05-25 04:25:06 -06:00
Frédéric Junod 15ede94380 Merge pull request #5390 from fredj/wmts_guess_encoding
Fix the requestEncoding automatic selection
2016-05-25 10:29:27 +02:00
Frederic Junod bd0140f42d Fix the requestEncoding automatic selection
If the `requestEncoding` parameter was not provided, the function used `KVP`
but without checking if it was supported.
2016-05-25 09:57:49 +02:00
Frédéric Junod f3248e9c19 Merge pull request #5392 from openlayers/greenkeeper-closure-util-1.14.0
Update closure-util to version 1.14.0 🚀
2016-05-25 09:49:47 +02:00
Frederic Junod 420374294b Remove unnecessaryCasts compiler check
Removed from the compiler, see:
https://github.com/google/closure-compiler/wiki/Releases#may-17-2016-v20160517
2016-05-25 09:38:33 +02:00
greenkeeperio-bot 271e7c5bb1 chore(package): update closure-util to version 1.14.0
https://greenkeeper.io/
2016-05-25 01:28:55 -06:00
Frédéric Junod b434a30603 Merge pull request #5388 from openlayers/greenkeeper-mocha-2.5.2
Update mocha to version 2.5.2 🚀
2016-05-24 13:28:20 +02:00
greenkeeperio-bot ec1d21e29a chore(package): update mocha to version 2.5.2
https://greenkeeper.io/
2016-05-24 04:16:05 -06:00
Frédéric Junod 4e1decab52 Merge pull request #5382 from twpayne/igc-date
Handle UTC midnight wrap around, fixes #5371
2016-05-24 09:08:21 +02:00
Frédéric Junod 92632f1d63 Merge pull request #5381 from openlayers/greenkeeper-mocha-2.5.1
Update mocha to version 2.5.1 🚀
2016-05-24 08:49:25 +02:00
Frédéric Junod 2063c1be71 Merge pull request #5383 from openlayers/greenkeeper-clean-css-3.4.13
Update clean-css to version 3.4.13 🚀
2016-05-24 08:49:12 +02:00
greenkeeperio-bot 77baa67e71 chore(package): update mocha to version 2.5.1
https://greenkeeper.io/
2016-05-24 08:28:18 +02:00
Andreas Hocevar f3e6630db3 Merge v3.16.0 2016-05-23 21:01:54 +02:00
Andreas Hocevar 1038b2abea Update package version to v3.16.0 2016-05-23 20:49:32 +02:00
Andreas Hocevar e0cada9c5d Changelog for v3.16.0 2016-05-23 20:49:05 +02:00
Tom Payne a6a621834f Handle UTC midnight wrap around, fixes #5371 2016-05-23 20:36:01 +02:00
greenkeeperio-bot 4653a01ba4 chore(package): update clean-css to version 3.4.13
https://greenkeeper.io/
2016-05-23 04:04:44 -06:00
Frédéric Junod 7196e18479 Merge pull request #5377 from fredj/jspdf.min.js
Fix link to jspdf.min.js in export-pdf example
2016-05-23 11:23:03 +02:00
Frederic Junod e70ce9d624 Fix link to jspdf.min.js in export-pdf example 2016-05-23 10:57:19 +02:00
Frédéric Junod 0efb3994eb Merge pull request #5372 from openlayers/greenkeeper-jquery-2.2.4
Update jquery to version 2.2.4 🚀
2016-05-23 08:36:03 +02:00
greenkeeperio-bot d666bb4a36 chore(package): update jquery to version 2.2.4
https://greenkeeper.io/
2016-05-20 11:32:25 -06:00
Tim Schaub 50408d7c1a Merge pull request #5364 from tschaub/less-flashy
Make it so things don't flash so much when you change the tile source URL.
2016-05-19 09:26:42 -06:00
Tim Schaub d50082b860 Upgrade note regarding tile rendering 2016-05-19 09:17:23 -06:00
Tim Schaub ac4653ada5 Tests for source.setKey() 2016-05-19 09:09:52 -06:00
Tim Schaub feb6fe9dce Tests for setUrl() and setUrls() 2016-05-19 09:09:52 -06:00
Tim Schaub b2b902e22f Less weird name 2016-05-19 09:09:52 -06:00
Tim Schaub 6f5965f6a5 Demonstrate how source.setUrl() works 2016-05-19 09:09:52 -06:00
Tim Schaub 9870e8c04c Allow XYZ source construction without options 2016-05-19 09:09:52 -06:00
Tim Schaub 5542f045d5 Less special handling for WMTS tiles 2016-05-19 09:09:52 -06:00
Tim Schaub 025c063251 Less special handling for WMS tiles 2016-05-19 09:09:52 -06:00
Tim Schaub 841c8a5747 Rename source.getKeyParams() to source.getKey() 2016-05-19 09:09:52 -06:00
Tim Schaub 81d5849207 Add a settable key for all tile sources
The source's key is used as the key for all tiles in the source.  For URL tile sources, the URL is the key.
2016-05-19 09:09:52 -06:00
Andreas Hocevar bbd1af6056 Merge pull request #5368 from probins/wfs
Move WFS typedefs to typedefs.js
2016-05-19 14:52:54 +02:00
Frédéric Junod e3f58b3e84 Merge pull request #5369 from Turbo87/patch-2
format/igc: Remove duplicate regex exec() call
2016-05-19 14:48:08 +02:00
Tobias Bieniek d52586d586 format/igc: Remove duplicate regex exec() call
HFDTE_RECORD_RE_.exec(line) has already been called above
2016-05-19 14:35:15 +02:00
Peter Robins 4044ae4cd0 Move WFS typedefs to typedefs.js
By renaming them so they're no longer in any subnamespaces, they no longer need to be in their own file.
2016-05-19 08:48:43 +00:00
Andreas Hocevar be2fc808be Merge pull request #5363 from probins/camels
Convert all typedefs to CamelCase
2016-05-19 09:12:38 +02:00
Frédéric Junod d08cca5a0c Merge pull request #5362 from openlayers/greenkeeper-vector-tile-1.2.1
Update vector-tile to version 1.2.1 🚀
2016-05-19 08:31:37 +02:00
Peter Robins 2117f2e3b1 Convert all typedefs to CamelCase 2016-05-18 19:44:45 +00:00
greenkeeperio-bot 1345d049b1 chore(package): update vector-tile to version 1.2.1
https://greenkeeper.io/
2016-05-18 12:58:43 -06:00
Andreas Hocevar 9f501aeb0e Merge pull request #5352 from marlowp/Issue#5030
Add getResolutions() to ol.View
2016-05-18 18:03:09 +02:00
Andreas Hocevar 8afae37c4c Merge pull request #5359 from probins/notes
Move upgrade notes to correct place
2016-05-18 17:56:30 +02:00
Andreas Hocevar 2bff721227 Merge pull request #5343 from probins/nonapitypedefs
Rename non-api sub-namespace typedefs
2016-05-18 17:34:08 +02:00
Frédéric Junod 7a1756d8a9 Merge pull request #5361 from fredj/maki_url
Fix url to maki icons
2016-05-18 17:05:04 +02:00
Frederic Junod 412dc0457e Fix url to maki icons 2016-05-18 16:48:03 +02:00
Tobias Sauerwein 693e91970e Merge pull request #5358 from tsauerwein/ms-wfs-multiple-types
Handle multiple featureMember elements for different types (WFS format)
2016-05-18 15:12:57 +02:00
Peter Robins 557a3aee04 Move upgrade notes to correct place 2016-05-18 09:35:27 +00:00
tsauerwein 7080c508a4 Handle multiple featureMember elements for different types 2016-05-18 11:26:13 +02:00
Frédéric Junod bc95ec053c Merge pull request #5355 from fredj/navigation-controls_descr
Fix navigation-controls example description
2016-05-18 08:25:54 +02:00
Andreas Hocevar 443d252ec1 Merge pull request #5353 from probins/api
Add API definition to docs landing page
2016-05-17 22:05:12 +02:00
Frédéric Junod 9a83339724 Merge pull request #5356 from openlayers/greenkeeper-rbush-1.4.3
Update rbush to version 1.4.3 🚀
2016-05-17 16:33:16 +02:00
Peter Robins 1a1d55d54e Add API policy to docs landing page 2016-05-17 14:27:12 +00:00
greenkeeperio-bot 57e9e96e5f chore(package): update rbush to version 1.4.3
https://greenkeeper.io/
2016-05-17 08:19:17 -06:00
Frederic Junod 5949170df0 Fix navigation-controls example description 2016-05-17 10:24:21 +02:00
Frédéric Junod 70dd26a412 Merge pull request #5354 from openlayers/greenkeeper-eslint-2.10.2
Update eslint to version 2.10.2 🚀
2016-05-17 08:26:49 +02:00
greenkeeperio-bot 21e8f69d97 chore(package): update eslint to version 2.10.2
https://greenkeeper.io/
2016-05-16 14:40:01 -06:00
Peter Marlow 9b9d006d75 Tests for #getResolutions on ol.View
Created tests for new getResolutions() function on ol.View.
2016-05-15 16:48:09 +01:00
Peter Marlow 350c4d525b Added getResolutions() function to ol.View
New getResolutions() function created for ol.View. This function returns
the array of resolutions passed to the ol.View constructor, or undefined
if none were given.
2016-05-15 16:47:27 +01:00
Andreas Hocevar 1c03814860 Merge pull request #5347 from openlayers/greenkeeper-eslint-2.10.1
Update eslint to version 2.10.1 🚀
2016-05-15 11:46:00 +02:00
greenkeeperio-bot 532275e779 chore(package): update eslint to version 2.10.1
https://greenkeeper.io/
2016-05-14 09:57:15 -06:00
Andreas Hocevar ef52a757b1 Merge pull request #5344 from probins/rasterenum
Remove raster enum from test
2016-05-14 01:53:58 +02:00
Tim Schaub 048865d975 Merge pull request #5329 from tschaub/utfgrid
UTFGrid updates.
2016-05-13 12:59:56 -06:00
Tim Schaub fb402d120e Removing access_token in notes for v3 use 2016-05-13 12:08:59 -06:00
Tim Schaub 5a5ad7ce31 Correct types 2016-05-13 12:08:59 -06:00
Tim Schaub 476191b0d0 Notes on using the v4 Mapbox API 2016-05-13 12:08:59 -06:00
Tim Schaub 94b8c853a7 Use legacy UTFGrid source (which doesn't require a token) 2016-05-13 12:08:59 -06:00
Tim Schaub a810feb257 Test XHR loading 2016-05-13 12:08:58 -06:00
Tim Schaub 5c07628044 Return id if no data is present 2016-05-13 12:08:58 -06:00
Attila Berényi 4c82b3403c Use XHR by default 2016-05-13 12:08:58 -06:00
Peter Robins cce7b148bb Remove raster enum from test 2016-05-13 16:26:26 +00:00
Peter Robins 176ddd3403 Rename non-api sub-namespace typedefs 2016-05-13 10:24:57 +00:00
Andreas Hocevar 4626554a18 Merge pull request #5335 from probins/typedefs
Move typedefs to separate file
2016-05-13 10:23:14 +02:00
Andreas Hocevar 9523fb6edd Merge pull request #5332 from ahocevar/examples-outdated-warning
Warn when viewing an outdated example, and offer a redirect to latest
2016-05-12 19:23:09 +02:00
Andreas Hocevar 31d0278dfb Merge pull request #5342 from ahocevar/fix-source-links
Fix incorrect source links
2016-05-12 18:55:35 +02:00
Andreas Hocevar e74434299e Fix incorrect source links 2016-05-12 18:51:54 +02:00
Andreas Hocevar 3fc70bac00 Merge pull request #5339 from ahocevar/div-instead-of-alert
Use a div instead of alert for version warning
2016-05-12 18:20:56 +02:00
Andreas Hocevar 0d2b833e06 Use a div instead of alert for version warning
With this change, it is also no longer necessary to display the version in the
navigation bar. The accidently removed doctype is also brought back.
2016-05-12 17:13:44 +02:00
Andreas Hocevar 19692ed60a Warn when viewing an outdated example, and offer a redirect to latest 2016-05-12 13:40:48 +02:00
Peter Robins 0daa2cf574 Document typedef move 2016-05-12 07:45:48 +00:00
Peter Robins dd358af0f2 Fix WFS errors by moving typedefs to own file
The WFS typedefs are the only sub-sub-namespace ones which are marked 'api', so cannot be renamed. Moving them to their own file resolves the errors.
2016-05-12 07:31:50 +00:00
Peter Robins ab9ff536f5 Add goog.provides to typedefs.js to prevent compiler warnings
Without this there are 'defined before its owner' warnings, and issues of missing namespaces when compiling code with the library.
2016-05-11 19:51:14 +00:00
Peter Robins c7aeebed8c Rename sub-sub-namespace typedefs to sub-namespace
These sub-sub-namespace typedefs are only used internally; some of them cause problems by creating a form of circular dependency. For example, ol.style.Atlas is created in style/atlasmanager.js; if ol.style.Atlas.Block is in a separate file, ol.style.Atlas is dependent on it, so the new file must precede ol.style.Atlas. However if it precedes it then it has to create the ol.style.Atlas namespace which should be created by atlasmanager.js. To get round this, these typedefs are renamed to remove the sub-sub-namespace.

Fortunately they are all non-api, so the rename should not affect anything.
2016-05-11 19:46:56 +00:00
Peter Robins a1c86ed560 Fix eventTargetLike
This needs a goog.provide and a goog.require in events.js to compile.
2016-05-11 19:46:38 +00:00
Peter Robins 4f0b4dacbd Move sub-namespace typedefs to typedefs.js
Here too there is one problem case.
2016-05-11 19:45:59 +00:00
Peter Robins ed34caa25a Fix ogc/filter
This only compiles if there is goog.provide('ol.Extent') in the typedefs file, and goog.require('ol.Extent') in this file. An alternative is to add an assert statement, but this means an extra dependency.

With this change there is no longer a need for the change to tasks/build.js
2016-05-11 17:18:05 +00:00
Peter Robins 535e8f5e35 Move top-level typedefs to typedefs.js
With one exception, those directly in the `ol` namespace can be moved without problem.
Some left-over goog.requires are also removed.
2016-05-11 17:18:05 +00:00
Frédéric Junod d0e5b1e395 Merge pull request #5320 from fredj/modify_condition
Add a 'condition' option to ol.interaction.Modify
2016-05-11 17:15:41 +02:00
Andreas Hocevar 49e2fd0df3 Merge pull request #5333 from openlayers/improve-comments
Improve code readability with better comments
2016-05-11 16:13:15 +02:00
Andreas Hocevar d59ace1a61 Improve code readability with better comments 2016-05-11 15:46:39 +02:00
Andreas Hocevar d6395a3c82 Merge pull request #5330 from ahocevar/doc-fixes-improvements
Fix source links, display version and warn about outdated docs
2016-05-11 13:00:41 +02:00
Andreas Hocevar d27ea0974e Fix source links, display version and warn about outdated docs 2016-05-11 12:45:58 +02:00
Frederic Junod b49546d2af Add a 'condition' option to ol.interaction.Modify 2016-05-10 17:17:17 +02:00
Andreas Hocevar 8c8c4c3df4 Merge pull request #5324 from probins/rmrequires
Remove unneeded goog.provides/requires for typedefs
2016-05-10 16:31:42 +02:00
Tim Schaub fa067b7e8a Merge pull request #5328 from tschaub/node-6
Use Node 6 on Travis.
2016-05-10 06:58:37 -06:00
Andreas Hocevar c4387c14ff Merge pull request #5313 from ahocevar/rastersource-framestate-extent
Rastersource framestate extent
2016-05-10 14:35:25 +02:00
Tim Schaub afcaa2ea51 Use Node 6 on Travis 2016-05-10 05:52:41 -06:00
Tobias Sauerwein e55dc30257 Merge pull request #5326 from tsauerwein/example-clean-up
Fix wording in tile-load-event example
2016-05-10 11:39:25 +02:00
Andreas Hocevar cb50e4a102 Merge pull request #5327 from openlayers/greenkeeper-closure-util-1.13.1
Update closure-util to version 1.13.1 🚀
2016-05-10 11:15:41 +02:00
greenkeeperio-bot 7d805393fc chore(package): update closure-util to version 1.13.1
https://greenkeeper.io/
2016-05-10 02:39:51 -06:00
tsauerwein 684d49cb78 Fix wording 2016-05-10 10:21:44 +02:00
Peter Robins 2a44669e18 Add some goog.requires to keep compiler happy 2016-05-09 16:00:07 +00:00
Andreas Hocevar 39087b2fa4 Reuse the frameState extent 2016-05-09 15:23:00 +02:00
Andreas Hocevar 5c76cb01af Use a snapshot of the frameState extent 2016-05-09 15:23:00 +02:00
Peter Robins f57065c412 Remove unneeded goog.provides/requires for typedefs
In general, typedefs do not need and should not have goog.require/provide
2016-05-09 13:21:25 +00:00
Tim Schaub e94939d01b Merge pull request #5289 from openlayers/greenkeeper-fs-extra-0.30.0
Update fs-extra to version 0.30.0 🚀
2016-05-09 06:42:20 -06:00
Tim Schaub 56a365acf4 Merge pull request #5319 from probins/patch-1
Remove outdated fixme from framestate.js.
2016-05-09 06:41:01 -06:00
Andreas Hocevar fbb9194923 Merge pull request #5274 from samuellapointe/logofix
Allow using elements in logo attribution options
2016-05-09 13:46:11 +02:00
Peter Robins ffe8daec66 Remove outdated fixme from framestate.js 2016-05-09 09:18:56 +01:00
Bart van den Eijnden 7984cc2b57 Merge pull request #5162 from probins/strategy
Improve docs/examples for loadingstrategy
2016-05-09 09:43:25 +02:00
greenkeeperio-bot 7944144c65 chore(package): update fs-extra to version 0.30.0
https://greenkeeper.io/
2016-05-09 01:08:25 -06:00
Frédéric Junod ae46b40def Merge pull request #5314 from openlayers/greenkeeper-browserify-13.0.1
Update browserify to version 13.0.1 🚀
2016-05-09 09:08:11 +02:00
Andreas Hocevar ed421ce4b2 Merge pull request #5315 from probins/tilecoordtransformtype
Remove unused ol.TileCoordTransformType
2016-05-07 12:06:57 +01:00
Peter Robins 51397ee294 Remove unused ol.TileCoordTransformType 2016-05-07 10:35:11 +00:00
greenkeeperio-bot d316651c35 chore(package): update browserify to version 13.0.1
https://greenkeeper.io/
2016-05-06 09:48:53 -04:00
Tim Schaub ff37fe128f Merge pull request #5310 from tschaub/fix-raster
Get raster sources working again.
2016-05-04 14:25:02 -04:00
Andreas Hocevar 72468f3470 Merge pull request #5291 from ahocevar/dispatch-while-dispatching-once-listener
Allow once listeners to dispatch events of same type
2016-05-04 12:10:21 -04:00
Andreas Hocevar b2c6bb11cf Allow once listeners to dispatch events of same type 2016-05-04 11:55:30 -04:00
Frédéric Junod 088c439c34 Merge pull request #5309 from openlayers/greenkeeper-metalsmith-layouts-1.6.5
Update metalsmith-layouts to version 1.6.5 🚀
2016-05-04 08:32:16 +02:00
Tim Schaub 0b4ef31750 Get raster sources working again
This reverts 8e1ffbf91e
2016-05-03 17:47:05 -04:00
greenkeeperio-bot f3cc873d65 chore(package): update metalsmith-layouts to version 1.6.5
https://greenkeeper.io/
2016-05-03 11:34:34 -04:00
Frédéric Junod b1648c949e Merge pull request #5052 from openlayers/greenkeeper-fs-extra-0.26.7
Update fs-extra to version 0.26.7 🚀
2016-05-03 15:04:48 +02:00
Tobias Sauerwein 18520cd89d Merge pull request #5306 from gberaudo/unrequire_padding
Make olx.view.FitOptions.padding optional
2016-05-03 13:58:28 +02:00
Guillaume Beraudo e2b2004aa4 Make olx.view.FitOptions.padding optional
Makes it consistent with other attributes.
2016-05-03 13:44:58 +02:00
Frédéric Junod a6a0c88641 Merge pull request #5302 from fredj/rm_goog.partial
Remove use of goog.partial
2016-05-03 08:30:00 +02:00
greenkeeperio-bot 54e1e3408b chore(package): update fs-extra to version 0.26.7
https://greenkeeper.io/
2016-05-03 00:29:33 -06:00
Frédéric Junod 9ea297c54f Merge pull request #5304 from openlayers/greenkeeper-sinon-1.17.4
Update sinon to version 1.17.4 🚀
2016-05-03 08:29:18 +02:00
greenkeeperio-bot 5044c49ac3 chore(package): update sinon to version 1.17.4
https://greenkeeper.io/
2016-05-02 11:20:11 -06:00
Samuel Lapointe f835d86333 Reduce closure dependency, fix GET issue 2016-05-02 09:34:58 -04:00
Frederic Junod 7c15280e81 Remove use of goog.partial
Use Function.prototype.bind instead, see:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Partially_applied_functions_(currying)
2016-05-02 14:52:09 +02:00
Frédéric Junod 9f3c951c71 Merge pull request #4644 from fredj/rm_check-requires
Remove check-requires script
2016-05-02 09:52:39 +02:00
Frederic Junod 6abecb0192 Remove check-requires script
The missingProvide and missingRequire compiler checks are already checking
if the goog.require and goog.provide are correct.
2016-05-02 09:29:42 +02:00
Marc Jansen 4e17f58b26 Merge pull request #5298 from openlayers/greenkeeper-eslint-2.9.0
Update eslint to version 2.9.0 🚀
2016-04-29 22:33:29 +02:00
greenkeeperio-bot 15b6921bc9 chore(package): update eslint to version 2.9.0
https://greenkeeper.io/
2016-04-29 11:24:56 -06:00
Andreas Hocevar c7898bcb0e Merge pull request #5296 from probins/patch-1
Document handling of KML MultiGeometries
2016-04-29 12:04:18 +02:00
Peter Robins c28fd2ae1c Document handling of KML MultiGeometries 2016-04-29 10:56:43 +01:00
Andreas Hocevar 690ef18ee2 Merge pull request #5293 from giohappy/master
Block removePoint while dragging
2016-04-29 10:46:40 +02:00
giohappy cd2ea6c7d6 Block removePoint during while dragging 2016-04-29 09:00:14 +02:00
Marc Jansen 36b8f31f40 Merge pull request #5285 from marcjansen/scaleline-tests
Add more tests for the scaleline control
2016-04-28 13:23:50 +02:00
Andreas Hocevar 0151d802d3 Merge pull request #5287 from ahocevar/vectortile-tests
Add and fix vectortile tests
2016-04-28 13:07:29 +02:00
Andreas Hocevar a54c686691 Merge pull request #5288 from giohappy/master
Expose removeVertex_ as removePoint
2016-04-28 13:01:11 +02:00
Andreas Hocevar ebc28aefd4 Add and fix vectortile tests 2016-04-28 12:57:27 +02:00
giohappy d49bcdeedc Expose removeVertex_ as removePoint 2016-04-28 12:47:46 +02:00
Andreas Hocevar 2939ebc9b9 Merge pull request #5286 from ahocevar/only-render-whats-necessary
Skip unnecessary render functions
2016-04-28 11:18:35 +02:00
Andreas Hocevar c17e23f2ae Skip unnecessary render functions 2016-04-28 10:22:20 +02:00
Marc Jansen 73a04c14f5 Add more tests for the scaleline control 2016-04-28 10:04:52 +02:00
Andreas Hocevar 88d20a69ad Merge pull request #5177 from ahocevar/vector-tile-hybrid-rendering
Add render options for vector tile layers
2016-04-28 09:04:45 +02:00
Frédéric Junod 138fe6ede1 Merge pull request #5278 from fredj/cleanup
Fix invalid generics type instantiation
2016-04-28 08:27:15 +02:00
Andreas Hocevar 12849a678e Add note about opaque option removal 2016-04-27 17:50:38 +02:00
Andreas Hocevar c72a39ff53 Coding style fixes 2016-04-27 17:33:55 +02:00
Andreas Hocevar ec832243a2 Add comment making clear that 'vector' mode does not generate images 2016-04-27 17:31:20 +02:00
Andreas Hocevar c5f81a5706 Unconditionally call drawImage - image is always available 2016-04-27 17:31:20 +02:00
Frederic Junod 664507b79b Fix invalid generics type instantiation 2016-04-27 14:51:31 +02:00
Andreas Hocevar c3217e8d30 Merge pull request #5044 from fblackburn/snapinteraction
Snap interaction now handle feature without geometry properly
2016-04-27 14:25:17 +02:00
Frédéric Junod e3e0d23a83 Merge pull request #5277 from fredj/cleanup
Type cleanup
2016-04-27 13:24:05 +02:00
Frederic Junod 6002d4c3e8 Remove duplicate type in type annotation 2016-04-27 12:24:01 +02:00
Frederic Junod 63ebed437b Don't use the string constructor 2016-04-27 12:22:43 +02:00
Andreas Hocevar 762aa3029c Merge pull request #5275 from ahocevar/fix-select-getlayer
Fix feature-layer association on replaced selections
2016-04-27 10:40:43 +02:00
Tobias Sauerwein 1ca28506ac Merge pull request #5252 from tsauerwein/wfs-getfeature-filter
Add filter option to ol.format.WFS#writeGetFeature
2016-04-27 09:11:55 +02:00
Andreas Hocevar c11e95099c Fix feature-layer association on replaced selections 2016-04-27 08:13:45 +02:00
Samuel Lapointe 3a1ff59cfb Allow using elements in logo attribution options
This commit lets the user use an element object instead of a {src: href} object for an attribution logo when creating a map. This opens a lot of possibilities for that logo, for example setting the target to force the logo to open in a new tab when clicked.
2016-04-26 15:30:09 -04:00
Francois Blackburn 9186d1fbda Snap interaction now handle feature without geometry properly 2016-04-26 14:14:47 -04:00
tsauerwein 2f72804fc3 Add example for writeGetFeature 2016-04-26 16:36:57 +02:00
tsauerwein af294bd44e Add filter option to ol.format.WFS#writeGetFeature 2016-04-26 16:36:50 +02:00
Andreas Hocevar ed6ac93222 Merge pull request #5264 from matjos/master
Fix for close draw polygon error
2016-04-26 10:52:28 +02:00
Mattias Josefsson 8f96251618 Added wanted change for issue #5145 2016-04-26 10:34:55 +02:00
Andreas Hocevar 343f41e99e Merge pull request #5267 from ahocevar/no-goog-functions
Use ol.functions instead of goog.functions
2016-04-25 16:03:31 +02:00
Andreas Hocevar 255e449dd3 Merge pull request #5266 from ahocevar/colorlike-doc
Document ol.colorlike
2016-04-25 15:53:57 +02:00
Andreas Hocevar b37cd3fae6 Use ol.functions instead of goog.functions 2016-04-25 15:46:00 +02:00
Andreas Hocevar d425f75bea Merge pull request #5261 from giohappy/master
add finishCondition to ol.interaction.Draw
2016-04-25 15:42:39 +02:00
Andreas Hocevar 989c04cf12 Document ol.colorlike 2016-04-25 15:33:46 +02:00
Mattias Josefsson e85d8fa749 Fix for close draw polygon error 2016-04-25 11:48:55 +02:00
giohappy 394ef94fd3 Fix finishCondition test 2016-04-22 23:17:21 +02:00
giohappy 5934f9d416 add olx.interaction.DrawOptions.prototype.finishCondition to typedef 2016-04-22 15:21:11 +02:00
giohappy ead6063170 make lint happy with drawinteraction.test.js 2016-04-22 15:16:11 +02:00
giohappy c7af6bd494 Add ol.interaction.Draw.finishCondition to olx.js 2016-04-22 15:11:54 +02:00
giohappy 2076ef02ca Add test for finishCondition 2016-04-22 15:07:59 +02:00
giohappy 130b4d9459 add finishCondition to ol.interaction.Draw 2016-04-22 11:07:42 +02:00
Andreas Hocevar 60926626df Merge pull request #5259 from ahocevar/squash-changelog
Include squash commit merges in changelog
2016-04-22 09:36:46 +02:00
Andreas Hocevar 405ed2af56 Include squash commit merges in changelog 2016-04-21 16:20:03 +02:00
Andreas Hocevar 44f09497f0 Merge pull request #5257 from bjornharrtell/mvt-api
Add readFeatures and readProjection as MVT experimental API
2016-04-21 15:38:45 +02:00
Björn Harrtell c40993d0d3 Add readFeatures and readProjection as MVT experimental API 2016-04-21 14:16:06 +02:00
Anna Lambrechtsen 18a29ea6d3 Add ol.source.ImageArcGISRest (#3880)
* Add ol.source.ImageArcGISRest

ol.source.ImageArcGISRest is added so a single image can be retrieved
which is required when labelling is applied to the underlying map
service.
it's based on the approach used in ol.source.ImageWMS

* updating to remove as many good references as possible
changing so js passes lint checks

* fixing up so build and tests run

* putting back what was lost in the merge

* adding in an example
tidying up
2016-04-20 11:19:53 +02:00
Andreas Hocevar f7147960a9 Add render options for vector tile layers 2016-04-19 13:04:38 +02:00
Tim Schaub 0e4692e69e Merge pull request #5239 from openlayers/greenkeeper-eslint-2.8.0
Update eslint to version 2.8.0 🚀
2016-04-16 08:48:53 -06:00
greenkeeperio-bot 3de5a021a9 chore(package): update eslint to version 2.8.0
http://greenkeeper.io/
2016-04-15 12:02:15 -06:00
Frédéric Junod b7278f184c Merge pull request #5230 from fredj/reuse_frameState
Reuse frame state arrays
2016-04-14 14:57:30 +02:00
Frédéric Junod e46c8370d5 Merge pull request #5213 from fredj/rm_ol.source.Source.prototype.setProjection
Remove unused ol.source.Source#setProjection function
2016-04-14 12:43:14 +02:00
Frédéric Junod dca7d6fc8f Merge pull request #5223 from fredj/memory
Create tmpSize_ before calling calculateTileRanges_
2016-04-14 12:43:01 +02:00
Frédéric Junod db9dbc96b2 Merge pull request #5225 from fredj/rm_ol.extent.transform2D
Remove unused ol.extent.transform2D function
2016-04-14 12:42:48 +02:00
Tim Schaub 2496662070 Merge pull request #5212 from probins/kmlwrite
KML: fix GeometryCollection write
2016-04-14 04:27:18 -06:00
Frédéric Junod 8e3e47bed4 Merge pull request #5228 from adube/translate-layers-filter
Add 'layers' option to Translate interaction
2016-04-14 10:44:34 +02:00
Frederic Junod 92c96b95f9 Reuse the frame state viewHints array if defined 2016-04-14 10:36:12 +02:00
Frederic Junod 8e1ffbf91e Reuse the frame state extent array if defined 2016-04-14 10:32:10 +02:00
Frédéric Junod 8562c9a4fc Merge pull request #5221 from fredj/examples_deps_update
Update jquery, bootstrap and proj4js in examples
2016-04-14 08:35:35 +02:00
Frédéric Junod 400204357f Merge pull request #5227 from fredj/less_garbage
Add a temporary ol.TileCoord in ol.renderer.canvas.TileLayer
2016-04-14 08:33:40 +02:00
Alexandre Dubé e6e9b12bac Add 'layers' option to Translate interaction 2016-04-13 13:35:36 -04:00
Frederic Junod a2c3dfd5de Add a temporary ol.TileCoord in ol.renderer.canvas.TileLayer
Avoid garbage creation
2016-04-13 17:21:10 +02:00
Frederic Junod 72e354dce3 Remove unused ol.extent.transform2D function 2016-04-13 17:18:57 +02:00
Frédéric Junod f92a38b28c Merge pull request #5222 from fredj/unused_vars
Remove unused private variables in ol.renderer.canvas.Map
2016-04-13 17:15:52 +02:00
Frédéric Junod c15f8c8f07 Merge pull request #5220 from fredj/externs_cleanup
Externs cleanup
2016-04-13 17:15:32 +02:00
Frédéric Junod de4e51efe8 Merge pull request #5224 from fredj/fix_indent
Fix jsdoc tags indentation
2016-04-13 17:15:00 +02:00
Tim Schaub d4ac5800d5 Merge pull request #5218 from aisaacs/export-cartodb-setconfig
Add @api annotation to setConfig.
2016-04-13 09:11:12 -06:00
Frederic Junod 9507020218 Fix jsdoc tags indentation 2016-04-13 15:13:50 +02:00
Frederic Junod ccfc3f7798 Create tmpSize_ before calling calculateTileRanges_ 2016-04-13 12:19:00 +02:00
Frederic Junod 593132c902 Remove unused private variables in ol.renderer.canvas.Map 2016-04-13 10:54:11 +02:00
Frederic Junod 6a6a906e83 Update proj4js to version 2.2.14 2016-04-13 09:28:26 +02:00
Frederic Junod ed4ac8d83b Update jquery to version 2.2.3 2016-04-13 09:25:37 +02:00
Frederic Junod 35f0928802 Update bootstrap to version 3.3.6 2016-04-13 09:21:20 +02:00
Frederic Junod 044f6638ea Remove externs/jspdf.js and add NOCOMPILE to examples/export-pdf.js 2016-04-13 09:00:02 +02:00
Frederic Junod 936d38ca6f Remove unused externs/webgl-debug.js 2016-04-13 08:56:29 +02:00
Alessandro Isaacs 737daaeea9 Add @api annotation to setConfig 2016-04-12 08:26:30 -07:00
Frédéric Junod 01a6612ab3 Merge pull request #5215 from fredj/getClosestFeatureToCoordinate_filter
Add an optional feature filter to getClosestFeatureToCoordinate
2016-04-12 12:44:11 +02:00
Frederic Junod 05ceaab620 Add an optional feature filter to getClosestFeatureToCoordinate 2016-04-12 12:17:07 +02:00
Frederic Junod f9fd73c44e Remove unused ol.source.Source#setProjection function 2016-04-11 15:43:25 +02:00
Peter Robins 27f20e2f54 KML: fix GeometryCollection write 2016-04-11 12:36:07 +00:00
Frédéric Junod 50b956b108 Merge pull request #5132 from nicholas-l/removeGoogString
Remove goog.string
2016-04-11 10:28:32 +02:00
Frédéric Junod 33db3d4941 Merge pull request #5206 from probins/patch-1
Minor correction of StyleFunction docs
2016-04-11 09:42:57 +02:00
Frédéric Junod 06ac1b603c Merge pull request #4932 from fredj/undef_WMSGetFeatureInfo
Remove undefined parameters to ol.format.WMSGetFeatureInfo#readFeatures_
2016-04-11 08:41:43 +02:00
Frédéric Junod fb96ed94ec Merge pull request #5207 from openlayers/greenkeeper-clean-css-3.4.12
Update clean-css to version 3.4.12 🚀
2016-04-11 08:41:06 +02:00
greenkeeperio-bot 664efa18fc chore(package): update clean-css to version 3.4.12
http://greenkeeper.io/
2016-04-09 09:30:50 -06:00
Peter Robins 2a64d9ef55 Minor correction of StyleFunction docs 2016-04-08 18:35:16 +01:00
Andreas Hocevar 1ecd47aeb9 Merge pull request #5201 from probins/patch-2
Small clarification for vector source loader docs
2016-04-08 12:17:03 +02:00
Bart van den Eijnden bb5b461192 Merge pull request #5200 from bartvde/issue-5199
Fix typo in rotate control for css classList
2016-04-08 11:01:09 +02:00
Peter Robins 9fb4a88841 Small clarification for vector source loader docs 2016-04-08 09:52:54 +01:00
Bart van den Eijnden 231234f9d0 Fix typo in rotate control for css classList 2016-04-08 10:51:26 +02:00
nicholas c92223d792 Remove Goog.string 2016-04-08 18:09:57 +12:00
Nicholas Latham cd6494149b Remove goog.global (#5178)
* Remove goog.global

* Correct externs location

* Use Function('return this')

* Remove global externs
2016-04-07 23:36:48 +02:00
Andreas Hocevar 6efd3dab0b Add rendering tests to ensure correct circle and polygon rendering (#5189) 2016-04-07 18:03:57 +02:00
Frédéric Junod 935eb9994c Merge pull request #5192 from openlayers/release-v3.15.1
Release 3.15.1
2016-04-07 16:55:15 +02:00
Frederic Junod cd32875f37 Update package version to 3.15.1 2016-04-07 16:50:59 +02:00
Frédéric Junod 6fc4427f4f Merge pull request #5191 from openlayers/release-v3.15.1
Release v3.15.1
2016-04-07 16:50:11 +02:00
Frederic Junod 481bcbd5b3 Changelog for v3.15.1 2016-04-07 16:34:17 +02:00
Andreas Hocevar 880d4b89a2 Revert "Batch polygon fill and stroke instructions" 2016-04-07 16:31:08 +02:00
Andreas Hocevar fe33910ec2 Revert "Batch polygon fill and stroke instructions" 2016-04-07 16:30:04 +02:00
Frédéric Junod c9ffcef766 Merge pull request #5183 from openlayers/greenkeeper-istanbul-0.4.3
Update istanbul to version 0.4.3 🚀
2016-04-07 13:44:03 +02:00
greenkeeperio-bot 8c9ac5932f chore(package): update istanbul to version 0.4.3
http://greenkeeper.io/
2016-04-07 12:15:38 +02:00
Frédéric Junod 6be704af69 Merge pull request #5187 from fredj/rm_goog.functions
Remove goog.functions.and from ol.interaction.Modify
2016-04-07 12:14:58 +02:00
Frederic Junod c549fadc01 Remove goog.functions.and from ol.interaction.Modify 2016-04-07 11:46:52 +02:00
Frederic Junod e099dcd9a9 Simplify ol.interaction.KeyboardPan#defaultCondition_
No need to invoke the function with 'call'
2016-04-07 11:44:23 +02:00
Renaud Michaëlis 53a9341ef0 Allow to delete the starting or ending vertex
* Allow to delete the starting or ending vertex

* Test if starting and ending vertex are removed
2016-04-06 13:47:37 +02:00
Nicholas Latham 18e9ff98ee Remove goog.labs.userAgent
* Remove goog.labs.*

* Change to function

* Change window to this

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

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

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

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

github issue #4867 (https://github.com/openlayers/ol3/issues/4867)
2016-02-25 08:05:56 +01:00
Frederic Junod 81e563b2b3 Remove use of goog.style.getRelativePosition
Use Element.getBoundingClientRect() and Event.clientX/Event.clientY instead.
2016-02-24 17:28:46 +01:00
Frédéric Junod 68088341d6 Merge pull request #4908 from fredj/rm_goog.math.Rect
Remove use of goog.math.Rect
2016-02-24 17:15:44 +01:00
Frederic Junod 348f61951c Add ol.renderer.dom.VectorLayer#clearFrame 2016-02-24 16:13:35 +01:00
Frederic Junod 48064306a1 Remove use of goog.math.Rect 2016-02-24 14:32:58 +01:00
Frederic Junod 373393dce7 Add missing 'private' jsdoc tag 2016-02-24 14:32:57 +01:00
Frédéric Junod bd5c85acc3 Merge pull request #4900 from fredj/ol.format.XML_struct
Make ol.format.XML a @struct
2016-02-24 14:24:39 +01:00
Frédéric Junod 8a6afb3836 Merge pull request #4880 from openlayers/greenkeeper-closure-util-1.11.0
Update closure-util to version 1.11.0 🚀
2016-02-24 14:18:01 +01:00
Frédéric Junod d8d7ae8e1b Merge pull request #4905 from fredj/rm_goog.style.setPosition
Remove use of goog.style.setPosition
2016-02-24 14:17:36 +01:00
Frederic Junod 805b81cea7 Remove use of goog.style.setPosition
Use element.style.left and element.style.top instead
2016-02-24 12:23:10 +01:00
Frédéric Junod 514243a8e9 Merge pull request #4879 from openlayers/greenkeeper-metalsmith-layouts-1.6.4
Update metalsmith-layouts to version 1.6.4 🚀
2016-02-24 12:05:02 +01:00
Andreas Hocevar 37113837d1 Merge pull request #4901 from openlayers/release-v3.14.0
Release v3.14.0
2016-02-24 09:53:01 +01:00
Andreas Hocevar 73d4c3565c Update package version to 3.14.0 2016-02-24 09:51:15 +01:00
Andreas Hocevar cc30f5f3da Changelog for v3.14.0 2016-02-24 09:50:45 +01:00
Frédéric Junod 8395bea72d Merge pull request #4899 from fredj/srsName
Use ol.format.GMLBase#srsName instead of undeclared srsName_
2016-02-24 09:43:49 +01:00
Frederic Junod ac17a2f2a7 Make ol.format.XML a @struct
And replace the undeclared `this.version` by a local variable.
2016-02-24 09:25:41 +01:00
Frederic Junod a365f185cc Use ol.format.GMLBase#srsName instead of undeclared srsName_
The variable was changed from private to protected in 8182396
2016-02-24 09:20:22 +01:00
greenkeeperio-bot 7e7d8ac4e2 chore(package): update closure-util to version 1.11.0
- Remove closure-util.json, we're now using the same library version as closure-util
 - Disable analyzerChecks errors from closure-compiler
 - Remove WheelEvent constants from externs (fixed upstream)
 - Activate the unnecessaryCasts compiler check
2016-02-24 09:02:25 +01:00
Andreas Hocevar 4e11a86b4e Merge pull request #4896 from ahocevar/xml-ignore-order
Ignore XML sequence when comparing GML
2016-02-24 08:59:30 +01:00
Frédéric Junod 9f21f1dac4 Merge pull request #4890 from fredj/kmlformat_cleanup
ol.format.KML cleanup
2016-02-24 08:47:29 +01:00
Frederic Junod d0f71bf64f Remove old fixme 2016-02-24 08:37:30 +01:00
Frederic Junod 950bb1810c Remove unneeded type cast 2016-02-24 08:37:30 +01:00
Frederic Junod 81d0e9ea63 Use get(key) instead of getProperties()[key] 2016-02-24 08:37:30 +01:00
Tim Schaub 4b55175b7e Merge pull request #4894 from tschaub/raster-tests
Only run raster operations after image sources have loaded.
2016-02-23 16:10:07 -07:00
Andreas Hocevar cdf9eda132 Ignore element order for FeatureCollection round trip 2016-02-23 23:36:12 +01:00
Andreas Hocevar 7a953a166e Add option to ignore element order in xmleq 2016-02-23 23:35:53 +01:00
Andreas Hocevar f2d5d572ab Only composeFrame when prepareFrame prepared something to render 2016-02-23 13:56:39 -07:00
Tim Schaub 02904cda8e Guard against handlers handling events after done 2016-02-23 13:13:15 -07:00
Tim Schaub 24b7b27836 Listen once when calling done 2016-02-23 13:10:47 -07:00
Tim Schaub 9da8cd890e Simpler alias 2016-02-23 13:06:38 -07:00
Tim Schaub eaab8e47ce More cleanup 2016-02-23 12:57:39 -07:00
Tim Schaub b440872e60 Less crazy indentation 2016-02-23 12:50:33 -07:00
Tim Schaub 247eb62e3b Avoid shadowing 2016-02-23 12:48:27 -07:00
Andreas Hocevar 960c51f95d Merge pull request #4892 from ahocevar/fix-edge
Stricter check for ImageData constructor
2016-02-23 19:58:51 +01:00
Andreas Hocevar 8e489304c1 Stricter check for ImageData constructor 2016-02-23 19:43:06 +01:00
Andreas Hocevar 2df40f4b88 Merge pull request #4891 from ahocevar/fix-ie9-tests
Fix tests so they all pass in IE9
2016-02-23 18:52:18 +01:00
Andreas Hocevar c2d4bf113d Fix tests so they all pass in IE9 2016-02-23 18:21:22 +01:00
Andreas Hocevar 806588edc6 Merge pull request #4889 from ahocevar/ie9-polyfill
Use requestAnimation polyfill for examples and update release notes
2016-02-23 16:07:23 +01:00
Andreas Hocevar ad6c731823 Use requestAnimation polyfill for examples and update release notes 2016-02-23 15:56:03 +01:00
Andreas Hocevar 17749dbf96 Merge pull request #4887 from ahocevar/jsonp-test
Use less aggressive DOM function overrides
2016-02-23 14:27:14 +01:00
Andreas Hocevar a8c6baa188 Use less aggressive DOM function overrides 2016-02-23 14:14:49 +01:00
Frédéric Junod ef63908539 Merge pull request #4885 from fredj/non-null_divs
Mark overlayContainer and overlayContainerStopEvent as non-nullable
2016-02-23 13:47:58 +01:00
Frédéric Junod d642fe6783 Merge pull request #4884 from fredj/isFinite
Remove use of goog.math.isFiniteNumber()
2016-02-23 11:29:16 +01:00
Frederic Junod 268d6eda8f Mark overlayContainer and overlayContainerStopEvent as non-nullable
And remove an unnecessary cast
2016-02-23 11:25:38 +01:00
Frederic Junod 84288cd8bb Remove use of goog.math.isFiniteNumber()
This replaces `goog.math.isFiniteNumber()` with `isFinite()`.
2016-02-23 10:03:44 +01:00
Frédéric Junod 996e119b25 Merge pull request #4881 from openlayers/greenkeeper-jquery-2.2.1
Update jquery to version 2.2.1 🚀
2016-02-23 08:51:27 +01:00
greenkeeperio-bot 345763fcd3 chore(package): update metalsmith-layouts to version 1.6.4
http://greenkeeper.io/
2016-02-23 08:50:58 +01:00
greenkeeperio-bot f54a8ea432 chore(package): update jquery to version 2.2.1
http://greenkeeper.io/
2016-02-22 12:19:08 -07:00
Frédéric Junod 5b21d61688 Merge pull request #4780 from fredj/update_compiler
Adapt the code for the new closure-compiler version
2016-02-22 15:31:11 +01:00
Frederic Junod 1f04495dc3 Change layers type to Object in reprojection example 2016-02-22 10:05:05 +01:00
Frederic Junod 8373814243 Remove unused goog.log logger from ol.renderer.webgl.Map 2016-02-22 10:02:15 +01:00
Frederic Junod d7c0aa4887 Add missing ol.render.Feature type annotation
Leftover from #4219
2016-02-22 10:02:15 +01:00
Frederic Junod e6c2fa52f5 Remove unneeded type cast 2016-02-22 10:02:15 +01:00
Frederic Junod 17b667d6e0 Add missing type casts for goog.partial 2016-02-22 10:02:15 +01:00
Andreas Hocevar 81750ea6b1 Merge pull request #3453 from bjornharrtell/set-multi
Consider multi in add/remove/toggle select logic
2016-02-22 09:49:00 +01:00
Tobias Sauerwein 12b8624cdb Merge pull request #4876 from tsauerwein/drag-n-drop-target
Add `target` property to Drag&Drop interaction
2016-02-22 09:36:50 +01:00
Björn Harrtell a546e09b96 Merge branch 'master' into set-multi 2016-02-22 09:30:25 +01:00
tsauerwein 1e8bbb0ae4 Add target property to drag&drop interaction 2016-02-22 09:25:30 +01:00
Andreas Hocevar 6c7d6817bd Merge pull request #4854 from ahocevar/fix-select-and-everything-that-relies-on-unmanaged-layers-and-skipped-features-this-time-for-real---hopefully
Always report skipped feature hits for the original layer
2016-02-22 09:23:28 +01:00
Tim Schaub 8e72eb8652 Merge pull request #4877 from openlayers/greenkeeper-eslint-2.2.0
Update eslint to version 2.2.0 🚀
2016-02-19 13:52:53 -07:00
greenkeeperio-bot 308e37a48e chore(package): update eslint to version 2.2.0
http://greenkeeper.io/
2016-02-19 11:02:24 -07:00
Frédéric Junod 82f6fb9e6d Merge pull request #4870 from fredj/gc
Reuse dragListenerKeys_ local variable
2016-02-19 15:54:29 +01:00
Petr Sloup 1d21f76ad3 Merge pull request #4721 from klokantech/raster-reproj-gutter
Fix reprojection of raster sources with gutter
2016-02-19 12:25:24 +01:00
Petr Sloup 59574da74c Fix reprojection of raster sources with gutter 2016-02-19 12:17:03 +01:00
Bart van den Eijnden ccf47de448 Merge pull request #4874 from bartvde/wfst-empty-update
Assert we have a feature id
2016-02-19 10:01:56 +01:00
Bart van den Eijnden 84b418b5c6 Assert we have a feature id 2016-02-19 09:41:13 +01:00
Petr Sloup 7b8feaa48f Merge pull request #4869 from klokantech/improve-reproj-precision
Improve precision of ol.reproj.render
2016-02-19 09:14:32 +01:00
Frederic Junod 612280c676 Fix variable declaration in constructor 2016-02-18 16:38:09 +01:00
Frederic Junod 35579ab714 Reuse dragListenerKeys_ local variable
Reuse the array instead of recreating a new one.
2016-02-18 16:26:04 +01:00
Petr Sloup 83e251621a Improve precision of ol.reproj.render 2016-02-18 16:25:12 +01:00
Andreas Hocevar 6e7b130a45 Merge pull request #4866 from ahocevar/requestanimationframe-polyfill
Use requestAnimationFrame polyfill (for IE9)
2016-02-18 11:42:39 +01:00
Andreas Hocevar 69aa277848 Use requestAnimationFrame polyfill (for IE9) 2016-02-18 11:30:58 +01:00
Frédéric Junod a9675576d3 Merge pull request #4863 from fredj/rm_goog.dom
Remove use of goog.dom.createElement
2016-02-18 11:07:23 +01:00
Frédéric Junod 38e43e018c Merge pull request #4864 from fredj/rm_goog.dom.getElementsByClass
Use querySelectorAll instead of goog.dom.getElementsByClass
2016-02-18 11:06:55 +01:00
Andreas Hocevar 7cc43d36ef Merge pull request #4597 from ahocevar/direct-render
Render tiles directly to the map canvas
2016-02-18 11:06:34 +01:00
Frederic Junod 9cb86df61c Use querySelectorAll instead of goog.dom.getElementsByClass 2016-02-18 10:03:38 +01:00
Frederic Junod 00fbb77c19 Remove use of goog.dom.createElement 2016-02-18 09:55:36 +01:00
Andreas Hocevar 2d2ebe0e12 Merge pull request #4862 from ahocevar/osgeo-badge
Add OSGeo badge
2016-02-18 09:53:59 +01:00
Andreas Hocevar 92da3629d7 Add OSGeo badge 2016-02-18 09:47:45 +01:00
Björn Harrtell 7822f5ce5d Consider multi in add/remove/toggle select logic 2016-02-17 13:18:06 +01:00
Björn Harrtell f77480ec28 Add tests excercising the add/remove/toggle select logic with and without multi 2016-02-17 13:15:45 +01:00
Björn Harrtell 2d6ce527e2 Merge branch 'fix-select-and-everything-that-relies-on-unmanaged-layers-and-skipped-features-this-time-for-real---hopefully' into set-multi 2016-02-17 13:07:24 +01:00
Frédéric Junod 9baa296a49 Merge pull request #4845 from gberaudo/fix_geolocation_error_type
Fix geolocation error cast
2016-02-17 11:02:30 +01:00
Marc Jansen f36c02b0b8 Merge pull request #4851 from marcjansen/rm-goog-isboolean
Don't use goog.isBoolean()
2016-02-17 10:58:09 +01:00
Andreas Hocevar 5bc00d8535 Continue passing null instead of unmanaged layer to forEachFeatureAtCoordinate 2016-02-17 08:59:45 +01:00
Andreas Hocevar 9f0fefd42d Hit-detect skipped features, but not on unmanaged layer 2016-02-17 00:54:31 +01:00
Marc Jansen 068960e4b2 Don't use goog.isBoolean() 2016-02-16 23:52:20 +01:00
Marc Jansen 6276bbce38 Merge pull request #4852 from marcjansen/rm-goog-isstring
Don't use goog.isString()
2016-02-16 23:51:22 +01:00
Marc Jansen 5e4e9100e4 Don't use goog.isString() 2016-02-16 23:37:38 +01:00
Marc Jansen c836f97ec3 Merge pull request #4849 from openlayers/logo-doc-minor
Fix docs of LogoOptions.prototype.src
2016-02-16 16:46:27 +01:00
Marc Jansen e8ed9c7e49 Fix docs of LogoOptions.src 2016-02-16 16:36:02 +01:00
Andreas Hocevar bcf379cc8e Merge pull request #4794 from ahocevar/fixed-tileloading
Make tile loading count no longer depend on source count
2016-02-16 15:51:55 +01:00
Guillaume Beraudo 7e6115a763 Fix geolocation error cast
Despite the dispatchEvent method accepting a hash with a "target" property of
"undefined", closure may still require the "target" property to be
explicit.
2016-02-16 11:36:24 +01:00
Frédéric Junod a5e463464a Merge pull request #4843 from fredj/goog.dom.getParentElement
Remove use of goog.dom.getParentElement
2016-02-16 08:35:27 +01:00
Frédéric Junod 126e065d77 Merge pull request #4839 from fredj/collection_template
Add template type to ol.Collection
2016-02-16 08:34:23 +01:00
Tim Schaub 1902d597ef Merge pull request #4847 from openlayers/greenkeeper-eslint-2.1.0
Update eslint to version 2.1.0 🚀
2016-02-15 16:50:52 -07:00
Tim Schaub 03761642ed Correct indentation 2016-02-15 16:39:56 -07:00
Andreas Hocevar 44c6972f31 Merge pull request #4632 from bjnsn/fill-color-overload
Overloading fill color (polygon or text) with CanvasPattern and CanvasGradient
2016-02-15 20:01:35 +01:00
greenkeeperio-bot 55d56d65bc chore(package): update eslint to version 2.1.0
http://greenkeeper.io/
2016-02-15 12:00:49 -07:00
Brett Johnson 7f02b63ccc Overloading fill color (polygon or text) with CanvasPattern and CanvasGradient. 2016-02-15 08:30:56 -08:00
Frederic Junod 25f5776d8e Remove use of goog.dom.getParentElement 2016-02-15 17:13:04 +01:00
Andreas Hocevar 952b99742e Add tests, remove unused code, encapsulate repeated code in functions 2016-02-15 17:00:06 +01:00
Andreas Hocevar a109062b1f Rotate map canvas after composition 2016-02-15 17:00:06 +01:00
Frédéric Junod aa508acde4 Merge pull request #4842 from fredj/rm_goog.dom.createDom
Remove use of goog.dom.createDom
2016-02-15 16:55:10 +01:00
Frederic Junod 296ec9799f Remove use of goog.dom.createDom 2016-02-15 16:40:07 +01:00
Frédéric Junod 34392b464c Merge pull request #4808 from fredj/type_cleanup
Type cleanup
2016-02-15 12:01:40 +01:00
Frédéric Junod 7431990f70 Merge pull request #4737 from fredj/dnd_projection
Use olx.format.ReadOptions in ol.interaction.DragAndDrop
2016-02-15 09:37:14 +01:00
Frederic Junod e7c57ada95 Use olx.format.ReadOptions in ol.interaction.DragAndDrop
Don't reproject the geometries in ol.interaction.DragAndDrop; use
the `featureProjection` option in `format.readFeatures`
2016-02-15 09:26:00 +01:00
Frederic Junod 7003920163 Fix olx.source.XYZOptions#tileGrid type
The typedef is already correct
2016-02-15 09:25:01 +01:00
Frederic Junod 332d6e9d5c Add missing olx.source.XYZOptions#opaque property 2016-02-15 09:25:01 +01:00
Frederic Junod 95fd0e177f Fix olx.render.ToContextOptions#pixelRatio type
The typedef is already correct
2016-02-15 09:25:01 +01:00
Frederic Junod cf083e4f42 Remove return value from olx.interaction.PointerOptions functions
handleDragEvent and handleMoveEvent functions do not return a boolean value.
The typedef is already correct.
2016-02-15 09:25:01 +01:00
Frederic Junod 2f3c25cb95 Fix olx.control.RotateOptions#label type
Use the same as the typedef, leftover from a096ec5
2016-02-15 09:25:01 +01:00
Frederic Junod df977d50b6 Fix type cast in ol.layer.Base constructor
ol.layer.Base takes a olx.layer.BaseOptions not olx.layer.LayerOptions
2016-02-15 09:25:01 +01:00
Andreas Hocevar ff07f3a385 Merge pull request #4830 from ahocevar/proj4-tests
Make sure window.proj4 is always restored in tests
2016-02-15 09:22:54 +01:00
Frederic Junod 0303604c37 Add template type to ol.Collection 2016-02-15 09:06:57 +01:00
Andreas Hocevar 27f1fb6fc6 Merge pull request #4838 from ahocevar/regex-instead-of-endswith
Use regular expression instead of String#endsWith() check
2016-02-14 23:24:36 +01:00
Andreas Hocevar cd2dfc7f10 Use regular expression instead of String#endsWith() check 2016-02-14 23:15:15 +01:00
Andreas Hocevar 09517659b1 Merge pull request #4837 from openlayers/greenkeeper-metalsmith-layouts-1.5.4
Update metalsmith-layouts to version 1.5.4 🚀
2016-02-14 18:54:05 +01:00
Andreas Hocevar c27b1e4e3b Merge pull request #4836 from ahocevar/ua-lowercase
Use lowercase for all user agent checks
2016-02-14 16:14:26 +01:00
greenkeeperio-bot 58416b9883 chore(package): update metalsmith-layouts to version 1.5.4
http://greenkeeper.io/
2016-02-14 07:42:11 -07:00
Andreas Hocevar 0432c863c7 Use lowercase for all user agent checks 2016-02-14 14:53:30 +01:00
Tim Schaub 2336bbf5ef Merge pull request #4833 from tschaub/linter-config
Upgrade linter and config.
2016-02-13 14:19:15 -07:00
Tim Schaub 160294e05d Upgrade linter and config 2016-02-13 14:07:50 -07:00
Tim Schaub a11ab03b99 Merge pull request #4831 from jonataswalker/add-examples-header-nav
Add navigation header to examples page
2016-02-13 08:30:20 -07:00
jonataswalker 9dbf9541e9 Add navigation header to Examples page 2016-02-13 12:39:42 -02:00
Andreas Hocevar 27908edea1 Make sure window.proj4 is always restored in tests 2016-02-13 14:09:25 +01:00
Marc Jansen d15992bfc2 Merge pull request #4824 from marcjansen/rm-goog-string-newlines
Don't use goog.string.newlines.*
2016-02-12 15:20:44 +01:00
Marc Jansen f1fdfb7971 Don't use goog.string.newlines.* 2016-02-12 15:07:56 +01:00
Marc Jansen 726e5613b3 Merge pull request #4825 from marcjansen/rm-goog-string-isempty
Don't use goog.string.isEmpty
2016-02-12 15:05:46 +01:00
Marc Jansen 48ff0b90d3 Don't use goog.string.isEmpty 2016-02-12 14:12:44 +01:00
Andreas Hocevar 98b823c5fc Render tiles directly to the map canvas
This change removes the overhead of rendering tiles to an intermediate canvas.
2016-02-12 12:54:19 +01:00
Andreas Hocevar 557372203f Merge pull request #4823 from ahocevar/layers-not-required
Fix type for layers option on ol.interaction.Select
2016-02-12 12:53:44 +01:00
Andreas Hocevar 6fbe160159 Fix type for layers option on ol.interaction.Select 2016-02-12 12:42:38 +01:00
Frédéric Junod d7e275a309 Merge pull request #4815 from fredj/synthetic_wrap
wrapX false in synthetic examples
2016-02-11 11:49:45 +01:00
Frédéric Junod 0704453aff Merge pull request #4810 from gberaudo/control_undefined_checks
Add checks for undefined in controls
2016-02-11 11:26:23 +01:00
Guillaume Beraudo 3e9683d88d Fix checks for undefined in zoomtoextentcontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo 4722d341af Fix checks for undefined in zoomslidercontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo b53d74285b Fix checks for undefined in zoom control 2016-02-11 11:03:35 +01:00
Guillaume Beraudo 6c1d0f1bbe Fix checks for undefined in scaline control 2016-02-11 11:03:35 +01:00
Guillaume Beraudo cf5006617c Fix checks for undefined in rotate control 2016-02-11 11:03:35 +01:00
Guillaume Beraudo adb5b78cb6 Fix checks for undefined in overviewmapcontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo 6779ab5e29 Fix checks for undefined in mousepositioncontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo a513754d25 Fix checks for undefined in fullscreencontrol 2016-02-11 11:03:35 +01:00
Guillaume Beraudo 9703be932d Fix checks for undefined in attributioncontrol 2016-02-11 11:03:35 +01:00
Frédéric Junod 0493f3f5f8 Merge pull request #4787 from pfanguin/precision_coordinate_hdms
Add precision parameter for HDMS coordinate
2016-02-11 11:03:13 +01:00
Frederic Junod a664dbb507 Set wrapX to false in synthetic examples 2016-02-11 09:34:38 +01:00
Frederic Junod f3a3d34f71 Remove outdated performance results 2016-02-11 09:32:47 +01:00
pfanguin b584a9aeb5 Add precision parameter for HDMS coordinate 2016-02-11 09:15:41 +01:00
Frédéric Junod c621f8606b Merge pull request #4811 from fredj/style_struct
Make ol.style.Style a @struct
2016-02-11 08:33:03 +01:00
Frederic Junod f7e20377ec Make ol.style.Style a @struct
And take into account that `styles` may be a style or an array of style.
2016-02-10 17:07:10 +01:00
Fran Peručić b46cc5a241 fix multipolygon clone 2016-02-10 15:06:00 +01:00
Tim Schaub a924908f12 Merge pull request #4800 from openlayers/greenkeeper-phantomjs-prebuilt-2.1.4
Update phantomjs-prebuilt to version 2.1.4 🚀
2016-02-06 18:20:37 -07:00
Frédéric Junod 2035bec7ad Merge pull request #4792 from fredj/snapinteraction_listen_key
Use ol.events.listen instead of ol.Observable#on
2016-02-06 19:01:55 +01:00
greenkeeperio-bot 42100e0ab1 chore(package): update phantomjs-prebuilt to version 2.1.4
http://greenkeeper.io/
2016-02-06 10:10:57 -07:00
Marc Jansen 00583e9b39 Merge pull request #4796 from marcjansen/rm-goog-isstring
Remove use of goog.isString()
2016-02-06 13:06:06 +01:00
Marc Jansen efa82dccf9 Remove use of goog.isString() 2016-02-06 12:56:55 +01:00
Andreas Hocevar 057633c2c4 Merge pull request #4795 from ahocevar/goog-cleanup
Cleanup after goog.array, goog.object and goog.isDef removal
2016-02-05 21:38:57 +01:00
Andreas Hocevar d0eb6322c3 Cleanup after goog.array, goog.object and goog.isDef removal 2016-02-05 14:52:52 +01:00
Andreas Hocevar 3f36e0967f Make tile loading count no longer depend on source count 2016-02-05 09:38:16 +01:00
Frederic Junod a44e71aad1 Use ol.events.listen instead of ol.Observable#on
`ol.Observable#on` may return an array of `ol.events.Key`, `ol.events.listen` always
return a single `ol.events.Key`.
2016-02-04 17:24:29 +01:00
Frédéric Junod 57c5632de2 Merge pull request #4791 from fredj/unnecessary_cast
Remove unnecessary cast
2016-02-04 16:21:17 +01:00
Frederic Junod 8c6883db34 Remove unnecessary cast 2016-02-04 15:52:28 +01:00
Tim Schaub ca5eaddfa0 Merge pull request #4778 from tschaub/no-goog-object
Remove use of goog.object.
2016-02-04 07:14:37 -07:00
Andreas Hocevar 0c23d9a7ff Keep track of tile source count 2016-02-04 06:54:45 -07:00
Tim Schaub 72ea0ecfd8 Remove remaining goog.object use from tests 2016-02-04 06:54:45 -07:00
Tim Schaub d67f33bcd6 Remove use of goog.object.unsafeClone() 2016-02-04 06:54:44 -07:00
Tim Schaub e2fe897811 Replace goog.object.getValues() with ol.object.getValues() 2016-02-04 06:54:44 -07:00
Tim Schaub 417dbf36c8 Remove use of goog.object.setIfUndefined() 2016-02-04 06:54:44 -07:00
Tim Schaub fd394151fd Replace goog.object.clear() with ol.object.clear() 2016-02-04 06:54:44 -07:00
Tim Schaub f38d8bf824 Remove use of goog.object.get() 2016-02-04 06:54:44 -07:00
Tim Schaub 8b9c393820 Remove use of goog.object.some() 2016-02-04 06:54:44 -07:00
Tim Schaub 8aecb3270c Replace goog.object.isEmpty() with ol.object.isEmpty() 2016-02-04 06:54:44 -07:00
Tim Schaub 0dce343d4f Remove use of goog.object.getCount() 2016-02-04 06:54:44 -07:00
Tim Schaub 1a9367228d Remove use of goog.object.contains() and findKey() 2016-02-04 06:54:44 -07:00
Tim Schaub 554887ae14 Remove use of goog.object.forEach() 2016-02-04 06:54:44 -07:00
Tim Schaub 3c0ef430db Use ol.object.assign() instead of goog.object.extend() 2016-02-04 06:54:43 -07:00
Tim Schaub a74af66d5f Use ol.object.assign() instead of goog.object.clone() 2016-02-04 06:54:43 -07:00
Tim Schaub 619e070d80 Use ol.object.assign() in object.getPoperties() 2016-02-04 06:54:43 -07:00
Tim Schaub 3a4b504a5d Add polyfill for Object.assign() 2016-02-04 06:54:43 -07:00
Frédéric Junod 17a2466894 Merge pull request #4789 from fredj/use_ol.array
Use ol.array instead of goog.array
2016-02-04 14:38:34 +01:00
Frederic Junod a2171124e1 Remove unneeded goog.array.ASSUME_NATIVE_FUNCTIONS define 2016-02-04 14:25:46 +01:00
Frederic Junod 49b210973e Use ol.array instead of goog.array 2016-02-04 14:21:26 +01:00
Frédéric Junod aedbf45c8c Merge pull request #4788 from fredj/cleanup
Remove unnecessary newlines
2016-02-04 13:21:29 +01:00
Frederic Junod c43de104ce Remove unnecessary newlines 2016-02-04 12:24:20 +01:00
Frédéric Junod ff1f44773a Merge pull request #4783 from fredj/release-v3.13.1
Release v3.13.1
2016-02-04 08:27:35 +01:00
Tim Schaub 8444d066f5 Merge pull request #4731 from gberaudo/remove_unnecessary_casts
Remove all remaining unnecessary casts
2016-02-03 10:30:36 -07:00
Guillaume Beraudo 46fc1c2a1b Prevent unnecessary casts 2016-02-03 16:26:43 +01:00
Guillaume Beraudo 289e571fb0 Remove all remaining unnecessary casts
There is still such a cast in the goog library itself.
See https://github.com/google/closure-library/pull/637
2016-02-03 16:26:43 +01:00
Marc Jansen 473cbba26e Merge pull request #4776 from marcjansen/array-test-typo
Correct assertion message in ol.array.binarySearch-test
2016-02-03 14:57:44 +01:00
Marc Jansen a29e7027ca Correct assertion message in binarySearch-test 2016-02-03 14:50:33 +01:00
Andreas Hocevar 00116b7c74 Merge pull request #4711 from ahocevar/no-goog-events
Removal of goog.events.*
2016-02-03 14:05:32 +01:00
Andreas Hocevar a848321842 Merge pull request #4777 from gberaudo/expanded-urls
Fix source.UrlTile URL expansion
2016-02-03 13:03:37 +01:00
Guillaume Beraudo 42df157a04 Add test for URL template expansion 2016-02-03 12:49:12 +01:00
Andreas Hocevar af1f2bdda8 Expand urls before setting this.urls 2016-02-03 12:49:12 +01:00
Andreas Hocevar 7a8d15fe47 Use more consistent variable names and reduce findListener_ calls 2016-02-03 11:19:38 +01:00
Tim Schaub f3b97d6bef Use string instead of string|ol.events.EventType 2016-02-03 11:19:38 +01:00
Tim Schaub f10c90bdba Simpler type for ol.events.Key
Instead of having `ol.events.Key` be a listener object or an array of listener objects, it should be less error prone to have it just be a single listener object.

To avoid using too many functions with multiple return types, the `ol.events.*` functions for registering and unregistering listeners no longer accept an array of event types (and only a single key is returned when registering).

To make it convenient for users to register multiple listeners at once, the `observable.on()` method accepts an array of event types.  Internally in the library, we should use the less risky `ol.events.listen()`.
2016-02-03 11:19:38 +01:00
Andreas Hocevar 78f44dcc8a Improve XHR and ol.net.jsonp result/failure handling 2016-02-03 11:19:38 +01:00
Tim Schaub e48ab95735 Use originalEvent instead of browserEvent 2016-02-03 11:19:38 +01:00
Tim Schaub c62e76ab67 Remove support for useCapture 2016-02-03 11:19:38 +01:00
Tim Schaub 80df1f5ae8 Move opt_useCapture arg to the end of the list 2016-02-03 11:19:38 +01:00
Andreas Hocevar dc0393acff Add map tests for resize and animationDelay 2016-02-03 11:19:38 +01:00
Andreas Hocevar 73f5e11039 Add tests for ol.control.ZoomSlider 2016-02-03 11:19:38 +01:00
Andreas Hocevar ac1d7572e4 Add tests for scroll zoom 2016-02-03 11:19:38 +01:00
Andreas Hocevar ec6f2e575b Add tests for keyboard pan and zoom 2016-02-03 11:19:38 +01:00
Andreas Hocevar 8b171d3ca6 Add tests for file dragging 2016-02-03 11:19:38 +01:00
Andreas Hocevar 136c8af878 Add tests and documentation for ol.net.jsonp
ol.net.Jsonp was renamed to ol.net.jsonp, because it is not a constructor.
2016-02-03 11:19:38 +01:00
Andreas Hocevar 8d0ef13505 Add tests and documentation for goog.events.* 2016-02-03 11:19:38 +01:00
Andreas Hocevar cf4556f115 Add tests and documentation for ol.events.Event 2016-02-03 11:19:38 +01:00
Andreas Hocevar 5ba8b13ccf Add tests and documentation of ol.events.EventTarget 2016-02-03 11:19:38 +01:00
Andreas Hocevar c51d717657 Refactor event manager to remove memory leaks 2016-02-03 11:19:38 +01:00
Andreas Hocevar d7497f9686 Always provide useCapture and async args to browser 2016-02-03 11:19:38 +01:00
Andreas Hocevar f35d0106b8 Remove goog.net.* and goog.async.AnimationDelay 2016-02-03 11:19:38 +01:00
Andreas Hocevar 2b451e7893 Remove goog.dom.ViewportSizeMonitor 2016-02-03 11:19:38 +01:00
Andreas Hocevar 7e27ba1d42 Remove goog.fx.Dragger 2016-02-03 11:19:38 +01:00
Andreas Hocevar 6ac3f30c8f Remove goog.events.MouseWheelEvent and goog.events.MouseWheelHandler 2016-02-03 11:19:38 +01:00
Andreas Hocevar 1a6daa297e Remove goog.events.KeyHandler 2016-02-03 11:19:38 +01:00
Andreas Hocevar 0f216659f9 Remove goog.fs.FileReader and goog.events.FileDropHandler 2016-02-03 11:19:38 +01:00
Andreas Hocevar 3f2d79b7fe Replace goog.events.Event/EventTarget system with our own
This also removes goog.events.listen, goog.events.unlisten,
goog.events.unlistenByKey and goog.events.BrowserEvent.
2016-02-03 11:19:38 +01:00
Frédéric Junod d87482e415 Merge pull request #4730 from fredj/geolocation_error_doc
Document ol.Geolocation error event
2016-02-03 11:11:23 +01:00
Bart van den Eijnden 9f2e2cd1e8 Merge pull request #4772 from adube/fix-namespaceuri
Use node.setAttribute to set namespaceURI of a node
2016-02-03 08:55:25 +01:00
Tim Schaub cf7d30d41c Merge pull request #4774 from openlayers/greenkeeper-graceful-fs-4.1.3
Update graceful-fs to version 4.1.3 🚀
2016-02-02 21:58:17 -07:00
Tim Schaub e5428a0738 Merge pull request #4680 from nicholas-l/removeGoogArray
Remove goog array.
2016-02-02 21:51:39 -07:00
Andreas Hocevar ebc98ec1bb Address TODOs
To make sure that our binarySearch implementation meets the requirements of
the library, I added more tests for ol.geom.flat.interpolate.lineString, only
to find out that it does not handle line strings with repeated vertices
properly, regardless of what binarySearch implementation is used.
2016-02-03 11:41:41 +13:00
Nicholas L 1771df0109 Change binary search to return the lowest position 2016-02-03 11:41:41 +13:00
Marc Jansen 6586c7f007 Add tests stubs 2016-02-03 11:41:41 +13:00
Marc Jansen 665fdbdc2b Add tests for ol.array.extend 2016-02-03 11:41:41 +13:00
Marc Jansen 57f4d8cefb Add tests for ol.array.equals 2016-02-03 11:41:40 +13:00
Marc Jansen 31e1fbaf40 Add tests for ol.array.binarySearch 2016-02-03 11:41:40 +13:00
Marc Jansen 434349cb55 Check length of arrays when checking equality 2016-02-03 11:41:40 +13:00
Marc Jansen 4b17721a33 Sort tested methods alphabetically 2016-02-03 11:41:40 +13:00
Andreas Hocevar 2fb33ba940 Type fixes and simplifications 2016-02-03 11:41:40 +13:00
Nicholas L d81af7594c Update JSDocs/functions after review 2016-02-03 11:41:40 +13:00
Nicholas L e08a88b76c Remove low and high from binarysearch, use numberSafeCompareFunction 2016-02-03 11:41:40 +13:00
Nicholas L ef0e95847f Remove goog.array.binarySearch 2016-02-03 11:41:40 +13:00
Nicholas L 9bcf624382 Forgot to remove a require 2016-02-03 11:41:39 +13:00
Nicholas L 5bd3fb494c Remove goog.array.repeat 2016-02-03 11:41:39 +13:00
Nicholas L ab793a58b6 Remove goog.array.isSorted 2016-02-03 11:41:39 +13:00
Nicholas L 9b492f49c7 Remove goog.array.findIndex 2016-02-03 11:41:39 +13:00
Nicholas L d820b54443 Remove goog.array.equals and goog.array.stableSort 2016-02-03 11:41:39 +13:00
Nicholas L 640c59d9af Remove goog.array.find 2016-02-03 11:41:39 +13:00
Nicholas L d743ada8fd Remove goog.array.remove 2016-02-03 11:41:39 +13:00
Nicholas L d1b6a17773 Remove goog.array.extend 2016-02-03 11:41:38 +13:00
Nicholas L 1089934486 Remove goog.array.removeAt 2016-02-03 11:41:38 +13:00
Nicholas L 0d5168ca0b Remove goog.array.insertAt 2016-02-03 11:41:38 +13:00
Nicholas L 39ead1bb49 Remove use of goog.array.flatten 2016-02-03 11:41:38 +13:00
greenkeeperio-bot 29a644d48c chore(package): update graceful-fs to version 4.1.3
http://greenkeeper.io/
2016-02-02 14:47:26 -07:00
Alexandre Dubé 3264d9a6ea Use node.setAttribute to set namespaceURI 2016-02-02 13:36:24 -05:00
Frédéric Junod 21b740ccf9 Merge pull request #4771 from fredj/nbsp
Use innerHTML instead of innerText to populate the status element
2016-02-02 17:21:14 +01:00
Frederic Junod 6c2302f6d3 Use innerHTML instead of innerText to populate the status element 2016-02-02 17:12:17 +01:00
Frédéric Junod a1fbe2428f Merge pull request #4769 from fredj/osm_opaque
Add opaque option to olx.source.OSMOptions
2016-02-02 17:04:17 +01:00
Frederic Junod 7b202c4112 Add opaque option for OpenSeaMap source 2016-02-02 13:45:07 +01:00
Frederic Junod 44e17c440d Remove crossOrigin null option for OpenSeaMap source 2016-02-02 13:44:56 +01:00
Frederic Junod d8330d56a0 Add opaque option to olx.source.OSMOptions 2016-02-02 13:42:05 +01:00
Frederic Junod c989de3175 Document ol.Geolocation error event 2016-02-02 11:48:47 +01:00
Andreas Hocevar 39b9ba87fc Merge pull request #4736 from ahocevar/fix-select
Properly detect feature on unmanaged layer for toggle selection
2016-02-02 08:58:16 +01:00
Andreas Hocevar b6fa480c97 Merge pull request #4756 from adube/fix-vector-tile-override
Remove VectorTile getSource re-definition of return value
2016-01-31 07:39:39 +01:00
Andreas Hocevar ecb2a42900 Properly detect feature on unmanaged layer for toggle selection 2016-01-30 18:13:48 +01:00
Andreas Hocevar dad92e723c Merge pull request #4733 from ahocevar/fix-scale
Avoid rendering too big and too small images for vector tiles
2016-01-30 17:51:35 +01:00
Tim Schaub ae74ff1db7 Merge pull request #4754 from tschaub/upgrade-mocha
Upgrade to mocha@2.4.5.
2016-01-29 07:11:00 -07:00
Alexandre Dubé 0a51e4ac32 Remove VectorTile getSource re-definition of return value 2016-01-29 08:33:39 -05:00
Tim Schaub 80f6fb5802 Merge pull request #4750 from openlayers/greenkeeper-metalsmith-layouts-1.4.4
Update metalsmith-layouts to version 1.4.4 🚀
2016-01-28 17:57:20 -07:00
Tim Schaub 9cda669b3b Upgrade to mocha@2.4.5 2016-01-28 17:46:50 -07:00
Tim Schaub 8b64e9b3ea Merge pull request #4751 from openlayers/greenkeeper-phantomjs-2.1.3
Update phantomjs to version 2.1.3 🚀
2016-01-28 11:40:03 -07:00
Tim Schaub 950ce4c88e Merge pull request #4741 from openlayers/check-phantom-version
Report on installed versions in Travis.
2016-01-28 09:28:07 -07:00
Tim Schaub f67a52d9ef Merge pull request #4742 from tschaub/update-eslint
Upgrade to eslint@2.0.0-beta.2.
2016-01-28 09:26:56 -07:00
Tim Schaub 6f525bfd2e Use new package name 2016-01-28 09:26:23 -07:00
greenkeeperio-bot 552d77f041 chore(package): update phantomjs to version 2.1.3
http://greenkeeper.io/
2016-01-27 21:54:47 -07:00
Tim Schaub 474fd8d47e Merge pull request #4746 from tschaub/roll-back-mocha
Downgrade to mocha@2.3.4.
2016-01-27 15:41:55 -07:00
greenkeeperio-bot 5e6b4e55c5 chore(package): update metalsmith-layouts to version 1.4.4
http://greenkeeper.io/
2016-01-27 14:03:59 -07:00
Tim Schaub 10c6d86d13 Merge pull request #4740 from openlayers/greenkeeper-fs-extra-0.26.5
Update fs-extra to version 0.26.5 🚀
2016-01-27 13:36:08 -07:00
Tim Schaub 49a5c832ea Report dependency versions 2016-01-27 13:33:53 -07:00
Tim Schaub 415ac07a60 Downgrade to mocha@2.3.4 2016-01-27 11:11:01 -07:00
Tim Schaub aff41cfcc0 Upgrade to eslint@2.0.0-beta.2 2016-01-27 09:35:01 -07:00
greenkeeperio-bot aca849ffb1 chore(package): update fs-extra to version 0.26.5
http://greenkeeper.io/
2016-01-27 08:54:37 -07:00
Frédéric Junod a9cbea1563 Merge pull request #4738 from fredj/more_tests
Add unit tests for ol.control.Rotate and ol.control.Zoom
2016-01-27 16:46:25 +01:00
Frederic Junod 2b523fff7c Add tests for ol.control.Zoom 2016-01-27 15:46:06 +01:00
Frederic Junod e53d8226db Add tests for ol.control.Rotate 2016-01-27 15:46:06 +01:00
Petr Sloup 9562756eeb Merge pull request #4718 from klokantech/raster-reproj-tile-error
Improve raster reprojection behavior when tiles fail to load
2016-01-27 15:05:36 +01:00
Petr Sloup a05c932973 Improve raster reprojection behavior when tiles fail to load 2016-01-27 14:56:18 +01:00
Frédéric Junod 398a292053 Merge pull request #4734 from openlayers/greenkeeper-sinon-1.17.3
Update sinon to version 1.17.3 🚀
2016-01-27 14:18:39 +01:00
Frédéric Junod 551a2edf4b Merge pull request #4726 from openlayers/greenkeeper-mocha-2.4.2
Update mocha to version 2.4.2 🚀
2016-01-27 14:18:19 +01:00
Andreas Hocevar 9bf2242626 Merge pull request #4725 from ahocevar/vectortile-projection
Untangle vector tile feature reprojection
2016-01-27 14:12:16 +01:00
Frédéric Junod be3e985344 Merge pull request #4735 from fredj/defaultDataProjection_jsdoc
Add default value for defaultDataProjection
2016-01-27 13:59:57 +01:00
Frédéric Junod 58abb9b165 Merge pull request #4732 from fredj/see_jsdoc
Fix '@see' link in src/ol/deviceorientation.js
2016-01-27 13:59:49 +01:00
Frederic Junod 98da9f1800 Add default value for defaultDataProjection 2016-01-27 13:39:21 +01:00
Andreas Hocevar 44764ec1d1 Use rendered tile size limit to avoid big images
When using tile sets with a high tilePixelRatio, the maximum pixel size can
trouble the browser. Instead, we now use replay rendering by tile size limits
instead of resolution ratio limits.
2016-01-27 13:38:56 +01:00
greenkeeperio-bot f4582d2f46 chore(package): update sinon to version 1.17.3
http://greenkeeper.io/
2016-01-27 04:51:59 -07:00
Frederic Junod e674255ebe Fix '@see' link in src/ol/deviceorientation.js 2016-01-27 12:31:08 +01:00
Andreas Hocevar 7b78c215ae Merge pull request #4720 from ahocevar/tileloadfunction-docs
Improve tileLoadFunction docs
2016-01-27 10:32:12 +01:00
Andreas Hocevar 52c6739b95 Improve tileLoadFunction docs 2016-01-27 10:17:46 +01:00
Andreas Hocevar 6290fb3227 Merge pull request #4717 from openlayers/greenkeeper-phantomjs-2.1.2
Update phantomjs to version 2.1.2 🚀
2016-01-27 10:08:06 +01:00
Andreas Hocevar ebcccd2cf7 Merge pull request #4727 from nicholas-l/phantomjs2
Fix phantomjs
2016-01-27 09:56:47 +01:00
Nicholas L 73b6adba49 Remove polyfill and incorrect dependency 2016-01-27 21:52:50 +13:00
Nicholas L d8631c35eb Fix phantomjs 2016-01-27 20:36:10 +13:00
greenkeeperio-bot 4c2b17a42e chore(package): update mocha to version 2.4.2
http://greenkeeper.io/
2016-01-26 17:47:01 -07:00
Andreas Hocevar 483376deb2 Untangle vector tile feature reprojection 2016-01-27 00:42:51 +01:00
Marc Jansen d091f3f835 Merge pull request #4679 from gaf-ag/fullscreentarget
Add a source option for the full screen control
2016-01-26 17:37:27 +01:00
Yashar Moradi 299a62804c source option added to ol.control.FullScreen including an example 2016-01-26 09:27:39 +01:00
greenkeeperio-bot 98338565d0 chore(package): update phantomjs to version 2.1.2
http://greenkeeper.io/
2016-01-25 15:58:53 -07:00
Frédéric Junod 682e65fead Merge pull request #4712 from fredj/jsdoc_return
Add missing JSDoc tags
2016-01-25 15:00:19 +01:00
Frederic Junod b7cbd20b6f Add missing JSDoc tags 2016-01-25 14:37:45 +01:00
Bart van den Eijnden 0b70124cdd Merge pull request #4700 from adube/feature-wmsgetfeatureinfo-layername
Add 'layers' option for WMSGetFeatureInfo format
2016-01-21 17:05:00 +01:00
Alexandre Dubé 906a132e89 Add layerName option for WMSGetFeatureInfo format
This option allows the format to read only features of a
given layer. This is useful if you wish to make a single
query to a WMS server with multiple layers in it.
2016-01-21 10:54:26 -05:00
Frédéric Junod b9c3981261 Merge pull request #4705 from gberaudo/remaining_source_state_casts
Remove remaining unnecessary ol.source.State casts
2016-01-21 16:34:20 +01:00
Guillaume Beraudo 9132d91f66 Remove remaining unnecessary ol.source.State casts 2016-01-21 16:05:06 +01:00
Tim Schaub f2c1fd207e Merge pull request #4703 from gberaudo/source_options_fixes
Source options fixes.
2016-01-21 07:54:26 -07:00
Guillaume Beraudo d32d6e6851 Simplify source state option
The ol.source.State is already a string.
Removed extra union and cast.
2016-01-21 14:40:58 +01:00
Guillaume Beraudo f0e396678c Add missing cacheSize attribute 2016-01-21 14:39:42 +01:00
Frédéric Junod 7787bc2c07 Merge pull request #4698 from fredj/regular_shape_rotate_with_view
Add rotateWithView option to ol.style.RegularShape
2016-01-21 11:20:04 +01:00
Frederic Junod aec4e468e3 Add rotateWithView option to ol.style.RegularShape 2016-01-21 11:09:20 +01:00
Andreas Hocevar 7d168cb6e2 Merge pull request #4697 from gberaudo/bind_tileurl_function
Bind tileUrlFunction to the source
2016-01-20 22:10:47 +01:00
Guillaume Beraudo d2cc04d770 Bind tileUrlFunction to the source
In order to have the function returned by ol.source.UrlTile#getTileUrlFunction()
to return a url even when executed outside the context of the source, then it
should be bound to the source.
2016-01-20 17:54:32 +01:00
582 changed files with 130913 additions and 9174 deletions
+2 -1
View File
@@ -3,7 +3,7 @@ sudo: false
language: node_js
node_js:
- "4"
- "6"
cache:
directories:
@@ -17,6 +17,7 @@ before_install:
before_script:
- "rm src/ol/renderer/webgl/*shader.js"
- "sh -e /etc/init.d/xvfb start"
- "npm ls"
script: "make ci"
-14
View File
@@ -101,20 +101,6 @@ style of the existing OpenLayers 3 code, which includes:
* Do not use assignments inside expressions.
* Avoid the use of `goog.array.clone` with arrays (use slice instead).
* Use `array.length = 0` instead of `goog.array.clear`.
* Use `v !== undefined` instead of `goog.isDef(v)` and `v === null` instead of
`goog.isNull(v)`.
* Use ECMAScript 5.1 functions instead of the `goog` equivalents. For example,
use `Object.keys(obj)` instead of `goog.object.getKeys(obj)`, `arr.forEach(f)`
instead of `goog.array.forEach(arr, f)`, etc ...
* Use bracket notation instead of `goog.object.set` and `goog.object.get` (with
two arguments).
* Use uppercase for `@const` variables.
### Configure your editor
-8
View File
@@ -11,14 +11,6 @@ The Travis CI hook is enabled on the Github repository. This means every pull re
is run through a full test suite to ensure it compiles and passes the tests. Failing
pull requests will not be merged.
Although not mandatory, it is also recommended to set up Travis CI for your ol3 fork.
For that go to your ol3 fork's Service Hooks page and set up the Travis hook.
Then every time you push to your fork, the test suite will be run. This means
errors can be caught before creating a pull request. For those making
small or occasional contributions, this may be enough to check that your contributions
are ok; in this case, you do not need to install the build tools on your local environment
as described below.
### Development dependencies
The minimum requirements are:
+3 -11
View File
@@ -119,8 +119,7 @@ examples: $(BUILD_EXAMPLES)
install: build/timestamps/node-modules-timestamp
.PHONY: lint
lint: build/timestamps/eslint-timestamp \
build/timestamps/check-requires-timestamp
lint: build/timestamps/eslint-timestamp
.PHONY: npm-install
npm-install: build/timestamps/node-modules-timestamp
@@ -181,14 +180,7 @@ build/timestamps/check-%-timestamp: $(BUILD_HOSTED)/examples/%.html \
$(BUILD_HOSTED)/build/ol.js \
$(BUILD_HOSTED)/css/ol.css
@mkdir -p $(@D)
./node_modules/.bin/phantomjs --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $(addsuffix ?mode=advanced, $<)
@touch $@
build/timestamps/check-requires-timestamp: $(SRC_JS) $(EXAMPLES_JS) \
$(SRC_SHADER_JS) $(SPEC_JS) \
$(SPEC_RENDERING_JS)
@mkdir -p $(@D)
@python bin/check-requires.py $(CLOSURE_LIB) $^
./node_modules/.bin/phantomjs --local-to-remote-url-access=true --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $<
@touch $@
build/compiled-examples/all.js: $(EXAMPLES_JS)
@@ -219,7 +211,7 @@ build/timestamps/jsdoc-$(BRANCH)-timestamp: config/jsdoc/api/index.md \
build/timestamps/node-modules-timestamp
@mkdir -p $(@D)
@rm -rf $(BUILD_HOSTED)/apidoc
./node_modules/.bin/jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json -d $(BUILD_HOSTED)/apidoc
./node_modules/.bin/jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json --package package.json -d $(BUILD_HOSTED)/apidoc
@touch $@
$(BUILD_HOSTED_EXAMPLES_JS): $(BUILD_HOSTED)/examples/%.js: build/examples/%.js
+1
View File
@@ -2,6 +2,7 @@
[![Travis CI Status](https://secure.travis-ci.org/openlayers/ol3.svg)](http://travis-ci.org/#!/openlayers/ol3)
[![Coverage Status](https://coveralls.io/repos/openlayers/ol3/badge.svg?branch=master)](https://coveralls.io/r/openlayers/ol3?branch=master)
[![OSGeo Project](https://img.shields.io/badge/OSGeo-Project-brightgreen.svg)](http://osgeo.org/)
[OpenLayers 3](http://openlayers.org/) is a high-performance, feature-packed library for creating interactive maps on the web.
-193
View File
@@ -1,193 +0,0 @@
import os
import logging
import re
import sys
logging.basicConfig(format='%(asctime)s %(name)s: %(message)s',
level=logging.INFO)
logger = logging.getLogger('check-requires')
class Node(object):
def __init__(self):
self.present = False
self.children = {}
def _build_re(self, key):
if key == '*':
assert len(self.children) == 0
# We want to match `.doIt` but not `.SomeClass` or `.more.stuff`
return '(?=\\.[a-z]\\w*\\b(?!\\.))'
elif len(self.children) == 1:
child_key, child = next(self.children.iteritems())
child_re = child._build_re(child_key)
if child_key != '*':
child_re = '\\.' + child_re
if self.present:
return key + '(' + child_re + ')?'
else:
return key + child_re
elif self.children:
children_re = '(?:' + '|'.join(
('\\.' if k != '*' else '') + self.children[k]._build_re(k)
for k in sorted(self.children.keys())) + ')'
if self.present:
return key + children_re + '?'
else:
return key + children_re
else:
assert self.present
return key
def build_re(self, key):
return re.compile('\\b' + self._build_re(key) + '\\b')
def ifind(*paths):
"""ifind is an iterative version of os.walk, yielding all walked paths and
normalizing paths to use forward slashes."""
for path in paths:
for dirpath, dirnames, names in os.walk(path):
for name in names:
if os.sep == '/':
yield os.path.join(dirpath, name)
else:
yield '/'.join(dirpath.split(os.sep) + [name])
def _strip_comments(lines):
# FIXME this is a horribe hack, we should use a proper JavaScript parser
# here
in_multiline_comment = False
lineno = 0
for line in lines:
lineno += 1
if in_multiline_comment:
index = line.find('*/')
if index != -1:
in_multiline_comment = False
line = line[index + 2:]
if not in_multiline_comment:
line = re.sub(r'//[^\n]*', '', line)
line = re.sub(r'/\*.*?\*/', '', line)
index = line.find('/*')
if index != -1:
yield lineno, line[:index]
in_multiline_comment = True
else:
yield lineno, line
def check_requires(closure_lib, *filenames):
unused_count = 0
all_provides = set()
for filename in ifind(closure_lib):
if filename.endswith('.js'):
if not re.match(r'.*/closure/goog/', filename):
continue
# Skip goog.i18n because it contains so many modules that it causes
# the generated regular expression to exceed Python's limits
if re.match(r'.*/closure/goog/i18n/', filename):
continue
for line in open(filename, 'rU'):
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
if m:
all_provides.add(m.group(1))
for filename in sorted(filenames):
require_linenos = {}
uses = set()
lines = open(filename, 'rU').readlines()
for lineno, line in _strip_comments(lines):
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
if m:
all_provides.add(m.group(1))
continue
m = re.match(r'goog.require\(\'(.*)\'\);', line)
if m:
require_linenos[m.group(1)] = lineno
continue
ignore_linenos = require_linenos.values()
for lineno, line in enumerate(lines):
if lineno in ignore_linenos:
continue
for require in require_linenos.iterkeys():
if require in line:
uses.add(require)
for require in sorted(set(require_linenos.keys()) - uses):
logger.info('%s:%d: unused goog.require: %r' % (
filename, require_linenos[require], require))
unused_count += 1
all_provides.discard('ol')
all_provides.discard('ol.MapProperty')
root = Node()
for provide in all_provides:
node = root
for component in provide.split('.'):
if component not in node.children:
node.children[component] = Node()
node = node.children[component]
if component[0].islower():
# We've arrived at a namespace provide like `ol.foo`.
# In this case, we want to match uses like `ol.foo.doIt()` but
# not match things like `new ol.foo.SomeClass()`.
# For this purpose, we use the special wildcard key for the child.
node.children['*'] = Node()
else:
node.present = True
provide_res = [child.build_re(key)
for key, child in root.children.iteritems()]
missing_count = 0
for filename in sorted(filenames):
provides = set()
requires = set()
uses = set()
uses_linenos = {}
for lineno, line in _strip_comments(open(filename, 'rU')):
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
if m:
provides.add(m.group(1))
continue
m = re.match(r'goog.require\(\'(.*)\'\);', line)
if m:
requires.add(m.group(1))
continue
while True:
for provide_re in provide_res:
m = provide_re.search(line)
if m:
uses.add(m.group())
uses_linenos[m.group()] = lineno
line = line[:m.start()] + line[m.end():]
break
else:
break
if filename == 'src/ol/renderer/layerrenderer.js':
uses.discard('ol.renderer.Map')
m = re.match(
r'src/ol/renderer/(\w+)/\1(\w*)layerrenderer\.js\Z', filename)
if m:
uses.discard('ol.renderer.Map')
uses.discard('ol.renderer.%s.Map' % (m.group(1),))
missing_requires = uses - requires - provides
if missing_requires:
for missing_require in sorted(missing_requires):
logger.info("%s:%d missing goog.require('%s')" %
(filename, uses_linenos[missing_require],
missing_require))
missing_count += 1
return (unused_count, missing_count)
if __name__ == "__main__":
unused_count, missing_count = check_requires(*sys.argv[1:])
if unused_count > 0 or missing_count > 0:
logger.error('%d unused goog.requires, %d missing goog.requires' %
(unused_count, missing_count))
sys.exit(1)
+164
View File
@@ -1,7 +1,171 @@
## Upgrade notes
### v3.17.0
#### `ol.source.MapQuest` removal
Because of changes at MapQuest (see: https://lists.openstreetmap.org/pipermail/talk/2016-June/076106.html) we had to remove the MapQuest source for now (see https://github.com/openlayers/ol3/issues/5484 for details).
#### `ol.interaction.ModifyEvent` changes
The event object previously had a `mapBrowserPointerEvent` property, which has been renamed to `mapBrowserEvent`.
#### Removal of ol.raster namespace
Users compiling their code with the library and using types in the `ol.raster` namespace should note that this has now been removed. `ol.raster.Pixel` has been deleted, and the other types have been renamed as follows, and your code may need changing if you use these:
* `ol.raster.Operation` to `ol.RasterOperation`
* `ol.raster.OperationType` to `ol.RasterOperationType`
#### All typedefs now in ol namespace
Users compiling their code with the library should note that the following typedefs have been renamed; your code may need changing if you use these:
* ol.events.ConditionType to ol.EventsConditionType
* ol.events.EventTargetLike to ol.EventTargetLike
* ol.events.Key to ol.EventsKey
* ol.events.ListenerFunctionType to ol.EventsListenerFunctionType
* ol.interaction.DragBoxEndConditionType to ol.DragBoxEndConditionType
* ol.interaction.DrawGeometryFunctionType to ol.DrawGeometryFunctionType
* ol.interaction.SegmentDataType to ol.ModifySegmentDataType
* ol.interaction.SelectFilterFunction to ol.SelectFilterFunction
* ol.interaction.SnapResultType to ol.SnapResultType
* ol.interaction.SnapSegmentDataType to ol.SnapSegmentDataType
* ol.proj.ProjectionLike to ol.ProjectionLike
* ol.style.AtlasBlock to ol.AtlasBlock
* ol.style.AtlasInfo to ol.AtlasInfo
* ol.style.AtlasManagerInfo to ol.AtlasManagerInfo
* ol.style.CircleRenderOptions to ol.CircleRenderOptions
* ol.style.ImageOptions to ol.StyleImageOptions
* ol.style.GeometryFunction to ol.StyleGeometryFunction
* ol.style.RegularShapeRenderOptions to ol.RegularShapeRenderOptions
* ol.style.StyleFunction to ol.StyleFunction
### v3.16.0
#### Rendering change for tile sources
Previously, if you called `source.setUrl()` on a tile source, all currently rendered tiles would be cleared before new tiles were loaded and rendered. This clearing of the map is undesirable if you are trying to smoothly update the tiles used by a source. This behavior has now changed, and calling `source.setUrl()` (or `source.setUrls()`) will *not* clear currently rendered tiles before loading and rendering new tiles. Instead, previously rendered tiles remain rendered until new tiles have loaded and can replace them. If you want to achieve the old behavior (render a blank map before loading new tiles), you can call `source.refresh()` or you can replace the old source with a new one (using `layer.setSource()`).
#### Move of typedefs out of code and into separate file
This change should not affect the great majority of application developers, but it's possible there are edge cases when compiling application code together with the library which cause compiler errors or warnings. In this case, please raise a GitHub issue. `goog.require`s for typedefs should not be necessary.
Users compiling their code with the library should note that the following API `@typedef`s have been renamed; your code may need changing if you use these:
* `ol.format.WFS.FeatureCollectionMetadata` to `ol.WFSFeatureCollectionMetadata`
* `ol.format.WFS.TransactionResponse` to `ol.WFSTransactionResponse`
#### Removal of `opaque` option for `ol.source.VectorTile`
This option is no longer needed, so it was removed from the API.
#### XHR loading for `ol.source.TileUTFGrid`
The `ol.source.TileUTFGrid` now uses XMLHttpRequest to load UTFGrid tiles by default. This works out of the box with the v4 Mapbox API. To work with the v3 API, you must use the new `jsonp` option on the source. See the examples below for detail.
```js
// To work with the v4 API
var v4source = new ol.source.TileUTFGrid({
url: 'https://api.tiles.mapbox.com/v4/example.json?access_token=' + YOUR_KEY_HERE
});
// To work with the v3 API
var v3source = new ol.source.TileUTFGrid({
jsonp: true, // <--- this is required for v3
url: 'http://api.tiles.mapbox.com/v3/example.json'
});
```
### v3.15.0
#### Internet Explorer 9 support
As of this release, OpenLayers requires a `classList` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features#Element_prototype_classList.
#### Immediate rendering API
Listeners for `precompose`, `render`, and `postcompose` receive an event with a `vectorContext` property with methods for immediate vector rendering. The previous geometry drawing methods have been replaced with a single `vectorContext.drawGeometry(geometry)` method. If you were using any of the following experimental methods on the vector context, replace them with `drawGeometry`:
* Removed experimental geometry drawing methods: `drawPointGeometry`, `drawLineStringGeometry`, `drawPolygonGeometry`, `drawMultiPointGeometry`, `drawMultiLineStringGeometry`, `drawMultiPolygonGeometry`, and `drawCircleGeometry` (all have been replaced with `drawGeometry`).
In addition, the previous methods for setting style parts have been replaced with a single `vectorContext.setStyle(style)` method. If you were using any of the following experimental methods on the vector context, replace them with `setStyle`:
* Removed experimental style setting methods: `setFillStrokeStyle`, `setImageStyle`, `setTextStyle` (all have been replaced with `setStyle`).
Below is an example of how the vector context might have been used in the past:
```js
// OLD WAY, NO LONGER SUPPORTED
map.on('postcompose', function(event) {
event.vectorContext.setFillStrokeStyle(style.getFill(), style.getStroke());
event.vectorContext.drawPointGeometry(geometry);
});
```
Here is an example of how you could accomplish the same with the new methods:
```js
// NEW WAY, USE THIS INSTEAD OF THE CODE ABOVE
map.on('postcompose', function(event) {
event.vectorContext.setStyle(style);
event.vectorContext.drawGeometry(geometry);
});
```
A final change to the immediate rendering API is that `vectorContext.drawFeature()` calls are now "immediate" as well. The drawing now occurs synchronously. This means that any `zIndex` in a style passed to `drawFeature()` will be ignored. To achieve `zIndex` ordering, order your calls to `drawFeature()` instead.
#### Removal of `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK`
The `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK` define has been removed. The size of the cache can now be defined on every tile based `ol.source`:
```js
new ol.layer.Tile({
source: new ol.source.OSM({
cacheSize: 128
})
})
```
The default cache size is `2048`.
### v3.14.0
#### Internet Explorer 9 support
As of this release, OpenLayers requires a `requestAnimationFrame`/`cancelAnimationFrame` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features/#requestAnimationFrame.
#### Layer pre-/postcompose event changes
It is the responsibility of the application to undo any canvas transform changes at the end of a layer 'precompose' or 'postcompose' handler. Previously, it was ok to set a null transform. The API now guarantees a device pixel coordinate system on the canvas with its origin in the top left corner of the map. However, applications should not rely on the underlying canvas being the same size as the visible viewport.
Old code:
```js
layer.on('precompose', function(e) {
// rely on canvas dimensions to move coordinate origin to center
e.context.translate(e.context.canvas.width / 2, e.context.canvas.height / 2);
e.context.scale(3, 3);
// draw an x in the center of the viewport
e.context.moveTo(-20, -20);
e.context.lineTo(20, 20);
e.context.moveTo(-20, 20);
e.context.lineTo(20, -20);
// rely on the canvas having a null transform
e.context.setTransform(1, 0, 0, 1, 0, 0);
});
```
New code:
```js
layer.on('precompose', function(e) {
// use map size and pixel ratio to move coordinate origin to center
var size = map.getSize();
var pixelRatio = e.frameState.pixelRatio;
e.context.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
e.context.scale(3, 3);
// draw an x in the center of the viewport
e.context.moveTo(-20, -20);
e.context.lineTo(20, 20);
e.context.moveTo(-20, 20);
e.context.lineTo(20, -20);
// undo all transforms
e.context.scale(1 / 3, 1 / 3);
e.context.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
});
```
### v3.13.0
#### `proj4js` integration
+154
View File
@@ -0,0 +1,154 @@
# v3.14.0
## Summary
The v3.14.0 release includes features and fixes from 93 pull requests since the v3.13.1 release. New features and improvements include:
* New `source` option for the `ol.control.FullScreen`, to allow including other elements besides the map in a full screen view (#4679).
* New `target` property for the Drag&Drop interaction allows using a different drop target than the map viewport (#4876).
* `ol.style.RegularShape` has a new `rotateWithView` option, for controlling how regular shape symbols are rendered on rotated views (#4698).
* New `layers` option for `ol.format.WMSGetFeatureInfo` format, to selectively only read features from specific layers (#4700).
* New `precision` parameter for formatting coordinates with `ol.coordinate.toStringHDMS` (#4787).
* Smarter tile queue for improved tile loading user experience when more than one tile layer is used (#4794).
* Improved rendering performance for tile layers by rendering tiles directly to the map canvas (#4597).
* The `goog.events` event system was replaced with our own lightweight event system. This significally reduces the build size (#4711). Replacement of other `goog.*` components with ES5 features or custom code marks a huge step towards the complete removal of the Closure Library dependency.
## Upgrade notes
#### Internet Explorer 9 support
As of this release, OpenLayers requires a `requestAnimationFrame`/`cancelAnimationFrame` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features/#requestAnimationFrame.
#### Layer pre-/postcompose event changes
It is the responsibility of the application to undo any canvas transform changes at the end of a layer 'precompose' or 'postcompose' handler. Previously, it was ok to set a null transform. The API now guarantees a device pixel coordinate system on the canvas with its origin in the top left corner of the map. However, applications should not rely on the underlying canvas being the same size as the visible viewport.
Old code:
```js
layer.on('precompose', function(e) {
// rely on canvas dimensions to move coordinate origin to center
e.context.translate(e.context.canvas.width / 2, e.context.canvas.height / 2);
e.context.scale(3, 3);
// draw an x in the center of the viewport
e.context.moveTo(-20, -20);
e.context.lineTo(20, 20);
e.context.moveTo(-20, 20);
e.context.lineTo(20, -20);
// rely on the canvas having a null transform
e.context.setTransform(1, 0, 0, 1, 0, 0);
});
```
New code:
```js
layer.on('precompose', function(e) {
// use map size and pixel ratio to move coordinate origin to center
var size = map.getSize();
var pixelRatio = e.frameState.pixelRatio;
e.context.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
e.context.scale(3, 3);
// draw an x in the center of the viewport
e.context.moveTo(-20, -20);
e.context.lineTo(20, 20);
e.context.moveTo(-20, 20);
e.context.lineTo(20, -20);
// undo all transforms
e.context.scale(1 / 3, 1 / 3);
e.context.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
});
```
## Full list of changes
* [#4896](https://github.com/openlayers/ol3/pull/4896) - Ignore XML sequence when comparing GML ([@ahocevar](https://github.com/ahocevar))
* [#4890](https://github.com/openlayers/ol3/pull/4890) - ol.format.KML cleanup ([@fredj](https://github.com/fredj))
* [#4894](https://github.com/openlayers/ol3/pull/4894) - Only run raster operations after image sources have loaded. ([@tschaub](https://github.com/tschaub))
* [#4892](https://github.com/openlayers/ol3/pull/4892) - Stricter check for ImageData constructor ([@ahocevar](https://github.com/ahocevar))
* [#4891](https://github.com/openlayers/ol3/pull/4891) - Fix tests so they all pass in IE9 ([@ahocevar](https://github.com/ahocevar))
* [#4889](https://github.com/openlayers/ol3/pull/4889) - Use requestAnimation polyfill for examples and update release notes ([@ahocevar](https://github.com/ahocevar))
* [#4887](https://github.com/openlayers/ol3/pull/4887) - Use less aggressive DOM function overrides ([@ahocevar](https://github.com/ahocevar))
* [#4885](https://github.com/openlayers/ol3/pull/4885) - Mark overlayContainer and overlayContainerStopEvent as non-nullable ([@fredj](https://github.com/fredj))
* [#4884](https://github.com/openlayers/ol3/pull/4884) - Remove use of goog.math.isFiniteNumber() ([@fredj](https://github.com/fredj))
* [#4881](https://github.com/openlayers/ol3/pull/4881) - Update jquery to version 2.2.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#4780](https://github.com/openlayers/ol3/pull/4780) - Adapt the code for the new closure-compiler version ([@fredj](https://github.com/fredj))
* [#3453](https://github.com/openlayers/ol3/pull/3453) - Consider multi in add/remove/toggle select logic ([@bjornharrtell](https://github.com/bjornharrtell))
* [#4876](https://github.com/openlayers/ol3/pull/4876) - Add `target` property to Drag&Drop interaction ([@tsauerwein](https://github.com/tsauerwein))
* [#4854](https://github.com/openlayers/ol3/pull/4854) - Always report skipped feature hits for the original layer ([@ahocevar](https://github.com/ahocevar))
* [#4877](https://github.com/openlayers/ol3/pull/4877) - Update eslint to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4870](https://github.com/openlayers/ol3/pull/4870) - Reuse dragListenerKeys_ local variable ([@fredj](https://github.com/fredj))
* [#4721](https://github.com/openlayers/ol3/pull/4721) - Fix reprojection of raster sources with gutter ([@klokantech](https://github.com/klokantech))
* [#4874](https://github.com/openlayers/ol3/pull/4874) - Assert we have a feature id ([@bartvde](https://github.com/bartvde))
* [#4869](https://github.com/openlayers/ol3/pull/4869) - Improve precision of ol.reproj.render ([@klokantech](https://github.com/klokantech))
* [#4866](https://github.com/openlayers/ol3/pull/4866) - Use requestAnimationFrame polyfill (for IE9) ([@ahocevar](https://github.com/ahocevar))
* [#4863](https://github.com/openlayers/ol3/pull/4863) - Remove use of goog.dom.createElement ([@fredj](https://github.com/fredj))
* [#4864](https://github.com/openlayers/ol3/pull/4864) - Use querySelectorAll instead of goog.dom.getElementsByClass ([@fredj](https://github.com/fredj))
* [#4597](https://github.com/openlayers/ol3/pull/4597) - Render tiles directly to the map canvas ([@ahocevar](https://github.com/ahocevar))
* [#4862](https://github.com/openlayers/ol3/pull/4862) - Add OSGeo badge ([@ahocevar](https://github.com/ahocevar))
* [#4845](https://github.com/openlayers/ol3/pull/4845) - Fix geolocation error cast ([@gberaudo](https://github.com/gberaudo))
* [#4851](https://github.com/openlayers/ol3/pull/4851) - Don't use goog.isBoolean() ([@marcjansen](https://github.com/marcjansen))
* [#4852](https://github.com/openlayers/ol3/pull/4852) - Don't use goog.isString() ([@marcjansen](https://github.com/marcjansen))
* [#4849](https://github.com/openlayers/ol3/pull/4849) - Fix docs of LogoOptions.prototype.src ([@openlayers](https://github.com/openlayers))
* [#4794](https://github.com/openlayers/ol3/pull/4794) - Make tile loading count no longer depend on source count ([@ahocevar](https://github.com/ahocevar))
* [#4843](https://github.com/openlayers/ol3/pull/4843) - Remove use of goog.dom.getParentElement ([@fredj](https://github.com/fredj))
* [#4839](https://github.com/openlayers/ol3/pull/4839) - Add template type to ol.Collection ([@fredj](https://github.com/fredj))
* [#4847](https://github.com/openlayers/ol3/pull/4847) - Update eslint to version 2.1.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4632](https://github.com/openlayers/ol3/pull/4632) - Overloading fill color (polygon or text) with CanvasPattern and CanvasGradient ([@bjnsn](https://github.com/bjnsn))
* [#4842](https://github.com/openlayers/ol3/pull/4842) - Remove use of goog.dom.createDom ([@fredj](https://github.com/fredj))
* [#4808](https://github.com/openlayers/ol3/pull/4808) - Type cleanup ([@fredj](https://github.com/fredj))
* [#4737](https://github.com/openlayers/ol3/pull/4737) - Use olx.format.ReadOptions in ol.interaction.DragAndDrop ([@fredj](https://github.com/fredj))
* [#4830](https://github.com/openlayers/ol3/pull/4830) - Make sure window.proj4 is always restored in tests ([@ahocevar](https://github.com/ahocevar))
* [#4838](https://github.com/openlayers/ol3/pull/4838) - Use regular expression instead of String#endsWith() check ([@ahocevar](https://github.com/ahocevar))
* [#4837](https://github.com/openlayers/ol3/pull/4837) - Update metalsmith-layouts to version 1.5.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4836](https://github.com/openlayers/ol3/pull/4836) - Use lowercase for all user agent checks ([@ahocevar](https://github.com/ahocevar))
* [#4833](https://github.com/openlayers/ol3/pull/4833) - Upgrade linter and config. ([@tschaub](https://github.com/tschaub))
* [#4831](https://github.com/openlayers/ol3/pull/4831) - Add navigation header to examples page ([@jonataswalker](https://github.com/jonataswalker))
* [#4824](https://github.com/openlayers/ol3/pull/4824) - Don't use goog.string.newlines.* ([@marcjansen](https://github.com/marcjansen))
* [#4825](https://github.com/openlayers/ol3/pull/4825) - Don't use goog.string.isEmpty ([@marcjansen](https://github.com/marcjansen))
* [#4823](https://github.com/openlayers/ol3/pull/4823) - Fix type for layers option on ol.interaction.Select ([@ahocevar](https://github.com/ahocevar))
* [#4815](https://github.com/openlayers/ol3/pull/4815) - wrapX false in synthetic examples ([@fredj](https://github.com/fredj))
* [#4810](https://github.com/openlayers/ol3/pull/4810) - Add checks for undefined in controls ([@gberaudo](https://github.com/gberaudo))
* [#4787](https://github.com/openlayers/ol3/pull/4787) - Add precision parameter for HDMS coordinate ([@pfanguin](https://github.com/pfanguin))
* [#4811](https://github.com/openlayers/ol3/pull/4811) - Make ol.style.Style a @struct ([@fredj](https://github.com/fredj))
* [#4800](https://github.com/openlayers/ol3/pull/4800) - Update phantomjs-prebuilt to version 2.1.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4792](https://github.com/openlayers/ol3/pull/4792) - Use ol.events.listen instead of ol.Observable#on ([@fredj](https://github.com/fredj))
* [#4796](https://github.com/openlayers/ol3/pull/4796) - Remove use of goog.isString() ([@marcjansen](https://github.com/marcjansen))
* [#4795](https://github.com/openlayers/ol3/pull/4795) - Cleanup after goog.array, goog.object and goog.isDef removal ([@ahocevar](https://github.com/ahocevar))
* [#4791](https://github.com/openlayers/ol3/pull/4791) - Remove unnecessary cast ([@fredj](https://github.com/fredj))
* [#4778](https://github.com/openlayers/ol3/pull/4778) - Remove use of goog.object. ([@tschaub](https://github.com/tschaub))
* [#4789](https://github.com/openlayers/ol3/pull/4789) - Use ol.array instead of goog.array ([@fredj](https://github.com/fredj))
* [#4788](https://github.com/openlayers/ol3/pull/4788) - Remove unnecessary newlines ([@fredj](https://github.com/fredj))
* [#4731](https://github.com/openlayers/ol3/pull/4731) - Remove all remaining unnecessary casts ([@gberaudo](https://github.com/gberaudo))
* [#4776](https://github.com/openlayers/ol3/pull/4776) - Correct assertion message in ol.array.binarySearch-test ([@marcjansen](https://github.com/marcjansen))
* [#4711](https://github.com/openlayers/ol3/pull/4711) - Removal of goog.events.* ([@ahocevar](https://github.com/ahocevar))
* [#4777](https://github.com/openlayers/ol3/pull/4777) - Fix source.UrlTile URL expansion ([@gberaudo](https://github.com/gberaudo))
* [#4730](https://github.com/openlayers/ol3/pull/4730) - Document ol.Geolocation error event ([@fredj](https://github.com/fredj))
* [#4772](https://github.com/openlayers/ol3/pull/4772) - Use node.setAttribute to set namespaceURI of a node ([@adube](https://github.com/adube))
* [#4774](https://github.com/openlayers/ol3/pull/4774) - Update graceful-fs to version 4.1.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#4680](https://github.com/openlayers/ol3/pull/4680) - Remove goog array. ([@nicholas-l](https://github.com/nicholas-l))
* [#4771](https://github.com/openlayers/ol3/pull/4771) - Use innerHTML instead of innerText to populate the status element ([@fredj](https://github.com/fredj))
* [#4769](https://github.com/openlayers/ol3/pull/4769) - Add opaque option to olx.source.OSMOptions ([@fredj](https://github.com/fredj))
* [#4736](https://github.com/openlayers/ol3/pull/4736) - Properly detect feature on unmanaged layer for toggle selection ([@ahocevar](https://github.com/ahocevar))
* [#4756](https://github.com/openlayers/ol3/pull/4756) - Remove VectorTile getSource re-definition of return value ([@adube](https://github.com/adube))
* [#4733](https://github.com/openlayers/ol3/pull/4733) - Avoid rendering too big and too small images for vector tiles ([@ahocevar](https://github.com/ahocevar))
* [#4754](https://github.com/openlayers/ol3/pull/4754) - Upgrade to mocha@2.4.5. ([@tschaub](https://github.com/tschaub))
* [#4750](https://github.com/openlayers/ol3/pull/4750) - Update metalsmith-layouts to version 1.4.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4751](https://github.com/openlayers/ol3/pull/4751) - Update phantomjs to version 2.1.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#4741](https://github.com/openlayers/ol3/pull/4741) - Report on installed versions in Travis. ([@openlayers](https://github.com/openlayers))
* [#4742](https://github.com/openlayers/ol3/pull/4742) - Upgrade to eslint@2.0.0-beta.2. ([@tschaub](https://github.com/tschaub))
* [#4746](https://github.com/openlayers/ol3/pull/4746) - Downgrade to mocha@2.3.4. ([@tschaub](https://github.com/tschaub))
* [#4740](https://github.com/openlayers/ol3/pull/4740) - Update fs-extra to version 0.26.5 🚀 ([@openlayers](https://github.com/openlayers))
* [#4738](https://github.com/openlayers/ol3/pull/4738) - Add unit tests for ol.control.Rotate and ol.control.Zoom ([@fredj](https://github.com/fredj))
* [#4718](https://github.com/openlayers/ol3/pull/4718) - Improve raster reprojection behavior when tiles fail to load ([@klokantech](https://github.com/klokantech))
* [#4734](https://github.com/openlayers/ol3/pull/4734) - Update sinon to version 1.17.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#4726](https://github.com/openlayers/ol3/pull/4726) - Update mocha to version 2.4.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#4725](https://github.com/openlayers/ol3/pull/4725) - Untangle vector tile feature reprojection ([@ahocevar](https://github.com/ahocevar))
* [#4735](https://github.com/openlayers/ol3/pull/4735) - Add default value for defaultDataProjection ([@fredj](https://github.com/fredj))
* [#4732](https://github.com/openlayers/ol3/pull/4732) - Fix '@see' link in src/ol/deviceorientation.js ([@fredj](https://github.com/fredj))
* [#4720](https://github.com/openlayers/ol3/pull/4720) - Improve tileLoadFunction docs ([@ahocevar](https://github.com/ahocevar))
* [#4717](https://github.com/openlayers/ol3/pull/4717) - Update phantomjs to version 2.1.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#4679](https://github.com/openlayers/ol3/pull/4679) - Add a source option for the full screen control ([@gaf-ag](https://github.com/gaf-ag))
* [#4712](https://github.com/openlayers/ol3/pull/4712) - Add missing JSDoc tags ([@fredj](https://github.com/fredj))
* [#4700](https://github.com/openlayers/ol3/pull/4700) - Add 'layers' option for WMSGetFeatureInfo format ([@adube](https://github.com/adube))
* [#4705](https://github.com/openlayers/ol3/pull/4705) - Remove remaining unnecessary ol.source.State casts ([@gberaudo](https://github.com/gberaudo))
* [#4703](https://github.com/openlayers/ol3/pull/4703) - Source options fixes. ([@gberaudo](https://github.com/gberaudo))
* [#4698](https://github.com/openlayers/ol3/pull/4698) - Add rotateWithView option to ol.style.RegularShape ([@fredj](https://github.com/fredj))
* [#4697](https://github.com/openlayers/ol3/pull/4697) - Bind tileUrlFunction to the source ([@gberaudo](https://github.com/gberaudo))
+10
View File
@@ -0,0 +1,10 @@
# v3.14.1
## Summary
The v3.14.1 release is a patch release that addresses a few regressions in the v3.14.0 release. See the [v3.14.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.14.0) for details on upgrading from v3.13.x.
## Fixes
* [#4939](https://github.com/openlayers/ol3/pull/4939) - Fix rendering of opaque layers with opacity != 1 ([@ahocevar](https://github.com/ahocevar))
* [#4921](https://github.com/openlayers/ol3/pull/4921) - Unlisten before calling listener and bind to target by default ([@ahocevar](https://github.com/ahocevar))
+13
View File
@@ -0,0 +1,13 @@
# v3.14.2
## Summary
The v3.14.2 release is a patch release that addresses a few regressions in the v3.14.1 release. See the [v3.14.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.14.0) for details on upgrading from v3.13.x.
## Fixes
* [#4963](https://github.com/openlayers/ol3/pull/4963) - Handle more XHR errors in the TileJSON source ([@tschaub](https://github.com/tschaub))
* [#4960](https://github.com/openlayers/ol3/pull/4960) - Simplify clipping of lower resolution regions ([@ahocevar](https://github.com/ahocevar))
* [#4958](https://github.com/openlayers/ol3/pull/4958) - Stop wheel events instead of DOMMouseScroll events ([@fredj](https://github.com/fredj))
* [#4956](https://github.com/openlayers/ol3/pull/4956) - Fix Examples layout page ([@jonataswalker](https://github.com/jonataswalker))
* [#4809](https://github.com/openlayers/ol3/pull/4809) - Fix multipolygon clone. ([@fperucic](https://github.com/fperucic))
+204
View File
@@ -0,0 +1,204 @@
# v3.15.0
## Summary
The v3.15.0 release includes features and fixes from 136 pull requests since the v3.14.2 release. New features and improvements include:
* Make ol.source.Cluster more flexible by adding a geometryFunction option (#4917).
* Add new CartoDB tile source (#4926).
* Improved rendering performance for vector layers by batching polygon fill and stroke instructions (#5149).
* Make the tile cache size configurable (#4805).
* Add new ol.geom.Geometry#rotate function (#4984).
* Accept simpler forms of specifying attribution(s) for sources (#5007).
* Support zooming out for ol.interaction.DragZoom (#5031).
## Upgrade notes
### v3.15.0
#### Internet Explorer 9 support
As of this release, OpenLayers requires a `classList` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features#Element_prototype_classList.
#### Immediate rendering API
Listeners for `precompose`, `render`, and `postcompose` receive an event with a `vectorContext` property with methods for immediate vector rendering. The previous geometry drawing methods have been replaced with a single `vectorContext.drawGeometry(geometry)` method. If you were using any of the following experimental methods on the vector context, replace them with `drawGeometry`:
* Removed experimental geometry drawing methods: `drawPointGeometry`, `drawLineStringGeometry`, `drawPolygonGeometry`, `drawMultiPointGeometry`, `drawMultiLineStringGeometry`, `drawMultiPolygonGeometry`, and `drawCircleGeometry` (all have been replaced with `drawGeometry`).
In addition, the previous methods for setting style parts have been replaced with a single `vectorContext.setStyle(style)` method. If you were using any of the following experimental methods on the vector context, replace them with `setStyle`:
* Removed experimental style setting methods: `setFillStrokeStyle`, `setImageStyle`, `setTextStyle` (all have been replaced with `setStyle`).
Below is an example of how the vector context might have been used in the past:
```js
// OLD WAY, NO LONGER SUPPORTED
map.on('postcompose', function(event) {
event.vectorContext.setFillStrokeStyle(style.getFill(), style.getStroke());
event.vectorContext.drawPointGeometry(geometry);
});
```
Here is an example of how you could accomplish the same with the new methods:
```js
// NEW WAY, USE THIS INSTEAD OF THE CODE ABOVE
map.on('postcompose', function(event) {
event.vectorContext.setStyle(style);
event.vectorContext.drawGeometry(geometry);
});
```
A final change to the immediate rendering API is that `vectorContext.drawFeature()` calls are now "immediate" as well. The drawing now occurs synchronously. This means that any `zIndex` in a style passed to `drawFeature()` will be ignored. To achieve `zIndex` ordering, order your calls to `drawFeature()` instead.
#### Removal of `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK`
The `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK` define has been removed. The size of the cache can now be defined on every tile based `ol.source`:
```js
new ol.layer.Tile({
source: new ol.source.OSM({
cacheSize: 128
})
})
```
The default cache size is `2048`.
## Full list of changes
* [#4775](https://github.com/openlayers/ol3/pull/4775) - Remove goog.math.modulo and goog.math.lerp ([@nicholas-l](https://github.com/nicholas-l))
* [#5152](https://github.com/openlayers/ol3/pull/5152) - Cartodb cleanup ([@fredj](https://github.com/fredj))
* [#4804](https://github.com/openlayers/ol3/pull/4804) - Use Array.isArray instead of goog.isArray ([@fredj](https://github.com/fredj))
* [#5149](https://github.com/openlayers/ol3/pull/5149) - Batch polygon fill and stroke instructions ([@ahocevar](https://github.com/ahocevar))
* [#5159](https://github.com/openlayers/ol3/pull/5159) - Update eslint to version 2.6.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5160](https://github.com/openlayers/ol3/pull/5160) - Update clean-css to version 3.4.11 🚀 ([@openlayers](https://github.com/openlayers))
* [#5157](https://github.com/openlayers/ol3/pull/5157) - Improve docs for measure example ([@probins](https://github.com/probins))
* [#5155](https://github.com/openlayers/ol3/pull/5155) - Fix ol.source.Zoomify tests on firefox ([@fredj](https://github.com/fredj))
* [#5086](https://github.com/openlayers/ol3/pull/5086) - Get rid of goog.functions ([@bjornharrtell](https://github.com/bjornharrtell))
* [#5105](https://github.com/openlayers/ol3/pull/5105) - Support minZoom in ol.source.Stamen ([@fredj](https://github.com/fredj))
* [#4926](https://github.com/openlayers/ol3/pull/4926) - Add CartoDB tile source. ([@aisaacs](https://github.com/aisaacs))
* [#5151](https://github.com/openlayers/ol3/pull/5151) - Use fs-extra as fs, remove usage of graceful-fs ([@marcjansen](https://github.com/marcjansen))
* [#5124](https://github.com/openlayers/ol3/pull/5124) - Removed goog.dom.classlist ([@nicholas-l](https://github.com/nicholas-l))
* [#5150](https://github.com/openlayers/ol3/pull/5150) - Use fs-extra instead of wrench ([@fredj](https://github.com/fredj))
* [#5109](https://github.com/openlayers/ol3/pull/5109) - Add some tests for ol.source.TileUTFGrid ([@marcjansen](https://github.com/marcjansen))
* [#5139](https://github.com/openlayers/ol3/pull/5139) - Update closure-util to version 1.13.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5141](https://github.com/openlayers/ol3/pull/5141) - Reuse dragListenerKeys_ variable in ol.control.ZoomSlider ([@fredj](https://github.com/fredj))
* [#5118](https://github.com/openlayers/ol3/pull/5118) - Remove goog.dom.classlist usage ([@fredj](https://github.com/fredj))
* [#5115](https://github.com/openlayers/ol3/pull/5115) - Clarify that lineDash has no effect in IE 10 and below ([@marcjansen](https://github.com/marcjansen))
* [#5136](https://github.com/openlayers/ol3/pull/5136) - Update eslint to version 2.5.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#5123](https://github.com/openlayers/ol3/pull/5123) - Update coveralls to version 2.11.9 🚀 ([@openlayers](https://github.com/openlayers))
* [#5131](https://github.com/openlayers/ol3/pull/5131) - Update phantomjs-prebuilt to version 2.1.7 🚀 ([@openlayers](https://github.com/openlayers))
* [#5122](https://github.com/openlayers/ol3/pull/5122) - Update browser support info in intro tutorial ([@probins](https://github.com/probins))
* [#5112](https://github.com/openlayers/ol3/pull/5112) - Add decimals option to format write ([@probins](https://github.com/probins))
* [#5120](https://github.com/openlayers/ol3/pull/5120) - Add tileJSON option to ol.source.TileUTFGrid ([@ahocevar](https://github.com/ahocevar))
* [#5119](https://github.com/openlayers/ol3/pull/5119) - Add ol.source.Raster events on API docs page ([@drnextgis](https://github.com/drnextgis))
* [#5116](https://github.com/openlayers/ol3/pull/5116) - Improve examples pages on mobile devices a bit ([@ahocevar](https://github.com/ahocevar))
* [#5113](https://github.com/openlayers/ol3/pull/5113) - Memory leak in ol.control.FullScreen ([@AvatharDG](https://github.com/AvatharDG))
* [#5111](https://github.com/openlayers/ol3/pull/5111) - Remove CSS filter in examples ([@fredj](https://github.com/fredj))
* [#5108](https://github.com/openlayers/ol3/pull/5108) - Remove unused ol.xml.getAttributeNodeNS function ([@fredj](https://github.com/fredj))
* [#5106](https://github.com/openlayers/ol3/pull/5106) - Get rid of goog.math.Vec2 ([@fredj](https://github.com/fredj))
* [#5096](https://github.com/openlayers/ol3/pull/5096) - Add tests for ol.source.Zoomify ([@marcjansen](https://github.com/marcjansen))
* [#5102](https://github.com/openlayers/ol3/pull/5102) - Fix typo in API docs ([@openlayers](https://github.com/openlayers))
* [#5098](https://github.com/openlayers/ol3/pull/5098) - Reintroduce log messages for relevant WebGL assertions ([@bjornharrtell](https://github.com/bjornharrtell))
* [#5094](https://github.com/openlayers/ol3/pull/5094) - FAQ: answer question 4 ([@probins](https://github.com/probins))
* [#5092](https://github.com/openlayers/ol3/pull/5092) - add raster.jsdoc ([@drnextgis](https://github.com/drnextgis))
* [#5081](https://github.com/openlayers/ol3/pull/5081) - Snap to vertices or edges ([@drnextgis](https://github.com/drnextgis))
* [#5090](https://github.com/openlayers/ol3/pull/5090) - Update custom-builds.md ([@probins](https://github.com/probins))
* [#5089](https://github.com/openlayers/ol3/pull/5089) - Test for both transform coords should use roughlyEqual ([@probins](https://github.com/probins))
* [#5080](https://github.com/openlayers/ol3/pull/5080) - Fix geojson write GeometryCollection ([@probins](https://github.com/probins))
* [#5088](https://github.com/openlayers/ol3/pull/5088) - DEVELOPING.md: remove section on running Travis on fork ([@probins](https://github.com/probins))
* [#5087](https://github.com/openlayers/ol3/pull/5087) - assertion to check that there's a DOM node for target element ([@drnextgis](https://github.com/drnextgis))
* [#5069](https://github.com/openlayers/ol3/pull/5069) - Update jquery to version 2.2.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#5083](https://github.com/openlayers/ol3/pull/5083) - Remove unnecessary lineTo calls in immediate polygon rendering ([@tschaub](https://github.com/tschaub))
* [#5082](https://github.com/openlayers/ol3/pull/5082) - Get rid of goog.log. ([@bjornharrtell](https://github.com/bjornharrtell))
* [#5079](https://github.com/openlayers/ol3/pull/5079) - Correcting a typo in the upgrade notes ([@tschaub](https://github.com/tschaub))
* [#5076](https://github.com/openlayers/ol3/pull/5076) - Update phantomjs-prebuilt to version 2.1.6 🚀 ([@openlayers](https://github.com/openlayers))
* [#5077](https://github.com/openlayers/ol3/pull/5077) - Make immediate API uniformly synchronous. ([@tschaub](https://github.com/tschaub))
* [#5072](https://github.com/openlayers/ol3/pull/5072) - Add setStyle() and drawGeometry() to the immediate rendering API. ([@tschaub](https://github.com/tschaub))
* [#5074](https://github.com/openlayers/ol3/pull/5074) - Do not rotate map canvas after composition ([@ahocevar](https://github.com/ahocevar))
* [#5071](https://github.com/openlayers/ol3/pull/5071) - correct way to determine freehand mode is enabled ([@drnextgis](https://github.com/drnextgis))
* [#5066](https://github.com/openlayers/ol3/pull/5066) - Add more getters to ol.source.Vector ([@bartvde](https://github.com/bartvde))
* [#5064](https://github.com/openlayers/ol3/pull/5064) - Fix inconsistency in geom docs ([@probins](https://github.com/probins))
* [#5063](https://github.com/openlayers/ol3/pull/5063) - Remove inappropriate information from API docs ([@drnextgis](https://github.com/drnextgis))
* [#5061](https://github.com/openlayers/ol3/pull/5061) - Remove redundant required option ([@drnextgis](https://github.com/drnextgis))
* [#5058](https://github.com/openlayers/ol3/pull/5058) - Note in docs that DOM renderer can also render vectors ([@probins](https://github.com/probins))
* [#5056](https://github.com/openlayers/ol3/pull/5056) - Note in docs that WebGL can render points ([@probins](https://github.com/probins))
* [#5055](https://github.com/openlayers/ol3/pull/5055) - Fix cruft on kml scale output ([@probins](https://github.com/probins))
* [#5051](https://github.com/openlayers/ol3/pull/5051) - Handle aborted tiles in ol.TileQueue ([@fredj](https://github.com/fredj))
* [#5049](https://github.com/openlayers/ol3/pull/5049) - Supported browsers all have getComputedStyle ([@marcjansen](https://github.com/marcjansen))
* [#5048](https://github.com/openlayers/ol3/pull/5048) - Add tests for ol.dom methods ([@marcjansen](https://github.com/marcjansen))
* [#5031](https://github.com/openlayers/ol3/pull/5031) - support zooming out for ol.interaction.DragZoom ([@drnextgis](https://github.com/drnextgis))
* [#5036](https://github.com/openlayers/ol3/pull/5036) - Use imgSize when provided ([@ahocevar](https://github.com/ahocevar))
* [#5020](https://github.com/openlayers/ol3/pull/5020) - Update gaze to version 1.0.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5039](https://github.com/openlayers/ol3/pull/5039) - Update fs-extra to version 0.26.6 🚀 ([@openlayers](https://github.com/openlayers))
* [#5033](https://github.com/openlayers/ol3/pull/5033) - Document GPX geometry output types ([@probins](https://github.com/probins))
* [#5024](https://github.com/openlayers/ol3/pull/5024) - Resize the map canvas less aggressively ([@ahocevar](https://github.com/ahocevar))
* [#5000](https://github.com/openlayers/ol3/pull/5000) - Remove use of goog.math.Size and goog.style.setBorderBoxSize ([@fredj](https://github.com/fredj))
* [#5027](https://github.com/openlayers/ol3/pull/5027) - Clarify default value of featureProjection on geometry write ([@probins](https://github.com/probins))
* [#5019](https://github.com/openlayers/ol3/pull/5019) - Update eslint to version 2.4.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5016](https://github.com/openlayers/ol3/pull/5016) - Add basic tests for ol.geom.flat.center ([@marcjansen](https://github.com/marcjansen))
* [#5015](https://github.com/openlayers/ol3/pull/5015) - Update proj4 to version 2.3.14 🚀 ([@openlayers](https://github.com/openlayers))
* [#5013](https://github.com/openlayers/ol3/pull/5013) - Fix typo in test description ([@openlayers](https://github.com/openlayers))
* [#5007](https://github.com/openlayers/ol3/pull/5007) - Accept simpler forms of specifying attribution(s) for sources. ([@marcjansen](https://github.com/marcjansen))
* [#5011](https://github.com/openlayers/ol3/pull/5011) - Add missing setProjection function to ol.VectorTile API ([@ahocevar](https://github.com/ahocevar))
* [#5010](https://github.com/openlayers/ol3/pull/5010) - Add and fix API docs for ol.events.Event stack ([@ahocevar](https://github.com/ahocevar))
* [#5009](https://github.com/openlayers/ol3/pull/5009) - Update tutorials ([@gberaudo](https://github.com/gberaudo))
* [#5006](https://github.com/openlayers/ol3/pull/5006) - Use the maintained slimerjs package ([@ahocevar](https://github.com/ahocevar))
* [#5003](https://github.com/openlayers/ol3/pull/5003) - Add 'function' jsdoc tag to ol.geom.Geometry#rotate ([@fredj](https://github.com/fredj))
* [#5002](https://github.com/openlayers/ol3/pull/5002) - Update eslint-config-openlayers to version 4.1.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4999](https://github.com/openlayers/ol3/pull/4999) - Remove use of goog.dom.removeNode ([@fredj](https://github.com/fredj))
* [#4990](https://github.com/openlayers/ol3/pull/4990) - Add new ol.source.TileJSON#getTileJSON function ([@fredj](https://github.com/fredj))
* [#4998](https://github.com/openlayers/ol3/pull/4998) - Remove unused ol.Map#isDef function ([@fredj](https://github.com/fredj))
* [#4995](https://github.com/openlayers/ol3/pull/4995) - Remove unused ol.color functions. ([@tschaub](https://github.com/tschaub))
* [#4991](https://github.com/openlayers/ol3/pull/4991) - Do not remove listeners while dispatching event ([@ahocevar](https://github.com/ahocevar))
* [#4984](https://github.com/openlayers/ol3/pull/4984) - Add new ol.geom.Geometry#rotate function ([@fredj](https://github.com/fredj))
* [#4994](https://github.com/openlayers/ol3/pull/4994) - Add alpha default value to ol.Color array form ([@jonataswalker](https://github.com/jonataswalker))
* [#4992](https://github.com/openlayers/ol3/pull/4992) - Allow configuration of the test reporter ([@marcjansen](https://github.com/marcjansen))
* [#4988](https://github.com/openlayers/ol3/pull/4988) - Update phantomjs-prebuilt to version 2.1.5 🚀 ([@openlayers](https://github.com/openlayers))
* [#4983](https://github.com/openlayers/ol3/pull/4983) - Update Bing Maps Portal url ([@ahocevar](https://github.com/ahocevar))
* [#4981](https://github.com/openlayers/ol3/pull/4981) - Remove the viewport on map dispose ([@fredj](https://github.com/fredj))
* [#4980](https://github.com/openlayers/ol3/pull/4980) - Remove unused goog.require ([@fredj](https://github.com/fredj))
* [#4977](https://github.com/openlayers/ol3/pull/4977) - Add basic tests for ol.geom.flat.length methods ([@marcjansen](https://github.com/marcjansen))
* [#4973](https://github.com/openlayers/ol3/pull/4973) - Update eslint to version 2.3.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4971](https://github.com/openlayers/ol3/pull/4971) - Release v3.14.2 ([@openlayers](https://github.com/openlayers))
* [#4970](https://github.com/openlayers/ol3/pull/4970) - Tests for ol.Disposable. ([@tschaub](https://github.com/tschaub))
* [#4967](https://github.com/openlayers/ol3/pull/4967) - Add missing goog.inherits for ol.render.canvas.Immediate ([@fredj](https://github.com/fredj))
* [#4955](https://github.com/openlayers/ol3/pull/4955) - Remove IE workarounds in src/ol/xml.js ([@fredj](https://github.com/fredj))
* [#4960](https://github.com/openlayers/ol3/pull/4960) - Simplify clipping of lower resolution regions ([@ahocevar](https://github.com/ahocevar))
* [#4950](https://github.com/openlayers/ol3/pull/4950) - Remove use of goog.Disposable(). ([@tschaub](https://github.com/tschaub))
* [#4963](https://github.com/openlayers/ol3/pull/4963) - Handle more XHR errors in the TileJSON source ([@tschaub](https://github.com/tschaub))
* [#4962](https://github.com/openlayers/ol3/pull/4962) - Skip tests where features are not available ([@tschaub](https://github.com/tschaub))
* [#4956](https://github.com/openlayers/ol3/pull/4956) - Fix Examples layout page ([@jonataswalker](https://github.com/jonataswalker))
* [#4958](https://github.com/openlayers/ol3/pull/4958) - Stop wheel events instead of DOMMouseScroll events ([@fredj](https://github.com/fredj))
* [#4947](https://github.com/openlayers/ol3/pull/4947) - IE support for ol.source.Raster. ([@tschaub](https://github.com/tschaub))
* [#4944](https://github.com/openlayers/ol3/pull/4944) - Update resemblejs to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4942](https://github.com/openlayers/ol3/pull/4942) - Remove unused files in examples/data/ ([@fredj](https://github.com/fredj))
* [#4805](https://github.com/openlayers/ol3/pull/4805) - Add new cacheSize option to ol.source ([@fredj](https://github.com/fredj))
* [#4940](https://github.com/openlayers/ol3/pull/4940) - Release v3.14.1 ([@openlayers](https://github.com/openlayers))
* [#4939](https://github.com/openlayers/ol3/pull/4939) - Fix rendering of opaque layers with opacity != 1 ([@ahocevar](https://github.com/ahocevar))
* [#4938](https://github.com/openlayers/ol3/pull/4938) - Get rid of goog.dom.getFirstElementChild ([@fredj](https://github.com/fredj))
* [#4937](https://github.com/openlayers/ol3/pull/4937) - Get rid of goog.json ([@fredj](https://github.com/fredj))
* [#4936](https://github.com/openlayers/ol3/pull/4936) - Remove jquery from getfeatureinfo-layers example ([@fredj](https://github.com/fredj))
* [#4930](https://github.com/openlayers/ol3/pull/4930) - Use ADVANCED instead of ADVANCED_OPTIMIZATIONS ([@fredj](https://github.com/fredj))
* [#4917](https://github.com/openlayers/ol3/pull/4917) - Make ol.source.Cluster more flexible by adding a geometryFunction option ([@ahocevar](https://github.com/ahocevar))
* [#4918](https://github.com/openlayers/ol3/pull/4918) - Don't change the canvas size to clear it ([@fredj](https://github.com/fredj))
* [#4923](https://github.com/openlayers/ol3/pull/4923) - Update custom-builds.md ([@xlhomme](https://github.com/xlhomme))
* [#4929](https://github.com/openlayers/ol3/pull/4929) - Update clean-css to version 3.4.10 🚀 ([@openlayers](https://github.com/openlayers))
* [#4928](https://github.com/openlayers/ol3/pull/4928) - Upgrade to JSTS 1.0.2 in example ([@bjornharrtell](https://github.com/bjornharrtell))
* [#4927](https://github.com/openlayers/ol3/pull/4927) - Upgrade JSTS in example. ([@bjornharrtell](https://github.com/bjornharrtell))
* [#4809](https://github.com/openlayers/ol3/pull/4809) - Fix multipolygon clone. ([@fperucic](https://github.com/fperucic))
* [#4924](https://github.com/openlayers/ol3/pull/4924) - Update coveralls to version 2.11.8 🚀 ([@openlayers](https://github.com/openlayers))
* [#4921](https://github.com/openlayers/ol3/pull/4921) - Unlisten before calling listener and bind to target by default ([@ahocevar](https://github.com/ahocevar))
* [#4868](https://github.com/openlayers/ol3/pull/4868) - Allow to refresh a source and reload its data. ([@sebasbaumh](https://github.com/sebasbaumh))
* [#4903](https://github.com/openlayers/ol3/pull/4903) - Remove use of goog.style.getRelativePosition ([@fredj](https://github.com/fredj))
* [#4902](https://github.com/openlayers/ol3/pull/4902) - Remove use of goog.style.getClientPosition ([@fredj](https://github.com/fredj))
* [#4916](https://github.com/openlayers/ol3/pull/4916) - Fix ol.format.GeoJSON#writeFeatureObject return type ([@fredj](https://github.com/fredj))
* [#4909](https://github.com/openlayers/ol3/pull/4909) - Add ol.renderer.dom.VectorLayer#clearFrame ([@fredj](https://github.com/fredj))
* [#4915](https://github.com/openlayers/ol3/pull/4915) - Use {} instead of Object ([@fredj](https://github.com/fredj))
* [#4914](https://github.com/openlayers/ol3/pull/4914) - Export ol.proj.equivalent ([@sebasbaumh](https://github.com/sebasbaumh))
* [#4908](https://github.com/openlayers/ol3/pull/4908) - Remove use of goog.math.Rect ([@fredj](https://github.com/fredj))
* [#4900](https://github.com/openlayers/ol3/pull/4900) - Make ol.format.XML a @struct ([@fredj](https://github.com/fredj))
* [#4880](https://github.com/openlayers/ol3/pull/4880) - Update closure-util to version 1.11.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#4905](https://github.com/openlayers/ol3/pull/4905) - Remove use of goog.style.setPosition ([@fredj](https://github.com/fredj))
* [#4879](https://github.com/openlayers/ol3/pull/4879) - Update metalsmith-layouts to version 1.6.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4901](https://github.com/openlayers/ol3/pull/4901) - Release v3.14.0 ([@openlayers](https://github.com/openlayers))
* [#4899](https://github.com/openlayers/ol3/pull/4899) - Use ol.format.GMLBase#srsName instead of undeclared srsName_ ([@fredj](https://github.com/fredj))
+9
View File
@@ -0,0 +1,9 @@
# v3.15.1
## Summary
The v3.15.1 release is a patch release that addresses a regression in the v3.15.0 release. See the [v3.15.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.15.0) for details on upgrading from v3.14.x.
## Fixes
* [#5190](https://github.com/openlayers/ol3/pull/5190) - Revert "Batch polygon fill and stroke instructions" ([@ahocevar](https://github.com/ahocevar))
+148
View File
@@ -0,0 +1,148 @@
# v3.16.0
## Summary
The v3.16.0 release includes features and fixes from 95 pull requests since the v3.15.1 release. New features and improvements include:
* Add `ol.source.ImageArcGISRest` for ArcGIS REST image layer support (#3880)
* New `finishCondition` option for `ol.interaction.Draw` to control which action should finish a geometry when drawing (#5261)
* New filter API for `ol.format.WFS#writeGetFeature` for WFS queries with OGC filters (#5252)
* New `renderMode` option for `ol.layer.VectorTile` to balance between rendering performance and rendering quality (#5177)
* More flexibility for configuring attribution logos by allowing HTML elements (#5274)
* UTFGrid updates, now supporting Mapbox API v4 (#5329)
* New `condition` option for `ol.interaction.Modify` for better reliability when combining with other interactions (#5320)
In addition to these new features, the code base has been simplified and refactored in the process of removing the dependency on Closure Library and Compiler.
## Upgrade notes
#### Rendering change for tile sources
Previously, if you called `source.setUrl()` on a tile source, all currently rendered tiles would be cleared before new tiles were loaded and rendered. This clearing of the map is undesirable if you are trying to smoothly update the tiles used by a source. This behavior has now changed, and calling `source.setUrl()` (or `source.setUrls()`) will *not* clear currently rendered tiles before loading and rendering new tiles. Instead, previously rendered tiles remain rendered until new tiles have loaded and can replace them. If you want to achieve the old behavior (render a blank map before loading new tiles), you can call `source.refresh()` or you can replace the old source with a new one (using `layer.setSource()`).
#### Move of typedefs out of code and into separate file
This change should not affect the great majority of application developers, but it's possible there are edge cases when compiling application code together with the library which cause compiler errors or warnings. In this case, please raise a GitHub issue. `goog.require`s for typedefs should not be necessary.
Users compiling their code with the library should note that the following API `@typedef`s have been renamed; your code may need changing if you use these:
* `ol.format.WFS.FeatureCollectionMetadata` to `ol.WFSFeatureCollectionMetadata`
* `ol.format.WFS.TransactionResponse` to `ol.WFSTransactionResponse`
#### Removal of `opaque` option for `ol.source.VectorTile`
This option is no longer needed, so it was removed from the API.
#### XHR loading for `ol.source.TileUTFGrid`
The `ol.source.TileUTFGrid` now uses XMLHttpRequest to load UTFGrid tiles by default. This works out of the box with the v4 Mapbox API. To work with the v3 API, you must use the new `jsonp` option on the source. See the examples below for detail.
```js
// To work with the v4 API
var v4source = new ol.source.TileUTFGrid({
url: 'https://api.tiles.mapbox.com/v4/example.json?access_token=' + YOUR_KEY_HERE
});
// To work with the v3 API
var v3source = new ol.source.TileUTFGrid({
jsonp: true, // <--- this is required for v3
url: 'http://api.tiles.mapbox.com/v3/example.json'
});
```
## Full list of changes
* [#5377](https://github.com/openlayers/ol3/pull/5377) - Fix link to jspdf.min.js in export-pdf example ([@fredj](https://github.com/fredj))
* [#5372](https://github.com/openlayers/ol3/pull/5372) - Update jquery to version 2.2.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#5364](https://github.com/openlayers/ol3/pull/5364) - Make it so things don't flash so much when you change the tile source URL. ([@tschaub](https://github.com/tschaub))
* [#5368](https://github.com/openlayers/ol3/pull/5368) - Move WFS typedefs to typedefs.js ([@probins](https://github.com/probins))
* [#5369](https://github.com/openlayers/ol3/pull/5369) - format/igc: Remove duplicate regex exec() call ([@Turbo87](https://github.com/Turbo87))
* [#5363](https://github.com/openlayers/ol3/pull/5363) - Convert all typedefs to CamelCase ([@probins](https://github.com/probins))
* [#5362](https://github.com/openlayers/ol3/pull/5362) - Update vector-tile to version 1.2.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5352](https://github.com/openlayers/ol3/pull/5352) - Add getResolutions() to ol.View ([@marlowp](https://github.com/marlowp))
* [#5359](https://github.com/openlayers/ol3/pull/5359) - Move upgrade notes to correct place ([@probins](https://github.com/probins))
* [#5343](https://github.com/openlayers/ol3/pull/5343) - Rename non-api sub-namespace typedefs ([@probins](https://github.com/probins))
* [#5361](https://github.com/openlayers/ol3/pull/5361) - Fix url to maki icons ([@fredj](https://github.com/fredj))
* [#5358](https://github.com/openlayers/ol3/pull/5358) - Handle multiple featureMember elements for different types (WFS format) ([@tsauerwein](https://github.com/tsauerwein))
* [#5355](https://github.com/openlayers/ol3/pull/5355) - Fix navigation-controls example description ([@fredj](https://github.com/fredj))
* [#5353](https://github.com/openlayers/ol3/pull/5353) - Add API definition to docs landing page ([@probins](https://github.com/probins))
* [#5356](https://github.com/openlayers/ol3/pull/5356) - Update rbush to version 1.4.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#5354](https://github.com/openlayers/ol3/pull/5354) - Update eslint to version 2.10.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#5347](https://github.com/openlayers/ol3/pull/5347) - Update eslint to version 2.10.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5344](https://github.com/openlayers/ol3/pull/5344) - Remove raster enum from test ([@probins](https://github.com/probins))
* [#5329](https://github.com/openlayers/ol3/pull/5329) - UTFGrid updates. ([@tschaub](https://github.com/tschaub))
* [#5335](https://github.com/openlayers/ol3/pull/5335) - Move typedefs to separate file ([@probins](https://github.com/probins))
* [#5332](https://github.com/openlayers/ol3/pull/5332) - Warn when viewing an outdated example, and offer a redirect to latest ([@ahocevar](https://github.com/ahocevar))
* [#5342](https://github.com/openlayers/ol3/pull/5342) - Fix incorrect source links ([@ahocevar](https://github.com/ahocevar))
* [#5339](https://github.com/openlayers/ol3/pull/5339) - Use a div instead of alert for version warning ([@ahocevar](https://github.com/ahocevar))
* [#5320](https://github.com/openlayers/ol3/pull/5320) - Add a 'condition' option to ol.interaction.Modify ([@fredj](https://github.com/fredj))
* [#5333](https://github.com/openlayers/ol3/pull/5333) - Improve code readability with better comments ([@openlayers](https://github.com/openlayers))
* [#5330](https://github.com/openlayers/ol3/pull/5330) - Fix source links, display version and warn about outdated docs ([@ahocevar](https://github.com/ahocevar))
* [#5324](https://github.com/openlayers/ol3/pull/5324) - Remove unneeded goog.provides/requires for typedefs ([@probins](https://github.com/probins))
* [#5328](https://github.com/openlayers/ol3/pull/5328) - Use Node 6 on Travis. ([@tschaub](https://github.com/tschaub))
* [#5313](https://github.com/openlayers/ol3/pull/5313) - Rastersource framestate extent ([@ahocevar](https://github.com/ahocevar))
* [#5326](https://github.com/openlayers/ol3/pull/5326) - Fix wording in tile-load-event example ([@tsauerwein](https://github.com/tsauerwein))
* [#5327](https://github.com/openlayers/ol3/pull/5327) - Update closure-util to version 1.13.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5289](https://github.com/openlayers/ol3/pull/5289) - Update fs-extra to version 0.30.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5319](https://github.com/openlayers/ol3/pull/5319) - Remove outdated fixme from framestate.js. ([@probins](https://github.com/probins))
* [#5274](https://github.com/openlayers/ol3/pull/5274) - Allow using elements in logo attribution options ([@samuellapointe](https://github.com/samuellapointe))
* [#5162](https://github.com/openlayers/ol3/pull/5162) - Improve docs/examples for loadingstrategy ([@probins](https://github.com/probins))
* [#5314](https://github.com/openlayers/ol3/pull/5314) - Update browserify to version 13.0.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5315](https://github.com/openlayers/ol3/pull/5315) - Remove unused ol.TileCoordTransformType ([@probins](https://github.com/probins))
* [#5310](https://github.com/openlayers/ol3/pull/5310) - Get raster sources working again. ([@tschaub](https://github.com/tschaub))
* [#5291](https://github.com/openlayers/ol3/pull/5291) - Allow once listeners to dispatch events of same type ([@ahocevar](https://github.com/ahocevar))
* [#5309](https://github.com/openlayers/ol3/pull/5309) - Update metalsmith-layouts to version 1.6.5 🚀 ([@openlayers](https://github.com/openlayers))
* [#5052](https://github.com/openlayers/ol3/pull/5052) - Update fs-extra to version 0.26.7 🚀 ([@openlayers](https://github.com/openlayers))
* [#5306](https://github.com/openlayers/ol3/pull/5306) - Make olx.view.FitOptions.padding optional ([@gberaudo](https://github.com/gberaudo))
* [#5302](https://github.com/openlayers/ol3/pull/5302) - Remove use of goog.partial ([@fredj](https://github.com/fredj))
* [#5304](https://github.com/openlayers/ol3/pull/5304) - Update sinon to version 1.17.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#4644](https://github.com/openlayers/ol3/pull/4644) - Remove check-requires script ([@fredj](https://github.com/fredj))
* [#5298](https://github.com/openlayers/ol3/pull/5298) - Update eslint to version 2.9.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5296](https://github.com/openlayers/ol3/pull/5296) - Document handling of KML MultiGeometries ([@probins](https://github.com/probins))
* [#5293](https://github.com/openlayers/ol3/pull/5293) - Block removePoint while dragging ([@giohappy](https://github.com/giohappy))
* [#5285](https://github.com/openlayers/ol3/pull/5285) - Add more tests for the scaleline control ([@marcjansen](https://github.com/marcjansen))
* [#5287](https://github.com/openlayers/ol3/pull/5287) - Add and fix vectortile tests ([@ahocevar](https://github.com/ahocevar))
* [#5288](https://github.com/openlayers/ol3/pull/5288) - Expose removeVertex_ as removePoint ([@giohappy](https://github.com/giohappy))
* [#5286](https://github.com/openlayers/ol3/pull/5286) - Skip unnecessary render functions ([@ahocevar](https://github.com/ahocevar))
* [#5177](https://github.com/openlayers/ol3/pull/5177) - Add render options for vector tile layers ([@ahocevar](https://github.com/ahocevar))
* [#5278](https://github.com/openlayers/ol3/pull/5278) - Fix invalid generics type instantiation ([@fredj](https://github.com/fredj))
* [#5044](https://github.com/openlayers/ol3/pull/5044) - Snap interaction now handle feature without geometry properly ([@fblackburn](https://github.com/fblackburn))
* [#5277](https://github.com/openlayers/ol3/pull/5277) - Type cleanup ([@fredj](https://github.com/fredj))
* [#5275](https://github.com/openlayers/ol3/pull/5275) - Fix feature-layer association on replaced selections ([@ahocevar](https://github.com/ahocevar))
* [#5252](https://github.com/openlayers/ol3/pull/5252) - Add filter option to ol.format.WFS#writeGetFeature ([@tsauerwein](https://github.com/tsauerwein))
* [#5264](https://github.com/openlayers/ol3/pull/5264) - Fix for close draw polygon error ([@matjos](https://github.com/matjos))
* [#5267](https://github.com/openlayers/ol3/pull/5267) - Use ol.functions instead of goog.functions ([@ahocevar](https://github.com/ahocevar))
* [#5266](https://github.com/openlayers/ol3/pull/5266) - Document ol.colorlike ([@ahocevar](https://github.com/ahocevar))
* [#5261](https://github.com/openlayers/ol3/pull/5261) - add finishCondition to ol.interaction.Draw ([@giohappy](https://github.com/giohappy))
* [#5259](https://github.com/openlayers/ol3/pull/5259) - Include squash commit merges in changelog ([@ahocevar](https://github.com/ahocevar))
* [#5257](https://github.com/openlayers/ol3/pull/5257) - Add readFeatures and readProjection as MVT experimental API ([@bjornharrtell](https://github.com/bjornharrtell))
* [#3880](https://github.com/openlayers/ol3/pull/3880) - Add ol.source.ImageArcGISRest ([Anna Lambrechtsen](https://github.com/search?q=Anna Lambrechtsen&type=Users))
* [#5239](https://github.com/openlayers/ol3/pull/5239) - Update eslint to version 2.8.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5230](https://github.com/openlayers/ol3/pull/5230) - Reuse frame state arrays ([@fredj](https://github.com/fredj))
* [#5213](https://github.com/openlayers/ol3/pull/5213) - Remove unused ol.source.Source#setProjection function ([@fredj](https://github.com/fredj))
* [#5223](https://github.com/openlayers/ol3/pull/5223) - Create tmpSize_ before calling calculateTileRanges_ ([@fredj](https://github.com/fredj))
* [#5225](https://github.com/openlayers/ol3/pull/5225) - Remove unused ol.extent.transform2D function ([@fredj](https://github.com/fredj))
* [#5212](https://github.com/openlayers/ol3/pull/5212) - KML: fix GeometryCollection write ([@probins](https://github.com/probins))
* [#5228](https://github.com/openlayers/ol3/pull/5228) - Add 'layers' option to Translate interaction ([@adube](https://github.com/adube))
* [#5221](https://github.com/openlayers/ol3/pull/5221) - Update jquery, bootstrap and proj4js in examples ([@fredj](https://github.com/fredj))
* [#5227](https://github.com/openlayers/ol3/pull/5227) - Add a temporary ol.TileCoord in ol.renderer.canvas.TileLayer ([@fredj](https://github.com/fredj))
* [#5222](https://github.com/openlayers/ol3/pull/5222) - Remove unused private variables in ol.renderer.canvas.Map ([@fredj](https://github.com/fredj))
* [#5220](https://github.com/openlayers/ol3/pull/5220) - Externs cleanup ([@fredj](https://github.com/fredj))
* [#5224](https://github.com/openlayers/ol3/pull/5224) - Fix jsdoc tags indentation ([@fredj](https://github.com/fredj))
* [#5218](https://github.com/openlayers/ol3/pull/5218) - Add @api annotation to setConfig. ([@aisaacs](https://github.com/aisaacs))
* [#5215](https://github.com/openlayers/ol3/pull/5215) - Add an optional feature filter to getClosestFeatureToCoordinate ([@fredj](https://github.com/fredj))
* [#5132](https://github.com/openlayers/ol3/pull/5132) - Remove goog.string ([@nicholas-l](https://github.com/nicholas-l))
* [#5206](https://github.com/openlayers/ol3/pull/5206) - Minor correction of StyleFunction docs ([@probins](https://github.com/probins))
* [#4932](https://github.com/openlayers/ol3/pull/4932) - Remove undefined parameters to ol.format.WMSGetFeatureInfo#readFeatures_ ([@fredj](https://github.com/fredj))
* [#5207](https://github.com/openlayers/ol3/pull/5207) - Update clean-css to version 3.4.12 🚀 ([@openlayers](https://github.com/openlayers))
* [#5201](https://github.com/openlayers/ol3/pull/5201) - Small clarification for vector source loader docs ([@probins](https://github.com/probins))
* [#5200](https://github.com/openlayers/ol3/pull/5200) - Fix typo in rotate control for css classList ([@bartvde](https://github.com/bartvde))
* [#5178](https://github.com/openlayers/ol3/pull/5178) - Remove goog.global ([Nicholas Latham](https://github.com/search?q=Nicholas Latham&type=Users))
* [#5189](https://github.com/openlayers/ol3/pull/5189) - Add rendering tests to ensure correct circle and polygon rendering ([Andreas Hocevar](https://github.com/search?q=Andreas Hocevar&type=Users))
* [#5183](https://github.com/openlayers/ol3/pull/5183) - Update istanbul to version 0.4.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#5187](https://github.com/openlayers/ol3/pull/5187) - Remove goog.functions.and from ol.interaction.Modify ([@fredj](https://github.com/fredj))
* [#5176](https://github.com/openlayers/ol3/pull/5176) - Update jquery to version 2.2.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#5173](https://github.com/openlayers/ol3/pull/5173) - Use ol.dom.createCanvasContext2D ([@fredj](https://github.com/fredj))
* [#5171](https://github.com/openlayers/ol3/pull/5171) - Move olx.source.AttributionOption out of externs/olx.js ([@fredj](https://github.com/fredj))
* [#5170](https://github.com/openlayers/ol3/pull/5170) - Update eslint to version 2.7.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5167](https://github.com/openlayers/ol3/pull/5167) - Remove FastClick from mobile-full-screen example ([@fredj](https://github.com/fredj))
* [#5166](https://github.com/openlayers/ol3/pull/5166) - Remove jquery dependency from measure example ([@fredj](https://github.com/fredj))
* [#5164](https://github.com/openlayers/ol3/pull/5164) - Cartodb cleanup ([@fredj](https://github.com/fredj))
+107
View File
@@ -0,0 +1,107 @@
# v3.17.0
## Summary
The v3.17.0 release includes features and fixes from 60 pull requests since the v3.16.0 release. Most of the changes are bug fixes and continuing removal of the dependency on Closure Library.
## Upgrade notes
#### `ol.source.MapQuest` removal
Because of changes at MapQuest (see: https://lists.openstreetmap.org/pipermail/talk/2016-June/076106.html) we had to remove the MapQuest source for now (see https://github.com/openlayers/ol3/issues/5484 for details).
#### `ol.interaction.ModifyEvent` changes
The event object previously had a `mapBrowserPointerEvent` property, which has been renamed to `mapBrowserEvent`.
#### Removal of ol.raster namespace
Users compiling their code with the library and using types in the `ol.raster` namespace should note that this has now been removed. `ol.raster.Pixel` has been deleted, and the other types have been renamed as follows, and your code may need changing if you use these:
* `ol.raster.Operation` to `ol.RasterOperation`
* `ol.raster.OperationType` to `ol.RasterOperationType`
#### All typedefs now in ol namespace
Users compiling their code with the library should note that the following typedefs have been renamed; your code may need changing if you use these:
* ol.events.ConditionType to ol.EventsConditionType
* ol.events.EventTargetLike to ol.EventTargetLike
* ol.events.Key to ol.EventsKey
* ol.events.ListenerFunctionType to ol.EventsListenerFunctionType
* ol.interaction.DragBoxEndConditionType to ol.DragBoxEndConditionType
* ol.interaction.DrawGeometryFunctionType to ol.DrawGeometryFunctionType
* ol.interaction.SegmentDataType to ol.ModifySegmentDataType
* ol.interaction.SelectFilterFunction to ol.SelectFilterFunction
* ol.interaction.SnapResultType to ol.SnapResultType
* ol.interaction.SnapSegmentDataType to ol.SnapSegmentDataType
* ol.proj.ProjectionLike to ol.ProjectionLike
* ol.style.AtlasBlock to ol.AtlasBlock
* ol.style.AtlasInfo to ol.AtlasInfo
* ol.style.AtlasManagerInfo to ol.AtlasManagerInfo
* ol.style.CircleRenderOptions to ol.CircleRenderOptions
* ol.style.ImageOptions to ol.StyleImageOptions
* ol.style.GeometryFunction to ol.StyleGeometryFunction
* ol.style.RegularShapeRenderOptions to ol.RegularShapeRenderOptions
* ol.style.StyleFunction to ol.StyleFunction
## Full list of changes
* [#5539](https://github.com/openlayers/ol3/pull/5539) - Remove outdated comments re goog.dom ([@probins](https://github.com/probins))
* [#5543](https://github.com/openlayers/ol3/pull/5543) - Update rbush to 2.0.1 ([@tsauerwein](https://github.com/tsauerwein))
* [#5540](https://github.com/openlayers/ol3/pull/5540) - Remove MapQuest source ([@bartvde](https://github.com/bartvde))
* [#5538](https://github.com/openlayers/ol3/pull/5538) - Replace remaining goog.inherits ([@probins](https://github.com/probins))
* [#5536](https://github.com/openlayers/ol3/pull/5536) - Update to layer-extent example ([@tschaub](https://github.com/tschaub))
* [#5482](https://github.com/openlayers/ol3/pull/5482) - Fix for regression in tile layer extent ([@ischneider](https://github.com/ischneider))
* [#5475](https://github.com/openlayers/ol3/pull/5475) - Remove goog.provide from enums only used internally or in olx.js ([@probins](https://github.com/probins))
* [#5424](https://github.com/openlayers/ol3/pull/5424) - Don't dispatch select event if no feature is selected or deselected ([@fredj](https://github.com/fredj))
* [#5522](https://github.com/openlayers/ol3/pull/5522) - Add 'condition' option to ol.interaction.DragPanOptions in olx.js ([@SamuelBerger](https://github.com/SamuelBerger))
* [#5443](https://github.com/openlayers/ol3/pull/5443) - Remove olx.source.WMTSOptions#maxZoom option ([@fredj](https://github.com/fredj))
* [#5497](https://github.com/openlayers/ol3/pull/5497) - Update istanbul to version 0.4.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#5523](https://github.com/openlayers/ol3/pull/5523) - Update closure-util to version 1.15.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5508](https://github.com/openlayers/ol3/pull/5508) - Fix problems with ol.format.WFS in compiled mode ([@tsauerwein](https://github.com/tsauerwein))
* [#5512](https://github.com/openlayers/ol3/pull/5512) - Use forEachTileCoord name instead of forEachTileCoordInExtentAndZ ([@ahocevar](https://github.com/ahocevar))
* [#5513](https://github.com/openlayers/ol3/pull/5513) - Add getters for min and max resolution of the view ([@bartvde](https://github.com/bartvde))
* [#5471](https://github.com/openlayers/ol3/pull/5471) - Fix GPX write of xsi ns ([@probins](https://github.com/probins))
* [#5134](https://github.com/openlayers/ol3/pull/5134) - Remove goog.dom ([@nicholas-l](https://github.com/nicholas-l))
* [#5511](https://github.com/openlayers/ol3/pull/5511) - Do not optimize lines away entirely ([@ahocevar](https://github.com/ahocevar))
* [#5509](https://github.com/openlayers/ol3/pull/5509) - Make it easier to work with tile ranges in custom source implementations ([@ahocevar](https://github.com/ahocevar))
* [#5498](https://github.com/openlayers/ol3/pull/5498) - Update eslint to version 2.13.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5495](https://github.com/openlayers/ol3/pull/5495) - Get rid of goog.isFunction ([@fredj](https://github.com/fredj))
* [#5499](https://github.com/openlayers/ol3/pull/5499) - Update glob to version 7.0.5 🚀 ([@openlayers](https://github.com/openlayers))
* [#5125](https://github.com/openlayers/ol3/pull/5125) - Remove goog style ([@nicholas-l](https://github.com/nicholas-l))
* [#5494](https://github.com/openlayers/ol3/pull/5494) - Remove goog.global ([@probins](https://github.com/probins))
* [#5492](https://github.com/openlayers/ol3/pull/5492) - Update eslint to version 2.13.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5490](https://github.com/openlayers/ol3/pull/5490) - Update glob to version 7.0.4 🚀 ([@openlayers](https://github.com/openlayers))
* [#5460](https://github.com/openlayers/ol3/pull/5460) - Update eslint to version 2.12.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5479](https://github.com/openlayers/ol3/pull/5479) - Update slimerjs to version 0.906.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#5474](https://github.com/openlayers/ol3/pull/5474) - Update clean-css to version 3.4.18 🚀 ([@openlayers](https://github.com/openlayers))
* [#5450](https://github.com/openlayers/ol3/pull/5450) - Remove sub-namespaces from all remaining typedefs ([@probins](https://github.com/probins))
* [#5465](https://github.com/openlayers/ol3/pull/5465) - Fix custom icon positions and rotation ([@ahocevar](https://github.com/ahocevar))
* [#5469](https://github.com/openlayers/ol3/pull/5469) - Fix typo ([@gberaudo](https://github.com/gberaudo))
* [#5453](https://github.com/openlayers/ol3/pull/5453) - Reference ol.MapBrowserEvent instead of ol.MapBrowserPointerEvent ([@ahocevar](https://github.com/ahocevar))
* [#5208](https://github.com/openlayers/ol3/pull/5208) - Stop GPX writing rtept properties ([@probins](https://github.com/probins))
* [#5452](https://github.com/openlayers/ol3/pull/5452) - Update eslint-config-openlayers to version 5.0.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5432](https://github.com/openlayers/ol3/pull/5432) - Remove use of goog.uri ([@bjornharrtell](https://github.com/bjornharrtell))
* [#5449](https://github.com/openlayers/ol3/pull/5449) - Make example data/ paths absolute for source view and JSFiddle ([@ahocevar](https://github.com/ahocevar))
* [#5399](https://github.com/openlayers/ol3/pull/5399) - Remove ol.raster namespace ([@probins](https://github.com/probins))
* [#5270](https://github.com/openlayers/ol3/pull/5270) - Load erroneous image in ol.Image#load and ol.ImageTile#load ([@fredj](https://github.com/fredj))
* [#5194](https://github.com/openlayers/ol3/pull/5194) - Get rid of goog.inherits and goog.base ([@fredj](https://github.com/fredj))
* [#5427](https://github.com/openlayers/ol3/pull/5427) - Document typedefs and enums used by API symbols ([@ahocevar](https://github.com/ahocevar))
* [#5438](https://github.com/openlayers/ol3/pull/5438) - Don't make ol.format.ogc.filter.Filter inherit from ol.Object ([@fredj](https://github.com/fredj))
* [#5433](https://github.com/openlayers/ol3/pull/5433) - Update clean-css to version 3.4.17 🚀 ([@openlayers](https://github.com/openlayers))
* [#5434](https://github.com/openlayers/ol3/pull/5434) - Fix externs in closure compiler tutorial ([@tsauerwein](https://github.com/tsauerwein))
* [#5426](https://github.com/openlayers/ol3/pull/5426) - Fix icon example to anchor popup to feature location ([@frankrowe](https://github.com/frankrowe))
* [#5421](https://github.com/openlayers/ol3/pull/5421) - Correct typo in config/jsdoc/api/readme.md ([@probins](https://github.com/probins))
* [#5417](https://github.com/openlayers/ol3/pull/5417) - Update clean-css to version 3.4.16 🚀 ([@openlayers](https://github.com/openlayers))
* [#5413](https://github.com/openlayers/ol3/pull/5413) - Update clean-css to version 3.4.15 🚀 ([@openlayers](https://github.com/openlayers))
* [#5410](https://github.com/openlayers/ol3/pull/5410) - Update eslint to version 2.11.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5408](https://github.com/openlayers/ol3/pull/5408) - Update pbf to version 2.0.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5404](https://github.com/openlayers/ol3/pull/5404) - Update eslint to version 2.11.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5402](https://github.com/openlayers/ol3/pull/5402) - Pass in srsName option to writeTransaction ([@anzhihun](https://github.com/anzhihun))
* [#5393](https://github.com/openlayers/ol3/pull/5393) - Update mocha to version 2.5.3 🚀 ([@openlayers](https://github.com/openlayers))
* [#5394](https://github.com/openlayers/ol3/pull/5394) - Update resemblejs to version 2.2.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5390](https://github.com/openlayers/ol3/pull/5390) - Fix the requestEncoding automatic selection ([@fredj](https://github.com/fredj))
* [#5392](https://github.com/openlayers/ol3/pull/5392) - Update closure-util to version 1.14.0 🚀 ([@openlayers](https://github.com/openlayers))
* [#5388](https://github.com/openlayers/ol3/pull/5388) - Update mocha to version 2.5.2 🚀 ([@openlayers](https://github.com/openlayers))
* [#5382](https://github.com/openlayers/ol3/pull/5382) - Handle UTC midnight wrap around, fixes #5371 ([@twpayne](https://github.com/twpayne))
* [#5381](https://github.com/openlayers/ol3/pull/5381) - Update mocha to version 2.5.1 🚀 ([@openlayers](https://github.com/openlayers))
* [#5383](https://github.com/openlayers/ol3/pull/5383) - Update clean-css to version 3.4.13 🚀 ([@openlayers](https://github.com/openlayers))
+9
View File
@@ -0,0 +1,9 @@
# v3.17.1
## Summary
The v3.17.1 release is a patch release that addresses a regression in the v3.17.0 release. See the [v3.17.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.17.0) for details on upgrading from v3.16.
## Fixes
* [#5548](https://github.com/openlayers/ol3/pull/5548) - Fix CHANGETYPE in ol.control.FullScreen ([@GaborFarkas](https://github.com/GaborFarkas))
-3
View File
@@ -1,3 +0,0 @@
{
"library_url": "https://github.com/google/closure-library/archive/5b25e65.zip"
}
+2 -6
View File
@@ -12,11 +12,11 @@
],
"externs": [
"externs/bingmaps.js",
"externs/cartodb.js",
"externs/bootstrap.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/example.js",
"externs/fastclick.js",
"externs/geojson.js",
"externs/jquery-1.9.js",
"externs/proj4js.js",
@@ -24,18 +24,14 @@
"externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"useOfGoogBase",
"unnecessaryCasts",
"lintChecks",
"analyzerChecks",
"missingProvide",
"unknownDefines"
],
+3 -8
View File
@@ -13,30 +13,25 @@
"externs": [
"externs/bingmaps.js",
"externs/bootstrap.js",
"externs/cartodb.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/example.js",
"externs/fastclick.js",
"externs/geojson.js",
"externs/jspdf.js",
"externs/jquery-1.9.js",
"externs/proj4js.js",
"externs/tilejson.js",
"externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"useOfGoogBase",
"unnecessaryCasts",
"lintChecks"
"lintChecks",
"analyzerChecks"
],
"extra_annotation_name": [
"api", "observable"
+46 -4
View File
@@ -5,26 +5,42 @@
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="./resources/prism/prism.css" type="text/css">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="./resources/layout.css" type="text/css">
{{{ extraHead.local }}}
{{{ css.tag }}}
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,Function.prototype.bind|gated"></script>
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,requestAnimationFrame,Element.prototype.classList"></script>
<script src="./resources/zeroclipboard/ZeroClipboard.min.js"></script>
<title>{{ title }}</title>
</head>
<body>
<header class="navbar" role="navigation">
<div class="container" id="navbar-inner-container">
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png">&nbsp;OpenLayers 3 Examples</a>
<div class="container">
<div class="display-table pull-left" id="navbar-logo-container">
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png">&nbsp;OpenLayers Examples</a>
</div>
<!-- menu items that get hidden below 768px width -->
<nav class='collapse navbar-collapse navbar-responsive-collapse'>
<ul class="nav navbar-nav pull-right">
<li><a href="../doc">Docs</a></li>
<li><a class="active" href="index.html">Examples</a></li>
<li><a href="../apidoc">API</a></li>
<li><a href="https://github.com/openlayers/ol3">Code</a></li>
</ul>
</nav>
</div>
</header>
<div class="container-fluid">
<div id="latest-check" class="alert alert-warning alert-dismissible" role="alert" style="display:none">
<button id="latest-dismiss" type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
This example uses OpenLayers v<span>{{ olVersion }}</span>. The <a id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
</div>
<div class="row-fluid">
<div class="span12">
<h4 id="title">{{ title }}</h4>
@@ -74,4 +90,30 @@
<script src="./resources/prism/prism.min.js"></script>
{{{ js.tag }}}
</body>
<script>
var packageUrl = 'https://raw.githubusercontent.com/openlayers/openlayers.github.io/build/package.json';
fetch(packageUrl).then(function(response) {
return response.json();
}).then(function(json) {
var latestVersion = json.version;
document.getElementById('latest-version').innerHTML = latestVersion;
var url = window.location.href;
var branchSearch = url.match(/\/([^\/]*)\/examples\//);
var cookieText = 'dismissed=-' + latestVersion + '-';
var dismissed = document.cookie.indexOf(cookieText) != -1;
if (!dismissed && /^v[0-9\.]*$/.test(branchSearch[1]) && '{{ olVersion }}' != latestVersion) {
var link = url.replace(branchSearch[0], '/latest/examples/');
fetch(link, {method: 'head'}).then(function(response) {
var a = document.getElementById('latest-link');
a.href = response.status == 200 ? link : '../../latest/examples/';
});
var latestCheck = document.getElementById('latest-check');
latestCheck.style.display = '';
document.getElementById('latest-dismiss').onclick = function() {
latestCheck.style.display = 'none';
document.cookie = cookieText;
}
}
});
</script>
</html>
+23
View File
@@ -39,3 +39,26 @@ Interactions for [vector features](ol.Feature.html)
[ol.Geolocation](ol.Geolocation.html)<br>
[ol.Overlay](ol.Overlay.html)<br></td>
</tr></table>
&nbsp;
#### API change policy
The OpenLayers 3.x API consists of
* names of classes, class methods and properties
* names of static functions and constants
* order and types of function arguments
* types of function return values
API elements marked as `experimental` provide stable and functioning code, but may change.
Any changes will be documented in upgrade notes so application code can be changed appropriately
before using the new version of the library. All other API elements will remain compatible throughout the 3.x releases so that no changes to existing application code are necessary when upgrading to a later version.
*Note*: The API change policy does not cover CSS class names that are used to theme the
OpenLayers UI.
*Note for Closure Compiler users compiling their application code together with OpenLayers*:
The names of types other than those in the list above (e.g. `ol.Pixel`) are subject to change. It
is therefore recommended to either use the resolved type as listed in the API docs (e.g.
`Array.<number>` instead of `ol.Pixel`), or pay attention to the upgrade notes, which will list
the changes for those types.
+35 -5
View File
@@ -11,6 +11,7 @@ exports.defineTags = function(dictionary) {
canHaveType: false,
canHaveName: false,
onTagged: function(doclet, tag) {
includeTypes(doclet);
var level = tag.text || "experimental";
if (levels.indexOf(level) >= 0) {
doclet.stability = level;
@@ -25,11 +26,15 @@ exports.defineTags = function(dictionary) {
/*
* Based on @stability annotations, and assuming that items with no @stability
* annotation should not be documented, this plugin removes undocumented symbols
* Based on @api annotations, and assuming that items with no @api annotation
* should not be documented, this plugin removes undocumented symbols
* from the documentation.
*/
var api = [];
var classes = {};
var types = {};
function hasApiMembers(doclet) {
return doclet.longname.split('#')[0] == this.longname;
}
@@ -71,8 +76,30 @@ function includeAugments(doclet) {
}
}
var api = [];
var classes = {};
function extractTypes(item) {
item.type.names.forEach(function(type) {
var match = type.match(/^(.*<)?([^>]*)>?$/);
if (match) {
types[match[2]] = true;
}
});
}
function includeTypes(doclet) {
if (doclet.params && doclet.kind != 'class') {
doclet.params.forEach(extractTypes);
}
if (doclet.returns) {
doclet.returns.forEach(extractTypes);
}
if (doclet.isEnum) {
types[doclet.meta.code.name] = true;
}
if (doclet.type && doclet.meta.code.type == 'MemberExpression') {
// types in olx.js
extractTypes(doclet);
}
}
exports.handlers = {
@@ -80,6 +107,9 @@ exports.handlers = {
var doclet = e.doclet;
// Keep track of api items - needed in parseComplete to determine classes
// with api members.
if (doclet.meta.filename == 'olx.js' && doclet.kind == 'typedef') {
doclet.undocumented = false;
}
if (doclet.stability) {
api.push(doclet);
}
@@ -120,7 +150,7 @@ exports.handlers = {
// constructor from the docs.
doclet._hideConstructor = true;
includeAugments(doclet);
} else if (!doclet._hideConstructor) {
} else if (doclet.undocumented !== false && !doclet._hideConstructor && !(doclet.kind == 'typedef' && doclet.longname in types)) {
// Remove all other undocumented symbols
doclet.undocumented = true;
}
-4
View File
@@ -89,10 +89,6 @@ exports.handlers = {
newDoclet: function(e) {
var doclet = e.doclet;
if (doclet.meta.filename == 'olx.js') {
// do nothing if not marked @api
if (!doclet.stability) {
return;
}
if (doclet.kind == 'typedef') {
lastOlxTypedef = doclet;
olxTypeNames.push(doclet.longname);
+1 -1
View File
@@ -24,7 +24,7 @@ The second line tells the Closure compiler the type of the argument.
The third line (`@api`) marks the method as part of the api and thus exportable. The stability can be added as value, e.g. `@api stable`. Without such an api annotation, the method will not be documented in the generated API documentation. Symbols without an api annotation will also not be exportable (unless they are explicitly exported with a `goog.exportProperty` call).
The `@api` annotation can be used in conjunciton with the `@inheritDoc` annotation to export a symbol that is documented on a parent class (where the method may be abstract). In general, `@api` annotations should never be used on abstract methods (only on their implementations).
The `@api` annotation can be used in conjunction with the `@inheritDoc` annotation to export a symbol that is documented on a parent class (where the method may be abstract). In general, `@api` annotations should never be used on abstract methods (only on their implementations).
### Events
+4 -11
View File
@@ -113,7 +113,8 @@ function generate(title, docs, filename, resolveLinks) {
var docData = {
filename: filename,
title: title,
docs: docs
docs: docs,
packageInfo: ( find({kind: 'package'}) || [] ) [0]
};
var outpath = path.join(outdir, filename),
@@ -327,11 +328,6 @@ exports.publish = function(taffyData, opts, tutorials) {
}
});
// update outdir if necessary, then create outdir
var packageInfo = ( find({kind: 'package'}) || [] ) [0];
if (packageInfo && packageInfo.name) {
outdir = path.join(outdir, packageInfo.name, packageInfo.version);
}
fs.mkPath(outdir);
// copy the template's static files to outdir
@@ -439,13 +435,10 @@ exports.publish = function(taffyData, opts, tutorials) {
if (members.globals.length) { generate('Global', [{kind: 'globalobj'}], globalUrl); }
// index page displays information from package.json and lists files
var files = find({kind: 'file'}),
packages = find({kind: 'package'});
var files = find({kind: 'file'});
generate('Index',
packages.concat(
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}]
).concat(files),
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}].concat(files),
indexUrl);
// set up the lists that we'll use to generate pages
@@ -53,20 +53,44 @@ $(function () {
$(window).on('resize', _onResize);
_onResize();
var currentVersion = document.getElementById('package-version').innerHTML;
// warn about outdated version
var packageUrl = 'https://raw.githubusercontent.com/openlayers/openlayers.github.io/build/package.json';
fetch(packageUrl).then(function(response) {
return response.json();
}).then(function(json) {
var latestVersion = json.version;
document.getElementById('latest-version').innerHTML = latestVersion;
var url = window.location.href;
var branchSearch = url.match(/\/([^\/]*)\/apidoc\//);
var cookieText = 'dismissed=-' + latestVersion + '-';
var dismissed = document.cookie.indexOf(cookieText) != -1;
if (!dismissed && /^v[0-9\.]*$/.test(branchSearch[1]) && currentVersion != latestVersion) {
var link = url.replace(branchSearch[0], '/latest/apidoc/');
fetch(link, {method: 'head'}).then(function(response) {
var a = document.getElementById('latest-link');
a.href = response.status == 200 ? link : '../../latest/apidoc/';
});
var latestCheck = document.getElementById('latest-check');
latestCheck.style.display = '';
document.getElementById('latest-dismiss').onclick = function() {
latestCheck.style.display = 'none';
document.cookie = cookieText;
}
}
});
// create source code links to github
var srcLinks = $('div.tag-source');
var masterSearch = window.location.href.match(/\/([^\/]*\/)apidoc\//);
if (masterSearch && masterSearch.length) {
var branch = masterSearch[1];
srcLinks.each(function(i, el) {
var textParts = el.innerHTML.trim().split(', ');
var link = 'https://github.com/openlayers/ol3/blob/' + branch +
textParts[0];
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
'<a href="' + link + textParts[1].replace('line ', '#l') + '">' +
textParts[1] + '</a>';
});
}
srcLinks.each(function(i, el) {
var textParts = el.innerHTML.trim().split(', ');
var link = 'https://github.com/openlayers/ol3/blob/v' + currentVersion + '/' +
textParts[0];
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
'<a href="' + link + textParts[1].replace('line ', '#l') + '">' +
textParts[1] + '</a>';
});
// show/hide unstable items
var links = $('a[href^="ol."]');
@@ -416,3 +416,7 @@ footer {
left: 250px;
font-weight: normal;
}
#latest-check {
margin-top: -10px;
margin-bottom: 10px;
}
+9 -1
View File
@@ -1,8 +1,12 @@
<?js
var version = obj.packageInfo.version;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OpenLayers 3 API Reference - <?js= title ?></title>
<title>OpenLayers v<?js= version ?> API - <?js= title ?></title>
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch"></script>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<script src="scripts/jquery.min.js"> </script>
@@ -36,6 +40,10 @@
<?js= this.partial('navigation.tmpl', this) ?>
<div class="main">
<h1 class="page-title" data-filename="<?js= filename ?>"><?js= title ?></h1>
<div id="latest-check" class="alert alert-warning alert-dismissible" role="alert" style="display:none">
<button id="latest-dismiss" type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
This documentation is for OpenLayers v<span id="package-version"><?js= version ?></span>. The <a id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
</div>
<?js= content ?>
</div>
</div>
@@ -39,7 +39,7 @@ var self = this;
<?js
item.typedefs.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>" class="<?js= v.stability !== 'stable' ? 'unstable' : ''?>">
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability !== 'stable') ? 'unstable' : ''?>">
<?js= self.linkto(v.longname, v.name) ?>
</li>
<?js
@@ -56,7 +56,7 @@ var self = this;
item.methods.forEach(function (v) {
?>
<li data-name="<?js= v.longname ?>" class="<?js= v.stability !== 'stable' ? 'unstable' : ''?>">
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability !== 'stable') ? 'unstable' : ''?>">
<?js= self.linkto(v.longname, v.name) ?>
</li>
<?js
@@ -73,7 +73,7 @@ var self = this;
item.fires.forEach(function (v) {
v = self.find({longname: v})[0] || {longname: v, name: v.split(/#?event:/)[1]};
?>
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability != 'stable' ? 'unstable' : '') ?>">
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability != 'stable') ? 'unstable' : '' ?>">
<?js= self.linkto(v.longname, v.name) ?>
</li>
<?js
@@ -84,4 +84,4 @@ var self = this;
</li>
<?js }); ?>
</ul>
</div>
</div>
@@ -21,7 +21,7 @@
var setter = prop.readonly ? 'no' : 'yes';
?>
<tr class="<?js= prop.stability !== 'stable' ? 'unstable' : '' ?>">
<tr class="<?js= (prop.stability && prop.stability !== 'stable') ? 'unstable' : '' ?>">
<td class="name"><code><?js= prop.name ?></code></td>
<td class="type">
<?js if (prop.type && prop.type.names) {?>
@@ -2,6 +2,6 @@
var data = obj;
var self = this;
if (data.stability != 'stable') { ?>
if (data.stability && data.stability != 'stable') { ?>
<span class="stability <?js= data.stability ?>"><?js= data.stability ?></span>
<?js } ?>
+3 -3
View File
@@ -1,5 +1,5 @@
<section>
<header>
<?js if (children.length > 0) { ?>
<ul><?js
@@ -10,10 +10,10 @@
<?js } ?>
<h2><?js= header ?></h2>
</header>
</header>
<article>
<?js= content ?>
</article>
</section>
</section>
+3 -6
View File
@@ -4,6 +4,7 @@
"compile": {
"externs": [
"externs/bingmaps.js",
"externs/cartodb.js",
"externs/closure-compiler.js",
"externs/esrijson.js",
"externs/geojson.js",
@@ -14,18 +15,14 @@
"externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"
],
"jscomp_error": [
"*"
],
"jscomp_off": [
"useOfGoogBase",
"unnecessaryCasts",
"lintChecks"
"lintChecks",
"analyzerChecks"
],
"extra_annotation_name": [
"api", "observable"
+241
View File
@@ -0,0 +1,241 @@
.ol-box {
box-sizing: border-box;
border-radius: 2px;
border: 2px solid blue;
}
.ol-mouse-position {
top: 8px;
right: 8px;
position: absolute;
}
.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;
text-align: center;
margin: 1px;
will-change: contents, width;
}
.ol-overlay-container {
will-change: left,right,top,bottom;
}
.ol-unsupported {
display: none;
}
.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-control {
position: absolute;
background-color: rgba(255,255,255,0.4);
border-radius: 4px;
padding: 2px;
}
.ol-control:hover {
background-color: rgba(255,255,255,0.6);
}
.ol-zoom {
top: .5em;
left: .5em;
}
.ol-rotate {
top: .5em;
right: .5em;
transition: opacity .25s linear, visibility 0s linear;
}
.ol-rotate.ol-hidden {
opacity: 0;
visibility: hidden;
transition: opacity .25s linear, visibility 0s linear .25s;
}
.ol-zoom-extent {
top: 4.643em;
left: .5em;
}
.ol-full-screen {
right: .5em;
top: .5em;
}
@media print {
.ol-control {
display: none;
}
}
.ol-control button {
display: block;
margin: 1px;
padding: 0;
color: white;
font-size: 1.14em;
font-weight: bold;
text-decoration: none;
text-align: center;
height: 1.375em;
width: 1.375em;
line-height: .4em;
background-color: rgba(0,60,136,0.5);
border: none;
border-radius: 2px;
}
.ol-control button::-moz-focus-inner {
border: none;
padding: 0;
}
.ol-zoom-extent button {
line-height: 1.4em;
}
.ol-compass {
display: block;
font-weight: normal;
font-size: 1.2em;
will-change: transform;
}
.ol-touch .ol-control button {
font-size: 1.5em;
}
.ol-touch .ol-zoom-extent {
top: 5.5em;
}
.ol-control button:hover,
.ol-control button:focus {
text-decoration: none;
background-color: rgba(0,60,136,0.7);
}
.ol-zoom .ol-zoom-in {
border-radius: 2px 2px 0 0;
}
.ol-zoom .ol-zoom-out {
border-radius: 0 0 2px 2px;
}
.ol-attribution {
text-align: right;
bottom: .5em;
right: .5em;
max-width: calc(100% - 1.3em);
}
.ol-attribution ul {
margin: 0;
padding: 0 .5em;
font-size: .7rem;
line-height: 1.375em;
color: #000;
text-shadow: 0 0 2px #fff;
}
.ol-attribution li {
display: inline;
list-style: none;
line-height: inherit;
}
.ol-attribution li:not(:last-child):after {
content: " ";
}
.ol-attribution img {
max-height: 2em;
max-width: inherit;
vertical-align: middle;
}
.ol-attribution ul, .ol-attribution button {
display: inline-block;
}
.ol-attribution.ol-collapsed ul {
display: none;
}
.ol-attribution.ol-logo-only ul {
display: block;
}
.ol-attribution:not(.ol-collapsed) {
background: rgba(255,255,255,0.8);
}
.ol-attribution.ol-uncollapsible {
bottom: 0;
right: 0;
border-radius: 4px 0 0;
height: 1.1em;
line-height: 1em;
}
.ol-attribution.ol-logo-only {
background: transparent;
bottom: .4em;
height: 1.1em;
line-height: 1em;
}
.ol-attribution.ol-uncollapsible img {
margin-top: -.2em;
max-height: 1.6em;
}
.ol-attribution.ol-logo-only button,
.ol-attribution.ol-uncollapsible button {
display: none;
}
.ol-zoomslider {
top: 4.5em;
left: .5em;
height: 200px;
}
.ol-zoomslider button {
position: relative;
height: 10px;
}
.ol-touch .ol-zoomslider {
top: 5.5em;
}
.ol-overviewmap {
left: 0.5em;
bottom: 0.5em;
}
.ol-overviewmap.ol-uncollapsible {
bottom: 0;
left: 0;
border-radius: 0 4px 0 0;
}
.ol-overviewmap .ol-overviewmap-map,
.ol-overviewmap button {
display: inline-block;
}
.ol-overviewmap .ol-overviewmap-map {
border: 1px solid #7b98bc;
height: 150px;
margin: 2px;
width: 150px;
}
.ol-overviewmap:not(.ol-collapsed) button{
bottom: 1px;
left: 2px;
position: absolute;
}
.ol-overviewmap.ol-collapsed .ol-overviewmap-map,
.ol-overviewmap.ol-uncollapsible button {
display: none;
}
.ol-overviewmap:not(.ol-collapsed) {
background: rgba(255,255,255,0.8);
}
.ol-overviewmap-box {
border: 2px dotted rgba(0,60,136,0.7);
}
+109180
View File
File diff suppressed because it is too large Load Diff
Vendored
+1
View File
@@ -0,0 +1 @@
.ol-control,.ol-scale-line{position:absolute;padding:2px}.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width}.ol-overlay-container{will-change:left,right,top,bottom}.ol-unsupported{display:none}.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:transparent}.ol-control{background-color:rgba(255,255,255,.4);border-radius:4px}.ol-control:hover{background-color:rgba(255,255,255,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}@media print{.ol-control{display:none}}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0 .5em;font-size:.7rem;line-height:1.375em;color:#000;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none;line-height:inherit}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution.ol-logo-only ul{display:block}.ol-attribution:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0;height:1.1em;line-height:1em}.ol-attribution.ol-logo-only{background:0 0;bottom:.4em;height:1.1em;line-height:1em}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-logo-only button,.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)}
Vendored
+990
View File
@@ -0,0 +1,990 @@
// OpenLayers 3. See http://openlayers.org/
// License: https://raw.githubusercontent.com/openlayers/ol3/master/LICENSE.md
// Version: v3.16.0-192-g5d8b99a
(function (root, factory) {
if (typeof exports === "object") {
module.exports = factory();
} else if (typeof define === "function" && define.amd) {
define([], factory);
} else {
root.ol = factory();
}
}(this, function () {
var OPENLAYERS = {};
var k,aa=this;function ca(a){a.$b=function(){return a.Tg?a.Tg:a.Tg=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 ea(a){return"string"==typeof a}function fa(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function t(a){return a[ga]||(a[ga]=++ha)}var ga="closure_uid_"+(1E9*Math.random()>>>0),ha=0;function ia(a,b,c){return a.call.apply(a.bind,arguments)}
function ja(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function ka(a,b,c){ka=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ia:ja;return ka.apply(null,arguments)}
function u(a,b){var c=a.split("."),d=OPENLAYERS||aa;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d[e]?d=d[e]:d=d[e]={}:d[e]=b};var la,na;function x(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function oa(){}var pa=Function("return this")();var qa=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};function ra(a,b){return a<b?-1:a>b?1:0};function sa(a,b,c){return Math.min(Math.max(a,b),c)}var ta=function(){var a;"cosh"in Math?a=Math.cosh:a=function(a){a=Math.exp(a);return(a+1/a)/2};return a}();function ua(a,b,c,d,e,f){var g=e-c,h=f-d;if(0!==g||0!==h){var l=((a-c)*g+(b-d)*h)/(g*g+h*h);1<l?(c=e,d=f):0<l&&(c+=g*l,d+=h*l)}return va(a,b,c,d)}function va(a,b,c,d){a=c-a;b=d-b;return a*a+b*b}function wa(a){return a*Math.PI/180}function xa(a,b){var c=a%b;return 0>c*b?c+b:c}function ya(a,b,c){return a+c*(b-a)};function za(a){return function(b){if(b)return[sa(b[0],a[0],a[2]),sa(b[1],a[1],a[3])]}}function Aa(a){return a};function Ba(a,b,c){this.center=a;this.resolution=b;this.rotation=c};var Ca="function"===typeof Object.assign?Object.assign:function(a,b){if(!a||!a)throw new TypeError("Cannot convert undefined or null to object");for(var c=Object(a),d=1,e=arguments.length;d<e;++d){var f=arguments[d];if(void 0!==f&&null!==f)for(var g in f)f.hasOwnProperty(g)&&(c[g]=f[g])}return c};function Da(a){for(var b in a)delete a[b]}function Ea(a){var b=[],c;for(c in a)b.push(a[c]);return b}function Ga(a){for(var b in a)return!1;return!b};var Ha="olm_"+(1E4*Math.random()|0);function Ia(a){function b(b){var d=a.listener,e=a.ng||a.target;a.pg&&Ka(a);return d.call(e,b)}return a.og=b}function La(a,b,c,d){for(var e,f=0,g=a.length;f<g;++f)if(e=a[f],e.listener===b&&e.ng===c)return d&&(e.deleteIndex=f),e}function Ma(a,b){var c=a[Ha];return c?c[b]:void 0}function Na(a){var b=a[Ha];b||(b=a[Ha]={});return b}
function Oa(a,b){var c=Ma(a,b);if(c){for(var d=0,e=c.length;d<e;++d)a.removeEventListener(b,c[d].og),Da(c[d]);c.length=0;if(c=a[Ha])delete c[b],0===Object.keys(c).length&&delete a[Ha]}}function B(a,b,c,d,e){var f=Na(a),g=f[b];g||(g=f[b]=[]);(f=La(g,c,d,!1))?e||(f.pg=!1):(f={ng:d,pg:!!e,listener:c,target:a,type:b},a.addEventListener(b,Ia(f)),g.push(f));return f}function Pa(a,b,c,d){return B(a,b,c,d,!0)}function Qa(a,b,c,d){(a=Ma(a,b))&&(c=La(a,c,d,!0))&&Ka(c)}
function Ka(a){if(a&&a.target){a.target.removeEventListener(a.type,a.og);var b=Ma(a.target,a.type);if(b){var c="deleteIndex"in a?a.deleteIndex:b.indexOf(a);-1!==c&&b.splice(c,1);0===b.length&&Oa(a.target,a.type)}Da(a)}}function Ra(a){var b=Na(a),c;for(c in b)Oa(a,c)};function Sa(){}Sa.prototype.Hb=!1;function Ta(a){a.Hb||(a.Hb=!0,a.ka())}Sa.prototype.ka=oa;function Ua(a){this.type=a;this.target=null}Ua.prototype.preventDefault=Ua.prototype.stopPropagation=function(){this.to=!0};function Va(a){a.stopPropagation()}function Wa(a){a.preventDefault()};function Xa(){this.Ra={};this.Aa={};this.ya={}}x(Xa,Sa);Xa.prototype.addEventListener=function(a,b){var c=this.ya[a];c||(c=this.ya[a]=[]);-1===c.indexOf(b)&&c.push(b)};
Xa.prototype.b=function(a){var b="string"===typeof a?new Ua(a):a;a=b.type;b.target=this;var c=this.ya[a],d;if(c){a in this.Aa||(this.Aa[a]=0,this.Ra[a]=0);++this.Aa[a];for(var e=0,f=c.length;e<f;++e)if(!1===c[e].call(this,b)||b.to){d=!1;break}--this.Aa[a];if(0===this.Aa[a]){b=this.Ra[a];for(delete this.Ra[a];b--;)this.removeEventListener(a,oa);delete this.Aa[a]}return d}};Xa.prototype.ka=function(){Ra(this)};function Ya(a,b){return b?b in a.ya:0<Object.keys(a.ya).length}
Xa.prototype.removeEventListener=function(a,b){var c=this.ya[a];if(c){var d=c.indexOf(b);a in this.Ra?(c[d]=oa,++this.Ra[a]):(c.splice(d,1),0===c.length&&delete this.ya[a])}};function Za(){Xa.call(this);this.g=0}x(Za,Xa);function $a(a){if(Array.isArray(a))for(var b=0,c=a.length;b<c;++b)Ka(a[b]);else Ka(a)}k=Za.prototype;k.u=function(){++this.g;this.b("change")};k.K=function(){return this.g};k.I=function(a,b,c){if(Array.isArray(a)){for(var d=a.length,e=Array(d),f=0;f<d;++f)e[f]=B(this,a[f],b,c);return e}return B(this,a,b,c)};k.L=function(a,b,c){if(Array.isArray(a)){for(var d=a.length,e=Array(d),f=0;f<d;++f)e[f]=Pa(this,a[f],b,c);return e}return Pa(this,a,b,c)};
k.J=function(a,b,c){if(Array.isArray(a))for(var d=0,e=a.length;d<e;++d)Qa(this,a[d],b,c);else Qa(this,a,b,c)};k.M=$a;function ab(a,b,c){Ua.call(this,a);this.key=b;this.oldValue=c}x(ab,Ua);function bb(a){Za.call(this);t(this);this.U={};void 0!==a&&this.G(a)}x(bb,Za);var cb={};function db(a){return cb.hasOwnProperty(a)?cb[a]:cb[a]="change:"+a}k=bb.prototype;k.get=function(a){var b;this.U.hasOwnProperty(a)&&(b=this.U[a]);return b};k.N=function(){return Object.keys(this.U)};k.O=function(){return Ca({},this.U)};function eb(a,b,c){var d;d=db(b);a.b(new ab(d,b,c));a.b(new ab("propertychange",b,c))}
k.set=function(a,b,c){c?this.U[a]=b:(c=this.U[a],this.U[a]=b,c!==b&&eb(this,a,c))};k.G=function(a,b){for(var c in a)this.set(c,a[c],b)};k.R=function(a,b){if(a in this.U){var c=this.U[a];delete this.U[a];b||eb(this,a,c)}};function fb(a,b){return a>b?1:a<b?-1:0}function gb(a,b){return 0<=a.indexOf(b)}function hb(a,b,c){var d=a.length;if(a[0]<=b)return 0;if(!(b<=a[d-1]))if(0<c)for(c=1;c<d;++c){if(a[c]<b)return c-1}else if(0>c)for(c=1;c<d;++c){if(a[c]<=b)return c}else for(c=1;c<d;++c){if(a[c]==b)return c;if(a[c]<b)return a[c-1]-b<b-a[c]?c-1:c}return d-1}function ib(a){return a.reduce(function(a,c){return Array.isArray(c)?a.concat(ib(c)):a.concat(c)},[])}
function jb(a,b){var c;c=da(b);var d="array"==c||"object"==c&&"number"==typeof b.length?b:[b],e=d.length;for(c=0;c<e;c++)a[a.length]=d[c]}function kb(a,b){var c=a.indexOf(b),d=-1<c;d&&a.splice(c,1);return d}function lb(a,b){for(var c=a.length>>>0,d,e=0;e<c;e++)if(d=a[e],b(d,e,a))return d;return null}function mb(a,b){var c=a.length;if(c!==b.length)return!1;for(var d=0;d<c;d++)if(a[d]!==b[d])return!1;return!0}
function nb(a){var b=ob,c=a.length,d=Array(a.length),e;for(e=0;e<c;e++)d[e]={index:e,value:a[e]};d.sort(function(a,c){return b(a.value,c.value)||a.index-c.index});for(e=0;e<a.length;e++)a[e]=d[e].value}function pb(a,b){var c;return a.every(function(d,e){c=e;return!b(d,e,a)})?-1:c};function qb(a){return function(b,c,d){if(void 0!==b)return b=hb(a,b,d),b=sa(b+c,0,a.length-1),a[b]}}function rb(a,b,c){return function(d,e,f){if(void 0!==d)return d=Math.max(Math.floor(Math.log(b/d)/Math.log(a)+(0<f?0:0>f?1:.5))+e,0),void 0!==c&&(d=Math.min(d,c)),b/Math.pow(a,d)}};function sb(a){if(void 0!==a)return 0}function tb(a,b){if(void 0!==a)return a+b}function ub(a){var b=2*Math.PI/a;return function(a,d){if(void 0!==a)return a=Math.floor((a+d)/b+.5)*b}}function vb(){var a=wa(5);return function(b,c){if(void 0!==b)return Math.abs(b+c)<=a?0:b+c}};function wb(a,b){var c=void 0!==b?a.toFixed(b):""+a,d=c.indexOf("."),d=-1===d?c.length:d;return 2<d?c:Array(3-d).join("0")+c}function xb(a){a=(""+a).split(".");for(var b=["1","3"],c=0;c<Math.max(a.length,b.length);c++){var d=parseInt(a[c]||"0",10),e=parseInt(b[c]||"0",10);if(d>e)return 1;if(e>d)return-1}return 0};function yb(a,b){a[0]+=b[0];a[1]+=b[1];return a}function zb(a,b){var c=a[0],d=a[1],e=b[0],f=b[1],g=e[0],e=e[1],h=f[0],f=f[1],l=h-g,m=f-e,c=0===l&&0===m?0:(l*(c-g)+m*(d-e))/(l*l+m*m||0);0>=c||(1<=c?(g=h,e=f):(g+=c*l,e+=c*m));return[g,e]}function Ab(a,b,c){a=xa(a+180,360)-180;var d=Math.abs(3600*a);return Math.floor(d/3600)+"\u00b0 "+wb(Math.floor(d/60%60))+"\u2032 "+wb(d%60,c||0)+"\u2033 "+b.charAt(0>a?1:0)}
function Bb(a,b,c){return a?b.replace("{x}",a[0].toFixed(c)).replace("{y}",a[1].toFixed(c)):""}function Cb(a,b){for(var c=!0,d=a.length-1;0<=d;--d)if(a[d]!=b[d]){c=!1;break}return c}function Db(a,b){var c=Math.cos(b),d=Math.sin(b),e=a[1]*c+a[0]*d;a[0]=a[0]*c-a[1]*d;a[1]=e;return a}function Eb(a,b){var c=a[0]-b[0],d=a[1]-b[1];return c*c+d*d}function Fb(a,b){return Eb(a,zb(a,b))}function Gb(a,b){return Bb(a,"{x}, {y}",b)};function Ib(a){for(var b=Jb(),c=0,d=a.length;c<d;++c)Lb(b,a[c]);return b}function Mb(a,b,c){return c?(c[0]=a[0]-b,c[1]=a[1]-b,c[2]=a[2]+b,c[3]=a[3]+b,c):[a[0]-b,a[1]-b,a[2]+b,a[3]+b]}function Ob(a,b){return b?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b):a.slice()}function Pb(a,b,c){b=b<a[0]?a[0]-b:a[2]<b?b-a[2]:0;a=c<a[1]?a[1]-c:a[3]<c?c-a[3]:0;return b*b+a*a}function Qb(a,b){return Rb(a,b[0],b[1])}function Sb(a,b){return a[0]<=b[0]&&b[2]<=a[2]&&a[1]<=b[1]&&b[3]<=a[3]}
function Rb(a,b,c){return a[0]<=b&&b<=a[2]&&a[1]<=c&&c<=a[3]}function Tb(a,b){var c=a[1],d=a[2],e=a[3],f=b[0],g=b[1],h=0;f<a[0]?h|=16:f>d&&(h|=4);g<c?h|=8:g>e&&(h|=2);0===h&&(h=1);return h}function Jb(){return[Infinity,Infinity,-Infinity,-Infinity]}function Vb(a,b,c,d,e){return e?(e[0]=a,e[1]=b,e[2]=c,e[3]=d,e):[a,b,c,d]}function Wb(a,b){var c=a[0],d=a[1];return Vb(c,d,c,d,b)}function Yb(a,b,c,d,e){e=Vb(Infinity,Infinity,-Infinity,-Infinity,e);return Zb(e,a,b,c,d)}
function $b(a,b){return a[0]==b[0]&&a[2]==b[2]&&a[1]==b[1]&&a[3]==b[3]}function ac(a,b){b[0]<a[0]&&(a[0]=b[0]);b[2]>a[2]&&(a[2]=b[2]);b[1]<a[1]&&(a[1]=b[1]);b[3]>a[3]&&(a[3]=b[3]);return a}function Lb(a,b){b[0]<a[0]&&(a[0]=b[0]);b[0]>a[2]&&(a[2]=b[0]);b[1]<a[1]&&(a[1]=b[1]);b[1]>a[3]&&(a[3]=b[1])}function Zb(a,b,c,d,e){for(;c<d;c+=e){var f=a,g=b[c],h=b[c+1];f[0]=Math.min(f[0],g);f[1]=Math.min(f[1],h);f[2]=Math.max(f[2],g);f[3]=Math.max(f[3],h)}return a}
function bc(a,b,c){var d;return(d=b.call(c,cc(a)))||(d=b.call(c,dc(a)))||(d=b.call(c,ec(a)))?d:(d=b.call(c,fc(a)))?d:!1}function hc(a){var b=0;ic(a)||(b=jc(a)*kc(a));return b}function cc(a){return[a[0],a[1]]}function dc(a){return[a[2],a[1]]}function lc(a){return[(a[0]+a[2])/2,(a[1]+a[3])/2]}
function mc(a,b,c,d,e){var f=b*d[0]/2;d=b*d[1]/2;b=Math.cos(c);var g=Math.sin(c);c=f*b;f*=g;b*=d;var h=d*g,l=a[0],m=a[1];a=l-c+h;d=l-c-h;g=l+c-h;c=l+c+h;var h=m-f-b,l=m-f+b,n=m+f+b,f=m+f-b;return Vb(Math.min(a,d,g,c),Math.min(h,l,n,f),Math.max(a,d,g,c),Math.max(h,l,n,f),e)}function kc(a){return a[3]-a[1]}function nc(a,b,c){c=c?c:Jb();oc(a,b)&&(c[0]=a[0]>b[0]?a[0]:b[0],c[1]=a[1]>b[1]?a[1]:b[1],c[2]=a[2]<b[2]?a[2]:b[2],c[3]=a[3]<b[3]?a[3]:b[3]);return c}function fc(a){return[a[0],a[3]]}
function ec(a){return[a[2],a[3]]}function jc(a){return a[2]-a[0]}function oc(a,b){return a[0]<=b[2]&&a[2]>=b[0]&&a[1]<=b[3]&&a[3]>=b[1]}function ic(a){return a[2]<a[0]||a[3]<a[1]}function pc(a,b){var c=(a[2]-a[0])/2*(b-1),d=(a[3]-a[1])/2*(b-1);a[0]-=c;a[2]+=c;a[1]-=d;a[3]+=d}
function qc(a,b,c){a=[a[0],a[1],a[0],a[3],a[2],a[1],a[2],a[3]];b(a,a,2);var d=[a[0],a[2],a[4],a[6]],e=[a[1],a[3],a[5],a[7]];b=Math.min.apply(null,d);a=Math.min.apply(null,e);d=Math.max.apply(null,d);e=Math.max.apply(null,e);return Vb(b,a,d,e,c)};function rc(){return!0}function sc(){return!1};/*
Latitude/longitude spherical geodesy formulae taken from
http://www.movable-type.co.uk/scripts/latlong.html
Licensed under CC-BY-3.0.
*/
function tc(a){this.radius=a}tc.prototype.a=function(a){for(var b=0,c=a.length,d=a[c-1][0],e=a[c-1][1],f=0;f<c;f++)var g=a[f][0],h=a[f][1],b=b+wa(g-d)*(2+Math.sin(wa(e))+Math.sin(wa(h))),d=g,e=h;return b*this.radius*this.radius/2};tc.prototype.b=function(a,b){var c=wa(a[1]),d=wa(b[1]),e=(d-c)/2,f=wa(b[0]-a[0])/2,c=Math.sin(e)*Math.sin(e)+Math.sin(f)*Math.sin(f)*Math.cos(c)*Math.cos(d);return 2*this.radius*Math.atan2(Math.sqrt(c),Math.sqrt(1-c))};
tc.prototype.offset=function(a,b,c){var d=wa(a[1]);b/=this.radius;var e=Math.asin(Math.sin(d)*Math.cos(b)+Math.cos(d)*Math.sin(b)*Math.cos(c));return[180*(wa(a[0])+Math.atan2(Math.sin(c)*Math.sin(b)*Math.cos(d),Math.cos(b)-Math.sin(d)*Math.sin(e)))/Math.PI,180*e/Math.PI]};var uc=new tc(6370997);var vc={};vc.degrees=2*Math.PI*uc.radius/360;vc.ft=.3048;vc.m=1;vc["us-ft"]=1200/3937;
function wc(a){this.eb=a.code;this.c=a.units;this.f=void 0!==a.extent?a.extent:null;this.i=void 0!==a.worldExtent?a.worldExtent:null;this.b=void 0!==a.axisOrientation?a.axisOrientation:"enu";this.g=void 0!==a.global?a.global:!1;this.a=!(!this.g||!this.f);this.o=void 0!==a.getPointResolution?a.getPointResolution:this.sk;this.l=null;this.j=a.metersPerUnit;var b=xc,c=a.code,d=yc||pa.proj4;if("function"==typeof d&&void 0===b[c]){var e=d.defs(c);if(void 0!==e){void 0!==e.axis&&void 0===a.axisOrientation&&
(this.b=e.axis);void 0===a.metersPerUnit&&(this.j=e.to_meter);void 0===a.units&&(this.c=e.units);for(var f in b)b=d.defs(f),void 0!==b&&(a=zc(f),b===e?Ac([a,this]):(b=d(f,c),Bc(a,this,b.forward,b.inverse)))}}}k=wc.prototype;k.Sj=function(){return this.eb};k.H=function(){return this.f};k.xb=function(){return this.c};k.ac=function(){return this.j||vc[this.c]};k.Ek=function(){return this.i};k.pl=function(){return this.g};k.ep=function(a){this.g=a;this.a=!(!a||!this.f)};
k.Mm=function(a){this.f=a;this.a=!(!this.g||!a)};k.mp=function(a){this.i=a};k.cp=function(a){this.o=a};k.sk=function(a,b){if("degrees"==this.xb())return a;var c=Cc(this,zc("EPSG:4326")),d=[b[0]-a/2,b[1],b[0]+a/2,b[1],b[0],b[1]-a/2,b[0],b[1]+a/2],d=c(d,d,2),c=uc.b(d.slice(0,2),d.slice(2,4)),d=uc.b(d.slice(4,6),d.slice(6,8)),d=(c+d)/2,c=this.ac();void 0!==c&&(d/=c);return d};k.getPointResolution=function(a,b){return this.o(a,b)};var xc={},Dc={},yc=null;
function Ac(a){Ec(a);a.forEach(function(b){a.forEach(function(a){b!==a&&Fc(b,a,Gc)})})}function Hc(){var a=Ic,b=Jc,c=Kc;Lc.forEach(function(d){a.forEach(function(a){Fc(d,a,b);Fc(a,d,c)})})}function Mc(a){xc[a.eb]=a;Fc(a,a,Gc)}function Ec(a){var b=[];a.forEach(function(a){b.push(Mc(a))})}function Nc(a){return a?"string"===typeof a?zc(a):a:zc("EPSG:3857")}function Fc(a,b,c){a=a.eb;b=b.eb;a in Dc||(Dc[a]={});Dc[a][b]=c}function Bc(a,b,c,d){a=zc(a);b=zc(b);Fc(a,b,Oc(c));Fc(b,a,Oc(d))}
function Oc(a){return function(b,c,d){var e=b.length;d=void 0!==d?d:2;c=void 0!==c?c:Array(e);var f,g;for(g=0;g<e;g+=d)for(f=a([b[g],b[g+1]]),c[g]=f[0],c[g+1]=f[1],f=d-1;2<=f;--f)c[g+f]=b[g+f];return c}}function zc(a){var b;if(a instanceof wc)b=a;else if("string"===typeof a){b=xc[a];var c=yc||pa.proj4;void 0===b&&"function"==typeof c&&void 0!==c.defs(a)&&(b=new wc({code:a}),Mc(b))}else b=null;return b}function Pc(a,b){if(a===b)return!0;var c=a.xb()===b.xb();return a.eb===b.eb?c:Cc(a,b)===Gc&&c}
function Qc(a,b){var c=zc(a),d=zc(b);return Cc(c,d)}function Cc(a,b){var c=a.eb,d=b.eb,e;c in Dc&&d in Dc[c]&&(e=Dc[c][d]);void 0===e&&(e=Rc);return e}function Rc(a,b){if(void 0!==b&&a!==b){for(var c=0,d=a.length;c<d;++c)b[c]=a[c];a=b}return a}function Gc(a,b){var c;if(void 0!==b){c=0;for(var d=a.length;c<d;++c)b[c]=a[c];c=b}else c=a.slice();return c}function Sc(a,b,c){return Qc(b,c)(a,void 0,a.length)}function Tc(a,b,c){b=Qc(b,c);return qc(a,b)};function Uc(){bb.call(this);this.v=Jb();this.A=-1;this.l={};this.s=this.o=0}x(Uc,bb);k=Uc.prototype;k.wb=function(a,b){var c=b?b:[NaN,NaN];this.tb(a[0],a[1],c,Infinity);return c};k.sg=function(a){return this.Bc(a[0],a[1])};k.Bc=sc;k.H=function(a){this.A!=this.g&&(this.v=this.Od(this.v),this.A=this.g);var b=this.v;a?(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3]):a=b;return a};k.Cb=function(a){return this.od(a*a)};k.kb=function(a,b){this.rc(Qc(a,b));return this};function Vc(a,b,c,d,e,f){for(var g=f?f:[],h=0;b<c;b+=d){var l=a[b],m=a[b+1];g[h++]=e[0]*l+e[2]*m+e[4];g[h++]=e[1]*l+e[3]*m+e[5]}f&&g.length!=h&&(g.length=h);return g};function Wc(){Uc.call(this);this.f="XY";this.a=2;this.B=null}x(Wc,Uc);function Xc(a){if("XY"==a)return 2;if("XYZ"==a||"XYM"==a)return 3;if("XYZM"==a)return 4}k=Wc.prototype;k.Bc=sc;k.Od=function(a){return Yb(this.B,0,this.B.length,this.a,a)};k.Ib=function(){return this.B.slice(0,this.a)};k.la=function(){return this.B};k.Jb=function(){return this.B.slice(this.B.length-this.a)};k.Kb=function(){return this.f};
k.od=function(a){this.s!=this.g&&(Da(this.l),this.o=0,this.s=this.g);if(0>a||0!==this.o&&a<=this.o)return this;var b=a.toString();if(this.l.hasOwnProperty(b))return this.l[b];var c=this.Nc(a);if(c.la().length<this.B.length)return this.l[b]=c;this.o=a;return this};k.Nc=function(){return this};k.va=function(){return this.a};function Yc(a,b,c){a.a=Xc(b);a.f=b;a.B=c}
function Zc(a,b,c,d){if(b)c=Xc(b);else{for(b=0;b<d;++b){if(0===c.length){a.f="XY";a.a=2;return}c=c[0]}c=c.length;b=2==c?"XY":3==c?"XYZ":4==c?"XYZM":void 0}a.f=b;a.a=c}k.rc=function(a){this.B&&(a(this.B,this.B,this.a),this.u())};k.rotate=function(a,b){var c=this.la();if(c){for(var d=c.length,e=this.va(),f=c?c:[],g=Math.cos(a),h=Math.sin(a),l=b[0],m=b[1],n=0,p=0;p<d;p+=e){var q=c[p]-l,r=c[p+1]-m;f[n++]=l+q*g-r*h;f[n++]=m+q*h+r*g;for(q=p+2;q<p+e;++q)f[n++]=c[q]}c&&f.length!=n&&(f.length=n);this.u()}};
k.Sc=function(a,b){var c=this.la();if(c){var d=c.length,e=this.va(),f=c?c:[],g=0,h,l;for(h=0;h<d;h+=e)for(f[g++]=c[h]+a,f[g++]=c[h+1]+b,l=h+2;l<h+e;++l)f[g++]=c[l];c&&f.length!=g&&(f.length=g);this.u()}};function $c(a,b,c,d){for(var e=0,f=a[c-d],g=a[c-d+1];b<c;b+=d)var h=a[b],l=a[b+1],e=e+(g*h-f*l),f=h,g=l;return e/2}function ad(a,b,c,d){var e=0,f,g;f=0;for(g=c.length;f<g;++f){var h=c[f],e=e+$c(a,b,h,d);b=h}return e};function bd(a,b,c,d,e,f,g){var h=a[b],l=a[b+1],m=a[c]-h,n=a[c+1]-l;if(0!==m||0!==n)if(f=((e-h)*m+(f-l)*n)/(m*m+n*n),1<f)b=c;else if(0<f){for(e=0;e<d;++e)g[e]=ya(a[b+e],a[c+e],f);g.length=d;return}for(e=0;e<d;++e)g[e]=a[b+e];g.length=d}function cd(a,b,c,d,e){var f=a[b],g=a[b+1];for(b+=d;b<c;b+=d){var h=a[b],l=a[b+1],f=va(f,g,h,l);f>e&&(e=f);f=h;g=l}return e}function dd(a,b,c,d,e){var f,g;f=0;for(g=c.length;f<g;++f){var h=c[f];e=cd(a,b,h,d,e);b=h}return e}
function ed(a,b,c,d,e,f,g,h,l,m,n){if(b==c)return m;var p;if(0===e){p=va(g,h,a[b],a[b+1]);if(p<m){for(n=0;n<d;++n)l[n]=a[b+n];l.length=d;return p}return m}for(var q=n?n:[NaN,NaN],r=b+d;r<c;)if(bd(a,r-d,r,d,g,h,q),p=va(g,h,q[0],q[1]),p<m){m=p;for(n=0;n<d;++n)l[n]=q[n];l.length=d;r+=d}else r+=d*Math.max((Math.sqrt(p)-Math.sqrt(m))/e|0,1);if(f&&(bd(a,c-d,b,d,g,h,q),p=va(g,h,q[0],q[1]),p<m)){m=p;for(n=0;n<d;++n)l[n]=q[n];l.length=d}return m}
function fd(a,b,c,d,e,f,g,h,l,m,n){n=n?n:[NaN,NaN];var p,q;p=0;for(q=c.length;p<q;++p){var r=c[p];m=ed(a,b,r,d,e,f,g,h,l,m,n);b=r}return m};function gd(a,b){var c=0,d,e;d=0;for(e=b.length;d<e;++d)a[c++]=b[d];return c}function hd(a,b,c,d){var e,f;e=0;for(f=c.length;e<f;++e){var g=c[e],h;for(h=0;h<d;++h)a[b++]=g[h]}return b}function id(a,b,c,d,e){e=e?e:[];var f=0,g,h;g=0;for(h=c.length;g<h;++g)b=hd(a,b,c[g],d),e[f++]=b;e.length=f;return e};function jd(a,b,c,d,e){e=void 0!==e?e:[];for(var f=0;b<c;b+=d)e[f++]=a.slice(b,b+d);e.length=f;return e}function kd(a,b,c,d,e){e=void 0!==e?e:[];var f=0,g,h;g=0;for(h=c.length;g<h;++g){var l=c[g];e[f++]=jd(a,b,l,d,e[f]);b=l}e.length=f;return e};function ld(a,b,c,d,e,f,g){var h=(c-b)/d;if(3>h){for(;b<c;b+=d)f[g++]=a[b],f[g++]=a[b+1];return g}var l=Array(h);l[0]=1;l[h-1]=1;c=[b,c-d];for(var m=0,n;0<c.length;){var p=c.pop(),q=c.pop(),r=0,v=a[q],y=a[q+1],w=a[p],G=a[p+1];for(n=q+d;n<p;n+=d){var z=ua(a[n],a[n+1],v,y,w,G);z>r&&(m=n,r=z)}r>e&&(l[(m-b)/d]=1,q+d<m&&c.push(q,m),m+d<p&&c.push(m,p))}for(n=0;n<h;++n)l[n]&&(f[g++]=a[b+n*d],f[g++]=a[b+n*d+1]);return g}
function md(a,b,c,d,e,f,g,h){var l,m;l=0;for(m=c.length;l<m;++l){var n=c[l];a:{var p=a,q=n,r=d,v=e,y=f;if(b!=q){var w=v*Math.round(p[b]/v),G=v*Math.round(p[b+1]/v);b+=r;y[g++]=w;y[g++]=G;var z,D;do if(z=v*Math.round(p[b]/v),D=v*Math.round(p[b+1]/v),b+=r,b==q){y[g++]=z;y[g++]=D;break a}while(z==w&&D==G);for(;b<q;){var H,ba;H=v*Math.round(p[b]/v);ba=v*Math.round(p[b+1]/v);b+=r;if(H!=z||ba!=D){var A=z-w,Fa=D-G,Ja=H-w,M=ba-G;A*M==Fa*Ja&&(0>A&&Ja<A||A==Ja||0<A&&Ja>A)&&(0>Fa&&M<Fa||Fa==M||0<Fa&&M>Fa)||
(y[g++]=z,y[g++]=D,w=z,G=D);z=H;D=ba}}y[g++]=z;y[g++]=D}}h.push(g);b=n}return g};function nd(a,b){Wc.call(this);this.i=this.j=-1;this.ra(a,b)}x(nd,Wc);k=nd.prototype;k.clone=function(){var a=new nd(null);od(a,this.f,this.B.slice());return a};k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;this.i!=this.g&&(this.j=Math.sqrt(cd(this.B,0,this.B.length,this.a,0)),this.i=this.g);return ed(this.B,0,this.B.length,this.a,this.j,!0,a,b,c,d)};k.nm=function(){return $c(this.B,0,this.B.length,this.a)};k.Z=function(){return jd(this.B,0,this.B.length,this.a)};
k.Nc=function(a){var b=[];b.length=ld(this.B,0,this.B.length,this.a,a,b,0);a=new nd(null);od(a,"XY",b);return a};k.Y=function(){return"LinearRing"};k.ra=function(a,b){a?(Zc(this,b,a,1),this.B||(this.B=[]),this.B.length=hd(this.B,0,a,this.a),this.u()):od(this,"XY",null)};function od(a,b,c){Yc(a,b,c);a.u()};function C(a,b){Wc.call(this);this.ra(a,b)}x(C,Wc);k=C.prototype;k.clone=function(){var a=new C(null);a.ba(this.f,this.B.slice());return a};k.tb=function(a,b,c,d){var e=this.B;a=va(a,b,e[0],e[1]);if(a<d){d=this.a;for(b=0;b<d;++b)c[b]=e[b];c.length=d;return a}return d};k.Z=function(){return this.B?this.B.slice():[]};k.Od=function(a){return Wb(this.B,a)};k.Y=function(){return"Point"};k.Ka=function(a){return Rb(a,this.B[0],this.B[1])};
k.ra=function(a,b){a?(Zc(this,b,a,0),this.B||(this.B=[]),this.B.length=gd(this.B,a),this.u()):this.ba("XY",null)};k.ba=function(a,b){Yc(this,a,b);this.u()};function pd(a,b,c,d,e){return!bc(e,function(e){return!qd(a,b,c,d,e[0],e[1])})}function qd(a,b,c,d,e,f){for(var g=!1,h=a[c-d],l=a[c-d+1];b<c;b+=d){var m=a[b],n=a[b+1];l>f!=n>f&&e<(m-h)*(f-l)/(n-l)+h&&(g=!g);h=m;l=n}return g}function rd(a,b,c,d,e,f){if(0===c.length||!qd(a,b,c[0],d,e,f))return!1;var g;b=1;for(g=c.length;b<g;++b)if(qd(a,c[b-1],c[b],d,e,f))return!1;return!0};function sd(a,b,c,d,e,f,g){var h,l,m,n,p,q=e[f+1],r=[],v=c[0];m=a[v-d];p=a[v-d+1];for(h=b;h<v;h+=d){n=a[h];l=a[h+1];if(q<=p&&l<=q||p<=q&&q<=l)m=(q-p)/(l-p)*(n-m)+m,r.push(m);m=n;p=l}v=NaN;p=-Infinity;r.sort(fb);m=r[0];h=1;for(l=r.length;h<l;++h){n=r[h];var y=Math.abs(n-m);y>p&&(m=(m+n)/2,rd(a,b,c,d,m,q)&&(v=m,p=y));m=n}isNaN(v)&&(v=e[f]);return g?(g.push(v,q),g):[v,q]};function td(a,b,c,d,e,f){for(var g=[a[b],a[b+1]],h=[],l;b+d<c;b+=d){h[0]=a[b+d];h[1]=a[b+d+1];if(l=e.call(f,g,h))return l;g[0]=h[0];g[1]=h[1]}return!1};function ud(a,b,c,d,e){var f=Zb(Jb(),a,b,c,d);return oc(e,f)?Sb(e,f)||f[0]>=e[0]&&f[2]<=e[2]||f[1]>=e[1]&&f[3]<=e[3]?!0:td(a,b,c,d,function(a,b){var c=!1,d=Tb(e,a),f=Tb(e,b);if(1===d||1===f)c=!0;else{var p=e[0],q=e[1],r=e[2],v=e[3],y=b[0],w=b[1],G=(w-a[1])/(y-a[0]);f&2&&!(d&2)&&(c=y-(w-v)/G,c=c>=p&&c<=r);c||!(f&4)||d&4||(c=w-(y-r)*G,c=c>=q&&c<=v);c||!(f&8)||d&8||(c=y-(w-q)/G,c=c>=p&&c<=r);c||!(f&16)||d&16||(c=w-(y-p)*G,c=c>=q&&c<=v)}return c}):!1}
function vd(a,b,c,d,e){var f=c[0];if(!(ud(a,b,f,d,e)||qd(a,b,f,d,e[0],e[1])||qd(a,b,f,d,e[0],e[3])||qd(a,b,f,d,e[2],e[1])||qd(a,b,f,d,e[2],e[3])))return!1;if(1===c.length)return!0;b=1;for(f=c.length;b<f;++b)if(pd(a,c[b-1],c[b],d,e))return!1;return!0};function wd(a,b,c,d){for(var e=0,f=a[c-d],g=a[c-d+1];b<c;b+=d)var h=a[b],l=a[b+1],e=e+(h-f)*(l+g),f=h,g=l;return 0<e}function xd(a,b,c,d){var e=0;d=void 0!==d?d:!1;var f,g;f=0;for(g=b.length;f<g;++f){var h=b[f],e=wd(a,e,h,c);if(0===f){if(d&&e||!d&&!e)return!1}else if(d&&!e||!d&&e)return!1;e=h}return!0}
function yd(a,b,c,d,e){e=void 0!==e?e:!1;var f,g;f=0;for(g=c.length;f<g;++f){var h=c[f],l=wd(a,b,h,d);if(0===f?e&&l||!e&&!l:e&&!l||!e&&l)for(var l=a,m=h,n=d;b<m-n;){var p;for(p=0;p<n;++p){var q=l[b+p];l[b+p]=l[m-n+p];l[m-n+p]=q}b+=n;m-=n}b=h}return b}function zd(a,b,c,d){var e=0,f,g;f=0;for(g=b.length;f<g;++f)e=yd(a,e,b[f],c,d);return e};function E(a,b){Wc.call(this);this.i=[];this.D=-1;this.C=null;this.T=this.S=this.P=-1;this.j=null;this.ra(a,b)}x(E,Wc);k=E.prototype;k.yj=function(a){this.B?jb(this.B,a.la()):this.B=a.la().slice();this.i.push(this.B.length);this.u()};k.clone=function(){var a=new E(null);a.ba(this.f,this.B.slice(),this.i.slice());return a};
k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;this.S!=this.g&&(this.P=Math.sqrt(dd(this.B,0,this.i,this.a,0)),this.S=this.g);return fd(this.B,0,this.i,this.a,this.P,!0,a,b,c,d)};k.Bc=function(a,b){return rd(this.Nb(),0,this.i,this.a,a,b)};k.qm=function(){return ad(this.Nb(),0,this.i,this.a)};k.Z=function(a){var b;void 0!==a?(b=this.Nb().slice(),yd(b,0,this.i,this.a,a)):b=this.B;return kd(b,0,this.i,this.a)};k.Eb=function(){return this.i};
function Ad(a){if(a.D!=a.g){var b=lc(a.H());a.C=sd(a.Nb(),0,a.i,a.a,b,0);a.D=a.g}return a.C}k.bk=function(){return new C(Ad(this))};k.gk=function(){return this.i.length};k.Hg=function(a){if(0>a||this.i.length<=a)return null;var b=new nd(null);od(b,this.f,this.B.slice(0===a?0:this.i[a-1],this.i[a]));return b};k.Vd=function(){var a=this.f,b=this.B,c=this.i,d=[],e=0,f,g;f=0;for(g=c.length;f<g;++f){var h=c[f],l=new nd(null);od(l,a,b.slice(e,h));d.push(l);e=h}return d};
k.Nb=function(){if(this.T!=this.g){var a=this.B;xd(a,this.i,this.a)?this.j=a:(this.j=a.slice(),this.j.length=yd(this.j,0,this.i,this.a));this.T=this.g}return this.j};k.Nc=function(a){var b=[],c=[];b.length=md(this.B,0,this.i,this.a,Math.sqrt(a),b,0,c);a=new E(null);a.ba("XY",b,c);return a};k.Y=function(){return"Polygon"};k.Ka=function(a){return vd(this.Nb(),0,this.i,this.a,a)};
k.ra=function(a,b){if(a){Zc(this,b,a,2);this.B||(this.B=[]);var c=id(this.B,0,a,this.a,this.i);this.B.length=0===c.length?0:c[c.length-1];this.u()}else this.ba("XY",null,this.i)};k.ba=function(a,b,c){Yc(this,a,b);this.i=c;this.u()};function Bd(a,b,c,d){var e=d?d:32;d=[];var f;for(f=0;f<e;++f)jb(d,a.offset(b,c,2*Math.PI*f/e));d.push(d[0],d[1]);a=new E(null);a.ba("XY",d,[d.length]);return a}
function Cd(a){var b=a[0],c=a[1],d=a[2];a=a[3];b=[b,c,b,a,d,a,d,c,b,c];c=new E(null);c.ba("XY",b,[b.length]);return c}function Dd(a,b,c){var d=b?b:32,e=a.va();b=a.f;for(var f=new E(null,b),d=e*(d+1),e=Array(d),g=0;g<d;g++)e[g]=0;f.ba(b,e,[e.length]);Ed(f,a.rd(),a.wf(),c);return f}function Ed(a,b,c,d){var e=a.la(),f=a.f,g=a.va(),h=a.Eb(),l=e.length/g-1;d=d?d:0;for(var m,n,p=0;p<=l;++p)n=p*g,m=d+2*xa(p,l)*Math.PI/l,e[n]=b[0]+c*Math.cos(m),e[n+1]=b[1]+c*Math.sin(m);a.ba(f,e,h)};function Fd(a){bb.call(this);a=a||{};this.f=[0,0];var b={};b.center=void 0!==a.center?a.center:null;this.l=Nc(a.projection);var c,d,e,f=void 0!==a.minZoom?a.minZoom:0;c=void 0!==a.maxZoom?a.maxZoom:28;var g=void 0!==a.zoomFactor?a.zoomFactor:2;if(void 0!==a.resolutions)c=a.resolutions,d=c[0],e=c[c.length-1],c=qb(c);else{d=Nc(a.projection);e=d.H();var h=(e?Math.max(jc(e),kc(e)):360*vc.degrees/d.ac())/256/Math.pow(2,0),l=h/Math.pow(2,28);d=a.maxResolution;void 0!==d?f=0:d=h/Math.pow(g,f);e=a.minResolution;
void 0===e&&(e=void 0!==a.maxZoom?void 0!==a.maxResolution?d/Math.pow(g,c):h/Math.pow(g,c):l);c=f+Math.floor(Math.log(d/e)/Math.log(g));e=d/Math.pow(g,c-f);c=rb(g,d,c-f)}this.a=d;this.c=e;this.j=a.resolutions;this.i=f;f=void 0!==a.extent?za(a.extent):Aa;(void 0!==a.enableRotation?a.enableRotation:1)?(d=a.constrainRotation,d=void 0===d||!0===d?vb():!1===d?tb:"number"===typeof d?ub(d):tb):d=sb;this.o=new Ba(f,c,d);void 0!==a.resolution?b.resolution=a.resolution:void 0!==a.zoom&&(b.resolution=this.constrainResolution(this.a,
a.zoom-this.i));b.rotation=void 0!==a.rotation?a.rotation:0;this.G(b)}x(Fd,bb);k=Fd.prototype;k.Pd=function(a){return this.o.center(a)};k.constrainResolution=function(a,b,c){return this.o.resolution(a,b||0,c||0)};k.constrainRotation=function(a,b){return this.o.rotation(a,b||0)};k.ab=function(){return this.get("center")};function Gd(a,b){return void 0!==b?(b[0]=a.f[0],b[1]=a.f[1],b):a.f.slice()}k.Kc=function(a){var b=this.ab(),c=this.$(),d=this.La();return mc(b,c,d,a)};k.Vl=function(){return this.a};
k.Wl=function(){return this.c};k.Xl=function(){return this.l};k.$=function(){return this.get("resolution")};k.Yl=function(){return this.j};function Hd(a,b){return Math.max(jc(a)/b[0],kc(a)/b[1])}function Id(a){var b=a.a,c=Math.log(b/a.c)/Math.log(2);return function(a){return b/Math.pow(2,a*c)}}k.La=function(){return this.get("rotation")};function Jd(a){var b=a.a,c=Math.log(b/a.c)/Math.log(2);return function(a){return Math.log(b/a)/Math.log(2)/c}}
k.V=function(){var a=this.ab(),b=this.l,c=this.$(),d=this.La();return{center:[Math.round(a[0]/c)*c,Math.round(a[1]/c)*c],projection:void 0!==b?b:null,resolution:c,rotation:d}};k.Fk=function(){var a,b=this.$();if(void 0!==b){var c,d=0;do{c=this.constrainResolution(this.a,d);if(c==b){a=d;break}++d}while(c>this.c)}return void 0!==a?this.i+a:a};
k.cf=function(a,b,c){a instanceof Wc||(a=Cd(a));var d=c||{};c=void 0!==d.padding?d.padding:[0,0,0,0];var e=void 0!==d.constrainResolution?d.constrainResolution:!0,f=void 0!==d.nearest?d.nearest:!1,g;void 0!==d.minResolution?g=d.minResolution:void 0!==d.maxZoom?g=this.constrainResolution(this.a,d.maxZoom-this.i,0):g=0;var h=a.la(),l=this.La(),d=Math.cos(-l),l=Math.sin(-l),m=Infinity,n=Infinity,p=-Infinity,q=-Infinity;a=a.va();for(var r=0,v=h.length;r<v;r+=a)var y=h[r]*d-h[r+1]*l,w=h[r]*l+h[r+1]*d,
m=Math.min(m,y),n=Math.min(n,w),p=Math.max(p,y),q=Math.max(q,w);b=Hd([m,n,p,q],[b[0]-c[1]-c[3],b[1]-c[0]-c[2]]);b=isNaN(b)?g:Math.max(b,g);e&&(g=this.constrainResolution(b,0,0),!f&&g<b&&(g=this.constrainResolution(g,-1,0)),b=g);this.Vb(b);l=-l;f=(m+p)/2+(c[1]-c[3])/2*b;c=(n+q)/2+(c[0]-c[2])/2*b;this.nb([f*d-c*l,c*d+f*l])};
k.Ej=function(a,b,c){var d=this.La(),e=Math.cos(-d),d=Math.sin(-d),f=a[0]*e-a[1]*d;a=a[1]*e+a[0]*d;var g=this.$(),f=f+(b[0]/2-c[0])*g;a+=(c[1]-b[1]/2)*g;d=-d;this.nb([f*e-a*d,a*e+f*d])};function Kd(a){return!!a.ab()&&void 0!==a.$()}k.rotate=function(a,b){if(void 0!==b){var c,d=this.ab();void 0!==d&&(c=[d[0]-b[0],d[1]-b[1]],Db(c,a-this.La()),yb(c,b));this.nb(c)}this.ie(a)};k.nb=function(a){this.set("center",a)};function Ld(a,b){a.f[1]+=b}k.Vb=function(a){this.set("resolution",a)};
k.ie=function(a){this.set("rotation",a)};k.np=function(a){a=this.constrainResolution(this.a,a-this.i,0);this.Vb(a)};function Md(a){return Math.pow(a,3)}function Nd(a){return 1-Md(1-a)}function Qd(a){return 3*a*a-2*a*a*a}function Rd(a){return a}function Sd(a){return.5>a?Qd(2*a):1-Qd(2*(a-.5))};function Td(a){var b=a.source,c=a.start?a.start:Date.now(),d=b[0],e=b[1],f=void 0!==a.duration?a.duration:1E3,g=a.easing?a.easing:Qd;return function(a,b){if(b.time<c)return b.animate=!0,b.viewHints[0]+=1,!0;if(b.time<c+f){var m=1-g((b.time-c)/f),n=d-b.viewState.center[0],p=e-b.viewState.center[1];b.animate=!0;b.viewState.center[0]+=m*n;b.viewState.center[1]+=m*p;b.viewHints[0]+=1;return!0}return!1}}
function Ud(a){var b=a.rotation?a.rotation:0,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Qd,f=a.anchor?a.anchor:null;return function(a,h){if(h.time<c)return h.animate=!0,h.viewHints[0]+=1,!0;if(h.time<c+d){var l=1-e((h.time-c)/d),l=(b-h.viewState.rotation)*l;h.animate=!0;h.viewState.rotation+=l;if(f){var m=h.viewState.center;m[0]-=f[0];m[1]-=f[1];Db(m,l);yb(m,f)}h.viewHints[0]+=1;return!0}return!1}}
function Vd(a){var b=a.resolution,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Qd;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[0]+=1,!0;if(g.time<c+d){var h=1-e((g.time-c)/d),l=b-g.viewState.resolution;g.animate=!0;g.viewState.resolution+=h*l;g.viewHints[0]+=1;return!0}return!1}};function Wd(a,b,c,d){this.ca=a;this.ea=b;this.fa=c;this.ga=d}Wd.prototype.contains=function(a){return Xd(this,a[1],a[2])};function Xd(a,b,c){return a.ca<=b&&b<=a.ea&&a.fa<=c&&c<=a.ga}function Yd(a,b){return a.ca==b.ca&&a.fa==b.fa&&a.ea==b.ea&&a.ga==b.ga}function Zd(a,b){return a.ca<=b.ea&&a.ea>=b.ca&&a.fa<=b.ga&&a.ga>=b.fa};function $d(a){this.a=a.html;this.b=a.tileRanges?a.tileRanges:null}$d.prototype.g=function(){return this.a};function ae(a,b){Ua.call(this,a);this.element=b}x(ae,Ua);function be(a){bb.call(this);this.a=a?a:[];ce(this)}x(be,bb);k=be.prototype;k.clear=function(){for(;0<this.dc();)this.pop()};k.qf=function(a){var b,c;b=0;for(c=a.length;b<c;++b)this.push(a[b]);return this};k.forEach=function(a,b){this.a.forEach(a,b)};k.Gl=function(){return this.a};k.item=function(a){return this.a[a]};k.dc=function(){return this.get("length")};k.ee=function(a,b){this.a.splice(a,0,b);ce(this);this.b(new ae("add",b))};
k.pop=function(){return this.Rf(this.dc()-1)};k.push=function(a){var b=this.a.length;this.ee(b,a);return b};k.remove=function(a){var b=this.a,c,d;c=0;for(d=b.length;c<d;++c)if(b[c]===a)return this.Rf(c)};k.Rf=function(a){var b=this.a[a];this.a.splice(a,1);ce(this);this.b(new ae("remove",b));return b};k.Zo=function(a,b){var c=this.dc();if(a<c)c=this.a[a],this.a[a]=b,this.b(new ae("remove",c)),this.b(new ae("add",b));else{for(;c<a;++c)this.ee(c,void 0);this.ee(a,b)}};
function ce(a){a.set("length",a.a.length)};function de(a){return Array.prototype.concat.apply(Array.prototype,arguments)}function ee(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]}function fe(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};var ge=/^#(?:[0-9a-f]{3}){1,2}$/i,he=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i,ie=/^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i;function je(a){return Array.isArray(a)?a:ke(a)}function le(a){if("string"!==typeof a){var b=a[0];b!=(b|0)&&(b=b+.5|0);var c=a[1];c!=(c|0)&&(c=c+.5|0);var d=a[2];d!=(d|0)&&(d=d+.5|0);a="rgba("+b+","+c+","+d+","+(void 0===a[3]?1:a[3])+")"}return a}
var ke=function(){var a={},b=0;return function(c){var d;if(a.hasOwnProperty(c))d=a[c];else{if(1024<=b){d=0;for(var e in a)0===(d++&3)&&(delete a[e],--b)}var f,g;ge.exec(c)?(g=3==c.length-1?1:2,d=parseInt(c.substr(1+0*g,g),16),e=parseInt(c.substr(1+1*g,g),16),f=parseInt(c.substr(1+2*g,g),16),1==g&&(d=(d<<4)+d,e=(e<<4)+e,f=(f<<4)+f),d=[d,e,f,1]):(g=ie.exec(c))?(d=Number(g[1]),e=Number(g[2]),f=Number(g[3]),g=Number(g[4]),d=[d,e,f,g],d=me(d,d)):(g=he.exec(c))?(d=Number(g[1]),e=Number(g[2]),f=Number(g[3]),
d=[d,e,f,1],d=me(d,d)):d=void 0;a[c]=d;++b}return d}}();function me(a,b){var c=b||[];c[0]=sa(a[0]+.5|0,0,255);c[1]=sa(a[1]+.5|0,0,255);c[2]=sa(a[2]+.5|0,0,255);c[3]=sa(a[3],0,1);return c};function ne(a){return"string"===typeof a||a instanceof CanvasPattern||a instanceof CanvasGradient?a:le(a)};var oe;a:{var pe=aa.navigator;if(pe){var qe=pe.userAgent;if(qe){oe=qe;break a}}oe=""}function re(a){return-1!=oe.indexOf(a)};var se=re("Opera"),te=re("Trident")||re("MSIE"),ue=re("Edge"),ve=re("Gecko")&&!(-1!=oe.toLowerCase().indexOf("webkit")&&!re("Edge"))&&!(re("Trident")||re("MSIE"))&&!re("Edge"),we=-1!=oe.toLowerCase().indexOf("webkit")&&!re("Edge"),xe;
a:{var ye="",ze=function(){var a=oe;if(ve)return/rv\:([^\);]+)(\)|;)/.exec(a);if(ue)return/Edge\/([\d\.]+)/.exec(a);if(te)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(we)return/WebKit\/(\S+)/.exec(a);if(se)return/(?:Version)[ \/]?(\S+)/.exec(a)}();ze&&(ye=ze?ze[1]:"");if(te){var Ae,Be=aa.document;Ae=Be?Be.documentMode:void 0;if(null!=Ae&&Ae>parseFloat(ye)){xe=String(Ae);break a}}xe=ye}var Ce={};function De(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Ee(a,b){a[0]=b[0];a[1]=b[1];a[4]=b[2];a[5]=b[3];a[12]=b[4];a[13]=b[5];return a};var Fe=De();function Ge(a,b){var c=document.createElement("CANVAS");a&&(c.width=a);b&&(c.height=b);return c.getContext("2d")}
var He=function(){var a;return function(){if(void 0===a){var b=document.createElement("P"),c,d={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.appendChild(b);for(var e in d)e in b.style&&(b.style[e]="translate(1px,1px)",c=pa.getComputedStyle(b).getPropertyValue(d[e]));document.body.removeChild(b);a=c&&"none"!==c}return a}}(),Ie=function(){var a;return function(){if(void 0===a){var b=document.createElement("P"),
c,d={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.appendChild(b);for(var e in d)e in b.style&&(b.style[e]="translate3d(1px,1px,1px)",c=pa.getComputedStyle(b).getPropertyValue(d[e]));document.body.removeChild(b);a=c&&"none"!==c}return a}}();
function Je(a,b){var c=a.style;c.WebkitTransform=b;c.MozTransform=b;c.b=b;c.msTransform=b;c.transform=b;if((c=te)&&!(c=Ce["9.0"])){for(var c=0,d=qa(String(xe)).split("."),e=qa("9.0").split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||"",l=e[g]||"",m=RegExp("(\\d*)(\\D*)","g"),n=RegExp("(\\d*)(\\D*)","g");do{var p=m.exec(h)||["","",""],q=n.exec(l)||["","",""];if(0==p[0].length&&0==q[0].length)break;c=ra(0==p[1].length?0:parseInt(p[1],10),0==q[1].length?0:parseInt(q[1],10))||ra(0==
p[2].length,0==q[2].length)||ra(p[2],q[2])}while(0==c)}c=Ce["9.0"]=0<=c}c&&(a.style.transformOrigin="0 0")}function Ke(a,b){var c;if(Ie()){var d=Ee(Fe,b),e=Array(16);for(c=0;16>c;++c)e[c]=d[c].toFixed(6);Je(a,"matrix3d("+e.join(",")+")")}else if(He()){d=Array(6);for(c=0;6>c;++c)d[c]=b[c].toFixed(6);Je(a,"matrix("+d.join(",")+")")}else a.style.left=Math.round(b[4])+"px",a.style.top=Math.round(b[5])+"px"}function Le(a,b){var c=b.parentNode;c&&c.replaceChild(a,b)}
function Me(a){a&&a.parentNode&&a.parentNode.removeChild(a)}function Ne(a){for(;a.lastChild;)a.removeChild(a.lastChild)};function Oe(a,b,c){Ua.call(this,a);this.map=b;this.frameState=void 0!==c?c:null}x(Oe,Ua);function Pe(a){bb.call(this);this.element=a.element?a.element:null;this.a=this.P=null;this.s=[];this.render=a.render?a.render:oa;a.target&&this.c(a.target)}x(Pe,bb);Pe.prototype.ka=function(){Me(this.element);bb.prototype.ka.call(this)};Pe.prototype.i=function(){return this.a};
Pe.prototype.setMap=function(a){this.a&&Me(this.element);for(var b=0,c=this.s.length;b<c;++b)Ka(this.s[b]);this.s.length=0;if(this.a=a)(this.P?this.P:a.v).appendChild(this.element),this.render!==oa&&this.s.push(B(a,"postrender",this.render,this)),a.render()};Pe.prototype.c=function(a){this.P="string"===typeof a?document.getElementById(a):a};function Qe(){this.g=0;this.f={};this.a=this.b=null}k=Qe.prototype;k.clear=function(){this.g=0;this.f={};this.a=this.b=null};function Re(a,b){return a.f.hasOwnProperty(b)}k.forEach=function(a,b){for(var c=this.b;c;)a.call(b,c.pc,c.Mb,this),c=c.zb};k.get=function(a){a=this.f[a];if(a===this.a)return a.pc;a===this.b?(this.b=this.b.zb,this.b.kc=null):(a.zb.kc=a.kc,a.kc.zb=a.zb);a.zb=null;a.kc=this.a;this.a=this.a.zb=a;return a.pc};k.wc=function(){return this.g};
k.N=function(){var a=Array(this.g),b=0,c;for(c=this.a;c;c=c.kc)a[b++]=c.Mb;return a};k.zc=function(){var a=Array(this.g),b=0,c;for(c=this.a;c;c=c.kc)a[b++]=c.pc;return a};k.pop=function(){var a=this.b;delete this.f[a.Mb];a.zb&&(a.zb.kc=null);this.b=a.zb;this.b||(this.a=null);--this.g;return a.pc};k.replace=function(a,b){this.get(a);this.f[a].pc=b};k.set=function(a,b){var c={Mb:a,zb:null,kc:this.a,pc:b};this.a?this.a.zb=c:this.b=c;this.a=c;this.f[a]=c;++this.g};function Se(a,b,c,d){return void 0!==d?(d[0]=a,d[1]=b,d[2]=c,d):[a,b,c]}function Te(a){var b=a[0],c=Array(b),d=1<<b-1,e,f;for(e=0;e<b;++e)f=48,a[1]&d&&(f+=1),a[2]&d&&(f+=2),c[e]=String.fromCharCode(f),d>>=1;return c.join("")};function Ue(a){Qe.call(this);this.c=void 0!==a?a:2048}x(Ue,Qe);function Ve(a){return a.wc()>a.c}Ue.prototype.Lc=function(a){for(var b,c;Ve(this)&&!(b=this.b.pc,c=b.ma[0].toString(),c in a&&a[c].contains(b.ma));)Ta(this.pop())};function We(a,b){Xa.call(this);this.ma=a;this.state=b;this.a=null;this.key=""}x(We,Xa);function Xe(a){a.b("change")}We.prototype.jb=function(){return t(this).toString()};We.prototype.i=function(){return this.ma};We.prototype.V=function(){return this.state};function Ye(a,b,c){void 0===c&&(c=[0,0]);c[0]=a[0]+2*b;c[1]=a[1]+2*b;return c}function Ze(a,b,c){void 0===c&&(c=[0,0]);c[0]=a[0]*b+.5|0;c[1]=a[1]*b+.5|0;return c}function $e(a,b){if(Array.isArray(a))return a;void 0===b?b=[a,a]:(b[0]=a,b[1]=a);return b};function af(a){bb.call(this);this.f=zc(a.projection);this.l=bf(a.attributions);this.S=a.logo;this.Ba=void 0!==a.state?a.state:"ready";this.C=void 0!==a.wrapX?a.wrapX:!1}x(af,bb);function bf(a){if("string"===typeof a)return[new $d({html:a})];if(a instanceof $d)return[a];if(Array.isArray(a)){for(var b=a.length,c=Array(b),d=0;d<b;d++){var e=a[d];c[d]="string"===typeof e?new $d({html:e}):e}return c}return null}k=af.prototype;k.sa=oa;k.wa=function(){return this.l};k.ua=function(){return this.S};k.xa=function(){return this.f};
k.V=function(){return this.Ba};k.ta=function(){this.u()};k.qa=function(a){this.l=bf(a);this.u()};function cf(a,b){a.Ba=b;a.u()};function df(a){this.minZoom=void 0!==a.minZoom?a.minZoom:0;this.b=a.resolutions;this.maxZoom=this.b.length-1;this.g=void 0!==a.origin?a.origin:null;this.c=null;void 0!==a.origins&&(this.c=a.origins);var b=a.extent;void 0===b||this.g||this.c||(this.g=fc(b));this.i=null;void 0!==a.tileSizes&&(this.i=a.tileSizes);this.o=void 0!==a.tileSize?a.tileSize:this.i?null:256;this.s=void 0!==b?b:null;this.a=null;this.f=[0,0];void 0!==a.sizes?this.a=a.sizes.map(function(a){return new Wd(Math.min(0,a[0]),Math.max(a[0]-
1,-1),Math.min(0,a[1]),Math.max(a[1]-1,-1))},this):b&&ef(this,b)}var ff=[0,0,0];k=df.prototype;k.yg=function(a,b,c){a=gf(this,a,b);for(var d=a.ca,e=a.ea;d<=e;++d)for(var f=a.fa,g=a.ga;f<=g;++f)c([b,d,f])};function hf(a,b,c,d,e){e=a.Ea(b,e);for(b=b[0]-1;b>=a.minZoom;){if(c.call(null,b,gf(a,e,b,d)))return!0;--b}return!1}k.H=function(){return this.s};k.Ig=function(){return this.maxZoom};k.Jg=function(){return this.minZoom};k.Ia=function(a){return this.g?this.g:this.c[a]};k.$=function(a){return this.b[a]};
k.Kh=function(){return this.b};function jf(a,b,c,d){return b[0]<a.maxZoom?(d=a.Ea(b,d),gf(a,d,b[0]+1,c)):null}function kf(a,b,c,d){lf(a,b[0],b[1],c,!1,ff);var e=ff[1],f=ff[2];lf(a,b[2],b[3],c,!0,ff);a=ff[1];b=ff[2];void 0!==d?(d.ca=e,d.ea=a,d.fa=f,d.ga=b):d=new Wd(e,a,f,b);return d}function gf(a,b,c,d){c=a.$(c);return kf(a,b,c,d)}function mf(a,b){var c=a.Ia(b[0]),d=a.$(b[0]),e=$e(a.Ja(b[0]),a.f);return[c[0]+(b[1]+.5)*e[0]*d,c[1]+(b[2]+.5)*e[1]*d]}
k.Ea=function(a,b){var c=this.Ia(a[0]),d=this.$(a[0]),e=$e(this.Ja(a[0]),this.f),f=c[0]+a[1]*e[0]*d,c=c[1]+a[2]*e[1]*d;return Vb(f,c,f+e[0]*d,c+e[1]*d,b)};k.Zd=function(a,b,c){return lf(this,a[0],a[1],b,!1,c)};function lf(a,b,c,d,e,f){var g=a.Lb(d),h=d/a.$(g),l=a.Ia(g);a=$e(a.Ja(g),a.f);b=h*Math.floor((b-l[0])/d+(e?.5:0))/a[0];c=h*Math.floor((c-l[1])/d+(e?0:.5))/a[1];e?(b=Math.ceil(b)-1,c=Math.ceil(c)-1):(b=Math.floor(b),c=Math.floor(c));return Se(g,b,c,f)}
k.qd=function(a,b,c){b=this.$(b);return lf(this,a[0],a[1],b,!1,c)};k.Ja=function(a){return this.o?this.o:this.i[a]};k.Lb=function(a,b){var c=hb(this.b,a,b||0);return sa(c,this.minZoom,this.maxZoom)};function ef(a,b){for(var c=a.b.length,d=Array(c),e=a.minZoom;e<c;++e)d[e]=gf(a,b,e);a.a=d}function nf(a){var b=a.l;if(!b){var b=of(a),c=pf(b,void 0,void 0),b=new df({extent:b,origin:fc(b),resolutions:c,tileSize:void 0});a.l=b}return b}
function qf(a){var b={};Ca(b,void 0!==a?a:{});void 0===b.extent&&(b.extent=zc("EPSG:3857").H());b.resolutions=pf(b.extent,b.maxZoom,b.tileSize);delete b.maxZoom;return new df(b)}function pf(a,b,c){b=void 0!==b?b:42;var d=kc(a);a=jc(a);c=$e(void 0!==c?c:256);c=Math.max(a/c[0],d/c[1]);b+=1;d=Array(b);for(a=0;a<b;++a)d[a]=c/Math.pow(2,a);return d}function of(a){a=zc(a);var b=a.H();b||(a=180*vc.degrees/a.ac(),b=Vb(-a,-a,a,a));return b};function rf(a){af.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,state:a.state,wrapX:a.wrapX});this.ia=void 0!==a.opaque?a.opaque:!1;this.oa=void 0!==a.tilePixelRatio?a.tilePixelRatio:1;this.tileGrid=void 0!==a.tileGrid?a.tileGrid:null;this.a=new Ue(a.cacheSize);this.o=[0,0];this.Mb=""}x(rf,af);k=rf.prototype;k.Ah=function(){return Ve(this.a)};k.Lc=function(a,b){var c=this.pd(a);c&&c.Lc(b)};
function tf(a,b,c,d,e){b=a.pd(b);if(!b)return!1;for(var f=!0,g,h,l=d.ca;l<=d.ea;++l)for(var m=d.fa;m<=d.ga;++m)g=a.Fb(c,l,m),h=!1,Re(b,g)&&(g=b.get(g),(h=2===g.V())&&(h=!1!==e(g))),h||(f=!1);return f}k.Ud=function(){return 0};function uf(a,b){a.Mb!==b&&(a.Mb=b,a.u())}k.Fb=function(a,b,c){return a+"/"+b+"/"+c};k.jf=function(){return this.ia};k.Na=function(){return this.tileGrid};k.fb=function(a){return this.tileGrid?this.tileGrid:nf(a)};k.pd=function(a){var b=this.f;return b&&!Pc(b,a)?null:this.a};
k.cc=function(){return this.oa};k.$d=function(a,b,c){c=this.fb(c);b=this.cc(b);a=$e(c.Ja(a),this.o);return 1==b?a:Ze(a,b,this.o)};function vf(a,b,c){var d=void 0!==c?c:a.f;c=a.fb(d);if(a.C&&d.g){var e=b;b=e[0];a=mf(c,e);d=of(d);Qb(d,a)?b=e:(e=jc(d),a[0]+=e*Math.ceil((d[0]-a[0])/e),b=c.qd(a,b))}e=b[0];d=b[1];a=b[2];if(c.minZoom>e||e>c.maxZoom)c=!1;else{var f=c.H();c=(c=f?gf(c,f,e):c.a?c.a[e]:null)?Xd(c,d,a):!0}return c?b:null}k.ta=function(){this.a.clear();this.u()};k.Yf=oa;
function wf(a,b){Ua.call(this,a);this.tile=b}x(wf,Ua);function xf(a){a=a?a:{};this.S=document.createElement("UL");this.v=document.createElement("LI");this.S.appendChild(this.v);this.v.style.display="none";this.f=void 0!==a.collapsed?a.collapsed:!0;this.o=void 0!==a.collapsible?a.collapsible:!0;this.o||(this.f=!1);var b=void 0!==a.className?a.className:"ol-attribution",c=void 0!==a.tipLabel?a.tipLabel:"Attributions",d=void 0!==a.collapseLabel?a.collapseLabel:"\u00bb";"string"===typeof d?(this.A=document.createElement("span"),this.A.textContent=d):this.A=
d;d=void 0!==a.label?a.label:"i";"string"===typeof d?(this.D=document.createElement("span"),this.D.textContent=d):this.D=d;var e=this.o&&!this.f?this.A:this.D,d=document.createElement("button");d.setAttribute("type","button");d.title=c;d.appendChild(e);B(d,"click",this.am,this);c=document.createElement("div");c.className=b+" ol-unselectable ol-control"+(this.f&&this.o?" ol-collapsed":"")+(this.o?"":" ol-uncollapsible");c.appendChild(this.S);c.appendChild(d);Pe.call(this,{element:c,render:a.render?
a.render:yf,target:a.target});this.C=!0;this.j={};this.l={};this.T={}}x(xf,Pe);
function yf(a){if(a=a.frameState){var b,c,d,e,f,g,h,l,m,n,p,q=a.layerStatesArray,r=Ca({},a.attributions),v={},y=a.viewState.projection;c=0;for(b=q.length;c<b;c++)if(g=q[c].layer.ha())if(n=t(g).toString(),m=g.l)for(d=0,e=m.length;d<e;d++)if(h=m[d],l=t(h).toString(),!(l in r)){if(f=a.usedTiles[n]){var w=g.fb(y);a:{p=h;var G=y;if(p.b){var z,D,H,ba=void 0;for(ba in f)if(ba in p.b){H=f[ba];var A;z=0;for(D=p.b[ba].length;z<D;++z){A=p.b[ba][z];if(Zd(A,H)){p=!0;break a}var Fa=gf(w,of(G),parseInt(ba,10)),
Ja=Fa.ea-Fa.ca+1;if(H.ca<Fa.ca||H.ea>Fa.ea)if(Zd(A,new Wd(xa(H.ca,Ja),xa(H.ea,Ja),H.fa,H.ga))||H.ea-H.ca+1>Ja&&Zd(A,Fa)){p=!0;break a}}}p=!1}else p=!0}}else p=!1;p?(l in v&&delete v[l],r[l]=h):v[l]=h}b=[r,v];c=b[0];b=b[1];for(var M in this.j)M in c?(this.l[M]||(this.j[M].style.display="",this.l[M]=!0),delete c[M]):M in b?(this.l[M]&&(this.j[M].style.display="none",delete this.l[M]),delete b[M]):(Me(this.j[M]),delete this.j[M],delete this.l[M]);for(M in c)d=document.createElement("LI"),d.innerHTML=
c[M].a,this.S.appendChild(d),this.j[M]=d,this.l[M]=!0;for(M in b)d=document.createElement("LI"),d.innerHTML=b[M].a,d.style.display="none",this.S.appendChild(d),this.j[M]=d;M=!Ga(this.l)||!Ga(a.logos);this.C!=M&&(this.element.style.display=M?"":"none",this.C=M);M&&Ga(this.l)?this.element.classList.add("ol-logo-only"):this.element.classList.remove("ol-logo-only");var ma;a=a.logos;M=this.T;for(ma in M)ma in a||(Me(M[ma]),delete M[ma]);for(var Ub in a)b=a[Ub],b instanceof HTMLElement&&(this.v.appendChild(b),
M[Ub]=b),Ub in M||(ma=new Image,ma.src=Ub,""===b?c=ma:(c=document.createElement("a"),c.href=b,c.appendChild(ma)),this.v.appendChild(c),M[Ub]=c);this.v.style.display=Ga(a)?"none":""}else this.C&&(this.element.style.display="none",this.C=!1)}k=xf.prototype;k.am=function(a){a.preventDefault();zf(this)};function zf(a){a.element.classList.toggle("ol-collapsed");a.f?Le(a.A,a.D):Le(a.D,a.A);a.f=!a.f}k.$l=function(){return this.o};
k.cm=function(a){this.o!==a&&(this.o=a,this.element.classList.toggle("ol-uncollapsible"),!a&&this.f&&zf(this))};k.bm=function(a){this.o&&this.f!==a&&zf(this)};k.Zl=function(){return this.f};function Af(a){a=a?a:{};var b=void 0!==a.className?a.className:"ol-rotate",c=void 0!==a.label?a.label:"\u21e7";this.f=null;"string"===typeof c?(this.f=document.createElement("span"),this.f.className="ol-compass",this.f.textContent=c):(this.f=c,this.f.classList.add("ol-compass"));var d=a.tipLabel?a.tipLabel:"Reset rotation",c=document.createElement("button");c.className=b+"-reset";c.setAttribute("type","button");c.title=d;c.appendChild(this.f);B(c,"click",Af.prototype.A,this);d=document.createElement("div");
d.className=b+" ol-unselectable ol-control";d.appendChild(c);b=a.render?a.render:Bf;this.o=a.resetNorth?a.resetNorth:void 0;Pe.call(this,{element:d,render:b,target:a.target});this.j=void 0!==a.duration?a.duration:250;this.l=void 0!==a.autoHide?a.autoHide:!0;this.v=void 0;this.l&&this.element.classList.add("ol-hidden")}x(Af,Pe);
Af.prototype.A=function(a){a.preventDefault();if(void 0!==this.o)this.o();else{a=this.a;var b=a.aa();if(b){var c=b.La();void 0!==c&&(0<this.j&&(c%=2*Math.PI,c<-Math.PI&&(c+=2*Math.PI),c>Math.PI&&(c-=2*Math.PI),a.Wa(Ud({rotation:c,duration:this.j,easing:Nd}))),b.ie(0))}}};
function Bf(a){if(a=a.frameState){a=a.viewState.rotation;if(a!=this.v){var b="rotate("+a+"rad)";if(this.l){var c=this.element.classList.contains("ol-hidden");c||0!==a?c&&0!==a&&this.element.classList.remove("ol-hidden"):this.element.classList.add("ol-hidden")}this.f.style.msTransform=b;this.f.style.webkitTransform=b;this.f.style.transform=b}this.v=a}};function Cf(a){a=a?a:{};var b=void 0!==a.className?a.className:"ol-zoom",c=void 0!==a.delta?a.delta:1,d=void 0!==a.zoomInLabel?a.zoomInLabel:"+",e=void 0!==a.zoomOutLabel?a.zoomOutLabel:"\u2212",f=void 0!==a.zoomInTipLabel?a.zoomInTipLabel:"Zoom in",g=void 0!==a.zoomOutTipLabel?a.zoomOutTipLabel:"Zoom out",h=document.createElement("button");h.className=b+"-in";h.setAttribute("type","button");h.title=f;h.appendChild("string"===typeof d?document.createTextNode(d):d);B(h,"click",Cf.prototype.l.bind(this,
c));d=document.createElement("button");d.className=b+"-out";d.setAttribute("type","button");d.title=g;d.appendChild("string"===typeof e?document.createTextNode(e):e);B(d,"click",Cf.prototype.l.bind(this,-c));c=document.createElement("div");c.className=b+" ol-unselectable ol-control";c.appendChild(h);c.appendChild(d);Pe.call(this,{element:c,target:a.target});this.f=void 0!==a.duration?a.duration:250}x(Cf,Pe);
Cf.prototype.l=function(a,b){b.preventDefault();var c=this.a,d=c.aa();if(d){var e=d.$();e&&(0<this.f&&c.Wa(Vd({resolution:e,duration:this.f,easing:Nd})),c=d.constrainResolution(e,a),d.Vb(c))}};function Df(a){a=a?a:{};var b=new be;(void 0!==a.zoom?a.zoom:1)&&b.push(new Cf(a.zoomOptions));(void 0!==a.rotate?a.rotate:1)&&b.push(new Af(a.rotateOptions));(void 0!==a.attribution?a.attribution:1)&&b.push(new xf(a.attributionOptions));return b};function Ef(a){a=a?a:{};this.f=void 0!==a.className?a.className:"ol-full-screen";var b=void 0!==a.label?a.label:"\u2922";this.o="string"===typeof b?document.createTextNode(b):b;b=void 0!==a.labelActive?a.labelActive:"\u00d7";this.j="string"===typeof b?document.createTextNode(b):b;var c=a.tipLabel?a.tipLabel:"Toggle full-screen",b=document.createElement("button");b.className=this.f+"-"+Ff();b.setAttribute("type","button");b.title=c;b.appendChild(this.o);B(b,"click",this.D,this);c=document.createElement("div");
c.className=this.f+" ol-unselectable ol-control "+(Gf()?"":"ol-unsupported");c.appendChild(b);Pe.call(this,{element:c,target:a.target});this.A=void 0!==a.keys?a.keys:!1;this.l=a.source}x(Ef,Pe);
Ef.prototype.D=function(a){a.preventDefault();Gf()&&(a=this.a)&&(Ff()?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():(a=this.l?"string"===typeof this.l?document.getElementById(this.l):this.l:a.yc(),this.A?a.mozRequestFullScreenWithKeys?a.mozRequestFullScreenWithKeys():a.webkitRequestFullscreen?a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):
Hf(a):Hf(a)))};Ef.prototype.v=function(){var a=this.element.firstElementChild,b=this.a;Ff()?(a.className=this.f+"-true",Le(this.j,this.o)):(a.className=this.f+"-false",Le(this.o,this.j));b&&b.Xc()};Ef.prototype.setMap=function(a){Pe.prototype.setMap.call(this,a);a&&this.s.push(B(pa.document,If(),this.v,this))};
function Gf(){var a=document.body;return!!(a.webkitRequestFullscreen||a.mozRequestFullScreen&&document.mozFullScreenEnabled||a.msRequestFullscreen&&document.msFullscreenEnabled||a.requestFullscreen&&document.fullscreenEnabled)}function Ff(){return!!(document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement||document.fullscreenElement)}
function Hf(a){a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen()}var If=function(){var a;return function(){if(!a){var b=document.body;b.webkitRequestFullscreen?a="webkitfullscreenchange":b.mozRequestFullScreen?a="mozfullscreenchange":b.msRequestFullscreen?a="MSFullscreenChange":b.requestFullscreen&&(a="fullscreenchange")}return a}}();function Jf(a){a=a?a:{};var b=document.createElement("DIV");b.className=void 0!==a.className?a.className:"ol-mouse-position";Pe.call(this,{element:b,render:a.render?a.render:Kf,target:a.target});B(this,db("projection"),this.dm,this);a.coordinateFormat&&this.ei(a.coordinateFormat);a.projection&&this.ih(zc(a.projection));this.v=void 0!==a.undefinedHTML?a.undefinedHTML:"";this.j=b.innerHTML;this.o=this.l=this.f=null}x(Jf,Pe);
function Kf(a){a=a.frameState;a?this.f!=a.viewState.projection&&(this.f=a.viewState.projection,this.l=null):this.f=null;Lf(this,this.o)}k=Jf.prototype;k.dm=function(){this.l=null};k.Cg=function(){return this.get("coordinateFormat")};k.hh=function(){return this.get("projection")};k.Xk=function(a){this.o=this.a.Td(a);Lf(this,this.o)};k.Yk=function(){Lf(this,null);this.o=null};
k.setMap=function(a){Pe.prototype.setMap.call(this,a);a&&(a=a.a,this.s.push(B(a,"mousemove",this.Xk,this),B(a,"mouseout",this.Yk,this)))};k.ei=function(a){this.set("coordinateFormat",a)};k.ih=function(a){this.set("projection",a)};function Lf(a,b){var c=a.v;if(b&&a.f){if(!a.l){var d=a.hh();a.l=d?Cc(a.f,d):Rc}if(d=a.a.Ma(b))a.l(d,d),c=(c=a.Cg())?c(d):d.toString()}a.j&&c==a.j||(a.element.innerHTML=c,a.j=c)};function Mf(a,b){var c=a;b&&(c=ka(a,b));"function"!=da(aa.setImmediate)||aa.Window&&aa.Window.prototype&&!re("Edge")&&aa.Window.prototype.setImmediate==aa.setImmediate?(Nf||(Nf=Of()),Nf(c)):aa.setImmediate(c)}var Nf;
function Of(){var a=aa.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!re("Presto")&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write("");a.close();var c="callImmediate"+Math.random(),d="file:"==b.location.protocol?"*":b.location.protocol+"//"+b.location.host,a=ka(function(a){if(("*"==d||a.origin==d)&&a.data==
c)this.port1.onmessage()},this);b.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a&&!re("Trident")&&!re("MSIE")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var a=c.rg;c.rg=null;a()}};return function(a){d.next={rg:a};d=d.next;b.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(a){var b=document.createElement("SCRIPT");
b.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){aa.setTimeout(a,0)}};function Pf(a,b,c){Ua.call(this,a);this.b=b;a=c?c:{};this.buttons=Qf(a);this.pressure=Rf(a,this.buttons);this.bubbles="bubbles"in a?a.bubbles:!1;this.cancelable="cancelable"in a?a.cancelable:!1;this.view="view"in a?a.view:null;this.detail="detail"in a?a.detail:null;this.screenX="screenX"in a?a.screenX:0;this.screenY="screenY"in a?a.screenY:0;this.clientX="clientX"in a?a.clientX:0;this.clientY="clientY"in a?a.clientY:0;this.button="button"in a?a.button:0;this.relatedTarget="relatedTarget"in a?a.relatedTarget:
null;this.pointerId="pointerId"in a?a.pointerId:0;this.width="width"in a?a.width:0;this.height="height"in a?a.height:0;this.pointerType="pointerType"in a?a.pointerType:"";this.isPrimary="isPrimary"in a?a.isPrimary:!1;b.preventDefault&&(this.preventDefault=function(){b.preventDefault()})}x(Pf,Ua);function Qf(a){if(a.buttons||Sf)a=a.buttons;else switch(a.which){case 1:a=1;break;case 2:a=4;break;case 3:a=2;break;default:a=0}return a}
function Rf(a,b){var c=0;a.pressure?c=a.pressure:c=b?.5:0;return c}var Sf=!1;try{Sf=1===(new MouseEvent("click",{buttons:1})).buttons}catch(a){};var Tf=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function Uf(a,b){var c,d,e=Tf.length;for(d=0;d<e;++d)try{if(c=a.getContext(Tf[d],b))return c}catch(f){}return null};var Vf,Wf="undefined"!==typeof navigator?navigator.userAgent.toLowerCase():"",Xf=-1!==Wf.indexOf("firefox"),Yf=-1!==Wf.indexOf("safari")&&-1===Wf.indexOf("chrom"),Zf=-1!==Wf.indexOf("macintosh"),$f=pa.devicePixelRatio||1,ag=!1,bg=function(){if(!("HTMLCanvasElement"in pa))return!1;try{var a=Ge();return a?(a.setLineDash&&(ag=!0),!0):!1}catch(b){return!1}}(),cg="DeviceOrientationEvent"in pa,dg="geolocation"in pa.navigator,eg="ontouchstart"in pa,fg="PointerEvent"in pa,gg=!!pa.navigator.msPointerEnabled,
hg=!1,ig,jg=[];if("WebGLRenderingContext"in pa)try{var kg=Uf(document.createElement("CANVAS"),{failIfMajorPerformanceCaveat:!0});kg&&(hg=!0,ig=kg.getParameter(kg.MAX_TEXTURE_SIZE),jg=kg.getSupportedExtensions())}catch(a){}Vf=hg;na=jg;la=ig;function lg(a,b){this.b=a;this.c=b};function mg(a){lg.call(this,a,{mousedown:this.rl,mousemove:this.sl,mouseup:this.vl,mouseover:this.ul,mouseout:this.tl});this.a=a.g;this.g=[]}x(mg,lg);function ng(a,b){for(var c=a.g,d=b.clientX,e=b.clientY,f=0,g=c.length,h;f<g&&(h=c[f]);f++){var l=Math.abs(e-h[1]);if(25>=Math.abs(d-h[0])&&25>=l)return!0}return!1}function og(a){var b=pg(a,a),c=b.preventDefault;b.preventDefault=function(){a.preventDefault();c()};b.pointerId=1;b.isPrimary=!0;b.pointerType="mouse";return b}k=mg.prototype;
k.rl=function(a){if(!ng(this,a)){if((1).toString()in this.a){var b=og(a);qg(this.b,rg,b,a);delete this.a[(1).toString()]}b=og(a);this.a[(1).toString()]=a;qg(this.b,sg,b,a)}};k.sl=function(a){if(!ng(this,a)){var b=og(a);qg(this.b,tg,b,a)}};k.vl=function(a){if(!ng(this,a)){var b=this.a[(1).toString()];b&&b.button===a.button&&(b=og(a),qg(this.b,ug,b,a),delete this.a[(1).toString()])}};k.ul=function(a){if(!ng(this,a)){var b=og(a);vg(this.b,b,a)}};
k.tl=function(a){if(!ng(this,a)){var b=og(a);wg(this.b,b,a)}};function xg(a){lg.call(this,a,{MSPointerDown:this.Al,MSPointerMove:this.Bl,MSPointerUp:this.El,MSPointerOut:this.Cl,MSPointerOver:this.Dl,MSPointerCancel:this.zl,MSGotPointerCapture:this.xl,MSLostPointerCapture:this.yl});this.a=a.g;this.g=["","unavailable","touch","pen","mouse"]}x(xg,lg);function yg(a,b){var c=b;"number"===typeof b.pointerType&&(c=pg(b,b),c.pointerType=a.g[b.pointerType]);return c}k=xg.prototype;k.Al=function(a){this.a[a.pointerId.toString()]=a;var b=yg(this,a);qg(this.b,sg,b,a)};
k.Bl=function(a){var b=yg(this,a);qg(this.b,tg,b,a)};k.El=function(a){var b=yg(this,a);qg(this.b,ug,b,a);delete this.a[a.pointerId.toString()]};k.Cl=function(a){var b=yg(this,a);wg(this.b,b,a)};k.Dl=function(a){var b=yg(this,a);vg(this.b,b,a)};k.zl=function(a){var b=yg(this,a);qg(this.b,rg,b,a);delete this.a[a.pointerId.toString()]};k.yl=function(a){this.b.b(new Pf("lostpointercapture",a,a))};k.xl=function(a){this.b.b(new Pf("gotpointercapture",a,a))};function zg(a){lg.call(this,a,{pointerdown:this.lo,pointermove:this.mo,pointerup:this.po,pointerout:this.no,pointerover:this.oo,pointercancel:this.ko,gotpointercapture:this.Gk,lostpointercapture:this.ql})}x(zg,lg);k=zg.prototype;k.lo=function(a){Ag(this.b,a)};k.mo=function(a){Ag(this.b,a)};k.po=function(a){Ag(this.b,a)};k.no=function(a){Ag(this.b,a)};k.oo=function(a){Ag(this.b,a)};k.ko=function(a){Ag(this.b,a)};k.ql=function(a){Ag(this.b,a)};k.Gk=function(a){Ag(this.b,a)};function Bg(a,b){lg.call(this,a,{touchstart:this.sp,touchmove:this.rp,touchend:this.qp,touchcancel:this.pp});this.a=a.g;this.l=b;this.g=void 0;this.i=0;this.f=void 0}x(Bg,lg);k=Bg.prototype;k.ci=function(){this.i=0;this.f=void 0};
function Cg(a,b,c){b=pg(b,c);b.pointerId=c.identifier+2;b.bubbles=!0;b.cancelable=!0;b.detail=a.i;b.button=0;b.buttons=1;b.width=c.webkitRadiusX||c.radiusX||0;b.height=c.webkitRadiusY||c.radiusY||0;b.pressure=c.webkitForce||c.force||.5;b.isPrimary=a.g===c.identifier;b.pointerType="touch";b.clientX=c.clientX;b.clientY=c.clientY;b.screenX=c.screenX;b.screenY=c.screenY;return b}
function Dg(a,b,c){function d(){b.preventDefault()}var e=Array.prototype.slice.call(b.changedTouches),f=e.length,g,h;for(g=0;g<f;++g)h=Cg(a,b,e[g]),h.preventDefault=d,c.call(a,b,h)}
k.sp=function(a){var b=a.touches,c=Object.keys(this.a),d=c.length;if(d>=b.length){var e=[],f,g,h;for(f=0;f<d;++f){g=c[f];h=this.a[g];var l;if(!(l=1==g))a:{l=b.length;for(var m,n=0;n<l;n++)if(m=b[n],m.identifier===g-2){l=!0;break a}l=!1}l||e.push(h.out)}for(f=0;f<e.length;++f)this.Ue(a,e[f])}b=a.changedTouches[0];c=Object.keys(this.a).length;if(0===c||1===c&&(1).toString()in this.a)this.g=b.identifier,void 0!==this.f&&pa.clearTimeout(this.f);Eg(this,a);this.i++;Dg(this,a,this.fo)};
k.fo=function(a,b){this.a[b.pointerId]={target:b.target,out:b,Lh:b.target};var c=this.b;b.bubbles=!0;qg(c,Fg,b,a);c=this.b;b.bubbles=!1;qg(c,Gg,b,a);qg(this.b,sg,b,a)};k.rp=function(a){a.preventDefault();Dg(this,a,this.wl)};k.wl=function(a,b){var c=this.a[b.pointerId];if(c){var d=c.out,e=c.Lh;qg(this.b,tg,b,a);d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,d.target=e,b.target?(wg(this.b,d,a),vg(this.b,b,a)):(b.target=e,b.relatedTarget=null,this.Ue(a,b)));c.out=b;c.Lh=b.target}};
k.qp=function(a){Eg(this,a);Dg(this,a,this.tp)};k.tp=function(a,b){qg(this.b,ug,b,a);this.b.out(b,a);var c=this.b;b.bubbles=!1;qg(c,Hg,b,a);delete this.a[b.pointerId];b.isPrimary&&(this.g=void 0,this.f=pa.setTimeout(this.ci.bind(this),200))};k.pp=function(a){Dg(this,a,this.Ue)};k.Ue=function(a,b){qg(this.b,rg,b,a);this.b.out(b,a);var c=this.b;b.bubbles=!1;qg(c,Hg,b,a);delete this.a[b.pointerId];b.isPrimary&&(this.g=void 0,this.f=pa.setTimeout(this.ci.bind(this),200))};
function Eg(a,b){var c=a.l.g,d=b.changedTouches[0];if(a.g===d.identifier){var e=[d.clientX,d.clientY];c.push(e);pa.setTimeout(function(){kb(c,e)},2500)}};function Ig(a){Xa.call(this);this.i=a;this.g={};this.c={};this.a=[];fg?Jg(this,new zg(this)):gg?Jg(this,new xg(this)):(a=new mg(this),Jg(this,a),eg&&Jg(this,new Bg(this,a)));a=this.a.length;for(var b,c=0;c<a;c++)b=this.a[c],Kg(this,Object.keys(b.c))}x(Ig,Xa);function Jg(a,b){var c=Object.keys(b.c);c&&(c.forEach(function(a){var c=b.c[a];c&&(this.c[a]=c.bind(b))},a),a.a.push(b))}Ig.prototype.f=function(a){var b=this.c[a.type];b&&b(a)};
function Kg(a,b){b.forEach(function(a){B(this.i,a,this.f,this)},a)}function Lg(a,b){b.forEach(function(a){Qa(this.i,a,this.f,this)},a)}function pg(a,b){for(var c={},d,e=0,f=Mg.length;e<f;e++)d=Mg[e][0],c[d]=a[d]||b[d]||Mg[e][1];return c}Ig.prototype.out=function(a,b){a.bubbles=!0;qg(this,Ng,a,b)};function wg(a,b,c){a.out(b,c);var d=b.target,e=b.relatedTarget;d&&e&&d.contains(e)||(b.bubbles=!1,qg(a,Hg,b,c))}
function vg(a,b,c){b.bubbles=!0;qg(a,Fg,b,c);var d=b.target,e=b.relatedTarget;d&&e&&d.contains(e)||(b.bubbles=!1,qg(a,Gg,b,c))}function qg(a,b,c,d){a.b(new Pf(b,d,c))}function Ag(a,b){a.b(new Pf(b.type,b,b))}Ig.prototype.ka=function(){for(var a=this.a.length,b,c=0;c<a;c++)b=this.a[c],Lg(this,Object.keys(b.c));Xa.prototype.ka.call(this)};
var tg="pointermove",sg="pointerdown",ug="pointerup",Fg="pointerover",Ng="pointerout",Gg="pointerenter",Hg="pointerleave",rg="pointercancel",Mg=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",
!1],["type",""],["target",null],["currentTarget",null],["which",0]];function Og(a,b,c,d,e){Oe.call(this,a,b,e);this.originalEvent=c;this.pixel=b.Td(c);this.coordinate=b.Ma(this.pixel);this.dragging=void 0!==d?d:!1}x(Og,Oe);Og.prototype.preventDefault=function(){Oe.prototype.preventDefault.call(this);this.originalEvent.preventDefault()};Og.prototype.stopPropagation=function(){Oe.prototype.stopPropagation.call(this);this.originalEvent.stopPropagation()};function Pg(a,b,c,d,e){Og.call(this,a,b,c.b,d,e);this.b=c}x(Pg,Og);
function Qg(a){Xa.call(this);this.f=a;this.l=0;this.o=!1;this.c=[];this.g=null;a=this.f.a;this.U=0;this.v={};this.i=new Ig(a);this.a=null;this.j=B(this.i,sg,this.$k,this);this.s=B(this.i,tg,this.No,this)}x(Qg,Xa);function Rg(a,b){var c;c=new Pg(Sg,a.f,b);a.b(c);0!==a.l?(pa.clearTimeout(a.l),a.l=0,c=new Pg(Tg,a.f,b),a.b(c)):a.l=pa.setTimeout(function(){this.l=0;var a=new Pg(Ug,this.f,b);this.b(a)}.bind(a),250)}
function Vg(a,b){b.type==Wg||b.type==Xg?delete a.v[b.pointerId]:b.type==Yg&&(a.v[b.pointerId]=!0);a.U=Object.keys(a.v).length}k=Qg.prototype;k.Qg=function(a){Vg(this,a);var b=new Pg(Wg,this.f,a);this.b(b);!this.o&&0===a.button&&Rg(this,this.g);0===this.U&&(this.c.forEach(Ka),this.c.length=0,this.o=!1,this.g=null,Ta(this.a),this.a=null)};
k.$k=function(a){Vg(this,a);var b=new Pg(Yg,this.f,a);this.b(b);this.g=a;0===this.c.length&&(this.a=new Ig(document),this.c.push(B(this.a,Zg,this.Sl,this),B(this.a,Wg,this.Qg,this),B(this.i,Xg,this.Qg,this)))};k.Sl=function(a){if(a.clientX!=this.g.clientX||a.clientY!=this.g.clientY){this.o=!0;var b=new Pg($g,this.f,a,this.o);this.b(b)}a.preventDefault()};k.No=function(a){this.b(new Pg(a.type,this.f,a,!(!this.g||a.clientX==this.g.clientX&&a.clientY==this.g.clientY)))};
k.ka=function(){this.s&&(Ka(this.s),this.s=null);this.j&&(Ka(this.j),this.j=null);this.c.forEach(Ka);this.c.length=0;this.a&&(Ta(this.a),this.a=null);this.i&&(Ta(this.i),this.i=null);Xa.prototype.ka.call(this)};var Ug="singleclick",Sg="click",Tg="dblclick",$g="pointerdrag",Zg="pointermove",Yg="pointerdown",Wg="pointerup",Xg="pointercancel",ah={Mp:Ug,Bp:Sg,Cp:Tg,Fp:$g,Ip:Zg,Ep:Yg,Lp:Wg,Kp:"pointerover",Jp:"pointerout",Gp:"pointerenter",Hp:"pointerleave",Dp:Xg};var bh=Array(6);function ch(){return[1,0,0,1,0,0]}function dh(a){return eh(a,1,0,0,1,0,0)}function fh(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],l=b[0],m=b[1],n=b[2],p=b[3],q=b[4],r=b[5];a[0]=c*l+e*m;a[1]=d*l+f*m;a[2]=c*n+e*p;a[3]=d*n+f*p;a[4]=c*q+e*r+g;a[5]=d*q+f*r+h;return a}function eh(a,b,c,d,e,f,g){a[0]=b;a[1]=c;a[2]=d;a[3]=e;a[4]=f;a[5]=g;return a}function gh(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];return a}
function hh(a,b){var c=b[0],d=b[1];b[0]=a[0]*c+a[2]*d+a[4];b[1]=a[1]*c+a[3]*d+a[5];return b}function ih(a,b){var c=Math.cos(b),d=Math.sin(b);fh(a,eh(bh,c,d,-d,c,0,0))}function jh(a,b,c){return fh(a,eh(bh,b,0,0,c,0,0))}function kh(a,b,c){fh(a,eh(bh,1,0,0,1,b,c))}function lh(a,b,c,d,e,f,g,h){var l=Math.sin(f);f=Math.cos(f);a[0]=d*f;a[1]=e*l;a[2]=-d*l;a[3]=e*f;a[4]=g*d*f-h*d*l+b;a[5]=g*e*l+h*e*f+c;return a}
function mh(a){var b=a[0]*a[3]-a[1]*a[2],c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5];a[0]=f/b;a[1]=-d/b;a[2]=-e/b;a[3]=c/b;a[4]=(e*h-f*g)/b;a[5]=-(c*h-d*g)/b;return a};function nh(a){bb.call(this);var b=Ca({},a);b.opacity=void 0!==a.opacity?a.opacity:1;b.visible=void 0!==a.visible?a.visible:!0;b.zIndex=void 0!==a.zIndex?a.zIndex:0;b.maxResolution=void 0!==a.maxResolution?a.maxResolution:Infinity;b.minResolution=void 0!==a.minResolution?a.minResolution:0;this.G(b)}x(nh,bb);
function oh(a){var b=a.Qb(),c=a.kf(),d=a.yb(),e=a.H(),f=a.Rb(),g=a.Ob(),h=a.Pb();return{layer:a,opacity:sa(b,0,1),S:c,visible:d,Qc:!0,extent:e,zIndex:f,maxResolution:g,minResolution:Math.max(h,0)}}k=nh.prototype;k.H=function(){return this.get("extent")};k.Ob=function(){return this.get("maxResolution")};k.Pb=function(){return this.get("minResolution")};k.Qb=function(){return this.get("opacity")};k.yb=function(){return this.get("visible")};k.Rb=function(){return this.get("zIndex")};
k.fc=function(a){this.set("extent",a)};k.nc=function(a){this.set("maxResolution",a)};k.oc=function(a){this.set("minResolution",a)};k.gc=function(a){this.set("opacity",a)};k.hc=function(a){this.set("visible",a)};k.ic=function(a){this.set("zIndex",a)};function ph(){};function qh(a,b,c,d,e){Ua.call(this,a);this.vectorContext=b;this.frameState=c;this.context=d;this.glContext=e}x(qh,Ua);function rh(a){var b=Ca({},a);delete b.source;nh.call(this,b);this.v=this.j=this.o=null;a.map&&this.setMap(a.map);B(this,db("source"),this.fl,this);this.Fc(a.source?a.source:null)}x(rh,nh);function sh(a,b){return a.visible&&b>=a.minResolution&&b<a.maxResolution}k=rh.prototype;k.hf=function(a){a=a?a:[];a.push(oh(this));return a};k.ha=function(){return this.get("source")||null};k.kf=function(){var a=this.ha();return a?a.V():"undefined"};k.Lm=function(){this.u()};
k.fl=function(){this.v&&(Ka(this.v),this.v=null);var a=this.ha();a&&(this.v=B(a,"change",this.Lm,this));this.u()};k.setMap=function(a){this.o&&(Ka(this.o),this.o=null);a||this.u();this.j&&(Ka(this.j),this.j=null);a&&(this.o=B(a,"precompose",function(a){var c=oh(this);c.Qc=!1;c.zIndex=Infinity;a.frameState.layerStatesArray.push(c);a.frameState.layerStates[t(this)]=c},this),this.j=B(this,"change",a.render,a),this.u())};k.Fc=function(a){this.set("source",a)};function th(a,b,c,d,e){Xa.call(this);this.l=e;this.extent=a;this.f=c;this.resolution=b;this.state=d}x(th,Xa);function uh(a){a.b("change")}th.prototype.H=function(){return this.extent};th.prototype.$=function(){return this.resolution};th.prototype.V=function(){return this.state};function vh(a){Za.call(this);this.a=a}x(vh,Za);k=vh.prototype;k.sa=oa;k.Cc=function(a,b,c,d){a=hh(b.pixelToCoordinateTransform,a.slice());if(this.sa(a,b,rc,this))return c.call(d,this.a)};k.le=sc;k.Qd=function(a,b,c){return function(d,e){return tf(a,b,d,e,function(a){c[d]||(c[d]={});c[d][a.ma.toString()]=a})}};k.Om=function(a){2===a.target.V()&&wh(this)};function xh(a,b){var c=b.V();2!=c&&3!=c&&B(b,"change",a.Om,a);0==c&&(b.load(),c=b.V());return 2==c}
function wh(a){var b=a.a;b.yb()&&"ready"==b.kf()&&a.u()}function yh(a,b){b.Ah()&&a.postRenderFunctions.push(function(a,b,e){b=t(a).toString();a.Lc(e.viewState.projection,e.usedTiles[b])}.bind(null,b))}function zh(a,b){if(b){var c,d,e;d=0;for(e=b.length;d<e;++d)c=b[d],a[t(c).toString()]=c}}function Ah(a,b){var c=b.S;void 0!==c&&("string"===typeof c?a.logos[c]="":fa(c)&&(a.logos[c.src]=c.href))}
function Bh(a,b,c,d){b=t(b).toString();c=c.toString();b in a?c in a[b]?(a=a[b][c],d.ca<a.ca&&(a.ca=d.ca),d.ea>a.ea&&(a.ea=d.ea),d.fa<a.fa&&(a.fa=d.fa),d.ga>a.ga&&(a.ga=d.ga)):a[b][c]=d:(a[b]={},a[b][c]=d)}function Ch(a,b,c){return[b*(Math.round(a[0]/b)+c[0]%2/2),b*(Math.round(a[1]/b)+c[1]%2/2)]}
function Dh(a,b,c,d,e,f,g,h,l,m){var n=t(b).toString();n in a.wantedTiles||(a.wantedTiles[n]={});var p=a.wantedTiles[n];a=a.tileQueue;var q=c.minZoom,r,v,y,w,G,z;for(z=g;z>=q;--z)for(v=gf(c,f,z,v),y=c.$(z),w=v.ca;w<=v.ea;++w)for(G=v.fa;G<=v.ga;++G)g-z<=h?(r=b.bc(z,w,G,d,e),0==r.V()&&(p[r.ma.toString()]=!0,r.jb()in a.g||a.f([r,n,mf(c,r.ma),y])),void 0!==l&&l.call(m,r)):b.Yf(z,w,G,e)};function Eh(a){this.v=a.opacity;this.U=a.rotateWithView;this.j=a.rotation;this.i=a.scale;this.D=a.snapToPixel}k=Eh.prototype;k.qe=function(){return this.v};k.Xd=function(){return this.U};k.re=function(){return this.j};k.se=function(){return this.i};k.Yd=function(){return this.D};k.te=function(a){this.v=a};k.ue=function(a){this.j=a};k.ve=function(a){this.i=a};function Fh(a){a=a||{};this.c=void 0!==a.anchor?a.anchor:[.5,.5];this.f=null;this.a=void 0!==a.anchorOrigin?a.anchorOrigin:"top-left";this.o=void 0!==a.anchorXUnits?a.anchorXUnits:"fraction";this.s=void 0!==a.anchorYUnits?a.anchorYUnits:"fraction";var b=void 0!==a.crossOrigin?a.crossOrigin:null,c=void 0!==a.img?a.img:null,d=void 0!==a.imgSize?a.imgSize:null,e=a.src;void 0!==e&&0!==e.length||!c||(e=c.src||t(c).toString());var f=void 0!==a.src?0:2,g=void 0!==a.color?je(a.color):null,h=Gh.$b(),l=h.get(e,
b,g);l||(l=new Hh(c,e,d,b,f,g),h.set(e,b,g,l));this.b=l;this.C=void 0!==a.offset?a.offset:[0,0];this.g=void 0!==a.offsetOrigin?a.offsetOrigin:"top-left";this.l=null;this.A=void 0!==a.size?a.size:null;Eh.call(this,{opacity:void 0!==a.opacity?a.opacity:1,rotation:void 0!==a.rotation?a.rotation:0,scale:void 0!==a.scale?a.scale:1,snapToPixel:void 0!==a.snapToPixel?a.snapToPixel:!0,rotateWithView:void 0!==a.rotateWithView?a.rotateWithView:!1})}x(Fh,Eh);k=Fh.prototype;
k.Zb=function(){if(this.f)return this.f;var a=this.c,b=this.Gb();if("fraction"==this.o||"fraction"==this.s){if(!b)return null;a=this.c.slice();"fraction"==this.o&&(a[0]*=b[0]);"fraction"==this.s&&(a[1]*=b[1])}if("top-left"!=this.a){if(!b)return null;a===this.c&&(a=this.c.slice());if("top-right"==this.a||"bottom-right"==this.a)a[0]=-a[0]+b[0];if("bottom-left"==this.a||"bottom-right"==this.a)a[1]=-a[1]+b[1]}return this.f=a};k.jc=function(){var a=this.b;return a.c?a.c:a.a};k.ld=function(){return this.b.g};
k.td=function(){return this.b.f};k.pe=function(){var a=this.b;if(!a.o)if(a.s){var b=a.g[0],c=a.g[1],d=Ge(b,c);d.fillRect(0,0,b,c);a.o=d.canvas}else a.o=a.a;return a.o};k.Ia=function(){if(this.l)return this.l;var a=this.C;if("top-left"!=this.g){var b=this.Gb(),c=this.b.g;if(!b||!c)return null;a=a.slice();if("top-right"==this.g||"bottom-right"==this.g)a[0]=c[0]-b[0]-a[0];if("bottom-left"==this.g||"bottom-right"==this.g)a[1]=c[1]-b[1]-a[1]}return this.l=a};k.En=function(){return this.b.j};
k.Gb=function(){return this.A?this.A:this.b.g};k.pf=function(a,b){return B(this.b,"change",a,b)};k.load=function(){this.b.load()};k.Xf=function(a,b){Qa(this.b,"change",a,b)};function Hh(a,b,c,d,e,f){Xa.call(this);this.o=null;this.a=a?a:new Image;null!==d&&(this.a.crossOrigin=d);this.c=f?document.createElement("CANVAS"):null;this.l=f;this.i=null;this.f=e;this.g=c;this.j=b;this.s=!1;2==this.f&&Ih(this)}x(Hh,Xa);
function Ih(a){var b=Ge(1,1);try{b.drawImage(a.a,0,0),b.getImageData(0,0,1,1)}catch(c){a.s=!0}}Hh.prototype.v=function(){this.f=3;this.i.forEach(Ka);this.i=null;this.b("change")};
Hh.prototype.U=function(){this.f=2;this.g&&(this.a.width=this.g[0],this.a.height=this.g[1]);this.g=[this.a.width,this.a.height];this.i.forEach(Ka);this.i=null;Ih(this);if(!this.s&&null!==this.l){this.c.width=this.a.width;this.c.height=this.a.height;var a=this.c.getContext("2d");a.drawImage(this.a,0,0);for(var b=a.getImageData(0,0,this.a.width,this.a.height),c=b.data,d=this.l[0]/255,e=this.l[1]/255,f=this.l[2]/255,g=0,h=c.length;g<h;g+=4)c[g]*=d,c[g+1]*=e,c[g+2]*=f;a.putImageData(b,0,0)}this.b("change")};
Hh.prototype.load=function(){if(0==this.f){this.f=1;this.i=[Pa(this.a,"error",this.v,this),Pa(this.a,"load",this.U,this)];try{this.a.src=this.j}catch(a){this.v()}}};function Gh(){this.b={};this.a=0}ca(Gh);Gh.prototype.clear=function(){this.b={};this.a=0};Gh.prototype.get=function(a,b,c){a=b+":"+a+":"+(c?le(c):"null");return a in this.b?this.b[a]:null};Gh.prototype.set=function(a,b,c,d){this.b[b+":"+a+":"+(c?le(c):"null")]=d;++this.a};function Jh(a,b){this.i=b;this.g={};this.s={}}x(Jh,Sa);function Kh(a){var b=a.viewState,c=a.coordinateToPixelTransform,d=a.pixelToCoordinateTransform;lh(c,a.size[0]/2,a.size[1]/2,1/b.resolution,-1/b.resolution,-b.rotation,-b.center[0],-b.center[1]);mh(gh(d,c))}k=Jh.prototype;k.ka=function(){for(var a in this.g)Ta(this.g[a])};function Lh(){var a=Gh.$b();if(32<a.a){var b=0,c,d;for(c in a.b)d=a.b[c],0!==(b++&3)||Ya(d)||(delete a.b[c],--a.a)}}
k.sa=function(a,b,c,d,e,f){function g(a,e){var f=t(a).toString(),g=b.layerStates[t(e)].Qc;if(!(f in b.skippedFeatureUids)||g)return c.call(d,a,g?e:null)}var h,l=b.viewState,m=l.resolution,n=l.projection,l=a;if(n.a){var n=n.H(),p=jc(n),q=a[0];if(q<n[0]||q>n[2])l=[q+p*Math.ceil((n[0]-q)/p),a[1]]}n=b.layerStatesArray;for(p=n.length-1;0<=p;--p){var r=n[p],q=r.layer;if(sh(r,m)&&e.call(f,q)&&(r=Mh(this,q),q.ha()&&(h=r.sa(q.ha().C?l:a,b,g,d)),h))return h}};
k.rh=function(a,b,c,d,e,f){var g,h=b.viewState.resolution,l=b.layerStatesArray,m;for(m=l.length-1;0<=m;--m){g=l[m];var n=g.layer;if(sh(g,h)&&e.call(f,n)&&(g=Mh(this,n).Cc(a,b,c,d)))return g}};k.sh=function(a,b,c,d){return void 0!==this.sa(a,b,rc,this,c,d)};function Mh(a,b){var c=t(b).toString();if(c in a.g)return a.g[c];var d=a.Xe(b);a.g[c]=d;a.s[c]=B(d,"change",a.Rk,a);return d}k.Rk=function(){this.i.render()};k.Ce=oa;
k.To=function(a,b){for(var c in this.g)if(!(b&&c in b.layerStates)){var d=c,e=this.g[d];delete this.g[d];Ka(this.s[d]);delete this.s[d];Ta(e)}};function Nh(a,b){for(var c in a.g)if(!(c in b.layerStates)){b.postRenderFunctions.push(a.To.bind(a));break}}function ob(a,b){return a.zIndex-b.zIndex};function Oh(a,b){this.j=a;this.l=b;this.b=[];this.a=[];this.g={}}Oh.prototype.clear=function(){this.b.length=0;this.a.length=0;Da(this.g)};function Ph(a){var b=a.b,c=a.a,d=b[0];1==b.length?(b.length=0,c.length=0):(b[0]=b.pop(),c[0]=c.pop(),Qh(a,0));b=a.l(d);delete a.g[b];return d}Oh.prototype.f=function(a){var b=this.j(a);return Infinity!=b?(this.b.push(a),this.a.push(b),this.g[this.l(a)]=!0,Rh(this,0,this.b.length-1),!0):!1};Oh.prototype.wc=function(){return this.b.length};
Oh.prototype.Ya=function(){return 0===this.b.length};function Qh(a,b){for(var c=a.b,d=a.a,e=c.length,f=c[b],g=d[b],h=b;b<e>>1;){var l=2*b+1,m=2*b+2,l=m<e&&d[m]<d[l]?m:l;c[b]=c[l];d[b]=d[l];b=l}c[b]=f;d[b]=g;Rh(a,h,b)}function Rh(a,b,c){var d=a.b;a=a.a;for(var e=d[c],f=a[c];c>b;){var g=c-1>>1;if(a[g]>f)d[c]=d[g],a[c]=a[g],c=g;else break}d[c]=e;a[c]=f}
function Sh(a){var b=a.j,c=a.b,d=a.a,e=0,f=c.length,g,h,l;for(h=0;h<f;++h)g=c[h],l=b(g),Infinity==l?delete a.g[a.l(g)]:(d[e]=l,c[e++]=g);c.length=e;d.length=e;for(b=(a.b.length>>1)-1;0<=b;b--)Qh(a,b)};function Th(a,b){Oh.call(this,function(b){return a.apply(null,b)},function(a){return a[0].jb()});this.s=b;this.i=0;this.c={}}x(Th,Oh);Th.prototype.f=function(a){var b=Oh.prototype.f.call(this,a);b&&B(a[0],"change",this.o,this);return b};Th.prototype.o=function(a){a=a.target;var b=a.V();if(2===b||3===b||4===b||5===b)Qa(a,"change",this.o,this),a=a.jb(),a in this.c&&(delete this.c[a],--this.i),this.s()};
function Uh(a,b,c){for(var d=0,e,f;a.i<b&&d<c&&0<a.wc();)e=Ph(a)[0],f=e.jb(),0!==e.V()||f in a.c||(a.c[f]=!0,++a.i,++d,e.load())};function Vh(a,b,c){this.f=a;this.g=b;this.i=c;this.b=[];this.a=this.c=0}function Wh(a,b){var c=a.f,d=a.a,e=a.g-d,f=Math.log(a.g/a.a)/a.f;return Td({source:b,duration:f,easing:function(a){return d*(Math.exp(c*a*f)-1)/e}})};function Xh(a){bb.call(this);this.v=null;this.i(!0);this.handleEvent=a.handleEvent}x(Xh,bb);Xh.prototype.f=function(){return this.get("active")};Xh.prototype.l=function(){return this.v};Xh.prototype.i=function(a){this.set("active",a)};Xh.prototype.setMap=function(a){this.v=a};function Yh(a,b,c,d,e){if(void 0!==c){var f=b.La(),g=b.ab();void 0!==f&&g&&e&&0<e&&(a.Wa(Ud({rotation:f,duration:e,easing:Nd})),d&&a.Wa(Td({source:g,duration:e,easing:Nd})));b.rotate(c,d)}}
function Zh(a,b,c,d,e){var f=b.$();c=b.constrainResolution(f,c,0);$h(a,b,c,d,e)}function $h(a,b,c,d,e){if(c){var f=b.$(),g=b.ab();void 0!==f&&g&&c!==f&&e&&0<e&&(a.Wa(Vd({resolution:f,duration:e,easing:Nd})),d&&a.Wa(Td({source:g,duration:e,easing:Nd})));if(d){var h;a=b.ab();e=b.$();void 0!==a&&void 0!==e&&(h=[d[0]-c*(d[0]-a[0])/e,d[1]-c*(d[1]-a[1])/e]);b.nb(h)}b.Vb(c)}};function ai(a){a=a?a:{};this.a=a.delta?a.delta:1;Xh.call(this,{handleEvent:bi});this.c=void 0!==a.duration?a.duration:250}x(ai,Xh);function bi(a){var b=!1,c=a.originalEvent;if(a.type==Tg){var b=a.map,d=a.coordinate,c=c.shiftKey?-this.a:this.a,e=b.aa();Zh(b,e,c,d,this.c);a.preventDefault();b=!0}return!b};function ci(a){a=a.originalEvent;return a.altKey&&!(a.metaKey||a.ctrlKey)&&a.shiftKey}function di(a){a=a.originalEvent;return 0==a.button&&!(we&&Zf&&a.ctrlKey)}function ei(a){return"pointermove"==a.type}function fi(a){return a.type==Ug}function gi(a){a=a.originalEvent;return!a.altKey&&!(a.metaKey||a.ctrlKey)&&!a.shiftKey}function hi(a){a=a.originalEvent;return!a.altKey&&!(a.metaKey||a.ctrlKey)&&a.shiftKey}
function ii(a){a=a.originalEvent.target.tagName;return"INPUT"!==a&&"SELECT"!==a&&"TEXTAREA"!==a}function ji(a){return"mouse"==a.b.pointerType}function ki(a){a=a.b;return a.isPrimary&&0===a.button};function li(a){a=a?a:{};Xh.call(this,{handleEvent:a.handleEvent?a.handleEvent:mi});this.Oe=a.handleDownEvent?a.handleDownEvent:sc;this.Pe=a.handleDragEvent?a.handleDragEvent:oa;this.Mi=a.handleMoveEvent?a.handleMoveEvent:oa;this.tj=a.handleUpEvent?a.handleUpEvent:sc;this.D=!1;this.ia={};this.o=[]}x(li,Xh);function ni(a){for(var b=a.length,c=0,d=0,e=0;e<b;e++)c+=a[e].clientX,d+=a[e].clientY;return[c/b,d/b]}
function mi(a){if(!(a instanceof Pg))return!0;var b=!1,c=a.type;if(c===Yg||c===$g||c===Wg)c=a.b,a.type==Wg?delete this.ia[c.pointerId]:a.type==Yg?this.ia[c.pointerId]=c:c.pointerId in this.ia&&(this.ia[c.pointerId]=c),this.o=Ea(this.ia);this.D&&(a.type==$g?this.Pe(a):a.type==Wg&&(this.D=this.tj(a)));a.type==Yg?(this.D=a=this.Oe(a),b=this.Gc(a)):a.type==Zg&&this.Mi(a);return!b}li.prototype.Gc=function(a){return a};function oi(a){li.call(this,{handleDownEvent:pi,handleDragEvent:qi,handleUpEvent:ri});a=a?a:{};this.a=a.kinetic;this.c=this.j=null;this.A=a.condition?a.condition:gi;this.s=!1}x(oi,li);function qi(a){var b=ni(this.o);this.a&&this.a.b.push(b[0],b[1],Date.now());if(this.c){var c=this.c[0]-b[0],d=b[1]-this.c[1];a=a.map;var e=a.aa(),f=e.V(),d=c=[c,d],g=f.resolution;d[0]*=g;d[1]*=g;Db(c,f.rotation);yb(c,f.center);c=e.Pd(c);a.render();e.nb(c)}this.c=b}
function ri(a){a=a.map;var b=a.aa();if(0===this.o.length){var c;if(c=!this.s&&this.a)if(c=this.a,6>c.b.length)c=!1;else{var d=Date.now()-c.i,e=c.b.length-3;if(c.b[e+2]<d)c=!1;else{for(var f=e-3;0<f&&c.b[f+2]>d;)f-=3;var d=c.b[e+2]-c.b[f+2],g=c.b[e]-c.b[f],e=c.b[e+1]-c.b[f+1];c.c=Math.atan2(e,g);c.a=Math.sqrt(g*g+e*e)/d;c=c.a>c.g}}c&&(c=this.a,c=(c.g-c.a)/c.f,e=this.a.c,f=b.ab(),this.j=Wh(this.a,f),a.Wa(this.j),f=a.Ga(f),c=a.Ma([f[0]-c*Math.cos(e),f[1]-c*Math.sin(e)]),c=b.Pd(c),b.nb(c));Ld(b,-1);a.render();
return!1}this.c=null;return!0}function pi(a){if(0<this.o.length&&this.A(a)){var b=a.map,c=b.aa();this.c=null;this.D||Ld(c,1);b.render();this.j&&kb(b.S,this.j)&&(c.nb(a.frameState.viewState.center),this.j=null);this.a&&(a=this.a,a.b.length=0,a.c=0,a.a=0);this.s=1<this.o.length;return!0}return!1}oi.prototype.Gc=sc;function si(a){a=a?a:{};li.call(this,{handleDownEvent:ti,handleDragEvent:ui,handleUpEvent:vi});this.c=a.condition?a.condition:ci;this.a=void 0;this.j=void 0!==a.duration?a.duration:250}x(si,li);function ui(a){if(ji(a)){var b=a.map,c=b.Za();a=a.pixel;c=Math.atan2(c[1]/2-a[1],a[0]-c[0]/2);if(void 0!==this.a){a=c-this.a;var d=b.aa(),e=d.La();b.render();Yh(b,d,e-a)}this.a=c}}
function vi(a){if(!ji(a))return!0;a=a.map;var b=a.aa();Ld(b,-1);var c=b.La(),d=this.j,c=b.constrainRotation(c,0);Yh(a,b,c,void 0,d);return!1}function ti(a){return ji(a)&&di(a)&&this.c(a)?(a=a.map,Ld(a.aa(),1),a.render(),this.a=void 0,!0):!1}si.prototype.Gc=sc;function wi(a){this.f=null;this.a=document.createElement("div");this.a.style.position="absolute";this.a.className="ol-box "+a;this.g=this.c=this.b=null}x(wi,Sa);wi.prototype.ka=function(){this.setMap(null)};function xi(a){var b=a.c,c=a.g;a=a.a.style;a.left=Math.min(b[0],c[0])+"px";a.top=Math.min(b[1],c[1])+"px";a.width=Math.abs(c[0]-b[0])+"px";a.height=Math.abs(c[1]-b[1])+"px"}
wi.prototype.setMap=function(a){if(this.b){this.b.A.removeChild(this.a);var b=this.a.style;b.left=b.top=b.width=b.height="inherit"}(this.b=a)&&this.b.A.appendChild(this.a)};function yi(a){var b=a.c,c=a.g,b=[b,[b[0],c[1]],c,[c[0],b[1]]].map(a.b.Ma,a.b);b[4]=b[0].slice();a.f?a.f.ra([b]):a.f=new E([b])}wi.prototype.X=function(){return this.f};function zi(a,b,c){Ua.call(this,a);this.coordinate=b;this.mapBrowserEvent=c}x(zi,Ua);function Ai(a){li.call(this,{handleDownEvent:Bi,handleDragEvent:Ci,handleUpEvent:Di});a=a?a:{};this.a=new wi(a.className||"ol-dragbox");this.c=null;this.C=a.condition?a.condition:rc;this.A=a.boxEndCondition?a.boxEndCondition:Ei}x(Ai,li);function Ei(a,b,c){a=c[0]-b[0];b=c[1]-b[1];return 64<=a*a+b*b}
function Ci(a){if(ji(a)){var b=this.a,c=a.pixel;b.c=this.c;b.g=c;yi(b);xi(b);this.b(new zi("boxdrag",a.coordinate,a))}}Ai.prototype.X=function(){return this.a.X()};Ai.prototype.s=oa;function Di(a){if(!ji(a))return!0;this.a.setMap(null);this.A(a,this.c,a.pixel)&&(this.s(a),this.b(new zi("boxend",a.coordinate,a)));return!1}
function Bi(a){if(ji(a)&&di(a)&&this.C(a)){this.c=a.pixel;this.a.setMap(a.map);var b=this.a,c=this.c;b.c=this.c;b.g=c;yi(b);xi(b);this.b(new zi("boxstart",a.coordinate,a));return!0}return!1};function Fi(a){a=a?a:{};var b=a.condition?a.condition:hi;this.j=void 0!==a.duration?a.duration:200;this.S=void 0!==a.out?a.out:!1;Ai.call(this,{condition:b,className:a.className||"ol-dragzoom"})}x(Fi,Ai);
Fi.prototype.s=function(){var a=this.v,b=a.aa(),c=a.Za(),d=this.X().H();if(this.S){var e=b.Kc(c),d=[a.Ga(cc(d)),a.Ga(ec(d))],f=Vb(Infinity,Infinity,-Infinity,-Infinity,void 0),g,h;g=0;for(h=d.length;g<h;++g)Lb(f,d[g]);pc(e,1/Hd(f,c));d=e}c=b.constrainResolution(Hd(d,c));e=b.$();f=b.ab();a.Wa(Vd({resolution:e,duration:this.j,easing:Nd}));a.Wa(Td({source:f,duration:this.j,easing:Nd}));b.nb(lc(d));b.Vb(c)};function Gi(a){Xh.call(this,{handleEvent:Hi});a=a||{};this.a=function(a){return gi(a)&&ii(a)};this.c=void 0!==a.condition?a.condition:this.a;this.o=void 0!==a.duration?a.duration:100;this.j=void 0!==a.pixelDelta?a.pixelDelta:128}x(Gi,Xh);
function Hi(a){var b=!1;if("keydown"==a.type){var c=a.originalEvent.keyCode;if(this.c(a)&&(40==c||37==c||39==c||38==c)){var d=a.map,b=d.aa(),e=b.$()*this.j,f=0,g=0;40==c?g=-e:37==c?f=-e:39==c?f=e:g=e;c=[f,g];Db(c,b.La());e=this.o;if(f=b.ab())e&&0<e&&d.Wa(Td({source:f,duration:e,easing:Rd})),d=b.Pd([f[0]+c[0],f[1]+c[1]]),b.nb(d);a.preventDefault();b=!0}}return!b};function Ii(a){Xh.call(this,{handleEvent:Ji});a=a?a:{};this.c=a.condition?a.condition:ii;this.a=a.delta?a.delta:1;this.o=void 0!==a.duration?a.duration:100}x(Ii,Xh);function Ji(a){var b=!1;if("keydown"==a.type||"keypress"==a.type){var c=a.originalEvent.charCode;if(this.c(a)&&(43==c||45==c)){b=a.map;c=43==c?this.a:-this.a;b.render();var d=b.aa();Zh(b,d,c,void 0,this.o);a.preventDefault();b=!0}}return!b};function Ki(a){Xh.call(this,{handleEvent:Li});a=a||{};this.c=0;this.D=void 0!==a.duration?a.duration:250;this.s=void 0!==a.useAnchor?a.useAnchor:!0;this.a=null;this.j=this.o=void 0}x(Ki,Xh);
function Li(a){var b=!1;if("wheel"==a.type||"mousewheel"==a.type){var b=a.map,c=a.originalEvent;this.s&&(this.a=a.coordinate);var d;"wheel"==a.type?(d=c.deltaY,Xf&&c.deltaMode===pa.WheelEvent.DOM_DELTA_PIXEL&&(d/=$f),c.deltaMode===pa.WheelEvent.DOM_DELTA_LINE&&(d*=40)):"mousewheel"==a.type&&(d=-c.wheelDeltaY,Yf&&(d/=3));this.c+=d;void 0===this.o&&(this.o=Date.now());d=Math.max(80-(Date.now()-this.o),0);pa.clearTimeout(this.j);this.j=pa.setTimeout(this.A.bind(this,b),d);a.preventDefault();b=!0}return!b}
Ki.prototype.A=function(a){var b=sa(this.c,-1,1),c=a.aa();a.render();Zh(a,c,-b,this.a,this.D);this.c=0;this.a=null;this.j=this.o=void 0};Ki.prototype.C=function(a){this.s=a;a||(this.a=null)};function Mi(a){li.call(this,{handleDownEvent:Ni,handleDragEvent:Oi,handleUpEvent:Pi});a=a||{};this.c=null;this.j=void 0;this.a=!1;this.s=0;this.C=void 0!==a.threshold?a.threshold:.3;this.A=void 0!==a.duration?a.duration:250}x(Mi,li);
function Oi(a){var b=0,c=this.o[0],d=this.o[1],c=Math.atan2(d.clientY-c.clientY,d.clientX-c.clientX);void 0!==this.j&&(b=c-this.j,this.s+=b,!this.a&&Math.abs(this.s)>this.C&&(this.a=!0));this.j=c;a=a.map;c=a.a.getBoundingClientRect();d=ni(this.o);d[0]-=c.left;d[1]-=c.top;this.c=a.Ma(d);this.a&&(c=a.aa(),d=c.La(),a.render(),Yh(a,c,d+b,this.c))}
function Pi(a){if(2>this.o.length){a=a.map;var b=a.aa();Ld(b,-1);if(this.a){var c=b.La(),d=this.c,e=this.A,c=b.constrainRotation(c,0);Yh(a,b,c,d,e)}return!1}return!0}function Ni(a){return 2<=this.o.length?(a=a.map,this.c=null,this.j=void 0,this.a=!1,this.s=0,this.D||Ld(a.aa(),1),a.render(),!0):!1}Mi.prototype.Gc=sc;function Qi(a){li.call(this,{handleDownEvent:Ri,handleDragEvent:Si,handleUpEvent:Ti});a=a?a:{};this.c=null;this.s=void 0!==a.duration?a.duration:400;this.a=void 0;this.j=1}x(Qi,li);function Si(a){var b=1,c=this.o[0],d=this.o[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);void 0!==this.a&&(b=this.a/e);this.a=e;1!=b&&(this.j=b);a=a.map;var e=a.aa(),c=e.$(),d=a.a.getBoundingClientRect(),f=ni(this.o);f[0]-=d.left;f[1]-=d.top;this.c=a.Ma(f);a.render();$h(a,e,c*b,this.c)}
function Ti(a){if(2>this.o.length){a=a.map;var b=a.aa();Ld(b,-1);var c=b.$(),d=this.c,e=this.s,c=b.constrainResolution(c,0,this.j-1);$h(a,b,c,d,e);return!1}return!0}function Ri(a){return 2<=this.o.length?(a=a.map,this.c=null,this.a=void 0,this.j=1,this.D||Ld(a.aa(),1),a.render(),!0):!1}Qi.prototype.Gc=sc;function Ui(a){a=a?a:{};var b=new be,c=new Vh(-.005,.05,100);(void 0!==a.altShiftDragRotate?a.altShiftDragRotate:1)&&b.push(new si);(void 0!==a.doubleClickZoom?a.doubleClickZoom:1)&&b.push(new ai({delta:a.zoomDelta,duration:a.zoomDuration}));(void 0!==a.dragPan?a.dragPan:1)&&b.push(new oi({kinetic:c}));(void 0!==a.pinchRotate?a.pinchRotate:1)&&b.push(new Mi);(void 0!==a.pinchZoom?a.pinchZoom:1)&&b.push(new Qi({duration:a.zoomDuration}));if(void 0!==a.keyboard?a.keyboard:1)b.push(new Gi),b.push(new Ii({delta:a.zoomDelta,
duration:a.zoomDuration}));(void 0!==a.mouseWheelZoom?a.mouseWheelZoom:1)&&b.push(new Ki({duration:a.zoomDuration}));(void 0!==a.shiftDragZoom?a.shiftDragZoom:1)&&b.push(new Fi({duration:a.zoomDuration}));return b};function Vi(a){var b=a||{};a=Ca({},b);delete a.layers;b=b.layers;nh.call(this,a);this.f=[];this.a={};B(this,db("layers"),this.Tk,this);b?Array.isArray(b)&&(b=new be(b.slice())):b=new be;this.oh(b)}x(Vi,nh);k=Vi.prototype;k.ce=function(){this.yb()&&this.u()};
k.Tk=function(){this.f.forEach(Ka);this.f.length=0;var a=this.Tc();this.f.push(B(a,"add",this.Sk,this),B(a,"remove",this.Uk,this));for(var b in this.a)this.a[b].forEach(Ka);Da(this.a);var a=a.a,c,d;b=0;for(c=a.length;b<c;b++)d=a[b],this.a[t(d).toString()]=[B(d,"propertychange",this.ce,this),B(d,"change",this.ce,this)];this.u()};k.Sk=function(a){a=a.element;var b=t(a).toString();this.a[b]=[B(a,"propertychange",this.ce,this),B(a,"change",this.ce,this)];this.u()};
k.Uk=function(a){a=t(a.element).toString();this.a[a].forEach(Ka);delete this.a[a];this.u()};k.Tc=function(){return this.get("layers")};k.oh=function(a){this.set("layers",a)};
k.hf=function(a){var b=void 0!==a?a:[],c=b.length;this.Tc().forEach(function(a){a.hf(b)});a=oh(this);var d,e;for(d=b.length;c<d;c++)e=b[c],e.opacity*=a.opacity,e.visible=e.visible&&a.visible,e.maxResolution=Math.min(e.maxResolution,a.maxResolution),e.minResolution=Math.max(e.minResolution,a.minResolution),void 0!==a.extent&&(e.extent=void 0!==e.extent?nc(e.extent,a.extent):a.extent);return b};k.kf=function(){return"ready"};function Wi(a){wc.call(this,{code:a,units:"m",extent:Xi,global:!0,worldExtent:Yi})}x(Wi,wc);Wi.prototype.getPointResolution=function(a,b){return a/ta(b[1]/6378137)};var Zi=6378137*Math.PI,Xi=[-Zi,-Zi,Zi,Zi],Yi=[-180,-85,180,85],Ic="EPSG:3857 EPSG:102100 EPSG:102113 EPSG:900913 urn:ogc:def:crs:EPSG:6.18:3:3857 urn:ogc:def:crs:EPSG::3857 http://www.opengis.net/gml/srs/epsg.xml#3857".split(" ").map(function(a){return new Wi(a)});
function Jc(a,b,c){var d=a.length;c=1<c?c:2;void 0===b&&(2<c?b=a.slice():b=Array(d));for(var e=0;e<d;e+=c)b[e]=6378137*Math.PI*a[e]/180,b[e+1]=6378137*Math.log(Math.tan(Math.PI*(a[e+1]+90)/360));return b}function Kc(a,b,c){var d=a.length;c=1<c?c:2;void 0===b&&(2<c?b=a.slice():b=Array(d));for(var e=0;e<d;e+=c)b[e]=180*a[e]/(6378137*Math.PI),b[e+1]=360*Math.atan(Math.exp(a[e+1]/6378137))/Math.PI-90;return b};var $i=new tc(6378137);function aj(a,b){wc.call(this,{code:a,units:"degrees",extent:bj,axisOrientation:b,global:!0,metersPerUnit:cj,worldExtent:bj})}x(aj,wc);aj.prototype.getPointResolution=function(a){return a};
var bj=[-180,-90,180,90],cj=Math.PI*$i.radius/180,Lc=[new aj("CRS:84"),new aj("EPSG:4326","neu"),new aj("urn:ogc:def:crs:EPSG::4326","neu"),new aj("urn:ogc:def:crs:EPSG:6.6:4326","neu"),new aj("urn:ogc:def:crs:OGC:1.3:CRS84"),new aj("urn:ogc:def:crs:OGC:2:84"),new aj("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new aj("urn:x-ogc:def:crs:EPSG:4326","neu")];function dj(){Ac(Ic);Ac(Lc);Hc()};function ej(a){rh.call(this,a?a:{})}x(ej,rh);function F(a){a=a?a:{};var b=Ca({},a);delete b.preload;delete b.useInterimTilesOnError;rh.call(this,b);this.l(void 0!==a.preload?a.preload:0);this.A(void 0!==a.useInterimTilesOnError?a.useInterimTilesOnError:!0)}x(F,rh);F.prototype.f=function(){return this.get("preload")};F.prototype.l=function(a){this.set("preload",a)};F.prototype.c=function(){return this.get("useInterimTilesOnError")};F.prototype.A=function(a){this.set("useInterimTilesOnError",a)};var fj=[0,0,0,1],gj=[],hj=[0,0,0,1];function ij(a,b,c,d){0!==b&&(a.translate(c,d),a.rotate(b),a.translate(-c,-d))};function jj(a){a=a||{};this.b=void 0!==a.color?a.color:null;this.a=void 0}jj.prototype.g=function(){return this.b};jj.prototype.f=function(a){this.b=a;this.a=void 0};function kj(a){void 0===a.a&&(a.a=a.b instanceof CanvasPattern||a.b instanceof CanvasGradient?t(a.b).toString():"f"+(a.b?le(a.b):"-"));return a.a};function lj(){this.a=-1};function mj(){this.a=64;this.b=Array(4);this.c=Array(this.a);this.b[0]=1732584193;this.b[1]=4023233417;this.b[2]=2562383102;this.b[3]=271733878;this.f=this.g=0}(function(){function a(){}a.prototype=lj.prototype;mj.a=lj.prototype;mj.prototype=new a;mj.prototype.constructor=mj;mj.b=function(a,c,d){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return lj.prototype[c].apply(a,e)}})();
function nj(a,b,c){c||(c=0);var d=Array(16);if(ea(b))for(var e=0;16>e;++e)d[e]=b.charCodeAt(c++)|b.charCodeAt(c++)<<8|b.charCodeAt(c++)<<16|b.charCodeAt(c++)<<24;else for(e=0;16>e;++e)d[e]=b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24;b=a.b[0];c=a.b[1];var e=a.b[2],f=a.b[3],g;g=b+(f^c&(e^f))+d[0]+3614090360&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[1]+3905402710&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[2]+606105819&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+
d[3]+3250441966&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[4]+4118548399&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[5]+1200080426&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[6]+2821735955&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[7]+4249261313&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[8]+1770035416&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[9]+2336552879&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&
(b^c))+d[10]+4294925233&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[11]+2304563134&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[12]+1804603682&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[13]+4254626195&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[14]+2792965006&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[15]+1236535329&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(e^f&(c^e))+d[1]+4129170786&4294967295;b=c+(g<<5&4294967295|g>>>
27);g=f+(c^e&(b^c))+d[6]+3225465664&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[11]+643717713&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[0]+3921069994&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(e^f&(c^e))+d[5]+3593408605&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[10]+38016083&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[15]+3634488961&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[4]+3889429448&4294967295;c=e+(g<<20&4294967295|
g>>>12);g=b+(e^f&(c^e))+d[9]+568446438&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[14]+3275163606&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[3]+4107603335&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[8]+1163531501&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(e^f&(c^e))+d[13]+2850285829&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[2]+4243563512&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[7]+1735328473&4294967295;e=f+(g<<14&4294967295|
g>>>18);g=c+(f^b&(e^f))+d[12]+2368359562&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(c^e^f)+d[5]+4294588738&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[8]+2272392833&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[11]+1839030562&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[14]+4259657740&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[1]+2763975236&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[4]+1272893353&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^
b^c)+d[7]+4139469664&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[10]+3200236656&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[13]+681279174&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[0]+3936430074&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[3]+3572445317&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[6]+76029189&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[9]+3654602809&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[12]+3873151461&4294967295;
f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[15]+530742520&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[2]+3299628645&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(e^(c|~f))+d[0]+4096336452&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[7]+1126891415&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[14]+2878612391&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[5]+4237533241&4294967295;c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[12]+1700485571&4294967295;b=c+
(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[3]+2399980690&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[10]+4293915773&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[1]+2240044497&4294967295;c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[8]+1873313359&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[15]+4264355552&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[6]+2734768916&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[13]+1309151649&4294967295;
c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[4]+4149444226&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[11]+3174756917&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[2]+718787259&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[9]+3951481745&4294967295;a.b[0]=a.b[0]+b&4294967295;a.b[1]=a.b[1]+(e+(g<<21&4294967295|g>>>11))&4294967295;a.b[2]=a.b[2]+e&4294967295;a.b[3]=a.b[3]+f&4294967295}
function oj(a,b){var c;void 0===c&&(c=b.length);for(var d=c-a.a,e=a.c,f=a.g,g=0;g<c;){if(0==f)for(;g<=d;)nj(a,b,g),g+=a.a;if(ea(b))for(;g<c;){if(e[f++]=b.charCodeAt(g++),f==a.a){nj(a,e);f=0;break}}else for(;g<c;)if(e[f++]=b[g++],f==a.a){nj(a,e);f=0;break}}a.g=f;a.f+=c};function pj(a){a=a||{};this.b=void 0!==a.color?a.color:null;this.f=a.lineCap;this.g=void 0!==a.lineDash?a.lineDash:null;this.c=a.lineJoin;this.i=a.miterLimit;this.a=a.width;this.l=void 0}k=pj.prototype;k.Kn=function(){return this.b};k.dk=function(){return this.f};k.Ln=function(){return this.g};k.ek=function(){return this.c};k.jk=function(){return this.i};k.Mn=function(){return this.a};k.Nn=function(a){this.b=a;this.l=void 0};k.fp=function(a){this.f=a;this.l=void 0};
k.On=function(a){this.g=a;this.l=void 0};k.gp=function(a){this.c=a;this.l=void 0};k.hp=function(a){this.i=a;this.l=void 0};k.lp=function(a){this.a=a;this.l=void 0};
function qj(a){if(void 0===a.l){var b="s"+(a.b?le(a.b):"-")+","+(void 0!==a.f?a.f.toString():"-")+","+(a.g?a.g.toString():"-")+","+(void 0!==a.c?a.c:"-")+","+(void 0!==a.i?a.i.toString():"-")+","+(void 0!==a.a?a.a.toString():"-"),c=new mj;oj(c,b);b=Array((56>c.g?c.a:2*c.a)-c.g);b[0]=128;for(var d=1;d<b.length-8;++d)b[d]=0;for(var e=8*c.f,d=b.length-8;d<b.length;++d)b[d]=e&255,e/=256;oj(c,b);b=Array(16);for(d=e=0;4>d;++d)for(var f=0;32>f;f+=8)b[e++]=c.b[d]>>>f&255;if(8192>=b.length)c=String.fromCharCode.apply(null,
b);else for(c="",d=0;d<b.length;d+=8192)e=fe(b,d,d+8192),c+=String.fromCharCode.apply(null,e);a.l=c}return a.l};function rj(a){a=a||{};this.l=this.f=this.c=null;this.g=void 0!==a.fill?a.fill:null;this.b=void 0!==a.stroke?a.stroke:null;this.a=a.radius;this.A=[0,0];this.s=this.C=this.o=null;var b=a.atlasManager,c,d=null,e,f=0;this.b&&(e=le(this.b.b),f=this.b.a,void 0===f&&(f=1),d=this.b.g,ag||(d=null));var g=2*(this.a+f)+1;e={strokeStyle:e,Bd:f,size:g,lineDash:d};if(void 0===b)b=Ge(g,g),this.f=b.canvas,c=g=this.f.width,this.Gh(e,b,0,0),this.g?this.l=this.f:(b=Ge(e.size,e.size),this.l=b.canvas,this.Fh(e,b,0,0));
else{g=Math.round(g);(d=!this.g)&&(c=this.Fh.bind(this,e));var f=this.b?qj(this.b):"-",h=this.g?kj(this.g):"-";this.c&&f==this.c[1]&&h==this.c[2]&&this.a==this.c[3]||(this.c=["c"+f+h+(void 0!==this.a?this.a.toString():"-"),f,h,this.a]);b=b.add(this.c[0],g,g,this.Gh.bind(this,e),c);this.f=b.image;this.A=[b.offsetX,b.offsetY];c=b.image.width;this.l=d?b.Sg:this.f}this.o=[g/2,g/2];this.C=[g,g];this.s=[c,c];Eh.call(this,{opacity:1,rotateWithView:!1,rotation:0,scale:1,snapToPixel:void 0!==a.snapToPixel?
a.snapToPixel:!0})}x(rj,Eh);k=rj.prototype;k.Zb=function(){return this.o};k.Bn=function(){return this.g};k.pe=function(){return this.l};k.jc=function(){return this.f};k.td=function(){return 2};k.ld=function(){return this.s};k.Ia=function(){return this.A};k.Cn=function(){return this.a};k.Gb=function(){return this.C};k.Dn=function(){return this.b};k.pf=oa;k.load=oa;k.Xf=oa;
k.Gh=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();b.arc(a.size/2,a.size/2,this.a,0,2*Math.PI,!0);this.g&&(b.fillStyle=ne(this.g.b),b.fill());this.b&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.Bd,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};
k.Fh=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();b.arc(a.size/2,a.size/2,this.a,0,2*Math.PI,!0);b.fillStyle=le(fj);b.fill();this.b&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.Bd,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};function sj(a){a=a||{};this.i=null;this.g=tj;void 0!==a.geometry&&this.Jh(a.geometry);this.c=void 0!==a.fill?a.fill:null;this.a=void 0!==a.image?a.image:null;this.f=void 0!==a.stroke?a.stroke:null;this.l=void 0!==a.text?a.text:null;this.b=a.zIndex}k=sj.prototype;k.X=function(){return this.i};k.Zj=function(){return this.g};k.Pn=function(){return this.c};k.Qn=function(){return this.a};k.Rn=function(){return this.f};k.Ha=function(){return this.l};k.Sn=function(){return this.b};
k.Jh=function(a){"function"===typeof a?this.g=a:"string"===typeof a?this.g=function(b){return b.get(a)}:a?a&&(this.g=function(){return a}):this.g=tj;this.i=a};k.Tn=function(a){this.b=a};function uj(a){if("function"!==typeof a){var b;b=Array.isArray(a)?a:[a];a=function(){return b}}return a}var vj=null;function wj(){if(!vj){var a=new jj({color:"rgba(255,255,255,0.4)"}),b=new pj({color:"#3399CC",width:1.25});vj=[new sj({image:new rj({fill:a,stroke:b,radius:5}),fill:a,stroke:b})]}return vj}
function xj(){var a={},b=[255,255,255,1],c=[0,153,255,1];a.Polygon=[new sj({fill:new jj({color:[255,255,255,.5]})})];a.MultiPolygon=a.Polygon;a.LineString=[new sj({stroke:new pj({color:b,width:5})}),new sj({stroke:new pj({color:c,width:3})})];a.MultiLineString=a.LineString;a.Circle=a.Polygon.concat(a.LineString);a.Point=[new sj({image:new rj({radius:6,fill:new jj({color:c}),stroke:new pj({color:b,width:1.5})}),zIndex:Infinity})];a.MultiPoint=a.Point;a.GeometryCollection=a.Polygon.concat(a.LineString,
a.Point);return a}function tj(a){return a.X()};function I(a){a=a?a:{};var b=Ca({},a);delete b.style;delete b.renderBuffer;delete b.updateWhileAnimating;delete b.updateWhileInteracting;rh.call(this,b);this.a=void 0!==a.renderBuffer?a.renderBuffer:100;this.A=null;this.i=void 0;this.l(a.style);this.P=void 0!==a.updateWhileAnimating?a.updateWhileAnimating:!1;this.T=void 0!==a.updateWhileInteracting?a.updateWhileInteracting:!1}x(I,rh);function yj(a){return a.get("renderOrder")}I.prototype.D=function(){return this.A};I.prototype.C=function(){return this.i};
I.prototype.l=function(a){this.A=void 0!==a?a:wj;this.i=null===a?void 0:uj(this.A);this.u()};function J(a){a=a?a:{};var b=Ca({},a);delete b.preload;delete b.useInterimTilesOnError;I.call(this,b);this.W(a.preload?a.preload:0);this.ia(a.useInterimTilesOnError?a.useInterimTilesOnError:!0);this.s=a.renderMode||"hybrid"}x(J,I);J.prototype.f=function(){return this.get("preload")};J.prototype.c=function(){return this.get("useInterimTilesOnError")};J.prototype.W=function(a){this.set("preload",a)};J.prototype.ia=function(a){this.set("useInterimTilesOnError",a)};function zj(a,b,c,d,e){this.f=a;this.A=b;this.c=c;this.C=d;this.Hc=e;this.i=this.b=this.a=this.ia=this.Ra=this.W=null;this.Ba=this.na=this.v=this.Aa=this.ya=this.S=0;this.Hb=!1;this.l=this.oa=0;this.za=!1;this.P=0;this.g="";this.j=this.D=this.cb=this.Sa=0;this.T=this.s=this.o=null;this.U=[];this.rb=ch()}x(zj,ph);
function Aj(a,b,c){if(a.i){b=Vc(b,0,c,2,a.C,a.U);c=a.f;var d=a.rb,e=c.globalAlpha;1!=a.v&&(c.globalAlpha=e*a.v);var f=a.oa;a.Hb&&(f+=a.Hc);var g,h;g=0;for(h=b.length;g<h;g+=2){var l=b[g]-a.S,m=b[g+1]-a.ya;a.za&&(l=Math.round(l),m=Math.round(m));if(0!==f||1!=a.l){var n=l+a.S,p=m+a.ya;lh(d,n,p,a.l,a.l,f,-n,-p);c.setTransform.apply(c,d)}c.drawImage(a.i,a.na,a.Ba,a.P,a.Aa,l,m,a.P,a.Aa)}0===f&&1==a.l||c.setTransform(1,0,0,1,0,0);1!=a.v&&(c.globalAlpha=e)}}
function Bj(a,b,c,d){var e=0;if(a.T&&""!==a.g){a.o&&Cj(a,a.o);a.s&&Dj(a,a.s);var f=a.T,g=a.f,h=a.ia;h?(h.font!=f.font&&(h.font=g.font=f.font),h.textAlign!=f.textAlign&&(h.textAlign=g.textAlign=f.textAlign),h.textBaseline!=f.textBaseline&&(h.textBaseline=g.textBaseline=f.textBaseline)):(g.font=f.font,g.textAlign=f.textAlign,g.textBaseline=f.textBaseline,a.ia={font:f.font,textAlign:f.textAlign,textBaseline:f.textBaseline});b=Vc(b,e,c,d,a.C,a.U);for(f=a.f;e<c;e+=d){g=b[e]+a.Sa;h=b[e+1]+a.cb;if(0!==a.D||
1!=a.j){var l=lh(a.rb,g,h,a.j,a.j,a.D,-g,-h);f.setTransform.apply(f,l)}a.s&&f.strokeText(a.g,g,h);a.o&&f.fillText(a.g,g,h)}0===a.D&&1==a.j||f.setTransform(1,0,0,1,0,0)}}function Ej(a,b,c,d,e,f){var g=a.f;a=Vc(b,c,d,e,a.C,a.U);g.moveTo(a[0],a[1]);b=a.length;f&&(b-=2);for(c=2;c<b;c+=2)g.lineTo(a[c],a[c+1]);f&&g.closePath();return d}function Fj(a,b,c,d,e){var f,g;f=0;for(g=d.length;f<g;++f)c=Ej(a,b,c,d[f],e,!0);return c}k=zj.prototype;
k.Rd=function(a){if(oc(this.c,a.H())){if(this.a||this.b){this.a&&Cj(this,this.a);this.b&&Dj(this,this.b);var b;b=this.C;var c=this.U,d=a.la();b=d?Vc(d,0,d.length,a.va(),b,c):null;c=b[2]-b[0];d=b[3]-b[1];c=Math.sqrt(c*c+d*d);d=this.f;d.beginPath();d.arc(b[0],b[1],c,0,2*Math.PI);this.a&&d.fill();this.b&&d.stroke()}""!==this.g&&Bj(this,a.rd(),2,2)}};k.sd=function(a){this.Tb(a.c,a.f);this.Ub(a.a);this.Wb(a.Ha())};
k.sc=function(a){switch(a.Y()){case "Point":this.uc(a);break;case "LineString":this.hd(a);break;case "Polygon":this.bf(a);break;case "MultiPoint":this.tc(a);break;case "MultiLineString":this.$e(a);break;case "MultiPolygon":this.af(a);break;case "GeometryCollection":this.Ze(a);break;case "Circle":this.Rd(a)}};k.Ye=function(a,b){var c=(0,b.g)(a);c&&oc(this.c,c.H())&&(this.sd(b),this.sc(c))};k.Ze=function(a){a=a.c;var b,c;b=0;for(c=a.length;b<c;++b)this.sc(a[b])};
k.uc=function(a){var b=a.la();a=a.va();this.i&&Aj(this,b,b.length);""!==this.g&&Bj(this,b,b.length,a)};k.tc=function(a){var b=a.la();a=a.va();this.i&&Aj(this,b,b.length);""!==this.g&&Bj(this,b,b.length,a)};k.hd=function(a){if(oc(this.c,a.H())){if(this.b){Dj(this,this.b);var b=this.f,c=a.la();b.beginPath();Ej(this,c,0,c.length,a.va(),!1);b.stroke()}""!==this.g&&(a=Gj(a),Bj(this,a,2,2))}};
k.$e=function(a){var b=a.H();if(oc(this.c,b)){if(this.b){Dj(this,this.b);var b=this.f,c=a.la(),d=0,e=a.Eb(),f=a.va();b.beginPath();var g,h;g=0;for(h=e.length;g<h;++g)d=Ej(this,c,d,e[g],f,!1);b.stroke()}""!==this.g&&(a=Hj(a),Bj(this,a,a.length,2))}};k.bf=function(a){if(oc(this.c,a.H())){if(this.b||this.a){this.a&&Cj(this,this.a);this.b&&Dj(this,this.b);var b=this.f;b.beginPath();Fj(this,a.Nb(),0,a.Eb(),a.va());this.a&&b.fill();this.b&&b.stroke()}""!==this.g&&(a=Ad(a),Bj(this,a,2,2))}};
k.af=function(a){if(oc(this.c,a.H())){if(this.b||this.a){this.a&&Cj(this,this.a);this.b&&Dj(this,this.b);var b=this.f,c=Ij(a),d=0,e=a.i,f=a.va(),g,h;g=0;for(h=e.length;g<h;++g){var l=e[g];b.beginPath();d=Fj(this,c,d,l,f);this.a&&b.fill();this.b&&b.stroke()}}""!==this.g&&(a=Jj(a),Bj(this,a,a.length,2))}};function Cj(a,b){var c=a.f,d=a.W;d?d.fillStyle!=b.fillStyle&&(d.fillStyle=c.fillStyle=b.fillStyle):(c.fillStyle=b.fillStyle,a.W={fillStyle:b.fillStyle})}
function Dj(a,b){var c=a.f,d=a.Ra;d?(d.lineCap!=b.lineCap&&(d.lineCap=c.lineCap=b.lineCap),ag&&!mb(d.lineDash,b.lineDash)&&c.setLineDash(d.lineDash=b.lineDash),d.lineJoin!=b.lineJoin&&(d.lineJoin=c.lineJoin=b.lineJoin),d.lineWidth!=b.lineWidth&&(d.lineWidth=c.lineWidth=b.lineWidth),d.miterLimit!=b.miterLimit&&(d.miterLimit=c.miterLimit=b.miterLimit),d.strokeStyle!=b.strokeStyle&&(d.strokeStyle=c.strokeStyle=b.strokeStyle)):(c.lineCap=b.lineCap,ag&&c.setLineDash(b.lineDash),c.lineJoin=b.lineJoin,c.lineWidth=
b.lineWidth,c.miterLimit=b.miterLimit,c.strokeStyle=b.strokeStyle,a.Ra={lineCap:b.lineCap,lineDash:b.lineDash,lineJoin:b.lineJoin,lineWidth:b.lineWidth,miterLimit:b.miterLimit,strokeStyle:b.strokeStyle})}
k.Tb=function(a,b){if(a){var c=a.b;this.a={fillStyle:ne(c?c:fj)}}else this.a=null;if(b){var c=b.b,d=b.f,e=b.g,f=b.c,g=b.a,h=b.i;this.b={lineCap:void 0!==d?d:"round",lineDash:e?e:gj,lineJoin:void 0!==f?f:"round",lineWidth:this.A*(void 0!==g?g:1),miterLimit:void 0!==h?h:10,strokeStyle:le(c?c:hj)}}else this.b=null};
k.Ub=function(a){if(a){var b=a.Zb(),c=a.jc(1),d=a.Ia(),e=a.Gb();this.S=b[0];this.ya=b[1];this.Aa=e[1];this.i=c;this.v=a.v;this.na=d[0];this.Ba=d[1];this.Hb=a.U;this.oa=a.j;this.l=a.i;this.za=a.D;this.P=e[0]}else this.i=null};
k.Wb=function(a){if(a){var b=a.b;b?(b=b.b,this.o={fillStyle:ne(b?b:fj)}):this.o=null;var c=a.l;if(c){var b=c.b,d=c.f,e=c.g,f=c.c,g=c.a,c=c.i;this.s={lineCap:void 0!==d?d:"round",lineDash:e?e:gj,lineJoin:void 0!==f?f:"round",lineWidth:void 0!==g?g:1,miterLimit:void 0!==c?c:10,strokeStyle:le(b?b:hj)}}else this.s=null;var b=a.g,d=a.f,e=a.c,f=a.i,g=a.a,c=a.Ha(),h=a.o;a=a.j;this.T={font:void 0!==b?b:"10px sans-serif",textAlign:void 0!==h?h:"center",textBaseline:void 0!==a?a:"middle"};this.g=void 0!==c?
c:"";this.Sa=void 0!==d?this.A*d:0;this.cb=void 0!==e?this.A*e:0;this.D=void 0!==f?f:0;this.j=this.A*(void 0!==g?g:1)}else this.g=""};function Kj(a){vh.call(this,a);this.S=ch()}x(Kj,vh);
Kj.prototype.i=function(a,b,c){Lj(this,"precompose",c,a,void 0);var d=this.f?this.f.a():null;if(d){var e=b.extent,f=void 0!==e;if(f){var g=a.pixelRatio,h=a.size[0]*g,l=a.size[1]*g,m=a.viewState.rotation,n=fc(e),p=ec(e),q=dc(e),e=cc(e);hh(a.coordinateToPixelTransform,n);hh(a.coordinateToPixelTransform,p);hh(a.coordinateToPixelTransform,q);hh(a.coordinateToPixelTransform,e);c.save();ij(c,-m,h/2,l/2);c.beginPath();c.moveTo(n[0]*g,n[1]*g);c.lineTo(p[0]*g,p[1]*g);c.lineTo(q[0]*g,q[1]*g);c.lineTo(e[0]*
g,e[1]*g);c.clip();ij(c,m,h/2,l/2)}g=this.s;h=c.globalAlpha;c.globalAlpha=b.opacity;c.drawImage(d,0,0,+d.width,+d.height,Math.round(g[4]),Math.round(g[5]),Math.round(d.width*g[0]),Math.round(d.height*g[3]));c.globalAlpha=h;f&&c.restore()}Mj(this,c,a)};
function Lj(a,b,c,d,e){var f=a.a;if(Ya(f,b)){var g=d.size[0]*d.pixelRatio,h=d.size[1]*d.pixelRatio,l=d.viewState.rotation;ij(c,-l,g/2,h/2);a=void 0!==e?e:Nj(a,d,0);f.b(new qh(b,new zj(c,d.pixelRatio,d.extent,a,d.viewState.rotation),d,c,null));ij(c,l,g/2,h/2)}}function Mj(a,b,c,d){Lj(a,"postcompose",b,c,d)}function Nj(a,b,c){var d=b.viewState,e=b.pixelRatio,f=e/d.resolution;return lh(a.S,e*b.size[0]/2,e*b.size[1]/2,f,-f,-d.rotation,-d.center[0]+c,-d.center[1])};var Oj=["Polygon","LineString","Image","Text"];function Pj(a,b,c,d){this.Ba=a;this.T=b;this.overlaps=d;this.f=null;this.c=0;this.resolution=c;this.Aa=this.ya=null;this.a=[];this.coordinates=[];this.Ra=ch();this.b=[];this.W=[];this.ia=ch();this.na=ch()}x(Pj,ph);
function Qj(a,b,c,d,e,f){var g=a.coordinates.length,h=a.df(),l=[b[c],b[c+1]],m=[NaN,NaN],n=!0,p,q,r;for(p=c+e;p<d;p+=e)m[0]=b[p],m[1]=b[p+1],r=Tb(h,m),r!==q?(n&&(a.coordinates[g++]=l[0],a.coordinates[g++]=l[1]),a.coordinates[g++]=m[0],a.coordinates[g++]=m[1],n=!1):1===r?(a.coordinates[g++]=m[0],a.coordinates[g++]=m[1],n=!1):n=!0,l[0]=m[0],l[1]=m[1],q=r;p===c+e&&(a.coordinates[g++]=l[0],a.coordinates[g++]=l[1]);f&&(a.coordinates[g++]=b[c],a.coordinates[g++]=b[c+1]);return g}
function Rj(a,b){a.ya=[0,b,0];a.a.push(a.ya);a.Aa=[0,b,0];a.b.push(a.Aa)}
function Sj(a,b,c,d,e,f,g,h,l){var m;mb(d,a.Ra)?m=a.W:(m=Vc(a.coordinates,0,a.coordinates.length,2,d,a.W),gh(a.Ra,d));d=!Ga(f);var n=0,p=g.length,q,r,v=a.ia,y=a.na,w,G,z,D,H=0,ba=0;for(a=a.a!=g||a.overlaps?0:200;n<p;){var A=g[n],Fa,Ja,M,ma;switch(A[0]){case 0:q=A[1];d&&f[t(q).toString()]||!q.X()?n=A[2]:void 0===l||oc(l,q.X().H())?++n:n=A[2];break;case 1:H>a&&(b.fill(),H=0);ba>a&&(b.stroke(),ba=0);H||ba||b.beginPath();++n;break;case 2:q=A[1];r=m[q];A=m[q+1];z=m[q+2];q=m[q+3];D=z-r;ma=q-A;D=Math.sqrt(D*
D+ma*ma);b.moveTo(z,q);b.arc(r,A,D,0,2*Math.PI,!0);++n;break;case 3:b.closePath();++n;break;case 4:q=A[1];r=A[2];Fa=A[3];M=A[4]*c;var Ub=A[5]*c,Kb=A[6];Ja=A[7];var Hb=A[8],Xb=A[9];z=A[11];D=A[12];var gc=A[13],Nb=A[14];for(A[10]&&(z+=e);q<r;q+=2){A=m[q]-M;ma=m[q+1]-Ub;gc&&(A=Math.round(A),ma=Math.round(ma));if(1!=D||0!==z){var Od=A+M,sf=ma+Ub;lh(v,Od,sf,D,D,z,-Od,-sf);b.transform.apply(b,v)}Od=b.globalAlpha;1!=Ja&&(b.globalAlpha=Od*Ja);var sf=Nb+Hb>Fa.width?Fa.width-Hb:Nb,Pd=Kb+Xb>Fa.height?Fa.height-
Xb:Kb;b.drawImage(Fa,Hb,Xb,sf,Pd,A,ma,sf*c,Pd*c);1!=Ja&&(b.globalAlpha=Od);if(1!=D||0!==z)mh(gh(y,v)),b.transform.apply(b,y)}++n;break;case 5:q=A[1];r=A[2];M=A[3];Ub=A[4]*c;Kb=A[5]*c;z=A[6];D=A[7]*c;Fa=A[8];for(Ja=A[9];q<r;q+=2){A=m[q]+Ub;ma=m[q+1]+Kb;if(1!=D||0!==z)lh(v,A,ma,D,D,z,-A,-ma),b.transform.apply(b,v);Hb=M.split("\n");Xb=Hb.length;1<Xb?(gc=Math.round(1.5*b.measureText("M").width),ma-=(Xb-1)/2*gc):gc=0;for(Nb=0;Nb<Xb;Nb++)Od=Hb[Nb],Ja&&b.strokeText(Od,A,ma),Fa&&b.fillText(Od,A,ma),ma+=gc;
if(1!=D||0!==z)mh(gh(y,v)),b.transform.apply(b,y)}++n;break;case 6:if(void 0!==h&&(q=A[1],q=h(q)))return q;++n;break;case 7:a?H++:b.fill();++n;break;case 8:q=A[1];r=A[2];A=m[q];ma=m[q+1];z=A+.5|0;D=ma+.5|0;if(z!==w||D!==G)b.moveTo(A,ma),w=z,G=D;for(q+=2;q<r;q+=2)if(A=m[q],ma=m[q+1],z=A+.5|0,D=ma+.5|0,q==r-2||z!==w||D!==G)b.lineTo(A,ma),w=z,G=D;++n;break;case 9:H&&(b.fill(),H=0);b.fillStyle=A[1];++n;break;case 10:w=void 0!==A[7]?A[7]:!0;G=A[2];ba&&(b.stroke(),ba=0);b.strokeStyle=A[1];b.lineWidth=w?
G*c:G;b.lineCap=A[3];b.lineJoin=A[4];b.miterLimit=A[5];ag&&b.setLineDash(A[6]);G=w=NaN;++n;break;case 11:b.font=A[1];b.textAlign=A[2];b.textBaseline=A[3];++n;break;case 12:a?ba++:b.stroke();++n;break;default:++n}}H&&b.fill();ba&&b.stroke()}Pj.prototype.Pa=function(a,b,c,d,e){Sj(this,a,b,c,d,e,this.a,void 0,void 0)};
function Tj(a){var b=a.b;b.reverse();var c,d=b.length,e,f,g=-1;for(c=0;c<d;++c)if(e=b[c],f=e[0],6==f)g=c;else if(0==f){e[2]=c;e=a.b;for(f=c;g<f;){var h=e[g];e[g]=e[f];e[f]=h;++g;--f}g=-1}}function Uj(a,b){a.ya[2]=a.a.length;a.ya=null;a.Aa[2]=a.b.length;a.Aa=null;var c=[6,b];a.a.push(c);a.b.push(c)}Pj.prototype.ke=oa;Pj.prototype.df=function(){return this.T};
function Vj(a,b,c,d){Pj.call(this,a,b,c,d);this.o=this.P=null;this.S=this.C=this.D=this.A=this.U=this.v=this.s=this.j=this.l=this.i=this.g=void 0}x(Vj,Pj);Vj.prototype.uc=function(a,b){if(this.o){Rj(this,b);var c=a.la(),d=this.coordinates.length,c=Qj(this,c,0,c.length,a.va(),!1);this.a.push([4,d,c,this.o,this.g,this.i,this.l,this.j,this.s,this.v,this.U,this.A,this.D,this.C,this.S]);this.b.push([4,d,c,this.P,this.g,this.i,this.l,this.j,this.s,this.v,this.U,this.A,this.D,this.C,this.S]);Uj(this,b)}};
Vj.prototype.tc=function(a,b){if(this.o){Rj(this,b);var c=a.la(),d=this.coordinates.length,c=Qj(this,c,0,c.length,a.va(),!1);this.a.push([4,d,c,this.o,this.g,this.i,this.l,this.j,this.s,this.v,this.U,this.A,this.D,this.C,this.S]);this.b.push([4,d,c,this.P,this.g,this.i,this.l,this.j,this.s,this.v,this.U,this.A,this.D,this.C,this.S]);Uj(this,b)}};Vj.prototype.ke=function(){Tj(this);this.i=this.g=void 0;this.o=this.P=null;this.S=this.C=this.A=this.U=this.v=this.s=this.j=this.D=this.l=void 0};
Vj.prototype.Ub=function(a){var b=a.Zb(),c=a.Gb(),d=a.pe(1),e=a.jc(1),f=a.Ia();this.g=b[0];this.i=b[1];this.P=d;this.o=e;this.l=c[1];this.j=a.v;this.s=f[0];this.v=f[1];this.U=a.U;this.A=a.j;this.D=a.i;this.C=a.D;this.S=c[0]};function Wj(a,b,c,d){Pj.call(this,a,b,c,d);this.g={fd:void 0,ad:void 0,bd:null,cd:void 0,dd:void 0,ed:void 0,nf:0,strokeStyle:void 0,lineCap:void 0,lineDash:null,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0}}x(Wj,Pj);
function Xj(a,b,c,d,e){var f=a.coordinates.length;b=Qj(a,b,c,d,e,!1);f=[8,f,b];a.a.push(f);a.b.push(f);return d}k=Wj.prototype;k.df=function(){this.f||(this.f=Ob(this.T),0<this.c&&Mb(this.f,this.resolution*(this.c+1)/2,this.f));return this.f};
function Yj(a){var b=a.g,c=b.strokeStyle,d=b.lineCap,e=b.lineDash,f=b.lineJoin,g=b.lineWidth,h=b.miterLimit;b.fd==c&&b.ad==d&&mb(b.bd,e)&&b.cd==f&&b.dd==g&&b.ed==h||(b.nf!=a.coordinates.length&&(a.a.push([12]),b.nf=a.coordinates.length),a.a.push([10,c,g,d,f,h,e],[1]),b.fd=c,b.ad=d,b.bd=e,b.cd=f,b.dd=g,b.ed=h)}
k.hd=function(a,b){var c=this.g,d=c.lineWidth;void 0!==c.strokeStyle&&void 0!==d&&(Yj(this),Rj(this,b),this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash],[1]),c=a.la(),Xj(this,c,0,c.length,a.va()),this.b.push([12]),Uj(this,b))};
k.$e=function(a,b){var c=this.g,d=c.lineWidth;if(void 0!==c.strokeStyle&&void 0!==d){Yj(this);Rj(this,b);this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash],[1]);var c=a.Eb(),d=a.la(),e=a.va(),f=0,g,h;g=0;for(h=c.length;g<h;++g)f=Xj(this,d,f,c[g],e);this.b.push([12]);Uj(this,b)}};k.ke=function(){this.g.nf!=this.coordinates.length&&this.a.push([12]);Tj(this);this.g=null};
k.Tb=function(a,b){var c=b.b;this.g.strokeStyle=le(c?c:hj);c=b.f;this.g.lineCap=void 0!==c?c:"round";c=b.g;this.g.lineDash=c?c:gj;c=b.c;this.g.lineJoin=void 0!==c?c:"round";c=b.a;this.g.lineWidth=void 0!==c?c:1;c=b.i;this.g.miterLimit=void 0!==c?c:10;this.g.lineWidth>this.c&&(this.c=this.g.lineWidth,this.f=null)};
function Zj(a,b,c,d){Pj.call(this,a,b,c,d);this.g={ug:void 0,fd:void 0,ad:void 0,bd:null,cd:void 0,dd:void 0,ed:void 0,fillStyle:void 0,strokeStyle:void 0,lineCap:void 0,lineDash:null,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0}}x(Zj,Pj);
function ak(a,b,c,d,e){var f=a.g,g=[1];a.a.push(g);a.b.push(g);var h,g=0;for(h=d.length;g<h;++g){var l=d[g],m=a.coordinates.length;c=Qj(a,b,c,l,e,!0);c=[8,m,c];m=[3];a.a.push(c,m);a.b.push(c,m);c=l}b=[7];a.b.push(b);void 0!==f.fillStyle&&a.a.push(b);void 0!==f.strokeStyle&&(f=[12],a.a.push(f),a.b.push(f));return c}k=Zj.prototype;
k.Rd=function(a,b){var c=this.g,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d){bk(this);Rj(this,b);this.b.push([9,le(fj)]);void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]);var e=a.la(),d=this.coordinates.length;Qj(this,e,0,e.length,a.va(),!1);e=[1];d=[2,d];this.a.push(e,d);this.b.push(e,d);d=[7];this.b.push(d);void 0!==c.fillStyle&&this.a.push(d);void 0!==c.strokeStyle&&(c=[12],this.a.push(c),this.b.push(c));Uj(this,b)}};
k.bf=function(a,b){var c=this.g,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d)bk(this),Rj(this,b),this.b.push([9,le(fj)]),void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]),c=a.Eb(),d=a.Nb(),ak(this,d,0,c,a.va()),Uj(this,b)};
k.af=function(a,b){var c=this.g,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d){bk(this);Rj(this,b);this.b.push([9,le(fj)]);void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]);var c=a.i,d=Ij(a),e=a.va(),f=0,g,h;g=0;for(h=c.length;g<h;++g)f=ak(this,d,f,c[g],e);Uj(this,b)}};k.ke=function(){Tj(this);this.g=null;var a=this.Ba;if(0!==a){var b=this.coordinates,c,d;c=0;for(d=b.length;c<d;++c)b[c]=a*Math.round(b[c]/a)}};
k.df=function(){this.f||(this.f=Ob(this.T),0<this.c&&Mb(this.f,this.resolution*(this.c+1)/2,this.f));return this.f};
k.Tb=function(a,b){var c=this.g;if(a){var d=a.b;c.fillStyle=ne(d?d:fj)}else c.fillStyle=void 0;b?(d=b.b,c.strokeStyle=le(d?d:hj),d=b.f,c.lineCap=void 0!==d?d:"round",d=b.g,c.lineDash=d?d.slice():gj,d=b.c,c.lineJoin=void 0!==d?d:"round",d=b.a,c.lineWidth=void 0!==d?d:1,d=b.i,c.miterLimit=void 0!==d?d:10,c.lineWidth>this.c&&(this.c=c.lineWidth,this.f=null)):(c.strokeStyle=void 0,c.lineCap=void 0,c.lineDash=null,c.lineJoin=void 0,c.lineWidth=void 0,c.miterLimit=void 0)};
function bk(a){var b=a.g,c=b.fillStyle,d=b.strokeStyle,e=b.lineCap,f=b.lineDash,g=b.lineJoin,h=b.lineWidth,l=b.miterLimit;void 0!==c&&b.ug!=c&&(a.a.push([9,c]),b.ug=b.fillStyle);void 0===d||b.fd==d&&b.ad==e&&b.bd==f&&b.cd==g&&b.dd==h&&b.ed==l||(a.a.push([10,d,h,e,g,l,f]),b.fd=d,b.ad=e,b.bd=f,b.cd=g,b.dd=h,b.ed=l)}function ck(a,b,c,d){Pj.call(this,a,b,c,d);this.C=this.D=this.A=null;this.o="";this.U=this.v=this.s=this.j=0;this.l=this.i=this.g=null}x(ck,Pj);
function dk(a,b,c,d,e){if(""!==a.o&&a.l&&(a.g||a.i)){if(a.g){var f=a.g,g=a.A;if(!g||g.fillStyle!=f.fillStyle){var h=[9,f.fillStyle];a.a.push(h);a.b.push(h);g?g.fillStyle=f.fillStyle:a.A={fillStyle:f.fillStyle}}}a.i&&(f=a.i,g=a.D,g&&g.lineCap==f.lineCap&&g.lineDash==f.lineDash&&g.lineJoin==f.lineJoin&&g.lineWidth==f.lineWidth&&g.miterLimit==f.miterLimit&&g.strokeStyle==f.strokeStyle||(h=[10,f.strokeStyle,f.lineWidth,f.lineCap,f.lineJoin,f.miterLimit,f.lineDash,!1],a.a.push(h),a.b.push(h),g?(g.lineCap=
f.lineCap,g.lineDash=f.lineDash,g.lineJoin=f.lineJoin,g.lineWidth=f.lineWidth,g.miterLimit=f.miterLimit,g.strokeStyle=f.strokeStyle):a.D={lineCap:f.lineCap,lineDash:f.lineDash,lineJoin:f.lineJoin,lineWidth:f.lineWidth,miterLimit:f.miterLimit,strokeStyle:f.strokeStyle}));f=a.l;g=a.C;g&&g.font==f.font&&g.textAlign==f.textAlign&&g.textBaseline==f.textBaseline||(h=[11,f.font,f.textAlign,f.textBaseline],a.a.push(h),a.b.push(h),g?(g.font=f.font,g.textAlign=f.textAlign,g.textBaseline=f.textBaseline):a.C=
{font:f.font,textAlign:f.textAlign,textBaseline:f.textBaseline});Rj(a,e);f=a.coordinates.length;b=Qj(a,b,0,c,d,!1);b=[5,f,b,a.o,a.j,a.s,a.v,a.U,!!a.g,!!a.i];a.a.push(b);a.b.push(b);Uj(a,e)}}
ck.prototype.Wb=function(a){if(a){var b=a.b;b?(b=b.b,b=ne(b?b:fj),this.g?this.g.fillStyle=b:this.g={fillStyle:b}):this.g=null;var c=a.l;if(c){var b=c.b,d=c.f,e=c.g,f=c.c,g=c.a,c=c.i,d=void 0!==d?d:"round",e=e?e.slice():gj,f=void 0!==f?f:"round",g=void 0!==g?g:1,c=void 0!==c?c:10,b=le(b?b:hj);if(this.i){var h=this.i;h.lineCap=d;h.lineDash=e;h.lineJoin=f;h.lineWidth=g;h.miterLimit=c;h.strokeStyle=b}else this.i={lineCap:d,lineDash:e,lineJoin:f,lineWidth:g,miterLimit:c,strokeStyle:b}}else this.i=null;
var l=a.g,b=a.f,d=a.c,e=a.i,g=a.a,c=a.Ha(),f=a.o,h=a.j;a=void 0!==l?l:"10px sans-serif";f=void 0!==f?f:"center";h=void 0!==h?h:"middle";this.l?(l=this.l,l.font=a,l.textAlign=f,l.textBaseline=h):this.l={font:a,textAlign:f,textBaseline:h};this.o=void 0!==c?c:"";this.j=void 0!==b?b:0;this.s=void 0!==d?d:0;this.v=void 0!==e?e:0;this.U=void 0!==g?g:1}else this.o=""};function ek(a,b,c,d,e){this.j=a;this.g=b;this.l=d;this.o=c;this.f=e;this.a={};this.c=Ge(1,1);this.i=ch()}
function fk(a){for(var b in a.a){var c=a.a[b],d;for(d in c)c[d].ke()}}ek.prototype.sa=function(a,b,c,d,e){var f=lh(this.i,.5,.5,1/b,-1/b,-c,-a[0],-a[1]),g=this.c;g.clearRect(0,0,1,1);var h;void 0!==this.f&&(h=Jb(),Lb(h,a),Mb(h,b*this.f,h));return gk(this,g,f,c,d,function(a){if(0<g.getImageData(0,0,1,1).data[3]){if(a=e(a))return a;g.clearRect(0,0,1,1)}},h)};
ek.prototype.b=function(a,b){var c=void 0!==a?a.toString():"0",d=this.a[c];void 0===d&&(d={},this.a[c]=d);c=d[b];void 0===c&&(c=new hk[b](this.j,this.g,this.o,this.l),d[b]=c);return c};ek.prototype.Ya=function(){return Ga(this.a)};
ek.prototype.Pa=function(a,b,c,d,e,f){var g=Object.keys(this.a).map(Number);g.sort(fb);var h=this.g,l=h[0],m=h[1],n=h[2],h=h[3],l=[l,m,l,h,n,h,n,m];Vc(l,0,8,2,c,l);a.save();a.beginPath();a.moveTo(l[0],l[1]);a.lineTo(l[2],l[3]);a.lineTo(l[4],l[5]);a.lineTo(l[6],l[7]);a.closePath();a.clip();f=f?f:Oj;for(var p,q,l=0,m=g.length;l<m;++l)for(p=this.a[g[l].toString()],n=0,h=f.length;n<h;++n)q=p[f[n]],void 0!==q&&q.Pa(a,b,c,d,e);a.restore()};
function gk(a,b,c,d,e,f,g){var h=Object.keys(a.a).map(Number);h.sort(function(a,b){return b-a});var l,m,n,p,q;l=0;for(m=h.length;l<m;++l)for(p=a.a[h[l].toString()],n=Oj.length-1;0<=n;--n)if(q=p[Oj[n]],void 0!==q&&(q=Sj(q,b,1,c,d,e,q.b,f,g)))return q}var hk={Image:Vj,LineString:Wj,Polygon:Zj,Text:ck};function ik(a,b,c,d){this.g=a;this.b=b;this.c=c;this.f=d}k=ik.prototype;k.get=function(a){return this.f[a]};k.Eb=function(){return this.c};k.H=function(){this.a||(this.a="Point"===this.g?Wb(this.b):Yb(this.b,0,this.b.length,2));return this.a};k.Nb=function(){return this.b};k.la=ik.prototype.Nb;k.X=function(){return this};k.Nm=function(){return this.f};k.od=ik.prototype.X;k.va=function(){return 2};k.ec=oa;k.Y=function(){return this.g};function jk(a,b){return t(a)-t(b)}function kk(a,b){var c=.5*a/b;return c*c}function lk(a,b,c,d,e,f){var g=!1,h,l;if(h=c.a)l=h.td(),2==l||3==l?h.Xf(e,f):(0==l&&h.load(),h.pf(e,f),g=!0);if(e=(0,c.g)(b))d=e.od(d),(0,mk[d.Y()])(a,d,c,b);return g}
var mk={Point:function(a,b,c,d){var e=c.a;if(e){if(2!=e.td())return;var f=a.b(c.b,"Image");f.Ub(e);f.uc(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),dk(a,b.la(),2,2,d)},LineString:function(a,b,c,d){var e=c.f;if(e){var f=a.b(c.b,"LineString");f.Tb(null,e);f.hd(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),dk(a,Gj(b),2,2,d)},Polygon:function(a,b,c,d){var e=c.c,f=c.f;if(e||f){var g=a.b(c.b,"Polygon");g.Tb(e,f);g.bf(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),dk(a,Ad(b),2,2,d)},MultiPoint:function(a,b,c,d){var e=
c.a;if(e){if(2!=e.td())return;var f=a.b(c.b,"Image");f.Ub(e);f.tc(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),c=b.la(),dk(a,c,c.length,b.va(),d)},MultiLineString:function(a,b,c,d){var e=c.f;if(e){var f=a.b(c.b,"LineString");f.Tb(null,e);f.$e(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),b=Hj(b),dk(a,b,b.length,2,d)},MultiPolygon:function(a,b,c,d){var e=c.c,f=c.f;if(f||e){var g=a.b(c.b,"Polygon");g.Tb(e,f);g.af(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),b=Jj(b),dk(a,b,b.length,2,d)},GeometryCollection:function(a,
b,c,d){b=b.c;var e,f;e=0;for(f=b.length;e<f;++e)(0,mk[b[e].Y()])(a,b[e],c,d)},Circle:function(a,b,c,d){var e=c.c,f=c.f;if(e||f){var g=a.b(c.b,"Polygon");g.Tb(e,f);g.Rd(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),dk(a,b.rd(),2,2,d)}};function nk(a,b,c,d,e,f){this.c=void 0!==f?f:null;th.call(this,a,b,c,void 0!==f?0:2,d);this.g=e}x(nk,th);nk.prototype.i=function(a){this.state=a?3:2;uh(this)};nk.prototype.load=function(){0==this.state&&(this.state=1,uh(this),this.c(this.i.bind(this)))};nk.prototype.a=function(){return this.g};var ok,pk=pa.navigator,qk=pa.chrome,rk=-1<pk.userAgent.indexOf("OPR"),sk=-1<pk.userAgent.indexOf("Edge");ok=!(!pk.userAgent.match("CriOS")&&null!==qk&&void 0!==qk&&"Google Inc."===pk.vendor&&0==rk&&0==sk);function tk(a,b,c,d){var e=Sc(c,b,a);c=b.getPointResolution(d,c);b=b.ac();void 0!==b&&(c*=b);b=a.ac();void 0!==b&&(c/=b);a=a.getPointResolution(c,e)/c;isFinite(a)&&0<a&&(c/=a);return c}function uk(a,b,c,d){a=c-a;b=d-b;var e=Math.sqrt(a*a+b*b);return[Math.round(c+a/e),Math.round(d+b/e)]}
function vk(a,b,c,d,e,f,g,h,l,m,n){var p=Ge(Math.round(c*a),Math.round(c*b));if(0===l.length)return p.canvas;p.scale(c,c);var q=Jb();l.forEach(function(a){ac(q,a.extent)});var r=Ge(Math.round(c*jc(q)/d),Math.round(c*kc(q)/d)),v=c/d;l.forEach(function(a){r.drawImage(a.image,m,m,a.image.width-2*m,a.image.height-2*m,(a.extent[0]-q[0])*v,-(a.extent[3]-q[3])*v,jc(a.extent)*v,kc(a.extent)*v)});var y=fc(g);h.f.forEach(function(a){var b=a.source,e=a.target,g=b[1][0],h=b[1][1],l=b[2][0],m=b[2][1];a=(e[0][0]-
y[0])/f;var n=-(e[0][1]-y[1])/f,v=(e[1][0]-y[0])/f,M=-(e[1][1]-y[1])/f,ma=(e[2][0]-y[0])/f,Ub=-(e[2][1]-y[1])/f,e=b[0][0],b=b[0][1],g=g-e,h=h-b,l=l-e,m=m-b;a:{g=[[g,h,0,0,v-a],[l,m,0,0,ma-a],[0,0,g,h,M-n],[0,0,l,m,Ub-n]];h=g.length;for(l=0;l<h;l++){for(var m=l,Kb=Math.abs(g[l][l]),Hb=l+1;Hb<h;Hb++){var Xb=Math.abs(g[Hb][l]);Xb>Kb&&(Kb=Xb,m=Hb)}if(0===Kb){g=null;break a}Kb=g[m];g[m]=g[l];g[l]=Kb;for(m=l+1;m<h;m++)for(Kb=-g[m][l]/g[l][l],Hb=l;Hb<h+1;Hb++)g[m][Hb]=l==Hb?0:g[m][Hb]+Kb*g[l][Hb]}l=Array(h);
for(m=h-1;0<=m;m--)for(l[m]=g[m][h]/g[m][m],Kb=m-1;0<=Kb;Kb--)g[Kb][h]-=g[Kb][m]*l[m];g=l}g&&(p.save(),p.beginPath(),ok?(l=(a+v+ma)/3,m=(n+M+Ub)/3,h=uk(l,m,a,n),v=uk(l,m,v,M),ma=uk(l,m,ma,Ub),p.moveTo(h[0],h[1]),p.lineTo(v[0],v[1]),p.lineTo(ma[0],ma[1])):(p.moveTo(a,n),p.lineTo(v,M),p.lineTo(ma,Ub)),p.closePath(),p.clip(),p.transform(g[0],g[2],g[1],g[3],a,n),p.translate(q[0]-e,q[3]-b),p.scale(d/c,-d/c),p.drawImage(r.canvas,0,0),p.restore())});n&&(p.save(),p.strokeStyle="black",p.lineWidth=1,h.f.forEach(function(a){var b=
a.target;a=(b[0][0]-y[0])/f;var c=-(b[0][1]-y[1])/f,d=(b[1][0]-y[0])/f,e=-(b[1][1]-y[1])/f,g=(b[2][0]-y[0])/f,b=-(b[2][1]-y[1])/f;p.beginPath();p.moveTo(a,c);p.lineTo(d,e);p.lineTo(g,b);p.closePath();p.stroke()}),p.restore());return p.canvas};function wk(a,b,c,d,e){this.g=a;this.c=b;var f={},g=Qc(this.c,this.g);this.a=function(a){var b=a[0]+"/"+a[1];f[b]||(f[b]=g(a));return f[b]};this.i=d;this.s=e*e;this.f=[];this.o=!1;this.j=this.g.a&&!!d&&!!this.g.H()&&jc(d)==jc(this.g.H());this.b=this.g.H()?jc(this.g.H()):null;this.l=this.c.H()?jc(this.c.H()):null;a=fc(c);b=ec(c);d=dc(c);c=cc(c);e=this.a(a);var h=this.a(b),l=this.a(d),m=this.a(c);xk(this,a,b,d,c,e,h,l,m,10);if(this.o){var n=Infinity;this.f.forEach(function(a){n=Math.min(n,a.source[0][0],
a.source[1][0],a.source[2][0])});this.f.forEach(function(a){if(Math.max(a.source[0][0],a.source[1][0],a.source[2][0])-n>this.b/2){var b=[[a.source[0][0],a.source[0][1]],[a.source[1][0],a.source[1][1]],[a.source[2][0],a.source[2][1]]];b[0][0]-n>this.b/2&&(b[0][0]-=this.b);b[1][0]-n>this.b/2&&(b[1][0]-=this.b);b[2][0]-n>this.b/2&&(b[2][0]-=this.b);Math.max(b[0][0],b[1][0],b[2][0])-Math.min(b[0][0],b[1][0],b[2][0])<this.b/2&&(a.source=b)}},this)}f={}}
function xk(a,b,c,d,e,f,g,h,l,m){var n=Ib([f,g,h,l]),p=a.b?jc(n)/a.b:null,q=a.g.a&&.5<p&&1>p,r=!1;if(0<m){if(a.c.g&&a.l)var v=Ib([b,c,d,e]),r=r|.25<jc(v)/a.l;!q&&a.g.g&&p&&(r|=.25<p)}if(r||!a.i||oc(n,a.i)){if(!(r||isFinite(f[0])&&isFinite(f[1])&&isFinite(g[0])&&isFinite(g[1])&&isFinite(h[0])&&isFinite(h[1])&&isFinite(l[0])&&isFinite(l[1])))if(0<m)r=!0;else return;if(0<m&&(r||(p=a.a([(b[0]+d[0])/2,(b[1]+d[1])/2]),n=q?(xa(f[0],a.b)+xa(h[0],a.b))/2-xa(p[0],a.b):(f[0]+h[0])/2-p[0],p=(f[1]+h[1])/2-p[1],
r=n*n+p*p>a.s),r)){Math.abs(b[0]-d[0])<=Math.abs(b[1]-d[1])?(q=[(c[0]+d[0])/2,(c[1]+d[1])/2],n=a.a(q),p=[(e[0]+b[0])/2,(e[1]+b[1])/2],r=a.a(p),xk(a,b,c,q,p,f,g,n,r,m-1),xk(a,p,q,d,e,r,n,h,l,m-1)):(q=[(b[0]+c[0])/2,(b[1]+c[1])/2],n=a.a(q),p=[(d[0]+e[0])/2,(d[1]+e[1])/2],r=a.a(p),xk(a,b,q,p,e,f,n,r,l,m-1),xk(a,q,c,d,p,n,g,h,r,m-1));return}if(q){if(!a.j)return;a.o=!0}a.f.push({source:[f,h,l],target:[b,d,e]});a.f.push({source:[f,g,h],target:[b,c,d]})}}
function yk(a){var b=Jb();a.f.forEach(function(a){a=a.source;Lb(b,a[0]);Lb(b,a[1]);Lb(b,a[2])});return b};function zk(a,b,c,d,e,f){this.v=b;this.s=a.H();var g=b.H(),h=g?nc(c,g):c,g=tk(a,b,lc(h),d);this.o=new wk(a,b,h,this.s,.5*g);this.c=d;this.g=c;a=yk(this.o);this.j=(this.pb=f(a,g,e))?this.pb.f:1;this.Ad=this.i=null;e=2;f=[];this.pb&&(e=0,f=this.pb.l);th.call(this,c,d,this.j,e,f)}x(zk,th);zk.prototype.ka=function(){1==this.state&&(Ka(this.Ad),this.Ad=null);th.prototype.ka.call(this)};zk.prototype.a=function(){return this.i};
zk.prototype.zd=function(){var a=this.pb.V();2==a&&(this.i=vk(jc(this.g)/this.c,kc(this.g)/this.c,this.j,this.pb.$(),0,this.c,this.g,this.o,[{extent:this.pb.H(),image:this.pb.a()}],0));this.state=a;uh(this)};zk.prototype.load=function(){if(0==this.state){this.state=1;uh(this);var a=this.pb.V();2==a||3==a?this.zd():(this.Ad=B(this.pb,"change",function(){var a=this.pb.V();if(2==a||3==a)Ka(this.Ad),this.Ad=null,this.zd()},this),this.pb.load())}};function Ak(a){af.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,state:a.state});this.D=void 0!==a.resolutions?a.resolutions:null;this.a=null;this.na=0}x(Ak,af);function Bk(a,b){if(a.D){var c=hb(a.D,b,0);b=a.D[c]}return b}
Ak.prototype.A=function(a,b,c,d){var e=this.f;if(e&&d&&!Pc(e,d)){if(this.a){if(this.na==this.g&&Pc(this.a.v,d)&&this.a.$()==b&&this.a.f==c&&$b(this.a.H(),a))return this.a;Ta(this.a);this.a=null}this.a=new zk(e,d,a,b,c,function(a,b,c){return this.Mc(a,b,c,e)}.bind(this));this.na=this.g;return this.a}e&&(d=e);return this.Mc(a,b,c,d)};Ak.prototype.o=function(a){a=a.target;switch(a.V()){case 1:this.b(new Ck(Dk,a));break;case 2:this.b(new Ck(Ek,a));break;case 3:this.b(new Ck(Fk,a))}};
function Gk(a,b){a.a().src=b}function Ck(a,b){Ua.call(this,a);this.image=b}x(Ck,Ua);var Dk="imageloadstart",Ek="imageloadend",Fk="imageloaderror";function Hk(a){Ak.call(this,{attributions:a.attributions,logo:a.logo,projection:a.projection,resolutions:a.resolutions,state:a.state});this.ia=a.canvasFunction;this.T=null;this.W=0;this.oa=void 0!==a.ratio?a.ratio:1.5}x(Hk,Ak);Hk.prototype.Mc=function(a,b,c,d){b=Bk(this,b);var e=this.T;if(e&&this.W==this.g&&e.$()==b&&e.f==c&&Sb(e.H(),a))return e;a=a.slice();pc(a,this.oa);(d=this.ia(a,b,c,[jc(a)/b*c,kc(a)/b*c],d))&&(e=new nk(a,b,c,this.l,d));this.T=e;this.W=this.g;return e};function Ik(a){bb.call(this);this.i=void 0;this.a="geometry";this.c=null;this.l=void 0;this.f=null;B(this,db(this.a),this.be,this);void 0!==a&&(a instanceof Uc||!a?this.Ua(a):this.G(a))}x(Ik,bb);k=Ik.prototype;k.clone=function(){var a=new Ik(this.O());a.Ec(this.a);var b=this.X();b&&a.Ua(b.clone());(b=this.c)&&a.sf(b);return a};k.X=function(){return this.get(this.a)};k.Xa=function(){return this.i};k.$j=function(){return this.a};k.Jl=function(){return this.c};k.ec=function(){return this.l};k.Kl=function(){this.u()};
k.be=function(){this.f&&(Ka(this.f),this.f=null);var a=this.X();a&&(this.f=B(a,"change",this.Kl,this));this.u()};k.Ua=function(a){this.set(this.a,a)};k.sf=function(a){this.l=(this.c=a)?Jk(a):void 0;this.u()};k.mc=function(a){this.i=a;this.u()};k.Ec=function(a){Qa(this,db(this.a),this.be,this);this.a=a;B(this,db(this.a),this.be,this);this.be()};function Jk(a){if("function"!==typeof a){var b;b=Array.isArray(a)?a:[a];a=function(){return b}}return a};function Kk(a,b,c,d,e){We.call(this,a,b);this.g=Ge();this.l=d;this.c=null;this.f={gd:!1,Tf:null,bi:-1,Uf:-1,yd:null,ui:[]};this.v=e;this.j=c}x(Kk,We);k=Kk.prototype;k.$a=function(){return-1==this.f.Uf?null:this.g.canvas};k.Ul=function(){return this.l};k.jb=function(){return this.j};k.load=function(){0==this.state&&(this.state=1,Xe(this),this.v(this,this.j),this.s(null,NaN,null))};k.gi=function(a){this.c=a;this.state=2;Xe(this)};k.vf=function(a){this.o=a};k.ki=function(a){this.s=a};var Lk=document.implementation.createDocument("","",null);function Mk(a,b){return Lk.createElementNS(a,b)}function Nk(a,b){return Ok(a,b,[]).join("")}function Ok(a,b,c){if(a.nodeType==Node.CDATA_SECTION_NODE||a.nodeType==Node.TEXT_NODE)b?c.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(a.nodeValue);else for(a=a.firstChild;a;a=a.nextSibling)Ok(a,b,c);return c}function Pk(a){return a instanceof Document}function Qk(a){return a instanceof Node}
function Rk(a){return(new DOMParser).parseFromString(a,"application/xml")}function Sk(a,b){return function(c,d){var e=a.call(b,c,d);void 0!==e&&jb(d[d.length-1],e)}}function Tk(a,b){return function(c,d){var e=a.call(void 0!==b?b:this,c,d);void 0!==e&&d[d.length-1].push(e)}}function Uk(a,b){return function(c,d){var e=a.call(void 0!==b?b:this,c,d);void 0!==e&&(d[d.length-1]=e)}}
function Vk(a){return function(b,c){var d=a.call(this,b,c);if(void 0!==d){var e=c[c.length-1],f=b.localName,g;f in e?g=e[f]:g=e[f]=[];g.push(d)}}}function K(a,b){return function(c,d){var e=a.call(this,c,d);void 0!==e&&(d[d.length-1][void 0!==b?b:c.localName]=e)}}function L(a,b){return function(c,d,e){a.call(void 0!==b?b:this,c,d,e);e[e.length-1].node.appendChild(c)}}
function Wk(a){var b,c;return function(d,e,f){if(!b){b={};var g={};g[d.localName]=a;b[d.namespaceURI]=g;c=Xk(d.localName)}Yk(b,c,e,f)}}function Xk(a,b){return function(c,d,e){c=d[d.length-1].node;d=a;void 0===d&&(d=e);e=b;void 0===b&&(e=c.namespaceURI);return Mk(e,d)}}var Zk=Xk();function $k(a,b){for(var c=b.length,d=Array(c),e=0;e<c;++e)d[e]=a[b[e]];return d}function N(a,b,c){c=void 0!==c?c:{};var d,e;d=0;for(e=a.length;d<e;++d)c[a[d]]=b;return c}
function al(a,b,c,d){for(b=b.firstElementChild;b;b=b.nextElementSibling){var e=a[b.namespaceURI];void 0!==e&&(e=e[b.localName])&&e.call(d,b,c)}}function O(a,b,c,d,e){d.push(a);al(b,c,d,e);return d.pop()}function Yk(a,b,c,d,e,f){for(var g=(void 0!==e?e:c).length,h,l,m=0;m<g;++m)h=c[m],void 0!==h&&(l=b.call(f,h,d,void 0!==e?e[m]:void 0),void 0!==l&&a[l.namespaceURI][l.localName].call(f,l,h,d))}function bl(a,b,c,d,e,f,g){e.push(a);Yk(b,c,d,e,f,g);e.pop()};function cl(a,b,c,d){return function(e,f,g){var h=new XMLHttpRequest;h.open("GET","function"===typeof a?a(e,f,g):a,!0);"arraybuffer"==b.Y()&&(h.responseType="arraybuffer");h.onload=function(){if(200<=h.status&&300>h.status){var a=b.Y(),e;"json"==a||"text"==a?e=h.responseText:"xml"==a?(e=h.responseXML)||(e=Rk(h.responseText)):"arraybuffer"==a&&(e=h.response);e&&c.call(this,b.Fa(e,{featureProjection:g}),b.Oa(e))}else d.call(this)}.bind(this);h.send()}}
function dl(a,b){return cl(a,b,function(a,b){this.vf(b);this.gi(a)},function(){this.state=3;Xe(this)})}function el(a,b){return cl(a,b,function(a){this.Jc(a)},oa)};function fl(){return[[-Infinity,-Infinity,Infinity,Infinity]]};var gl,hl,il,jl;
(function(){var a={},b={ja:a};(function(c){if("object"===typeof a&&"undefined"!==typeof b)b.ja=c();else{var d;"undefined"!==typeof window?d=window:"undefined"!==typeof global?d=global:"undefined"!==typeof self?d=self:d=this;d.Tp=c()}})(function(){return function d(a,b,g){function h(m,p){if(!b[m]){if(!a[m]){var q="function"==typeof require&&require;if(!p&&q)return q(m,!0);if(l)return l(m,!0);q=Error("Cannot find module '"+m+"'");throw q.code="MODULE_NOT_FOUND",q;}q=b[m]={ja:{}};a[m][0].call(q.ja,function(b){var d=
a[m][1][b];return h(d?d:b)},q,q.ja,d,a,b,g)}return b[m].ja}for(var l="function"==typeof require&&require,m=0;m<g.length;m++)h(g[m]);return h}({1:[function(a,b){function f(a,b,d,e,q){d=d||0;e=e||a.length-1;for(q=q||h;e>d;){if(600<e-d){var r=e-d+1,v=b-d+1,y=Math.log(r),w=.5*Math.exp(2*y/3),y=.5*Math.sqrt(y*w*(r-w)/r)*(0>v-r/2?-1:1);f(a,b,Math.max(d,Math.floor(b-v*w/r+y)),Math.min(e,Math.floor(b+(r-v)*w/r+y)),q)}r=a[b];v=d;w=e;g(a,d,b);for(0<q(a[e],r)&&g(a,d,e);v<w;){g(a,v,w);v++;for(w--;0>q(a[v],r);)v++;
for(;0<q(a[w],r);)w--}0===q(a[d],r)?g(a,d,w):(w++,g(a,w,e));w<=b&&(d=w+1);b<=w&&(e=w-1)}}function g(a,b,d){var e=a[b];a[b]=a[d];a[d]=e}function h(a,b){return a<b?-1:a>b?1:0}b.ja=f},{}],2:[function(a,b){function f(a,b){if(!(this instanceof f))return new f(a,b);this.Te=Math.max(4,a||9);this.hg=Math.max(2,Math.ceil(.4*this.Te));b&&this.mj(b);this.clear()}function g(a,b){h(a,0,a.children.length,b,a)}function h(a,b,d,e,f){f||(f=y(null));f.ca=Infinity;f.fa=Infinity;f.ea=-Infinity;f.ga=-Infinity;for(var g;b<
d;b++)g=a.children[b],l(f,a.Ta?e(g):g);return f}function l(a,b){a.ca=Math.min(a.ca,b.ca);a.fa=Math.min(a.fa,b.fa);a.ea=Math.max(a.ea,b.ea);a.ga=Math.max(a.ga,b.ga)}function m(a,b){return a.ca-b.ca}function n(a,b){return a.fa-b.fa}function p(a){return(a.ea-a.ca)*(a.ga-a.fa)}function q(a){return a.ea-a.ca+(a.ga-a.fa)}function r(a,b){return a.ca<=b.ca&&a.fa<=b.fa&&b.ea<=a.ea&&b.ga<=a.ga}function v(a,b){return b.ca<=a.ea&&b.fa<=a.ga&&b.ea>=a.ca&&b.ga>=a.fa}function y(a){return{children:a,height:1,Ta:!0,
ca:Infinity,fa:Infinity,ea:-Infinity,ga:-Infinity}}function w(a,b,d,e,f){for(var g=[b,d],h;g.length;)d=g.pop(),b=g.pop(),d-b<=e||(h=b+Math.ceil((d-b)/e/2)*e,G(a,h,b,d,f),g.push(b,h,h,d))}b.ja=f;var G=a("quickselect");f.prototype={all:function(){return this.cg(this.data,[])},search:function(a){var b=this.data,d=[],e=this.mb;if(!v(a,b))return d;for(var f=[],g,h,l,m;b;){g=0;for(h=b.children.length;g<h;g++)l=b.children[g],m=b.Ta?e(l):l,v(a,m)&&(b.Ta?d.push(l):r(a,m)?this.cg(l,d):f.push(l));b=f.pop()}return d},
load:function(a){if(!a||!a.length)return this;if(a.length<this.hg){for(var b=0,d=a.length;b<d;b++)this.Ca(a[b]);return this}a=this.eg(a.slice(),0,a.length-1,0);this.data.children.length?this.data.height===a.height?this.jg(this.data,a):(this.data.height<a.height&&(b=this.data,this.data=a,a=b),this.gg(a,this.data.height-a.height-1,!0)):this.data=a;return this},Ca:function(a){a&&this.gg(a,this.data.height-1);return this},clear:function(){this.data=y([]);return this},remove:function(a,b){if(!a)return this;
for(var d=this.data,e=this.mb(a),f=[],g=[],h,l,m,n;d||f.length;){d||(d=f.pop(),l=f[f.length-1],h=g.pop(),n=!0);if(d.Ta){a:{m=a;var p=d.children,q=b;if(q){for(var v=0;v<p.length;v++)if(q(m,p[v])){m=v;break a}m=-1}else m=p.indexOf(m)}if(-1!==m){d.children.splice(m,1);f.push(d);this.kj(f);break}}n||d.Ta||!r(d,e)?l?(h++,d=l.children[h],n=!1):d=null:(f.push(d),g.push(h),h=0,l=d,d=d.children[0])}return this},mb:function(a){return a},Ve:m,We:n,toJSON:function(){return this.data},cg:function(a,b){for(var d=
[];a;)a.Ta?b.push.apply(b,a.children):d.push.apply(d,a.children),a=d.pop();return b},eg:function(a,b,d,e){var f=d-b+1,h=this.Te,l;if(f<=h)return l=y(a.slice(b,d+1)),g(l,this.mb),l;e||(e=Math.ceil(Math.log(f)/Math.log(h)),h=Math.ceil(f/Math.pow(h,e-1)));l=y([]);l.Ta=!1;l.height=e;var f=Math.ceil(f/h),h=f*Math.ceil(Math.sqrt(h)),m,n,p;for(w(a,b,d,h,this.Ve);b<=d;b+=h)for(n=Math.min(b+h-1,d),w(a,b,n,f,this.We),m=b;m<=n;m+=f)p=Math.min(m+f-1,n),l.children.push(this.eg(a,m,p,e-1));g(l,this.mb);return l},
jj:function(a,b,d,e){for(var f,g,h,l,m,n,q,r;;){e.push(b);if(b.Ta||e.length-1===d)break;q=r=Infinity;f=0;for(g=b.children.length;f<g;f++)h=b.children[f],m=p(h),n=(Math.max(h.ea,a.ea)-Math.min(h.ca,a.ca))*(Math.max(h.ga,a.ga)-Math.min(h.fa,a.fa))-m,n<r?(r=n,q=m<q?m:q,l=h):n===r&&m<q&&(q=m,l=h);b=l||b.children[0]}return b},gg:function(a,b,d){var e=this.mb;d=d?a:e(a);var e=[],f=this.jj(d,this.data,b,e);f.children.push(a);for(l(f,d);0<=b;)if(e[b].children.length>this.Te)this.sj(e,b),b--;else break;this.gj(d,
e,b)},sj:function(a,b){var d=a[b],e=d.children.length,f=this.hg;this.hj(d,f,e);e=this.ij(d,f,e);e=y(d.children.splice(e,d.children.length-e));e.height=d.height;e.Ta=d.Ta;g(d,this.mb);g(e,this.mb);b?a[b-1].children.push(e):this.jg(d,e)},jg:function(a,b){this.data=y([a,b]);this.data.height=a.height+1;this.data.Ta=!1;g(this.data,this.mb)},ij:function(a,b,d){var e,f,g,l,m,n,q;m=n=Infinity;for(e=b;e<=d-b;e++)f=h(a,0,e,this.mb),g=h(a,e,d,this.mb),l=Math.max(0,Math.min(f.ea,g.ea)-Math.max(f.ca,g.ca))*Math.max(0,
Math.min(f.ga,g.ga)-Math.max(f.fa,g.fa)),f=p(f)+p(g),l<m?(m=l,q=e,n=f<n?f:n):l===m&&f<n&&(n=f,q=e);return q},hj:function(a,b,d){var e=a.Ta?this.Ve:m,f=a.Ta?this.We:n,g=this.dg(a,b,d,e);b=this.dg(a,b,d,f);g<b&&a.children.sort(e)},dg:function(a,b,d,e){a.children.sort(e);e=this.mb;var f=h(a,0,b,e),g=h(a,d-b,d,e),m=q(f)+q(g),n,p;for(n=b;n<d-b;n++)p=a.children[n],l(f,a.Ta?e(p):p),m+=q(f);for(n=d-b-1;n>=b;n--)p=a.children[n],l(g,a.Ta?e(p):p),m+=q(g);return m},gj:function(a,b,d){for(;0<=d;d--)l(b[d],a)},
kj:function(a){for(var b=a.length-1,d;0<=b;b--)0===a[b].children.length?0<b?(d=a[b-1].children,d.splice(d.indexOf(a[b]),1)):this.clear():g(a[b],this.mb)},mj:function(a){var b=["return a"," - b",";"];this.Ve=new Function("a","b",b.join(a[0]));this.We=new Function("a","b",b.join(a[1]));this.mb=new Function("a","return {minX: a"+a[0]+", minY: a"+a[1]+", maxX: a"+a[2]+", maxY: a"+a[3]+"};")}}},{quickselect:1}]},{},[2])(2)});gl=b.ja})();function kl(a){this.a=gl(a);this.b={}}k=kl.prototype;k.Ca=function(a,b){var c={ca:a[0],fa:a[1],ea:a[2],ga:a[3],value:b};this.a.Ca(c);this.b[t(b)]=c};k.load=function(a,b){for(var c=Array(b.length),d=0,e=b.length;d<e;d++){var f=a[d],g=b[d],f={ca:f[0],fa:f[1],ea:f[2],ga:f[3],value:g};c[d]=f;this.b[t(g)]=f}this.a.load(c)};k.remove=function(a){a=t(a);var b=this.b[a];delete this.b[a];return null!==this.a.remove(b)};
function ll(a,b,c){var d=t(c),d=a.b[d];$b([d.ca,d.fa,d.ea,d.ga],b)||(a.remove(c),a.Ca(b,c))}function ml(a){return a.a.all().map(function(a){return a.value})}function nl(a,b){return a.a.search({ca:b[0],fa:b[1],ea:b[2],ga:b[3]}).map(function(a){return a.value})}k.forEach=function(a,b){return pl(ml(this),a,b)};function ql(a,b,c,d){return pl(nl(a,b),c,d)}function pl(a,b,c){for(var d,e=0,f=a.length;e<f&&!(d=b.call(c,a[e]));e++);return d}k.Ya=function(){return Ga(this.b)};
k.clear=function(){this.a.clear();this.b={}};k.H=function(){var a=this.a.data;return[a.ca,a.fa,a.ea,a.ga]};function P(a){a=a||{};af.call(this,{attributions:a.attributions,logo:a.logo,projection:void 0,state:"ready",wrapX:void 0!==a.wrapX?a.wrapX:!0});this.P=oa;this.oa=a.format;this.T=a.overlaps||!0;this.W=a.url;void 0!==a.loader?this.P=a.loader:void 0!==this.W&&(this.P=el(this.W,this.oa));this.rb=void 0!==a.strategy?a.strategy:fl;var b=void 0!==a.useSpatialIndex?a.useSpatialIndex:!0;this.a=b?new kl:null;this.ia=new kl;this.i={};this.o={};this.j={};this.s={};this.c=null;var c,d;a.features instanceof be?
(c=a.features,d=c.a):Array.isArray(a.features)&&(d=a.features);b||void 0!==c||(c=new be(d));void 0!==d&&rl(this,d);void 0!==c&&sl(this,c)}x(P,af);k=P.prototype;k.sb=function(a){var b=t(a).toString();if(tl(this,b,a)){ul(this,b,a);var c=a.X();c?(b=c.H(),this.a&&this.a.Ca(b,a)):this.i[b]=a;this.b(new vl("addfeature",a))}this.u()};function ul(a,b,c){a.s[b]=[B(c,"change",a.Eh,a),B(c,"propertychange",a.Eh,a)]}
function tl(a,b,c){var d=!0,e=c.Xa();void 0!==e?e.toString()in a.o?d=!1:a.o[e.toString()]=c:a.j[b]=c;return d}k.Jc=function(a){rl(this,a);this.u()};function rl(a,b){var c,d,e,f,g=[],h=[],l=[];d=0;for(e=b.length;d<e;d++)f=b[d],c=t(f).toString(),tl(a,c,f)&&h.push(f);d=0;for(e=h.length;d<e;d++){f=h[d];c=t(f).toString();ul(a,c,f);var m=f.X();m?(c=m.H(),g.push(c),l.push(f)):a.i[c]=f}a.a&&a.a.load(g,l);d=0;for(e=h.length;d<e;d++)a.b(new vl("addfeature",h[d]))}
function sl(a,b){var c=!1;B(a,"addfeature",function(a){c||(c=!0,b.push(a.feature),c=!1)});B(a,"removefeature",function(a){c||(c=!0,b.remove(a.feature),c=!1)});B(b,"add",function(a){c||(a=a.element,c=!0,this.sb(a),c=!1)},a);B(b,"remove",function(a){c||(a=a.element,c=!0,this.ob(a),c=!1)},a);a.c=b}
k.clear=function(a){if(a){for(var b in this.s)this.s[b].forEach(Ka);this.c||(this.s={},this.o={},this.j={})}else if(this.a){this.a.forEach(this.Sf,this);for(var c in this.i)this.Sf(this.i[c])}this.c&&this.c.clear();this.a&&this.a.clear();this.ia.clear();this.i={};this.b(new vl("clear"));this.u()};k.wg=function(a,b){if(this.a)return this.a.forEach(a,b);if(this.c)return this.c.forEach(a,b)};function wl(a,b,c){a.vb([b[0],b[1],b[0],b[1]],function(a){if(a.X().sg(b))return c.call(void 0,a)})}
k.vb=function(a,b,c){if(this.a)return ql(this.a,a,b,c);if(this.c)return this.c.forEach(b,c)};k.xg=function(a,b,c){return this.vb(a,function(d){if(d.X().Ka(a)&&(d=b.call(c,d)))return d})};k.Fg=function(){return this.c};k.oe=function(){var a;this.c?a=this.c.a:this.a&&(a=ml(this.a),Ga(this.i)||jb(a,Ea(this.i)));return a};k.Eg=function(a){var b=[];wl(this,a,function(a){b.push(a)});return b};k.ef=function(a){return nl(this.a,a)};
k.Ag=function(a,b){var c=a[0],d=a[1],e=null,f=[NaN,NaN],g=Infinity,h=[-Infinity,-Infinity,Infinity,Infinity],l=b?b:rc;ql(this.a,h,function(a){if(l(a)){var b=a.X(),p=g;g=b.tb(c,d,f,g);g<p&&(e=a,a=Math.sqrt(g),h[0]=c-a,h[1]=d-a,h[2]=c+a,h[3]=d+a)}});return e};k.H=function(){return this.a.H()};k.Dg=function(a){a=this.o[a.toString()];return void 0!==a?a:null};k.Ch=function(){return this.oa};k.Dh=function(){return this.W};
k.Eh=function(a){a=a.target;var b=t(a).toString(),c=a.X();c?(c=c.H(),b in this.i?(delete this.i[b],this.a&&this.a.Ca(c,a)):this.a&&ll(this.a,c,a)):b in this.i||(this.a&&this.a.remove(a),this.i[b]=a);c=a.Xa();void 0!==c?(c=c.toString(),b in this.j?(delete this.j[b],this.o[c]=a):this.o[c]!==a&&(xl(this,a),this.o[c]=a)):b in this.j||(xl(this,a),this.j[b]=a);this.u();this.b(new vl("changefeature",a))};k.Ya=function(){return this.a.Ya()&&Ga(this.i)};
k.Pc=function(a,b,c){var d=this.ia;a=this.rb(a,b);var e,f;e=0;for(f=a.length;e<f;++e){var g=a[e];ql(d,g,function(a){return Sb(a.extent,g)})||(this.P.call(this,g,b,c),d.Ca(g,{extent:g.slice()}))}};k.ob=function(a){var b=t(a).toString();b in this.i?delete this.i[b]:this.a&&this.a.remove(a);this.Sf(a);this.u()};k.Sf=function(a){var b=t(a).toString();this.s[b].forEach(Ka);delete this.s[b];var c=a.Xa();void 0!==c?delete this.o[c.toString()]:delete this.j[b];this.b(new vl("removefeature",a))};
function xl(a,b){for(var c in a.o)if(a.o[c]===b){delete a.o[c];break}}function vl(a,b){Ua.call(this,a);this.feature=b}x(vl,Ua);function yl(a){this.c=a.source;this.za=ch();this.i=Ge();this.j=[0,0];this.v=null;Hk.call(this,{attributions:a.attributions,canvasFunction:this.Dj.bind(this),logo:a.logo,projection:a.projection,ratio:a.ratio,resolutions:a.resolutions,state:this.c.V()});this.P=null;this.s=void 0;this.xh(a.style);B(this.c,"change",this.en,this)}x(yl,Hk);k=yl.prototype;
k.Dj=function(a,b,c,d,e){var f=new ek(.5*b/c,a,b,this.c.T);this.c.Pc(a,b,e);var g=!1;this.c.vb(a,function(a){var d;if(!(d=g)){var e;(d=a.ec())?e=d.call(a,b):this.s&&(e=this.s(a,b));if(e){var n,p=!1;Array.isArray(e)||(e=[e]);d=0;for(n=e.length;d<n;++d)p=lk(f,a,e[d],kk(b,c),this.dn,this)||p;d=p}else d=!1}g=d},this);fk(f);if(g)return null;this.j[0]!=d[0]||this.j[1]!=d[1]?(this.i.canvas.width=d[0],this.i.canvas.height=d[1],this.j[0]=d[0],this.j[1]=d[1]):this.i.clearRect(0,0,d[0],d[1]);a=zl(this,lc(a),
b,c,d);f.Pa(this.i,c,a,0,{});this.v=f;return this.i.canvas};k.sa=function(a,b,c,d,e){if(this.v){var f={};return this.v.sa(a,b,0,d,function(a){var b=t(a).toString();if(!(b in f))return f[b]=!0,e(a)})}};k.an=function(){return this.c};k.bn=function(){return this.P};k.cn=function(){return this.s};function zl(a,b,c,d,e){c=d/c;return lh(a.za,e[0]/2,e[1]/2,c,-c,0,-b[0],-b[1])}k.dn=function(){this.u()};k.en=function(){cf(this,this.c.V())};
k.xh=function(a){this.P=void 0!==a?a:wj;this.s=a?uj(this.P):void 0;this.u()};function Al(a){Kj.call(this,a);this.f=null;this.s=ch();this.c=this.o=null}x(Al,Kj);Al.prototype.sa=function(a,b,c,d){var e=this.a;return e.ha().sa(a,b.viewState.resolution,b.viewState.rotation,b.skippedFeatureUids,function(a){return c.call(d,a,e)})};
Al.prototype.Cc=function(a,b,c,d){if(this.f&&this.f.a())if(this.a.ha()instanceof yl){if(a=hh(b.pixelToCoordinateTransform,a.slice()),this.sa(a,b,rc,this))return c.call(d,this.a)}else if(this.o||(this.o=mh(this.s.slice())),b=hh(this.o,a.slice()),this.c||(this.c=Ge(1,1)),this.c.clearRect(0,0,1,1),this.c.drawImage(this.f?this.f.a():null,b[0],b[1],1,1,0,0,1,1),0<this.c.getImageData(0,0,1,1).data[3])return c.call(d,this.a)};
Al.prototype.l=function(a,b){var c=a.pixelRatio,d=a.viewState,e=d.center,f=d.resolution,g=this.a.ha(),h=a.viewHints,l=a.extent;void 0!==b.extent&&(l=nc(l,b.extent));h[0]||h[1]||ic(l)||(d=g.A(l,f,c,d.projection))&&xh(this,d)&&(this.f=d);if(this.f){var d=this.f,h=d.H(),l=d.$(),m=d.f,f=c*l/(f*m),n=dh(this.s);kh(n,c*a.size[0]/2,c*a.size[1]/2);jh(n,f,f);kh(n,m*(h[0]-e[0])/l,m*(e[1]-h[3])/l);this.o=null;zh(a.attributions,d.l);Ah(a,g)}return!!this.f};function Bl(a){Kj.call(this,a);this.c=Ge();this.o=null;this.j=Jb();this.P=[0,0,0];this.C=ch();this.D=0}x(Bl,Kj);Bl.prototype.i=function(a,b,c){var d=Nj(this,a,0);Lj(this,"precompose",c,a,d);Cl(this,c,a,b);Mj(this,c,a,d)};
Bl.prototype.l=function(a,b){function c(a){a=a.V();return 2==a||4==a||3==a&&!r}var d=a.pixelRatio,e=a.viewState,f=e.projection,g=this.a,h=g.ha(),l=h.fb(f),m=l.Lb(e.resolution,this.D),n=l.$(m),p=e.center;n==e.resolution?(p=Ch(p,n,a.size),e=mc(p,n,e.rotation,a.size)):e=a.extent;void 0!==b.extent&&(e=nc(e,b.extent));if(ic(e))return!1;n=kf(l,e,n);p={};p[m]={};var q=this.Qd(h,f,p),r=g.c(),v=Jb(),y=new Wd(0,0,0,0),w,G,z,D;for(z=n.ca;z<=n.ea;++z)for(D=n.fa;D<=n.ga;++D)w=h.bc(m,z,D,d,f),!c(w)&&w.a&&(w=w.a),
c(w)?p[m][w.ma.toString()]=w:(G=hf(l,w.ma,q,y,v),G||(w=jf(l,w.ma,y,v))&&q(m+1,w));q=Object.keys(p).map(Number);q.sort(fb);var v=[],H,y=0;for(z=q.length;y<z;++y)for(H in w=q[y],D=p[w],D)w=D[H],2==w.V()&&v.push(w);this.o=v;Bh(a.usedTiles,h,m,n);Dh(a,h,l,d,f,e,m,g.f());yh(a,h);Ah(a,h);return!0};Bl.prototype.Cc=function(a,b,c,d){var e=this.c.canvas,f=b.size;e.width=f[0];e.height=f[1];this.i(b,oh(this.a),this.c);if(0<this.c.getImageData(a[0],a[1],1,1).data[3])return c.call(d,this.a)};
function Cl(a,b,c,d){var e=c.pixelRatio,f=c.viewState,g=f.center,h=f.projection,l=f.resolution,f=f.rotation,m=c.size,n=Math.round(e*m[0]/2),p=Math.round(e*m[1]/2),m=e/l,q=a.a,r=q.ha(),v=r.Ud(h),y=r.fb(h),q=Ya(q,"render"),w=b,G,z,D,H;if(f||q)w=a.c,G=w.canvas,H=y.Lb(l),D=r.$d(H,e,h),H=$e(y.Ja(H)),D=D[0]/H[0],l=b.canvas.width*D,z=b.canvas.height*D,H=Math.round(Math.sqrt(l*l+z*z)),G.width!=H?G.width=G.height=H:w.clearRect(0,0,H,H),G=(H-l)/2/D,z=(H-z)/2/D,m*=D,n=Math.round(D*(n+G)),p=Math.round(D*(p+z));
l=w.globalAlpha;w.globalAlpha=d.opacity;var ba=a.o,A,Fa=r.jf(h)&&1==d.opacity;Fa||(ba.reverse(),A=[]);var Ja=d.extent;if(d=void 0!==Ja){var M=fc(Ja),ma=ec(Ja),Ub=dc(Ja),Ja=cc(Ja);hh(c.coordinateToPixelTransform,M);hh(c.coordinateToPixelTransform,ma);hh(c.coordinateToPixelTransform,Ub);hh(c.coordinateToPixelTransform,Ja);var Kb=G||0,Hb=z||0;w.save();var Xb=w.canvas.width*e/2,gc=w.canvas.height*e/2;ij(w,-f,Xb,gc);w.beginPath();w.moveTo(M[0]*e+Kb,M[1]*e+Hb);w.lineTo(ma[0]*e+Kb,ma[1]*e+Hb);w.lineTo(Ub[0]*
e+Kb,Ub[1]*e+Hb);w.lineTo(Ja[0]*e+Kb,Ja[1]*e+Hb);w.clip();ij(w,f,Xb,gc)}M=0;for(ma=ba.length;M<ma;++M){var Ub=ba[M],Ja=Ub.ma,gc=y.Ea(Ja,a.j),Xb=Ja[0],Nb=cc(y.Ea(y.qd(g,Xb,a.P))),Ja=Math.round(jc(gc)*m),Kb=Math.round(kc(gc)*m),Hb=Math.round((gc[0]-Nb[0])*m/Ja)*Ja+n+Math.round((Nb[0]-g[0])*m),gc=Math.round((Nb[1]-gc[3])*m/Kb)*Kb+p+Math.round((g[1]-Nb[1])*m);if(!Fa){Nb=[Hb,gc,Hb+Ja,gc+Kb];w.save();for(var Od=0,sf=A.length;Od<sf;++Od){var Pd=A[Od];oc(Nb,Pd)&&(w.beginPath(),w.moveTo(Nb[0],Nb[1]),w.lineTo(Nb[0],
Nb[3]),w.lineTo(Nb[2],Nb[3]),w.lineTo(Nb[2],Nb[1]),w.moveTo(Pd[0],Pd[1]),w.lineTo(Pd[2],Pd[1]),w.lineTo(Pd[2],Pd[3]),w.lineTo(Pd[0],Pd[3]),w.closePath(),w.clip())}A.push(Nb)}Xb=r.$d(Xb,e,h);w.drawImage(Ub.$a(),v,v,Xb[0],Xb[1],Hb,gc,Ja,Kb);Fa||w.restore()}d&&w.restore();q&&(e=G-n/D+n,h=z-p/D+p,g=lh(a.C,H/2-e,H/2-h,m,-m,-f,-g[0]+e/m,-g[1]-h/m),Lj(a,"render",w,c,g));(f||q)&&b.drawImage(w.canvas,-Math.round(G),-Math.round(z),H/D,H/D);w.globalAlpha=l};function Dl(a){Kj.call(this,a);this.c=!1;this.D=-1;this.A=NaN;this.v=Jb();this.o=this.U=null;this.j=Ge()}x(Dl,Kj);
Dl.prototype.i=function(a,b,c){var d=a.extent,e=a.pixelRatio,f=b.Qc?a.skippedFeatureUids:{},g=a.viewState,h=g.projection,g=g.rotation,l=h.H(),m=this.a.ha(),n=Nj(this,a,0);Lj(this,"precompose",c,a,n);var p=this.o;if(p&&!p.Ya()){var q;Ya(this.a,"render")?(this.j.canvas.width=c.canvas.width,this.j.canvas.height=c.canvas.height,q=this.j):q=c;var r=q.globalAlpha;q.globalAlpha=b.opacity;b=a.size[0]*e;var v=a.size[1]*e;ij(q,-g,b/2,v/2);p.Pa(q,e,n,g,f);if(m.C&&h.a&&!Sb(l,d)){for(var h=d[0],m=jc(l),y=0;h<
l[0];)--y,n=m*y,n=Nj(this,a,n),p.Pa(q,e,n,g,f),h+=m;y=0;for(h=d[2];h>l[2];)++y,n=m*y,n=Nj(this,a,n),p.Pa(q,e,n,g,f),h-=m;n=Nj(this,a,0)}ij(q,g,b/2,v/2);q!=c&&(Lj(this,"render",q,a,n),c.drawImage(q.canvas,0,0));q.globalAlpha=r}Mj(this,c,a,n)};Dl.prototype.sa=function(a,b,c,d){if(this.o){var e=this.a,f={};return this.o.sa(a,b.viewState.resolution,b.viewState.rotation,{},function(a){var b=t(a).toString();if(!(b in f))return f[b]=!0,c.call(d,a,e)})}};Dl.prototype.C=function(){wh(this)};
Dl.prototype.l=function(a){function b(a){var b,d=a.ec();d?b=d.call(a,m):(d=c.i)&&(b=d(a,m));if(b){if(b){d=!1;if(Array.isArray(b))for(var e=0,f=b.length;e<f;++e)d=lk(q,a,b[e],kk(m,n),this.C,this)||d;else d=lk(q,a,b,kk(m,n),this.C,this)||d;a=d}else a=!1;this.c=this.c||a}}var c=this.a,d=c.ha();zh(a.attributions,d.l);Ah(a,d);var e=a.viewHints[0],f=a.viewHints[1],g=c.P,h=c.T;if(!this.c&&!g&&e||!h&&f)return!0;var l=a.extent,h=a.viewState,e=h.projection,m=h.resolution,n=a.pixelRatio,f=c.g,p=c.a,g=yj(c);
void 0===g&&(g=jk);l=Mb(l,p*m);p=h.projection.H();d.C&&h.projection.a&&!Sb(p,a.extent)&&(a=Math.max(jc(l)/2,jc(p)),l[0]=p[0]-a,l[2]=p[2]+a);if(!this.c&&this.A==m&&this.D==f&&this.U==g&&Sb(this.v,l))return!0;this.o=null;this.c=!1;var q=new ek(.5*m/n,l,m,d.T,c.a);d.Pc(l,m,e);if(g){var r=[];d.vb(l,function(a){r.push(a)},this);r.sort(g);r.forEach(b,this)}else d.vb(l,b,this);fk(q);this.A=m;this.D=f;this.U=g;this.v=l;this.o=q;return!0};function El(a,b){var c=/\{z\}/g,d=/\{x\}/g,e=/\{y\}/g,f=/\{-y\}/g;return function(g){if(g)return a.replace(c,g[0].toString()).replace(d,g[1].toString()).replace(e,function(){return(-g[2]-1).toString()}).replace(f,function(){var a=b.a?b.a[g[0]]:null;return(a.ga-a.fa+1+g[2]).toString()})}}function Fl(a,b){for(var c=a.length,d=Array(c),e=0;e<c;++e)d[e]=El(a[e],b);return Gl(d)}function Gl(a){return 1===a.length?a[0]:function(b,c,d){if(b)return a[xa((b[1]<<b[0])+b[2],a.length)](b,c,d)}}
function Hl(){}function Il(a){var b=[],c=/\{(\d)-(\d)\}/.exec(a)||/\{([a-z])-([a-z])\}/.exec(a);if(c){var d=c[2].charCodeAt(0),e;for(e=c[1].charCodeAt(0);e<=d;++e)b.push(a.replace(c[0],String.fromCharCode(e)))}else b.push(a);return b};function Jl(a){rf.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tilePixelRatio:a.tilePixelRatio,wrapX:a.wrapX});this.tileLoadFunction=a.tileLoadFunction;this.tileUrlFunction=this.vc?this.vc.bind(this):Hl;this.urls=null;a.urls?this.bb(a.urls):a.url&&this.Va(a.url);a.tileUrlFunction&&this.Qa(a.tileUrlFunction)}x(Jl,rf);k=Jl.prototype;k.gb=function(){return this.tileLoadFunction};
k.hb=function(){return this.tileUrlFunction};k.ib=function(){return this.urls};k.Bh=function(a){a=a.target;switch(a.V()){case 1:this.b(new wf("tileloadstart",a));break;case 2:this.b(new wf("tileloadend",a));break;case 3:this.b(new wf("tileloaderror",a))}};k.lb=function(a){this.a.clear();this.tileLoadFunction=a;this.u()};k.Qa=function(a,b){this.tileUrlFunction=a;"undefined"!==typeof b?uf(this,b):this.u()};
k.Va=function(a){var b=this.urls=Il(a);this.Qa(this.vc?this.vc.bind(this):Fl(b,this.tileGrid),a)};k.bb=function(a){this.urls=a;var b=a.join("\n");this.Qa(this.vc?this.vc.bind(this):Fl(a,this.tileGrid),b)};k.Yf=function(a,b,c){a=this.Fb(a,b,c);Re(this.a,a)&&this.a.get(a)};function Kl(a){Jl.call(this,{attributions:a.attributions,cacheSize:void 0!==a.cacheSize?a.cacheSize:128,extent:a.extent,logo:a.logo,opaque:!1,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction?a.tileLoadFunction:Ll,tileUrlFunction:a.tileUrlFunction,tilePixelRatio:a.tilePixelRatio,url:a.url,urls:a.urls,wrapX:void 0===a.wrapX?!0:a.wrapX});this.c=a.format?a.format:null;this.i=a.overlaps||!0;this.tileClass=a.tileClass?a.tileClass:Kk}x(Kl,Jl);
Kl.prototype.bc=function(a,b,c,d,e){var f=this.Fb(a,b,c);if(Re(this.a,f))return this.a.get(f);a=[a,b,c];d=(b=vf(this,a,e))?this.tileUrlFunction(b,d,e):void 0;d=new this.tileClass(a,void 0!==d?0:4,void 0!==d?d:"",this.c,this.tileLoadFunction);B(d,"change",this.Bh,this);this.a.set(f,d);return d};Kl.prototype.$d=function(a,b){var c=$e(this.tileGrid.Ja(a));return[c[0]*b,c[1]*b]};function Ll(a,b){a.ki(dl(b,a.l))};var Ml={image:Oj,hybrid:["Polygon","LineString"]},Nl={hybrid:["Image","Text"],vector:Oj};function Ol(a){Bl.call(this,a);this.U=!1;this.v=ch();this.D="vector"==a.s?1:0}x(Ol,Bl);
Ol.prototype.i=function(a,b,c){var d=Nj(this,a,0);Lj(this,"precompose",c,a,d);var e=this.a.s;"vector"!==e&&Cl(this,c,a,b);if("image"!==e){var f=this.a,e=Nl[f.s],g=a.pixelRatio,h=b.Qc?a.skippedFeatureUids:{},l=a.viewState,m=l.center,n=l.rotation,p=a.size,l=g/l.resolution,q=f.ha(),r=q.cc(g),v=Nj(this,a,0);Ya(f,"render")?(this.c.canvas.width=c.canvas.width,this.c.canvas.height=c.canvas.height,f=this.c):f=c;var y=f.globalAlpha;f.globalAlpha=b.opacity;b=this.o;var q=q.tileGrid,w,G,z,D,H,ba,A,Fa;G=0;for(z=
b.length;G<z;++G)D=b[G],A=D.f,H=q.Ea(D.ma,this.j),w=D.ma[0],ba="tile-pixels"==D.o.xb(),w=q.$(w),Fa=w/r,w=Math.round(g*p[0]/2),D=Math.round(g*p[1]/2),ba?(H=fc(H),dh(this.v),H=lh(this.v,w,D,l*Fa,l*Fa,n,(H[0]-m[0])/Fa,(m[1]-H[1])/Fa)):H=v,ij(f,-n,w,D),A.yd.Pa(f,g,H,n,h,e),ij(f,n,w,D);f!=c&&(Lj(this,"render",f,a,v),c.drawImage(f.canvas,0,0));f.globalAlpha=y}Mj(this,c,a,d)};
function Pl(a,b,c){function d(a){var b,c=a.ec();c?b=c.call(a,v):(c=e.i)&&(b=c(a,v));if(b){Array.isArray(b)||(b=[b]);var c=z,d=G;if(b){var f=!1;if(Array.isArray(b))for(var g=0,h=b.length;g<h;++g)f=lk(d,a,b[g],c,this.A,this)||f;else f=lk(d,a,b,c,this.A,this)||f;a=f}else a=!1;this.U=this.U||a;l.gd=l.gd||a}}var e=a.a,f=c.pixelRatio;c=c.viewState.projection;var g=e.g,h=yj(e)||null,l=b.f;if(l.gd||l.bi!=g||l.Tf!=h){l.yd=null;l.gd=!1;var m=e.ha(),n=m.tileGrid,p=b.ma,q=b.o,r="tile-pixels"==q.xb(),v=n.$(p[0]),
y;if(r)var w=r=m.cc(f),n=$e(n.Ja(p[0])),n=[0,0,n[0]*w,n[1]*w];else r=v,n=n.Ea(p),Pc(c,q)||(y=!0,b.vf(c));l.gd=!1;var G=new ek(0,n,r,m.i,e.a),z=kk(r,f);b=b.c;h&&h!==l.Tf&&b.sort(h);m=0;for(r=b.length;m<r;++m)f=b[m],y&&f.X().kb(q,c),d.call(a,f);fk(G);l.bi=g;l.Tf=h;l.yd=G;l.resolution=NaN}}
Ol.prototype.sa=function(a,b,c,d){var e=b.pixelRatio,f=b.viewState.resolution;b=b.viewState.rotation;var g=this.a,h={},l=this.o,m=g.ha(),n=m.tileGrid,p,q,r,v,y,w;r=0;for(v=l.length;r<v;++r)w=l[r],q=w.ma,y=m.tileGrid.Ea(q,this.j),Qb(y,a)&&("tile-pixels"===w.o.xb()?(y=fc(y),f=m.cc(e),q=n.$(q[0])/f,q=[(a[0]-y[0])/q,(y[1]-a[1])/q]):q=a,w=w.f.yd,p=p||w.sa(q,f,b,{},function(a){var b=t(a).toString();if(!(b in h))return h[b]=!0,c.call(d,a,g)}));return p};Ol.prototype.A=function(){wh(this)};
Ol.prototype.l=function(a,b){var c=Bl.prototype.l.call(this,a,b);if(c)for(var d=Object.keys(a.Ee||{}),e=0,f=this.o.length;e<f;++e){var g=this.o[e];Pl(this,g,a);var h=g,g=a,l=this.a,m=Ml[l.s];if(m){var n=g.pixelRatio,p=h.f,q=l.g;if(!mb(p.ui,d)||p.Uf!==q){p.ui=d;p.Uf=q;var q=h.g,r=l.ha(),v=r.tileGrid,y=h.ma[0],w=v.$(y),l=$e(v.Ja(y)),y=v.$(y),G=y/w,z=l[0]*n*G,D=l[1]*n*G;q.canvas.width=z/G+.5;q.canvas.height=D/G+.5;q.scale(1/G,1/G);q.translate(z/2,D/2);G="tile-pixels"==h.o.xb();w=n/w;r=r.cc(n);y/=r;v=
v.Ea(h.ma,this.j);h=dh(this.v);G?(jh(h,w*y,w*y),kh(h,-l[0]*r/2,-l[1]*r/2)):(l=lc(v),jh(h,w,-w),kh(h,-l[0],-l[1]));p.yd.Pa(q,n,h,0,g.skippedFeatureUids||{},m)}}}return c};function Ql(a,b){Jh.call(this,0,b);this.f=Ge();this.b=this.f.canvas;this.b.style.width="100%";this.b.style.height="100%";this.b.className="ol-unselectable";a.insertBefore(this.b,a.childNodes[0]||null);this.a=!0;this.c=ch()}x(Ql,Jh);Ql.prototype.Xe=function(a){return a instanceof ej?new Al(a):a instanceof F?new Bl(a):a instanceof J?new Ol(a):a instanceof I?new Dl(a):null};
function Rl(a,b,c){var d=a.i,e=a.f;if(Ya(d,b)){var f=c.extent,g=c.pixelRatio,h=c.viewState.rotation,l=c.viewState,m=c.pixelRatio/l.resolution;a=lh(a.c,a.b.width/2,a.b.height/2,m,-m,-l.rotation,-l.center[0],-l.center[1]);d.b(new qh(b,new zj(e,g,f,a,h),c,e,null))}}Ql.prototype.Y=function(){return"canvas"};
Ql.prototype.Ce=function(a){if(a){var b=this.f,c=a.pixelRatio,d=Math.round(a.size[0]*c),c=Math.round(a.size[1]*c);this.b.width!=d||this.b.height!=c?(this.b.width=d,this.b.height=c):b.clearRect(0,0,d,c);var e=a.viewState.rotation;Kh(a);Rl(this,"precompose",a);var f=a.layerStatesArray;nb(f);ij(b,e,d/2,c/2);var g=a.viewState.resolution,h,l,m,n;h=0;for(l=f.length;h<l;++h)n=f[h],m=n.layer,m=Mh(this,m),sh(n,g)&&"ready"==n.S&&m.l(a,n)&&m.i(a,n,b);ij(b,-e,d/2,c/2);Rl(this,"postcompose",a);this.a||(this.b.style.display=
"",this.a=!0);Nh(this,a);a.postRenderFunctions.push(Lh)}else this.a&&(this.b.style.display="none",this.a=!1)};function Sl(a,b){vh.call(this,a);this.target=b}x(Sl,vh);Sl.prototype.Nd=oa;Sl.prototype.th=oa;function Tl(a){var b=document.createElement("DIV");b.style.position="absolute";Sl.call(this,a,b);this.f=null;this.c=ch()}x(Tl,Sl);Tl.prototype.sa=function(a,b,c,d){var e=this.a;return e.ha().sa(a,b.viewState.resolution,b.viewState.rotation,b.skippedFeatureUids,function(a){return c.call(d,a,e)})};Tl.prototype.Nd=function(){Ne(this.target);this.f=null};
Tl.prototype.yf=function(a,b){var c=a.viewState,d=c.center,e=c.resolution,f=c.rotation,g=this.f,h=this.a.ha(),l=a.viewHints,m=a.extent;void 0!==b.extent&&(m=nc(m,b.extent));l[0]||l[1]||ic(m)||(c=h.A(m,e,a.pixelRatio,c.projection))&&xh(this,c)&&(g=c);g&&(l=g.H(),m=g.$(),c=ch(),lh(c,a.size[0]/2,a.size[1]/2,m/e,m/e,f,(l[0]-d[0])/m,(d[1]-l[3])/m),g!=this.f&&(d=g.a(this),d.style.maxWidth="none",d.style.position="absolute",Ne(this.target),this.target.appendChild(d),this.f=g),mb(c,this.c)||(Ke(this.target,
c),gh(this.c,c)),zh(a.attributions,g.l),Ah(a,h));return!0};function Ul(a){var b=document.createElement("DIV");b.style.position="absolute";Sl.call(this,a,b);this.c=!0;this.l=1;this.i=0;this.f={}}x(Ul,Sl);Ul.prototype.Nd=function(){Ne(this.target);this.i=0};
Ul.prototype.yf=function(a,b){if(!b.visible)return this.c&&(this.target.style.display="none",this.c=!1),!0;var c=a.pixelRatio,d=a.viewState,e=d.projection,f=this.a,g=f.ha(),h=g.fb(e),l=g.Ud(e),m=h.Lb(d.resolution),n=h.$(m),p=d.center,q;n==d.resolution?(p=Ch(p,n,a.size),q=mc(p,n,d.rotation,a.size)):q=a.extent;void 0!==b.extent&&(q=nc(q,b.extent));var n=kf(h,q,n),r={};r[m]={};var v=this.Qd(g,e,r),y=f.c(),w=Jb(),G=new Wd(0,0,0,0),z,D,H,ba;for(H=n.ca;H<=n.ea;++H)for(ba=n.fa;ba<=n.ga;++ba)z=g.bc(m,H,ba,
c,e),D=z.V(),D=2==D||4==D||3==D&&!y,!D&&z.a&&(z=z.a),D=z.V(),2==D?r[m][z.ma.toString()]=z:4==D||3==D&&!y||(D=hf(h,z.ma,v,G,w),D||(z=jf(h,z.ma,G,w))&&v(m+1,z));var A;if(this.i!=g.g){for(A in this.f)y=this.f[+A],Me(y.target);this.f={};this.i=g.g}w=Object.keys(r).map(Number);w.sort(fb);var v={},Fa;H=0;for(ba=w.length;H<ba;++H){A=w[H];A in this.f?y=this.f[A]:(y=h.qd(p,A),y=new Vl(h,y),v[A]=!0,this.f[A]=y);A=r[A];for(Fa in A){z=y;D=A[Fa];var Ja=l,M=D.ma,ma=M[0],Ub=M[1],Kb=M[2],M=M.toString();if(!(M in
z.a)){var ma=$e(z.c.Ja(ma),z.o),Hb=D.$a(z),Xb=Hb.style;Xb.maxWidth="none";var gc,Nb;0<Ja?(gc=document.createElement("DIV"),Nb=gc.style,Nb.overflow="hidden",Nb.width=ma[0]+"px",Nb.height=ma[1]+"px",Xb.position="absolute",Xb.left=-Ja+"px",Xb.top=-Ja+"px",Xb.width=ma[0]+2*Ja+"px",Xb.height=ma[1]+2*Ja+"px",gc.appendChild(Hb)):(Xb.width=ma[0]+"px",Xb.height=ma[1]+"px",gc=Hb,Nb=Xb);Nb.position="absolute";Nb.left=(Ub-z.g[1])*ma[0]+"px";Nb.top=(z.g[2]-Kb)*ma[1]+"px";z.b||(z.b=document.createDocumentFragment());
z.b.appendChild(gc);z.a[M]=D}}y.b&&(y.target.appendChild(y.b),y.b=null)}l=Object.keys(this.f).map(Number);l.sort(fb);H=ch();Fa=0;for(w=l.length;Fa<w;++Fa)if(A=l[Fa],y=this.f[A],A in r)if(z=y.$(),ba=y.Ia(),lh(H,a.size[0]/2,a.size[1]/2,z/d.resolution,z/d.resolution,d.rotation,(ba[0]-p[0])/z,(p[1]-ba[1])/z),y.setTransform(H),A in v){for(--A;0<=A;--A)if(A in this.f){this.f[A].target.parentNode&&this.f[A].target.parentNode.insertBefore(y.target,this.f[A].target.nextSibling);break}0>A&&this.target.insertBefore(y.target,
this.target.childNodes[0]||null)}else{if(!a.viewHints[0]&&!a.viewHints[1]){D=gf(y.c,q,y.g[0],G);A=[];z=void 0;for(z in y.a)ba=y.a[z],D.contains(ba.ma)||A.push(ba);D=0;for(Ja=A.length;D<Ja;++D)ba=A[D],z=ba.ma.toString(),Me(ba.$a(y)),delete y.a[z]}}else Me(y.target),delete this.f[A];b.opacity!=this.l&&(this.l=this.target.style.opacity=b.opacity);b.visible&&!this.c&&(this.target.style.display="",this.c=!0);Bh(a.usedTiles,g,m,n);Dh(a,g,h,c,e,q,m,f.f());yh(a,g);Ah(a,g);return!0};
function Vl(a,b){this.target=document.createElement("DIV");this.target.style.position="absolute";this.target.style.width="100%";this.target.style.height="100%";this.c=a;this.g=b;this.i=fc(a.Ea(b));this.l=a.$(b[0]);this.a={};this.b=null;this.f=ch();this.o=[0,0]}Vl.prototype.Ia=function(){return this.i};Vl.prototype.$=function(){return this.l};Vl.prototype.setTransform=function(a){mb(a,this.f)||(Ke(this.target,a),gh(this.f,a))};function Wl(a){this.i=Ge();var b=this.i.canvas;b.style.maxWidth="none";b.style.position="absolute";Sl.call(this,a,b);this.f=!1;this.l=-1;this.s=NaN;this.o=Jb();this.c=this.j=null;this.U=ch();this.v=ch()}x(Wl,Sl);k=Wl.prototype;k.Nd=function(){var a=this.i.canvas;a.width=a.width;this.l=0};
k.th=function(a,b){var c=a.viewState,d=c.center,e=c.rotation,f=c.resolution,c=a.pixelRatio,g=a.size[0],h=a.size[1],l=g*c,m=h*c,d=lh(this.U,c*g/2,c*h/2,c/f,-c/f,-e,-d[0],-d[1]),f=this.i;f.canvas.width=l;f.canvas.height=m;var n=dh(this.v);jh(n,1/c,1/c);kh(n,-(l-g)/2*c,-(m-h)/2*c);Ke(f.canvas,n);Xl(this,"precompose",a,d);(g=this.c)&&!g.Ya()&&(f.globalAlpha=b.opacity,g.Pa(f,c,d,e,b.Qc?a.skippedFeatureUids:{}),Xl(this,"render",a,d));Xl(this,"postcompose",a,d)};
function Xl(a,b,c,d){var e=a.i;a=a.a;Ya(a,b)&&a.b(new qh(b,new zj(e,c.pixelRatio,c.extent,d,c.viewState.rotation),c,e,null))}k.sa=function(a,b,c,d){if(this.c){var e=this.a,f={};return this.c.sa(a,b.viewState.resolution,b.viewState.rotation,{},function(a){var b=t(a).toString();if(!(b in f))return f[b]=!0,c.call(d,a,e)})}};k.uh=function(){wh(this)};
k.yf=function(a){function b(a){var b,d=a.ec();d?b=d.call(a,l):(d=c.i)&&(b=d(a,l));if(b){if(b){d=!1;if(Array.isArray(b))for(var e=0,f=b.length;e<f;++e)d=lk(n,a,b[e],kk(l,m),this.uh,this)||d;else d=lk(n,a,b,kk(l,m),this.uh,this)||d;a=d}else a=!1;this.f=this.f||a}}var c=this.a,d=c.ha();zh(a.attributions,d.l);Ah(a,d);var e=a.viewHints[0],f=a.viewHints[1],g=c.P,h=c.T;if(!this.f&&!g&&e||!h&&f)return!0;var f=a.extent,g=a.viewState,e=g.projection,l=g.resolution,m=a.pixelRatio;a=c.g;h=c.a;g=yj(c);void 0===
g&&(g=jk);f=Mb(f,h*l);if(!this.f&&this.s==l&&this.l==a&&this.j==g&&Sb(this.o,f))return!0;this.c=null;this.f=!1;var n=new ek(.5*l/m,f,l,d.T,c.a);d.Pc(f,l,e);if(g){var p=[];d.vb(f,function(a){p.push(a)},this);p.sort(g);p.forEach(b,this)}else d.vb(f,b,this);fk(n);this.s=l;this.l=a;this.j=g;this.o=f;this.c=n;return!0};function Yl(a,b){Jh.call(this,0,b);this.f=Ge();var c=this.f.canvas;c.style.position="absolute";c.style.width="100%";c.style.height="100%";c.className="ol-unselectable";a.insertBefore(c,a.childNodes[0]||null);this.c=ch();this.b=document.createElement("DIV");this.b.className="ol-unselectable";c=this.b.style;c.position="absolute";c.width="100%";c.height="100%";B(this.b,"touchstart",Wa);a.insertBefore(this.b,a.childNodes[0]||null);this.a=!0}x(Yl,Jh);Yl.prototype.ka=function(){Me(this.b);Jh.prototype.ka.call(this)};
Yl.prototype.Xe=function(a){if(a instanceof ej)a=new Tl(a);else if(a instanceof F)a=new Ul(a);else if(a instanceof I)a=new Wl(a);else return null;return a};function Zl(a,b,c){var d=a.i;if(Ya(d,b)){var e=c.extent,f=c.pixelRatio,g=c.viewState,h=g.rotation,l=a.f,m=l.canvas;a=lh(a.c,m.width/2,m.height/2,f/g.resolution,-f/g.resolution,-h,-g.center[0],-g.center[1]);d.b(new qh(b,new zj(l,f,e,a,h),c,l,null))}}Yl.prototype.Y=function(){return"dom"};
Yl.prototype.Ce=function(a){if(a){var b=this.i;if(Ya(b,"precompose")||Ya(b,"postcompose")){var b=this.f.canvas,c=a.pixelRatio;b.width=a.size[0]*c;b.height=a.size[1]*c}Zl(this,"precompose",a);b=a.layerStatesArray;nb(b);var c=a.viewState.resolution,d,e,f,g;d=0;for(e=b.length;d<e;++d)g=b[d],f=g.layer,f=Mh(this,f),this.b.insertBefore(f.target,this.b.childNodes[d]||null),sh(g,c)&&"ready"==g.S?f.yf(a,g)&&f.th(a,g):f.Nd();var b=a.layerStates,h;for(h in this.g)h in b||(f=this.g[h],Me(f.target));this.a||(this.b.style.display=
"",this.a=!0);Kh(a);Nh(this,a);a.postRenderFunctions.push(Lh);Zl(this,"postcompose",a)}else this.a&&(this.b.style.display="none",this.a=!1)};function $l(a){this.b=a}function am(a){this.b=a}x(am,$l);am.prototype.Y=function(){return 35632};function bm(a){this.b=a}x(bm,$l);bm.prototype.Y=function(){return 35633};function cm(){this.b="precision mediump float;varying vec2 a;varying float b;uniform float k;uniform sampler2D l;void main(void){vec4 texColor=texture2D(l,a);gl_FragColor.rgb=texColor.rgb;float alpha=texColor.a*b*k;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}"}x(cm,am);ca(cm);
function dm(){this.b="varying vec2 a;varying float b;attribute vec2 c;attribute vec2 d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;void main(void){mat4 offsetMatrix=i;if(g==1.0){offsetMatrix=i*j;}vec4 offsets=offsetMatrix*vec4(e,0.,0.);gl_Position=h*vec4(c,0.,1.)+offsets;a=d;b=f;}"}x(dm,bm);ca(dm);
function em(a,b){this.o=a.getUniformLocation(b,"j");this.j=a.getUniformLocation(b,"i");this.i=a.getUniformLocation(b,"k");this.l=a.getUniformLocation(b,"h");this.b=a.getAttribLocation(b,"e");this.a=a.getAttribLocation(b,"f");this.f=a.getAttribLocation(b,"c");this.g=a.getAttribLocation(b,"g");this.c=a.getAttribLocation(b,"d")};function fm(a){this.b=void 0!==a?a:[]};function gm(a,b){this.l=a;this.b=b;this.a={};this.c={};this.f={};this.j=this.s=this.i=this.o=null;(this.g=gb(na,"OES_element_index_uint"))&&b.getExtension("OES_element_index_uint");B(this.l,"webglcontextlost",this.ao,this);B(this.l,"webglcontextrestored",this.bo,this)}x(gm,Sa);
function hm(a,b,c){var d=a.b,e=c.b,f=String(t(c));if(f in a.a)d.bindBuffer(b,a.a[f].buffer);else{var g=d.createBuffer();d.bindBuffer(b,g);var h;34962==b?h=new Float32Array(e):34963==b&&(h=a.g?new Uint32Array(e):new Uint16Array(e));d.bufferData(b,h,35044);a.a[f]={Db:c,buffer:g}}}function im(a,b){var c=a.b,d=String(t(b)),e=a.a[d];c.isContextLost()||c.deleteBuffer(e.buffer);delete a.a[d]}k=gm.prototype;
k.ka=function(){Ra(this.l);var a=this.b;if(!a.isContextLost()){for(var b in this.a)a.deleteBuffer(this.a[b].buffer);for(b in this.f)a.deleteProgram(this.f[b]);for(b in this.c)a.deleteShader(this.c[b]);a.deleteFramebuffer(this.i);a.deleteRenderbuffer(this.j);a.deleteTexture(this.s)}};k.$n=function(){return this.b};
function jm(a){if(!a.i){var b=a.b,c=b.createFramebuffer();b.bindFramebuffer(b.FRAMEBUFFER,c);var d=km(b,1,1),e=b.createRenderbuffer();b.bindRenderbuffer(b.RENDERBUFFER,e);b.renderbufferStorage(b.RENDERBUFFER,b.DEPTH_COMPONENT16,1,1);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,d,0);b.framebufferRenderbuffer(b.FRAMEBUFFER,b.DEPTH_ATTACHMENT,b.RENDERBUFFER,e);b.bindTexture(b.TEXTURE_2D,null);b.bindRenderbuffer(b.RENDERBUFFER,null);b.bindFramebuffer(b.FRAMEBUFFER,null);a.i=c;
a.s=d;a.j=e}return a.i}function lm(a,b){var c=String(t(b));if(c in a.c)return a.c[c];var d=a.b,e=d.createShader(b.Y());d.shaderSource(e,b.b);d.compileShader(e);return a.c[c]=e}function mm(a,b,c){var d=t(b)+"/"+t(c);if(d in a.f)return a.f[d];var e=a.b,f=e.createProgram();e.attachShader(f,lm(a,b));e.attachShader(f,lm(a,c));e.linkProgram(f);return a.f[d]=f}k.ao=function(){Da(this.a);Da(this.c);Da(this.f);this.j=this.s=this.i=this.o=null};k.bo=function(){};
k.we=function(a){if(a==this.o)return!1;this.b.useProgram(a);this.o=a;return!0};function nm(a,b,c){var d=a.createTexture();a.bindTexture(a.TEXTURE_2D,d);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);void 0!==b&&a.texParameteri(3553,10242,b);void 0!==c&&a.texParameteri(3553,10243,c);return d}function km(a,b,c){var d=nm(a,void 0,void 0);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,b,c,0,a.RGBA,a.UNSIGNED_BYTE,null);return d}
function om(a,b){var c=nm(a,33071,33071);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b);return c};function pm(a,b){this.D=this.A=void 0;this.j=lc(b);this.U=[];this.i=[];this.S=void 0;this.c=[];this.f=[];this.Aa=this.ya=void 0;this.a=[];this.C=this.o=null;this.P=void 0;this.za=ch();this.Sa=ch();this.W=this.T=void 0;this.cb=ch();this.Ba=De();this.na=this.ia=this.Ra=void 0;this.oa=[];this.l=[];this.b=[];this.v=null;this.g=[];this.s=[];this.Hb=void 0}x(pm,ph);
function qm(a,b){var c=a.v,d=a.o,e=a.oa,f=a.l,g=b.b;return function(){if(!g.isContextLost()){var a,l;a=0;for(l=e.length;a<l;++a)g.deleteTexture(e[a]);a=0;for(l=f.length;a<l;++a)g.deleteTexture(f[a])}im(b,c);im(b,d)}}
function rm(a,b,c,d){var e=a.A,f=a.D,g=a.S,h=a.ya,l=a.Aa,m=a.P,n=a.T,p=a.W,q=a.Ra?1:0,r=a.ia,v=a.na,y=a.Hb,w=Math.cos(r),r=Math.sin(r),G=a.a.length,z=a.b.length,D,H,ba,A,Fa,Ja;for(D=0;D<c;D+=d)Fa=b[D]-a.j[0],Ja=b[D+1]-a.j[1],H=z/8,ba=-v*e,A=-v*(g-f),a.b[z++]=Fa,a.b[z++]=Ja,a.b[z++]=ba*w-A*r,a.b[z++]=ba*r+A*w,a.b[z++]=n/l,a.b[z++]=(p+g)/h,a.b[z++]=m,a.b[z++]=q,ba=v*(y-e),A=-v*(g-f),a.b[z++]=Fa,a.b[z++]=Ja,a.b[z++]=ba*w-A*r,a.b[z++]=ba*r+A*w,a.b[z++]=(n+y)/l,a.b[z++]=(p+g)/h,a.b[z++]=m,a.b[z++]=q,ba=
v*(y-e),A=v*f,a.b[z++]=Fa,a.b[z++]=Ja,a.b[z++]=ba*w-A*r,a.b[z++]=ba*r+A*w,a.b[z++]=(n+y)/l,a.b[z++]=p/h,a.b[z++]=m,a.b[z++]=q,ba=-v*e,A=v*f,a.b[z++]=Fa,a.b[z++]=Ja,a.b[z++]=ba*w-A*r,a.b[z++]=ba*r+A*w,a.b[z++]=n/l,a.b[z++]=p/h,a.b[z++]=m,a.b[z++]=q,a.a[G++]=H,a.a[G++]=H+1,a.a[G++]=H+2,a.a[G++]=H,a.a[G++]=H+2,a.a[G++]=H+3}pm.prototype.tc=function(a,b){this.g.push(this.a.length);this.s.push(b);var c=a.la();rm(this,c,c.length,a.va())};
pm.prototype.uc=function(a,b){this.g.push(this.a.length);this.s.push(b);var c=a.la();rm(this,c,c.length,a.va())};function sm(a,b){var c=b.b;a.U.push(a.a.length);a.i.push(a.a.length);a.v=new fm(a.b);hm(b,34962,a.v);a.o=new fm(a.a);hm(b,34963,a.o);var d={};tm(a.oa,a.c,d,c);tm(a.l,a.f,d,c);a.A=void 0;a.D=void 0;a.S=void 0;a.c=null;a.f=null;a.ya=void 0;a.Aa=void 0;a.a=null;a.P=void 0;a.T=void 0;a.W=void 0;a.Ra=void 0;a.ia=void 0;a.na=void 0;a.b=null;a.Hb=void 0}
function tm(a,b,c,d){var e,f,g,h=b.length;for(g=0;g<h;++g)e=b[g],f=t(e).toString(),f in c?e=c[f]:(e=om(d,e),c[f]=e),a[g]=e}
pm.prototype.Pa=function(a,b,c,d,e,f,g,h,l,m,n){f=a.b;hm(a,34962,this.v);hm(a,34963,this.o);var p=cm.$b(),q=dm.$b(),q=mm(a,p,q);this.C?p=this.C:this.C=p=new em(f,q);a.we(q);f.enableVertexAttribArray(p.f);f.vertexAttribPointer(p.f,2,5126,!1,32,0);f.enableVertexAttribArray(p.b);f.vertexAttribPointer(p.b,2,5126,!1,32,8);f.enableVertexAttribArray(p.c);f.vertexAttribPointer(p.c,2,5126,!1,32,16);f.enableVertexAttribArray(p.a);f.vertexAttribPointer(p.a,1,5126,!1,32,24);f.enableVertexAttribArray(p.g);f.vertexAttribPointer(p.g,
1,5126,!1,32,28);q=dh(this.cb);jh(q,2/(c*e[0]),2/(c*e[1]));ih(q,-d);kh(q,-(b[0]-this.j[0]),-(b[1]-this.j[1]));b=dh(this.Sa);jh(b,2/e[0],2/e[1]);e=dh(this.za);0!==d&&ih(e,-d);f.uniformMatrix4fv(p.l,!1,Ee(this.Ba,q));f.uniformMatrix4fv(p.j,!1,Ee(this.Ba,b));f.uniformMatrix4fv(p.o,!1,Ee(this.Ba,e));f.uniform1f(p.i,g);var r;if(void 0===l)um(this,f,a,h,this.oa,this.U);else{if(m)a:{d=a.g?5125:5123;a=a.g?4:2;e=this.g.length-1;for(g=this.l.length-1;0<=g;--g)for(f.bindTexture(3553,this.l[g]),m=0<g?this.i[g-
1]:0,b=this.i[g];0<=e&&this.g[e]>=m;){r=this.g[e];c=this.s[e];q=t(c).toString();if(void 0===h[q]&&c.X()&&(void 0===n||oc(n,c.X().H()))&&(f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT),f.drawElements(4,b-r,d,r*a),b=l(c))){h=b;break a}b=r;e--}h=void 0}else f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT),um(this,f,a,h,this.l,this.i),h=(h=l(null))?h:void 0;r=h}f.disableVertexAttribArray(p.f);f.disableVertexAttribArray(p.b);f.disableVertexAttribArray(p.c);f.disableVertexAttribArray(p.a);f.disableVertexAttribArray(p.g);
return r};function um(a,b,c,d,e,f){var g=c.g?5125:5123;c=c.g?4:2;if(Ga(d)){var h;a=0;d=e.length;for(h=0;a<d;++a){b.bindTexture(3553,e[a]);var l=f[a];b.drawElements(4,l-h,g,h*c);h=l}}else{h=0;var m,l=0;for(m=e.length;l<m;++l){b.bindTexture(3553,e[l]);for(var n=0<l?f[l-1]:0,p=f[l],q=n;h<a.g.length&&a.g[h]<=p;){var r=t(a.s[h]).toString();void 0!==d[r]?(q!==n&&b.drawElements(4,n-q,g,q*c),n=q=h===a.g.length-1?p:a.g[h+1]):n=h===a.g.length-1?p:a.g[h+1];h++}q!==n&&b.drawElements(4,n-q,g,q*c)}}}
pm.prototype.Ub=function(a){var b=a.Zb(),c=a.jc(1),d=a.ld(),e=a.pe(1),f=a.v,g=a.Ia(),h=a.U,l=a.j,m=a.Gb();a=a.i;var n;0===this.c.length?this.c.push(c):(n=this.c[this.c.length-1],t(n)!=t(c)&&(this.U.push(this.a.length),this.c.push(c)));0===this.f.length?this.f.push(e):(n=this.f[this.f.length-1],t(n)!=t(e)&&(this.i.push(this.a.length),this.f.push(e)));this.A=b[0];this.D=b[1];this.S=m[1];this.ya=d[1];this.Aa=d[0];this.P=f;this.T=g[0];this.W=g[1];this.ia=l;this.Ra=h;this.na=a;this.Hb=m[0]};
function vm(a,b,c){this.f=b;this.c=a;this.g=c;this.a={}}function wm(a,b){var c=[],d;for(d in a.a)c.push(qm(a.a[d],b));return function(){for(var a=c.length,b,d=0;d<a;d++)b=c[d].apply(this,arguments);return b}}function xm(a,b){for(var c in a.a)sm(a.a[c],b)}vm.prototype.b=function(a,b){var c=this.a[b];void 0===c&&(c=new ym[b](this.c,this.f),this.a[b]=c);return c};vm.prototype.Ya=function(){return Ga(this.a)};
vm.prototype.Pa=function(a,b,c,d,e,f,g,h){var l,m,n;l=0;for(m=Oj.length;l<m;++l)n=this.a[Oj[l]],void 0!==n&&n.Pa(a,b,c,d,e,f,g,h,void 0,!1)};function zm(a,b,c,d,e,f,g,h,l,m,n){var p=Am,q,r;for(q=Oj.length-1;0<=q;--q)if(r=a.a[Oj[q]],void 0!==r&&(r=r.Pa(b,c,d,e,p,f,g,h,l,m,n)))return r}
vm.prototype.sa=function(a,b,c,d,e,f,g,h,l,m){var n=b.b;n.bindFramebuffer(n.FRAMEBUFFER,jm(b));var p;void 0!==this.g&&(p=Mb(Wb(a),d*this.g));return zm(this,b,a,d,e,g,h,l,function(a){var b=new Uint8Array(4);n.readPixels(0,0,1,1,n.RGBA,n.UNSIGNED_BYTE,b);if(0<b[3]&&(a=m(a)))return a},!0,p)};
function Bm(a,b,c,d,e,f,g,h){var l=c.b;l.bindFramebuffer(l.FRAMEBUFFER,jm(c));return void 0!==zm(a,c,b,d,e,f,g,h,function(){var a=new Uint8Array(4);l.readPixels(0,0,1,1,l.RGBA,l.UNSIGNED_BYTE,a);return 0<a[3]},!1)}var ym={Image:pm},Am=[1,1];function Cm(a,b,c,d,e,f,g){this.b=a;this.f=b;this.g=f;this.c=g;this.o=e;this.l=d;this.i=c;this.a=null}x(Cm,ph);k=Cm.prototype;k.sd=function(a){this.Ub(a.a)};k.sc=function(a){switch(a.Y()){case "Point":this.uc(a,null);break;case "MultiPoint":this.tc(a,null);break;case "GeometryCollection":this.Ze(a,null)}};k.Ye=function(a,b){var c=(0,b.g)(a);c&&oc(this.g,c.H())&&(this.sd(b),this.sc(c))};k.Ze=function(a){a=a.c;var b,c;b=0;for(c=a.length;b<c;++b)this.sc(a[b])};
k.uc=function(a,b){var c=this.b,d=(new vm(1,this.g)).b(0,"Image");d.Ub(this.a);d.uc(a,b);sm(d,c);d.Pa(this.b,this.f,this.i,this.l,this.o,this.c,1,{},void 0,!1);qm(d,c)()};k.tc=function(a,b){var c=this.b,d=(new vm(1,this.g)).b(0,"Image");d.Ub(this.a);d.tc(a,b);sm(d,c);d.Pa(this.b,this.f,this.i,this.l,this.o,this.c,1,{},void 0,!1);qm(d,c)()};k.Ub=function(a){this.a=a};function Dm(){this.b="precision mediump float;varying vec2 a;uniform float f;uniform sampler2D g;void main(void){vec4 texColor=texture2D(g,a);gl_FragColor.rgb=texColor.rgb;gl_FragColor.a=texColor.a*f;}"}x(Dm,am);ca(Dm);function Em(){this.b="varying vec2 a;attribute vec2 b;attribute vec2 c;uniform mat4 d;uniform mat4 e;void main(void){gl_Position=e*vec4(b,0.,1.);a=(d*vec4(c,0.,1.)).st;}"}x(Em,bm);ca(Em);
function Fm(a,b){this.g=a.getUniformLocation(b,"f");this.f=a.getUniformLocation(b,"e");this.i=a.getUniformLocation(b,"d");this.c=a.getUniformLocation(b,"g");this.b=a.getAttribLocation(b,"b");this.a=a.getAttribLocation(b,"c")};function Gm(a,b){vh.call(this,b);this.f=a;this.T=new fm([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]);this.i=this.qb=null;this.l=void 0;this.s=ch();this.U=ch();this.D=De();this.v=null}x(Gm,vh);
function Hm(a,b,c){var d=a.f.f;if(void 0===a.l||a.l!=c){b.postRenderFunctions.push(function(a,b,c){a.isContextLost()||(a.deleteFramebuffer(b),a.deleteTexture(c))}.bind(null,d,a.i,a.qb));b=km(d,c,c);var e=d.createFramebuffer();d.bindFramebuffer(36160,e);d.framebufferTexture2D(36160,36064,3553,b,0);a.qb=b;a.i=e;a.l=c}else d.bindFramebuffer(36160,a.i)}
Gm.prototype.vh=function(a,b,c){Im(this,"precompose",c,a);hm(c,34962,this.T);var d=c.b,e=Dm.$b(),f=Em.$b(),e=mm(c,e,f);this.v?f=this.v:this.v=f=new Fm(d,e);c.we(e)&&(d.enableVertexAttribArray(f.b),d.vertexAttribPointer(f.b,2,5126,!1,16,0),d.enableVertexAttribArray(f.a),d.vertexAttribPointer(f.a,2,5126,!1,16,8),d.uniform1i(f.c,0));d.uniformMatrix4fv(f.i,!1,Ee(this.D,this.s));d.uniformMatrix4fv(f.f,!1,Ee(this.D,this.U));d.uniform1f(f.g,b.opacity);d.bindTexture(3553,this.qb);d.drawArrays(5,0,4);Im(this,
"postcompose",c,a)};function Im(a,b,c,d){a=a.a;if(Ya(a,b)){var e=d.viewState;a.b(new qh(b,new Cm(c,e.center,e.resolution,e.rotation,d.size,d.extent,d.pixelRatio),d,null,c))}}Gm.prototype.zf=function(){this.i=this.qb=null;this.l=void 0};function Jm(a,b){Gm.call(this,a,b);this.j=this.o=this.c=null}x(Jm,Gm);function Km(a,b){var c=b.a();return om(a.f.f,c)}Jm.prototype.sa=function(a,b,c,d){var e=this.a;return e.ha().sa(a,b.viewState.resolution,b.viewState.rotation,b.skippedFeatureUids,function(a){return c.call(d,a,e)})};
Jm.prototype.Af=function(a,b){var c=this.f.f,d=a.pixelRatio,e=a.viewState,f=e.center,g=e.resolution,h=e.rotation,l=this.c,m=this.qb,n=this.a.ha(),p=a.viewHints,q=a.extent;void 0!==b.extent&&(q=nc(q,b.extent));p[0]||p[1]||ic(q)||(e=n.A(q,g,d,e.projection))&&xh(this,e)&&(l=e,m=Km(this,e),this.qb&&a.postRenderFunctions.push(function(a,b){a.isContextLost()||a.deleteTexture(b)}.bind(null,c,this.qb)));l&&(c=this.f.c.l,Lm(this,c.width,c.height,d,f,g,h,l.H()),this.j=null,d=this.s,dh(d),jh(d,1,-1),kh(d,0,
-1),this.c=l,this.qb=m,zh(a.attributions,l.l),Ah(a,n));return!0};function Lm(a,b,c,d,e,f,g,h){b*=f;c*=f;a=a.U;dh(a);jh(a,2*d/b,2*d/c);ih(a,-g);kh(a,h[0]-e[0],h[1]-e[1]);jh(a,(h[2]-h[0])/2,(h[3]-h[1])/2);kh(a,1,1)}Jm.prototype.le=function(a,b){return void 0!==this.sa(a,b,rc,this)};
Jm.prototype.Cc=function(a,b,c,d){if(this.c&&this.c.a())if(this.a.ha()instanceof yl){var e=hh(b.pixelToCoordinateTransform,a.slice());if(this.sa(e,b,rc,this))return c.call(d,this.a)}else{e=[this.c.a().width,this.c.a().height];if(!this.j){var f=b.size;b=ch();kh(b,-1,-1);jh(b,2/f[0],2/f[1]);kh(b,0,f[1]);jh(b,1,-1);var f=mh(this.U.slice()),g=ch();kh(g,0,e[1]);jh(g,1,-1);jh(g,e[0]/2,e[1]/2);kh(g,1,1);fh(g,f);fh(g,b);this.j=g}a=hh(this.j,a.slice());if(!(0>a[0]||a[0]>e[0]||0>a[1]||a[1]>e[1])&&(this.o||
(this.o=Ge(1,1)),this.o.clearRect(0,0,1,1),this.o.drawImage(this.c.a(),a[0],a[1],1,1,0,0,1,1),0<this.o.getImageData(0,0,1,1).data[3]))return c.call(d,this.a)}};function Mm(){this.b="precision mediump float;varying vec2 a;uniform sampler2D e;void main(void){gl_FragColor=texture2D(e,a);}"}x(Mm,am);ca(Mm);function Nm(){this.b="varying vec2 a;attribute vec2 b;attribute vec2 c;uniform vec4 d;void main(void){gl_Position=vec4(b*d.xy+d.zw,0.,1.);a=c;}"}x(Nm,bm);ca(Nm);function Om(a,b){this.g=a.getUniformLocation(b,"e");this.f=a.getUniformLocation(b,"d");this.b=a.getAttribLocation(b,"b");this.a=a.getAttribLocation(b,"c")};function Pm(a,b){Gm.call(this,a,b);this.S=Mm.$b();this.W=Nm.$b();this.c=null;this.C=new fm([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]);this.A=this.o=null;this.j=-1;this.P=[0,0]}x(Pm,Gm);k=Pm.prototype;k.ka=function(){im(this.f.c,this.C);Gm.prototype.ka.call(this)};k.Qd=function(a,b,c){var d=this.f;return function(e,f){return tf(a,b,e,f,function(a){var b=Re(d.a,a.jb());b&&(c[e]||(c[e]={}),c[e][a.ma.toString()]=a);return b})}};k.zf=function(){Gm.prototype.zf.call(this);this.c=null};
k.Af=function(a,b,c){var d=this.f,e=c.b,f=a.viewState,g=f.projection,h=this.a,l=h.ha(),m=l.fb(g),n=m.Lb(f.resolution),p=m.$(n),q=l.$d(n,a.pixelRatio,g),r=q[0]/$e(m.Ja(n),this.P)[0],v=p/r,y=l.Ud(g),w=f.center,G;p==f.resolution?(w=Ch(w,p,a.size),G=mc(w,p,f.rotation,a.size)):G=a.extent;p=kf(m,G,p);if(this.o&&Yd(this.o,p)&&this.j==l.g)v=this.A;else{var z=[p.ea-p.ca+1,p.ga-p.fa+1],D=Math.pow(2,Math.ceil(Math.log(Math.max(z[0]*q[0],z[1]*q[1]))/Math.LN2)),z=v*D,H=m.Ia(n),ba=H[0]+p.ca*q[0]*v,v=H[1]+p.fa*
q[1]*v,v=[ba,v,ba+z,v+z];Hm(this,a,D);e.viewport(0,0,D,D);e.clearColor(0,0,0,0);e.clear(16384);e.disable(3042);D=mm(c,this.S,this.W);c.we(D);this.c||(this.c=new Om(e,D));hm(c,34962,this.C);e.enableVertexAttribArray(this.c.b);e.vertexAttribPointer(this.c.b,2,5126,!1,16,0);e.enableVertexAttribArray(this.c.a);e.vertexAttribPointer(this.c.a,2,5126,!1,16,8);e.uniform1i(this.c.g,0);c={};c[n]={};var A=this.Qd(l,g,c),Fa=h.c(),D=!0,ba=Jb(),Ja=new Wd(0,0,0,0),M,ma,Ub;for(ma=p.ca;ma<=p.ea;++ma)for(Ub=p.fa;Ub<=
p.ga;++Ub){H=l.bc(n,ma,Ub,r,g);if(void 0!==b.extent&&(M=m.Ea(H.ma,ba),!oc(M,b.extent)))continue;M=H.V();M=2==M||4==M||3==M&&!Fa;!M&&H.a&&(H=H.a);M=H.V();if(2==M){if(Re(d.a,H.jb())){c[n][H.ma.toString()]=H;continue}}else if(4==M||3==M&&!Fa)continue;D=!1;M=hf(m,H.ma,A,Ja,ba);M||(H=jf(m,H.ma,Ja,ba))&&A(n+1,H)}b=Object.keys(c).map(Number);b.sort(fb);for(var A=new Float32Array(4),Kb,Fa=0,Ja=b.length;Fa<Ja;++Fa)for(Kb in ma=c[b[Fa]],ma)H=ma[Kb],M=m.Ea(H.ma,ba),A[0]=2*(M[2]-M[0])/z,A[1]=2*(M[3]-M[1])/z,
A[2]=2*(M[0]-v[0])/z-1,A[3]=2*(M[1]-v[1])/z-1,e.uniform4fv(this.c.f,A),Qm(d,H,q,y*r),e.drawArrays(5,0,4);D?(this.o=p,this.A=v,this.j=l.g):(this.A=this.o=null,this.j=-1,a.animate=!0)}Bh(a.usedTiles,l,n,p);var Hb=d.o;Dh(a,l,m,r,g,G,n,h.f(),function(a){var b;(b=2!=a.V()||Re(d.a,a.jb()))||(b=a.jb()in Hb.g);b||Hb.f([a,mf(m,a.ma),m.$(a.ma[0]),q,y*r])},this);yh(a,l);Ah(a,l);e=this.s;dh(e);kh(e,(w[0]-v[0])/(v[2]-v[0]),(w[1]-v[1])/(v[3]-v[1]));0!==f.rotation&&ih(e,f.rotation);jh(e,a.size[0]*f.resolution/(v[2]-
v[0]),a.size[1]*f.resolution/(v[3]-v[1]));kh(e,-.5,-.5);return!0};k.Cc=function(a,b,c,d){if(this.i){a=hh(this.s,[a[0]/b.size[0],(b.size[1]-a[1])/b.size[1]].slice());a=[a[0]*this.l,a[1]*this.l];b=this.f.c.b;b.bindFramebuffer(b.FRAMEBUFFER,this.i);var e=new Uint8Array(4);b.readPixels(a[0],a[1],1,1,b.RGBA,b.UNSIGNED_BYTE,e);if(0<e[3])return c.call(d,this.a)}};function Rm(a,b){Gm.call(this,a,b);this.j=!1;this.P=-1;this.S=NaN;this.A=Jb();this.o=this.c=this.C=null}x(Rm,Gm);k=Rm.prototype;k.vh=function(a,b,c){this.o=b;var d=a.viewState,e=this.c;e&&!e.Ya()&&e.Pa(c,d.center,d.resolution,d.rotation,a.size,a.pixelRatio,b.opacity,b.Qc?a.skippedFeatureUids:{})};k.ka=function(){var a=this.c;a&&(wm(a,this.f.c)(),this.c=null);Gm.prototype.ka.call(this)};
k.sa=function(a,b,c,d){if(this.c&&this.o){var e=b.viewState,f=this.a,g={};return this.c.sa(a,this.f.c,e.center,e.resolution,e.rotation,b.size,b.pixelRatio,this.o.opacity,{},function(a){var b=t(a).toString();if(!(b in g))return g[b]=!0,c.call(d,a,f)})}};k.le=function(a,b){if(this.c&&this.o){var c=b.viewState;return Bm(this.c,a,this.f.c,c.resolution,c.rotation,b.pixelRatio,this.o.opacity,b.skippedFeatureUids)}return!1};
k.Cc=function(a,b,c,d){a=hh(b.pixelToCoordinateTransform,a.slice());if(this.le(a,b))return c.call(d,this.a)};k.wh=function(){wh(this)};
k.Af=function(a,b,c){function d(a){var b,c=a.ec();c?b=c.call(a,m):(c=e.i)&&(b=c(a,m));if(b){if(b){c=!1;if(Array.isArray(b))for(var d=0,f=b.length;d<f;++d)c=lk(q,a,b[d],kk(m,n),this.wh,this)||c;else c=lk(q,a,b,kk(m,n),this.wh,this)||c;a=c}else a=!1;this.j=this.j||a}}var e=this.a;b=e.ha();zh(a.attributions,b.l);Ah(a,b);var f=a.viewHints[0],g=a.viewHints[1],h=e.P,l=e.T;if(!this.j&&!h&&f||!l&&g)return!0;var g=a.extent,h=a.viewState,f=h.projection,m=h.resolution,n=a.pixelRatio,h=e.g,p=e.a,l=yj(e);void 0===
l&&(l=jk);g=Mb(g,p*m);if(!this.j&&this.S==m&&this.P==h&&this.C==l&&Sb(this.A,g))return!0;this.c&&a.postRenderFunctions.push(wm(this.c,c));this.j=!1;var q=new vm(.5*m/n,g,e.a);b.Pc(g,m,f);if(l){var r=[];b.vb(g,function(a){r.push(a)},this);r.sort(l);r.forEach(d,this)}else b.vb(g,d,this);xm(q,c);this.S=m;this.P=h;this.C=l;this.A=g;this.c=q;return!0};function Sm(a,b){Jh.call(this,0,b);this.b=document.createElement("CANVAS");this.b.style.width="100%";this.b.style.height="100%";this.b.className="ol-unselectable";a.insertBefore(this.b,a.childNodes[0]||null);this.U=this.A=0;this.D=Ge();this.j=!0;this.f=Uf(this.b,{antialias:!0,depth:!1,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0});this.c=new gm(this.b,this.f);B(this.b,"webglcontextlost",this.Pm,this);B(this.b,"webglcontextrestored",this.Qm,this);this.a=new Qe;this.v=null;this.o=
new Oh(function(a){var b=a[1];a=a[2];var e=b[0]-this.v[0],b=b[1]-this.v[1];return 65536*Math.log(a)+Math.sqrt(e*e+b*b)/a}.bind(this),function(a){return a[0].jb()});this.C=function(){if(!this.o.Ya()){Sh(this.o);var a=Ph(this.o);Qm(this,a[0],a[3],a[4])}return!1}.bind(this);this.l=0;Tm(this)}x(Sm,Jh);
function Qm(a,b,c,d){var e=a.f,f=b.jb();if(Re(a.a,f))a=a.a.get(f),e.bindTexture(3553,a.qb),9729!=a.Wg&&(e.texParameteri(3553,10240,9729),a.Wg=9729),9729!=a.Yg&&(e.texParameteri(3553,10241,9729),a.Yg=9729);else{var g=e.createTexture();e.bindTexture(3553,g);if(0<d){var h=a.D.canvas,l=a.D;a.A!==c[0]||a.U!==c[1]?(h.width=c[0],h.height=c[1],a.A=c[0],a.U=c[1]):l.clearRect(0,0,c[0],c[1]);l.drawImage(b.$a(),d,d,c[0],c[1],0,0,c[0],c[1]);e.texImage2D(3553,0,6408,6408,5121,h)}else e.texImage2D(3553,0,6408,6408,
5121,b.$a());e.texParameteri(3553,10240,9729);e.texParameteri(3553,10241,9729);e.texParameteri(3553,10242,33071);e.texParameteri(3553,10243,33071);a.a.set(f,{qb:g,Wg:9729,Yg:9729})}}k=Sm.prototype;k.Xe=function(a){return a instanceof ej?new Jm(this,a):a instanceof F?new Pm(this,a):a instanceof I?new Rm(this,a):null};function Um(a,b,c){var d=a.i;if(Ya(d,b)){a=a.c;var e=c.viewState;d.b(new qh(b,new Cm(a,e.center,e.resolution,e.rotation,c.size,c.extent,c.pixelRatio),c,null,a))}}
k.ka=function(){var a=this.f;a.isContextLost()||this.a.forEach(function(b){b&&a.deleteTexture(b.qb)});Ta(this.c);Jh.prototype.ka.call(this)};k.Gj=function(a,b){for(var c=this.f,d;1024<this.a.wc()-this.l;){if(d=this.a.b.pc)c.deleteTexture(d.qb);else if(+this.a.b.Mb==b.index)break;else--this.l;this.a.pop()}};k.Y=function(){return"webgl"};k.Pm=function(a){a.preventDefault();this.a.clear();this.l=0;a=this.g;for(var b in a)a[b].zf()};k.Qm=function(){Tm(this);this.i.render()};
function Tm(a){a=a.f;a.activeTexture(33984);a.blendFuncSeparate(770,771,1,771);a.disable(2884);a.disable(2929);a.disable(3089);a.disable(2960)}
k.Ce=function(a){var b=this.c,c=this.f;if(c.isContextLost())return!1;if(!a)return this.j&&(this.b.style.display="none",this.j=!1),!1;this.v=a.focus;this.a.set((-a.index).toString(),null);++this.l;Um(this,"precompose",a);var d=[],e=a.layerStatesArray;nb(e);var f=a.viewState.resolution,g,h,l,m;g=0;for(h=e.length;g<h;++g)m=e[g],sh(m,f)&&"ready"==m.S&&(l=Mh(this,m.layer),l.Af(a,m,b)&&d.push(m));e=a.size[0]*a.pixelRatio;f=a.size[1]*a.pixelRatio;if(this.b.width!=e||this.b.height!=f)this.b.width=e,this.b.height=
f;c.bindFramebuffer(36160,null);c.clearColor(0,0,0,0);c.clear(16384);c.enable(3042);c.viewport(0,0,this.b.width,this.b.height);g=0;for(h=d.length;g<h;++g)m=d[g],l=Mh(this,m.layer),l.vh(a,m,b);this.j||(this.b.style.display="",this.j=!0);Kh(a);1024<this.a.wc()-this.l&&a.postRenderFunctions.push(this.Gj.bind(this));this.o.Ya()||(a.postRenderFunctions.push(this.C),a.animate=!0);Um(this,"postcompose",a);Nh(this,a);a.postRenderFunctions.push(Lh)};
k.sa=function(a,b,c,d,e,f){var g;if(this.f.isContextLost())return!1;var h=b.viewState,l=b.layerStatesArray,m;for(m=l.length-1;0<=m;--m){g=l[m];var n=g.layer;if(sh(g,h.resolution)&&e.call(f,n)&&(g=Mh(this,n).sa(a,b,c,d)))return g}};k.sh=function(a,b,c,d){var e=!1;if(this.f.isContextLost())return!1;var f=b.viewState,g=b.layerStatesArray,h;for(h=g.length-1;0<=h;--h){var l=g[h],m=l.layer;if(sh(l,f.resolution)&&c.call(d,m)&&(e=Mh(this,m).le(a,b)))return!0}return e};
k.rh=function(a,b,c,d,e){if(this.f.isContextLost())return!1;var f=b.viewState,g,h=b.layerStatesArray,l;for(l=h.length-1;0<=l;--l){g=h[l];var m=g.layer;if(sh(g,f.resolution)&&e.call(d,m)&&(g=Mh(this,m).Cc(a,b,c,d)))return g}};var Vm=["canvas","webgl","dom"];
function Q(a){bb.call(this);var b=Wm(a);this.rb=void 0!==a.loadTilesWhileAnimating?a.loadTilesWhileAnimating:!1;this.Hc=void 0!==a.loadTilesWhileInteracting?a.loadTilesWhileInteracting:!1;this.Oe=void 0!==a.pixelRatio?a.pixelRatio:$f;this.Ne=b.logos;this.W=function(){this.i=void 0;this.Uo.call(this,Date.now())}.bind(this);this.Sa=ch();this.Pe=ch();this.cb=0;this.f=null;this.za=Jb();this.C=this.P=null;this.a=document.createElement("DIV");this.a.className="ol-viewport"+(eg?" ol-touch":"");this.a.style.position=
"relative";this.a.style.overflow="hidden";this.a.style.width="100%";this.a.style.height="100%";this.a.style.msTouchAction="none";this.a.style.touchAction="none";this.A=document.createElement("DIV");this.A.className="ol-overlaycontainer";this.a.appendChild(this.A);this.v=document.createElement("DIV");this.v.className="ol-overlaycontainer-stopevent";a=["click","dblclick","mousedown","touchstart","mspointerdown",Yg,"mousewheel","wheel"];for(var c=0,d=a.length;c<d;++c)B(this.v,a[c],Va);this.a.appendChild(this.v);
this.na=new Qg(this);for(var e in ah)B(this.na,ah[e],this.Pg,this);this.ia=b.keyboardEventTarget;this.s=null;B(this.a,"wheel",this.Oc,this);B(this.a,"mousewheel",this.Oc,this);this.o=b.controls;this.l=b.interactions;this.j=b.overlays;this.Cf={};this.D=new b.Wo(this.a,this);this.T=null;this.S=[];this.oa=[];this.Ba=new Th(this.Bk.bind(this),this.hl.bind(this));this.Ee={};B(this,db("layergroup"),this.Ok,this);B(this,db("view"),this.il,this);B(this,db("size"),this.el,this);B(this,db("target"),this.gl,
this);this.G(b.values);this.o.forEach(function(a){a.setMap(this)},this);B(this.o,"add",function(a){a.element.setMap(this)},this);B(this.o,"remove",function(a){a.element.setMap(null)},this);this.l.forEach(function(a){a.setMap(this)},this);B(this.l,"add",function(a){a.element.setMap(this)},this);B(this.l,"remove",function(a){a.element.setMap(null)},this);this.j.forEach(this.mg,this);B(this.j,"add",function(a){this.mg(a.element)},this);B(this.j,"remove",function(a){var b=a.element.Xa();void 0!==b&&delete this.Cf[b.toString()];
a.element.setMap(null)},this)}x(Q,bb);k=Q.prototype;k.uj=function(a){this.o.push(a)};k.vj=function(a){this.l.push(a)};k.kg=function(a){this.xc().Tc().push(a)};k.lg=function(a){this.j.push(a)};k.mg=function(a){var b=a.Xa();void 0!==b&&(this.Cf[b.toString()]=a);a.setMap(this)};k.Wa=function(a){this.render();Array.prototype.push.apply(this.S,arguments)};
k.ka=function(){Ta(this.na);Ta(this.D);Qa(this.a,"wheel",this.Oc,this);Qa(this.a,"mousewheel",this.Oc,this);void 0!==this.c&&(pa.removeEventListener("resize",this.c,!1),this.c=void 0);this.i&&(pa.cancelAnimationFrame(this.i),this.i=void 0);this.fh(null);bb.prototype.ka.call(this)};k.kd=function(a,b,c,d,e){if(this.f)return a=this.Ma(a),this.D.sa(a,this.f,b,void 0!==c?c:null,void 0!==d?d:rc,void 0!==e?e:null)};
k.Tl=function(a,b,c,d,e){if(this.f)return this.D.rh(a,this.f,b,void 0!==c?c:null,void 0!==d?d:rc,void 0!==e?e:null)};k.kl=function(a,b,c){if(!this.f)return!1;a=this.Ma(a);return this.D.sh(a,this.f,void 0!==b?b:rc,void 0!==c?c:null)};k.Wj=function(a){return this.Ma(this.Td(a))};k.Td=function(a){var b=this.a.getBoundingClientRect();a=a.changedTouches?a.changedTouches[0]:a;return[a.clientX-b.left,a.clientY-b.top]};k.tf=function(){return this.get("target")};
k.yc=function(){var a=this.tf();return void 0!==a?"string"===typeof a?document.getElementById(a):a:null};k.Ma=function(a){var b=this.f;return b?hh(b.pixelToCoordinateTransform,a.slice()):null};k.Uj=function(){return this.o};k.nk=function(){return this.j};k.mk=function(a){a=this.Cf[a.toString()];return void 0!==a?a:null};k.ak=function(){return this.l};k.xc=function(){return this.get("layergroup")};k.eh=function(){return this.xc().Tc()};
k.Ga=function(a){var b=this.f;return b?hh(b.coordinateToPixelTransform,a.slice(0,2)):null};k.Za=function(){return this.get("size")};k.aa=function(){return this.get("view")};k.Dk=function(){return this.a};k.Bk=function(a,b,c,d){var e=this.f;if(!(e&&b in e.wantedTiles&&e.wantedTiles[b][a.ma.toString()]))return Infinity;a=c[0]-e.focus[0];c=c[1]-e.focus[1];return 65536*Math.log(d)+Math.sqrt(a*a+c*c)/d};k.Oc=function(a,b){var c=new Og(b||a.type,this,a);this.Pg(c)};
k.Pg=function(a){if(this.f){this.T=a.coordinate;a.frameState=this.f;var b=this.l.a,c;if(!1!==this.b(a))for(c=b.length-1;0<=c;c--){var d=b[c];if(d.f()&&!d.handleEvent(a))break}}};k.cl=function(){var a=this.f,b=this.Ba;if(!b.Ya()){var c=16,d=c;if(a){var e=a.viewHints;e[0]&&(c=this.rb?8:0,d=2);e[1]&&(c=this.Hc?8:0,d=2)}b.i<c&&(Sh(b),Uh(b,c,d))}b=this.oa;c=0;for(d=b.length;c<d;++c)b[c](this,a);b.length=0};k.el=function(){this.render()};
k.gl=function(){var a;this.tf()&&(a=this.yc());if(this.s){for(var b=0,c=this.s.length;b<c;++b)Ka(this.s[b]);this.s=null}a?(a.appendChild(this.a),a=this.ia?this.ia:a,this.s=[B(a,"keydown",this.Oc,this),B(a,"keypress",this.Oc,this)],this.c||(this.c=this.Xc.bind(this),pa.addEventListener("resize",this.c,!1))):(Me(this.a),void 0!==this.c&&(pa.removeEventListener("resize",this.c,!1),this.c=void 0));this.Xc()};k.hl=function(){this.render()};k.jl=function(){this.render()};
k.il=function(){this.P&&(Ka(this.P),this.P=null);var a=this.aa();a&&(this.P=B(a,"propertychange",this.jl,this));this.render()};k.Pk=function(){this.render()};k.Qk=function(){this.render()};k.Ok=function(){this.C&&(this.C.forEach(Ka),this.C=null);var a=this.xc();a&&(this.C=[B(a,"propertychange",this.Qk,this),B(a,"change",this.Pk,this)]);this.render()};k.Vo=function(){this.i&&pa.cancelAnimationFrame(this.i);this.W()};k.render=function(){void 0===this.i&&(this.i=pa.requestAnimationFrame(this.W))};
k.Oo=function(a){return this.o.remove(a)};k.Po=function(a){return this.l.remove(a)};k.Ro=function(a){return this.xc().Tc().remove(a)};k.So=function(a){return this.j.remove(a)};
k.Uo=function(a){var b,c,d,e=this.Za(),f=this.aa(),g=Jb(),h=null;if(void 0!==e&&0<e[0]&&0<e[1]&&f&&Kd(f)){var h=Gd(f,this.f?this.f.viewHints:void 0),l=this.xc().hf(),m={};b=0;for(c=l.length;b<c;++b)m[t(l[b].layer)]=l[b];d=f.V();h={animate:!1,attributions:{},coordinateToPixelTransform:this.Sa,extent:g,focus:this.T?this.T:d.center,index:this.cb++,layerStates:m,layerStatesArray:l,logos:Ca({},this.Ne),pixelRatio:this.Oe,pixelToCoordinateTransform:this.Pe,postRenderFunctions:[],size:e,skippedFeatureUids:this.Ee,
tileQueue:this.Ba,time:a,usedTiles:{},viewState:d,viewHints:h,wantedTiles:{}}}if(h){a=this.S;b=e=0;for(c=a.length;b<c;++b)f=a[b],f(this,h)&&(a[e++]=f);a.length=e;h.extent=mc(d.center,d.resolution,d.rotation,h.size,g)}this.f=h;this.D.Ce(h);h&&(h.animate&&this.render(),Array.prototype.push.apply(this.oa,h.postRenderFunctions),0!==this.S.length||h.viewHints[0]||h.viewHints[1]||$b(h.extent,this.za)||(this.b(new Oe("moveend",this,h)),Ob(h.extent,this.za)));this.b(new Oe("postrender",this,h));Mf(this.cl,
this)};k.ji=function(a){this.set("layergroup",a)};k.Wf=function(a){this.set("size",a)};k.fh=function(a){this.set("target",a)};k.kp=function(a){this.set("view",a)};k.ti=function(a){a=t(a).toString();this.Ee[a]=!0;this.render()};
k.Xc=function(){var a=this.yc();if(a){var b=pa.getComputedStyle(a);this.Wf([a.offsetWidth-parseFloat(b.borderLeftWidth)-parseFloat(b.paddingLeft)-parseFloat(b.paddingRight)-parseFloat(b.borderRightWidth),a.offsetHeight-parseFloat(b.borderTopWidth)-parseFloat(b.paddingTop)-parseFloat(b.paddingBottom)-parseFloat(b.borderBottomWidth)])}else this.Wf(void 0)};k.wi=function(a){a=t(a).toString();delete this.Ee[a];this.render()};
function Wm(a){var b=null;void 0!==a.keyboardEventTarget&&(b="string"===typeof a.keyboardEventTarget?document.getElementById(a.keyboardEventTarget):a.keyboardEventTarget);var c={},d={};if(void 0===a.logo||"boolean"===typeof a.logo&&a.logo)d["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAHGAAABxgEXwfpGAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAhNQTFRF////AP//AICAgP//AFVVQECA////K1VVSbbbYL/fJ05idsTYJFtbbcjbJllmZszWWMTOIFhoHlNiZszTa9DdUcHNHlNlV8XRIVdiasrUHlZjIVZjaMnVH1RlIFRkH1RkH1ZlasvYasvXVsPQH1VkacnVa8vWIVZjIFRjVMPQa8rXIVVkXsXRsNveIFVkIFZlIVVj3eDeh6GmbMvXH1ZkIFRka8rWbMvXIFVkIFVjIFVkbMvWH1VjbMvWIFVlbcvWIFVla8vVIFVkbMvWbMvVH1VkbMvWIFVlbcvWIFVkbcvVbMvWjNPbIFVkU8LPwMzNIFVkbczWIFVkbsvWbMvXIFVkRnB8bcvW2+TkW8XRIFVkIlZlJVloJlpoKlxrLl9tMmJwOWd0Omh1RXF8TneCT3iDUHiDU8LPVMLPVcLPVcPQVsPPVsPQV8PQWMTQWsTQW8TQXMXSXsXRX4SNX8bSYMfTYcfTYsfTY8jUZcfSZsnUaIqTacrVasrVa8jTa8rWbI2VbMvWbcvWdJObdcvUdszUd8vVeJaee87Yfc3WgJyjhqGnitDYjaarldPZnrK2oNbborW5o9bbo9fbpLa6q9ndrL3ArtndscDDutzfu8fJwN7gwt7gxc/QyuHhy+HizeHi0NfX0+Pj19zb1+Tj2uXk29/e3uLg3+Lh3+bl4uXj4ufl4+fl5Ofl5ufl5ujm5+jmySDnBAAAAFp0Uk5TAAECAgMEBAYHCA0NDg4UGRogIiMmKSssLzU7PkJJT1JTVFliY2hrdHZ3foSFhYeJjY2QkpugqbG1tre5w8zQ09XY3uXn6+zx8vT09vf4+Pj5+fr6/P39/f3+gz7SsAAAAVVJREFUOMtjYKA7EBDnwCPLrObS1BRiLoJLnte6CQy8FLHLCzs2QUG4FjZ5GbcmBDDjxJBXDWxCBrb8aM4zbkIDzpLYnAcE9VXlJSWlZRU13koIeW57mGx5XjoMZEUqwxWYQaQbSzLSkYGfKFSe0QMsX5WbjgY0YS4MBplemI4BdGBW+DQ11eZiymfqQuXZIjqwyadPNoSZ4L+0FVM6e+oGI6g8a9iKNT3o8kVzNkzRg5lgl7p4wyRUL9Yt2jAxVh6mQCogae6GmflI8p0r13VFWTHBQ0rWPW7ahgWVcPm+9cuLoyy4kCJDzCm6d8PSFoh0zvQNC5OjDJhQopPPJqph1doJBUD5tnkbZiUEqaCnB3bTqLTFG1bPn71kw4b+GFdpLElKIzRxxgYgWNYc5SCENVHKeUaltHdXx0dZ8uBI1hJ2UUDgq82CM2MwKeibqAvSO7MCABq0wXEPiqWEAAAAAElFTkSuQmCC"]=
"http://openlayers.org/";else{var e=a.logo;"string"===typeof e?d[e]="":e instanceof HTMLElement?d[t(e).toString()]=e:fa(e)&&(d[e.src]=e.href)}e=a.layers instanceof Vi?a.layers:new Vi({layers:a.layers});c.layergroup=e;c.target=a.target;c.view=void 0!==a.view?a.view:new Fd;var e=Jh,f;void 0!==a.renderer?Array.isArray(a.renderer)?f=a.renderer:"string"===typeof a.renderer&&(f=[a.renderer]):f=Vm;var g,h;g=0;for(h=f.length;g<h;++g){var l=f[g];if("canvas"==l){if(bg){e=Ql;break}}else if("dom"==l){e=Yl;break}else if("webgl"==
l&&Vf){e=Sm;break}}var m;void 0!==a.controls?m=Array.isArray(a.controls)?new be(a.controls.slice()):a.controls:m=Df();var n;void 0!==a.interactions?n=Array.isArray(a.interactions)?new be(a.interactions.slice()):a.interactions:n=Ui();a=void 0!==a.overlays?Array.isArray(a.overlays)?new be(a.overlays.slice()):a.overlays:new be;return{controls:m,interactions:n,keyboardEventTarget:b,logos:d,overlays:a,Wo:e,values:c}}dj();function Xm(a){bb.call(this);this.j=a.id;this.o=void 0!==a.insertFirst?a.insertFirst:!0;this.s=void 0!==a.stopEvent?a.stopEvent:!0;this.f=document.createElement("DIV");this.f.className="ol-overlay-container";this.f.style.position="absolute";this.autoPan=void 0!==a.autoPan?a.autoPan:!1;this.i=void 0!==a.autoPanAnimation?a.autoPanAnimation:{};this.l=void 0!==a.autoPanMargin?a.autoPanMargin:20;this.a={Md:"",fe:"",De:"",Fe:"",visible:!0};this.c=null;B(this,db("element"),this.Jk,this);B(this,db("map"),
this.Vk,this);B(this,db("offset"),this.Zk,this);B(this,db("position"),this.al,this);B(this,db("positioning"),this.bl,this);void 0!==a.element&&this.fi(a.element);this.li(void 0!==a.offset?a.offset:[0,0]);this.oi(void 0!==a.positioning?a.positioning:"top-left");void 0!==a.position&&this.uf(a.position)}x(Xm,bb);k=Xm.prototype;k.Sd=function(){return this.get("element")};k.Xa=function(){return this.j};k.he=function(){return this.get("map")};k.Kg=function(){return this.get("offset")};k.gh=function(){return this.get("position")};
k.Lg=function(){return this.get("positioning")};k.Jk=function(){Ne(this.f);var a=this.Sd();a&&this.f.appendChild(a)};k.Vk=function(){this.c&&(Me(this.f),Ka(this.c),this.c=null);var a=this.he();a&&(this.c=B(a,"postrender",this.render,this),Ym(this),a=this.s?a.v:a.A,this.o?a.insertBefore(this.f,a.childNodes[0]||null):a.appendChild(this.f))};k.render=function(){Ym(this)};k.Zk=function(){Ym(this)};
k.al=function(){Ym(this);if(void 0!==this.get("position")&&this.autoPan){var a=this.he();if(void 0!==a&&a.yc()){var b=Zm(a.yc(),a.Za()),c=this.Sd(),d=c.offsetWidth,e=c.currentStyle||pa.getComputedStyle(c),d=d+(parseInt(e.marginLeft,10)+parseInt(e.marginRight,10)),e=c.offsetHeight,f=c.currentStyle||pa.getComputedStyle(c),e=e+(parseInt(f.marginTop,10)+parseInt(f.marginBottom,10)),g=Zm(c,[d,e]),c=this.l;Sb(b,g)||(d=g[0]-b[0],e=b[2]-g[2],f=g[1]-b[1],g=b[3]-g[3],b=[0,0],0>d?b[0]=d-c:0>e&&(b[0]=Math.abs(e)+
c),0>f?b[1]=f-c:0>g&&(b[1]=Math.abs(g)+c),0===b[0]&&0===b[1])||(c=a.aa().ab(),d=a.Ga(c),b=[d[0]+b[0],d[1]+b[1]],this.i&&(this.i.source=c,a.Wa(Td(this.i))),a.aa().nb(a.Ma(b)))}}};k.bl=function(){Ym(this)};k.fi=function(a){this.set("element",a)};k.setMap=function(a){this.set("map",a)};k.li=function(a){this.set("offset",a)};k.uf=function(a){this.set("position",a)};function Zm(a,b){var c=a.getBoundingClientRect(),d=c.left+pa.pageXOffset,c=c.top+pa.pageYOffset;return[d,c,d+b[0],c+b[1]]}
k.oi=function(a){this.set("positioning",a)};function $m(a,b){a.a.visible!==b&&(a.f.style.display=b?"":"none",a.a.visible=b)}
function Ym(a){var b=a.he(),c=a.gh();if(void 0!==b&&b.f&&void 0!==c){var c=b.Ga(c),d=b.Za(),b=a.f.style,e=a.Kg(),f=a.Lg(),g=e[0],e=e[1];if("bottom-right"==f||"center-right"==f||"top-right"==f)""!==a.a.fe&&(a.a.fe=b.left=""),g=Math.round(d[0]-c[0]-g)+"px",a.a.De!=g&&(a.a.De=b.right=g);else{""!==a.a.De&&(a.a.De=b.right="");if("bottom-center"==f||"center-center"==f||"top-center"==f)g-=a.f.offsetWidth/2;g=Math.round(c[0]+g)+"px";a.a.fe!=g&&(a.a.fe=b.left=g)}if("bottom-left"==f||"bottom-center"==f||"bottom-right"==
f)""!==a.a.Fe&&(a.a.Fe=b.top=""),c=Math.round(d[1]-c[1]-e)+"px",a.a.Md!=c&&(a.a.Md=b.bottom=c);else{""!==a.a.Md&&(a.a.Md=b.bottom="");if("center-left"==f||"center-center"==f||"center-right"==f)e-=a.f.offsetHeight/2;c=Math.round(c[1]+e)+"px";a.a.Fe!=c&&(a.a.Fe=b.top=c)}$m(a,!0)}else $m(a,!1)};function an(a){a=a?a:{};this.l=void 0!==a.collapsed?a.collapsed:!0;this.o=void 0!==a.collapsible?a.collapsible:!0;this.o||(this.l=!1);var b=void 0!==a.className?a.className:"ol-overviewmap",c=void 0!==a.tipLabel?a.tipLabel:"Overview map",d=void 0!==a.collapseLabel?a.collapseLabel:"\u00ab";"string"===typeof d?(this.j=document.createElement("span"),this.j.textContent=d):this.j=d;d=void 0!==a.label?a.label:"\u00bb";"string"===typeof d?(this.v=document.createElement("span"),this.v.textContent=d):this.v=
d;var e=this.o&&!this.l?this.j:this.v,d=document.createElement("button");d.setAttribute("type","button");d.title=c;d.appendChild(e);B(d,"click",this.gm,this);c=document.createElement("DIV");c.className="ol-overviewmap-map";var f=this.f=new Q({controls:new be,interactions:new be,target:c,view:a.view});a.layers&&a.layers.forEach(function(a){f.kg(a)},this);e=document.createElement("DIV");e.className="ol-overviewmap-box";e.style.boxSizing="border-box";this.A=new Xm({position:[0,0],positioning:"bottom-left",
element:e});this.f.lg(this.A);e=document.createElement("div");e.className=b+" ol-unselectable ol-control"+(this.l&&this.o?" ol-collapsed":"")+(this.o?"":" ol-uncollapsible");e.appendChild(c);e.appendChild(d);Pe.call(this,{element:e,render:a.render?a.render:bn,target:a.target})}x(an,Pe);k=an.prototype;
k.setMap=function(a){var b=this.a;a!==b&&(b&&(b=b.aa())&&Qa(b,db("rotation"),this.de,this),Pe.prototype.setMap.call(this,a),a&&(this.s.push(B(a,"propertychange",this.Wk,this)),0===this.f.eh().dc()&&this.f.ji(a.xc()),a=a.aa()))&&(B(a,db("rotation"),this.de,this),Kd(a)&&(this.f.Xc(),cn(this)))};k.Wk=function(a){"view"===a.key&&((a=a.oldValue)&&Qa(a,db("rotation"),this.de,this),a=this.a.aa(),B(a,db("rotation"),this.de,this))};k.de=function(){this.f.aa().ie(this.a.aa().La())};
function bn(){var a=this.a,b=this.f;if(a.f&&b.f){var c=a.Za(),a=a.aa().Kc(c),d=b.Za(),c=b.aa().Kc(d),e=b.Ga(fc(a)),f=b.Ga(dc(a)),b=Math.abs(e[0]-f[0]),e=Math.abs(e[1]-f[1]),f=d[0],d=d[1];b<.1*f||e<.1*d||b>.75*f||e>.75*d?cn(this):Sb(c,a)||(a=this.f,c=this.a.aa(),a.aa().nb(c.ab()))}dn(this)}function cn(a){var b=a.a;a=a.f;var c=b.Za(),b=b.aa().Kc(c),c=a.Za();a=a.aa();pc(b,1/(.1*Math.pow(2,Math.log(7.5)/Math.LN2/2)));a.cf(b,c)}
function dn(a){var b=a.a,c=a.f;if(b.f&&c.f){var d=b.Za(),e=b.aa(),f=c.aa();c.Za();var c=e.La(),b=a.A,g=a.A.Sd(),e=e.Kc(d),d=f.$(),f=cc(e),e=ec(e),h;if(a=a.a.aa().ab())h=[f[0]-a[0],f[1]-a[1]],Db(h,c),yb(h,a);b.uf(h);g&&(g.style.width=Math.abs((f[0]-e[0])/d)+"px",g.style.height=Math.abs((e[1]-f[1])/d)+"px")}}k.gm=function(a){a.preventDefault();en(this)};
function en(a){a.element.classList.toggle("ol-collapsed");a.l?Le(a.j,a.v):Le(a.v,a.j);a.l=!a.l;var b=a.f;a.l||b.f||(b.Xc(),cn(a),Pa(b,"postrender",function(){dn(this)},a))}k.fm=function(){return this.o};k.im=function(a){this.o!==a&&(this.o=a,this.element.classList.toggle("ol-uncollapsible"),!a&&this.l&&en(this))};k.hm=function(a){this.o&&this.l!==a&&en(this)};k.em=function(){return this.l};k.pk=function(){return this.f};function fn(a){a=a?a:{};var b=void 0!==a.className?a.className:"ol-scale-line";this.o=document.createElement("DIV");this.o.className=b+"-inner";this.f=document.createElement("DIV");this.f.className=b+" ol-unselectable";this.f.appendChild(this.o);this.v=null;this.j=void 0!==a.minWidth?a.minWidth:64;this.l=!1;this.D=void 0;this.A="";Pe.call(this,{element:this.f,render:a.render?a.render:gn,target:a.target});B(this,db("units"),this.S,this);this.C(a.units||"metric")}x(fn,Pe);var hn=[1,2,5];
fn.prototype.xb=function(){return this.get("units")};function gn(a){(a=a.frameState)?this.v=a.viewState:this.v=null;jn(this)}fn.prototype.S=function(){jn(this)};fn.prototype.C=function(a){this.set("units",a)};
function jn(a){var b=a.v;if(b){var c=b.projection,d=c.ac(),b=c.getPointResolution(b.resolution,b.center)*d,d=a.j*b,c="",e=a.xb();"degrees"==e?(c=vc.degrees,b/=c,d<c/60?(c="\u2033",b*=3600):d<c?(c="\u2032",b*=60):c="\u00b0"):"imperial"==e?.9144>d?(c="in",b/=.0254):1609.344>d?(c="ft",b/=.3048):(c="mi",b/=1609.344):"nautical"==e?(b/=1852,c="nm"):"metric"==e?1>d?(c="mm",b*=1E3):1E3>d?c="m":(c="km",b/=1E3):"us"==e&&(.9144>d?(c="in",b*=39.37):1609.344>d?(c="ft",b/=.30480061):(c="mi",b/=1609.3472));for(var e=
3*Math.floor(Math.log(a.j*b)/Math.log(10)),f;;){f=hn[(e%3+3)%3]*Math.pow(10,Math.floor(e/3));d=Math.round(f/b);if(isNaN(d)){a.f.style.display="none";a.l=!1;return}if(d>=a.j)break;++e}b=f+" "+c;a.A!=b&&(a.o.innerHTML=b,a.A=b);a.D!=d&&(a.o.style.width=d+"px",a.D=d);a.l||(a.f.style.display="",a.l=!0)}else a.l&&(a.f.style.display="none",a.l=!1)};function kn(a){a=a?a:{};this.f=void 0;this.l=ln;this.v=[];this.D=this.j=0;this.T=null;this.ia=!1;this.W=void 0!==a.duration?a.duration:200;var b=void 0!==a.className?a.className:"ol-zoomslider",c=document.createElement("button");c.setAttribute("type","button");c.className=b+"-thumb ol-unselectable";var d=document.createElement("div");d.className=b+" ol-unselectable ol-control";d.appendChild(c);this.o=new Ig(d);B(this.o,sg,this.Ik,this);B(this.o,tg,this.Ng,this);B(this.o,ug,this.Og,this);B(d,"click",
this.Hk,this);B(c,"click",Va);Pe.call(this,{element:d,render:a.render?a.render:mn})}x(kn,Pe);kn.prototype.ka=function(){Ta(this.o);Pe.prototype.ka.call(this)};var ln=0;k=kn.prototype;k.setMap=function(a){Pe.prototype.setMap.call(this,a);a&&a.render()};
function mn(a){if(a.frameState){if(!this.ia){var b=this.element,c=b.offsetWidth,d=b.offsetHeight,e=b.firstElementChild,f=pa.getComputedStyle(e),b=e.offsetWidth+parseFloat(f.marginRight)+parseFloat(f.marginLeft),e=e.offsetHeight+parseFloat(f.marginTop)+parseFloat(f.marginBottom);this.T=[b,e];c>d?(this.l=1,this.D=c-b):(this.l=ln,this.j=d-e);this.ia=!0}a=a.frameState.viewState.resolution;a!==this.f&&(this.f=a,nn(this,a))}}
k.Hk=function(a){var b=this.a,c=b.aa(),d=c.$();b.Wa(Vd({resolution:d,duration:this.W,easing:Nd}));a=on(this,sa(1===this.l?(a.offsetX-this.T[0]/2)/this.D:(a.offsetY-this.T[1]/2)/this.j,0,1));c.Vb(c.constrainResolution(a))};
k.Ik=function(a){if(!this.A&&a.b.target===this.element.firstElementChild&&(Ld(this.a.aa(),1),this.C=a.clientX,this.S=a.clientY,this.A=!0,0===this.v.length)){a=this.Ng;var b=this.Og;this.v.push(B(document,"mousemove",a,this),B(document,"touchmove",a,this),B(document,tg,a,this),B(document,"mouseup",b,this),B(document,"touchend",b,this),B(document,ug,b,this))}};
k.Ng=function(a){if(this.A){var b=this.element.firstElementChild;this.f=on(this,sa(1===this.l?(a.clientX-this.C+parseInt(b.style.left,10))/this.D:(a.clientY-this.S+parseInt(b.style.top,10))/this.j,0,1));this.a.aa().Vb(this.f);nn(this,this.f);this.C=a.clientX;this.S=a.clientY}};k.Og=function(){if(this.A){var a=this.a,b=a.aa();Ld(b,-1);a.Wa(Vd({resolution:this.f,duration:this.W,easing:Nd}));a=b.constrainResolution(this.f);b.Vb(a);this.A=!1;this.S=this.C=void 0;this.v.forEach(Ka);this.v.length=0}};
function nn(a,b){var c;c=1-Jd(a.a.aa())(b);var d=a.element.firstElementChild;1==a.l?d.style.left=a.D*c+"px":d.style.top=a.j*c+"px"}function on(a,b){return Id(a.a.aa())(1-b)};function pn(a){a=a?a:{};this.f=a.extent?a.extent:null;var b=void 0!==a.className?a.className:"ol-zoom-extent",c=void 0!==a.label?a.label:"E",d=void 0!==a.tipLabel?a.tipLabel:"Fit to extent",e=document.createElement("button");e.setAttribute("type","button");e.title=d;e.appendChild("string"===typeof c?document.createTextNode(c):c);B(e,"click",this.l,this);c=document.createElement("div");c.className=b+" ol-unselectable ol-control";c.appendChild(e);Pe.call(this,{element:c,target:a.target})}x(pn,Pe);
pn.prototype.l=function(a){a.preventDefault();var b=this.a;a=b.aa();var c=this.f?this.f:a.l.H(),b=b.Za();a.cf(c,b)};function qn(a){bb.call(this);a=a?a:{};this.a=null;B(this,db("tracking"),this.Il,this);this.rf(void 0!==a.tracking?a.tracking:!1)}x(qn,bb);k=qn.prototype;k.ka=function(){this.rf(!1);bb.prototype.ka.call(this)};
k.co=function(a){if(null!==a.alpha){var b=wa(a.alpha);this.set("alpha",b);"boolean"===typeof a.absolute&&a.absolute?this.set("heading",b):"number"===typeof a.webkitCompassHeading&&-1!=a.webkitCompassAccuracy&&this.set("heading",wa(a.webkitCompassHeading))}null!==a.beta&&this.set("beta",wa(a.beta));null!==a.gamma&&this.set("gamma",wa(a.gamma));this.u()};k.Oj=function(){return this.get("alpha")};k.Rj=function(){return this.get("beta")};k.Yj=function(){return this.get("gamma")};k.Hl=function(){return this.get("heading")};
k.$g=function(){return this.get("tracking")};k.Il=function(){if(cg){var a=this.$g();a&&!this.a?this.a=B(pa,"deviceorientation",this.co,this):a||null===this.a||(Ka(this.a),this.a=null)}};k.rf=function(a){this.set("tracking",a)};function rn(){this.defaultDataProjection=null}function sn(a,b,c){var d;c&&(d={dataProjection:c.dataProjection?c.dataProjection:a.Oa(b),featureProjection:c.featureProjection});return tn(a,d)}function tn(a,b){var c;b&&(c={featureProjection:b.featureProjection,dataProjection:b.dataProjection?b.dataProjection:a.defaultDataProjection,rightHanded:b.rightHanded},b.decimals&&(c.decimals=b.decimals));return c}
function un(a,b,c){var d=c?zc(c.featureProjection):null,e=c?zc(c.dataProjection):null,f;d&&e&&!Pc(d,e)?a instanceof Uc?f=(b?a.clone():a).kb(b?d:e,b?e:d):f=Tc(b?a.slice():a,b?d:e,b?e:d):f=a;if(b&&c&&c.decimals){var g=Math.pow(10,c.decimals);a=function(a){for(var b=0,c=a.length;b<c;++b)a[b]=Math.round(a[b]*g)/g;return a};Array.isArray(f)?a(f):f.rc(a)}return f};function vn(){this.defaultDataProjection=null}x(vn,rn);function wn(a){return fa(a)?a:"string"===typeof a?(a=JSON.parse(a))?a:null:null}k=vn.prototype;k.Y=function(){return"json"};k.Sb=function(a,b){return this.Uc(wn(a),sn(this,a,b))};k.Fa=function(a,b){return this.Jf(wn(a),sn(this,a,b))};k.Vc=function(a,b){return this.Rh(wn(a),sn(this,a,b))};k.Oa=function(a){return this.Yh(wn(a))};k.Dd=function(a,b){return JSON.stringify(this.Yc(a,b))};k.Yb=function(a,b){return JSON.stringify(this.Ie(a,b))};
k.Zc=function(a,b){return JSON.stringify(this.Ke(a,b))};function xn(a,b,c,d,e,f){var g=NaN,h=NaN,l=(c-b)/d;if(0!==l)if(1==l)g=a[b],h=a[b+1];else if(2==l)g=(1-e)*a[b]+e*a[b+d],h=(1-e)*a[b+1]+e*a[b+d+1];else{var h=a[b],l=a[b+1],m=0,g=[0],n;for(n=b+d;n<c;n+=d){var p=a[n],q=a[n+1],m=m+Math.sqrt((p-h)*(p-h)+(q-l)*(q-l));g.push(m);h=p;l=q}c=e*m;l=0;m=g.length;for(n=!1;l<m;)e=l+(m-l>>1),h=+fb(g[e],c),0>h?l=e+1:(m=e,n=!h);e=n?l:~l;0>e?(c=(c-g[-e-2])/(g[-e-1]-g[-e-2]),b+=(-e-2)*d,g=ya(a[b],a[b+d],c),h=ya(a[b+1],a[b+d+1],c)):(g=a[b+e*d],h=a[b+e*d+1])}return f?(f[0]=
g,f[1]=h,f):[g,h]}function yn(a,b,c,d,e,f){if(c==b)return null;if(e<a[b+d-1])return f?(c=a.slice(b,b+d),c[d-1]=e,c):null;if(a[c-1]<e)return f?(c=a.slice(c-d,c),c[d-1]=e,c):null;if(e==a[b+d-1])return a.slice(b,b+d);b/=d;for(c/=d;b<c;)f=b+c>>1,e<a[(f+1)*d-1]?c=f:b=f+1;c=a[b*d-1];if(e==c)return a.slice((b-1)*d,(b-1)*d+d);f=(e-c)/(a[(b+1)*d-1]-c);c=[];var g;for(g=0;g<d-1;++g)c.push(ya(a[(b-1)*d+g],a[b*d+g],f));c.push(e);return c}
function zn(a,b,c,d,e,f){var g=0;if(f)return yn(a,g,b[b.length-1],c,d,e);if(d<a[c-1])return e?(a=a.slice(0,c),a[c-1]=d,a):null;if(a[a.length-1]<d)return e?(a=a.slice(a.length-c),a[c-1]=d,a):null;e=0;for(f=b.length;e<f;++e){var h=b[e];if(g!=h){if(d<a[g+c-1])break;if(d<=a[h-1])return yn(a,g,h,c,d,!1);g=h}}return null};function R(a,b){Wc.call(this);this.i=null;this.D=this.C=this.j=-1;this.ra(a,b)}x(R,Wc);k=R.prototype;k.wj=function(a){this.B?jb(this.B,a):this.B=a.slice();this.u()};k.clone=function(){var a=new R(null);a.ba(this.f,this.B.slice());return a};k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;this.D!=this.g&&(this.C=Math.sqrt(cd(this.B,0,this.B.length,this.a,0)),this.D=this.g);return ed(this.B,0,this.B.length,this.a,this.C,!1,a,b,c,d)};
k.Lj=function(a,b){return td(this.B,0,this.B.length,this.a,a,b)};k.lm=function(a,b){return"XYM"!=this.f&&"XYZM"!=this.f?null:yn(this.B,0,this.B.length,this.a,a,void 0!==b?b:!1)};k.Z=function(){return jd(this.B,0,this.B.length,this.a)};k.Bg=function(a,b){return xn(this.B,0,this.B.length,this.a,a,b)};k.mm=function(){var a=this.B,b=this.a,c=a[0],d=a[1],e=0,f;for(f=0+b;f<this.B.length;f+=b)var g=a[f],h=a[f+1],e=e+Math.sqrt((g-c)*(g-c)+(h-d)*(h-d)),c=g,d=h;return e};
function Gj(a){a.j!=a.g&&(a.i=a.Bg(.5,a.i),a.j=a.g);return a.i}k.Nc=function(a){var b=[];b.length=ld(this.B,0,this.B.length,this.a,a,b,0);a=new R(null);a.ba("XY",b);return a};k.Y=function(){return"LineString"};k.Ka=function(a){return ud(this.B,0,this.B.length,this.a,a)};k.ra=function(a,b){a?(Zc(this,b,a,1),this.B||(this.B=[]),this.B.length=hd(this.B,0,a,this.a),this.u()):this.ba("XY",null)};k.ba=function(a,b){Yc(this,a,b);this.u()};function S(a,b){Wc.call(this);this.i=[];this.j=this.D=-1;this.ra(a,b)}x(S,Wc);k=S.prototype;k.xj=function(a){this.B?jb(this.B,a.la().slice()):this.B=a.la().slice();this.i.push(this.B.length);this.u()};k.clone=function(){var a=new S(null);a.ba(this.f,this.B.slice(),this.i.slice());return a};k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;this.j!=this.g&&(this.D=Math.sqrt(dd(this.B,0,this.i,this.a,0)),this.j=this.g);return fd(this.B,0,this.i,this.a,this.D,!1,a,b,c,d)};
k.om=function(a,b,c){return"XYM"!=this.f&&"XYZM"!=this.f||0===this.B.length?null:zn(this.B,this.i,this.a,a,void 0!==b?b:!1,void 0!==c?c:!1)};k.Z=function(){return kd(this.B,0,this.i,this.a)};k.Eb=function(){return this.i};k.fk=function(a){if(0>a||this.i.length<=a)return null;var b=new R(null);b.ba(this.f,this.B.slice(0===a?0:this.i[a-1],this.i[a]));return b};
k.md=function(){var a=this.B,b=this.i,c=this.f,d=[],e=0,f,g;f=0;for(g=b.length;f<g;++f){var h=b[f],l=new R(null);l.ba(c,a.slice(e,h));d.push(l);e=h}return d};function Hj(a){var b=[],c=a.B,d=0,e=a.i;a=a.a;var f,g;f=0;for(g=e.length;f<g;++f){var h=e[f],d=xn(c,d,h,a,.5);jb(b,d);d=h}return b}k.Nc=function(a){var b=[],c=[],d=this.B,e=this.i,f=this.a,g=0,h=0,l,m;l=0;for(m=e.length;l<m;++l){var n=e[l],h=ld(d,g,n,f,a,b,h);c.push(h);g=n}b.length=h;a=new S(null);a.ba("XY",b,c);return a};k.Y=function(){return"MultiLineString"};
k.Ka=function(a){a:{var b=this.B,c=this.i,d=this.a,e=0,f,g;f=0;for(g=c.length;f<g;++f){if(ud(b,e,c[f],d,a)){a=!0;break a}e=c[f]}a=!1}return a};k.ra=function(a,b){if(a){Zc(this,b,a,2);this.B||(this.B=[]);var c=id(this.B,0,a,this.a,this.i);this.B.length=0===c.length?0:c[c.length-1];this.u()}else this.ba("XY",null,this.i)};k.ba=function(a,b,c){Yc(this,a,b);this.i=c;this.u()};
function An(a,b){var c=a.f,d=[],e=[],f,g;f=0;for(g=b.length;f<g;++f){var h=b[f];0===f&&(c=h.f);jb(d,h.la());e.push(d.length)}a.ba(c,d,e)};function T(a,b){Wc.call(this);this.ra(a,b)}x(T,Wc);k=T.prototype;k.zj=function(a){this.B?jb(this.B,a.la()):this.B=a.la().slice();this.u()};k.clone=function(){var a=new T(null);a.ba(this.f,this.B.slice());return a};k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;var e=this.B,f=this.a,g,h,l;g=0;for(h=e.length;g<h;g+=f)if(l=va(a,b,e[g],e[g+1]),l<d){d=l;for(l=0;l<f;++l)c[l]=e[g+l];c.length=f}return d};k.Z=function(){return jd(this.B,0,this.B.length,this.a)};
k.rk=function(a){var b=this.B?this.B.length/this.a:0;if(0>a||b<=a)return null;b=new C(null);b.ba(this.f,this.B.slice(a*this.a,(a+1)*this.a));return b};k.je=function(){var a=this.B,b=this.f,c=this.a,d=[],e,f;e=0;for(f=a.length;e<f;e+=c){var g=new C(null);g.ba(b,a.slice(e,e+c));d.push(g)}return d};k.Y=function(){return"MultiPoint"};k.Ka=function(a){var b=this.B,c=this.a,d,e,f,g;d=0;for(e=b.length;d<e;d+=c)if(f=b[d],g=b[d+1],Rb(a,f,g))return!0;return!1};
k.ra=function(a,b){a?(Zc(this,b,a,1),this.B||(this.B=[]),this.B.length=hd(this.B,0,a,this.a),this.u()):this.ba("XY",null)};k.ba=function(a,b){Yc(this,a,b);this.u()};function U(a,b){Wc.call(this);this.i=[];this.D=-1;this.C=null;this.T=this.S=this.P=-1;this.j=null;this.ra(a,b)}x(U,Wc);k=U.prototype;k.Aj=function(a){if(this.B){var b=this.B.length;jb(this.B,a.la());a=a.Eb().slice();var c,d;c=0;for(d=a.length;c<d;++c)a[c]+=b}else this.B=a.la().slice(),a=a.Eb().slice(),this.i.push();this.i.push(a);this.u()};k.clone=function(){for(var a=new U(null),b=this.i.length,c=Array(b),d=0;d<b;++d)c[d]=this.i[d].slice();Bn(a,this.f,this.B.slice(),c);return a};
k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;if(this.S!=this.g){var e=this.i,f=0,g=0,h,l;h=0;for(l=e.length;h<l;++h)var m=e[h],g=dd(this.B,f,m,this.a,g),f=m[m.length-1];this.P=Math.sqrt(g);this.S=this.g}e=Ij(this);f=this.i;g=this.a;h=this.P;l=0;var m=[NaN,NaN],n,p;n=0;for(p=f.length;n<p;++n){var q=f[n];d=fd(e,l,q,g,h,!0,a,b,c,d,m);l=q[q.length-1]}return d};
k.Bc=function(a,b){var c;a:{c=Ij(this);var d=this.i,e=0;if(0!==d.length){var f,g;f=0;for(g=d.length;f<g;++f){var h=d[f];if(rd(c,e,h,this.a,a,b)){c=!0;break a}e=h[h.length-1]}}c=!1}return c};k.pm=function(){var a=Ij(this),b=this.i,c=0,d=0,e,f;e=0;for(f=b.length;e<f;++e)var g=b[e],d=d+ad(a,c,g,this.a),c=g[g.length-1];return d};
k.Z=function(a){var b;void 0!==a?(b=Ij(this).slice(),zd(b,this.i,this.a,a)):b=this.B;a=b;b=this.i;var c=this.a,d=0,e=[],f=0,g,h;g=0;for(h=b.length;g<h;++g){var l=b[g];e[f++]=kd(a,d,l,c,e[f]);d=l[l.length-1]}e.length=f;return e};
function Jj(a){if(a.D!=a.g){var b=a.B,c=a.i,d=a.a,e=0,f=[],g,h;g=0;for(h=c.length;g<h;++g){var l=c[g],e=Yb(b,e,l[0],d);f.push((e[0]+e[2])/2,(e[1]+e[3])/2);e=l[l.length-1]}b=Ij(a);c=a.i;d=a.a;g=0;h=[];l=0;for(e=c.length;l<e;++l){var m=c[l];h=sd(b,g,m,d,f,2*l,h);g=m[m.length-1]}a.C=h;a.D=a.g}return a.C}k.ck=function(){var a=new T(null);a.ba("XY",Jj(this).slice());return a};
function Ij(a){if(a.T!=a.g){var b=a.B,c;a:{c=a.i;var d,e;d=0;for(e=c.length;d<e;++d)if(!xd(b,c[d],a.a,void 0)){c=!1;break a}c=!0}c?a.j=b:(a.j=b.slice(),a.j.length=zd(a.j,a.i,a.a));a.T=a.g}return a.j}k.Nc=function(a){var b=[],c=[],d=this.B,e=this.i,f=this.a;a=Math.sqrt(a);var g=0,h=0,l,m;l=0;for(m=e.length;l<m;++l){var n=e[l],p=[],h=md(d,g,n,f,a,b,h,p);c.push(p);g=n[n.length-1]}b.length=h;d=new U(null);Bn(d,"XY",b,c);return d};
k.tk=function(a){if(0>a||this.i.length<=a)return null;var b;0===a?b=0:(b=this.i[a-1],b=b[b.length-1]);a=this.i[a].slice();var c=a[a.length-1];if(0!==b){var d,e;d=0;for(e=a.length;d<e;++d)a[d]-=b}d=new E(null);d.ba(this.f,this.B.slice(b,c),a);return d};k.Wd=function(){var a=this.f,b=this.B,c=this.i,d=[],e=0,f,g,h,l;f=0;for(g=c.length;f<g;++f){var m=c[f].slice(),n=m[m.length-1];if(0!==e)for(h=0,l=m.length;h<l;++h)m[h]-=e;h=new E(null);h.ba(a,b.slice(e,n),m);d.push(h);e=n}return d};k.Y=function(){return"MultiPolygon"};
k.Ka=function(a){a:{var b=Ij(this),c=this.i,d=this.a,e=0,f,g;f=0;for(g=c.length;f<g;++f){var h=c[f];if(vd(b,e,h,d,a)){a=!0;break a}e=h[h.length-1]}a=!1}return a};k.ra=function(a,b){if(a){Zc(this,b,a,3);this.B||(this.B=[]);var c=this.B,d=this.a,e=this.i,f=0,e=e?e:[],g=0,h,l;h=0;for(l=a.length;h<l;++h)f=id(c,f,a[h],d,e[g]),e[g++]=f,f=f[f.length-1];e.length=g;0===e.length?this.B.length=0:(c=e[e.length-1],this.B.length=0===c.length?0:c[c.length-1]);this.u()}else Bn(this,"XY",null,this.i)};
function Bn(a,b,c,d){Yc(a,b,c);a.i=d;a.u()}function Cn(a,b){var c=a.f,d=[],e=[],f,g,h;f=0;for(g=b.length;f<g;++f){var l=b[f];0===f&&(c=l.f);var m=d.length;h=l.Eb();var n,p;n=0;for(p=h.length;n<p;++n)h[n]+=m;jb(d,l.la());e.push(h)}Bn(a,c,d,e)};function Dn(a){a=a?a:{};this.defaultDataProjection=null;this.b=a.geometryName}x(Dn,vn);
function En(a,b){if(!a)return null;var c;if("number"===typeof a.x&&"number"===typeof a.y)c="Point";else if(a.points)c="MultiPoint";else if(a.paths)c=1===a.paths.length?"LineString":"MultiLineString";else if(a.rings){var d=a.rings,e=Fn(a),f=[];c=[];var g,h;g=0;for(h=d.length;g<h;++g){var l=ib(d[g]);wd(l,0,l.length,e.length)?f.push([d[g]]):c.push(d[g])}for(;c.length;){d=c.shift();e=!1;for(g=f.length-1;0<=g;g--)if(Sb((new nd(f[g][0])).H(),(new nd(d)).H())){f[g].push(d);e=!0;break}e||f.push([d.reverse()])}a=
Ca({},a);1===f.length?(c="Polygon",a.rings=f[0]):(c="MultiPolygon",a.rings=f)}return un((0,Gn[c])(a),!1,b)}function Fn(a){var b="XY";!0===a.hasZ&&!0===a.hasM?b="XYZM":!0===a.hasZ?b="XYZ":!0===a.hasM&&(b="XYM");return b}function Hn(a){a=a.f;return{hasZ:"XYZ"===a||"XYZM"===a,hasM:"XYM"===a||"XYZM"===a}}
var Gn={Point:function(a){return void 0!==a.m&&void 0!==a.z?new C([a.x,a.y,a.z,a.m],"XYZM"):void 0!==a.z?new C([a.x,a.y,a.z],"XYZ"):void 0!==a.m?new C([a.x,a.y,a.m],"XYM"):new C([a.x,a.y])},LineString:function(a){return new R(a.paths[0],Fn(a))},Polygon:function(a){return new E(a.rings,Fn(a))},MultiPoint:function(a){return new T(a.points,Fn(a))},MultiLineString:function(a){return new S(a.paths,Fn(a))},MultiPolygon:function(a){return new U(a.rings,Fn(a))}},In={Point:function(a){var b=a.Z();a=a.f;if("XYZ"===
a)return{x:b[0],y:b[1],z:b[2]};if("XYM"===a)return{x:b[0],y:b[1],m:b[2]};if("XYZM"===a)return{x:b[0],y:b[1],z:b[2],m:b[3]};if("XY"===a)return{x:b[0],y:b[1]}},LineString:function(a){var b=Hn(a);return{hasZ:b.hasZ,hasM:b.hasM,paths:[a.Z()]}},Polygon:function(a){var b=Hn(a);return{hasZ:b.hasZ,hasM:b.hasM,rings:a.Z(!1)}},MultiPoint:function(a){var b=Hn(a);return{hasZ:b.hasZ,hasM:b.hasM,points:a.Z()}},MultiLineString:function(a){var b=Hn(a);return{hasZ:b.hasZ,hasM:b.hasM,paths:a.Z()}},MultiPolygon:function(a){var b=
Hn(a);a=a.Z(!1);for(var c=[],d=0;d<a.length;d++)for(var e=a[d].length-1;0<=e;e--)c.push(a[d][e]);return{hasZ:b.hasZ,hasM:b.hasM,rings:c}}};k=Dn.prototype;k.Uc=function(a,b){var c=En(a.geometry,b),d=new Ik;this.b&&d.Ec(this.b);d.Ua(c);b&&b.mf&&a.attributes[b.mf]&&d.mc(a.attributes[b.mf]);a.attributes&&d.G(a.attributes);return d};
k.Jf=function(a,b){var c=b?b:{};if(a.features){var d=[],e=a.features,f,g;c.mf=a.objectIdFieldName;f=0;for(g=e.length;f<g;++f)d.push(this.Uc(e[f],c));return d}return[this.Uc(a,c)]};k.Rh=function(a,b){return En(a,b)};k.Yh=function(a){return a.spatialReference&&a.spatialReference.wkid?zc("EPSG:"+a.spatialReference.wkid):null};function Jn(a,b){return(0,In[a.Y()])(un(a,!0,b),b)}k.Ke=function(a,b){return Jn(a,tn(this,b))};
k.Yc=function(a,b){b=tn(this,b);var c={},d=a.X();d&&(c.geometry=Jn(d,b));d=a.O();delete d[a.a];c.attributes=Ga(d)?{}:d;b&&b.featureProjection&&(c.spatialReference={wkid:zc(b.featureProjection).eb.split(":").pop()});return c};k.Ie=function(a,b){b=tn(this,b);var c=[],d,e;d=0;for(e=a.length;d<e;++d)c.push(this.Yc(a[d],b));return{features:c}};function Kn(a){Uc.call(this);this.c=a?a:null;Ln(this)}x(Kn,Uc);function Mn(a){var b=[],c,d;c=0;for(d=a.length;c<d;++c)b.push(a[c].clone());return b}function Nn(a){var b,c;if(a.c)for(b=0,c=a.c.length;b<c;++b)Qa(a.c[b],"change",a.u,a)}function Ln(a){var b,c;if(a.c)for(b=0,c=a.c.length;b<c;++b)B(a.c[b],"change",a.u,a)}k=Kn.prototype;k.clone=function(){var a=new Kn(null);a.hi(this.c);return a};
k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;var e=this.c,f,g;f=0;for(g=e.length;f<g;++f)d=e[f].tb(a,b,c,d);return d};k.Bc=function(a,b){var c=this.c,d,e;d=0;for(e=c.length;d<e;++d)if(c[d].Bc(a,b))return!0;return!1};k.Od=function(a){Vb(Infinity,Infinity,-Infinity,-Infinity,a);for(var b=this.c,c=0,d=b.length;c<d;++c)ac(a,b[c].H());return a};k.ff=function(){return Mn(this.c)};
k.od=function(a){this.s!=this.g&&(Da(this.l),this.o=0,this.s=this.g);if(0>a||0!==this.o&&a<this.o)return this;var b=a.toString();if(this.l.hasOwnProperty(b))return this.l[b];var c=[],d=this.c,e=!1,f,g;f=0;for(g=d.length;f<g;++f){var h=d[f],l=h.od(a);c.push(l);l!==h&&(e=!0)}if(e)return a=new Kn(null),Nn(a),a.c=c,Ln(a),a.u(),this.l[b]=a;this.o=a;return this};k.Y=function(){return"GeometryCollection"};k.Ka=function(a){var b=this.c,c,d;c=0;for(d=b.length;c<d;++c)if(b[c].Ka(a))return!0;return!1};
k.Ya=function(){return 0===this.c.length};k.rotate=function(a,b){for(var c=this.c,d=0,e=c.length;d<e;++d)c[d].rotate(a,b);this.u()};k.hi=function(a){a=Mn(a);Nn(this);this.c=a;Ln(this);this.u()};k.rc=function(a){var b=this.c,c,d;c=0;for(d=b.length;c<d;++c)b[c].rc(a);this.u()};k.Sc=function(a,b){var c=this.c,d,e;d=0;for(e=c.length;d<e;++d)c[d].Sc(a,b);this.u()};k.ka=function(){Nn(this);Uc.prototype.ka.call(this)};function On(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=zc(a.defaultDataProjection?a.defaultDataProjection:"EPSG:4326");this.b=a.geometryName}x(On,vn);function Pn(a,b){return a?un((0,Qn[a.type])(a),!1,b):null}function Rn(a,b){return(0,Sn[a.Y()])(un(a,!0,b),b)}
var Qn={Point:function(a){return new C(a.coordinates)},LineString:function(a){return new R(a.coordinates)},Polygon:function(a){return new E(a.coordinates)},MultiPoint:function(a){return new T(a.coordinates)},MultiLineString:function(a){return new S(a.coordinates)},MultiPolygon:function(a){return new U(a.coordinates)},GeometryCollection:function(a,b){var c=a.geometries.map(function(a){return Pn(a,b)});return new Kn(c)}},Sn={Point:function(a){return{type:"Point",coordinates:a.Z()}},LineString:function(a){return{type:"LineString",
coordinates:a.Z()}},Polygon:function(a,b){var c;b&&(c=b.rightHanded);return{type:"Polygon",coordinates:a.Z(c)}},MultiPoint:function(a){return{type:"MultiPoint",coordinates:a.Z()}},MultiLineString:function(a){return{type:"MultiLineString",coordinates:a.Z()}},MultiPolygon:function(a,b){var c;b&&(c=b.rightHanded);return{type:"MultiPolygon",coordinates:a.Z(c)}},GeometryCollection:function(a,b){return{type:"GeometryCollection",geometries:a.c.map(function(a){var d=Ca({},b);delete d.featureProjection;return Rn(a,
d)})}},Circle:function(){return{type:"GeometryCollection",geometries:[]}}};k=On.prototype;k.Uc=function(a,b){var c=Pn(a.geometry,b),d=new Ik;this.b&&d.Ec(this.b);d.Ua(c);void 0!==a.id&&d.mc(a.id);a.properties&&d.G(a.properties);return d};k.Jf=function(a,b){if("Feature"==a.type)return[this.Uc(a,b)];if("FeatureCollection"==a.type){var c=[],d=a.features,e,f;e=0;for(f=d.length;e<f;++e)c.push(this.Uc(d[e],b));return c}return[]};k.Rh=function(a,b){return Pn(a,b)};
k.Yh=function(a){return(a=a.crs)?"name"==a.type?zc(a.properties.name):"EPSG"==a.type?zc("EPSG:"+a.properties.code):null:this.defaultDataProjection};k.Yc=function(a,b){b=tn(this,b);var c={type:"Feature"},d=a.Xa();void 0!==d&&(c.id=d);(d=a.X())?c.geometry=Rn(d,b):c.geometry=null;d=a.O();delete d[a.a];Ga(d)?c.properties=null:c.properties=d;return c};k.Ie=function(a,b){b=tn(this,b);var c=[],d,e;d=0;for(e=a.length;d<e;++d)c.push(this.Yc(a[d],b));return{type:"FeatureCollection",features:c}};
k.Ke=function(a,b){return Rn(a,tn(this,b))};function Tn(){this.f=new XMLSerializer;this.defaultDataProjection=null}x(Tn,rn);k=Tn.prototype;k.Y=function(){return"xml"};k.Sb=function(a,b){if(Pk(a))return Un(this,a,b);if(Qk(a))return this.Ph(a,b);if("string"===typeof a){var c=Rk(a);return Un(this,c,b)}return null};function Un(a,b,c){a=Vn(a,b,c);return 0<a.length?a[0]:null}k.Fa=function(a,b){if(Pk(a))return Vn(this,a,b);if(Qk(a))return this.lc(a,b);if("string"===typeof a){var c=Rk(a);return Vn(this,c,b)}return[]};
function Vn(a,b,c){var d=[];for(b=b.firstChild;b;b=b.nextSibling)b.nodeType==Node.ELEMENT_NODE&&jb(d,a.lc(b,c));return d}k.Vc=function(a,b){if(Pk(a))return this.v(a,b);if(Qk(a)){var c=this.ye(a,[sn(this,a,b?b:{})]);return c?c:null}return"string"===typeof a?(c=Rk(a),this.v(c,b)):null};k.Oa=function(a){return Pk(a)?this.Pf(a):Qk(a)?this.Be(a):"string"===typeof a?(a=Rk(a),this.Pf(a)):null};k.Pf=function(){return this.defaultDataProjection};k.Be=function(){return this.defaultDataProjection};
k.Dd=function(a,b){var c=this.A(a,b);return this.f.serializeToString(c)};k.Yb=function(a,b){var c=this.a(a,b);return this.f.serializeToString(c)};k.Zc=function(a,b){var c=this.s(a,b);return this.f.serializeToString(c)};function Wn(a){a=a?a:{};this.featureType=a.featureType;this.featureNS=a.featureNS;this.srsName=a.srsName;this.schemaLocation="";this.b={};this.b["http://www.opengis.net/gml"]={featureMember:Uk(Wn.prototype.vd),featureMembers:Uk(Wn.prototype.vd)};Tn.call(this)}x(Wn,Tn);var Xn=/^[\s\xa0]*$/;k=Wn.prototype;
k.vd=function(a,b){var c=a.localName,d=null;if("FeatureCollection"==c)"http://www.opengis.net/wfs"===a.namespaceURI?d=O([],this.b,a,b,this):d=O(null,this.b,a,b,this);else if("featureMembers"==c||"featureMember"==c){var e=b[0],f=e.featureType,g=e.featureNS,h,l;if(!f&&a.childNodes){f=[];g={};h=0;for(l=a.childNodes.length;h<l;++h){var m=a.childNodes[h];if(1===m.nodeType){var n=m.nodeName.split(":").pop();if(-1===f.indexOf(n)){var p="",q=0,m=m.namespaceURI,r;for(r in g){if(g[r]===m){p=r;break}++q}p||
(p="p"+q,g[p]=m);f.push(p+":"+n)}}}"featureMember"!=c&&(e.featureType=f,e.featureNS=g)}"string"===typeof g&&(h=g,g={},g.p0=h);var e={},f=Array.isArray(f)?f:[f],v;for(v in g){n={};h=0;for(l=f.length;h<l;++h)(-1===f[h].indexOf(":")?"p0":f[h].split(":")[0])===v&&(n[f[h].split(":").pop()]="featureMembers"==c?Tk(this.If,this):Uk(this.If,this));e[g[v]]=n}"featureMember"==c?d=O(void 0,e,a,b):d=O([],e,a,b)}null===d&&(d=[]);return d};
k.ye=function(a,b){var c=b[0];c.srsName=a.firstElementChild.getAttribute("srsName");var d=O(null,this.bg,a,b,this);if(d)return un(d,!1,c)};
k.If=function(a,b){var c,d;(d=a.getAttribute("fid"))||(d=a.getAttributeNS("http://www.opengis.net/gml","id")||"");var e={},f;for(c=a.firstElementChild;c;c=c.nextElementSibling){var g=c.localName;if(0===c.childNodes.length||1===c.childNodes.length&&(3===c.firstChild.nodeType||4===c.firstChild.nodeType)){var h=Nk(c,!1);Xn.test(h)&&(h=void 0);e[g]=h}else"boundedBy"!==g&&(f=g),e[g]=this.ye(c,b)}c=new Ik(e);f&&c.Ec(f);d&&c.mc(d);return c};
k.Xh=function(a,b){var c=this.xe(a,b);if(c){var d=new C(null);d.ba("XYZ",c);return d}};k.Vh=function(a,b){var c=O([],this.Ui,a,b,this);if(c)return new T(c)};k.Uh=function(a,b){var c=O([],this.Ti,a,b,this);if(c){var d=new S(null);An(d,c);return d}};k.Wh=function(a,b){var c=O([],this.Vi,a,b,this);if(c){var d=new U(null);Cn(d,c);return d}};k.Mh=function(a,b){al(this.Yi,a,b,this)};k.Ug=function(a,b){al(this.Ri,a,b,this)};k.Nh=function(a,b){al(this.Zi,a,b,this)};
k.ze=function(a,b){var c=this.xe(a,b);if(c){var d=new R(null);d.ba("XYZ",c);return d}};k.zo=function(a,b){var c=O(null,this.Fd,a,b,this);if(c)return c};k.Th=function(a,b){var c=this.xe(a,b);if(c){var d=new nd(null);od(d,"XYZ",c);return d}};k.Ae=function(a,b){var c=O([null],this.Me,a,b,this);if(c&&c[0]){var d=new E(null),e=c[0],f=[e.length],g,h;g=1;for(h=c.length;g<h;++g)jb(e,c[g]),f.push(e.length);d.ba("XYZ",e,f);return d}};k.xe=function(a,b){return O(null,this.Fd,a,b,this)};
k.Ui={"http://www.opengis.net/gml":{pointMember:Tk(Wn.prototype.Mh),pointMembers:Tk(Wn.prototype.Mh)}};k.Ti={"http://www.opengis.net/gml":{lineStringMember:Tk(Wn.prototype.Ug),lineStringMembers:Tk(Wn.prototype.Ug)}};k.Vi={"http://www.opengis.net/gml":{polygonMember:Tk(Wn.prototype.Nh),polygonMembers:Tk(Wn.prototype.Nh)}};k.Yi={"http://www.opengis.net/gml":{Point:Tk(Wn.prototype.xe)}};k.Ri={"http://www.opengis.net/gml":{LineString:Tk(Wn.prototype.ze)}};k.Zi={"http://www.opengis.net/gml":{Polygon:Tk(Wn.prototype.Ae)}};
k.Gd={"http://www.opengis.net/gml":{LinearRing:Uk(Wn.prototype.zo)}};k.lc=function(a,b){var c={featureType:this.featureType,featureNS:this.featureNS};b&&Ca(c,sn(this,a,b));return this.vd(a,[c])||[]};k.Be=function(a){return zc(this.srsName?this.srsName:a.firstElementChild.getAttribute("srsName"))};function Yn(a){a=Nk(a,!1);return Zn(a)}function Zn(a){if(a=/^\s*(true|1)|(false|0)\s*$/.exec(a))return void 0!==a[1]||!1}
function $n(a){a=Nk(a,!1);if(a=/^\s*(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?))\s*$/.exec(a)){var b=Date.UTC(parseInt(a[1],10),parseInt(a[2],10)-1,parseInt(a[3],10),parseInt(a[4],10),parseInt(a[5],10),parseInt(a[6],10))/1E3;if("Z"!=a[7]){var c="-"==a[8]?-1:1,b=b+60*c*parseInt(a[9],10);void 0!==a[10]&&(b+=3600*c*parseInt(a[10],10))}return b}}function ao(a){a=Nk(a,!1);return bo(a)}
function bo(a){if(a=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(a))return parseFloat(a[1])}function co(a){a=Nk(a,!1);return eo(a)}function eo(a){if(a=/^\s*(\d+)\s*$/.exec(a))return parseInt(a[1],10)}function V(a){return Nk(a,!1).trim()}function fo(a,b){go(a,b?"1":"0")}function ho(a,b){a.appendChild(Lk.createTextNode(b.toPrecision()))}function io(a,b){a.appendChild(Lk.createTextNode(b.toString()))}function go(a,b){a.appendChild(Lk.createTextNode(b))};function jo(a){a=a?a:{};Wn.call(this,a);this.b["http://www.opengis.net/gml"].featureMember=Tk(Wn.prototype.vd);this.schemaLocation=a.schemaLocation?a.schemaLocation:"http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd"}x(jo,Wn);k=jo.prototype;
k.Qh=function(a,b){var c=Nk(a,!1).replace(/^\s*|\s*$/g,""),d=b[0].srsName,e=a.parentNode.getAttribute("srsDimension"),f="enu";d&&(d=zc(d))&&(f=d.b);c=c.split(/[\s,]+/);d=2;a.getAttribute("srsDimension")?d=eo(a.getAttribute("srsDimension")):a.getAttribute("dimension")?d=eo(a.getAttribute("dimension")):e&&(d=eo(e));for(var g,h,l=[],m=0,n=c.length;m<n;m+=d)e=parseFloat(c[m]),g=parseFloat(c[m+1]),h=3===d?parseFloat(c[m+2]):0,"en"===f.substr(0,2)?l.push(e,g,h):l.push(g,e,h);return l};
k.wo=function(a,b){var c=O([null],this.Ni,a,b,this);return Vb(c[1][0],c[1][1],c[1][3],c[1][4])};k.ml=function(a,b){var c=O(void 0,this.Gd,a,b,this);c&&b[b.length-1].push(c)};k.eo=function(a,b){var c=O(void 0,this.Gd,a,b,this);c&&(b[b.length-1][0]=c)};k.Fd={"http://www.opengis.net/gml":{coordinates:Uk(jo.prototype.Qh)}};k.Me={"http://www.opengis.net/gml":{innerBoundaryIs:jo.prototype.ml,outerBoundaryIs:jo.prototype.eo}};k.Ni={"http://www.opengis.net/gml":{coordinates:Tk(jo.prototype.Qh)}};
k.bg={"http://www.opengis.net/gml":{Point:Uk(Wn.prototype.Xh),MultiPoint:Uk(Wn.prototype.Vh),LineString:Uk(Wn.prototype.ze),MultiLineString:Uk(Wn.prototype.Uh),LinearRing:Uk(Wn.prototype.Th),Polygon:Uk(Wn.prototype.Ae),MultiPolygon:Uk(Wn.prototype.Wh),Box:Uk(jo.prototype.wo)}};function ko(a){a=a?a:{};Wn.call(this,a);this.j=void 0!==a.surface?a.surface:!1;this.i=void 0!==a.curve?a.curve:!1;this.l=void 0!==a.multiCurve?a.multiCurve:!0;this.o=void 0!==a.multiSurface?a.multiSurface:!0;this.schemaLocation=a.schemaLocation?a.schemaLocation:"http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd"}x(ko,Wn);k=ko.prototype;k.Do=function(a,b){var c=O([],this.Si,a,b,this);if(c){var d=new S(null);An(d,c);return d}};
k.Eo=function(a,b){var c=O([],this.Wi,a,b,this);if(c){var d=new U(null);Cn(d,c);return d}};k.vg=function(a,b){al(this.Oi,a,b,this)};k.vi=function(a,b){al(this.cj,a,b,this)};k.Ho=function(a,b){return O([null],this.Xi,a,b,this)};k.Jo=function(a,b){return O([null],this.bj,a,b,this)};k.Io=function(a,b){return O([null],this.Me,a,b,this)};k.Co=function(a,b){return O([null],this.Fd,a,b,this)};k.ol=function(a,b){var c=O(void 0,this.Gd,a,b,this);c&&b[b.length-1].push(c)};
k.Hj=function(a,b){var c=O(void 0,this.Gd,a,b,this);c&&(b[b.length-1][0]=c)};k.Zh=function(a,b){var c=O([null],this.dj,a,b,this);if(c&&c[0]){var d=new E(null),e=c[0],f=[e.length],g,h;g=1;for(h=c.length;g<h;++g)jb(e,c[g]),f.push(e.length);d.ba("XYZ",e,f);return d}};k.Oh=function(a,b){var c=O([null],this.Pi,a,b,this);if(c){var d=new R(null);d.ba("XYZ",c);return d}};k.yo=function(a,b){var c=O([null],this.Qi,a,b,this);return Vb(c[1][0],c[1][1],c[2][0],c[2][1])};
k.Ao=function(a,b){for(var c=Nk(a,!1),d=/^\s*([+\-]?\d*\.?\d+(?:[eE][+\-]?\d+)?)\s*/,e=[],f;f=d.exec(c);)e.push(parseFloat(f[1])),c=c.substr(f[0].length);if(""===c){c=b[0].srsName;d="enu";c&&(d=zc(c).b);if("neu"===d)for(c=0,d=e.length;c<d;c+=3)f=e[c],e[c]=e[c+1],e[c+1]=f;c=e.length;2==c&&e.push(0);return 0===c?void 0:e}};
k.Mf=function(a,b){var c=Nk(a,!1).replace(/^\s*|\s*$/g,""),d=b[0].srsName,e=a.parentNode.getAttribute("srsDimension"),f="enu";d&&(f=zc(d).b);c=c.split(/\s+/);d=2;a.getAttribute("srsDimension")?d=eo(a.getAttribute("srsDimension")):a.getAttribute("dimension")?d=eo(a.getAttribute("dimension")):e&&(d=eo(e));for(var g,h,l=[],m=0,n=c.length;m<n;m+=d)e=parseFloat(c[m]),g=parseFloat(c[m+1]),h=3===d?parseFloat(c[m+2]):0,"en"===f.substr(0,2)?l.push(e,g,h):l.push(g,e,h);return l};
k.Fd={"http://www.opengis.net/gml":{pos:Uk(ko.prototype.Ao),posList:Uk(ko.prototype.Mf)}};k.Me={"http://www.opengis.net/gml":{interior:ko.prototype.ol,exterior:ko.prototype.Hj}};
k.bg={"http://www.opengis.net/gml":{Point:Uk(Wn.prototype.Xh),MultiPoint:Uk(Wn.prototype.Vh),LineString:Uk(Wn.prototype.ze),MultiLineString:Uk(Wn.prototype.Uh),LinearRing:Uk(Wn.prototype.Th),Polygon:Uk(Wn.prototype.Ae),MultiPolygon:Uk(Wn.prototype.Wh),Surface:Uk(ko.prototype.Zh),MultiSurface:Uk(ko.prototype.Eo),Curve:Uk(ko.prototype.Oh),MultiCurve:Uk(ko.prototype.Do),Envelope:Uk(ko.prototype.yo)}};k.Si={"http://www.opengis.net/gml":{curveMember:Tk(ko.prototype.vg),curveMembers:Tk(ko.prototype.vg)}};
k.Wi={"http://www.opengis.net/gml":{surfaceMember:Tk(ko.prototype.vi),surfaceMembers:Tk(ko.prototype.vi)}};k.Oi={"http://www.opengis.net/gml":{LineString:Tk(Wn.prototype.ze),Curve:Tk(ko.prototype.Oh)}};k.cj={"http://www.opengis.net/gml":{Polygon:Tk(Wn.prototype.Ae),Surface:Tk(ko.prototype.Zh)}};k.dj={"http://www.opengis.net/gml":{patches:Uk(ko.prototype.Ho)}};k.Pi={"http://www.opengis.net/gml":{segments:Uk(ko.prototype.Jo)}};k.Qi={"http://www.opengis.net/gml":{lowerCorner:Tk(ko.prototype.Mf),upperCorner:Tk(ko.prototype.Mf)}};
k.Xi={"http://www.opengis.net/gml":{PolygonPatch:Uk(ko.prototype.Io)}};k.bj={"http://www.opengis.net/gml":{LineStringSegment:Uk(ko.prototype.Co)}};function lo(a,b,c){c=c[c.length-1].srsName;b=b.Z();for(var d=b.length,e=Array(d),f,g=0;g<d;++g){f=b[g];var h=g,l="enu";c&&(l=zc(c).b);e[h]="en"===l.substr(0,2)?f[0]+" "+f[1]:f[1]+" "+f[0]}go(a,e.join(" "))}
k.Ji=function(a,b,c){var d=c[c.length-1].srsName;d&&a.setAttribute("srsName",d);d=Mk(a.namespaceURI,"pos");a.appendChild(d);c=c[c.length-1].srsName;a="enu";c&&(a=zc(c).b);b=b.Z();go(d,"en"===a.substr(0,2)?b[0]+" "+b[1]:b[1]+" "+b[0])};var mo={"http://www.opengis.net/gml":{lowerCorner:L(go),upperCorner:L(go)}};k=ko.prototype;k.xp=function(a,b,c){var d=c[c.length-1].srsName;d&&a.setAttribute("srsName",d);bl({node:a},mo,Zk,[b[0]+" "+b[1],b[2]+" "+b[3]],c,["lowerCorner","upperCorner"],this)};
k.Gi=function(a,b,c){var d=c[c.length-1].srsName;d&&a.setAttribute("srsName",d);d=Mk(a.namespaceURI,"posList");a.appendChild(d);lo(d,b,c)};k.aj=function(a,b){var c=b[b.length-1],d=c.node,e=c.exteriorWritten;void 0===e&&(c.exteriorWritten=!0);return Mk(d.namespaceURI,void 0!==e?"interior":"exterior")};
k.Le=function(a,b,c){var d=c[c.length-1].srsName;"PolygonPatch"!==a.nodeName&&d&&a.setAttribute("srsName",d);"Polygon"===a.nodeName||"PolygonPatch"===a.nodeName?(b=b.Vd(),bl({node:a,srsName:d},no,this.aj,b,c,void 0,this)):"Surface"===a.nodeName&&(d=Mk(a.namespaceURI,"patches"),a.appendChild(d),a=Mk(d.namespaceURI,"PolygonPatch"),d.appendChild(a),this.Le(a,b,c))};
k.Ge=function(a,b,c){var d=c[c.length-1].srsName;"LineStringSegment"!==a.nodeName&&d&&a.setAttribute("srsName",d);"LineString"===a.nodeName||"LineStringSegment"===a.nodeName?(d=Mk(a.namespaceURI,"posList"),a.appendChild(d),lo(d,b,c)):"Curve"===a.nodeName&&(d=Mk(a.namespaceURI,"segments"),a.appendChild(d),a=Mk(d.namespaceURI,"LineStringSegment"),d.appendChild(a),this.Ge(a,b,c))};
k.Ii=function(a,b,c){var d=c[c.length-1],e=d.srsName,d=d.surface;e&&a.setAttribute("srsName",e);b=b.Wd();bl({node:a,srsName:e,surface:d},oo,this.c,b,c,void 0,this)};k.yp=function(a,b,c){var d=c[c.length-1].srsName;d&&a.setAttribute("srsName",d);b=b.je();bl({node:a,srsName:d},po,Xk("pointMember"),b,c,void 0,this)};k.Hi=function(a,b,c){var d=c[c.length-1],e=d.srsName,d=d.curve;e&&a.setAttribute("srsName",e);b=b.md();bl({node:a,srsName:e,curve:d},qo,this.c,b,c,void 0,this)};
k.Ki=function(a,b,c){var d=Mk(a.namespaceURI,"LinearRing");a.appendChild(d);this.Gi(d,b,c)};k.Li=function(a,b,c){var d=this.g(b,c);d&&(a.appendChild(d),this.Le(d,b,c))};k.zp=function(a,b,c){var d=Mk(a.namespaceURI,"Point");a.appendChild(d);this.Ji(d,b,c)};k.Fi=function(a,b,c){var d=this.g(b,c);d&&(a.appendChild(d),this.Ge(d,b,c))};
k.Je=function(a,b,c){var d=c[c.length-1],e=Ca({},d);e.node=a;var f;Array.isArray(b)?d.dataProjection?f=Tc(b,d.featureProjection,d.dataProjection):f=b:f=un(b,!0,d);bl(e,ro,this.g,[f],c,void 0,this)};
k.Bi=function(a,b,c){var d=b.Xa();d&&a.setAttribute("fid",d);var d=c[c.length-1],e=d.featureNS,f=b.a;d.Dc||(d.Dc={},d.Dc[e]={});var g=b.O();b=[];var h=[],l;for(l in g){var m=g[l];null!==m&&(b.push(l),h.push(m),l==f||m instanceof Uc?l in d.Dc[e]||(d.Dc[e][l]=L(this.Je,this)):l in d.Dc[e]||(d.Dc[e][l]=L(go)))}l=Ca({},d);l.node=a;bl(l,d.Dc,Xk(void 0,e),h,c,b)};
var oo={"http://www.opengis.net/gml":{surfaceMember:L(ko.prototype.Li),polygonMember:L(ko.prototype.Li)}},po={"http://www.opengis.net/gml":{pointMember:L(ko.prototype.zp)}},qo={"http://www.opengis.net/gml":{lineStringMember:L(ko.prototype.Fi),curveMember:L(ko.prototype.Fi)}},no={"http://www.opengis.net/gml":{exterior:L(ko.prototype.Ki),interior:L(ko.prototype.Ki)}},ro={"http://www.opengis.net/gml":{Curve:L(ko.prototype.Ge),MultiCurve:L(ko.prototype.Hi),Point:L(ko.prototype.Ji),MultiPoint:L(ko.prototype.yp),
LineString:L(ko.prototype.Ge),MultiLineString:L(ko.prototype.Hi),LinearRing:L(ko.prototype.Gi),Polygon:L(ko.prototype.Le),MultiPolygon:L(ko.prototype.Ii),Surface:L(ko.prototype.Le),MultiSurface:L(ko.prototype.Ii),Envelope:L(ko.prototype.xp)}},so={MultiLineString:"lineStringMember",MultiCurve:"curveMember",MultiPolygon:"polygonMember",MultiSurface:"surfaceMember"};ko.prototype.c=function(a,b){return Mk("http://www.opengis.net/gml",so[b[b.length-1].node.nodeName])};
ko.prototype.g=function(a,b){var c=b[b.length-1],d=c.multiSurface,e=c.surface,f=c.curve,c=c.multiCurve,g;Array.isArray(a)?g="Envelope":(g=a.Y(),"MultiPolygon"===g&&!0===d?g="MultiSurface":"Polygon"===g&&!0===e?g="Surface":"LineString"===g&&!0===f?g="Curve":"MultiLineString"===g&&!0===c&&(g="MultiCurve"));return Mk("http://www.opengis.net/gml",g)};
ko.prototype.s=function(a,b){b=tn(this,b);var c=Mk("http://www.opengis.net/gml","geom"),d={node:c,srsName:this.srsName,curve:this.i,surface:this.j,multiSurface:this.o,multiCurve:this.l};b&&Ca(d,b);this.Je(c,a,[d]);return c};
ko.prototype.a=function(a,b){b=tn(this,b);var c=Mk("http://www.opengis.net/gml","featureMembers");c.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",this.schemaLocation);var d={srsName:this.srsName,curve:this.i,surface:this.j,multiSurface:this.o,multiCurve:this.l,featureNS:this.featureNS,featureType:this.featureType};b&&Ca(d,b);var d=[d],e=d[d.length-1],f=e.featureType,g=e.featureNS,h={};h[g]={};h[g][f]=L(this.Bi,this);e=Ca({},e);e.node=c;bl(e,h,Xk(f,g),a,d);return c};function to(a){a=a?a:{};Tn.call(this);this.defaultDataProjection=zc("EPSG:4326");this.b=a.readExtensions}x(to,Tn);var uo=[null,"http://www.topografix.com/GPX/1/0","http://www.topografix.com/GPX/1/1"];function vo(a,b,c){a.push(parseFloat(b.getAttribute("lon")),parseFloat(b.getAttribute("lat")));"ele"in c?(a.push(c.ele),delete c.ele):a.push(0);"time"in c?(a.push(c.time),delete c.time):a.push(0);return a}function wo(a,b){var c=b[b.length-1],d=a.getAttribute("href");null!==d&&(c.link=d);al(xo,a,b)}
function yo(a,b){b[b.length-1].extensionsNode_=a}function zo(a,b){var c=b[0],d=O({flatCoordinates:[]},Ao,a,b);if(d){var e=d.flatCoordinates;delete d.flatCoordinates;var f=new R(null);f.ba("XYZM",e);un(f,!1,c);c=new Ik(f);c.G(d);return c}}function Bo(a,b){var c=b[0],d=O({flatCoordinates:[],ends:[]},Co,a,b);if(d){var e=d.flatCoordinates;delete d.flatCoordinates;var f=d.ends;delete d.ends;var g=new S(null);g.ba("XYZM",e,f);un(g,!1,c);c=new Ik(g);c.G(d);return c}}
function Do(a,b){var c=b[0],d=O({},Eo,a,b);if(d){var e=vo([],a,d),e=new C(e,"XYZM");un(e,!1,c);c=new Ik(e);c.G(d);return c}}
var Fo={rte:zo,trk:Bo,wpt:Do},Go=N(uo,{rte:Tk(zo),trk:Tk(Bo),wpt:Tk(Do)}),xo=N(uo,{text:K(V,"linkText"),type:K(V,"linkType")}),Ao=N(uo,{name:K(V),cmt:K(V),desc:K(V),src:K(V),link:wo,number:K(co),extensions:yo,type:K(V),rtept:function(a,b){var c=O({},Ho,a,b);c&&vo(b[b.length-1].flatCoordinates,a,c)}}),Ho=N(uo,{ele:K(ao),time:K($n)}),Co=N(uo,{name:K(V),cmt:K(V),desc:K(V),src:K(V),link:wo,number:K(co),type:K(V),extensions:yo,trkseg:function(a,b){var c=b[b.length-1];al(Io,a,b);c.ends.push(c.flatCoordinates.length)}}),
Io=N(uo,{trkpt:function(a,b){var c=O({},Jo,a,b);c&&vo(b[b.length-1].flatCoordinates,a,c)}}),Jo=N(uo,{ele:K(ao),time:K($n)}),Eo=N(uo,{ele:K(ao),time:K($n),magvar:K(ao),geoidheight:K(ao),name:K(V),cmt:K(V),desc:K(V),src:K(V),link:wo,sym:K(V),type:K(V),fix:K(V),sat:K(co),hdop:K(ao),vdop:K(ao),pdop:K(ao),ageofdgpsdata:K(ao),dgpsid:K(co),extensions:yo});
function Ko(a,b){b||(b=[]);for(var c=0,d=b.length;c<d;++c){var e=b[c];if(a.b){var f=e.get("extensionsNode_")||null;a.b(e,f)}e.set("extensionsNode_",void 0)}}to.prototype.Ph=function(a,b){if(!gb(uo,a.namespaceURI))return null;var c=Fo[a.localName];if(!c)return null;c=c(a,[sn(this,a,b)]);if(!c)return null;Ko(this,[c]);return c};to.prototype.lc=function(a,b){if(!gb(uo,a.namespaceURI))return[];if("gpx"==a.localName){var c=O([],Go,a,[sn(this,a,b)]);if(c)return Ko(this,c),c}return[]};
function Lo(a,b,c){a.setAttribute("href",b);b=c[c.length-1].properties;bl({node:a},Mo,Zk,[b.linkText,b.linkType],c,No)}function Oo(a,b,c){var d=c[c.length-1],e=d.node.namespaceURI,f=d.properties;a.setAttributeNS(null,"lat",b[1]);a.setAttributeNS(null,"lon",b[0]);switch(d.geometryLayout){case "XYZM":0!==b[3]&&(f.time=b[3]);case "XYZ":0!==b[2]&&(f.ele=b[2]);break;case "XYM":0!==b[2]&&(f.time=b[2])}b="rtept"==a.nodeName?Po[e]:Qo[e];d=$k(f,b);bl({node:a,properties:f},Ro,Zk,d,c,b)}
var No=["text","type"],Mo=N(uo,{text:L(go),type:L(go)}),So=N(uo,"name cmt desc src link number type rtept".split(" ")),To=N(uo,{name:L(go),cmt:L(go),desc:L(go),src:L(go),link:L(Lo),number:L(io),type:L(go),rtept:Wk(L(Oo))}),Po=N(uo,["ele","time"]),Uo=N(uo,"name cmt desc src link number type trkseg".split(" ")),Xo=N(uo,{name:L(go),cmt:L(go),desc:L(go),src:L(go),link:L(Lo),number:L(io),type:L(go),trkseg:Wk(L(function(a,b,c){bl({node:a,geometryLayout:b.f,properties:{}},Vo,Wo,b.Z(),c)}))}),Wo=Xk("trkpt"),
Vo=N(uo,{trkpt:L(Oo)}),Qo=N(uo,"ele time magvar geoidheight name cmt desc src link sym type fix sat hdop vdop pdop ageofdgpsdata dgpsid".split(" ")),Ro=N(uo,{ele:L(ho),time:L(function(a,b){var c=new Date(1E3*b);a.appendChild(Lk.createTextNode(c.getUTCFullYear()+"-"+wb(c.getUTCMonth()+1)+"-"+wb(c.getUTCDate())+"T"+wb(c.getUTCHours())+":"+wb(c.getUTCMinutes())+":"+wb(c.getUTCSeconds())+"Z"))}),magvar:L(ho),geoidheight:L(ho),name:L(go),cmt:L(go),desc:L(go),src:L(go),link:L(Lo),sym:L(go),type:L(go),fix:L(go),
sat:L(io),hdop:L(ho),vdop:L(ho),pdop:L(ho),ageofdgpsdata:L(ho),dgpsid:L(io)}),Yo={Point:"wpt",LineString:"rte",MultiLineString:"trk"};function Zo(a,b){var c=a.X();if(c&&(c=Yo[c.Y()]))return Mk(b[b.length-1].node.namespaceURI,c)}
var $o=N(uo,{rte:L(function(a,b,c){var d=c[0],e=b.O();a={node:a,properties:e};if(b=b.X())b=un(b,!0,d),a.geometryLayout=b.f,e.rtept=b.Z();d=So[c[c.length-1].node.namespaceURI];e=$k(e,d);bl(a,To,Zk,e,c,d)}),trk:L(function(a,b,c){var d=c[0],e=b.O();a={node:a,properties:e};if(b=b.X())b=un(b,!0,d),e.trkseg=b.md();d=Uo[c[c.length-1].node.namespaceURI];e=$k(e,d);bl(a,Xo,Zk,e,c,d)}),wpt:L(function(a,b,c){var d=c[0],e=c[c.length-1];e.properties=b.O();if(b=b.X())b=un(b,!0,d),e.geometryLayout=b.f,Oo(a,b.Z(),
c)})});to.prototype.a=function(a,b){b=tn(this,b);var c=Mk("http://www.topografix.com/GPX/1/1","gpx");c.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");c.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation","http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd");c.setAttribute("version","1.1");c.setAttribute("creator","OpenLayers 3");bl({node:c},$o,Zo,a,[b]);return c};function ap(){this.defaultDataProjection=null}x(ap,rn);function bp(a){return"string"===typeof a?a:""}k=ap.prototype;k.Y=function(){return"text"};k.Sb=function(a,b){return this.ud(bp(a),tn(this,b))};k.Fa=function(a,b){return this.Kf(bp(a),tn(this,b))};k.Vc=function(a,b){return this.wd(bp(a),tn(this,b))};k.Oa=function(a){bp(a);return this.defaultDataProjection};k.Dd=function(a,b){return this.He(a,tn(this,b))};k.Yb=function(a,b){return this.Ci(a,tn(this,b))};
k.Zc=function(a,b){return this.Ed(a,tn(this,b))};function cp(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=zc("EPSG:4326");this.b=a.altitudeMode?a.altitudeMode:"none"}x(cp,ap);var dp=/^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{5})([NS])(\d{3})(\d{5})([EW])([AV])(\d{5})(\d{5})/,ep=/^H.([A-Z]{3}).*?:(.*)/,fp=/^HFDTE(\d{2})(\d{2})(\d{2})/,gp=/\r\n|\r|\n/;
cp.prototype.ud=function(a,b){var c=this.b,d=a.split(gp),e={},f=[],g=2E3,h=0,l=1,m=-1,n,p;n=0;for(p=d.length;n<p;++n){var q=d[n],r;if("B"==q.charAt(0)){if(r=dp.exec(q)){var q=parseInt(r[1],10),v=parseInt(r[2],10),y=parseInt(r[3],10),w=parseInt(r[4],10)+parseInt(r[5],10)/6E4;"S"==r[6]&&(w=-w);var G=parseInt(r[7],10)+parseInt(r[8],10)/6E4;"W"==r[9]&&(G=-G);f.push(G,w);"none"!=c&&f.push("gps"==c?parseInt(r[11],10):"barometric"==c?parseInt(r[12],10):0);r=Date.UTC(g,h,l,q,v,y);r<m&&(r=Date.UTC(g,h,l+1,
q,v,y));f.push(r/1E3);m=r}}else"H"==q.charAt(0)&&((r=fp.exec(q))?(l=parseInt(r[1],10),h=parseInt(r[2],10)-1,g=2E3+parseInt(r[3],10)):(r=ep.exec(q))&&(e[r[1]]=r[2].trim()))}if(0===f.length)return null;d=new R(null);d.ba("none"==c?"XYM":"XYZM",f);c=new Ik(un(d,!1,b));c.G(e);return c};cp.prototype.Kf=function(a,b){var c=this.ud(a,b);return c?[c]:[]};function hp(a,b){this.a={};this.b=[];this.g=0;var c=arguments.length;if(1<c){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else if(a){var e;if(a instanceof hp)e=a.N(),d=a.zc();else{var c=[],f=0;for(e in a)c[f++]=e;e=c;c=[];f=0;for(d in a)c[f++]=a[d];d=c}for(c=0;c<e.length;c++)this.set(e[c],d[c])}}k=hp.prototype;k.wc=function(){return this.g};k.zc=function(){ip(this);for(var a=[],b=0;b<this.b.length;b++)a.push(this.a[this.b[b]]);return a};
k.N=function(){ip(this);return this.b.concat()};k.Ya=function(){return 0==this.g};k.clear=function(){this.a={};this.g=this.b.length=0};k.remove=function(a){return jp(this.a,a)?(delete this.a[a],this.g--,this.b.length>2*this.g&&ip(this),!0):!1};function ip(a){if(a.g!=a.b.length){for(var b=0,c=0;b<a.b.length;){var d=a.b[b];jp(a.a,d)&&(a.b[c++]=d);b++}a.b.length=c}if(a.g!=a.b.length){for(var e={},c=b=0;b<a.b.length;)d=a.b[b],jp(e,d)||(a.b[c++]=d,e[d]=1),b++;a.b.length=c}}
k.get=function(a,b){return jp(this.a,a)?this.a[a]:b};k.set=function(a,b){jp(this.a,a)||(this.g++,this.b.push(a));this.a[a]=b};k.forEach=function(a,b){for(var c=this.N(),d=0;d<c.length;d++){var e=c[d],f=this.get(e);a.call(b,f,e,this)}};k.clone=function(){return new hp(this)};function jp(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var kp=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;function lp(a,b){if(a)for(var c=a.split("&"),d=0;d<c.length;d++){var e=c[d].indexOf("="),f,g=null;0<=e?(f=c[d].substring(0,e),g=c[d].substring(e+1)):f=c[d];b(f,g?decodeURIComponent(g.replace(/\+/g," ")):"")}};function mp(a,b){this.a=this.l=this.g="";this.o=null;this.f=this.b="";this.c=!1;var c;a instanceof mp?(this.c=void 0!==b?b:a.c,np(this,a.g),this.l=a.l,this.a=a.a,op(this,a.o),this.b=a.b,pp(this,a.i.clone()),this.f=a.f):a&&(c=String(a).match(kp))?(this.c=!!b,np(this,c[1]||"",!0),this.l=qp(c[2]||""),this.a=qp(c[3]||"",!0),op(this,c[4]),this.b=qp(c[5]||"",!0),pp(this,c[6]||"",!0),this.f=qp(c[7]||"")):(this.c=!!b,this.i=new rp(null,0,this.c))}
mp.prototype.toString=function(){var a=[],b=this.g;b&&a.push(sp(b,tp,!0),":");var c=this.a;if(c||"file"==b)a.push("//"),(b=this.l)&&a.push(sp(b,tp,!0),"@"),a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),c=this.o,null!=c&&a.push(":",String(c));if(c=this.b)this.a&&"/"!=c.charAt(0)&&a.push("/"),a.push(sp(c,"/"==c.charAt(0)?up:vp,!0));(c=this.i.toString())&&a.push("?",c);(c=this.f)&&a.push("#",sp(c,wp));return a.join("")};mp.prototype.clone=function(){return new mp(this)};
function np(a,b,c){a.g=c?qp(b,!0):b;a.g&&(a.g=a.g.replace(/:$/,""))}function op(a,b){if(b){b=Number(b);if(isNaN(b)||0>b)throw Error("Bad port number "+b);a.o=b}else a.o=null}function pp(a,b,c){b instanceof rp?(a.i=b,xp(a.i,a.c)):(c||(b=sp(b,yp)),a.i=new rp(b,0,a.c))}function zp(a){return a instanceof mp?a.clone():new mp(a,void 0)}
function Ap(a,b){a instanceof mp||(a=zp(a));b instanceof mp||(b=zp(b));var c=a,d=b,e=c.clone(),f=!!d.g;f?np(e,d.g):f=!!d.l;f?e.l=d.l:f=!!d.a;f?e.a=d.a:f=null!=d.o;var g=d.b;if(f)op(e,d.o);else if(f=!!d.b)if("/"!=g.charAt(0)&&(c.a&&!c.b?g="/"+g:(c=e.b.lastIndexOf("/"),-1!=c&&(g=e.b.substr(0,c+1)+g))),c=g,".."==c||"."==c)g="";else if(-1!=c.indexOf("./")||-1!=c.indexOf("/.")){for(var g=0==c.lastIndexOf("/",0),c=c.split("/"),h=[],l=0;l<c.length;){var m=c[l++];"."==m?g&&l==c.length&&h.push(""):".."==m?
((1<h.length||1==h.length&&""!=h[0])&&h.pop(),g&&l==c.length&&h.push("")):(h.push(m),g=!0)}g=h.join("/")}else g=c;f?e.b=g:f=""!==d.i.toString();f?pp(e,qp(d.i.toString())):f=!!d.f;f&&(e.f=d.f);return e}function qp(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""}function sp(a,b,c){return ea(a)?(a=encodeURI(a).replace(b,Bp),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function Bp(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}
var tp=/[#\/\?@]/g,vp=/[\#\?:]/g,up=/[\#\?]/g,yp=/[\#\?@]/g,wp=/#/g;function rp(a,b,c){this.a=this.b=null;this.g=a||null;this.f=!!c}function Cp(a){a.b||(a.b=new hp,a.a=0,a.g&&lp(a.g,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g," ")),c)}))}k=rp.prototype;k.wc=function(){Cp(this);return this.a};k.add=function(a,b){Cp(this);this.g=null;a=Dp(this,a);var c=this.b.get(a);c||this.b.set(a,c=[]);c.push(b);this.a=this.a+1;return this};
k.remove=function(a){Cp(this);a=Dp(this,a);return jp(this.b.a,a)?(this.g=null,this.a=this.a-this.b.get(a).length,this.b.remove(a)):!1};k.clear=function(){this.b=this.g=null;this.a=0};k.Ya=function(){Cp(this);return 0==this.a};function Ep(a,b){Cp(a);b=Dp(a,b);return jp(a.b.a,b)}k.N=function(){Cp(this);for(var a=this.b.zc(),b=this.b.N(),c=[],d=0;d<b.length;d++)for(var e=a[d],f=0;f<e.length;f++)c.push(b[d]);return c};
k.zc=function(a){Cp(this);var b=[];if(ea(a))Ep(this,a)&&(b=de(b,this.b.get(Dp(this,a))));else{a=this.b.zc();for(var c=0;c<a.length;c++)b=de(b,a[c])}return b};k.set=function(a,b){Cp(this);this.g=null;a=Dp(this,a);Ep(this,a)&&(this.a=this.a-this.b.get(a).length);this.b.set(a,[b]);this.a=this.a+1;return this};k.get=function(a,b){var c=a?this.zc(a):[];return 0<c.length?String(c[0]):b};
k.toString=function(){if(this.g)return this.g;if(!this.b)return"";for(var a=[],b=this.b.N(),c=0;c<b.length;c++)for(var d=b[c],e=encodeURIComponent(String(d)),d=this.zc(d),f=0;f<d.length;f++){var g=e;""!==d[f]&&(g+="="+encodeURIComponent(String(d[f])));a.push(g)}return this.g=a.join("&")};k.clone=function(){var a=new rp;a.g=this.g;this.b&&(a.b=this.b.clone(),a.a=this.a);return a};function Dp(a,b){var c=String(b);a.f&&(c=c.toLowerCase());return c}
function xp(a,b){b&&!a.f&&(Cp(a),a.g=null,a.b.forEach(function(a,b){var e=b.toLowerCase();b!=e&&(this.remove(b),this.remove(e),0<a.length&&(this.g=null,this.b.set(Dp(this,e),ee(a)),this.a=this.a+a.length))},a));a.f=b};function Fp(a){a=a||{};this.g=a.font;this.i=a.rotation;this.a=a.scale;this.s=a.text;this.o=a.textAlign;this.j=a.textBaseline;this.b=void 0!==a.fill?a.fill:new jj({color:"#333"});this.l=void 0!==a.stroke?a.stroke:null;this.f=void 0!==a.offsetX?a.offsetX:0;this.c=void 0!==a.offsetY?a.offsetY:0}k=Fp.prototype;k.Xj=function(){return this.g};k.kk=function(){return this.f};k.lk=function(){return this.c};k.Un=function(){return this.b};k.Vn=function(){return this.i};k.Wn=function(){return this.a};k.Xn=function(){return this.l};
k.Ha=function(){return this.s};k.yk=function(){return this.o};k.zk=function(){return this.j};k.bp=function(a){this.g=a};k.mi=function(a){this.f=a};k.ni=function(a){this.c=a};k.ap=function(a){this.b=a};k.Yn=function(a){this.i=a};k.Zn=function(a){this.a=a};k.ip=function(a){this.l=a};k.pi=function(a){this.s=a};k.ri=function(a){this.o=a};k.jp=function(a){this.j=a};function Gp(a){a=a?a:{};Tn.call(this);this.defaultDataProjection=zc("EPSG:4326");this.g=a.defaultStyle?a.defaultStyle:Hp;this.c=void 0!==a.extractStyles?a.extractStyles:!0;this.l=void 0!==a.writeStyles?a.writeStyles:!0;this.b={};this.i=void 0!==a.showPointNames?a.showPointNames:!0}x(Gp,Tn);
var Ip=["http://www.google.com/kml/ext/2.2"],Jp=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],Kp=[255,255,255,1],Lp=new jj({color:Kp}),Mp=[20,2],Np=[64,64],Op=new Fh({anchor:Mp,anchorOrigin:"bottom-left",anchorXUnits:"pixels",anchorYUnits:"pixels",crossOrigin:"anonymous",rotation:0,scale:.5,size:Np,src:"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png"}),Pp=new pj({color:Kp,width:1}),Qp=new Fp({font:"bold 16px Helvetica",
fill:Lp,stroke:new pj({color:[51,51,51,1],width:2}),scale:.8}),Hp=[new sj({fill:Lp,image:Op,text:Qp,stroke:Pp,zIndex:0})],Rp={fraction:"fraction",pixels:"pixels"};function Sp(a,b){var c,d=[0,0],e="start";if(a.a){var f=a.a.ld();f&&2==f.length&&(d[0]=a.a.i*f[0]/2,d[1]=-a.a.i*f[1]/2,e="left")}if(Ga(a.Ha()))c=new Fp({text:b,offsetX:d[0],offsetY:d[1],textAlign:e});else{var f=a.Ha(),g={};for(c in f)g[c]=f[c];c=g;c.pi(b);c.ri(e);c.mi(d[0]);c.ni(d[1])}return new sj({text:c})}
function Tp(a,b,c,d,e){return function(){var f=e,g="";f&&this.X()&&(f="Point"===this.X().Y());f&&(g=this.get("name"),f=f&&g);if(a)return f?(f=Sp(a[0],g),a.concat(f)):a;if(b){var h=Up(b,c,d);return f?(f=Sp(h[0],g),h.concat(f)):h}return f?(f=Sp(c[0],g),c.concat(f)):c}}function Up(a,b,c){return Array.isArray(a)?a:"string"===typeof a?(!(a in c)&&"#"+a in c&&(a="#"+a),Up(c[a],b,c)):b}
function Vp(a){a=Nk(a,!1);if(a=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(a))return a=a[1],[parseInt(a.substr(6,2),16),parseInt(a.substr(4,2),16),parseInt(a.substr(2,2),16),parseInt(a.substr(0,2),16)/255]}function Wp(a){a=Nk(a,!1);for(var b=[],c=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i,d;d=c.exec(a);)b.push(parseFloat(d[1]),parseFloat(d[2]),d[3]?parseFloat(d[3]):0),a=a.substr(d[0].length);return""!==a?void 0:b}
function Xp(a){var b=Nk(a,!1);return a.baseURI?Ap(a.baseURI,b.trim()).toString():b.trim()}function Yp(a){a=ao(a);if(void 0!==a)return Math.sqrt(a)}function Zp(a,b){return O(null,$p,a,b)}function aq(a,b){var c=O({B:[],zi:[]},bq,a,b);if(c){var d=c.B,c=c.zi,e,f;e=0;for(f=Math.min(d.length,c.length);e<f;++e)d[4*e+3]=c[e];c=new R(null);c.ba("XYZM",d);return c}}function cq(a,b){var c=O({},dq,a,b),d=O(null,eq,a,b);if(d){var e=new R(null);e.ba("XYZ",d);e.G(c);return e}}
function fq(a,b){var c=O({},dq,a,b),d=O(null,eq,a,b);if(d){var e=new E(null);e.ba("XYZ",d,[d.length]);e.G(c);return e}}
function gq(a,b){var c=O([],hq,a,b);if(!c)return null;if(0===c.length)return new Kn(c);var d=!0,e=c[0].Y(),f,g,h;g=1;for(h=c.length;g<h;++g)if(f=c[g],f.Y()!=e){d=!1;break}if(d){if("Point"==e){f=c[0];d=f.f;e=f.la();g=1;for(h=c.length;g<h;++g)f=c[g],jb(e,f.la());f=new T(null);f.ba(d,e);iq(f,c);return f}return"LineString"==e?(f=new S(null),An(f,c),iq(f,c),f):"Polygon"==e?(f=new U(null),Cn(f,c),iq(f,c),f):"GeometryCollection"==e?new Kn(c):null}return new Kn(c)}
function jq(a,b){var c=O({},dq,a,b),d=O(null,eq,a,b);if(d){var e=new C(null);e.ba("XYZ",d);e.G(c);return e}}function kq(a,b){var c=O({},dq,a,b),d=O([null],lq,a,b);if(d&&d[0]){var e=new E(null),f=d[0],g=[f.length],h,l;h=1;for(l=d.length;h<l;++h)jb(f,d[h]),g.push(f.length);e.ba("XYZ",f,g);e.G(c);return e}}
function mq(a,b){var c=O({},nq,a,b);if(!c)return null;var d="fillStyle"in c?c.fillStyle:Lp,e=c.fill;void 0===e||e||(d=null);var e="imageStyle"in c?c.imageStyle:Op,f="textStyle"in c?c.textStyle:Qp,g="strokeStyle"in c?c.strokeStyle:Pp,c=c.outline;void 0===c||c||(g=null);return[new sj({fill:d,image:e,stroke:g,text:f,zIndex:void 0})]}
function iq(a,b){var c=b.length,d=Array(b.length),e=Array(b.length),f,g,h,l;h=l=!1;for(g=0;g<c;++g)f=b[g],d[g]=f.get("extrude"),e[g]=f.get("altitudeMode"),h=h||void 0!==d[g],l=l||e[g];h&&a.set("extrude",d);l&&a.set("altitudeMode",e)}function oq(a,b){al(pq,a,b)}
var qq=N(Jp,{value:Uk(V)}),pq=N(Jp,{Data:function(a,b){var c=a.getAttribute("name");if(null!==c){var d=O(void 0,qq,a,b);d&&(b[b.length-1][c]=d)}},SchemaData:function(a,b){al(rq,a,b)}}),dq=N(Jp,{extrude:K(Yn),altitudeMode:K(V)}),$p=N(Jp,{coordinates:Uk(Wp)}),lq=N(Jp,{innerBoundaryIs:function(a,b){var c=O(void 0,sq,a,b);c&&b[b.length-1].push(c)},outerBoundaryIs:function(a,b){var c=O(void 0,tq,a,b);c&&(b[b.length-1][0]=c)}}),bq=N(Jp,{when:function(a,b){var c=b[b.length-1].zi,d=Nk(a,!1);if(d=/^\s*(\d{4})($|-(\d{2})($|-(\d{2})($|T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?)))))\s*$/.exec(d)){var e=
Date.UTC(parseInt(d[1],10),d[3]?parseInt(d[3],10)-1:0,d[5]?parseInt(d[5],10):1,d[7]?parseInt(d[7],10):0,d[8]?parseInt(d[8],10):0,d[9]?parseInt(d[9],10):0);if(d[10]&&"Z"!=d[10]){var f="-"==d[11]?-1:1,e=e+60*f*parseInt(d[12],10);d[13]&&(e+=3600*f*parseInt(d[13],10))}c.push(e)}else c.push(0)}},N(Ip,{coord:function(a,b){var c=b[b.length-1].B,d=Nk(a,!1);(d=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(d))?c.push(parseFloat(d[1]),
parseFloat(d[2]),parseFloat(d[3]),0):c.push(0,0,0,0)}})),eq=N(Jp,{coordinates:Uk(Wp)}),uq=N(Jp,{href:K(Xp)},N(Ip,{x:K(ao),y:K(ao),w:K(ao),h:K(ao)})),vq=N(Jp,{Icon:K(function(a,b){var c=O({},uq,a,b);return c?c:null}),heading:K(ao),hotSpot:K(function(a){var b=a.getAttribute("xunits"),c=a.getAttribute("yunits");return{x:parseFloat(a.getAttribute("x")),$f:Rp[b],y:parseFloat(a.getAttribute("y")),ag:Rp[c]}}),scale:K(Yp)}),sq=N(Jp,{LinearRing:Uk(Zp)}),wq=N(Jp,{color:K(Vp),scale:K(Yp)}),xq=N(Jp,{color:K(Vp),
width:K(ao)}),hq=N(Jp,{LineString:Tk(cq),LinearRing:Tk(fq),MultiGeometry:Tk(gq),Point:Tk(jq),Polygon:Tk(kq)}),yq=N(Ip,{Track:Tk(aq)}),Aq=N(Jp,{ExtendedData:oq,Link:function(a,b){al(zq,a,b)},address:K(V),description:K(V),name:K(V),open:K(Yn),phoneNumber:K(V),visibility:K(Yn)}),zq=N(Jp,{href:K(Xp)}),tq=N(Jp,{LinearRing:Uk(Zp)}),Bq=N(Jp,{Style:K(mq),key:K(V),styleUrl:K(function(a){var b=Nk(a,!1).trim();return a.baseURI?Ap(a.baseURI,b).toString():b})}),Dq=N(Jp,{ExtendedData:oq,MultiGeometry:K(gq,"geometry"),
LineString:K(cq,"geometry"),LinearRing:K(fq,"geometry"),Point:K(jq,"geometry"),Polygon:K(kq,"geometry"),Style:K(mq),StyleMap:function(a,b){var c=O(void 0,Cq,a,b);if(c){var d=b[b.length-1];Array.isArray(c)?d.Style=c:"string"===typeof c&&(d.styleUrl=c)}},address:K(V),description:K(V),name:K(V),open:K(Yn),phoneNumber:K(V),styleUrl:K(Xp),visibility:K(Yn)},N(Ip,{MultiTrack:K(function(a,b){var c=O([],yq,a,b);if(c){var d=new S(null);An(d,c);return d}},"geometry"),Track:K(aq,"geometry")})),Eq=N(Jp,{color:K(Vp),
fill:K(Yn),outline:K(Yn)}),rq=N(Jp,{SimpleData:function(a,b){var c=a.getAttribute("name");if(null!==c){var d=V(a);b[b.length-1][c]=d}}}),nq=N(Jp,{IconStyle:function(a,b){var c=O({},vq,a,b);if(c){var d=b[b.length-1],e="Icon"in c?c.Icon:{},f;f=(f=e.href)?f:"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png";var g,h,l,m=c.hotSpot;m?(g=[m.x,m.y],h=m.$f,l=m.ag):"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png"===f?(g=Mp,l=h="pixels"):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(f)&&
(g=[.5,0],l=h="fraction");var n,m=e.x,p=e.y;void 0!==m&&void 0!==p&&(n=[m,p]);var q,m=e.w,e=e.h;void 0!==m&&void 0!==e&&(q=[m,e]);var r,e=c.heading;void 0!==e&&(r=wa(e));c=c.scale;"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png"==f&&(q=Np,void 0===c&&(c=.5));g=new Fh({anchor:g,anchorOrigin:"bottom-left",anchorXUnits:h,anchorYUnits:l,crossOrigin:"anonymous",offset:n,offsetOrigin:"bottom-left",rotation:r,scale:c,size:q,src:f});d.imageStyle=g}},LabelStyle:function(a,b){var c=O({},wq,a,
b);c&&(b[b.length-1].textStyle=new Fp({fill:new jj({color:"color"in c?c.color:Kp}),scale:c.scale}))},LineStyle:function(a,b){var c=O({},xq,a,b);c&&(b[b.length-1].strokeStyle=new pj({color:"color"in c?c.color:Kp,width:"width"in c?c.width:1}))},PolyStyle:function(a,b){var c=O({},Eq,a,b);if(c){var d=b[b.length-1];d.fillStyle=new jj({color:"color"in c?c.color:Kp});var e=c.fill;void 0!==e&&(d.fill=e);c=c.outline;void 0!==c&&(d.outline=c)}}}),Cq=N(Jp,{Pair:function(a,b){var c=O({},Bq,a,b);if(c){var d=c.key;
d&&"normal"==d&&((d=c.styleUrl)&&(b[b.length-1]=d),(c=c.Style)&&(b[b.length-1]=c))}}});k=Gp.prototype;k.Gf=function(a,b){var c=N(Jp,{Document:Sk(this.Gf,this),Folder:Sk(this.Gf,this),Placemark:Tk(this.Of,this),Style:this.Lo.bind(this),StyleMap:this.Ko.bind(this)});if(c=O([],c,a,b,this))return c};
k.Of=function(a,b){var c=O({geometry:null},Dq,a,b);if(c){var d=new Ik,e=a.getAttribute("id");null!==e&&d.mc(e);var e=b[0],f=c.geometry;f&&un(f,!1,e);d.Ua(f);delete c.geometry;this.c&&d.sf(Tp(c.Style,c.styleUrl,this.g,this.b,this.i));delete c.Style;d.G(c);return d}};k.Lo=function(a,b){var c=a.getAttribute("id");if(null!==c){var d=mq(a,b);d&&(c=a.baseURI?Ap(a.baseURI,"#"+c).toString():"#"+c,this.b[c]=d)}};
k.Ko=function(a,b){var c=a.getAttribute("id");if(null!==c){var d=O(void 0,Cq,a,b);d&&(c=a.baseURI?Ap(a.baseURI,"#"+c).toString():"#"+c,this.b[c]=d)}};k.Ph=function(a,b){if(!gb(Jp,a.namespaceURI))return null;var c=this.Of(a,[sn(this,a,b)]);return c?c:null};
k.lc=function(a,b){if(!gb(Jp,a.namespaceURI))return[];var c;c=a.localName;if("Document"==c||"Folder"==c)return(c=this.Gf(a,[sn(this,a,b)]))?c:[];if("Placemark"==c)return(c=this.Of(a,[sn(this,a,b)]))?[c]:[];if("kml"==c){c=[];var d;for(d=a.firstElementChild;d;d=d.nextElementSibling){var e=this.lc(d,b);e&&jb(c,e)}return c}return[]};k.Fo=function(a){if(Pk(a))return Fq(this,a);if(Qk(a))return Gq(this,a);if("string"===typeof a)return a=Rk(a),Fq(this,a)};
function Fq(a,b){var c;for(c=b.firstChild;c;c=c.nextSibling)if(c.nodeType==Node.ELEMENT_NODE){var d=Gq(a,c);if(d)return d}}function Gq(a,b){var c;for(c=b.firstElementChild;c;c=c.nextElementSibling)if(gb(Jp,c.namespaceURI)&&"name"==c.localName)return V(c);for(c=b.firstElementChild;c;c=c.nextElementSibling){var d=c.localName;if(gb(Jp,c.namespaceURI)&&("Document"==d||"Folder"==d||"Placemark"==d||"kml"==d)&&(d=Gq(a,c)))return d}}
k.Go=function(a){var b=[];Pk(a)?jb(b,Hq(this,a)):Qk(a)?jb(b,Iq(this,a)):"string"===typeof a&&(a=Rk(a),jb(b,Hq(this,a)));return b};function Hq(a,b){var c,d=[];for(c=b.firstChild;c;c=c.nextSibling)c.nodeType==Node.ELEMENT_NODE&&jb(d,Iq(a,c));return d}
function Iq(a,b){var c,d=[];for(c=b.firstElementChild;c;c=c.nextElementSibling)if(gb(Jp,c.namespaceURI)&&"NetworkLink"==c.localName){var e=O({},Aq,c,[]);d.push(e)}for(c=b.firstElementChild;c;c=c.nextElementSibling)e=c.localName,!gb(Jp,c.namespaceURI)||"Document"!=e&&"Folder"!=e&&"kml"!=e||jb(d,Iq(a,c));return d}function Jq(a,b){var c=je(b),c=[255*(4==c.length?c[3]:1),c[2],c[1],c[0]],d;for(d=0;4>d;++d){var e=parseInt(c[d],10).toString(16);c[d]=1==e.length?"0"+e:e}go(a,c.join(""))}
function Kq(a,b,c){a={node:a};var d=b.Y(),e,f;"GeometryCollection"==d?(e=b.ff(),f=Lq):"MultiPoint"==d?(e=b.je(),f=Mq):"MultiLineString"==d?(e=b.md(),f=Nq):"MultiPolygon"==d&&(e=b.Wd(),f=Oq);bl(a,Pq,f,e,c)}function Qq(a,b,c){bl({node:a},Rq,Sq,[b],c)}
function Tq(a,b,c){var d={node:a};b.Xa()&&a.setAttribute("id",b.Xa());a=b.O();var e=b.ec();e&&(e=e.call(b,0))&&(e=Array.isArray(e)?e[0]:e,this.l&&(a.Style=e),(e=e.Ha())&&(a.name=e.Ha()));e=Uq[c[c.length-1].node.namespaceURI];a=$k(a,e);bl(d,Vq,Zk,a,c,e);a=c[0];(b=b.X())&&(b=un(b,!0,a));bl(d,Vq,Lq,[b],c)}function Wq(a,b,c){var d=b.la();a={node:a};a.layout=b.f;a.stride=b.va();bl(a,Xq,Yq,[d],c)}function Zq(a,b,c){b=b.Vd();var d=b.shift();a={node:a};bl(a,$q,ar,b,c);bl(a,$q,br,[d],c)}
function cr(a,b){ho(a,Math.round(b*b*1E6)/1E6)}
var dr=N(Jp,["Document","Placemark"]),gr=N(Jp,{Document:L(function(a,b,c){bl({node:a},er,fr,b,c,void 0,this)}),Placemark:L(Tq)}),er=N(Jp,{Placemark:L(Tq)}),hr={Point:"Point",LineString:"LineString",LinearRing:"LinearRing",Polygon:"Polygon",MultiPoint:"MultiGeometry",MultiLineString:"MultiGeometry",MultiPolygon:"MultiGeometry",GeometryCollection:"MultiGeometry"},ir=N(Jp,["href"],N(Ip,["x","y","w","h"])),jr=N(Jp,{href:L(go)},N(Ip,{x:L(ho),y:L(ho),w:L(ho),h:L(ho)})),kr=N(Jp,["scale","heading","Icon",
"hotSpot"]),mr=N(Jp,{Icon:L(function(a,b,c){a={node:a};var d=ir[c[c.length-1].node.namespaceURI],e=$k(b,d);bl(a,jr,Zk,e,c,d);d=ir[Ip[0]];e=$k(b,d);bl(a,jr,lr,e,c,d)}),heading:L(ho),hotSpot:L(function(a,b){a.setAttribute("x",b.x);a.setAttribute("y",b.y);a.setAttribute("xunits",b.$f);a.setAttribute("yunits",b.ag)}),scale:L(cr)}),nr=N(Jp,["color","scale"]),or=N(Jp,{color:L(Jq),scale:L(cr)}),pr=N(Jp,["color","width"]),qr=N(Jp,{color:L(Jq),width:L(ho)}),Rq=N(Jp,{LinearRing:L(Wq)}),Pq=N(Jp,{LineString:L(Wq),
Point:L(Wq),Polygon:L(Zq),GeometryCollection:L(Kq)}),Uq=N(Jp,"name open visibility address phoneNumber description styleUrl Style".split(" ")),Vq=N(Jp,{MultiGeometry:L(Kq),LineString:L(Wq),LinearRing:L(Wq),Point:L(Wq),Polygon:L(Zq),Style:L(function(a,b,c){a={node:a};var d={},e=b.c,f=b.f,g=b.a;b=b.Ha();g instanceof Fh&&(d.IconStyle=g);b&&(d.LabelStyle=b);f&&(d.LineStyle=f);e&&(d.PolyStyle=e);b=rr[c[c.length-1].node.namespaceURI];d=$k(d,b);bl(a,sr,Zk,d,c,b)}),address:L(go),description:L(go),name:L(go),
open:L(fo),phoneNumber:L(go),styleUrl:L(go),visibility:L(fo)}),Xq=N(Jp,{coordinates:L(function(a,b,c){c=c[c.length-1];var d=c.layout;c=c.stride;var e;"XY"==d||"XYM"==d?e=2:("XYZ"==d||"XYZM"==d)&&(e=3);var f,g=b.length,h="";if(0<g){h+=b[0];for(d=1;d<e;++d)h+=","+b[d];for(f=c;f<g;f+=c)for(h+=" "+b[f],d=1;d<e;++d)h+=","+b[f+d]}go(a,h)})}),$q=N(Jp,{outerBoundaryIs:L(Qq),innerBoundaryIs:L(Qq)}),tr=N(Jp,{color:L(Jq)}),rr=N(Jp,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),sr=N(Jp,{IconStyle:L(function(a,
b,c){a={node:a};var d={},e=b.Gb(),f=b.ld(),g={href:b.b.j};if(e){g.w=e[0];g.h=e[1];var h=b.Zb(),l=b.Ia();l&&f&&0!==l[0]&&l[1]!==e[1]&&(g.x=l[0],g.y=f[1]-(l[1]+e[1]));h&&0!==h[0]&&h[1]!==e[1]&&(d.hotSpot={x:h[0],$f:"pixels",y:e[1]-h[1],ag:"pixels"})}d.Icon=g;e=b.i;1!==e&&(d.scale=e);b=b.j;0!==b&&(d.heading=b);b=kr[c[c.length-1].node.namespaceURI];d=$k(d,b);bl(a,mr,Zk,d,c,b)}),LabelStyle:L(function(a,b,c){a={node:a};var d={},e=b.b;e&&(d.color=e.b);(b=b.a)&&1!==b&&(d.scale=b);b=nr[c[c.length-1].node.namespaceURI];
d=$k(d,b);bl(a,or,Zk,d,c,b)}),LineStyle:L(function(a,b,c){a={node:a};var d=pr[c[c.length-1].node.namespaceURI];b=$k({color:b.b,width:b.a},d);bl(a,qr,Zk,b,c,d)}),PolyStyle:L(function(a,b,c){bl({node:a},tr,ur,[b.b],c)})});function lr(a,b,c){return Mk(Ip[0],"gx:"+c)}function fr(a,b){return Mk(b[b.length-1].node.namespaceURI,"Placemark")}function Lq(a,b){if(a)return Mk(b[b.length-1].node.namespaceURI,hr[a.Y()])}
var ur=Xk("color"),Yq=Xk("coordinates"),ar=Xk("innerBoundaryIs"),Mq=Xk("Point"),Nq=Xk("LineString"),Sq=Xk("LinearRing"),Oq=Xk("Polygon"),br=Xk("outerBoundaryIs");
Gp.prototype.a=function(a,b){b=tn(this,b);var c=Mk(Jp[4],"kml");c.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:gx",Ip[0]);c.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");c.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");var d={node:c},e={};1<a.length?e.Document=a:1==a.length&&(e.Placemark=a[0]);var f=dr[c.namespaceURI],
e=$k(e,f);bl(d,gr,Zk,e,[b],f,this);return c};(function(){var a={},b={ja:a};(function(c){if("object"===typeof a&&"undefined"!==typeof b)b.ja=c();else{var d;"undefined"!==typeof window?d=window:"undefined"!==typeof global?d=global:"undefined"!==typeof self?d=self:d=this;d.Rp=c()}})(function(){return function d(a,b,g){function h(m,p){if(!b[m]){if(!a[m]){var q="function"==typeof require&&require;if(!p&&q)return q(m,!0);if(l)return l(m,!0);q=Error("Cannot find module '"+m+"'");throw q.code="MODULE_NOT_FOUND",q;}q=b[m]={ja:{}};a[m][0].call(q.ja,function(b){var d=
a[m][1][b];return h(d?d:b)},q,q.ja,d,a,b,g)}return b[m].ja}for(var l="function"==typeof require&&require,m=0;m<g.length;m++)h(g[m]);return h}({1:[function(a,b,f){f.read=function(a,b,d,e,f){var p;p=8*f-e-1;var q=(1<<p)-1,r=q>>1,v=-7;f=d?f-1:0;var y=d?-1:1,w=a[b+f];f+=y;d=w&(1<<-v)-1;w>>=-v;for(v+=p;0<v;d=256*d+a[b+f],f+=y,v-=8);p=d&(1<<-v)-1;d>>=-v;for(v+=e;0<v;p=256*p+a[b+f],f+=y,v-=8);if(0===d)d=1-r;else{if(d===q)return p?NaN:Infinity*(w?-1:1);p+=Math.pow(2,e);d-=r}return(w?-1:1)*p*Math.pow(2,d-
e)};f.write=function(a,b,d,e,f,p){var q,r=8*p-f-1,v=(1<<r)-1,y=v>>1,w=23===f?Math.pow(2,-24)-Math.pow(2,-77):0;p=e?0:p-1;var G=e?1:-1,z=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,e=v):(e=Math.floor(Math.log(b)/Math.LN2),1>b*(q=Math.pow(2,-e))&&(e--,q*=2),b=1<=e+y?b+w/q:b+w*Math.pow(2,1-y),2<=b*q&&(e++,q/=2),e+y>=v?(b=0,e=v):1<=e+y?(b=(b*q-1)*Math.pow(2,f),e+=y):(b=b*Math.pow(2,y-1)*Math.pow(2,f),e=0));for(;8<=f;a[d+p]=b&255,p+=G,b/=256,f-=8);e=e<<f|b;for(r+=f;0<r;a[d+
p]=e&255,p+=G,e/=256,r-=8);a[d+p-G]|=128*z}},{}],2:[function(a,b){function f(a){var b;a&&a.length&&(b=a,a=b.length);a=new Uint8Array(a||0);b&&a.set(b);a.$h=l.$h;a.Zf=l.Zf;a.Sh=l.Sh;a.Ei=l.Ei;a.Nf=l.Nf;a.Di=l.Di;a.Hf=l.Hf;a.Ai=l.Ai;a.toString=l.toString;a.write=l.write;a.slice=l.slice;a.tg=l.tg;a.nj=!0;return a}function g(a){for(var b=a.length,d=[],e=0,f,g;e<b;e++){f=a.charCodeAt(e);if(55295<f&&57344>f)if(g)if(56320>f){d.push(239,191,189);g=f;continue}else f=g-55296<<10|f-56320|65536,g=null;else{56319<
f||e+1===b?d.push(239,191,189):g=f;continue}else g&&(d.push(239,191,189),g=null);128>f?d.push(f):2048>f?d.push(f>>6|192,f&63|128):65536>f?d.push(f>>12|224,f>>6&63|128,f&63|128):d.push(f>>18|240,f>>12&63|128,f>>6&63|128,f&63|128)}return d}b.ja=f;var h=a("ieee754"),l,m,n;l={$h:function(a){return(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},Zf:function(a,b){this[b]=a;this[b+1]=a>>>8;this[b+2]=a>>>16;this[b+3]=a>>>24},Sh:function(a){return(this[a]|this[a+1]<<8|this[a+2]<<16)+(this[a+3]<<24)},
Nf:function(a){return h.read(this,a,!0,23,4)},Hf:function(a){return h.read(this,a,!0,52,8)},Di:function(a,b){return h.write(this,a,b,!0,23,4)},Ai:function(a,b){return h.write(this,a,b,!0,52,8)},toString:function(a,b,d){var e=a="";d=Math.min(this.length,d||this.length);for(b=b||0;b<d;b++){var f=this[b];127>=f?(a+=decodeURIComponent(e)+String.fromCharCode(f),e=""):e+="%"+f.toString(16)}return a+=decodeURIComponent(e)},write:function(a,b){for(var d=a===m?n:g(a),e=0;e<d.length;e++)this[b+e]=d[e]},slice:function(a,
b){return this.subarray(a,b)},tg:function(a,b){b=b||0;for(var d=0;d<this.length;d++)a[b+d]=this[d]}};l.Ei=l.Zf;f.byteLength=function(a){m=a;n=g(a);return n.length};f.isBuffer=function(a){return!(!a||!a.nj)}},{ieee754:1}],3:[function(a,b){(function(f){function g(a){this.Db=l.isBuffer(a)?a:new l(a||0);this.da=0;this.length=this.Db.length}function h(a,b){var d=b.Db,e;e=d[b.da++];a+=268435456*(e&127);if(128>e)return a;e=d[b.da++];a+=34359738368*(e&127);if(128>e)return a;e=d[b.da++];a+=4398046511104*(e&
127);if(128>e)return a;e=d[b.da++];a+=562949953421312*(e&127);if(128>e)return a;e=d[b.da++];a+=72057594037927936*(e&127);if(128>e)return a;e=d[b.da++];if(128>e)return a+0x7fffffffffffffff*(e&127);throw Error("Expected varint not more than 10 bytes");}b.ja=g;var l=f.Ap||a("./buffer");g.f=0;g.g=1;g.b=2;g.a=5;var m=Math.pow(2,63);g.prototype={Lf:function(a,b,d){for(d=d||this.length;this.da<d;){var e=this.Da(),f=this.da;a(e>>3,b,this);this.da===f&&this.op(e)}return b},Bo:function(){var a=this.Db.Nf(this.da);
this.da+=4;return a},xo:function(){var a=this.Db.Hf(this.da);this.da+=8;return a},Da:function(){var a=this.Db,b,d;d=a[this.da++];b=d&127;if(128>d)return b;d=a[this.da++];b|=(d&127)<<7;if(128>d)return b;d=a[this.da++];b|=(d&127)<<14;if(128>d)return b;d=a[this.da++];b|=(d&127)<<21;return 128>d?b:h(b,this)},Mo:function(){var a=this.da,b=this.Da();if(b<m)return b;for(var d=this.da-2;255===this.Db[d];)d--;d<a&&(d=a);for(var e=b=0;e<d-a+1;e++)var f=~this.Db[a+e]&127,b=b+(4>e?f<<7*e:f*Math.pow(2,7*e));return-b-
1},xd:function(){var a=this.Da();return 1===a%2?(a+1)/-2:a/2},vo:function(){return!!this.Da()},Qf:function(){var a=this.Da()+this.da,b=this.Db.toString("utf8",this.da,a);this.da=a;return b},op:function(a){a&=7;if(a===g.f)for(;127<this.Db[this.da++];);else if(a===g.b)this.da=this.Da()+this.da;else if(a===g.a)this.da+=4;else if(a===g.g)this.da+=8;else throw Error("Unimplemented type: "+a);}}}).call(this,"undefined"!==typeof global?global:"undefined"!==typeof self?self:"undefined"!==typeof window?window:
{})},{"./buffer":2}]},{},[3])(3)});hl=b.ja})();(function(){var a={},b={ja:a};(function(c){if("object"===typeof a&&"undefined"!==typeof b)b.ja=c();else{var d;"undefined"!==typeof window?d=window:"undefined"!==typeof global?d=global:"undefined"!==typeof self?d=self:d=this;d.Up=c()}})(function(){return function d(a,b,g){function h(m,p){if(!b[m]){if(!a[m]){var q="function"==typeof require&&require;if(!p&&q)return q(m,!0);if(l)return l(m,!0);q=Error("Cannot find module '"+m+"'");throw q.code="MODULE_NOT_FOUND",q;}q=b[m]={ja:{}};a[m][0].call(q.ja,function(b){var d=
a[m][1][b];return h(d?d:b)},q,q.ja,d,a,b,g)}return b[m].ja}for(var l="function"==typeof require&&require,m=0;m<g.length;m++)h(g[m]);return h}({1:[function(a,b){function f(a,b){this.x=a;this.y=b}b.ja=f;f.prototype={clone:function(){return new f(this.x,this.y)},add:function(a){return this.clone().fj(a)},rotate:function(a){return this.clone().qj(a)},round:function(){return this.clone().rj()},angle:function(){return Math.atan2(this.y,this.x)},fj:function(a){this.x+=a.x;this.y+=a.y;return this},qj:function(a){var b=
Math.cos(a);a=Math.sin(a);var d=a*this.x+b*this.y;this.x=b*this.x-a*this.y;this.y=d;return this},rj:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this}};f.b=function(a){return a instanceof f?a:Array.isArray(a)?new f(a[0],a[1]):a}},{}],2:[function(a,b){b.ja.ej=a("./lib/vectortile.js");b.ja.Np=a("./lib/vectortilefeature.js");b.ja.Op=a("./lib/vectortilelayer.js")},{"./lib/vectortile.js":3,"./lib/vectortilefeature.js":4,"./lib/vectortilelayer.js":5}],3:[function(a,b){function f(a,
b,d){3===a&&(a=new g(d,d.Da()+d.da),a.length&&(b[a.name]=a))}var g=a("./vectortilelayer");b.ja=function(a,b){this.layers=a.Lf(f,{},b)}},{"./vectortilelayer":5}],4:[function(a,b){function f(a,b,d,e,f){this.properties={};this.extent=d;this.type=0;this.qc=a;this.Qe=-1;this.Id=e;this.Kd=f;a.Lf(g,this,b)}function g(a,b,d){if(1==a)b.Qp=d.Da();else if(2==a)for(a=d.Da()+d.da;d.da<a;){var e=b.Id[d.Da()],f=b.Kd[d.Da()];b.properties[e]=f}else 3==a?b.type=d.Da():4==a&&(b.Qe=d.da)}var h=a("point-geometry");b.ja=
f;f.b=["Unknown","Point","LineString","Polygon"];f.prototype.Vg=function(){var a=this.qc;a.da=this.Qe;for(var b=a.Da()+a.da,d=1,e=0,f=0,g=0,v=[],y;a.da<b;)if(e||(e=a.Da(),d=e&7,e>>=3),e--,1===d||2===d)f+=a.xd(),g+=a.xd(),1===d&&(y&&v.push(y),y=[]),y.push(new h(f,g));else if(7===d)y&&y.push(y[0].clone());else throw Error("unknown command "+d);y&&v.push(y);return v};f.prototype.bbox=function(){var a=this.qc;a.da=this.Qe;for(var b=a.Da()+a.da,d=1,e=0,f=0,g=0,h=Infinity,y=-Infinity,w=Infinity,G=-Infinity;a.da<
b;)if(e||(e=a.Da(),d=e&7,e>>=3),e--,1===d||2===d)f+=a.xd(),g+=a.xd(),f<h&&(h=f),f>y&&(y=f),g<w&&(w=g),g>G&&(G=g);else if(7!==d)throw Error("unknown command "+d);return[h,w,y,G]}},{"point-geometry":1}],5:[function(a,b){function f(a,b){this.version=1;this.name=null;this.extent=4096;this.length=0;this.qc=a;this.Id=[];this.Kd=[];this.Hd=[];a.Lf(g,this,b);this.length=this.Hd.length}function g(a,b,d){15===a?b.version=d.Da():1===a?b.name=d.Qf():5===a?b.extent=d.Da():2===a?b.Hd.push(d.da):3===a?b.Id.push(d.Qf()):
4===a&&b.Kd.push(h(d))}function h(a){for(var b=null,d=a.Da()+a.da;a.da<d;)b=a.Da()>>3,b=1===b?a.Qf():2===b?a.Bo():3===b?a.xo():4===b?a.Mo():5===b?a.Da():6===b?a.xd():7===b?a.vo():null;return b}var l=a("./vectortilefeature.js");b.ja=f;f.prototype.feature=function(a){if(0>a||a>=this.Hd.length)throw Error("feature index out of bounds");this.qc.da=this.Hd[a];a=this.qc.Da()+this.qc.da;return new l(this.qc,a,this.extent,this.Id,this.Kd)}},{"./vectortilefeature.js":4}]},{},[2])(2)});il=b.ja})();function vr(a){this.defaultDataProjection=null;a=a?a:{};this.defaultDataProjection=new wc({code:"",units:"tile-pixels"});this.b=a.featureClass?a.featureClass:ik;this.g=a.geometryName?a.geometryName:"geometry";this.a=a.layerName?a.layerName:"layer";this.f=a.layers?a.layers:null}x(vr,rn);vr.prototype.Y=function(){return"arraybuffer"};
vr.prototype.Fa=function(a,b){var c=this.f,d=new hl(a),d=new il.ej(d),e=[],f=this.b,g,h,l;for(l in d.layers)if(!c||-1!=c.indexOf(l)){g=d.layers[l];for(var m=0,n=g.length;m<n;++m){if(f===ik){var p=g.feature(m);h=l;var q=p.Vg(),r=[],v=[];wr(q,v,r);var y=p.type,w=void 0;1===y?w=1===q.length?"Point":"MultiPoint":2===y?w=1===q.length?"LineString":"MultiLineString":3===y&&(w="Polygon");p=p.properties;p[this.a]=h;h=new this.b(w,v,r,p)}else{p=g.feature(m);w=l;v=b;h=new this.b;r=p.properties;r[this.a]=w;w=
p.type;if(0===w)w=null;else{p=p.Vg();q=[];y=[];wr(p,y,q);var G=void 0;1===w?G=1===p.length?new C(null):new T(null):2===w?1===p.length?G=new R(null):G=new S(null):3===w&&(G=new E(null));G.ba("XY",y,q);w=G}(v=un(w,!1,tn(this,v)))&&(r[this.g]=v);h.G(r);h.Ec(this.g)}e.push(h)}}return e};vr.prototype.Oa=function(){return this.defaultDataProjection};vr.prototype.c=function(a){this.f=a};
function wr(a,b,c){for(var d=0,e=0,f=a.length;e<f;++e){var g=a[e],h,l;h=0;for(l=g.length;h<l;++h){var m=g[h];b.push(m.x,m.y)}d+=2*h;c.push(d)}};function xr(a,b){return new yr(a,b)}function zr(a,b,c){return new Ar(a,b,c)}function Br(a){this.Xb=a}function Cr(a){this.Xb=a}x(Cr,Br);function Dr(a,b,c){this.Xb=a;this.b=b;this.a=c}x(Dr,Cr);function yr(a,b){Dr.call(this,"And",a,b)}x(yr,Dr);function Er(a,b){Dr.call(this,"Or",a,b)}x(Er,Dr);function Fr(a){this.Xb="Not";this.condition=a}x(Fr,Cr);function Ar(a,b,c){this.Xb="BBOX";this.geometryName=a;this.extent=b;this.srsName=c}x(Ar,Br);function Gr(a,b){this.Xb=a;this.b=b}x(Gr,Br);
function Hr(a,b,c,d){Gr.call(this,a,b);this.g=c;this.a=d}x(Hr,Gr);function Ir(a,b,c){Hr.call(this,"PropertyIsEqualTo",a,b,c)}x(Ir,Hr);function Jr(a,b,c){Hr.call(this,"PropertyIsNotEqualTo",a,b,c)}x(Jr,Hr);function Kr(a,b){Hr.call(this,"PropertyIsLessThan",a,b)}x(Kr,Hr);function Lr(a,b){Hr.call(this,"PropertyIsLessThanOrEqualTo",a,b)}x(Lr,Hr);function Mr(a,b){Hr.call(this,"PropertyIsGreaterThan",a,b)}x(Mr,Hr);function Nr(a,b){Hr.call(this,"PropertyIsGreaterThanOrEqualTo",a,b)}x(Nr,Hr);
function Or(a){Gr.call(this,"PropertyIsNull",a)}x(Or,Gr);function Pr(a,b,c){Gr.call(this,"PropertyIsBetween",a);this.a=b;this.g=c}x(Pr,Gr);function Qr(a,b,c,d,e,f){Gr.call(this,"PropertyIsLike",a);this.f=b;this.i=void 0!==c?c:"*";this.c=void 0!==d?d:".";this.g=void 0!==e?e:"!";this.a=f}x(Qr,Gr);function Rr(){Tn.call(this);this.defaultDataProjection=zc("EPSG:4326")}x(Rr,Tn);function Sr(a,b){b[b.length-1].Cd[a.getAttribute("k")]=a.getAttribute("v")}
var Tr=[null],Ur=N(Tr,{nd:function(a,b){b[b.length-1].Rc.push(a.getAttribute("ref"))},tag:Sr}),Wr=N(Tr,{node:function(a,b){var c=b[0],d=b[b.length-1],e=a.getAttribute("id"),f=[parseFloat(a.getAttribute("lon")),parseFloat(a.getAttribute("lat"))];d.Zg[e]=f;var g=O({Cd:{}},Vr,a,b);Ga(g.Cd)||(f=new C(f),un(f,!1,c),c=new Ik(f),c.mc(e),c.G(g.Cd),d.features.push(c))},way:function(a,b){for(var c=b[0],d=a.getAttribute("id"),e=O({Rc:[],Cd:{}},Ur,a,b),f=b[b.length-1],g=[],h=0,l=e.Rc.length;h<l;h++)jb(g,f.Zg[e.Rc[h]]);
e.Rc[0]==e.Rc[e.Rc.length-1]?(h=new E(null),h.ba("XY",g,[g.length])):(h=new R(null),h.ba("XY",g));un(h,!1,c);c=new Ik(h);c.mc(d);c.G(e.Cd);f.features.push(c)}}),Vr=N(Tr,{tag:Sr});Rr.prototype.lc=function(a,b){var c=sn(this,a,b);return"osm"==a.localName&&(c=O({Zg:{},features:[]},Wr,a,[c]),c.features)?c.features:[]};function Xr(a){return a.getAttributeNS("http://www.w3.org/1999/xlink","href")};function Yr(){}Yr.prototype.read=function(a){return Pk(a)?this.a(a):Qk(a)?this.b(a):"string"===typeof a?(a=Rk(a),this.a(a)):null};function Zr(){}x(Zr,Yr);Zr.prototype.a=function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return this.b(a);return null};Zr.prototype.b=function(a){return(a=O({},$r,a,[]))?a:null};
var as=[null,"http://www.opengis.net/ows/1.1"],$r=N(as,{ServiceIdentification:K(function(a,b){return O({},bs,a,b)}),ServiceProvider:K(function(a,b){return O({},cs,a,b)}),OperationsMetadata:K(function(a,b){return O({},ds,a,b)})}),es=N(as,{DeliveryPoint:K(V),City:K(V),AdministrativeArea:K(V),PostalCode:K(V),Country:K(V),ElectronicMailAddress:K(V)}),fs=N(as,{Value:Vk(function(a){return V(a)})}),gs=N(as,{AllowedValues:K(function(a,b){return O({},fs,a,b)})}),is=N(as,{Phone:K(function(a,b){return O({},
hs,a,b)}),Address:K(function(a,b){return O({},es,a,b)})}),ks=N(as,{HTTP:K(function(a,b){return O({},js,a,b)})}),js=N(as,{Get:Vk(function(a,b){var c=Xr(a);return c?O({href:c},ls,a,b):void 0}),Post:void 0}),ms=N(as,{DCP:K(function(a,b){return O({},ks,a,b)})}),ds=N(as,{Operation:function(a,b){var c=a.getAttribute("name"),d=O({},ms,a,b);d&&(b[b.length-1][c]=d)}}),hs=N(as,{Voice:K(V),Facsimile:K(V)}),ls=N(as,{Constraint:Vk(function(a,b){var c=a.getAttribute("name");return c?O({name:c},gs,a,b):void 0})}),
ns=N(as,{IndividualName:K(V),PositionName:K(V),ContactInfo:K(function(a,b){return O({},is,a,b)})}),bs=N(as,{Title:K(V),ServiceTypeVersion:K(V),ServiceType:K(V)}),cs=N(as,{ProviderName:K(V),ProviderSite:K(Xr),ServiceContact:K(function(a,b){return O({},ns,a,b)})});function os(a,b,c,d){var e;void 0!==d?e=d:e=[];for(var f=d=0;f<b;){var g=a[f++];e[d++]=a[f++];e[d++]=g;for(g=2;g<c;++g)e[d++]=a[f++]}e.length=d};function ps(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=zc("EPSG:4326");this.b=a.factor?a.factor:1E5;this.a=a.geometryLayout?a.geometryLayout:"XY"}x(ps,ap);function qs(a,b,c){var d,e=Array(b);for(d=0;d<b;++d)e[d]=0;var f,g;f=0;for(g=a.length;f<g;)for(d=0;d<b;++d,++f){var h=a[f],l=h-e[d];e[d]=h;a[f]=l}return rs(a,c?c:1E5)}
function ss(a,b,c){var d,e=Array(b);for(d=0;d<b;++d)e[d]=0;a=ts(a,c?c:1E5);var f;c=0;for(f=a.length;c<f;)for(d=0;d<b;++d,++c)e[d]+=a[c],a[c]=e[d];return a}function rs(a,b){var c=b?b:1E5,d,e;d=0;for(e=a.length;d<e;++d)a[d]=Math.round(a[d]*c);c=0;for(d=a.length;c<d;++c)e=a[c],a[c]=0>e?~(e<<1):e<<1;c="";d=0;for(e=a.length;d<e;++d){for(var f=a[d],g,h="";32<=f;)g=(32|f&31)+63,h+=String.fromCharCode(g),f>>=5;h+=String.fromCharCode(f+63);c+=h}return c}
function ts(a,b){var c=b?b:1E5,d=[],e=0,f=0,g,h;g=0;for(h=a.length;g<h;++g){var l=a.charCodeAt(g)-63,e=e|(l&31)<<f;32>l?(d.push(e),f=e=0):f+=5}e=0;for(f=d.length;e<f;++e)g=d[e],d[e]=g&1?~(g>>1):g>>1;e=0;for(f=d.length;e<f;++e)d[e]/=c;return d}k=ps.prototype;k.ud=function(a,b){var c=this.wd(a,b);return new Ik(c)};k.Kf=function(a,b){return[this.ud(a,b)]};k.wd=function(a,b){var c=Xc(this.a),d=ss(a,c,this.b);os(d,d.length,c,d);c=jd(d,0,d.length,c);return un(new R(c,this.a),!1,tn(this,b))};
k.He=function(a,b){var c=a.X();return c?this.Ed(c,b):""};k.Ci=function(a,b){return this.He(a[0],b)};k.Ed=function(a,b){a=un(a,!0,tn(this,b));var c=a.la(),d=a.va();os(c,c.length,d,c);return qs(c,d,this.b)};function us(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=zc(a.defaultDataProjection?a.defaultDataProjection:"EPSG:4326")}x(us,vn);function vs(a,b){var c=[],d,e,f,g;f=0;for(g=a.length;f<g;++f)d=a[f],0<f&&c.pop(),0<=d?e=b[d]:e=b[~d].slice().reverse(),c.push.apply(c,e);d=0;for(e=c.length;d<e;++d)c[d]=c[d].slice();return c}function ws(a,b,c,d,e){a=a.geometries;var f=[],g,h;g=0;for(h=a.length;g<h;++g)f[g]=xs(a[g],b,c,d,e);return f}
function xs(a,b,c,d,e){var f=a.type,g=ys[f];b="Point"===f||"MultiPoint"===f?g(a,c,d):g(a,b);c=new Ik;c.Ua(un(b,!1,e));void 0!==a.id&&c.mc(a.id);a.properties&&c.G(a.properties);return c}
us.prototype.Jf=function(a,b){if("Topology"==a.type){var c,d=null,e=null;a.transform&&(c=a.transform,d=c.scale,e=c.translate);var f=a.arcs;if(c){c=d;var g=e,h,l;h=0;for(l=f.length;h<l;++h){var m=f[h],n=c,p=g,q=0,r=0,v,y,w;y=0;for(w=m.length;y<w;++y)v=m[y],q+=v[0],r+=v[1],v[0]=q,v[1]=r,zs(v,n,p)}}c=[];g=Ea(a.objects);h=0;for(l=g.length;h<l;++h)"GeometryCollection"===g[h].type?(m=g[h],c.push.apply(c,ws(m,f,d,e,b))):(m=g[h],c.push(xs(m,f,d,e,b)));return c}return[]};
function zs(a,b,c){a[0]=a[0]*b[0]+c[0];a[1]=a[1]*b[1]+c[1]}us.prototype.Oa=function(){return this.defaultDataProjection};
var ys={Point:function(a,b,c){a=a.coordinates;b&&c&&zs(a,b,c);return new C(a)},LineString:function(a,b){var c=vs(a.arcs,b);return new R(c)},Polygon:function(a,b){var c=[],d,e;d=0;for(e=a.arcs.length;d<e;++d)c[d]=vs(a.arcs[d],b);return new E(c)},MultiPoint:function(a,b,c){a=a.coordinates;var d,e;if(b&&c)for(d=0,e=a.length;d<e;++d)zs(a[d],b,c);return new T(a)},MultiLineString:function(a,b){var c=[],d,e;d=0;for(e=a.arcs.length;d<e;++d)c[d]=vs(a.arcs[d],b);return new S(c)},MultiPolygon:function(a,b){var c=
[],d,e,f,g,h,l;h=0;for(l=a.arcs.length;h<l;++h){d=a.arcs[h];e=[];f=0;for(g=d.length;f<g;++f)e[f]=vs(d[f],b);c[h]=e}return new U(c)}};function As(a){a=a?a:{};this.i=a.featureType;this.g=a.featureNS;this.b=a.gmlFormat?a.gmlFormat:new ko;this.c=a.schemaLocation?a.schemaLocation:"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd";Tn.call(this)}x(As,Tn);As.prototype.lc=function(a,b){var c={featureType:this.i,featureNS:this.g};Ca(c,sn(this,a,b?b:{}));c=[c];this.b.b["http://www.opengis.net/gml"].featureMember=Tk(Wn.prototype.vd);(c=O([],this.b.b,a,c,this.b))||(c=[]);return c};
As.prototype.o=function(a){if(Pk(a))return Bs(a);if(Qk(a))return O({},Cs,a,[]);if("string"===typeof a)return a=Rk(a),Bs(a)};As.prototype.l=function(a){if(Pk(a))return Ds(this,a);if(Qk(a))return Es(this,a);if("string"===typeof a)return a=Rk(a),Ds(this,a)};function Ds(a,b){for(var c=b.firstChild;c;c=c.nextSibling)if(c.nodeType==Node.ELEMENT_NODE)return Es(a,c)}var Fs={"http://www.opengis.net/gml":{boundedBy:K(Wn.prototype.ye,"bounds")}};
function Es(a,b){var c={},d=eo(b.getAttribute("numberOfFeatures"));c.numberOfFeatures=d;return O(c,Fs,b,[],a.b)}
var Gs={"http://www.opengis.net/wfs":{totalInserted:K(co),totalUpdated:K(co),totalDeleted:K(co)}},Hs={"http://www.opengis.net/ogc":{FeatureId:Tk(function(a){return a.getAttribute("fid")})}},Is={"http://www.opengis.net/wfs":{Feature:function(a,b){al(Hs,a,b)}}},Cs={"http://www.opengis.net/wfs":{TransactionSummary:K(function(a,b){return O({},Gs,a,b)},"transactionSummary"),InsertResults:K(function(a,b){return O([],Is,a,b)},"insertIds")}};
function Bs(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return O({},Cs,a,[])}var Js={"http://www.opengis.net/wfs":{PropertyName:L(go)}};function Ks(a,b){var c=Mk("http://www.opengis.net/ogc","Filter"),d=Mk("http://www.opengis.net/ogc","FeatureId");c.appendChild(d);d.setAttribute("fid",b);a.appendChild(c)}
var Ls={"http://www.opengis.net/wfs":{Insert:L(function(a,b,c){var d=c[c.length-1],d=Mk(d.featureNS,d.featureType);a.appendChild(d);ko.prototype.Bi(d,b,c)}),Update:L(function(a,b,c){var d=c[c.length-1],e=d.featureType,f=d.featurePrefix,f=f?f:"feature",g=d.featureNS;a.setAttribute("typeName",f+":"+e);a.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:"+f,g);e=b.Xa();if(void 0!==e){for(var f=b.N(),g=[],h=0,l=f.length;h<l;h++){var m=b.get(f[h]);void 0!==m&&g.push({name:f[h],value:m})}bl({node:a,
srsName:d.srsName},Ls,Xk("Property"),g,c);Ks(a,e)}}),Delete:L(function(a,b,c){var d=c[c.length-1];c=d.featureType;var e=d.featurePrefix,e=e?e:"feature",d=d.featureNS;a.setAttribute("typeName",e+":"+c);a.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:"+e,d);b=b.Xa();void 0!==b&&Ks(a,b)}),Property:L(function(a,b,c){var d=Mk("http://www.opengis.net/wfs","Name");a.appendChild(d);go(d,b.name);void 0!==b.value&&null!==b.value&&(d=Mk("http://www.opengis.net/wfs","Value"),a.appendChild(d),b.value instanceof
Uc?ko.prototype.Je(d,b.value,c):go(d,b.value))}),Native:L(function(a,b){b.wp&&a.setAttribute("vendorId",b.wp);void 0!==b.Yo&&a.setAttribute("safeToIgnore",b.Yo);void 0!==b.value&&go(a,b.value)})}};function Ms(a,b,c){a={node:a};var d=b.b;bl(a,Ns,Xk(d.Xb),[d],c);b=b.a;bl(a,Ns,Xk(b.Xb),[b],c)}function Os(a,b){void 0!==b.a&&a.setAttribute("matchCase",b.a.toString());Ps(a,b.b);Qs("Literal",a,""+b.g)}function Qs(a,b,c){a=Mk("http://www.opengis.net/ogc",a);go(a,c);b.appendChild(a)}
function Ps(a,b){Qs("PropertyName",a,b)}
var Ns={"http://www.opengis.net/wfs":{Query:L(function(a,b,c){var d=c[c.length-1],e=d.featurePrefix,f=d.featureNS,g=d.propertyNames,h=d.srsName;a.setAttribute("typeName",(e?e+":":"")+b);h&&a.setAttribute("srsName",h);f&&a.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:"+e,f);b=Ca({},d);b.node=a;bl(b,Js,Xk("PropertyName"),g,c);if(d=d.filter)g=Mk("http://www.opengis.net/ogc","Filter"),a.appendChild(g),bl({node:g},Ns,Xk(d.Xb),[d],c)})},"http://www.opengis.net/ogc":{And:L(Ms),Or:L(Ms),Not:L(function(a,
b,c){b=b.condition;bl({node:a},Ns,Xk(b.Xb),[b],c)}),BBOX:L(function(a,b,c){c[c.length-1].srsName=b.srsName;Ps(a,b.geometryName);ko.prototype.Je(a,b.extent,c)}),PropertyIsEqualTo:L(Os),PropertyIsNotEqualTo:L(Os),PropertyIsLessThan:L(Os),PropertyIsLessThanOrEqualTo:L(Os),PropertyIsGreaterThan:L(Os),PropertyIsGreaterThanOrEqualTo:L(Os),PropertyIsNull:L(function(a,b){Ps(a,b.b)}),PropertyIsBetween:L(function(a,b){Ps(a,b.b);Qs("LowerBoundary",a,""+b.a);Qs("UpperBoundary",a,""+b.g)}),PropertyIsLike:L(function(a,
b){a.setAttribute("wildCard",b.i);a.setAttribute("singleChar",b.c);a.setAttribute("escapeChar",b.g);void 0!==b.a&&a.setAttribute("matchCase",b.a.toString());Ps(a,b.b);Qs("Literal",a,""+b.f)})}};
As.prototype.j=function(a){var b=Mk("http://www.opengis.net/wfs","GetFeature");b.setAttribute("service","WFS");b.setAttribute("version","1.1.0");var c;if(a&&(a.handle&&b.setAttribute("handle",a.handle),a.outputFormat&&b.setAttribute("outputFormat",a.outputFormat),void 0!==a.maxFeatures&&b.setAttribute("maxFeatures",a.maxFeatures),a.resultType&&b.setAttribute("resultType",a.resultType),void 0!==a.startIndex&&b.setAttribute("startIndex",a.startIndex),void 0!==a.count&&b.setAttribute("count",a.count),
c=a.filter,a.bbox)){var d=zr(a.geometryName,a.bbox,a.srsName);c?c=xr(c,d):c=d}b.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",this.c);d=a.featureTypes;a=[{node:b,srsName:a.srsName,featureNS:a.featureNS?a.featureNS:this.g,featurePrefix:a.featurePrefix,geometryName:a.geometryName,filter:c,propertyNames:a.propertyNames?a.propertyNames:[]}];c=Ca({},a[a.length-1]);c.node=b;bl(c,Ns,Xk("Query"),d,a);return b};
As.prototype.U=function(a,b,c,d){var e=[],f=Mk("http://www.opengis.net/wfs","Transaction");f.setAttribute("service","WFS");f.setAttribute("version","1.1.0");var g,h;d&&(g=d.gmlOptions?d.gmlOptions:{},d.handle&&f.setAttribute("handle",d.handle));f.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",this.c);a&&(h={node:f,featureNS:d.featureNS,featureType:d.featureType,featurePrefix:d.featurePrefix,srsName:d.srsName},Ca(h,g),bl(h,Ls,Xk("Insert"),a,e));b&&(h={node:f,featureNS:d.featureNS,
featureType:d.featureType,featurePrefix:d.featurePrefix,srsName:d.srsName},Ca(h,g),bl(h,Ls,Xk("Update"),b,e));c&&bl({node:f,featureNS:d.featureNS,featureType:d.featureType,featurePrefix:d.featurePrefix,srsName:d.srsName},Ls,Xk("Delete"),c,e);d.nativeElements&&bl({node:f,featureNS:d.featureNS,featureType:d.featureType,featurePrefix:d.featurePrefix,srsName:d.srsName},Ls,Xk("Native"),d.nativeElements,e);return f};
As.prototype.Pf=function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return this.Be(a);return null};As.prototype.Be=function(a){if(a.firstElementChild&&a.firstElementChild.firstElementChild)for(a=a.firstElementChild.firstElementChild,a=a.firstElementChild;a;a=a.nextElementSibling)if(0!==a.childNodes.length&&(1!==a.childNodes.length||3!==a.firstChild.nodeType)){var b=[{}];this.b.ye(a,b);return zc(b.pop().srsName)}return null};function Rs(a){a=a?a:{};this.defaultDataProjection=null;this.b=void 0!==a.splitCollection?a.splitCollection:!1}x(Rs,ap);function Ss(a){a=a.Z();return 0===a.length?"":a[0]+" "+a[1]}function Ts(a){a=a.Z();for(var b=[],c=0,d=a.length;c<d;++c)b.push(a[c][0]+" "+a[c][1]);return b.join(",")}function Us(a){var b=[];a=a.Vd();for(var c=0,d=a.length;c<d;++c)b.push("("+Ts(a[c])+")");return b.join(",")}function Vs(a){var b=a.Y();a=(0,Ws[b])(a);b=b.toUpperCase();return 0===a.length?b+" EMPTY":b+"("+a+")"}
var Ws={Point:Ss,LineString:Ts,Polygon:Us,MultiPoint:function(a){var b=[];a=a.je();for(var c=0,d=a.length;c<d;++c)b.push("("+Ss(a[c])+")");return b.join(",")},MultiLineString:function(a){var b=[];a=a.md();for(var c=0,d=a.length;c<d;++c)b.push("("+Ts(a[c])+")");return b.join(",")},MultiPolygon:function(a){var b=[];a=a.Wd();for(var c=0,d=a.length;c<d;++c)b.push("("+Us(a[c])+")");return b.join(",")},GeometryCollection:function(a){var b=[];a=a.ff();for(var c=0,d=a.length;c<d;++c)b.push(Vs(a[c]));return b.join(",")}};
k=Rs.prototype;k.ud=function(a,b){var c=this.wd(a,b);if(c){var d=new Ik;d.Ua(c);return d}return null};k.Kf=function(a,b){var c=[],d=this.wd(a,b);this.b&&"GeometryCollection"==d.Y()?c=d.c:c=[d];for(var e=[],f=0,g=c.length;f<g;++f)d=new Ik,d.Ua(c[f]),e.push(d);return e};k.wd=function(a,b){var c;c=new Xs(new Ys(a));c.b=Zs(c.a);return(c=$s(c))?un(c,!1,b):null};k.He=function(a,b){var c=a.X();return c?this.Ed(c,b):""};
k.Ci=function(a,b){if(1==a.length)return this.He(a[0],b);for(var c=[],d=0,e=a.length;d<e;++d)c.push(a[d].X());c=new Kn(c);return this.Ed(c,b)};k.Ed=function(a,b){return Vs(un(a,!0,b))};function Ys(a){this.a=a;this.b=-1}
function Zs(a){var b=a.a.charAt(++a.b),c={position:a.b,value:b};if("("==b)c.type=2;else if(","==b)c.type=5;else if(")"==b)c.type=3;else if("0"<=b&&"9">=b||"."==b||"-"==b){c.type=4;var d,b=a.b,e=!1,f=!1;do{if("."==d)e=!0;else if("e"==d||"E"==d)f=!0;d=a.a.charAt(++a.b)}while("0"<=d&&"9">=d||"."==d&&(void 0===e||!e)||!f&&("e"==d||"E"==d)||f&&("-"==d||"+"==d));a=parseFloat(a.a.substring(b,a.b--));c.value=a}else if("a"<=b&&"z">=b||"A"<=b&&"Z">=b){c.type=1;b=a.b;do d=a.a.charAt(++a.b);while("a"<=d&&"z">=
d||"A"<=d&&"Z">=d);a=a.a.substring(b,a.b--).toUpperCase();c.value=a}else{if(" "==b||"\t"==b||"\r"==b||"\n"==b)return Zs(a);if(""===b)c.type=6;else throw Error("Unexpected character: "+b);}return c}function Xs(a){this.a=a}k=Xs.prototype;k.match=function(a){if(a=this.b.type==a)this.b=Zs(this.a);return a};
function $s(a){var b=a.b;if(a.match(1)){var c=b.value;if("GEOMETRYCOLLECTION"==c){a:{if(a.match(2)){b=[];do b.push($s(a));while(a.match(5));if(a.match(3)){a=b;break a}}else if(at(a)){a=[];break a}throw Error(bt(a));}return new Kn(a)}var d=ct[c],b=dt[c];if(!d||!b)throw Error("Invalid geometry type: "+c);a=d.call(a);return new b(a)}throw Error(bt(a));}k.Ef=function(){if(this.match(2)){var a=et(this);if(this.match(3))return a}else if(at(this))return null;throw Error(bt(this));};
k.Df=function(){if(this.match(2)){var a=ft(this);if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};k.Ff=function(){if(this.match(2)){var a=gt(this);if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};k.io=function(){if(this.match(2)){var a;if(2==this.b.type)for(a=[this.Ef()];this.match(5);)a.push(this.Ef());else a=ft(this);if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};
k.ho=function(){if(this.match(2)){var a=gt(this);if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};k.jo=function(){if(this.match(2)){for(var a=[this.Ff()];this.match(5);)a.push(this.Ff());if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};function et(a){for(var b=[],c=0;2>c;++c){var d=a.b;if(a.match(4))b.push(d.value);else break}if(2==b.length)return b;throw Error(bt(a));}function ft(a){for(var b=[et(a)];a.match(5);)b.push(et(a));return b}
function gt(a){for(var b=[a.Df()];a.match(5);)b.push(a.Df());return b}function at(a){var b=1==a.b.type&&"EMPTY"==a.b.value;b&&(a.b=Zs(a.a));return b}function bt(a){return"Unexpected `"+a.b.value+"` at position "+a.b.position+" in `"+a.a.a+"`"}var dt={POINT:C,LINESTRING:R,POLYGON:E,MULTIPOINT:T,MULTILINESTRING:S,MULTIPOLYGON:U},ct={POINT:Xs.prototype.Ef,LINESTRING:Xs.prototype.Df,POLYGON:Xs.prototype.Ff,MULTIPOINT:Xs.prototype.io,MULTILINESTRING:Xs.prototype.ho,MULTIPOLYGON:Xs.prototype.jo};function ht(){this.version=void 0}x(ht,Yr);ht.prototype.a=function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return this.b(a);return null};ht.prototype.b=function(a){this.version=a.getAttribute("version").trim();return(a=O({version:this.version},it,a,[]))?a:null};function jt(a,b){return O({},kt,a,b)}function lt(a,b){return O({},mt,a,b)}function nt(a,b){var c=jt(a,b);if(c){var d=[eo(a.getAttribute("width")),eo(a.getAttribute("height"))];c.size=d;return c}}
function ot(a,b){return O([],pt,a,b)}
var qt=[null,"http://www.opengis.net/wms"],it=N(qt,{Service:K(function(a,b){return O({},rt,a,b)}),Capability:K(function(a,b){return O({},st,a,b)})}),st=N(qt,{Request:K(function(a,b){return O({},tt,a,b)}),Exception:K(function(a,b){return O([],ut,a,b)}),Layer:K(function(a,b){return O({},vt,a,b)})}),rt=N(qt,{Name:K(V),Title:K(V),Abstract:K(V),KeywordList:K(ot),OnlineResource:K(Xr),ContactInformation:K(function(a,b){return O({},wt,a,b)}),Fees:K(V),AccessConstraints:K(V),LayerLimit:K(co),MaxWidth:K(co),
MaxHeight:K(co)}),wt=N(qt,{ContactPersonPrimary:K(function(a,b){return O({},xt,a,b)}),ContactPosition:K(V),ContactAddress:K(function(a,b){return O({},yt,a,b)}),ContactVoiceTelephone:K(V),ContactFacsimileTelephone:K(V),ContactElectronicMailAddress:K(V)}),xt=N(qt,{ContactPerson:K(V),ContactOrganization:K(V)}),yt=N(qt,{AddressType:K(V),Address:K(V),City:K(V),StateOrProvince:K(V),PostCode:K(V),Country:K(V)}),ut=N(qt,{Format:Tk(V)}),vt=N(qt,{Name:K(V),Title:K(V),Abstract:K(V),KeywordList:K(ot),CRS:Vk(V),
EX_GeographicBoundingBox:K(function(a,b){var c=O({},zt,a,b);if(c){var d=c.westBoundLongitude,e=c.southBoundLatitude,f=c.eastBoundLongitude,c=c.northBoundLatitude;return void 0===d||void 0===e||void 0===f||void 0===c?void 0:[d,e,f,c]}}),BoundingBox:Vk(function(a){var b=[bo(a.getAttribute("minx")),bo(a.getAttribute("miny")),bo(a.getAttribute("maxx")),bo(a.getAttribute("maxy"))],c=[bo(a.getAttribute("resx")),bo(a.getAttribute("resy"))];return{crs:a.getAttribute("CRS"),extent:b,res:c}}),Dimension:Vk(function(a){return{name:a.getAttribute("name"),
units:a.getAttribute("units"),unitSymbol:a.getAttribute("unitSymbol"),"default":a.getAttribute("default"),multipleValues:Zn(a.getAttribute("multipleValues")),nearestValue:Zn(a.getAttribute("nearestValue")),current:Zn(a.getAttribute("current")),values:V(a)}}),Attribution:K(function(a,b){return O({},At,a,b)}),AuthorityURL:Vk(function(a,b){var c=jt(a,b);if(c)return c.name=a.getAttribute("name"),c}),Identifier:Vk(V),MetadataURL:Vk(function(a,b){var c=jt(a,b);if(c)return c.type=a.getAttribute("type"),
c}),DataURL:Vk(jt),FeatureListURL:Vk(jt),Style:Vk(function(a,b){return O({},Bt,a,b)}),MinScaleDenominator:K(ao),MaxScaleDenominator:K(ao),Layer:Vk(function(a,b){var c=b[b.length-1],d=O({},vt,a,b);if(d){var e=Zn(a.getAttribute("queryable"));void 0===e&&(e=c.queryable);d.queryable=void 0!==e?e:!1;e=eo(a.getAttribute("cascaded"));void 0===e&&(e=c.cascaded);d.cascaded=e;e=Zn(a.getAttribute("opaque"));void 0===e&&(e=c.opaque);d.opaque=void 0!==e?e:!1;e=Zn(a.getAttribute("noSubsets"));void 0===e&&(e=c.noSubsets);
d.noSubsets=void 0!==e?e:!1;(e=bo(a.getAttribute("fixedWidth")))||(e=c.fixedWidth);d.fixedWidth=e;(e=bo(a.getAttribute("fixedHeight")))||(e=c.fixedHeight);d.fixedHeight=e;["Style","CRS","AuthorityURL"].forEach(function(a){a in c&&(d[a]=(d[a]||[]).concat(c[a]))});"EX_GeographicBoundingBox BoundingBox Dimension Attribution MinScaleDenominator MaxScaleDenominator".split(" ").forEach(function(a){a in d||(d[a]=c[a])});return d}})}),At=N(qt,{Title:K(V),OnlineResource:K(Xr),LogoURL:K(nt)}),zt=N(qt,{westBoundLongitude:K(ao),
eastBoundLongitude:K(ao),southBoundLatitude:K(ao),northBoundLatitude:K(ao)}),tt=N(qt,{GetCapabilities:K(lt),GetMap:K(lt),GetFeatureInfo:K(lt)}),mt=N(qt,{Format:Vk(V),DCPType:Vk(function(a,b){return O({},Ct,a,b)})}),Ct=N(qt,{HTTP:K(function(a,b){return O({},Dt,a,b)})}),Dt=N(qt,{Get:K(jt),Post:K(jt)}),Bt=N(qt,{Name:K(V),Title:K(V),Abstract:K(V),LegendURL:Vk(nt),StyleSheetURL:K(jt),StyleURL:K(jt)}),kt=N(qt,{Format:K(V),OnlineResource:K(Xr)}),pt=N(qt,{Keyword:Tk(V)});function Et(a){a=a?a:{};this.g="http://mapserver.gis.umn.edu/mapserver";this.b=new jo;this.c=a.layers?a.layers:null;Tn.call(this)}x(Et,Tn);
Et.prototype.lc=function(a,b){var c={};b&&Ca(c,sn(this,a,b));var d=[c];a.setAttribute("namespaceURI",this.g);var e=a.localName,c=[];if(0!==a.childNodes.length){if("msGMLOutput"==e)for(var f=0,g=a.childNodes.length;f<g;f++){var h=a.childNodes[f];if(h.nodeType===Node.ELEMENT_NODE){var l=d[0],m=h.localName.replace("_layer","");if(!this.c||gb(this.c,m)){m+="_feature";l.featureType=m;l.featureNS=this.g;var n={};n[m]=Tk(this.b.If,this.b);l=N([l.featureNS,null],n);h.setAttribute("namespaceURI",this.g);(h=
O([],l,h,d,this.b))&&jb(c,h)}}}"FeatureCollection"==e&&(d=O([],this.b.b,a,[{}],this.b))&&(c=d)}return c};function Ft(){this.g=new Zr}x(Ft,Yr);Ft.prototype.a=function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return this.b(a);return null};Ft.prototype.b=function(a){var b=a.getAttribute("version").trim(),c=this.g.b(a);if(!c)return null;c.version=b;return(c=O(c,Gt,a,[]))?c:null};function Ht(a){var b=V(a).split(" ");if(b&&2==b.length)return a=+b[0],b=+b[1],isNaN(a)||isNaN(b)?void 0:[a,b]}
var It=[null,"http://www.opengis.net/wmts/1.0"],Jt=[null,"http://www.opengis.net/ows/1.1"],Gt=N(It,{Contents:K(function(a,b){return O({},Kt,a,b)})}),Kt=N(It,{Layer:Vk(function(a,b){return O({},Lt,a,b)}),TileMatrixSet:Vk(function(a,b){return O({},Mt,a,b)})}),Lt=N(It,{Style:Vk(function(a,b){var c=O({},Nt,a,b);if(c){var d="true"===a.getAttribute("isDefault");c.isDefault=d;return c}}),Format:Vk(V),TileMatrixSetLink:Vk(function(a,b){return O({},Ot,a,b)}),Dimension:Vk(function(a,b){return O({},Pt,a,b)}),
ResourceURL:Vk(function(a){var b=a.getAttribute("format"),c=a.getAttribute("template");a=a.getAttribute("resourceType");var d={};b&&(d.format=b);c&&(d.template=c);a&&(d.resourceType=a);return d})},N(Jt,{Title:K(V),Abstract:K(V),WGS84BoundingBox:K(function(a,b){var c=O([],Qt,a,b);return 2!=c.length?void 0:Ib(c)}),Identifier:K(V)})),Nt=N(It,{LegendURL:Vk(function(a){var b={};b.format=a.getAttribute("format");b.href=Xr(a);return b})},N(Jt,{Title:K(V),Identifier:K(V)})),Ot=N(It,{TileMatrixSet:K(V)}),
Pt=N(It,{Default:K(V),Value:Vk(V)},N(Jt,{Identifier:K(V)})),Qt=N(Jt,{LowerCorner:Tk(Ht),UpperCorner:Tk(Ht)}),Mt=N(It,{WellKnownScaleSet:K(V),TileMatrix:Vk(function(a,b){return O({},Rt,a,b)})},N(Jt,{SupportedCRS:K(V),Identifier:K(V)})),Rt=N(It,{TopLeftCorner:K(Ht),ScaleDenominator:K(ao),TileWidth:K(co),TileHeight:K(co),MatrixWidth:K(co),MatrixHeight:K(co)},N(Jt,{Identifier:K(V)}));function St(a){bb.call(this);a=a||{};this.a=null;this.c=Rc;this.f=void 0;B(this,db("projection"),this.Nl,this);B(this,db("tracking"),this.Ol,this);void 0!==a.projection&&this.dh(zc(a.projection));void 0!==a.trackingOptions&&this.si(a.trackingOptions);this.ge(void 0!==a.tracking?a.tracking:!1)}x(St,bb);k=St.prototype;k.ka=function(){this.ge(!1);bb.prototype.ka.call(this)};k.Nl=function(){var a=this.ah();a&&(this.c=Cc(zc("EPSG:4326"),a),this.a&&this.set("position",this.c(this.a)))};
k.Ol=function(){if(dg){var a=this.bh();a&&void 0===this.f?this.f=pa.navigator.geolocation.watchPosition(this.qo.bind(this),this.ro.bind(this),this.Mg()):a||void 0===this.f||(pa.navigator.geolocation.clearWatch(this.f),this.f=void 0)}};
k.qo=function(a){a=a.coords;this.set("accuracy",a.accuracy);this.set("altitude",null===a.altitude?void 0:a.altitude);this.set("altitudeAccuracy",null===a.altitudeAccuracy?void 0:a.altitudeAccuracy);this.set("heading",null===a.heading?void 0:wa(a.heading));this.a?(this.a[0]=a.longitude,this.a[1]=a.latitude):this.a=[a.longitude,a.latitude];var b=this.c(this.a);this.set("position",b);this.set("speed",null===a.speed?void 0:a.speed);a=Bd($i,this.a,a.accuracy);a.rc(this.c);this.set("accuracyGeometry",a);
this.u()};k.ro=function(a){a.type="error";this.ge(!1);this.b(a)};k.Mj=function(){return this.get("accuracy")};k.Nj=function(){return this.get("accuracyGeometry")||null};k.Pj=function(){return this.get("altitude")};k.Qj=function(){return this.get("altitudeAccuracy")};k.Ll=function(){return this.get("heading")};k.Ml=function(){return this.get("position")};k.ah=function(){return this.get("projection")};k.wk=function(){return this.get("speed")};k.bh=function(){return this.get("tracking")};k.Mg=function(){return this.get("trackingOptions")};
k.dh=function(a){this.set("projection",a)};k.ge=function(a){this.set("tracking",a)};k.si=function(a){this.set("trackingOptions",a)};function Tt(a,b,c){Wc.call(this);this.Vf(a,b?b:0,c)}x(Tt,Wc);k=Tt.prototype;k.clone=function(){var a=new Tt(null),b=this.B.slice();Yc(a,this.f,b);a.u();return a};k.tb=function(a,b,c,d){var e=this.B;a-=e[0];var f=b-e[1];b=a*a+f*f;if(b<d){if(0===b)for(d=0;d<this.a;++d)c[d]=e[d];else for(d=this.wf()/Math.sqrt(b),c[0]=e[0]+d*a,c[1]=e[1]+d*f,d=2;d<this.a;++d)c[d]=e[d];c.length=this.a;return b}return d};k.Bc=function(a,b){var c=this.B,d=a-c[0],c=b-c[1];return d*d+c*c<=Ut(this)};
k.rd=function(){return this.B.slice(0,this.a)};k.Od=function(a){var b=this.B,c=b[this.a]-b[0];return Vb(b[0]-c,b[1]-c,b[0]+c,b[1]+c,a)};k.wf=function(){return Math.sqrt(Ut(this))};function Ut(a){var b=a.B[a.a]-a.B[0];a=a.B[a.a+1]-a.B[1];return b*b+a*a}k.Y=function(){return"Circle"};k.Ka=function(a){var b=this.H();return oc(a,b)?(b=this.rd(),a[0]<=b[0]&&a[2]>=b[0]||a[1]<=b[1]&&a[3]>=b[1]?!0:bc(a,this.sg,this)):!1};
k.jm=function(a){var b=this.a,c=this.B[b]-this.B[0],d=a.slice();d[b]=d[0]+c;for(c=1;c<b;++c)d[b+c]=a[c];Yc(this,this.f,d);this.u()};k.Vf=function(a,b,c){if(a){Zc(this,c,a,0);this.B||(this.B=[]);c=this.B;a=gd(c,a);c[a++]=c[0]+b;var d;b=1;for(d=this.a;b<d;++b)c[a++]=c[b];c.length=a}else Yc(this,"XY",null);this.u()};k.km=function(a){this.B[this.a]=this.B[0]+a;this.u()};function Vt(a,b,c){for(var d=[],e=a(0),f=a(1),g=b(e),h=b(f),l=[f,e],m=[h,g],n=[1,0],p={},q=1E5,r,v,y,w,G;0<--q&&0<n.length;)y=n.pop(),e=l.pop(),g=m.pop(),f=y.toString(),f in p||(d.push(g[0],g[1]),p[f]=!0),w=n.pop(),f=l.pop(),h=m.pop(),G=(y+w)/2,r=a(G),v=b(r),ua(v[0],v[1],g[0],g[1],h[0],h[1])<c?(d.push(h[0],h[1]),f=w.toString(),p[f]=!0):(n.push(w,G,G,y),m.push(h,v,v,g),l.push(f,r,r,e));return d}function Wt(a,b,c,d,e){var f=zc("EPSG:4326");return Vt(function(d){return[a,b+(c-b)*d]},Qc(f,d),e)}
function Xt(a,b,c,d,e){var f=zc("EPSG:4326");return Vt(function(d){return[b+(c-b)*d,a]},Qc(f,d),e)};function Yt(a){a=a||{};this.c=this.o=null;this.g=this.i=Infinity;this.f=this.l=-Infinity;this.A=this.U=Infinity;this.C=this.D=-Infinity;this.Aa=void 0!==a.targetSize?a.targetSize:100;this.S=void 0!==a.maxLines?a.maxLines:100;this.b=[];this.a=[];this.ya=void 0!==a.strokeStyle?a.strokeStyle:Zt;this.v=this.j=void 0;this.s=null;this.setMap(void 0!==a.map?a.map:null)}var Zt=new pj({color:"rgba(0,0,0,0.2)"}),$t=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001];
function au(a,b,c,d,e,f,g){var h=g;b=Wt(b,c,d,a.c,e);h=void 0!==a.b[h]?a.b[h]:new R(null);h.ba("XY",b);oc(h.H(),f)&&(a.b[g++]=h);return g}function bu(a,b,c,d,e){var f=e;b=Xt(b,a.f,a.g,a.c,c);f=void 0!==a.a[f]?a.a[f]:new R(null);f.ba("XY",b);oc(f.H(),d)&&(a.a[e++]=f);return e}k=Yt.prototype;k.Pl=function(){return this.o};k.ik=function(){return this.b};k.qk=function(){return this.a};
k.Rg=function(a){var b=a.vectorContext,c=a.frameState,d=c.extent;a=c.viewState;var e=a.center,f=a.projection,g=a.resolution;a=c.pixelRatio;a=g*g/(4*a*a);if(!this.c||!Pc(this.c,f)){var h=zc("EPSG:4326"),l=f.H(),m=f.i,n=Tc(m,h,f),p=m[2],q=m[1],r=m[0],v=n[3],y=n[2],w=n[1],n=n[0];this.i=m[3];this.g=p;this.l=q;this.f=r;this.U=v;this.A=y;this.D=w;this.C=n;this.j=Qc(h,f);this.v=Qc(f,h);this.s=this.v(lc(l));this.c=f}f.a&&(f=f.H(),h=jc(f),c=c.focus[0],c<f[0]||c>f[2])&&(c=h*Math.ceil((f[0]-c)/h),d=[d[0]+c,
d[1],d[2]+c,d[3]]);c=this.s[0];f=this.s[1];h=-1;m=Math.pow(this.Aa*g,2);p=[];q=[];g=0;for(l=$t.length;g<l;++g){r=$t[g]/2;p[0]=c-r;p[1]=f-r;q[0]=c+r;q[1]=f+r;this.j(p,p);this.j(q,q);r=Math.pow(q[0]-p[0],2)+Math.pow(q[1]-p[1],2);if(r<=m)break;h=$t[g]}g=h;if(-1==g)this.b.length=this.a.length=0;else{c=this.v(e);e=c[0];c=c[1];f=this.S;h=[Math.max(d[0],this.C),Math.max(d[1],this.D),Math.min(d[2],this.A),Math.min(d[3],this.U)];h=Tc(h,this.c,"EPSG:4326");m=h[3];q=h[1];e=Math.floor(e/g)*g;p=sa(e,this.f,this.g);
l=au(this,p,q,m,a,d,0);for(h=0;p!=this.f&&h++<f;)p=Math.max(p-g,this.f),l=au(this,p,q,m,a,d,l);p=sa(e,this.f,this.g);for(h=0;p!=this.g&&h++<f;)p=Math.min(p+g,this.g),l=au(this,p,q,m,a,d,l);this.b.length=l;c=Math.floor(c/g)*g;e=sa(c,this.l,this.i);l=bu(this,e,a,d,0);for(h=0;e!=this.l&&h++<f;)e=Math.max(e-g,this.l),l=bu(this,e,a,d,l);e=sa(c,this.l,this.i);for(h=0;e!=this.i&&h++<f;)e=Math.min(e+g,this.i),l=bu(this,e,a,d,l);this.a.length=l}b.Tb(null,this.ya);a=0;for(e=this.b.length;a<e;++a)g=this.b[a],
b.hd(g,null);a=0;for(e=this.a.length;a<e;++a)g=this.a[a],b.hd(g,null)};k.setMap=function(a){this.o&&(this.o.J("postcompose",this.Rg,this),this.o.render());a&&(a.I("postcompose",this.Rg,this),a.render());this.o=a};function cu(a,b,c,d,e,f,g){th.call(this,a,b,c,0,d);this.j=e;this.g=new Image;null!==f&&(this.g.crossOrigin=f);this.i={};this.c=null;this.state=0;this.o=g}x(cu,th);cu.prototype.a=function(a){if(void 0!==a){var b;a=t(a);if(a in this.i)return this.i[a];Ga(this.i)?b=this.g:b=this.g.cloneNode(!1);return this.i[a]=b}return this.g};cu.prototype.s=function(){this.state=3;this.c.forEach(Ka);this.c=null;uh(this)};
cu.prototype.v=function(){void 0===this.resolution&&(this.resolution=kc(this.extent)/this.g.height);this.state=2;this.c.forEach(Ka);this.c=null;uh(this)};cu.prototype.load=function(){if(0==this.state||3==this.state)this.state=1,uh(this),this.c=[Pa(this.g,"error",this.s,this),Pa(this.g,"load",this.v,this)],this.o(this,this.j)};function du(a,b,c,d,e){We.call(this,a,b);this.s=c;this.g=new Image;null!==d&&(this.g.crossOrigin=d);this.c={};this.j=null;this.v=e}x(du,We);k=du.prototype;k.ka=function(){1==this.state&&eu(this);this.a&&Ta(this.a);this.state=5;Xe(this);We.prototype.ka.call(this)};k.$a=function(a){if(void 0!==a){var b=t(a);if(b in this.c)return this.c[b];a=Ga(this.c)?this.g:this.g.cloneNode(!1);return this.c[b]=a}return this.g};k.jb=function(){return this.s};k.Ql=function(){this.state=3;eu(this);Xe(this)};
k.Rl=function(){this.state=this.g.naturalWidth&&this.g.naturalHeight?2:4;eu(this);Xe(this)};k.load=function(){if(0==this.state||3==this.state)this.state=1,Xe(this),this.j=[Pa(this.g,"error",this.Ql,this),Pa(this.g,"load",this.Rl,this)],this.v(this,this.s)};function eu(a){a.j.forEach(Ka);a.j=null};function fu(a){a=a?a:{};Xh.call(this,{handleEvent:rc});this.c=a.formatConstructors?a.formatConstructors:[];this.j=a.projection?zc(a.projection):null;this.a=null;this.target=a.target?a.target:null}x(fu,Xh);function gu(a){a=a.dataTransfer.files;var b,c,d;b=0;for(c=a.length;b<c;++b){d=a.item(b);var e=new FileReader;e.addEventListener("load",this.o.bind(this,d));e.readAsText(d)}}function hu(a){a.stopPropagation();a.preventDefault();a.dataTransfer.dropEffect="copy"}
fu.prototype.o=function(a,b){var c=b.target.result,d=this.v,e=this.j;e||(e=d.aa().l);var d=this.c,f=[],g,h;g=0;for(h=d.length;g<h;++g){var l=new d[g];var m={featureProjection:e};try{f=l.Fa(c,m)}catch(n){f=null}if(f&&0<f.length)break}this.b(new iu(ju,a,f,e))};fu.prototype.setMap=function(a){this.a&&(this.a.forEach(Ka),this.a=null);Xh.prototype.setMap.call(this,a);a&&(a=this.target?this.target:a.a,this.a=[B(a,"drop",gu,this),B(a,"dragenter",hu,this),B(a,"dragover",hu,this),B(a,"drop",hu,this)])};
var ju="addfeatures";function iu(a,b,c,d){Ua.call(this,a);this.features=c;this.file=b;this.projection=d}x(iu,Ua);function ku(a){a=a?a:{};li.call(this,{handleDownEvent:lu,handleDragEvent:mu,handleUpEvent:nu});this.s=a.condition?a.condition:hi;this.a=this.c=void 0;this.j=0;this.A=void 0!==a.duration?a.duration:400}x(ku,li);
function mu(a){if(ji(a)){var b=a.map,c=b.Za(),d=a.pixel;a=d[0]-c[0]/2;d=c[1]/2-d[1];c=Math.atan2(d,a);a=Math.sqrt(a*a+d*d);d=b.aa();b.render();if(void 0!==this.c){var e=c-this.c;Yh(b,d,d.La()-e)}this.c=c;void 0!==this.a&&(c=this.a*(d.$()/a),$h(b,d,c));void 0!==this.a&&(this.j=this.a/a);this.a=a}}
function nu(a){if(!ji(a))return!0;a=a.map;var b=a.aa();Ld(b,-1);var c=this.j-1,d=b.La(),d=b.constrainRotation(d,0);Yh(a,b,d,void 0,void 0);var d=b.$(),e=this.A,d=b.constrainResolution(d,0,c);$h(a,b,d,void 0,e);this.j=0;return!1}function lu(a){return ji(a)&&this.s(a)?(Ld(a.map.aa(),1),this.a=this.c=void 0,!0):!1};function ou(a,b){Ua.call(this,a);this.feature=b}x(ou,Ua);
function pu(a){li.call(this,{handleDownEvent:qu,handleEvent:ru,handleUpEvent:su});this.na=null;this.P=!1;this.Hc=a.source?a.source:null;this.cb=a.features?a.features:null;this.Cj=a.snapTolerance?a.snapTolerance:12;this.W=a.type;this.c=tu(this.W);this.Sa=a.minPoints?a.minPoints:this.c===uu?3:2;this.za=a.maxPoints?a.maxPoints:Infinity;this.Ne=a.finishCondition?a.finishCondition:rc;var b=a.geometryFunction;if(!b)if("Circle"===this.W)b=function(a,b){var c=b?b:new Tt([NaN,NaN]);c.Vf(a[0],Math.sqrt(Eb(a[0],
a[1])));return c};else{var c,b=this.c;b===vu?c=C:b===wu?c=R:b===uu&&(c=E);b=function(a,b){var f=b;f?f.ra(a):f=new c(a);return f}}this.C=b;this.T=this.A=this.a=this.S=this.j=this.s=null;this.Fj=a.clickTolerance?a.clickTolerance*a.clickTolerance:36;this.Ba=new I({source:new P({useSpatialIndex:!1,wrapX:a.wrapX?a.wrapX:!1}),style:a.style?a.style:xu()});this.rb=a.geometryName;this.Bj=a.condition?a.condition:gi;this.oa=a.freehandCondition?a.freehandCondition:hi;B(this,db("active"),this.yi,this)}x(pu,li);
function xu(){var a=xj();return function(b){return a[b.X().Y()]}}k=pu.prototype;k.setMap=function(a){li.prototype.setMap.call(this,a);this.yi()};function ru(a){this.c!==wu&&this.c!==uu||!this.oa(a)||(this.P=!0);var b=!this.P;this.P&&a.type===$g?(yu(this,a),b=!1):a.type===Zg?b=zu(this,a):a.type===Tg&&(b=!1);return mi.call(this,a)&&b}function qu(a){return this.Bj(a)?(this.na=a.pixel,!0):this.P?(this.na=a.pixel,this.s||Au(this,a),!0):!1}
function su(a){this.P=!1;var b=this.na,c=a.pixel,d=b[0]-c[0],b=b[1]-c[1],c=!0;d*d+b*b<=this.Fj&&(zu(this,a),this.s?this.c===Bu?this.jd():Cu(this,a)?this.Ne(a)&&this.jd():yu(this,a):(Au(this,a),this.c===vu&&this.jd()),c=!1);return c}
function zu(a,b){if(a.s){var c=b.coordinate,d=a.j.X(),e;a.c===vu?e=a.a:a.c===uu?(e=a.a[0],e=e[e.length-1],Cu(a,b)&&(c=a.s.slice())):(e=a.a,e=e[e.length-1]);e[0]=c[0];e[1]=c[1];a.C(a.a,d);a.S&&a.S.X().ra(c);d instanceof E&&a.c!==uu?(a.A||(a.A=new Ik(new R(null))),d=d.Hg(0),c=a.A.X(),c.ba(d.f,d.la())):a.T&&(c=a.A.X(),c.ra(a.T));Du(a)}else c=b.coordinate.slice(),a.S?a.S.X().ra(c):(a.S=new Ik(new C(c)),Du(a));return!0}
function Cu(a,b){var c=!1;if(a.j){var d=!1,e=[a.s];a.c===wu?d=a.a.length>a.Sa:a.c===uu&&(d=a.a[0].length>a.Sa,e=[a.a[0][0],a.a[0][a.a[0].length-2]]);if(d)for(var d=b.map,f=0,g=e.length;f<g;f++){var h=e[f],l=d.Ga(h),m=b.pixel,c=m[0]-l[0],l=m[1]-l[1],m=a.P&&a.oa(b)?1:a.Cj;if(c=Math.sqrt(c*c+l*l)<=m){a.s=h;break}}}return c}
function Au(a,b){var c=b.coordinate;a.s=c;a.c===vu?a.a=c.slice():a.c===uu?(a.a=[[c.slice(),c.slice()]],a.T=a.a[0]):(a.a=[c.slice(),c.slice()],a.c===Bu&&(a.T=a.a));a.T&&(a.A=new Ik(new R(a.T)));c=a.C(a.a);a.j=new Ik;a.rb&&a.j.Ec(a.rb);a.j.Ua(c);Du(a);a.b(new ou("drawstart",a.j))}
function yu(a,b){var c=b.coordinate,d=a.j.X(),e,f;if(a.c===wu)a.s=c.slice(),f=a.a,f.push(c.slice()),e=f.length>a.za,a.C(f,d);else if(a.c===uu){f=a.a[0];f.push(c.slice());if(e=f.length>a.za)a.s=f[0];a.C(a.a,d)}Du(a);e&&a.jd()}k.Qo=function(){var a=this.j.X(),b,c;this.c===wu?(b=this.a,b.splice(-2,1),this.C(b,a)):this.c===uu&&(b=this.a[0],b.splice(-2,1),c=this.A.X(),c.ra(b),this.C(this.a,a));0===b.length&&(this.s=null);Du(this)};
k.jd=function(){var a=Eu(this),b=this.a,c=a.X();this.c===wu?(b.pop(),this.C(b,c)):this.c===uu&&(b[0].pop(),b[0].push(b[0][0]),this.C(b,c));"MultiPoint"===this.W?a.Ua(new T([b])):"MultiLineString"===this.W?a.Ua(new S([b])):"MultiPolygon"===this.W&&a.Ua(new U([b]));this.b(new ou("drawend",a));this.cb&&this.cb.push(a);this.Hc&&this.Hc.sb(a)};function Eu(a){a.s=null;var b=a.j;b&&(a.j=null,a.S=null,a.A=null,a.Ba.ha().clear(!0));return b}
k.rm=function(a){var b=a.X();this.j=a;this.a=b.Z();a=this.a[this.a.length-1];this.s=a.slice();this.a.push(a.slice());Du(this);this.b(new ou("drawstart",this.j))};k.Gc=sc;function Du(a){var b=[];a.j&&b.push(a.j);a.A&&b.push(a.A);a.S&&b.push(a.S);a=a.Ba.ha();a.clear(!0);a.Jc(b)}k.yi=function(){var a=this.v,b=this.f();a&&b||Eu(this);this.Ba.setMap(b?a:null)};
function tu(a){var b;"Point"===a||"MultiPoint"===a?b=vu:"LineString"===a||"MultiLineString"===a?b=wu:"Polygon"===a||"MultiPolygon"===a?b=uu:"Circle"===a&&(b=Bu);return b}var vu="Point",wu="LineString",uu="Polygon",Bu="Circle";function Fu(a,b,c){Ua.call(this,a);this.features=b;this.mapBrowserEvent=c}x(Fu,Ua);
function Gu(a){li.call(this,{handleDownEvent:Hu,handleDragEvent:Iu,handleEvent:Ju,handleUpEvent:Ku});this.rb=a.condition?a.condition:ki;this.Sa=function(a){return gi(a)&&fi(a)};this.cb=a.deleteCondition?a.deleteCondition:this.Sa;this.za=this.c=null;this.Ba=[0,0];this.C=this.T=!1;this.a=new kl;this.S=void 0!==a.pixelTolerance?a.pixelTolerance:10;this.s=this.oa=!1;this.j=[];this.P=new I({source:new P({useSpatialIndex:!1,wrapX:!!a.wrapX}),style:a.style?a.style:Lu(),updateWhileAnimating:!0,updateWhileInteracting:!0});
this.na={Point:this.ym,LineString:this.kh,LinearRing:this.kh,Polygon:this.zm,MultiPoint:this.wm,MultiLineString:this.vm,MultiPolygon:this.xm,GeometryCollection:this.um};this.A=a.features;this.A.forEach(this.xf,this);B(this.A,"add",this.sm,this);B(this.A,"remove",this.tm,this);this.W=null}x(Gu,li);k=Gu.prototype;k.xf=function(a){var b=a.X();b.Y()in this.na&&this.na[b.Y()].call(this,a,b);(b=this.v)&&Mu(this,this.Ba,b);B(a,"change",this.jh,this)};
function Nu(a,b){a.C||(a.C=!0,a.b(new Fu("modifystart",a.A,b)))}function Ou(a,b){Pu(a,b);a.c&&0===a.A.dc()&&(a.P.ha().ob(a.c),a.c=null);Qa(b,"change",a.jh,a)}function Pu(a,b){var c=a.a,d=[];c.forEach(function(a){b===a.feature&&d.push(a)});for(var e=d.length-1;0<=e;--e)c.remove(d[e])}k.setMap=function(a){this.P.setMap(a);li.prototype.setMap.call(this,a)};k.sm=function(a){this.xf(a.element)};k.jh=function(a){this.s||(a=a.target,Ou(this,a),this.xf(a))};k.tm=function(a){Ou(this,a.element)};
k.ym=function(a,b){var c=b.Z(),c={feature:a,geometry:b,pa:[c,c]};this.a.Ca(b.H(),c)};k.wm=function(a,b){var c=b.Z(),d,e,f;e=0;for(f=c.length;e<f;++e)d=c[e],d={feature:a,geometry:b,depth:[e],index:e,pa:[d,d]},this.a.Ca(b.H(),d)};k.kh=function(a,b){var c=b.Z(),d,e,f,g;d=0;for(e=c.length-1;d<e;++d)f=c.slice(d,d+2),g={feature:a,geometry:b,index:d,pa:f},this.a.Ca(Ib(f),g)};
k.vm=function(a,b){var c=b.Z(),d,e,f,g,h,l,m;g=0;for(h=c.length;g<h;++g)for(d=c[g],e=0,f=d.length-1;e<f;++e)l=d.slice(e,e+2),m={feature:a,geometry:b,depth:[g],index:e,pa:l},this.a.Ca(Ib(l),m)};k.zm=function(a,b){var c=b.Z(),d,e,f,g,h,l,m;g=0;for(h=c.length;g<h;++g)for(d=c[g],e=0,f=d.length-1;e<f;++e)l=d.slice(e,e+2),m={feature:a,geometry:b,depth:[g],index:e,pa:l},this.a.Ca(Ib(l),m)};
k.xm=function(a,b){var c=b.Z(),d,e,f,g,h,l,m,n,p,q;l=0;for(m=c.length;l<m;++l)for(n=c[l],g=0,h=n.length;g<h;++g)for(d=n[g],e=0,f=d.length-1;e<f;++e)p=d.slice(e,e+2),q={feature:a,geometry:b,depth:[g,l],index:e,pa:p},this.a.Ca(Ib(p),q)};k.um=function(a,b){var c,d=b.c;for(c=0;c<d.length;++c)this.na[d[c].Y()].call(this,a,d[c])};function Qu(a,b){var c=a.c;c?c.X().ra(b):(c=new Ik(new C(b)),a.c=c,a.P.ha().sb(c))}function Ru(a,b){return a.index-b.index}
function Hu(a){if(!this.rb(a))return!1;Mu(this,a.pixel,a.map);this.j.length=0;this.C=!1;var b=this.c;if(b){var c=[],b=b.X().Z(),d=Ib([b]),d=nl(this.a,d),e={};d.sort(Ru);for(var f=0,g=d.length;f<g;++f){var h=d[f],l=h.pa,m=t(h.feature),n=h.depth;n&&(m+="-"+n.join("-"));e[m]||(e[m]=Array(2));if(Cb(l[0],b)&&!e[m][0])this.j.push([h,0]),e[m][0]=h;else if(Cb(l[1],b)&&!e[m][1]){if("LineString"!==h.geometry.Y()&&"MultiLineString"!==h.geometry.Y()||!e[m][0]||0!==e[m][0].index)this.j.push([h,1]),e[m][1]=h}else t(l)in
this.za&&!e[m][0]&&!e[m][1]&&c.push([h,b])}c.length&&Nu(this,a);for(a=c.length-1;0<=a;--a)this.nl.apply(this,c[a])}return!!this.c}
function Iu(a){this.T=!1;Nu(this,a);a=a.coordinate;for(var b=0,c=this.j.length;b<c;++b){for(var d=this.j[b],e=d[0],f=e.depth,g=e.geometry,h=g.Z(),l=e.pa,d=d[1];a.length<g.va();)a.push(0);switch(g.Y()){case "Point":h=a;l[0]=l[1]=a;break;case "MultiPoint":h[e.index]=a;l[0]=l[1]=a;break;case "LineString":h[e.index+d]=a;l[d]=a;break;case "MultiLineString":h[f[0]][e.index+d]=a;l[d]=a;break;case "Polygon":h[f[0]][e.index+d]=a;l[d]=a;break;case "MultiPolygon":h[f[1]][f[0]][e.index+d]=a,l[d]=a}e=g;this.s=
!0;e.ra(h);this.s=!1}Qu(this,a)}function Ku(a){for(var b,c=this.j.length-1;0<=c;--c)b=this.j[c][0],ll(this.a,Ib(b.pa),b);this.C&&(this.b(new Fu("modifyend",this.A,a)),this.C=!1);return!1}function Ju(a){if(!(a instanceof Pg))return!0;this.W=a;var b;Gd(a.map.aa())[1]||a.type!=Zg||this.D||(this.Ba=a.pixel,Mu(this,a.pixel,a.map));this.c&&this.cb(a)&&(a.type==Ug&&this.T?b=!0:(this.c.X(),b=this.ai()));a.type==Ug&&(this.T=!1);return mi.call(this,a)&&!b}
function Mu(a,b,c){function d(a,b){return Fb(e,a.pa)-Fb(e,b.pa)}var e=c.Ma(b),f=c.Ma([b[0]-a.S,b[1]+a.S]),g=c.Ma([b[0]+a.S,b[1]-a.S]),f=Ib([f,g]),f=nl(a.a,f);if(0<f.length){f.sort(d);var g=f[0].pa,h=zb(e,g),l=c.Ga(h);if(Math.sqrt(Eb(b,l))<=a.S){b=c.Ga(g[0]);c=c.Ga(g[1]);b=Eb(l,b);c=Eb(l,c);a.oa=Math.sqrt(Math.min(b,c))<=a.S;a.oa&&(h=b>c?g[1]:g[0]);Qu(a,h);c={};c[t(g)]=!0;b=1;for(l=f.length;b<l;++b)if(h=f[b].pa,Cb(g[0],h[0])&&Cb(g[1],h[1])||Cb(g[0],h[1])&&Cb(g[1],h[0]))c[t(h)]=!0;else break;a.za=c;
return}}a.c&&(a.P.ha().ob(a.c),a.c=null)}
k.nl=function(a,b){for(var c=a.pa,d=a.feature,e=a.geometry,f=a.depth,g=a.index,h;b.length<e.va();)b.push(0);switch(e.Y()){case "MultiLineString":h=e.Z();h[f[0]].splice(g+1,0,b);break;case "Polygon":h=e.Z();h[f[0]].splice(g+1,0,b);break;case "MultiPolygon":h=e.Z();h[f[1]][f[0]].splice(g+1,0,b);break;case "LineString":h=e.Z();h.splice(g+1,0,b);break;default:return}this.s=!0;e.ra(h);this.s=!1;h=this.a;h.remove(a);Su(this,e,g,f,1);var l={pa:[c[0],b],feature:d,geometry:e,depth:f,index:g};h.Ca(Ib(l.pa),
l);this.j.push([l,1]);c={pa:[b,c[1]],feature:d,geometry:e,depth:f,index:g+1};h.Ca(Ib(c.pa),c);this.j.push([c,0]);this.T=!0};
k.ai=function(){var a=!1;if(this.W&&this.W.type!=$g){var b=this.W;Nu(this,b);var c=this.j,a={},d=!1,e,f,g,h,l,m,n,p;for(h=c.length-1;0<=h;--h)g=c[h],n=g[0],p=t(n.feature),n.depth&&(p+="-"+n.depth.join("-")),p in a||(a[p]={}),0===g[1]?(a[p].right=n,a[p].index=n.index):1==g[1]&&(a[p].left=n,a[p].index=n.index+1);for(p in a){m=a[p].right;h=a[p].left;g=a[p].index;l=g-1;n=void 0!==h?h:m;0>l&&(l=0);c=n.geometry;e=f=c.Z();d=!1;switch(c.Y()){case "MultiLineString":2<f[n.depth[0]].length&&(f[n.depth[0]].splice(g,
1),d=!0);break;case "LineString":2<f.length&&(f.splice(g,1),d=!0);break;case "MultiPolygon":e=e[n.depth[1]];case "Polygon":e=e[n.depth[0]],4<e.length&&(g==e.length-1&&(g=0),e.splice(g,1),d=!0,0===g&&(e.pop(),e.push(e[0]),l=e.length-1))}d&&(e=c,this.s=!0,e.ra(f),this.s=!1,f=[],void 0!==h&&(this.a.remove(h),f.push(h.pa[0])),void 0!==m&&(this.a.remove(m),f.push(m.pa[1])),void 0!==h&&void 0!==m&&(h={depth:n.depth,feature:n.feature,geometry:n.geometry,index:l,pa:f},this.a.Ca(Ib(h.pa),h)),Su(this,c,g,n.depth,
-1),this.c&&(this.P.ha().ob(this.c),this.c=null))}a=d;this.b(new Fu("modifyend",this.A,b));this.C=!1}return a};function Su(a,b,c,d,e){ql(a.a,b.H(),function(a){a.geometry===b&&(void 0===d||void 0===a.depth||mb(a.depth,d))&&a.index>c&&(a.index+=e)})}function Lu(){var a=xj();return function(){return a.Point}};function Tu(a,b,c,d){Ua.call(this,a);this.selected=b;this.deselected=c;this.mapBrowserEvent=d}x(Tu,Ua);
function Uu(a){Xh.call(this,{handleEvent:Vu});var b=a?a:{};this.D=b.condition?b.condition:fi;this.A=b.addCondition?b.addCondition:sc;this.C=b.removeCondition?b.removeCondition:sc;this.S=b.toggleCondition?b.toggleCondition:hi;this.j=b.multi?b.multi:!1;this.o=b.filter?b.filter:rc;this.c=new I({source:new P({useSpatialIndex:!1,features:b.features,wrapX:b.wrapX}),style:b.style?b.style:Wu(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(b.layers)if("function"===typeof b.layers)a=function(a){return b.layers(a)};
else{var c=b.layers;a=function(a){return gb(c,a)}}else a=rc;this.s=a;this.a={};a=this.c.ha().c;B(a,"add",this.Am,this);B(a,"remove",this.Dm,this)}x(Uu,Xh);k=Uu.prototype;k.Bm=function(){return this.c.ha().c};k.Cm=function(a){a=t(a);return this.a[a]};
function Vu(a){if(!this.D(a))return!0;var b=this.A(a),c=this.C(a),d=this.S(a),e=!b&&!c&&!d,f=a.map,g=this.c.ha().c,h=[],l=[];if(e)Da(this.a),f.kd(a.pixel,function(a,b){if(this.o(a,b)){l.push(a);var c=t(a);this.a[c]=b;return!this.j}},this,this.s),0<l.length&&1==g.dc()&&g.item(0)==l[0]?l.length=0:(0!==g.dc()&&(h=Array.prototype.concat(g.a),g.clear()),g.qf(l));else{f.kd(a.pixel,function(a,e){if(this.o(a,e)){if(!b&&!d||gb(g.a,a))(c||d)&&gb(g.a,a)&&(h.push(a),f=t(a),delete this.a[f]);else{l.push(a);var f=
t(a);this.a[f]=e}return!this.j}},this,this.s);for(e=h.length-1;0<=e;--e)g.remove(h[e]);g.qf(l)}(0<l.length||0<h.length)&&this.b(new Tu("select",l,h,a));return ei(a)}k.setMap=function(a){var b=this.v,c=this.c.ha().c;b&&c.forEach(b.wi,b);Xh.prototype.setMap.call(this,a);this.c.setMap(a);a&&c.forEach(a.ti,a)};function Wu(){var a=xj();jb(a.Polygon,a.LineString);jb(a.GeometryCollection,a.LineString);return function(b){return a[b.X().Y()]}}k.Am=function(a){a=a.element;var b=this.v;b&&b.ti(a)};
k.Dm=function(a){a=a.element;var b=this.v;b&&b.wi(a)};function Xu(a){li.call(this,{handleEvent:Yu,handleDownEvent:rc,handleUpEvent:Zu});a=a?a:{};this.s=a.source?a.source:null;this.Ba=void 0!==a.vertex?a.vertex:!0;this.T=void 0!==a.edge?a.edge:!0;this.j=a.features?a.features:null;this.oa=[];this.C={};this.S={};this.W={};this.A={};this.P=null;this.c=void 0!==a.pixelTolerance?a.pixelTolerance:10;this.za=$u.bind(this);this.a=new kl;this.na={Point:this.Jm,LineString:this.nh,LinearRing:this.nh,Polygon:this.Km,MultiPoint:this.Hm,MultiLineString:this.Gm,MultiPolygon:this.Im,
GeometryCollection:this.Fm}}x(Xu,li);k=Xu.prototype;k.sb=function(a,b){var c=void 0!==b?b:!0,d=t(a),e=a.X();if(e){var f=this.na[e.Y()];f&&(this.W[d]=e.H(Jb()),f.call(this,a,e),c&&(this.S[d]=B(e,"change",this.Kk.bind(this,a),this)))}c&&(this.C[d]=B(a,db(a.a),this.Em,this))};k.Jj=function(a){this.sb(a)};k.Kj=function(a){this.ob(a)};k.lh=function(a){var b;a instanceof vl?b=a.feature:a instanceof ae&&(b=a.element);this.sb(b)};
k.mh=function(a){var b;a instanceof vl?b=a.feature:a instanceof ae&&(b=a.element);this.ob(b)};k.Em=function(a){a=a.target;this.ob(a,!0);this.sb(a,!0)};k.Kk=function(a){if(this.D){var b=t(a);b in this.A||(this.A[b]=a)}else this.xi(a)};k.ob=function(a,b){var c=void 0!==b?b:!0,d=t(a),e=this.W[d];if(e){var f=this.a,g=[];ql(f,e,function(b){a===b.feature&&g.push(b)});for(e=g.length-1;0<=e;--e)f.remove(g[e]);c&&($a(this.S[d]),delete this.S[d])}c&&($a(this.C[d]),delete this.C[d])};
k.setMap=function(a){var b=this.v,c=this.oa,d;this.j?d=this.j:this.s&&(d=this.s.oe());b&&(c.forEach($a),c.length=0,d.forEach(this.Kj,this));li.prototype.setMap.call(this,a);a&&(this.j?c.push(B(this.j,"add",this.lh,this),B(this.j,"remove",this.mh,this)):this.s&&c.push(B(this.s,"addfeature",this.lh,this),B(this.s,"removefeature",this.mh,this)),d.forEach(this.Jj,this))};k.Gc=sc;k.xi=function(a){this.ob(a,!1);this.sb(a,!1)};
k.Fm=function(a,b){var c,d=b.c;for(c=0;c<d.length;++c)this.na[d[c].Y()].call(this,a,d[c])};k.nh=function(a,b){var c=b.Z(),d,e,f,g;d=0;for(e=c.length-1;d<e;++d)f=c.slice(d,d+2),g={feature:a,pa:f},this.a.Ca(Ib(f),g)};k.Gm=function(a,b){var c=b.Z(),d,e,f,g,h,l,m;g=0;for(h=c.length;g<h;++g)for(d=c[g],e=0,f=d.length-1;e<f;++e)l=d.slice(e,e+2),m={feature:a,pa:l},this.a.Ca(Ib(l),m)};k.Hm=function(a,b){var c=b.Z(),d,e,f;e=0;for(f=c.length;e<f;++e)d=c[e],d={feature:a,pa:[d,d]},this.a.Ca(b.H(),d)};
k.Im=function(a,b){var c=b.Z(),d,e,f,g,h,l,m,n,p,q;l=0;for(m=c.length;l<m;++l)for(n=c[l],g=0,h=n.length;g<h;++g)for(d=n[g],e=0,f=d.length-1;e<f;++e)p=d.slice(e,e+2),q={feature:a,pa:p},this.a.Ca(Ib(p),q)};k.Jm=function(a,b){var c=b.Z(),c={feature:a,pa:[c,c]};this.a.Ca(b.H(),c)};k.Km=function(a,b){var c=b.Z(),d,e,f,g,h,l,m;g=0;for(h=c.length;g<h;++g)for(d=c[g],e=0,f=d.length-1;e<f;++e)l=d.slice(e,e+2),m={feature:a,pa:l},this.a.Ca(Ib(l),m)};
function Yu(a){var b,c,d=a.pixel,e=a.coordinate;b=a.map;var f=b.Ma([d[0]-this.c,d[1]+this.c]);c=b.Ma([d[0]+this.c,d[1]-this.c]);var f=Ib([f,c]),g=nl(this.a,f),h,f=!1,l=null;c=null;if(0<g.length){this.P=e;g.sort(this.za);g=g[0].pa;if(this.Ba&&!this.T){if(e=b.Ga(g[0]),h=b.Ga(g[1]),e=Eb(d,e),d=Eb(d,h),h=Math.sqrt(Math.min(e,d)),h=h<=this.c)f=!0,l=e>d?g[1]:g[0],c=b.Ga(l)}else this.T&&(l=zb(e,g),c=b.Ga(l),Math.sqrt(Eb(d,c))<=this.c&&(f=!0,this.Ba&&(e=b.Ga(g[0]),h=b.Ga(g[1]),e=Eb(c,e),d=Eb(c,h),h=Math.sqrt(Math.min(e,
d)),h=h<=this.c)))&&(l=e>d?g[1]:g[0],c=b.Ga(l));f&&(c=[Math.round(c[0]),Math.round(c[1])])}b=l;f&&(a.coordinate=b.slice(0,2),a.pixel=c);return mi.call(this,a)}function Zu(){var a=Ea(this.A);a.length&&(a.forEach(this.xi,this),this.A={});return!1}function $u(a,b){return Fb(this.P,a.pa)-Fb(this.P,b.pa)};function av(a,b,c){Ua.call(this,a);this.features=b;this.coordinate=c}x(av,Ua);function bv(a){li.call(this,{handleDownEvent:cv,handleDragEvent:dv,handleMoveEvent:ev,handleUpEvent:fv});this.s=void 0;this.a=null;this.c=void 0!==a.features?a.features:null;var b;if(a.layers)if("function"===typeof a.layers)b=function(b){return a.layers(b)};else{var c=a.layers;b=function(a){return gb(c,a)}}else b=rc;this.A=b;this.j=null}x(bv,li);
function cv(a){this.j=gv(this,a.pixel,a.map);return!this.a&&this.j?(this.a=a.coordinate,ev.call(this,a),this.b(new av("translatestart",this.c,a.coordinate)),!0):!1}function fv(a){return this.a?(this.a=null,ev.call(this,a),this.b(new av("translateend",this.c,a.coordinate)),!0):!1}
function dv(a){if(this.a){a=a.coordinate;var b=a[0]-this.a[0],c=a[1]-this.a[1];if(this.c)this.c.forEach(function(a){var d=a.X();d.Sc(b,c);a.Ua(d)});else if(this.j){var d=this.j.X();d.Sc(b,c);this.j.Ua(d)}this.a=a;this.b(new av("translating",this.c,a))}}
function ev(a){var b=a.map.yc();if(a=a.map.kd(a.pixel,function(a){return a})){var c=!1;this.c&&gb(this.c.a,a)&&(c=!0);this.s=b.style.cursor;b.style.cursor=this.a?"-webkit-grabbing":c?"-webkit-grab":"pointer";b.style.cursor=this.a?c?"grab":"pointer":"grabbing"}else b.style.cursor=void 0!==this.s?this.s:"",this.s=void 0}function gv(a,b,c){var d=null;b=c.kd(b,function(a){return a},a,a.A);a.c&&gb(a.c.a,b)&&(d=b);return d};function W(a){a=a?a:{};var b=Ca({},a);delete b.gradient;delete b.radius;delete b.blur;delete b.shadow;delete b.weight;I.call(this,b);this.f=null;this.ia=void 0!==a.shadow?a.shadow:250;this.W=void 0;this.c=null;B(this,db("gradient"),this.Lk,this);this.ii(a.gradient?a.gradient:hv);this.di(void 0!==a.blur?a.blur:15);this.qh(void 0!==a.radius?a.radius:8);B(this,db("blur"),this.lf,this);B(this,db("radius"),this.lf,this);this.lf();var c=a.weight?a.weight:"weight",d;"string"===typeof c?d=function(a){return a.get(c)}:
d=c;this.l(function(a){a=d(a);a=void 0!==a?sa(a,0,1):1;var b=255*a|0,c=this.c[b];c||(c=[new sj({image:new Fh({opacity:a,src:this.W})})],this.c[b]=c);return c}.bind(this));this.set("renderOrder",null);B(this,"render",this.dl,this)}x(W,I);var hv=["#00f","#0ff","#0f0","#ff0","#f00"];k=W.prototype;k.zg=function(){return this.get("blur")};k.Gg=function(){return this.get("gradient")};k.ph=function(){return this.get("radius")};
k.Lk=function(){for(var a=this.Gg(),b=Ge(1,256),c=b.createLinearGradient(0,0,1,256),d=1/(a.length-1),e=0,f=a.length;e<f;++e)c.addColorStop(e*d,a[e]);b.fillStyle=c;b.fillRect(0,0,1,256);this.f=b.getImageData(0,0,1,256).data};k.lf=function(){var a=this.ph(),b=this.zg(),c=a+b+1,d=2*c,d=Ge(d,d);d.shadowOffsetX=d.shadowOffsetY=this.ia;d.shadowBlur=b;d.shadowColor="#000";d.beginPath();b=c-this.ia;d.arc(b,b,a,0,2*Math.PI,!0);d.fill();this.W=d.canvas.toDataURL();this.c=Array(256);this.u()};
k.dl=function(a){a=a.context;var b=a.canvas,b=a.getImageData(0,0,b.width,b.height),c=b.data,d,e,f;d=0;for(e=c.length;d<e;d+=4)if(f=4*c[d+3])c[d]=this.f[f],c[d+1]=this.f[f+1],c[d+2]=this.f[f+2];a.putImageData(b,0,0)};k.di=function(a){this.set("blur",a)};k.ii=function(a){this.set("gradient",a)};k.qh=function(a){this.set("radius",a)};function iv(a,b,c,d){function e(){delete pa[g];f.parentNode.removeChild(f)}var f=pa.document.createElement("script"),g="olc_"+t(b);f.async=!0;f.src=a+(-1==a.indexOf("?")?"?":"&")+(d||"callback")+"="+g;var h=pa.setTimeout(function(){e();c&&c()},1E4);pa[g]=function(a){pa.clearTimeout(h);e();b(a)};pa.document.getElementsByTagName("head")[0].appendChild(f)};function jv(a,b,c,d,e,f,g,h,l,m,n){We.call(this,e,0);this.S=void 0!==n?n:!1;this.C=g;this.D=h;this.l=null;this.c={};this.j=b;this.v=d;this.U=f?f:e;this.g=[];this.Wc=null;this.s=0;f=d.Ea(this.U);h=this.v.H();e=this.j.H();f=h?nc(f,h):f;if(0===hc(f))this.state=4;else if((h=a.H())&&(e?e=nc(e,h):e=h),d=d.$(this.U[0]),d=tk(a,c,lc(f),d),!isFinite(d)||0>=d)this.state=4;else if(this.A=new wk(a,c,f,e,d*(void 0!==m?m:.5)),0===this.A.f.length)this.state=4;else if(this.s=b.Lb(d),c=yk(this.A),e&&(a.a?(c[1]=sa(c[1],
e[1],e[3]),c[3]=sa(c[3],e[1],e[3])):c=nc(c,e)),hc(c))if(a=gf(b,c,this.s),100>(a.ea-a.ca+1)*(a.ga-a.fa+1)){for(b=a.ca;b<=a.ea;b++)for(c=a.fa;c<=a.ga;c++)(m=l(this.s,b,c,g))&&this.g.push(m);0===this.g.length&&(this.state=4)}else this.state=3;else this.state=4}x(jv,We);jv.prototype.ka=function(){1==this.state&&(this.Wc.forEach(Ka),this.Wc=null);We.prototype.ka.call(this)};
jv.prototype.$a=function(a){if(void 0!==a){var b=t(a);if(b in this.c)return this.c[b];a=Ga(this.c)?this.l:this.l.cloneNode(!1);return this.c[b]=a}return this.l};
jv.prototype.zd=function(){var a=[];this.g.forEach(function(b){b&&2==b.V()&&a.push({extent:this.j.Ea(b.ma),image:b.$a()})},this);this.g.length=0;if(0===a.length)this.state=3;else{var b=this.U[0],c=this.v.Ja(b),d="number"===typeof c?c:c[0],c="number"===typeof c?c:c[1],b=this.v.$(b),e=this.j.$(this.s),f=this.v.Ea(this.U);this.l=vk(d,c,this.C,e,this.j.H(),b,f,this.A,a,this.D,this.S);this.state=2}Xe(this)};
jv.prototype.load=function(){if(0==this.state){this.state=1;Xe(this);var a=0;this.Wc=[];this.g.forEach(function(b){var c=b.V();if(0==c||1==c){a++;var d;d=B(b,"change",function(){var c=b.V();if(2==c||3==c||4==c)Ka(d),a--,0===a&&(this.Wc.forEach(Ka),this.Wc=null,this.zd())},this);this.Wc.push(d)}},this);this.g.forEach(function(a){0==a.V()&&a.load()});0===a&&pa.setTimeout(this.zd.bind(this),0)}};function X(a){Jl.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction?a.tileLoadFunction:kv,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,wrapX:a.wrapX});this.crossOrigin=void 0!==a.crossOrigin?a.crossOrigin:null;this.tileClass=void 0!==a.tileClass?a.tileClass:du;this.i={};this.s={};this.na=a.reprojectionErrorThreshold;
this.D=!1}x(X,Jl);k=X.prototype;k.Ah=function(){if(Ve(this.a))return!0;for(var a in this.i)if(Ve(this.i[a]))return!0;return!1};k.Lc=function(a,b){var c=this.pd(a);this.a.Lc(this.a==c?b:{});for(var d in this.i){var e=this.i[d];e.Lc(e==c?b:{})}};k.Ud=function(a){return this.f&&a&&!Pc(this.f,a)?0:this.gf()};k.gf=function(){return 0};k.jf=function(a){return this.f&&a&&!Pc(this.f,a)?!1:Jl.prototype.jf.call(this,a)};
k.fb=function(a){var b=this.f;return!this.tileGrid||b&&!Pc(b,a)?(b=t(a).toString(),b in this.s||(this.s[b]=nf(a)),this.s[b]):this.tileGrid};k.pd=function(a){var b=this.f;if(!b||Pc(b,a))return this.a;a=t(a).toString();a in this.i||(this.i[a]=new Ue);return this.i[a]};function lv(a,b,c,d,e,f,g){b=[b,c,d];e=(c=vf(a,b,f))?a.tileUrlFunction(c,e,f):void 0;e=new a.tileClass(b,void 0!==e?0:4,void 0!==e?e:"",a.crossOrigin,a.tileLoadFunction);e.key=g;B(e,"change",a.Bh,a);return e}
k.bc=function(a,b,c,d,e){if(this.f&&e&&!Pc(this.f,e)){var f=this.pd(e);c=[a,b,c];var g;a=this.Fb.apply(this,c);Re(f,a)&&(g=f.get(a));b=this.Mb;if(g&&g.key==b)return g;var h=this.f,l=this.fb(h),m=this.fb(e),n=vf(this,c,e);d=new jv(h,l,e,m,c,n,this.cc(d),this.gf(),function(a,b,c,d){return mv(this,a,b,c,d,h)}.bind(this),this.na,this.D);d.key=b;g?(d.a=g,f.replace(a,d)):f.set(a,d);return d}return mv(this,a,b,c,d,e)};
function mv(a,b,c,d,e,f){var g,h=a.Fb(b,c,d),l=a.Mb;if(Re(a.a,h)){if(g=a.a.get(h),g.key!=l){var m=g;g.a&&g.a.key==l?(g=g.a,2==m.V()&&(g.a=m)):(g=lv(a,b,c,d,e,f,l),2==m.V()?g.a=m:m.a&&2==m.a.V()&&(g.a=m.a,m.a=null));g.a&&(g.a.a=null);a.a.replace(h,g)}}else g=lv(a,b,c,d,e,f,l),a.a.set(h,g);return g}k.Ab=function(a){if(this.D!=a){this.D=a;for(var b in this.i)this.i[b].clear();this.u()}};k.Bb=function(a,b){var c=zc(a);c&&(c=t(c).toString(),c in this.s||(this.s[c]=b))};function kv(a,b){a.$a().src=b};function nv(a){X.call(this,{cacheSize:a.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:zc("EPSG:3857"),reprojectionErrorThreshold:a.reprojectionErrorThreshold,state:"loading",tileLoadFunction:a.tileLoadFunction,wrapX:void 0!==a.wrapX?a.wrapX:!0});this.j=void 0!==a.culture?a.culture:"en-us";this.c=void 0!==a.maxZoom?a.maxZoom:-1;iv("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+a.imagerySet+"?uriScheme=https&include=ImageryProviders&key="+a.key,this.v.bind(this),void 0,"jsonp")}
x(nv,X);var ov=new $d({html:'<a class="ol-attribution-bing-tos" href="http://www.microsoft.com/maps/product/terms.html">Terms of Use</a>'});
nv.prototype.v=function(a){if(200!=a.statusCode||"OK"!=a.statusDescription||"ValidCredentials"!=a.authenticationResultCode||1!=a.resourceSets.length||1!=a.resourceSets[0].resources.length)cf(this,"error");else{var b=a.brandLogoUri;-1==b.indexOf("https")&&(b=b.replace("http","https"));var c=a.resourceSets[0].resources[0],d=-1==this.c?c.zoomMax:this.c;a=of(this.f);var e=qf({extent:a,minZoom:c.zoomMin,maxZoom:d,tileSize:c.imageWidth==c.imageHeight?c.imageWidth:[c.imageWidth,c.imageHeight]});this.tileGrid=
e;var f=this.j;this.tileUrlFunction=Gl(c.imageUrlSubdomains.map(function(a){var b=[0,0,0],d=c.imageUrl.replace("{subdomain}",a).replace("{culture}",f);return function(a){if(a)return Se(a[0],a[1],-a[2]-1,b),d.replace("{quadkey}",Te(b))}}));if(c.imageryProviders){var g=Cc(zc("EPSG:4326"),this.f);a=c.imageryProviders.map(function(a){var b=a.attribution,c={};a.coverageAreas.forEach(function(a){var b=a.zoomMin,f=Math.min(a.zoomMax,d);a=a.bbox;a=qc([a[1],a[0],a[3],a[2]],g);var h,l;for(h=b;h<=f;++h)l=h.toString(),
b=gf(e,a,h),l in c?c[l].push(b):c[l]=[b]});return new $d({html:b,tileRanges:c})});a.push(ov);this.qa(a)}this.S=b;cf(this,"ready")}};function pv(a){a=a||{};var b=void 0!==a.projection?a.projection:"EPSG:3857",c=void 0!==a.tileGrid?a.tileGrid:qf({extent:of(b),maxZoom:a.maxZoom,minZoom:a.minZoom,tileSize:a.tileSize});X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,opaque:a.opaque,projection:b,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:c,tileLoadFunction:a.tileLoadFunction,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,
wrapX:void 0!==a.wrapX?a.wrapX:!0})}x(pv,X);function qv(a){this.v=a.account;this.A=a.map||"";this.c=a.config||{};this.j={};pv.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,maxZoom:void 0!==a.maxZoom?a.maxZoom:18,minZoom:a.minZoom,projection:a.projection,state:"loading",wrapX:a.wrapX});rv(this)}x(qv,pv);k=qv.prototype;k.Tj=function(){return this.c};k.up=function(a){Ca(this.c,a);rv(this)};k.$o=function(a){this.c=a||{};rv(this)};
function rv(a){var b=JSON.stringify(a.c);if(a.j[b])sv(a,a.j[b]);else{var c="https://"+a.v+".cartodb.com/api/v1/map";a.A&&(c+="/named/"+a.A);var d=new XMLHttpRequest;d.addEventListener("load",a.Nk.bind(a,b));d.addEventListener("error",a.Mk.bind(a));d.open("POST",c);d.setRequestHeader("Content-type","application/json");d.send(JSON.stringify(a.c))}}
k.Nk=function(a,b){var c=b.target;if(200<=c.status&&300>c.status){var d;try{d=JSON.parse(c.responseText)}catch(e){cf(this,"error");return}sv(this,d);this.j[a]=d;cf(this,"ready")}else cf(this,"error")};k.Mk=function(){cf(this,"error")};function sv(a,b){a.Va("https://"+b.cdn_url.https+"/"+a.v+"/api/v1/map/"+b.layergroupid+"/{z}/{x}/{y}.png")};function Y(a){P.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,wrapX:a.wrapX});this.D=void 0;this.za=void 0!==a.distance?a.distance:20;this.A=[];this.na=a.geometryFunction||function(a){return a.X()};this.v=a.source;this.v.I("change",Y.prototype.cb,this)}x(Y,P);Y.prototype.Sa=function(){return this.v};Y.prototype.Pc=function(a,b,c){this.v.Pc(a,b,c);b!==this.D&&(this.clear(),this.D=b,tv(this),this.Jc(this.A))};
Y.prototype.cb=function(){this.clear();tv(this);this.Jc(this.A);this.u()};function tv(a){if(void 0!==a.D){a.A.length=0;for(var b=Jb(),c=a.za*a.D,d=a.v.oe(),e={},f=0,g=d.length;f<g;f++){var h=d[f];t(h).toString()in e||!(h=a.na(h))||(h=h.Z(),Wb(h,b),Mb(b,c,b),h=a.v.ef(b),h=h.filter(function(a){a=t(a).toString();return a in e?!1:e[a]=!0}),a.A.push(uv(a,h)))}}}
function uv(a,b){for(var c=[0,0],d=b.length-1;0<=d;--d){var e=a.na(b[d]);e?yb(c,e.Z()):b.splice(d,1)}d=1/b.length;c[0]*=d;c[1]*=d;c=new Ik(new C(c));c.set("features",b);return c};function vv(a,b){var c=Object.keys(b).map(function(a){return a+"="+encodeURIComponent(b[a])}).join("&");a=a.replace(/[?&]$/,"");a=-1===a.indexOf("?")?a+"?":a+"&";return a+c};function wv(a){a=a||{};Ak.call(this,{attributions:a.attributions,logo:a.logo,projection:a.projection,resolutions:a.resolutions});this.W=void 0!==a.crossOrigin?a.crossOrigin:null;this.i=a.url;this.j=void 0!==a.imageLoadFunction?a.imageLoadFunction:Gk;this.v=a.params||{};this.c=null;this.s=[0,0];this.T=0;this.P=void 0!==a.ratio?a.ratio:1.5}x(wv,Ak);k=wv.prototype;k.Sm=function(){return this.v};
k.Mc=function(a,b,c,d){if(void 0===this.i)return null;b=Bk(this,b);var e=this.c;if(e&&this.T==this.g&&e.$()==b&&e.f==c&&Sb(e.H(),a))return e;e={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Ca(e,this.v);a=a.slice();var f=(a[0]+a[2])/2,g=(a[1]+a[3])/2;if(1!=this.P){var h=this.P*jc(a)/2,l=this.P*kc(a)/2;a[0]=f-h;a[1]=g-l;a[2]=f+h;a[3]=g+l}var h=b/c,l=Math.ceil(jc(a)/h),m=Math.ceil(kc(a)/h);a[0]=f-h*l/2;a[2]=f+h*l/2;a[1]=g-h*m/2;a[3]=g+h*m/2;this.s[0]=l;this.s[1]=m;f=a;g=this.s;d=d.eb.split(":").pop();e.SIZE=
g[0]+","+g[1];e.BBOX=f.join(",");e.BBOXSR=d;e.IMAGESR=d;e.DPI=90*c;d=this.i.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");e=vv(d,e);this.c=new cu(a,b,c,this.l,e,this.W,this.j);this.T=this.g;B(this.c,"change",this.o,this);return this.c};k.Rm=function(){return this.j};k.Tm=function(){return this.i};k.Um=function(a){this.c=null;this.j=a;this.u()};k.Vm=function(a){a!=this.i&&(this.i=a,this.c=null,this.u())};k.Wm=function(a){Ca(this.v,a);this.c=null;this.u()};function xv(a){Ak.call(this,{projection:a.projection,resolutions:a.resolutions});this.W=void 0!==a.crossOrigin?a.crossOrigin:null;this.s=void 0!==a.displayDpi?a.displayDpi:96;this.j=a.params||{};this.T=a.url;this.c=void 0!==a.imageLoadFunction?a.imageLoadFunction:Gk;this.ia=void 0!==a.hidpi?a.hidpi:!0;this.oa=void 0!==a.metersPerUnit?a.metersPerUnit:1;this.v=void 0!==a.ratio?a.ratio:1;this.za=void 0!==a.useOverlay?a.useOverlay:!1;this.i=null;this.P=0}x(xv,Ak);k=xv.prototype;k.Ym=function(){return this.j};
k.Mc=function(a,b,c){b=Bk(this,b);c=this.ia?c:1;var d=this.i;if(d&&this.P==this.g&&d.$()==b&&d.f==c&&Sb(d.H(),a))return d;1!=this.v&&(a=a.slice(),pc(a,this.v));var e=[jc(a)/b*c,kc(a)/b*c];if(void 0!==this.T){var d=this.T,f=lc(a),g=this.oa,h=jc(a),l=kc(a),m=e[0],n=e[1],p=.0254/this.s,e={OPERATION:this.za?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol.source.ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.s,SETDISPLAYWIDTH:Math.round(e[0]),SETDISPLAYHEIGHT:Math.round(e[1]),
SETVIEWSCALE:n*h>m*l?h*g/(m*p):l*g/(n*p),SETVIEWCENTERX:f[0],SETVIEWCENTERY:f[1]};Ca(e,this.j);d=vv(d,e);d=new cu(a,b,c,this.l,d,this.W,this.c);B(d,"change",this.o,this)}else d=null;this.i=d;this.P=this.g;return d};k.Xm=function(){return this.c};k.$m=function(a){Ca(this.j,a);this.u()};k.Zm=function(a){this.i=null;this.c=a;this.u()};function yv(a){var b=a.imageExtent,c=void 0!==a.crossOrigin?a.crossOrigin:null,d=void 0!==a.imageLoadFunction?a.imageLoadFunction:Gk;Ak.call(this,{attributions:a.attributions,logo:a.logo,projection:zc(a.projection)});this.c=new cu(b,void 0,1,this.l,a.url,c,d);this.i=a.imageSize?a.imageSize:null;B(this.c,"change",this.o,this)}x(yv,Ak);yv.prototype.Mc=function(a){return oc(a,this.c.H())?this.c:null};
yv.prototype.o=function(a){if(2==this.c.V()){var b=this.c.H(),c=this.c.a(),d,e;this.i?(d=this.i[0],e=this.i[1]):(d=c.width,e=c.height);b=Math.ceil(jc(b)/(kc(b)/e));if(b!=d){var b=Ge(b,e),f=b.canvas;b.drawImage(c,0,0,d,e,0,0,f.width,f.height);this.c.g=f}}Ak.prototype.o.call(this,a)};function zv(a){a=a||{};Ak.call(this,{attributions:a.attributions,logo:a.logo,projection:a.projection,resolutions:a.resolutions});this.oa=void 0!==a.crossOrigin?a.crossOrigin:null;this.j=a.url;this.P=void 0!==a.imageLoadFunction?a.imageLoadFunction:Gk;this.i=a.params||{};this.v=!0;Av(this);this.ia=a.serverType;this.za=void 0!==a.hidpi?a.hidpi:!0;this.c=null;this.T=[0,0];this.W=0;this.s=void 0!==a.ratio?a.ratio:1.5}x(zv,Ak);var Bv=[101,101];k=zv.prototype;
k.fn=function(a,b,c,d){if(void 0!==this.j){var e=mc(a,b,0,Bv),f={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.i.LAYERS};Ca(f,this.i,d);d=Math.floor((e[3]-a[1])/b);f[this.v?"I":"X"]=Math.floor((a[0]-e[0])/b);f[this.v?"J":"Y"]=d;return Cv(this,e,Bv,1,zc(c),f)}};k.hn=function(){return this.i};
k.Mc=function(a,b,c,d){if(void 0===this.j)return null;b=Bk(this,b);1==c||this.za&&void 0!==this.ia||(c=1);a=a.slice();var e=(a[0]+a[2])/2,f=(a[1]+a[3])/2,g=b/c,h=jc(a)/g,g=kc(a)/g,l=this.c;if(l&&this.W==this.g&&l.$()==b&&l.f==c&&Sb(l.H(),a))return l;if(1!=this.s){var l=this.s*jc(a)/2,m=this.s*kc(a)/2;a[0]=e-l;a[1]=f-m;a[2]=e+l;a[3]=f+m}e={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};Ca(e,this.i);this.T[0]=Math.ceil(h*this.s);this.T[1]=Math.ceil(g*this.s);d=Cv(this,
a,this.T,c,d,e);this.c=new cu(a,b,c,this.l,d,this.oa,this.P);this.W=this.g;B(this.c,"change",this.o,this);return this.c};k.gn=function(){return this.P};
function Cv(a,b,c,d,e,f){f[a.v?"CRS":"SRS"]=e.eb;"STYLES"in a.i||(f.STYLES="");if(1!=d)switch(a.ia){case "geoserver":d=90*d+.5|0;f.FORMAT_OPTIONS="FORMAT_OPTIONS"in f?f.FORMAT_OPTIONS+(";dpi:"+d):"dpi:"+d;break;case "mapserver":f.MAP_RESOLUTION=90*d;break;case "carmentaserver":case "qgis":f.DPI=90*d}f.WIDTH=c[0];f.HEIGHT=c[1];c=e.b;var g;a.v&&"ne"==c.substr(0,2)?g=[b[1],b[0],b[3],b[2]]:g=b;f.BBOX=g.join(",");return vv(a.j,f)}k.jn=function(){return this.j};k.kn=function(a){this.c=null;this.P=a;this.u()};
k.ln=function(a){a!=this.j&&(this.j=a,this.c=null,this.u())};k.mn=function(a){Ca(this.i,a);Av(this);this.c=null;this.u()};function Av(a){a.v=0<=xb(a.i.VERSION||"1.3.0")};function Dv(a){a=a||{};var b;void 0!==a.attributions?b=a.attributions:b=[Ev];pv.call(this,{attributions:b,cacheSize:a.cacheSize,crossOrigin:void 0!==a.crossOrigin?a.crossOrigin:"anonymous",opaque:void 0!==a.opaque?a.opaque:!0,maxZoom:void 0!==a.maxZoom?a.maxZoom:19,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileLoadFunction:a.tileLoadFunction,url:void 0!==a.url?a.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",wrapX:a.wrapX})}x(Dv,pv);var Ev=new $d({html:'&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.'});(function(){var a={},b={ja:a};(function(c){if("object"===typeof a&&"undefined"!==typeof b)b.ja=c();else{var d;"undefined"!==typeof window?d=window:"undefined"!==typeof global?d=global:"undefined"!==typeof self?d=self:d=this;d.Sp=c()}})(function(){return function d(a,b,g){function h(m,p){if(!b[m]){if(!a[m]){var q="function"==typeof require&&require;if(!p&&q)return q(m,!0);if(l)return l(m,!0);q=Error("Cannot find module '"+m+"'");throw q.code="MODULE_NOT_FOUND",q;}q=b[m]={ja:{}};a[m][0].call(q.ja,function(b){var d=
a[m][1][b];return h(d?d:b)},q,q.ja,d,a,b,g)}return b[m].ja}for(var l="function"==typeof require&&require,m=0;m<g.length;m++)h(g[m]);return h}({1:[function(a,b,f){a=a("./processor");f.$i=a},{"./processor":2}],2:[function(a,b){function f(a){var b=!0;try{new ImageData(10,10)}catch(d){b=!1}return function(d){var e=d.buffers,f=d.meta,g=d.width,h=d.height,l=e.length,m=e[0].byteLength;if(d.imageOps){m=Array(l);for(d=0;d<l;++d){var D=m,H=d,ba;ba=new Uint8ClampedArray(e[d]);var A=g,Fa=h;ba=b?new ImageData(ba,
A,Fa):{data:ba,width:A,height:Fa};D[H]=ba}g=a(m,f).data}else{g=new Uint8ClampedArray(m);h=Array(l);D=Array(l);for(d=0;d<l;++d)h[d]=new Uint8ClampedArray(e[d]),D[d]=[0,0,0,0];for(e=0;e<m;e+=4){for(d=0;d<l;++d)H=h[d],D[d][0]=H[e],D[d][1]=H[e+1],D[d][2]=H[e+2],D[d][3]=H[e+3];d=a(D,f);g[e]=d[0];g[e+1]=d[1];g[e+2]=d[2];g[e+3]=d[3]}}return g.buffer}}function g(a,b){var d=Object.keys(a.lib||{}).map(function(b){return"var "+b+" = "+a.lib[b].toString()+";"}).concat(["var __minion__ = ("+f.toString()+")(",
a.operation.toString(),");",'self.addEventListener("message", function(event) {'," var buffer = __minion__(event.data);"," self.postMessage({buffer: buffer, meta: event.data.meta}, [buffer]);","});"]),d=URL.createObjectURL(new Blob(d,{type:"text/javascript"})),d=new Worker(d);d.addEventListener("message",b);return d}function h(a,b){var d=f(a.operation);return{postMessage:function(a){setTimeout(function(){b({data:{buffer:d(a),meta:a.meta}})},0)}}}function l(a){this.Re=!!a.ll;var b;0===a.threads?
b=0:this.Re?b=1:b=a.threads||1;var d=[];if(b)for(var e=0;e<b;++e)d[e]=g(a,this.ig.bind(this,e));else d[0]=h(a,this.ig.bind(this,0));this.Ld=d;this.$c=[];this.oj=a.uo||Infinity;this.Jd=0;this.Ic={};this.Se=null}var m=a("./util").Fl;l.prototype.so=function(a,b,d){this.lj({Ac:a,Xg:b,qg:d});this.fg()};l.prototype.lj=function(a){for(this.$c.push(a);this.$c.length>this.oj;)this.$c.shift().qg(null,null)};l.prototype.fg=function(){if(0===this.Jd&&0<this.$c.length){var a=this.Se=this.$c.shift(),b=a.Ac[0].width,
d=a.Ac[0].height,e=a.Ac.map(function(a){return a.data.buffer}),f=this.Ld.length;this.Jd=f;if(1===f)this.Ld[0].postMessage({buffers:e,meta:a.Xg,imageOps:this.Re,width:b,height:d},e);else for(var g=4*Math.ceil(a.Ac[0].data.length/4/f),h=0;h<f;++h){for(var l=h*g,m=[],D=0,H=e.length;D<H;++D)m.push(e[h].slice(l,l+g));this.Ld[h].postMessage({buffers:m,meta:a.Xg,imageOps:this.Re,width:b,height:d},m)}}};l.prototype.ig=function(a,b){this.Pp||(this.Ic[a]=b.data,--this.Jd,0===this.Jd&&this.pj())};l.prototype.pj=
function(){var a=this.Se,b=this.Ld.length,d,e;if(1===b)d=new Uint8ClampedArray(this.Ic[0].buffer),e=this.Ic[0].meta;else{var f=a.Ac[0].data.length;d=new Uint8ClampedArray(f);e=Array(f);for(var f=4*Math.ceil(f/4/b),g=0;g<b;++g){var h=g*f;d.set(new Uint8ClampedArray(this.Ic[g].buffer),h);e[g]=this.Ic[g].meta}}this.Se=null;this.Ic={};a.qg(null,m(d,a.Ac[0].width,a.Ac[0].height),e);this.fg()};b.ja=l},{"./util":3}],3:[function(a,b,f){var g=!0;try{new ImageData(10,10)}catch(l){g=!1}var h=document.createElement("canvas").getContext("2d");
f.Fl=function(a,b,d){if(g)return new ImageData(a,b,d);b=h.createImageData(b,d);b.data.set(a);return b}},{}]},{},[1])(1)});jl=b.ja})();function Fv(a){this.P=null;this.za=void 0!==a.operationType?a.operationType:"pixel";this.Sa=void 0!==a.threads?a.threads:1;this.c=Gv(a.sources);for(var b=0,c=this.c.length;b<c;++b)B(this.c[b],"change",this.u,this);this.i=Ge();this.ia=new Th(function(){return 1},this.u.bind(this));for(var b=Hv(this.c),c={},d=0,e=b.length;d<e;++d)c[t(b[d].layer)]=b[d];this.j=this.s=null;this.W={animate:!1,attributions:{},coordinateToPixelTransform:ch(),extent:null,focus:null,index:0,layerStates:c,layerStatesArray:b,
logos:{},pixelRatio:1,pixelToCoordinateTransform:ch(),postRenderFunctions:[],size:[0,0],skippedFeatureUids:{},tileQueue:this.ia,time:Date.now(),usedTiles:{},viewState:{rotation:0},viewHints:[],wantedTiles:{}};Ak.call(this,{});void 0!==a.operation&&this.v(a.operation,a.lib)}x(Fv,Ak);Fv.prototype.v=function(a,b){this.P=new jl.$i({operation:a,ll:"image"===this.za,uo:1,lib:b,threads:this.Sa});this.u()};function Iv(a,b,c){var d=a.s;return!d||a.g!==d.Xo||c!==d.resolution||!$b(b,d.extent)}
Fv.prototype.A=function(a,b,c,d){c=!0;for(var e,f=0,g=this.c.length;f<g;++f)if(e=this.c[f].a.ha(),"ready"!==e.V()){c=!1;break}if(!c)return null;a=a.slice();if(!Iv(this,a,b))return this.j;c=this.i.canvas;e=Math.round(jc(a)/b);f=Math.round(kc(a)/b);if(e!==c.width||f!==c.height)c.width=e,c.height=f;e=Ca({},this.W);e.viewState=Ca({},e.viewState);var f=lc(a),g=Math.round(jc(a)/b),h=Math.round(kc(a)/b);e.extent=a;e.focus=lc(a);e.size[0]=g;e.size[1]=h;g=e.viewState;g.center=f;g.projection=d;g.resolution=
b;this.j=d=new nk(a,b,1,this.l,c,this.T.bind(this,e));this.s={extent:a,resolution:b,Xo:this.g};return d};
Fv.prototype.T=function(a,b){for(var c=this.c.length,d=Array(c),e=0;e<c;++e){var f;f=this.c[e];var g=a,h=a.layerStatesArray[e];if(f.l(g,h)){var l=g.size[0],m=g.size[1];if(Jv){var n=Jv.canvas;n.width!==l||n.height!==m?Jv=Ge(l,m):Jv.clearRect(0,0,l,m)}else Jv=Ge(l,m);f.i(g,h,Jv);f=Jv.getImageData(0,0,l,m)}else f=null;if(f)d[e]=f;else return}c={};this.b(new Kv(Lv,a,c));this.P.so(d,c,this.oa.bind(this,a,b));Uh(a.tileQueue,16,16)};
Fv.prototype.oa=function(a,b,c,d,e){c?b(c):d&&(this.b(new Kv(Mv,a,e)),Iv(this,a.extent,a.viewState.resolution/a.pixelRatio)||this.i.putImageData(d,0,0),b(null))};var Jv=null;function Hv(a){return a.map(function(a){return oh(a.a)})}function Gv(a){for(var b=a.length,c=Array(b),d=0;d<b;++d){var e=d,f=a[d],g=null;f instanceof rf?(f=new F({source:f}),g=new Bl(f)):f instanceof Ak&&(f=new ej({source:f}),g=new Al(f));c[e]=g}return c}
function Kv(a,b,c){Ua.call(this,a);this.extent=b.extent;this.resolution=b.viewState.resolution/b.pixelRatio;this.data=c}x(Kv,Ua);var Lv="beforeoperations",Mv="afteroperations";var Nv={terrain:{ub:"jpg",opaque:!0},"terrain-background":{ub:"jpg",opaque:!0},"terrain-labels":{ub:"png",opaque:!1},"terrain-lines":{ub:"png",opaque:!1},"toner-background":{ub:"png",opaque:!0},toner:{ub:"png",opaque:!0},"toner-hybrid":{ub:"png",opaque:!1},"toner-labels":{ub:"png",opaque:!1},"toner-lines":{ub:"png",opaque:!1},"toner-lite":{ub:"png",opaque:!0},watercolor:{ub:"jpg",opaque:!0}},Ov={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}};
function Pv(a){var b=a.layer.indexOf("-"),b=-1==b?a.layer:a.layer.slice(0,b),b=Ov[b],c=Nv[a.layer];pv.call(this,{attributions:Qv,cacheSize:a.cacheSize,crossOrigin:"anonymous",maxZoom:void 0!=a.maxZoom?a.maxZoom:b.maxZoom,minZoom:void 0!=a.minZoom?a.minZoom:b.minZoom,opaque:c.opaque,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileLoadFunction:a.tileLoadFunction,url:void 0!==a.url?a.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+a.layer+"/{z}/{x}/{y}."+c.ub})}x(Pv,pv);
var Qv=[new $d({html:'Map tiles by <a href="http://stamen.com/">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.'}),Ev];function Rv(a){a=a||{};X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0});this.c=a.params||{};this.j=Jb()}x(Rv,X);Rv.prototype.v=function(){return this.c};Rv.prototype.cc=function(a){return a};
Rv.prototype.vc=function(a,b,c){var d=this.tileGrid;d||(d=this.fb(c));if(!(d.b.length<=a[0])){var e=d.Ea(a,this.j),f=$e(d.Ja(a[0]),this.o);1!=b&&(f=Ze(f,b,this.o));d={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Ca(d,this.c);var g=this.urls;g?(c=c.eb.split(":").pop(),d.SIZE=f[0]+","+f[1],d.BBOX=e.join(","),d.BBOXSR=c,d.IMAGESR=c,d.DPI=Math.round(d.DPI?d.DPI*b:90*b),a=(1==g.length?g[0]:g[xa((a[1]<<a[0])+a[2],g.length)]).replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),
a=vv(a,d)):a=void 0;return a}};Rv.prototype.A=function(a){Ca(this.c,a);this.u()};function Sv(a,b,c){We.call(this,a,2);this.l=b;this.c=c;this.g={}}x(Sv,We);Sv.prototype.$a=function(a){a=void 0!==a?t(a):-1;if(a in this.g)return this.g[a];var b=this.l,c=Ge(b[0],b[1]);c.strokeStyle="black";c.strokeRect(.5,.5,b[0]+.5,b[1]+.5);c.fillStyle="black";c.textAlign="center";c.textBaseline="middle";c.font="24px sans-serif";c.fillText(this.c,b[0]/2,b[1]/2);return this.g[a]=c.canvas};
function Tv(a){rf.call(this,{opaque:!1,projection:a.projection,tileGrid:a.tileGrid,wrapX:void 0!==a.wrapX?a.wrapX:!0})}x(Tv,rf);Tv.prototype.bc=function(a,b,c){var d=this.Fb(a,b,c);if(Re(this.a,d))return this.a.get(d);var e=$e(this.tileGrid.Ja(a));a=[a,b,c];b=(b=vf(this,a))?vf(this,b).toString():"";e=new Sv(a,e,b);this.a.set(d,e);return e};function Uv(a){this.c=null;X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,projection:zc("EPSG:3857"),reprojectionErrorThreshold:a.reprojectionErrorThreshold,state:"loading",tileLoadFunction:a.tileLoadFunction,wrapX:void 0!==a.wrapX?a.wrapX:!0});if(a.jsonp)iv(a.url,this.yh.bind(this),this.me.bind(this));else{var b=new XMLHttpRequest;b.addEventListener("load",this.pn.bind(this));b.addEventListener("error",this.nn.bind(this));b.open("GET",a.url);b.send()}}
x(Uv,X);k=Uv.prototype;k.pn=function(a){a=a.target;if(200<=a.status&&300>a.status){var b;try{b=JSON.parse(a.responseText)}catch(c){this.me();return}this.yh(b)}else this.me()};k.nn=function(){this.me()};k.Ak=function(){return this.c};
k.yh=function(a){var b=zc("EPSG:4326"),c=this.f,d;void 0!==a.bounds&&(d=qc(a.bounds,Cc(b,c)));var e=a.minzoom||0,f=a.maxzoom||22;this.tileGrid=c=qf({extent:of(c),maxZoom:f,minZoom:e});this.tileUrlFunction=Fl(a.tiles,c);if(void 0!==a.attribution&&!this.l){b=void 0!==d?d:b.H();d={};for(var g;e<=f;++e)g=e.toString(),d[g]=[gf(c,b,e)];this.qa([new $d({html:a.attribution,tileRanges:d})])}this.c=a;cf(this,"ready")};k.me=function(){cf(this,"error")};function Vv(a){rf.call(this,{projection:zc("EPSG:3857"),state:"loading"});this.s=void 0!==a.preemptive?a.preemptive:!0;this.j=Hl;this.i=void 0;this.c=a.jsonp||!1;if(a.url)if(this.c)iv(a.url,this.Bf.bind(this),this.ne.bind(this));else{var b=new XMLHttpRequest;b.addEventListener("load",this.tn.bind(this));b.addEventListener("error",this.sn.bind(this));b.open("GET",a.url);b.send()}else a.tileJSON&&this.Bf(a.tileJSON)}x(Vv,rf);k=Vv.prototype;
k.tn=function(a){a=a.target;if(200<=a.status&&300>a.status){var b;try{b=JSON.parse(a.responseText)}catch(c){this.ne();return}this.Bf(b)}else this.ne()};k.sn=function(){this.ne()};k.xk=function(){return this.i};k.Ij=function(a,b,c,d,e){this.tileGrid?(b=this.tileGrid.Zd(a,b),Wv(this.bc(b[0],b[1],b[2],1,this.f),a,c,d,e)):!0===e?Mf(function(){c.call(d,null)}):c.call(d,null)};k.ne=function(){cf(this,"error")};
k.Bf=function(a){var b=zc("EPSG:4326"),c=this.f,d;void 0!==a.bounds&&(d=qc(a.bounds,Cc(b,c)));var e=a.minzoom||0,f=a.maxzoom||22;this.tileGrid=c=qf({extent:of(c),maxZoom:f,minZoom:e});this.i=a.template;var g=a.grids;if(g){this.j=Fl(g,c);if(void 0!==a.attribution){b=void 0!==d?d:b.H();for(d={};e<=f;++e)g=e.toString(),d[g]=[gf(c,b,e)];this.qa([new $d({html:a.attribution,tileRanges:d})])}cf(this,"ready")}else cf(this,"error")};
k.bc=function(a,b,c,d,e){var f=this.Fb(a,b,c);if(Re(this.a,f))return this.a.get(f);a=[a,b,c];b=vf(this,a,e);d=this.j(b,d,e);d=new Xv(a,void 0!==d?0:4,void 0!==d?d:"",this.tileGrid.Ea(a),this.s,this.c);this.a.set(f,d);return d};k.Yf=function(a,b,c){a=this.Fb(a,b,c);Re(this.a,a)&&this.a.get(a)};function Xv(a,b,c,d,e,f){We.call(this,a,b);this.s=c;this.g=d;this.U=e;this.c=this.j=this.l=null;this.v=f}x(Xv,We);k=Xv.prototype;k.$a=function(){return null};
k.getData=function(a){if(!this.l||!this.j)return null;var b=this.l[Math.floor((1-(a[1]-this.g[1])/(this.g[3]-this.g[1]))*this.l.length)];if("string"!==typeof b)return null;b=b.charCodeAt(Math.floor((a[0]-this.g[0])/(this.g[2]-this.g[0])*b.length));93<=b&&b--;35<=b&&b--;b-=32;a=null;b in this.j&&(b=this.j[b],this.c&&b in this.c?a=this.c[b]:a=b);return a};
function Wv(a,b,c,d,e){0==a.state&&!0===e?(Pa(a,"change",function(){c.call(d,this.getData(b))},a),Yv(a)):!0===e?Mf(function(){c.call(d,this.getData(b))},a):c.call(d,a.getData(b))}k.jb=function(){return this.s};k.ae=function(){this.state=3;Xe(this)};k.zh=function(a){this.l=a.grid;this.j=a.keys;this.c=a.data;this.state=4;Xe(this)};
function Yv(a){if(0==a.state)if(a.state=1,a.v)iv(a.s,a.zh.bind(a),a.ae.bind(a));else{var b=new XMLHttpRequest;b.addEventListener("load",a.rn.bind(a));b.addEventListener("error",a.qn.bind(a));b.open("GET",a.s);b.send()}}k.rn=function(a){a=a.target;if(200<=a.status&&300>a.status){var b;try{b=JSON.parse(a.responseText)}catch(c){this.ae();return}this.zh(b)}else this.ae()};k.qn=function(){this.ae()};k.load=function(){this.U&&Yv(this)};function Zv(a){a=a||{};var b=a.params||{};X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,opaque:!("TRANSPARENT"in b?b.TRANSPARENT:1),projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0});this.v=void 0!==a.gutter?a.gutter:0;this.c=b;this.j=!0;this.A=a.serverType;this.T=void 0!==a.hidpi?a.hidpi:!0;this.P="";
$v(this);this.W=Jb();aw(this);uf(this,bw(this))}x(Zv,X);k=Zv.prototype;
k.vn=function(a,b,c,d){c=zc(c);var e=this.tileGrid;e||(e=this.fb(c));b=e.Zd(a,b);if(!(e.b.length<=b[0])){var f=e.$(b[0]),g=e.Ea(b,this.W),e=$e(e.Ja(b[0]),this.o),h=this.v;0!==h&&(e=Ye(e,h,this.o),g=Mb(g,f*h,g));h={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.c.LAYERS};Ca(h,this.c,d);d=Math.floor((g[3]-a[1])/f);h[this.j?"I":"X"]=Math.floor((a[0]-g[0])/f);h[this.j?"J":"Y"]=d;return cw(this,b,e,g,1,c,h)}};k.gf=function(){return this.v};
k.Fb=function(a,b,c){return this.P+X.prototype.Fb.call(this,a,b,c)};k.wn=function(){return this.c};
function cw(a,b,c,d,e,f,g){var h=a.urls;if(h){g.WIDTH=c[0];g.HEIGHT=c[1];g[a.j?"CRS":"SRS"]=f.eb;"STYLES"in a.c||(g.STYLES="");if(1!=e)switch(a.A){case "geoserver":c=90*e+.5|0;g.FORMAT_OPTIONS="FORMAT_OPTIONS"in g?g.FORMAT_OPTIONS+(";dpi:"+c):"dpi:"+c;break;case "mapserver":g.MAP_RESOLUTION=90*e;break;case "carmentaserver":case "qgis":g.DPI=90*e}f=f.b;a.j&&"ne"==f.substr(0,2)&&(a=d[0],d[0]=d[1],d[1]=a,a=d[2],d[2]=d[3],d[3]=a);g.BBOX=d.join(",");return vv(1==h.length?h[0]:h[xa((b[1]<<b[0])+b[2],h.length)],
g)}}k.cc=function(a){return this.T&&void 0!==this.A?a:1};function $v(a){var b=0,c=[];if(a.urls){var d,e;d=0;for(e=a.urls.length;d<e;++d)c[b++]=a.urls[d]}a.P=c.join("#")}function bw(a){var b=0,c=[],d;for(d in a.c)c[b++]=d+"-"+a.c[d];return c.join("/")}
k.vc=function(a,b,c){var d=this.tileGrid;d||(d=this.fb(c));if(!(d.b.length<=a[0])){1==b||this.T&&void 0!==this.A||(b=1);var e=d.$(a[0]),f=d.Ea(a,this.W),d=$e(d.Ja(a[0]),this.o),g=this.v;0!==g&&(d=Ye(d,g,this.o),f=Mb(f,e*g,f));1!=b&&(d=Ze(d,b,this.o));e={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};Ca(e,this.c);return cw(this,a,d,f,b,c,e)}};k.xn=function(a){Ca(this.c,a);$v(this);aw(this);uf(this,bw(this))};function aw(a){a.j=0<=xb(a.c.VERSION||"1.3.0")};function dw(a){this.l=a.matrixIds;df.call(this,{extent:a.extent,origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes,sizes:a.sizes})}x(dw,df);dw.prototype.j=function(){return this.l};
function ew(a,b){var c=[],d=[],e=[],f=[],g=[],h;h=zc(a.SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"));var l=h.ac(),m="ne"==h.b.substr(0,2);a.TileMatrix.sort(function(a,b){return b.ScaleDenominator-a.ScaleDenominator});a.TileMatrix.forEach(function(a){d.push(a.Identifier);var b=2.8E-4*a.ScaleDenominator/l,h=a.TileWidth,r=a.TileHeight;m?e.push([a.TopLeftCorner[1],a.TopLeftCorner[0]]):e.push(a.TopLeftCorner);c.push(b);f.push(h==r?h:[h,r]);g.push([a.MatrixWidth,-a.MatrixHeight])});
return new dw({extent:b,origins:e,resolutions:c,matrixIds:d,tileSizes:f,sizes:g})};function Z(a){function b(a){a="KVP"==d?vv(a,f):a.replace(/\{(\w+?)\}/g,function(a,b){return b.toLowerCase()in f?f[b.toLowerCase()]:a});return function(b){if(b){var c={TileMatrix:e.l[b[0]],TileCol:b[1],TileRow:-b[2]-1};Ca(c,g);b=a;return b="KVP"==d?vv(b,c):b.replace(/\{(\w+?)\}/g,function(a,b){return c[b]})}}}this.T=void 0!==a.version?a.version:"1.0.0";this.v=void 0!==a.format?a.format:"image/jpeg";this.c=void 0!==a.dimensions?a.dimensions:{};this.A=a.layer;this.j=a.matrixSet;this.P=a.style;var c=
a.urls;void 0===c&&void 0!==a.url&&(c=Il(a.url));var d=this.W=void 0!==a.requestEncoding?a.requestEncoding:"KVP",e=a.tileGrid,f={layer:this.A,style:this.P,tilematrixset:this.j};"KVP"==d&&Ca(f,{Service:"WMTS",Request:"GetTile",Version:this.T,Format:this.v});var g=this.c,h=c&&0<c.length?Gl(c.map(b)):Hl;X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileClass:a.tileClass,
tileGrid:e,tileLoadFunction:a.tileLoadFunction,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:h,urls:c,wrapX:void 0!==a.wrapX?a.wrapX:!1});uf(this,fw(this))}x(Z,X);k=Z.prototype;k.Vj=function(){return this.c};k.yn=function(){return this.v};k.zn=function(){return this.A};k.hk=function(){return this.j};k.vk=function(){return this.W};k.An=function(){return this.P};k.Ck=function(){return this.T};function fw(a){var b=0,c=[],d;for(d in a.c)c[b++]=d+"-"+a.c[d];return c.join("/")}
k.vp=function(a){Ca(this.c,a);uf(this,fw(this))};function gw(a){a=a||{};var b=a.size,c=b[0],d=b[1],e=[],f=256;switch(void 0!==a.tierSizeCalculation?a.tierSizeCalculation:"default"){case "default":for(;c>f||d>f;)e.push([Math.ceil(c/f),Math.ceil(d/f)]),f+=f;break;case "truncated":for(;c>f||d>f;)e.push([Math.ceil(c/f),Math.ceil(d/f)]),c>>=1,d>>=1}e.push([1,1]);e.reverse();for(var f=[1],g=[0],d=1,c=e.length;d<c;d++)f.push(1<<d),g.push(e[d-1][0]*e[d-1][1]+g[d-1]);f.reverse();var b=[0,-b[1],b[0],0],b=new df({extent:b,origin:fc(b),resolutions:f}),h=a.url;
X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileClass:hw,tileGrid:b,tileUrlFunction:function(a){if(a){var b=a[0],c=a[1];a=-a[2]-1;return h+"TileGroup"+((c+a*e[b][0]+g[b])/256|0)+"/"+b+"-"+c+"-"+a+".jpg"}}})}x(gw,X);function hw(a,b,c,d,e){du.call(this,a,b,c,d,e);this.l={}}x(hw,du);
hw.prototype.$a=function(a){var b=void 0!==a?t(a).toString():"";if(b in this.l)return this.l[b];a=du.prototype.$a.call(this,a);if(2==this.state){if(256==a.width&&256==a.height)return this.l[b]=a;var c=Ge(256,256);c.drawImage(a,0,0);return this.l[b]=c.canvas}return a};function iw(a){a=a||{};this.a=void 0!==a.initialSize?a.initialSize:256;this.g=void 0!==a.maxSize?a.maxSize:void 0!==la?la:2048;this.b=void 0!==a.space?a.space:1;this.c=[new jw(this.a,this.b)];this.f=this.a;this.i=[new jw(this.f,this.b)]}iw.prototype.add=function(a,b,c,d,e,f){if(b+this.b>this.g||c+this.b>this.g)return null;d=kw(this,!1,a,b,c,d,f);if(!d)return null;a=kw(this,!0,a,b,c,void 0!==e?e:oa,f);return{offsetX:d.offsetX,offsetY:d.offsetY,image:d.image,Sg:a.image}};
function kw(a,b,c,d,e,f,g){var h=b?a.i:a.c,l,m,n;m=0;for(n=h.length;m<n;++m){l=h[m];if(l=l.add(c,d,e,f,g))return l;l||m!==n-1||(b?(l=Math.min(2*a.f,a.g),a.f=l):(l=Math.min(2*a.a,a.g),a.a=l),l=new jw(l,a.b),h.push(l),++n)}}function jw(a,b){this.b=b;this.a=[{x:0,y:0,width:a,height:a}];this.f={};this.g=Ge(a,a);this.c=this.g.canvas}jw.prototype.get=function(a){return this.f[a]||null};
jw.prototype.add=function(a,b,c,d,e){var f,g,h;g=0;for(h=this.a.length;g<h;++g)if(f=this.a[g],f.width>=b+this.b&&f.height>=c+this.b)return h={offsetX:f.x+this.b,offsetY:f.y+this.b,image:this.c},this.f[a]=h,d.call(e,this.g,f.x+this.b,f.y+this.b),a=g,b+=this.b,d=c+this.b,f.width-b>f.height-d?(c={x:f.x+b,y:f.y,width:f.width-b,height:f.height},b={x:f.x,y:f.y+d,width:b,height:f.height-d},lw(this,a,c,b)):(c={x:f.x+b,y:f.y,width:f.width-b,height:d},b={x:f.x,y:f.y+d,width:f.width,height:f.height-d},lw(this,
a,c,b)),h;return null};function lw(a,b,c,d){b=[b,1];0<c.width&&0<c.height&&b.push(c);0<d.width&&0<d.height&&b.push(d);a.a.splice.apply(a.a,b)};function mw(a){this.A=this.s=this.f=null;this.o=void 0!==a.fill?a.fill:null;this.ya=[0,0];this.b=a.points;this.g=void 0!==a.radius?a.radius:a.radius1;this.c=void 0!==a.radius2?a.radius2:this.g;this.l=void 0!==a.angle?a.angle:0;this.a=void 0!==a.stroke?a.stroke:null;this.S=this.Aa=this.C=null;var b=a.atlasManager,c="",d="",e=0,f=null,g,h=0;this.a&&(g=le(this.a.b),h=this.a.a,void 0===h&&(h=1),f=this.a.g,ag||(f=null),d=this.a.c,void 0===d&&(d="round"),c=this.a.f,void 0===c&&(c="round"),e=this.a.i,void 0===
e&&(e=10));var l=2*(this.g+h)+1,c={strokeStyle:g,Bd:h,size:l,lineCap:c,lineDash:f,lineJoin:d,miterLimit:e};if(void 0===b){var m=Ge(l,l);this.s=m.canvas;b=l=this.s.width;this.Ih(c,m,0,0);this.o?this.A=this.s:(m=Ge(c.size,c.size),this.A=m.canvas,this.Hh(c,m,0,0))}else l=Math.round(l),(d=!this.o)&&(m=this.Hh.bind(this,c)),e=this.a?qj(this.a):"-",f=this.o?kj(this.o):"-",this.f&&e==this.f[1]&&f==this.f[2]&&this.g==this.f[3]&&this.c==this.f[4]&&this.l==this.f[5]&&this.b==this.f[6]||(this.f=["r"+e+f+(void 0!==
this.g?this.g.toString():"-")+(void 0!==this.c?this.c.toString():"-")+(void 0!==this.l?this.l.toString():"-")+(void 0!==this.b?this.b.toString():"-"),e,f,this.g,this.c,this.l,this.b]),m=b.add(this.f[0],l,l,this.Ih.bind(this,c),m),this.s=m.image,this.ya=[m.offsetX,m.offsetY],b=m.image.width,this.A=d?m.Sg:this.s;this.C=[l/2,l/2];this.Aa=[l,l];this.S=[b,b];Eh.call(this,{opacity:1,rotateWithView:void 0!==a.rotateWithView?a.rotateWithView:!1,rotation:void 0!==a.rotation?a.rotation:0,scale:1,snapToPixel:void 0!==
a.snapToPixel?a.snapToPixel:!0})}x(mw,Eh);k=mw.prototype;k.Zb=function(){return this.C};k.Fn=function(){return this.l};k.Gn=function(){return this.o};k.pe=function(){return this.A};k.jc=function(){return this.s};k.ld=function(){return this.S};k.td=function(){return 2};k.Ia=function(){return this.ya};k.Hn=function(){return this.b};k.In=function(){return this.g};k.uk=function(){return this.c};k.Gb=function(){return this.Aa};k.Jn=function(){return this.a};k.pf=oa;k.load=oa;k.Xf=oa;
k.Ih=function(a,b,c,d){var e;b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();this.c!==this.g&&(this.b*=2);for(c=0;c<=this.b;c++)d=2*c*Math.PI/this.b-Math.PI/2+this.l,e=0===c%2?this.g:this.c,b.lineTo(a.size/2+e*Math.cos(d),a.size/2+e*Math.sin(d));this.o&&(b.fillStyle=ne(this.o.b),b.fill());this.a&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.Bd,a.lineDash&&b.setLineDash(a.lineDash),b.lineCap=a.lineCap,b.lineJoin=a.lineJoin,b.miterLimit=a.miterLimit,b.stroke());b.closePath()};
k.Hh=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();this.c!==this.g&&(this.b*=2);var e;for(c=0;c<=this.b;c++)e=2*c*Math.PI/this.b-Math.PI/2+this.l,d=0===c%2?this.g:this.c,b.lineTo(a.size/2+d*Math.cos(e),a.size/2+d*Math.sin(e));b.fillStyle=fj;b.fill();this.a&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.Bd,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};u("ol.animation.bounce",function(a){var b=a.resolution,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Sd;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[0]+=1,!0;if(g.time<c+d){var h=e((g.time-c)/d),l=b-g.viewState.resolution;g.animate=!0;g.viewState.resolution+=h*l;g.viewHints[0]+=1;return!0}return!1}});u("ol.animation.pan",Td);u("ol.animation.rotate",Ud);u("ol.animation.zoom",Vd);u("ol.Attribution",$d);$d.prototype.getHTML=$d.prototype.g;
ae.prototype.element=ae.prototype.element;u("ol.Collection",be);be.prototype.clear=be.prototype.clear;be.prototype.extend=be.prototype.qf;be.prototype.forEach=be.prototype.forEach;be.prototype.getArray=be.prototype.Gl;be.prototype.item=be.prototype.item;be.prototype.getLength=be.prototype.dc;be.prototype.insertAt=be.prototype.ee;be.prototype.pop=be.prototype.pop;be.prototype.push=be.prototype.push;be.prototype.remove=be.prototype.remove;be.prototype.removeAt=be.prototype.Rf;be.prototype.setAt=be.prototype.Zo;
u("ol.colorlike.asColorLike",ne);u("ol.coordinate.add",yb);u("ol.coordinate.createStringXY",function(a){return function(b){return Gb(b,a)}});u("ol.coordinate.format",Bb);u("ol.coordinate.rotate",Db);u("ol.coordinate.toStringHDMS",function(a,b){return a?Ab(a[1],"NS",b)+" "+Ab(a[0],"EW",b):""});u("ol.coordinate.toStringXY",Gb);u("ol.DeviceOrientation",qn);qn.prototype.getAlpha=qn.prototype.Oj;qn.prototype.getBeta=qn.prototype.Rj;qn.prototype.getGamma=qn.prototype.Yj;qn.prototype.getHeading=qn.prototype.Hl;
qn.prototype.getTracking=qn.prototype.$g;qn.prototype.setTracking=qn.prototype.rf;u("ol.easing.easeIn",Md);u("ol.easing.easeOut",Nd);u("ol.easing.inAndOut",Qd);u("ol.easing.linear",Rd);u("ol.easing.upAndDown",Sd);u("ol.extent.boundingExtent",Ib);u("ol.extent.buffer",Mb);u("ol.extent.containsCoordinate",Qb);u("ol.extent.containsExtent",Sb);u("ol.extent.containsXY",Rb);u("ol.extent.createEmpty",Jb);u("ol.extent.equals",$b);u("ol.extent.extend",ac);u("ol.extent.getBottomLeft",cc);
u("ol.extent.getBottomRight",dc);u("ol.extent.getCenter",lc);u("ol.extent.getHeight",kc);u("ol.extent.getIntersection",nc);u("ol.extent.getSize",function(a){return[a[2]-a[0],a[3]-a[1]]});u("ol.extent.getTopLeft",fc);u("ol.extent.getTopRight",ec);u("ol.extent.getWidth",jc);u("ol.extent.intersects",oc);u("ol.extent.isEmpty",ic);u("ol.extent.applyTransform",qc);u("ol.Feature",Ik);Ik.prototype.clone=Ik.prototype.clone;Ik.prototype.getGeometry=Ik.prototype.X;Ik.prototype.getId=Ik.prototype.Xa;
Ik.prototype.getGeometryName=Ik.prototype.$j;Ik.prototype.getStyle=Ik.prototype.Jl;Ik.prototype.getStyleFunction=Ik.prototype.ec;Ik.prototype.setGeometry=Ik.prototype.Ua;Ik.prototype.setStyle=Ik.prototype.sf;Ik.prototype.setId=Ik.prototype.mc;Ik.prototype.setGeometryName=Ik.prototype.Ec;u("ol.featureloader.tile",dl);u("ol.featureloader.xhr",el);u("ol.Geolocation",St);St.prototype.getAccuracy=St.prototype.Mj;St.prototype.getAccuracyGeometry=St.prototype.Nj;St.prototype.getAltitude=St.prototype.Pj;
St.prototype.getAltitudeAccuracy=St.prototype.Qj;St.prototype.getHeading=St.prototype.Ll;St.prototype.getPosition=St.prototype.Ml;St.prototype.getProjection=St.prototype.ah;St.prototype.getSpeed=St.prototype.wk;St.prototype.getTracking=St.prototype.bh;St.prototype.getTrackingOptions=St.prototype.Mg;St.prototype.setProjection=St.prototype.dh;St.prototype.setTracking=St.prototype.ge;St.prototype.setTrackingOptions=St.prototype.si;u("ol.Graticule",Yt);Yt.prototype.getMap=Yt.prototype.Pl;
Yt.prototype.getMeridians=Yt.prototype.ik;Yt.prototype.getParallels=Yt.prototype.qk;Yt.prototype.setMap=Yt.prototype.setMap;u("ol.has.DEVICE_PIXEL_RATIO",$f);u("ol.has.CANVAS",bg);u("ol.has.DEVICE_ORIENTATION",cg);u("ol.has.GEOLOCATION",dg);u("ol.has.TOUCH",eg);u("ol.has.WEBGL",Vf);cu.prototype.getImage=cu.prototype.a;cu.prototype.load=cu.prototype.load;du.prototype.getImage=du.prototype.$a;du.prototype.load=du.prototype.load;u("ol.Kinetic",Vh);u("ol.loadingstrategy.all",fl);
u("ol.loadingstrategy.bbox",function(a){return[a]});u("ol.loadingstrategy.tile",function(a){return function(b,c){var d=a.Lb(c),e=gf(a,b,d),f=[],d=[d,0,0];for(d[1]=e.ca;d[1]<=e.ea;++d[1])for(d[2]=e.fa;d[2]<=e.ga;++d[2])f.push(a.Ea(d));return f}});u("ol.Map",Q);Q.prototype.addControl=Q.prototype.uj;Q.prototype.addInteraction=Q.prototype.vj;Q.prototype.addLayer=Q.prototype.kg;Q.prototype.addOverlay=Q.prototype.lg;Q.prototype.beforeRender=Q.prototype.Wa;Q.prototype.forEachFeatureAtPixel=Q.prototype.kd;
Q.prototype.forEachLayerAtPixel=Q.prototype.Tl;Q.prototype.hasFeatureAtPixel=Q.prototype.kl;Q.prototype.getEventCoordinate=Q.prototype.Wj;Q.prototype.getEventPixel=Q.prototype.Td;Q.prototype.getTarget=Q.prototype.tf;Q.prototype.getTargetElement=Q.prototype.yc;Q.prototype.getCoordinateFromPixel=Q.prototype.Ma;Q.prototype.getControls=Q.prototype.Uj;Q.prototype.getOverlays=Q.prototype.nk;Q.prototype.getOverlayById=Q.prototype.mk;Q.prototype.getInteractions=Q.prototype.ak;Q.prototype.getLayerGroup=Q.prototype.xc;
Q.prototype.getLayers=Q.prototype.eh;Q.prototype.getPixelFromCoordinate=Q.prototype.Ga;Q.prototype.getSize=Q.prototype.Za;Q.prototype.getView=Q.prototype.aa;Q.prototype.getViewport=Q.prototype.Dk;Q.prototype.renderSync=Q.prototype.Vo;Q.prototype.render=Q.prototype.render;Q.prototype.removeControl=Q.prototype.Oo;Q.prototype.removeInteraction=Q.prototype.Po;Q.prototype.removeLayer=Q.prototype.Ro;Q.prototype.removeOverlay=Q.prototype.So;Q.prototype.setLayerGroup=Q.prototype.ji;Q.prototype.setSize=Q.prototype.Wf;
Q.prototype.setTarget=Q.prototype.fh;Q.prototype.setView=Q.prototype.kp;Q.prototype.updateSize=Q.prototype.Xc;Og.prototype.originalEvent=Og.prototype.originalEvent;Og.prototype.pixel=Og.prototype.pixel;Og.prototype.coordinate=Og.prototype.coordinate;Og.prototype.dragging=Og.prototype.dragging;Oe.prototype.map=Oe.prototype.map;Oe.prototype.frameState=Oe.prototype.frameState;ab.prototype.key=ab.prototype.key;ab.prototype.oldValue=ab.prototype.oldValue;u("ol.Object",bb);bb.prototype.get=bb.prototype.get;
bb.prototype.getKeys=bb.prototype.N;bb.prototype.getProperties=bb.prototype.O;bb.prototype.set=bb.prototype.set;bb.prototype.setProperties=bb.prototype.G;bb.prototype.unset=bb.prototype.R;u("ol.Observable",Za);u("ol.Observable.unByKey",$a);Za.prototype.changed=Za.prototype.u;Za.prototype.dispatchEvent=Za.prototype.b;Za.prototype.getRevision=Za.prototype.K;Za.prototype.on=Za.prototype.I;Za.prototype.once=Za.prototype.L;Za.prototype.un=Za.prototype.J;Za.prototype.unByKey=Za.prototype.M;
u("ol.inherits",x);u("ol.Overlay",Xm);Xm.prototype.getElement=Xm.prototype.Sd;Xm.prototype.getId=Xm.prototype.Xa;Xm.prototype.getMap=Xm.prototype.he;Xm.prototype.getOffset=Xm.prototype.Kg;Xm.prototype.getPosition=Xm.prototype.gh;Xm.prototype.getPositioning=Xm.prototype.Lg;Xm.prototype.setElement=Xm.prototype.fi;Xm.prototype.setMap=Xm.prototype.setMap;Xm.prototype.setOffset=Xm.prototype.li;Xm.prototype.setPosition=Xm.prototype.uf;Xm.prototype.setPositioning=Xm.prototype.oi;
u("ol.render.toContext",function(a,b){var c=a.canvas,d=b?b:{},e=d.pixelRatio||$f;if(d=d.size)c.width=d[0]*e,c.height=d[1]*e,c.style.width=d[0]+"px",c.style.height=d[1]+"px";c=[0,0,c.width,c.height];d=jh(ch(),e,e);return new zj(a,e,c,d,0)});u("ol.size.toSize",$e);We.prototype.getTileCoord=We.prototype.i;We.prototype.load=We.prototype.load;Kk.prototype.getFormat=Kk.prototype.Ul;Kk.prototype.setFeatures=Kk.prototype.gi;Kk.prototype.setProjection=Kk.prototype.vf;Kk.prototype.setLoader=Kk.prototype.ki;
u("ol.View",Fd);Fd.prototype.constrainCenter=Fd.prototype.Pd;Fd.prototype.constrainResolution=Fd.prototype.constrainResolution;Fd.prototype.constrainRotation=Fd.prototype.constrainRotation;Fd.prototype.getCenter=Fd.prototype.ab;Fd.prototype.calculateExtent=Fd.prototype.Kc;Fd.prototype.getMaxResolution=Fd.prototype.Vl;Fd.prototype.getMinResolution=Fd.prototype.Wl;Fd.prototype.getProjection=Fd.prototype.Xl;Fd.prototype.getResolution=Fd.prototype.$;Fd.prototype.getResolutions=Fd.prototype.Yl;
Fd.prototype.getRotation=Fd.prototype.La;Fd.prototype.getZoom=Fd.prototype.Fk;Fd.prototype.fit=Fd.prototype.cf;Fd.prototype.centerOn=Fd.prototype.Ej;Fd.prototype.rotate=Fd.prototype.rotate;Fd.prototype.setCenter=Fd.prototype.nb;Fd.prototype.setResolution=Fd.prototype.Vb;Fd.prototype.setRotation=Fd.prototype.ie;Fd.prototype.setZoom=Fd.prototype.np;u("ol.xml.getAllTextContent",Nk);u("ol.xml.parse",Rk);gm.prototype.getGL=gm.prototype.$n;gm.prototype.useProgram=gm.prototype.we;
u("ol.tilegrid.TileGrid",df);df.prototype.forEachTileCoord=df.prototype.yg;df.prototype.getMaxZoom=df.prototype.Ig;df.prototype.getMinZoom=df.prototype.Jg;df.prototype.getOrigin=df.prototype.Ia;df.prototype.getResolution=df.prototype.$;df.prototype.getResolutions=df.prototype.Kh;df.prototype.getTileCoordExtent=df.prototype.Ea;df.prototype.getTileCoordForCoordAndResolution=df.prototype.Zd;df.prototype.getTileCoordForCoordAndZ=df.prototype.qd;df.prototype.getTileSize=df.prototype.Ja;
df.prototype.getZForResolution=df.prototype.Lb;u("ol.tilegrid.createXYZ",qf);u("ol.tilegrid.WMTS",dw);dw.prototype.getMatrixIds=dw.prototype.j;u("ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet",ew);u("ol.style.AtlasManager",iw);u("ol.style.Circle",rj);rj.prototype.getFill=rj.prototype.Bn;rj.prototype.getImage=rj.prototype.jc;rj.prototype.getRadius=rj.prototype.Cn;rj.prototype.getStroke=rj.prototype.Dn;u("ol.style.Fill",jj);jj.prototype.getColor=jj.prototype.g;jj.prototype.setColor=jj.prototype.f;
u("ol.style.Icon",Fh);Fh.prototype.getAnchor=Fh.prototype.Zb;Fh.prototype.getImage=Fh.prototype.jc;Fh.prototype.getOrigin=Fh.prototype.Ia;Fh.prototype.getSrc=Fh.prototype.En;Fh.prototype.getSize=Fh.prototype.Gb;Fh.prototype.load=Fh.prototype.load;u("ol.style.Image",Eh);Eh.prototype.getOpacity=Eh.prototype.qe;Eh.prototype.getRotateWithView=Eh.prototype.Xd;Eh.prototype.getRotation=Eh.prototype.re;Eh.prototype.getScale=Eh.prototype.se;Eh.prototype.getSnapToPixel=Eh.prototype.Yd;
Eh.prototype.setOpacity=Eh.prototype.te;Eh.prototype.setRotation=Eh.prototype.ue;Eh.prototype.setScale=Eh.prototype.ve;u("ol.style.RegularShape",mw);mw.prototype.getAnchor=mw.prototype.Zb;mw.prototype.getAngle=mw.prototype.Fn;mw.prototype.getFill=mw.prototype.Gn;mw.prototype.getImage=mw.prototype.jc;mw.prototype.getOrigin=mw.prototype.Ia;mw.prototype.getPoints=mw.prototype.Hn;mw.prototype.getRadius=mw.prototype.In;mw.prototype.getRadius2=mw.prototype.uk;mw.prototype.getSize=mw.prototype.Gb;
mw.prototype.getStroke=mw.prototype.Jn;u("ol.style.Stroke",pj);pj.prototype.getColor=pj.prototype.Kn;pj.prototype.getLineCap=pj.prototype.dk;pj.prototype.getLineDash=pj.prototype.Ln;pj.prototype.getLineJoin=pj.prototype.ek;pj.prototype.getMiterLimit=pj.prototype.jk;pj.prototype.getWidth=pj.prototype.Mn;pj.prototype.setColor=pj.prototype.Nn;pj.prototype.setLineCap=pj.prototype.fp;pj.prototype.setLineDash=pj.prototype.On;pj.prototype.setLineJoin=pj.prototype.gp;pj.prototype.setMiterLimit=pj.prototype.hp;
pj.prototype.setWidth=pj.prototype.lp;u("ol.style.Style",sj);sj.prototype.getGeometry=sj.prototype.X;sj.prototype.getGeometryFunction=sj.prototype.Zj;sj.prototype.getFill=sj.prototype.Pn;sj.prototype.getImage=sj.prototype.Qn;sj.prototype.getStroke=sj.prototype.Rn;sj.prototype.getText=sj.prototype.Ha;sj.prototype.getZIndex=sj.prototype.Sn;sj.prototype.setGeometry=sj.prototype.Jh;sj.prototype.setZIndex=sj.prototype.Tn;u("ol.style.Text",Fp);Fp.prototype.getFont=Fp.prototype.Xj;
Fp.prototype.getOffsetX=Fp.prototype.kk;Fp.prototype.getOffsetY=Fp.prototype.lk;Fp.prototype.getFill=Fp.prototype.Un;Fp.prototype.getRotation=Fp.prototype.Vn;Fp.prototype.getScale=Fp.prototype.Wn;Fp.prototype.getStroke=Fp.prototype.Xn;Fp.prototype.getText=Fp.prototype.Ha;Fp.prototype.getTextAlign=Fp.prototype.yk;Fp.prototype.getTextBaseline=Fp.prototype.zk;Fp.prototype.setFont=Fp.prototype.bp;Fp.prototype.setOffsetX=Fp.prototype.mi;Fp.prototype.setOffsetY=Fp.prototype.ni;Fp.prototype.setFill=Fp.prototype.ap;
Fp.prototype.setRotation=Fp.prototype.Yn;Fp.prototype.setScale=Fp.prototype.Zn;Fp.prototype.setStroke=Fp.prototype.ip;Fp.prototype.setText=Fp.prototype.pi;Fp.prototype.setTextAlign=Fp.prototype.ri;Fp.prototype.setTextBaseline=Fp.prototype.jp;u("ol.Sphere",tc);tc.prototype.geodesicArea=tc.prototype.a;tc.prototype.haversineDistance=tc.prototype.b;u("ol.source.BingMaps",nv);u("ol.source.BingMaps.TOS_ATTRIBUTION",ov);u("ol.source.CartoDB",qv);qv.prototype.getConfig=qv.prototype.Tj;
qv.prototype.updateConfig=qv.prototype.up;qv.prototype.setConfig=qv.prototype.$o;u("ol.source.Cluster",Y);Y.prototype.getSource=Y.prototype.Sa;u("ol.source.ImageArcGISRest",wv);wv.prototype.getParams=wv.prototype.Sm;wv.prototype.getImageLoadFunction=wv.prototype.Rm;wv.prototype.getUrl=wv.prototype.Tm;wv.prototype.setImageLoadFunction=wv.prototype.Um;wv.prototype.setUrl=wv.prototype.Vm;wv.prototype.updateParams=wv.prototype.Wm;u("ol.source.ImageCanvas",Hk);u("ol.source.ImageMapGuide",xv);
xv.prototype.getParams=xv.prototype.Ym;xv.prototype.getImageLoadFunction=xv.prototype.Xm;xv.prototype.updateParams=xv.prototype.$m;xv.prototype.setImageLoadFunction=xv.prototype.Zm;u("ol.source.Image",Ak);Ck.prototype.image=Ck.prototype.image;u("ol.source.ImageStatic",yv);u("ol.source.ImageVector",yl);yl.prototype.getSource=yl.prototype.an;yl.prototype.getStyle=yl.prototype.bn;yl.prototype.getStyleFunction=yl.prototype.cn;yl.prototype.setStyle=yl.prototype.xh;u("ol.source.ImageWMS",zv);
zv.prototype.getGetFeatureInfoUrl=zv.prototype.fn;zv.prototype.getParams=zv.prototype.hn;zv.prototype.getImageLoadFunction=zv.prototype.gn;zv.prototype.getUrl=zv.prototype.jn;zv.prototype.setImageLoadFunction=zv.prototype.kn;zv.prototype.setUrl=zv.prototype.ln;zv.prototype.updateParams=zv.prototype.mn;u("ol.source.OSM",Dv);u("ol.source.OSM.ATTRIBUTION",Ev);u("ol.source.Raster",Fv);Fv.prototype.setOperation=Fv.prototype.v;Kv.prototype.extent=Kv.prototype.extent;Kv.prototype.resolution=Kv.prototype.resolution;
Kv.prototype.data=Kv.prototype.data;u("ol.source.Source",af);af.prototype.getAttributions=af.prototype.wa;af.prototype.getLogo=af.prototype.ua;af.prototype.getProjection=af.prototype.xa;af.prototype.getState=af.prototype.V;af.prototype.refresh=af.prototype.ta;af.prototype.setAttributions=af.prototype.qa;u("ol.source.Stamen",Pv);u("ol.source.TileArcGISRest",Rv);Rv.prototype.getParams=Rv.prototype.v;Rv.prototype.updateParams=Rv.prototype.A;u("ol.source.TileDebug",Tv);u("ol.source.TileImage",X);
X.prototype.setRenderReprojectionEdges=X.prototype.Ab;X.prototype.setTileGridForProjection=X.prototype.Bb;u("ol.source.TileJSON",Uv);Uv.prototype.getTileJSON=Uv.prototype.Ak;u("ol.source.Tile",rf);rf.prototype.getTileGrid=rf.prototype.Na;wf.prototype.tile=wf.prototype.tile;u("ol.source.TileUTFGrid",Vv);Vv.prototype.getTemplate=Vv.prototype.xk;Vv.prototype.forDataAtCoordinateAndResolution=Vv.prototype.Ij;u("ol.source.TileWMS",Zv);Zv.prototype.getGetFeatureInfoUrl=Zv.prototype.vn;
Zv.prototype.getParams=Zv.prototype.wn;Zv.prototype.updateParams=Zv.prototype.xn;Jl.prototype.getTileLoadFunction=Jl.prototype.gb;Jl.prototype.getTileUrlFunction=Jl.prototype.hb;Jl.prototype.getUrls=Jl.prototype.ib;Jl.prototype.setTileLoadFunction=Jl.prototype.lb;Jl.prototype.setTileUrlFunction=Jl.prototype.Qa;Jl.prototype.setUrl=Jl.prototype.Va;Jl.prototype.setUrls=Jl.prototype.bb;u("ol.source.Vector",P);P.prototype.addFeature=P.prototype.sb;P.prototype.addFeatures=P.prototype.Jc;
P.prototype.clear=P.prototype.clear;P.prototype.forEachFeature=P.prototype.wg;P.prototype.forEachFeatureInExtent=P.prototype.vb;P.prototype.forEachFeatureIntersectingExtent=P.prototype.xg;P.prototype.getFeaturesCollection=P.prototype.Fg;P.prototype.getFeatures=P.prototype.oe;P.prototype.getFeaturesAtCoordinate=P.prototype.Eg;P.prototype.getFeaturesInExtent=P.prototype.ef;P.prototype.getClosestFeatureToCoordinate=P.prototype.Ag;P.prototype.getExtent=P.prototype.H;P.prototype.getFeatureById=P.prototype.Dg;
P.prototype.getFormat=P.prototype.Ch;P.prototype.getUrl=P.prototype.Dh;P.prototype.removeFeature=P.prototype.ob;vl.prototype.feature=vl.prototype.feature;u("ol.source.VectorTile",Kl);u("ol.source.WMTS",Z);Z.prototype.getDimensions=Z.prototype.Vj;Z.prototype.getFormat=Z.prototype.yn;Z.prototype.getLayer=Z.prototype.zn;Z.prototype.getMatrixSet=Z.prototype.hk;Z.prototype.getRequestEncoding=Z.prototype.vk;Z.prototype.getStyle=Z.prototype.An;Z.prototype.getVersion=Z.prototype.Ck;
Z.prototype.updateDimensions=Z.prototype.vp;
u("ol.source.WMTS.optionsFromCapabilities",function(a,b){var c=lb(a.Contents.Layer,function(a){return a.Identifier==b.layer}),d=a.Contents.TileMatrixSet,e,f;e=1<c.TileMatrixSetLink.length?"projection"in b?pb(c.TileMatrixSetLink,function(a){return lb(d,function(b){return b.Identifier==a.TileMatrixSet}).SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3")==b.projection}):pb(c.TileMatrixSetLink,function(a){return a.TileMatrixSet==b.matrixSet}):0;0>e&&(e=0);f=c.TileMatrixSetLink[e].TileMatrixSet;
var g=c.Format[0];"format"in b&&(g=b.format);e=pb(c.Style,function(a){return"style"in b?a.Title==b.style:a.isDefault});0>e&&(e=0);e=c.Style[e].Identifier;var h={};"Dimension"in c&&c.Dimension.forEach(function(a){var b=a.Identifier,c=a.Default;void 0===c&&(c=a.Value[0]);h[b]=c});var l=lb(a.Contents.TileMatrixSet,function(a){return a.Identifier==f}),m;m="projection"in b?zc(b.projection):zc(l.SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"));var n=c.WGS84BoundingBox,p,q;void 0!==n&&
(q=zc("EPSG:4326").H(),q=n[0]==q[0]&&n[2]==q[2],p=Tc(n,"EPSG:4326",m),(n=m.H())&&(Sb(n,p)||(p=void 0)));var l=ew(l,p),r=[];p=b.requestEncoding;p=void 0!==p?p:"";if("OperationsMetadata"in a&&"GetTile"in a.OperationsMetadata)for(var n=a.OperationsMetadata.GetTile.DCP.HTTP.Get,v=0,y=n.length;v<y;++v){var w=lb(n[v].Constraint,function(a){return"GetEncoding"==a.name}).AllowedValues.Value;""===p&&(p=w[0]);if("KVP"===p)gb(w,"KVP")&&r.push(n[v].href);else break}0===r.length&&(p="REST",c.ResourceURL.forEach(function(a){"tile"===
a.resourceType&&(g=a.format,r.push(a.template))}));return{urls:r,layer:b.layer,matrixSet:f,format:g,projection:m,requestEncoding:p,tileGrid:l,style:e,dimensions:h,wrapX:q}});u("ol.source.XYZ",pv);u("ol.source.Zoomify",gw);qh.prototype.vectorContext=qh.prototype.vectorContext;qh.prototype.frameState=qh.prototype.frameState;qh.prototype.context=qh.prototype.context;qh.prototype.glContext=qh.prototype.glContext;ik.prototype.get=ik.prototype.get;ik.prototype.getExtent=ik.prototype.H;
ik.prototype.getGeometry=ik.prototype.X;ik.prototype.getProperties=ik.prototype.Nm;ik.prototype.getType=ik.prototype.Y;u("ol.render.VectorContext",ph);Cm.prototype.setStyle=Cm.prototype.sd;Cm.prototype.drawGeometry=Cm.prototype.sc;Cm.prototype.drawFeature=Cm.prototype.Ye;zj.prototype.drawCircle=zj.prototype.Rd;zj.prototype.setStyle=zj.prototype.sd;zj.prototype.drawGeometry=zj.prototype.sc;zj.prototype.drawFeature=zj.prototype.Ye;u("ol.proj.common.add",dj);u("ol.proj.METERS_PER_UNIT",vc);
u("ol.proj.Projection",wc);wc.prototype.getCode=wc.prototype.Sj;wc.prototype.getExtent=wc.prototype.H;wc.prototype.getUnits=wc.prototype.xb;wc.prototype.getMetersPerUnit=wc.prototype.ac;wc.prototype.getWorldExtent=wc.prototype.Ek;wc.prototype.isGlobal=wc.prototype.pl;wc.prototype.setGlobal=wc.prototype.ep;wc.prototype.setExtent=wc.prototype.Mm;wc.prototype.setWorldExtent=wc.prototype.mp;wc.prototype.setGetPointResolution=wc.prototype.cp;wc.prototype.getPointResolution=wc.prototype.getPointResolution;
u("ol.proj.setProj4",function(a){yc=a});u("ol.proj.addEquivalentProjections",Ac);u("ol.proj.addProjection",Mc);u("ol.proj.addCoordinateTransforms",Bc);u("ol.proj.fromLonLat",function(a,b){return Sc(a,"EPSG:4326",void 0!==b?b:"EPSG:3857")});u("ol.proj.toLonLat",function(a,b){return Sc(a,void 0!==b?b:"EPSG:3857","EPSG:4326")});u("ol.proj.get",zc);u("ol.proj.equivalent",Pc);u("ol.proj.getTransform",Qc);u("ol.proj.transform",Sc);u("ol.proj.transformExtent",Tc);u("ol.layer.Heatmap",W);
W.prototype.getBlur=W.prototype.zg;W.prototype.getGradient=W.prototype.Gg;W.prototype.getRadius=W.prototype.ph;W.prototype.setBlur=W.prototype.di;W.prototype.setGradient=W.prototype.ii;W.prototype.setRadius=W.prototype.qh;u("ol.layer.Image",ej);ej.prototype.getSource=ej.prototype.ha;u("ol.layer.Layer",rh);rh.prototype.getSource=rh.prototype.ha;rh.prototype.setMap=rh.prototype.setMap;rh.prototype.setSource=rh.prototype.Fc;u("ol.layer.Base",nh);nh.prototype.getExtent=nh.prototype.H;
nh.prototype.getMaxResolution=nh.prototype.Ob;nh.prototype.getMinResolution=nh.prototype.Pb;nh.prototype.getOpacity=nh.prototype.Qb;nh.prototype.getVisible=nh.prototype.yb;nh.prototype.getZIndex=nh.prototype.Rb;nh.prototype.setExtent=nh.prototype.fc;nh.prototype.setMaxResolution=nh.prototype.nc;nh.prototype.setMinResolution=nh.prototype.oc;nh.prototype.setOpacity=nh.prototype.gc;nh.prototype.setVisible=nh.prototype.hc;nh.prototype.setZIndex=nh.prototype.ic;u("ol.layer.Group",Vi);
Vi.prototype.getLayers=Vi.prototype.Tc;Vi.prototype.setLayers=Vi.prototype.oh;u("ol.layer.Tile",F);F.prototype.getPreload=F.prototype.f;F.prototype.getSource=F.prototype.ha;F.prototype.setPreload=F.prototype.l;F.prototype.getUseInterimTilesOnError=F.prototype.c;F.prototype.setUseInterimTilesOnError=F.prototype.A;u("ol.layer.Vector",I);I.prototype.getSource=I.prototype.ha;I.prototype.getStyle=I.prototype.D;I.prototype.getStyleFunction=I.prototype.C;I.prototype.setStyle=I.prototype.l;
u("ol.layer.VectorTile",J);J.prototype.getPreload=J.prototype.f;J.prototype.getUseInterimTilesOnError=J.prototype.c;J.prototype.setPreload=J.prototype.W;J.prototype.setUseInterimTilesOnError=J.prototype.ia;u("ol.interaction.DoubleClickZoom",ai);u("ol.interaction.DoubleClickZoom.handleEvent",bi);u("ol.interaction.DragAndDrop",fu);u("ol.interaction.DragAndDrop.handleEvent",rc);iu.prototype.features=iu.prototype.features;iu.prototype.file=iu.prototype.file;iu.prototype.projection=iu.prototype.projection;
zi.prototype.coordinate=zi.prototype.coordinate;zi.prototype.mapBrowserEvent=zi.prototype.mapBrowserEvent;u("ol.interaction.DragBox",Ai);Ai.prototype.getGeometry=Ai.prototype.X;u("ol.interaction.DragPan",oi);u("ol.interaction.DragRotateAndZoom",ku);u("ol.interaction.DragRotate",si);u("ol.interaction.DragZoom",Fi);ou.prototype.feature=ou.prototype.feature;u("ol.interaction.Draw",pu);u("ol.interaction.Draw.handleEvent",ru);pu.prototype.removeLastPoint=pu.prototype.Qo;pu.prototype.finishDrawing=pu.prototype.jd;
pu.prototype.extend=pu.prototype.rm;u("ol.interaction.Draw.createRegularPolygon",function(a,b){return function(c,d){var e=c[0],f=c[1],g=Math.sqrt(Eb(e,f)),h=d?d:Dd(new Tt(e),a);Ed(h,e,g,b?b:Math.atan((f[1]-e[1])/(f[0]-e[0])));return h}});u("ol.interaction.Interaction",Xh);Xh.prototype.getActive=Xh.prototype.f;Xh.prototype.getMap=Xh.prototype.l;Xh.prototype.setActive=Xh.prototype.i;u("ol.interaction.defaults",Ui);u("ol.interaction.KeyboardPan",Gi);u("ol.interaction.KeyboardPan.handleEvent",Hi);
u("ol.interaction.KeyboardZoom",Ii);u("ol.interaction.KeyboardZoom.handleEvent",Ji);Fu.prototype.features=Fu.prototype.features;Fu.prototype.mapBrowserEvent=Fu.prototype.mapBrowserEvent;u("ol.interaction.Modify",Gu);u("ol.interaction.Modify.handleEvent",Ju);Gu.prototype.removePoint=Gu.prototype.ai;u("ol.interaction.MouseWheelZoom",Ki);u("ol.interaction.MouseWheelZoom.handleEvent",Li);Ki.prototype.setMouseAnchor=Ki.prototype.C;u("ol.interaction.PinchRotate",Mi);u("ol.interaction.PinchZoom",Qi);
u("ol.interaction.Pointer",li);u("ol.interaction.Pointer.handleEvent",mi);Tu.prototype.selected=Tu.prototype.selected;Tu.prototype.deselected=Tu.prototype.deselected;Tu.prototype.mapBrowserEvent=Tu.prototype.mapBrowserEvent;u("ol.interaction.Select",Uu);Uu.prototype.getFeatures=Uu.prototype.Bm;Uu.prototype.getLayer=Uu.prototype.Cm;u("ol.interaction.Select.handleEvent",Vu);Uu.prototype.setMap=Uu.prototype.setMap;u("ol.interaction.Snap",Xu);Xu.prototype.addFeature=Xu.prototype.sb;
Xu.prototype.removeFeature=Xu.prototype.ob;av.prototype.features=av.prototype.features;av.prototype.coordinate=av.prototype.coordinate;u("ol.interaction.Translate",bv);u("ol.geom.Circle",Tt);Tt.prototype.clone=Tt.prototype.clone;Tt.prototype.getCenter=Tt.prototype.rd;Tt.prototype.getRadius=Tt.prototype.wf;Tt.prototype.getType=Tt.prototype.Y;Tt.prototype.intersectsExtent=Tt.prototype.Ka;Tt.prototype.setCenter=Tt.prototype.jm;Tt.prototype.setCenterAndRadius=Tt.prototype.Vf;Tt.prototype.setRadius=Tt.prototype.km;
Tt.prototype.transform=Tt.prototype.kb;u("ol.geom.Geometry",Uc);Uc.prototype.getClosestPoint=Uc.prototype.wb;Uc.prototype.getExtent=Uc.prototype.H;Uc.prototype.rotate=Uc.prototype.rotate;Uc.prototype.simplify=Uc.prototype.Cb;Uc.prototype.transform=Uc.prototype.kb;u("ol.geom.GeometryCollection",Kn);Kn.prototype.clone=Kn.prototype.clone;Kn.prototype.getGeometries=Kn.prototype.ff;Kn.prototype.getType=Kn.prototype.Y;Kn.prototype.intersectsExtent=Kn.prototype.Ka;Kn.prototype.setGeometries=Kn.prototype.hi;
Kn.prototype.applyTransform=Kn.prototype.rc;Kn.prototype.translate=Kn.prototype.Sc;u("ol.geom.LinearRing",nd);nd.prototype.clone=nd.prototype.clone;nd.prototype.getArea=nd.prototype.nm;nd.prototype.getCoordinates=nd.prototype.Z;nd.prototype.getType=nd.prototype.Y;nd.prototype.setCoordinates=nd.prototype.ra;u("ol.geom.LineString",R);R.prototype.appendCoordinate=R.prototype.wj;R.prototype.clone=R.prototype.clone;R.prototype.forEachSegment=R.prototype.Lj;R.prototype.getCoordinateAtM=R.prototype.lm;
R.prototype.getCoordinates=R.prototype.Z;R.prototype.getCoordinateAt=R.prototype.Bg;R.prototype.getLength=R.prototype.mm;R.prototype.getType=R.prototype.Y;R.prototype.intersectsExtent=R.prototype.Ka;R.prototype.setCoordinates=R.prototype.ra;u("ol.geom.MultiLineString",S);S.prototype.appendLineString=S.prototype.xj;S.prototype.clone=S.prototype.clone;S.prototype.getCoordinateAtM=S.prototype.om;S.prototype.getCoordinates=S.prototype.Z;S.prototype.getLineString=S.prototype.fk;
S.prototype.getLineStrings=S.prototype.md;S.prototype.getType=S.prototype.Y;S.prototype.intersectsExtent=S.prototype.Ka;S.prototype.setCoordinates=S.prototype.ra;u("ol.geom.MultiPoint",T);T.prototype.appendPoint=T.prototype.zj;T.prototype.clone=T.prototype.clone;T.prototype.getCoordinates=T.prototype.Z;T.prototype.getPoint=T.prototype.rk;T.prototype.getPoints=T.prototype.je;T.prototype.getType=T.prototype.Y;T.prototype.intersectsExtent=T.prototype.Ka;T.prototype.setCoordinates=T.prototype.ra;
u("ol.geom.MultiPolygon",U);U.prototype.appendPolygon=U.prototype.Aj;U.prototype.clone=U.prototype.clone;U.prototype.getArea=U.prototype.pm;U.prototype.getCoordinates=U.prototype.Z;U.prototype.getInteriorPoints=U.prototype.ck;U.prototype.getPolygon=U.prototype.tk;U.prototype.getPolygons=U.prototype.Wd;U.prototype.getType=U.prototype.Y;U.prototype.intersectsExtent=U.prototype.Ka;U.prototype.setCoordinates=U.prototype.ra;u("ol.geom.Point",C);C.prototype.clone=C.prototype.clone;
C.prototype.getCoordinates=C.prototype.Z;C.prototype.getType=C.prototype.Y;C.prototype.intersectsExtent=C.prototype.Ka;C.prototype.setCoordinates=C.prototype.ra;u("ol.geom.Polygon",E);E.prototype.appendLinearRing=E.prototype.yj;E.prototype.clone=E.prototype.clone;E.prototype.getArea=E.prototype.qm;E.prototype.getCoordinates=E.prototype.Z;E.prototype.getInteriorPoint=E.prototype.bk;E.prototype.getLinearRingCount=E.prototype.gk;E.prototype.getLinearRing=E.prototype.Hg;E.prototype.getLinearRings=E.prototype.Vd;
E.prototype.getType=E.prototype.Y;E.prototype.intersectsExtent=E.prototype.Ka;E.prototype.setCoordinates=E.prototype.ra;u("ol.geom.Polygon.circular",Bd);u("ol.geom.Polygon.fromExtent",Cd);u("ol.geom.Polygon.fromCircle",Dd);u("ol.geom.SimpleGeometry",Wc);Wc.prototype.getFirstCoordinate=Wc.prototype.Ib;Wc.prototype.getLastCoordinate=Wc.prototype.Jb;Wc.prototype.getLayout=Wc.prototype.Kb;Wc.prototype.applyTransform=Wc.prototype.rc;Wc.prototype.translate=Wc.prototype.Sc;u("ol.format.EsriJSON",Dn);
Dn.prototype.readFeature=Dn.prototype.Sb;Dn.prototype.readFeatures=Dn.prototype.Fa;Dn.prototype.readGeometry=Dn.prototype.Vc;Dn.prototype.readProjection=Dn.prototype.Oa;Dn.prototype.writeGeometry=Dn.prototype.Zc;Dn.prototype.writeGeometryObject=Dn.prototype.Ke;Dn.prototype.writeFeature=Dn.prototype.Dd;Dn.prototype.writeFeatureObject=Dn.prototype.Yc;Dn.prototype.writeFeatures=Dn.prototype.Yb;Dn.prototype.writeFeaturesObject=Dn.prototype.Ie;u("ol.format.Feature",rn);u("ol.format.GeoJSON",On);
On.prototype.readFeature=On.prototype.Sb;On.prototype.readFeatures=On.prototype.Fa;On.prototype.readGeometry=On.prototype.Vc;On.prototype.readProjection=On.prototype.Oa;On.prototype.writeFeature=On.prototype.Dd;On.prototype.writeFeatureObject=On.prototype.Yc;On.prototype.writeFeatures=On.prototype.Yb;On.prototype.writeFeaturesObject=On.prototype.Ie;On.prototype.writeGeometry=On.prototype.Zc;On.prototype.writeGeometryObject=On.prototype.Ke;u("ol.format.GPX",to);to.prototype.readFeature=to.prototype.Sb;
to.prototype.readFeatures=to.prototype.Fa;to.prototype.readProjection=to.prototype.Oa;to.prototype.writeFeatures=to.prototype.Yb;to.prototype.writeFeaturesNode=to.prototype.a;u("ol.format.IGC",cp);cp.prototype.readFeature=cp.prototype.Sb;cp.prototype.readFeatures=cp.prototype.Fa;cp.prototype.readProjection=cp.prototype.Oa;u("ol.format.KML",Gp);Gp.prototype.readFeature=Gp.prototype.Sb;Gp.prototype.readFeatures=Gp.prototype.Fa;Gp.prototype.readName=Gp.prototype.Fo;Gp.prototype.readNetworkLinks=Gp.prototype.Go;
Gp.prototype.readProjection=Gp.prototype.Oa;Gp.prototype.writeFeatures=Gp.prototype.Yb;Gp.prototype.writeFeaturesNode=Gp.prototype.a;u("ol.format.MVT",vr);vr.prototype.readFeatures=vr.prototype.Fa;vr.prototype.readProjection=vr.prototype.Oa;vr.prototype.setLayers=vr.prototype.c;u("ol.format.OSMXML",Rr);Rr.prototype.readFeatures=Rr.prototype.Fa;Rr.prototype.readProjection=Rr.prototype.Oa;u("ol.format.Polyline",ps);u("ol.format.Polyline.encodeDeltas",qs);u("ol.format.Polyline.decodeDeltas",ss);
u("ol.format.Polyline.encodeFloats",rs);u("ol.format.Polyline.decodeFloats",ts);ps.prototype.readFeature=ps.prototype.Sb;ps.prototype.readFeatures=ps.prototype.Fa;ps.prototype.readGeometry=ps.prototype.Vc;ps.prototype.readProjection=ps.prototype.Oa;ps.prototype.writeGeometry=ps.prototype.Zc;u("ol.format.TopoJSON",us);us.prototype.readFeatures=us.prototype.Fa;us.prototype.readProjection=us.prototype.Oa;u("ol.format.WFS",As);As.prototype.readFeatures=As.prototype.Fa;
As.prototype.readTransactionResponse=As.prototype.o;As.prototype.readFeatureCollectionMetadata=As.prototype.l;As.prototype.writeGetFeature=As.prototype.j;As.prototype.writeTransaction=As.prototype.U;As.prototype.readProjection=As.prototype.Oa;u("ol.format.WKT",Rs);Rs.prototype.readFeature=Rs.prototype.Sb;Rs.prototype.readFeatures=Rs.prototype.Fa;Rs.prototype.readGeometry=Rs.prototype.Vc;Rs.prototype.writeFeature=Rs.prototype.Dd;Rs.prototype.writeFeatures=Rs.prototype.Yb;
Rs.prototype.writeGeometry=Rs.prototype.Zc;u("ol.format.WMSCapabilities",ht);ht.prototype.read=ht.prototype.read;u("ol.format.WMSGetFeatureInfo",Et);Et.prototype.readFeatures=Et.prototype.Fa;u("ol.format.WMTSCapabilities",Ft);Ft.prototype.read=Ft.prototype.read;u("ol.format.ogc.filter.and",xr);u("ol.format.ogc.filter.or",function(a,b){return new Er(a,b)});u("ol.format.ogc.filter.not",function(a){return new Fr(a)});u("ol.format.ogc.filter.bbox",zr);
u("ol.format.ogc.filter.equalTo",function(a,b,c){return new Ir(a,b,c)});u("ol.format.ogc.filter.notEqualTo",function(a,b,c){return new Jr(a,b,c)});u("ol.format.ogc.filter.lessThan",function(a,b){return new Kr(a,b)});u("ol.format.ogc.filter.lessThanOrEqualTo",function(a,b){return new Lr(a,b)});u("ol.format.ogc.filter.greaterThan",function(a,b){return new Mr(a,b)});u("ol.format.ogc.filter.greaterThanOrEqualTo",function(a,b){return new Nr(a,b)});u("ol.format.ogc.filter.isNull",function(a){return new Or(a)});
u("ol.format.ogc.filter.between",function(a,b,c){return new Pr(a,b,c)});u("ol.format.ogc.filter.like",function(a,b,c,d,e,f){return new Qr(a,b,c,d,e,f)});u("ol.format.ogc.filter.Filter",Br);u("ol.format.ogc.filter.And",yr);u("ol.format.ogc.filter.Or",Er);u("ol.format.ogc.filter.Not",Fr);u("ol.format.ogc.filter.Bbox",Ar);u("ol.format.ogc.filter.Comparison",Gr);u("ol.format.ogc.filter.ComparisonBinary",Hr);u("ol.format.ogc.filter.EqualTo",Ir);u("ol.format.ogc.filter.NotEqualTo",Jr);
u("ol.format.ogc.filter.LessThan",Kr);u("ol.format.ogc.filter.LessThanOrEqualTo",Lr);u("ol.format.ogc.filter.GreaterThan",Mr);u("ol.format.ogc.filter.GreaterThanOrEqualTo",Nr);u("ol.format.ogc.filter.IsNull",Or);u("ol.format.ogc.filter.IsBetween",Pr);u("ol.format.ogc.filter.IsLike",Qr);u("ol.format.GML2",jo);u("ol.format.GML3",ko);ko.prototype.writeGeometryNode=ko.prototype.s;ko.prototype.writeFeatures=ko.prototype.Yb;ko.prototype.writeFeaturesNode=ko.prototype.a;u("ol.format.GML",ko);
ko.prototype.writeFeatures=ko.prototype.Yb;ko.prototype.writeFeaturesNode=ko.prototype.a;Wn.prototype.readFeatures=Wn.prototype.Fa;u("ol.events.condition.altKeyOnly",function(a){a=a.originalEvent;return a.altKey&&!(a.metaKey||a.ctrlKey)&&!a.shiftKey});u("ol.events.condition.altShiftKeysOnly",ci);u("ol.events.condition.always",rc);u("ol.events.condition.click",function(a){return a.type==Sg});u("ol.events.condition.never",sc);u("ol.events.condition.pointerMove",ei);
u("ol.events.condition.singleClick",fi);u("ol.events.condition.doubleClick",function(a){return a.type==Tg});u("ol.events.condition.noModifierKeys",gi);u("ol.events.condition.platformModifierKeyOnly",function(a){a=a.originalEvent;return!a.altKey&&(Zf?a.metaKey:a.ctrlKey)&&!a.shiftKey});u("ol.events.condition.shiftKeyOnly",hi);u("ol.events.condition.targetNotEditable",ii);u("ol.events.condition.mouseOnly",ji);u("ol.events.condition.primaryAction",ki);Ua.prototype.type=Ua.prototype.type;
Ua.prototype.target=Ua.prototype.target;Ua.prototype.preventDefault=Ua.prototype.preventDefault;Ua.prototype.stopPropagation=Ua.prototype.stopPropagation;u("ol.control.Attribution",xf);u("ol.control.Attribution.render",yf);xf.prototype.getCollapsible=xf.prototype.$l;xf.prototype.setCollapsible=xf.prototype.cm;xf.prototype.setCollapsed=xf.prototype.bm;xf.prototype.getCollapsed=xf.prototype.Zl;u("ol.control.Control",Pe);Pe.prototype.getMap=Pe.prototype.i;Pe.prototype.setMap=Pe.prototype.setMap;
Pe.prototype.setTarget=Pe.prototype.c;u("ol.control.defaults",Df);u("ol.control.FullScreen",Ef);u("ol.control.MousePosition",Jf);u("ol.control.MousePosition.render",Kf);Jf.prototype.getCoordinateFormat=Jf.prototype.Cg;Jf.prototype.getProjection=Jf.prototype.hh;Jf.prototype.setCoordinateFormat=Jf.prototype.ei;Jf.prototype.setProjection=Jf.prototype.ih;u("ol.control.OverviewMap",an);u("ol.control.OverviewMap.render",bn);an.prototype.getCollapsible=an.prototype.fm;an.prototype.setCollapsible=an.prototype.im;
an.prototype.setCollapsed=an.prototype.hm;an.prototype.getCollapsed=an.prototype.em;an.prototype.getOverviewMap=an.prototype.pk;u("ol.control.Rotate",Af);u("ol.control.Rotate.render",Bf);u("ol.control.ScaleLine",fn);fn.prototype.getUnits=fn.prototype.xb;u("ol.control.ScaleLine.render",gn);fn.prototype.setUnits=fn.prototype.C;u("ol.control.Zoom",Cf);u("ol.control.ZoomSlider",kn);u("ol.control.ZoomSlider.render",mn);u("ol.control.ZoomToExtent",pn);u("ol.color.asArray",je);u("ol.color.asString",le);
ae.prototype.type=ae.prototype.type;ae.prototype.target=ae.prototype.target;ae.prototype.preventDefault=ae.prototype.preventDefault;ae.prototype.stopPropagation=ae.prototype.stopPropagation;bb.prototype.changed=bb.prototype.u;bb.prototype.dispatchEvent=bb.prototype.b;bb.prototype.getRevision=bb.prototype.K;bb.prototype.on=bb.prototype.I;bb.prototype.once=bb.prototype.L;bb.prototype.un=bb.prototype.J;bb.prototype.unByKey=bb.prototype.M;be.prototype.get=be.prototype.get;be.prototype.getKeys=be.prototype.N;
be.prototype.getProperties=be.prototype.O;be.prototype.set=be.prototype.set;be.prototype.setProperties=be.prototype.G;be.prototype.unset=be.prototype.R;be.prototype.changed=be.prototype.u;be.prototype.dispatchEvent=be.prototype.b;be.prototype.getRevision=be.prototype.K;be.prototype.on=be.prototype.I;be.prototype.once=be.prototype.L;be.prototype.un=be.prototype.J;be.prototype.unByKey=be.prototype.M;qn.prototype.get=qn.prototype.get;qn.prototype.getKeys=qn.prototype.N;qn.prototype.getProperties=qn.prototype.O;
qn.prototype.set=qn.prototype.set;qn.prototype.setProperties=qn.prototype.G;qn.prototype.unset=qn.prototype.R;qn.prototype.changed=qn.prototype.u;qn.prototype.dispatchEvent=qn.prototype.b;qn.prototype.getRevision=qn.prototype.K;qn.prototype.on=qn.prototype.I;qn.prototype.once=qn.prototype.L;qn.prototype.un=qn.prototype.J;qn.prototype.unByKey=qn.prototype.M;Ik.prototype.get=Ik.prototype.get;Ik.prototype.getKeys=Ik.prototype.N;Ik.prototype.getProperties=Ik.prototype.O;Ik.prototype.set=Ik.prototype.set;
Ik.prototype.setProperties=Ik.prototype.G;Ik.prototype.unset=Ik.prototype.R;Ik.prototype.changed=Ik.prototype.u;Ik.prototype.dispatchEvent=Ik.prototype.b;Ik.prototype.getRevision=Ik.prototype.K;Ik.prototype.on=Ik.prototype.I;Ik.prototype.once=Ik.prototype.L;Ik.prototype.un=Ik.prototype.J;Ik.prototype.unByKey=Ik.prototype.M;St.prototype.get=St.prototype.get;St.prototype.getKeys=St.prototype.N;St.prototype.getProperties=St.prototype.O;St.prototype.set=St.prototype.set;St.prototype.setProperties=St.prototype.G;
St.prototype.unset=St.prototype.R;St.prototype.changed=St.prototype.u;St.prototype.dispatchEvent=St.prototype.b;St.prototype.getRevision=St.prototype.K;St.prototype.on=St.prototype.I;St.prototype.once=St.prototype.L;St.prototype.un=St.prototype.J;St.prototype.unByKey=St.prototype.M;du.prototype.getTileCoord=du.prototype.i;Q.prototype.get=Q.prototype.get;Q.prototype.getKeys=Q.prototype.N;Q.prototype.getProperties=Q.prototype.O;Q.prototype.set=Q.prototype.set;Q.prototype.setProperties=Q.prototype.G;
Q.prototype.unset=Q.prototype.R;Q.prototype.changed=Q.prototype.u;Q.prototype.dispatchEvent=Q.prototype.b;Q.prototype.getRevision=Q.prototype.K;Q.prototype.on=Q.prototype.I;Q.prototype.once=Q.prototype.L;Q.prototype.un=Q.prototype.J;Q.prototype.unByKey=Q.prototype.M;Oe.prototype.type=Oe.prototype.type;Oe.prototype.target=Oe.prototype.target;Oe.prototype.preventDefault=Oe.prototype.preventDefault;Oe.prototype.stopPropagation=Oe.prototype.stopPropagation;Og.prototype.map=Og.prototype.map;
Og.prototype.frameState=Og.prototype.frameState;Og.prototype.type=Og.prototype.type;Og.prototype.target=Og.prototype.target;Og.prototype.preventDefault=Og.prototype.preventDefault;Og.prototype.stopPropagation=Og.prototype.stopPropagation;Pg.prototype.originalEvent=Pg.prototype.originalEvent;Pg.prototype.pixel=Pg.prototype.pixel;Pg.prototype.coordinate=Pg.prototype.coordinate;Pg.prototype.dragging=Pg.prototype.dragging;Pg.prototype.preventDefault=Pg.prototype.preventDefault;
Pg.prototype.stopPropagation=Pg.prototype.stopPropagation;Pg.prototype.map=Pg.prototype.map;Pg.prototype.frameState=Pg.prototype.frameState;Pg.prototype.type=Pg.prototype.type;Pg.prototype.target=Pg.prototype.target;ab.prototype.type=ab.prototype.type;ab.prototype.target=ab.prototype.target;ab.prototype.preventDefault=ab.prototype.preventDefault;ab.prototype.stopPropagation=ab.prototype.stopPropagation;Xm.prototype.get=Xm.prototype.get;Xm.prototype.getKeys=Xm.prototype.N;
Xm.prototype.getProperties=Xm.prototype.O;Xm.prototype.set=Xm.prototype.set;Xm.prototype.setProperties=Xm.prototype.G;Xm.prototype.unset=Xm.prototype.R;Xm.prototype.changed=Xm.prototype.u;Xm.prototype.dispatchEvent=Xm.prototype.b;Xm.prototype.getRevision=Xm.prototype.K;Xm.prototype.on=Xm.prototype.I;Xm.prototype.once=Xm.prototype.L;Xm.prototype.un=Xm.prototype.J;Xm.prototype.unByKey=Xm.prototype.M;Kk.prototype.getTileCoord=Kk.prototype.i;Fd.prototype.get=Fd.prototype.get;Fd.prototype.getKeys=Fd.prototype.N;
Fd.prototype.getProperties=Fd.prototype.O;Fd.prototype.set=Fd.prototype.set;Fd.prototype.setProperties=Fd.prototype.G;Fd.prototype.unset=Fd.prototype.R;Fd.prototype.changed=Fd.prototype.u;Fd.prototype.dispatchEvent=Fd.prototype.b;Fd.prototype.getRevision=Fd.prototype.K;Fd.prototype.on=Fd.prototype.I;Fd.prototype.once=Fd.prototype.L;Fd.prototype.un=Fd.prototype.J;Fd.prototype.unByKey=Fd.prototype.M;dw.prototype.forEachTileCoord=dw.prototype.yg;dw.prototype.getMaxZoom=dw.prototype.Ig;
dw.prototype.getMinZoom=dw.prototype.Jg;dw.prototype.getOrigin=dw.prototype.Ia;dw.prototype.getResolution=dw.prototype.$;dw.prototype.getResolutions=dw.prototype.Kh;dw.prototype.getTileCoordExtent=dw.prototype.Ea;dw.prototype.getTileCoordForCoordAndResolution=dw.prototype.Zd;dw.prototype.getTileCoordForCoordAndZ=dw.prototype.qd;dw.prototype.getTileSize=dw.prototype.Ja;dw.prototype.getZForResolution=dw.prototype.Lb;rj.prototype.getOpacity=rj.prototype.qe;rj.prototype.getRotateWithView=rj.prototype.Xd;
rj.prototype.getRotation=rj.prototype.re;rj.prototype.getScale=rj.prototype.se;rj.prototype.getSnapToPixel=rj.prototype.Yd;rj.prototype.setOpacity=rj.prototype.te;rj.prototype.setRotation=rj.prototype.ue;rj.prototype.setScale=rj.prototype.ve;Fh.prototype.getOpacity=Fh.prototype.qe;Fh.prototype.getRotateWithView=Fh.prototype.Xd;Fh.prototype.getRotation=Fh.prototype.re;Fh.prototype.getScale=Fh.prototype.se;Fh.prototype.getSnapToPixel=Fh.prototype.Yd;Fh.prototype.setOpacity=Fh.prototype.te;
Fh.prototype.setRotation=Fh.prototype.ue;Fh.prototype.setScale=Fh.prototype.ve;mw.prototype.getOpacity=mw.prototype.qe;mw.prototype.getRotateWithView=mw.prototype.Xd;mw.prototype.getRotation=mw.prototype.re;mw.prototype.getScale=mw.prototype.se;mw.prototype.getSnapToPixel=mw.prototype.Yd;mw.prototype.setOpacity=mw.prototype.te;mw.prototype.setRotation=mw.prototype.ue;mw.prototype.setScale=mw.prototype.ve;af.prototype.get=af.prototype.get;af.prototype.getKeys=af.prototype.N;
af.prototype.getProperties=af.prototype.O;af.prototype.set=af.prototype.set;af.prototype.setProperties=af.prototype.G;af.prototype.unset=af.prototype.R;af.prototype.changed=af.prototype.u;af.prototype.dispatchEvent=af.prototype.b;af.prototype.getRevision=af.prototype.K;af.prototype.on=af.prototype.I;af.prototype.once=af.prototype.L;af.prototype.un=af.prototype.J;af.prototype.unByKey=af.prototype.M;rf.prototype.getAttributions=rf.prototype.wa;rf.prototype.getLogo=rf.prototype.ua;
rf.prototype.getProjection=rf.prototype.xa;rf.prototype.getState=rf.prototype.V;rf.prototype.refresh=rf.prototype.ta;rf.prototype.setAttributions=rf.prototype.qa;rf.prototype.get=rf.prototype.get;rf.prototype.getKeys=rf.prototype.N;rf.prototype.getProperties=rf.prototype.O;rf.prototype.set=rf.prototype.set;rf.prototype.setProperties=rf.prototype.G;rf.prototype.unset=rf.prototype.R;rf.prototype.changed=rf.prototype.u;rf.prototype.dispatchEvent=rf.prototype.b;rf.prototype.getRevision=rf.prototype.K;
rf.prototype.on=rf.prototype.I;rf.prototype.once=rf.prototype.L;rf.prototype.un=rf.prototype.J;rf.prototype.unByKey=rf.prototype.M;Jl.prototype.getTileGrid=Jl.prototype.Na;Jl.prototype.refresh=Jl.prototype.ta;Jl.prototype.getAttributions=Jl.prototype.wa;Jl.prototype.getLogo=Jl.prototype.ua;Jl.prototype.getProjection=Jl.prototype.xa;Jl.prototype.getState=Jl.prototype.V;Jl.prototype.setAttributions=Jl.prototype.qa;Jl.prototype.get=Jl.prototype.get;Jl.prototype.getKeys=Jl.prototype.N;
Jl.prototype.getProperties=Jl.prototype.O;Jl.prototype.set=Jl.prototype.set;Jl.prototype.setProperties=Jl.prototype.G;Jl.prototype.unset=Jl.prototype.R;Jl.prototype.changed=Jl.prototype.u;Jl.prototype.dispatchEvent=Jl.prototype.b;Jl.prototype.getRevision=Jl.prototype.K;Jl.prototype.on=Jl.prototype.I;Jl.prototype.once=Jl.prototype.L;Jl.prototype.un=Jl.prototype.J;Jl.prototype.unByKey=Jl.prototype.M;X.prototype.getTileLoadFunction=X.prototype.gb;X.prototype.getTileUrlFunction=X.prototype.hb;
X.prototype.getUrls=X.prototype.ib;X.prototype.setTileLoadFunction=X.prototype.lb;X.prototype.setTileUrlFunction=X.prototype.Qa;X.prototype.setUrl=X.prototype.Va;X.prototype.setUrls=X.prototype.bb;X.prototype.getTileGrid=X.prototype.Na;X.prototype.refresh=X.prototype.ta;X.prototype.getAttributions=X.prototype.wa;X.prototype.getLogo=X.prototype.ua;X.prototype.getProjection=X.prototype.xa;X.prototype.getState=X.prototype.V;X.prototype.setAttributions=X.prototype.qa;X.prototype.get=X.prototype.get;
X.prototype.getKeys=X.prototype.N;X.prototype.getProperties=X.prototype.O;X.prototype.set=X.prototype.set;X.prototype.setProperties=X.prototype.G;X.prototype.unset=X.prototype.R;X.prototype.changed=X.prototype.u;X.prototype.dispatchEvent=X.prototype.b;X.prototype.getRevision=X.prototype.K;X.prototype.on=X.prototype.I;X.prototype.once=X.prototype.L;X.prototype.un=X.prototype.J;X.prototype.unByKey=X.prototype.M;nv.prototype.setRenderReprojectionEdges=nv.prototype.Ab;
nv.prototype.setTileGridForProjection=nv.prototype.Bb;nv.prototype.getTileLoadFunction=nv.prototype.gb;nv.prototype.getTileUrlFunction=nv.prototype.hb;nv.prototype.getUrls=nv.prototype.ib;nv.prototype.setTileLoadFunction=nv.prototype.lb;nv.prototype.setTileUrlFunction=nv.prototype.Qa;nv.prototype.setUrl=nv.prototype.Va;nv.prototype.setUrls=nv.prototype.bb;nv.prototype.getTileGrid=nv.prototype.Na;nv.prototype.refresh=nv.prototype.ta;nv.prototype.getAttributions=nv.prototype.wa;
nv.prototype.getLogo=nv.prototype.ua;nv.prototype.getProjection=nv.prototype.xa;nv.prototype.getState=nv.prototype.V;nv.prototype.setAttributions=nv.prototype.qa;nv.prototype.get=nv.prototype.get;nv.prototype.getKeys=nv.prototype.N;nv.prototype.getProperties=nv.prototype.O;nv.prototype.set=nv.prototype.set;nv.prototype.setProperties=nv.prototype.G;nv.prototype.unset=nv.prototype.R;nv.prototype.changed=nv.prototype.u;nv.prototype.dispatchEvent=nv.prototype.b;nv.prototype.getRevision=nv.prototype.K;
nv.prototype.on=nv.prototype.I;nv.prototype.once=nv.prototype.L;nv.prototype.un=nv.prototype.J;nv.prototype.unByKey=nv.prototype.M;pv.prototype.setRenderReprojectionEdges=pv.prototype.Ab;pv.prototype.setTileGridForProjection=pv.prototype.Bb;pv.prototype.getTileLoadFunction=pv.prototype.gb;pv.prototype.getTileUrlFunction=pv.prototype.hb;pv.prototype.getUrls=pv.prototype.ib;pv.prototype.setTileLoadFunction=pv.prototype.lb;pv.prototype.setTileUrlFunction=pv.prototype.Qa;pv.prototype.setUrl=pv.prototype.Va;
pv.prototype.setUrls=pv.prototype.bb;pv.prototype.getTileGrid=pv.prototype.Na;pv.prototype.refresh=pv.prototype.ta;pv.prototype.getAttributions=pv.prototype.wa;pv.prototype.getLogo=pv.prototype.ua;pv.prototype.getProjection=pv.prototype.xa;pv.prototype.getState=pv.prototype.V;pv.prototype.setAttributions=pv.prototype.qa;pv.prototype.get=pv.prototype.get;pv.prototype.getKeys=pv.prototype.N;pv.prototype.getProperties=pv.prototype.O;pv.prototype.set=pv.prototype.set;pv.prototype.setProperties=pv.prototype.G;
pv.prototype.unset=pv.prototype.R;pv.prototype.changed=pv.prototype.u;pv.prototype.dispatchEvent=pv.prototype.b;pv.prototype.getRevision=pv.prototype.K;pv.prototype.on=pv.prototype.I;pv.prototype.once=pv.prototype.L;pv.prototype.un=pv.prototype.J;pv.prototype.unByKey=pv.prototype.M;qv.prototype.setRenderReprojectionEdges=qv.prototype.Ab;qv.prototype.setTileGridForProjection=qv.prototype.Bb;qv.prototype.getTileLoadFunction=qv.prototype.gb;qv.prototype.getTileUrlFunction=qv.prototype.hb;
qv.prototype.getUrls=qv.prototype.ib;qv.prototype.setTileLoadFunction=qv.prototype.lb;qv.prototype.setTileUrlFunction=qv.prototype.Qa;qv.prototype.setUrl=qv.prototype.Va;qv.prototype.setUrls=qv.prototype.bb;qv.prototype.getTileGrid=qv.prototype.Na;qv.prototype.refresh=qv.prototype.ta;qv.prototype.getAttributions=qv.prototype.wa;qv.prototype.getLogo=qv.prototype.ua;qv.prototype.getProjection=qv.prototype.xa;qv.prototype.getState=qv.prototype.V;qv.prototype.setAttributions=qv.prototype.qa;
qv.prototype.get=qv.prototype.get;qv.prototype.getKeys=qv.prototype.N;qv.prototype.getProperties=qv.prototype.O;qv.prototype.set=qv.prototype.set;qv.prototype.setProperties=qv.prototype.G;qv.prototype.unset=qv.prototype.R;qv.prototype.changed=qv.prototype.u;qv.prototype.dispatchEvent=qv.prototype.b;qv.prototype.getRevision=qv.prototype.K;qv.prototype.on=qv.prototype.I;qv.prototype.once=qv.prototype.L;qv.prototype.un=qv.prototype.J;qv.prototype.unByKey=qv.prototype.M;P.prototype.getAttributions=P.prototype.wa;
P.prototype.getLogo=P.prototype.ua;P.prototype.getProjection=P.prototype.xa;P.prototype.getState=P.prototype.V;P.prototype.refresh=P.prototype.ta;P.prototype.setAttributions=P.prototype.qa;P.prototype.get=P.prototype.get;P.prototype.getKeys=P.prototype.N;P.prototype.getProperties=P.prototype.O;P.prototype.set=P.prototype.set;P.prototype.setProperties=P.prototype.G;P.prototype.unset=P.prototype.R;P.prototype.changed=P.prototype.u;P.prototype.dispatchEvent=P.prototype.b;P.prototype.getRevision=P.prototype.K;
P.prototype.on=P.prototype.I;P.prototype.once=P.prototype.L;P.prototype.un=P.prototype.J;P.prototype.unByKey=P.prototype.M;Y.prototype.addFeature=Y.prototype.sb;Y.prototype.addFeatures=Y.prototype.Jc;Y.prototype.clear=Y.prototype.clear;Y.prototype.forEachFeature=Y.prototype.wg;Y.prototype.forEachFeatureInExtent=Y.prototype.vb;Y.prototype.forEachFeatureIntersectingExtent=Y.prototype.xg;Y.prototype.getFeaturesCollection=Y.prototype.Fg;Y.prototype.getFeatures=Y.prototype.oe;
Y.prototype.getFeaturesAtCoordinate=Y.prototype.Eg;Y.prototype.getFeaturesInExtent=Y.prototype.ef;Y.prototype.getClosestFeatureToCoordinate=Y.prototype.Ag;Y.prototype.getExtent=Y.prototype.H;Y.prototype.getFeatureById=Y.prototype.Dg;Y.prototype.getFormat=Y.prototype.Ch;Y.prototype.getUrl=Y.prototype.Dh;Y.prototype.removeFeature=Y.prototype.ob;Y.prototype.getAttributions=Y.prototype.wa;Y.prototype.getLogo=Y.prototype.ua;Y.prototype.getProjection=Y.prototype.xa;Y.prototype.getState=Y.prototype.V;
Y.prototype.refresh=Y.prototype.ta;Y.prototype.setAttributions=Y.prototype.qa;Y.prototype.get=Y.prototype.get;Y.prototype.getKeys=Y.prototype.N;Y.prototype.getProperties=Y.prototype.O;Y.prototype.set=Y.prototype.set;Y.prototype.setProperties=Y.prototype.G;Y.prototype.unset=Y.prototype.R;Y.prototype.changed=Y.prototype.u;Y.prototype.dispatchEvent=Y.prototype.b;Y.prototype.getRevision=Y.prototype.K;Y.prototype.on=Y.prototype.I;Y.prototype.once=Y.prototype.L;Y.prototype.un=Y.prototype.J;
Y.prototype.unByKey=Y.prototype.M;Ak.prototype.getAttributions=Ak.prototype.wa;Ak.prototype.getLogo=Ak.prototype.ua;Ak.prototype.getProjection=Ak.prototype.xa;Ak.prototype.getState=Ak.prototype.V;Ak.prototype.refresh=Ak.prototype.ta;Ak.prototype.setAttributions=Ak.prototype.qa;Ak.prototype.get=Ak.prototype.get;Ak.prototype.getKeys=Ak.prototype.N;Ak.prototype.getProperties=Ak.prototype.O;Ak.prototype.set=Ak.prototype.set;Ak.prototype.setProperties=Ak.prototype.G;Ak.prototype.unset=Ak.prototype.R;
Ak.prototype.changed=Ak.prototype.u;Ak.prototype.dispatchEvent=Ak.prototype.b;Ak.prototype.getRevision=Ak.prototype.K;Ak.prototype.on=Ak.prototype.I;Ak.prototype.once=Ak.prototype.L;Ak.prototype.un=Ak.prototype.J;Ak.prototype.unByKey=Ak.prototype.M;wv.prototype.getAttributions=wv.prototype.wa;wv.prototype.getLogo=wv.prototype.ua;wv.prototype.getProjection=wv.prototype.xa;wv.prototype.getState=wv.prototype.V;wv.prototype.refresh=wv.prototype.ta;wv.prototype.setAttributions=wv.prototype.qa;
wv.prototype.get=wv.prototype.get;wv.prototype.getKeys=wv.prototype.N;wv.prototype.getProperties=wv.prototype.O;wv.prototype.set=wv.prototype.set;wv.prototype.setProperties=wv.prototype.G;wv.prototype.unset=wv.prototype.R;wv.prototype.changed=wv.prototype.u;wv.prototype.dispatchEvent=wv.prototype.b;wv.prototype.getRevision=wv.prototype.K;wv.prototype.on=wv.prototype.I;wv.prototype.once=wv.prototype.L;wv.prototype.un=wv.prototype.J;wv.prototype.unByKey=wv.prototype.M;Hk.prototype.getAttributions=Hk.prototype.wa;
Hk.prototype.getLogo=Hk.prototype.ua;Hk.prototype.getProjection=Hk.prototype.xa;Hk.prototype.getState=Hk.prototype.V;Hk.prototype.refresh=Hk.prototype.ta;Hk.prototype.setAttributions=Hk.prototype.qa;Hk.prototype.get=Hk.prototype.get;Hk.prototype.getKeys=Hk.prototype.N;Hk.prototype.getProperties=Hk.prototype.O;Hk.prototype.set=Hk.prototype.set;Hk.prototype.setProperties=Hk.prototype.G;Hk.prototype.unset=Hk.prototype.R;Hk.prototype.changed=Hk.prototype.u;Hk.prototype.dispatchEvent=Hk.prototype.b;
Hk.prototype.getRevision=Hk.prototype.K;Hk.prototype.on=Hk.prototype.I;Hk.prototype.once=Hk.prototype.L;Hk.prototype.un=Hk.prototype.J;Hk.prototype.unByKey=Hk.prototype.M;xv.prototype.getAttributions=xv.prototype.wa;xv.prototype.getLogo=xv.prototype.ua;xv.prototype.getProjection=xv.prototype.xa;xv.prototype.getState=xv.prototype.V;xv.prototype.refresh=xv.prototype.ta;xv.prototype.setAttributions=xv.prototype.qa;xv.prototype.get=xv.prototype.get;xv.prototype.getKeys=xv.prototype.N;
xv.prototype.getProperties=xv.prototype.O;xv.prototype.set=xv.prototype.set;xv.prototype.setProperties=xv.prototype.G;xv.prototype.unset=xv.prototype.R;xv.prototype.changed=xv.prototype.u;xv.prototype.dispatchEvent=xv.prototype.b;xv.prototype.getRevision=xv.prototype.K;xv.prototype.on=xv.prototype.I;xv.prototype.once=xv.prototype.L;xv.prototype.un=xv.prototype.J;xv.prototype.unByKey=xv.prototype.M;Ck.prototype.type=Ck.prototype.type;Ck.prototype.target=Ck.prototype.target;
Ck.prototype.preventDefault=Ck.prototype.preventDefault;Ck.prototype.stopPropagation=Ck.prototype.stopPropagation;yv.prototype.getAttributions=yv.prototype.wa;yv.prototype.getLogo=yv.prototype.ua;yv.prototype.getProjection=yv.prototype.xa;yv.prototype.getState=yv.prototype.V;yv.prototype.refresh=yv.prototype.ta;yv.prototype.setAttributions=yv.prototype.qa;yv.prototype.get=yv.prototype.get;yv.prototype.getKeys=yv.prototype.N;yv.prototype.getProperties=yv.prototype.O;yv.prototype.set=yv.prototype.set;
yv.prototype.setProperties=yv.prototype.G;yv.prototype.unset=yv.prototype.R;yv.prototype.changed=yv.prototype.u;yv.prototype.dispatchEvent=yv.prototype.b;yv.prototype.getRevision=yv.prototype.K;yv.prototype.on=yv.prototype.I;yv.prototype.once=yv.prototype.L;yv.prototype.un=yv.prototype.J;yv.prototype.unByKey=yv.prototype.M;yl.prototype.getAttributions=yl.prototype.wa;yl.prototype.getLogo=yl.prototype.ua;yl.prototype.getProjection=yl.prototype.xa;yl.prototype.getState=yl.prototype.V;
yl.prototype.refresh=yl.prototype.ta;yl.prototype.setAttributions=yl.prototype.qa;yl.prototype.get=yl.prototype.get;yl.prototype.getKeys=yl.prototype.N;yl.prototype.getProperties=yl.prototype.O;yl.prototype.set=yl.prototype.set;yl.prototype.setProperties=yl.prototype.G;yl.prototype.unset=yl.prototype.R;yl.prototype.changed=yl.prototype.u;yl.prototype.dispatchEvent=yl.prototype.b;yl.prototype.getRevision=yl.prototype.K;yl.prototype.on=yl.prototype.I;yl.prototype.once=yl.prototype.L;
yl.prototype.un=yl.prototype.J;yl.prototype.unByKey=yl.prototype.M;zv.prototype.getAttributions=zv.prototype.wa;zv.prototype.getLogo=zv.prototype.ua;zv.prototype.getProjection=zv.prototype.xa;zv.prototype.getState=zv.prototype.V;zv.prototype.refresh=zv.prototype.ta;zv.prototype.setAttributions=zv.prototype.qa;zv.prototype.get=zv.prototype.get;zv.prototype.getKeys=zv.prototype.N;zv.prototype.getProperties=zv.prototype.O;zv.prototype.set=zv.prototype.set;zv.prototype.setProperties=zv.prototype.G;
zv.prototype.unset=zv.prototype.R;zv.prototype.changed=zv.prototype.u;zv.prototype.dispatchEvent=zv.prototype.b;zv.prototype.getRevision=zv.prototype.K;zv.prototype.on=zv.prototype.I;zv.prototype.once=zv.prototype.L;zv.prototype.un=zv.prototype.J;zv.prototype.unByKey=zv.prototype.M;Dv.prototype.setRenderReprojectionEdges=Dv.prototype.Ab;Dv.prototype.setTileGridForProjection=Dv.prototype.Bb;Dv.prototype.getTileLoadFunction=Dv.prototype.gb;Dv.prototype.getTileUrlFunction=Dv.prototype.hb;
Dv.prototype.getUrls=Dv.prototype.ib;Dv.prototype.setTileLoadFunction=Dv.prototype.lb;Dv.prototype.setTileUrlFunction=Dv.prototype.Qa;Dv.prototype.setUrl=Dv.prototype.Va;Dv.prototype.setUrls=Dv.prototype.bb;Dv.prototype.getTileGrid=Dv.prototype.Na;Dv.prototype.refresh=Dv.prototype.ta;Dv.prototype.getAttributions=Dv.prototype.wa;Dv.prototype.getLogo=Dv.prototype.ua;Dv.prototype.getProjection=Dv.prototype.xa;Dv.prototype.getState=Dv.prototype.V;Dv.prototype.setAttributions=Dv.prototype.qa;
Dv.prototype.get=Dv.prototype.get;Dv.prototype.getKeys=Dv.prototype.N;Dv.prototype.getProperties=Dv.prototype.O;Dv.prototype.set=Dv.prototype.set;Dv.prototype.setProperties=Dv.prototype.G;Dv.prototype.unset=Dv.prototype.R;Dv.prototype.changed=Dv.prototype.u;Dv.prototype.dispatchEvent=Dv.prototype.b;Dv.prototype.getRevision=Dv.prototype.K;Dv.prototype.on=Dv.prototype.I;Dv.prototype.once=Dv.prototype.L;Dv.prototype.un=Dv.prototype.J;Dv.prototype.unByKey=Dv.prototype.M;Fv.prototype.getAttributions=Fv.prototype.wa;
Fv.prototype.getLogo=Fv.prototype.ua;Fv.prototype.getProjection=Fv.prototype.xa;Fv.prototype.getState=Fv.prototype.V;Fv.prototype.refresh=Fv.prototype.ta;Fv.prototype.setAttributions=Fv.prototype.qa;Fv.prototype.get=Fv.prototype.get;Fv.prototype.getKeys=Fv.prototype.N;Fv.prototype.getProperties=Fv.prototype.O;Fv.prototype.set=Fv.prototype.set;Fv.prototype.setProperties=Fv.prototype.G;Fv.prototype.unset=Fv.prototype.R;Fv.prototype.changed=Fv.prototype.u;Fv.prototype.dispatchEvent=Fv.prototype.b;
Fv.prototype.getRevision=Fv.prototype.K;Fv.prototype.on=Fv.prototype.I;Fv.prototype.once=Fv.prototype.L;Fv.prototype.un=Fv.prototype.J;Fv.prototype.unByKey=Fv.prototype.M;Kv.prototype.type=Kv.prototype.type;Kv.prototype.target=Kv.prototype.target;Kv.prototype.preventDefault=Kv.prototype.preventDefault;Kv.prototype.stopPropagation=Kv.prototype.stopPropagation;Pv.prototype.setRenderReprojectionEdges=Pv.prototype.Ab;Pv.prototype.setTileGridForProjection=Pv.prototype.Bb;
Pv.prototype.getTileLoadFunction=Pv.prototype.gb;Pv.prototype.getTileUrlFunction=Pv.prototype.hb;Pv.prototype.getUrls=Pv.prototype.ib;Pv.prototype.setTileLoadFunction=Pv.prototype.lb;Pv.prototype.setTileUrlFunction=Pv.prototype.Qa;Pv.prototype.setUrl=Pv.prototype.Va;Pv.prototype.setUrls=Pv.prototype.bb;Pv.prototype.getTileGrid=Pv.prototype.Na;Pv.prototype.refresh=Pv.prototype.ta;Pv.prototype.getAttributions=Pv.prototype.wa;Pv.prototype.getLogo=Pv.prototype.ua;Pv.prototype.getProjection=Pv.prototype.xa;
Pv.prototype.getState=Pv.prototype.V;Pv.prototype.setAttributions=Pv.prototype.qa;Pv.prototype.get=Pv.prototype.get;Pv.prototype.getKeys=Pv.prototype.N;Pv.prototype.getProperties=Pv.prototype.O;Pv.prototype.set=Pv.prototype.set;Pv.prototype.setProperties=Pv.prototype.G;Pv.prototype.unset=Pv.prototype.R;Pv.prototype.changed=Pv.prototype.u;Pv.prototype.dispatchEvent=Pv.prototype.b;Pv.prototype.getRevision=Pv.prototype.K;Pv.prototype.on=Pv.prototype.I;Pv.prototype.once=Pv.prototype.L;
Pv.prototype.un=Pv.prototype.J;Pv.prototype.unByKey=Pv.prototype.M;Rv.prototype.setRenderReprojectionEdges=Rv.prototype.Ab;Rv.prototype.setTileGridForProjection=Rv.prototype.Bb;Rv.prototype.getTileLoadFunction=Rv.prototype.gb;Rv.prototype.getTileUrlFunction=Rv.prototype.hb;Rv.prototype.getUrls=Rv.prototype.ib;Rv.prototype.setTileLoadFunction=Rv.prototype.lb;Rv.prototype.setTileUrlFunction=Rv.prototype.Qa;Rv.prototype.setUrl=Rv.prototype.Va;Rv.prototype.setUrls=Rv.prototype.bb;
Rv.prototype.getTileGrid=Rv.prototype.Na;Rv.prototype.refresh=Rv.prototype.ta;Rv.prototype.getAttributions=Rv.prototype.wa;Rv.prototype.getLogo=Rv.prototype.ua;Rv.prototype.getProjection=Rv.prototype.xa;Rv.prototype.getState=Rv.prototype.V;Rv.prototype.setAttributions=Rv.prototype.qa;Rv.prototype.get=Rv.prototype.get;Rv.prototype.getKeys=Rv.prototype.N;Rv.prototype.getProperties=Rv.prototype.O;Rv.prototype.set=Rv.prototype.set;Rv.prototype.setProperties=Rv.prototype.G;Rv.prototype.unset=Rv.prototype.R;
Rv.prototype.changed=Rv.prototype.u;Rv.prototype.dispatchEvent=Rv.prototype.b;Rv.prototype.getRevision=Rv.prototype.K;Rv.prototype.on=Rv.prototype.I;Rv.prototype.once=Rv.prototype.L;Rv.prototype.un=Rv.prototype.J;Rv.prototype.unByKey=Rv.prototype.M;Tv.prototype.getTileGrid=Tv.prototype.Na;Tv.prototype.refresh=Tv.prototype.ta;Tv.prototype.getAttributions=Tv.prototype.wa;Tv.prototype.getLogo=Tv.prototype.ua;Tv.prototype.getProjection=Tv.prototype.xa;Tv.prototype.getState=Tv.prototype.V;
Tv.prototype.setAttributions=Tv.prototype.qa;Tv.prototype.get=Tv.prototype.get;Tv.prototype.getKeys=Tv.prototype.N;Tv.prototype.getProperties=Tv.prototype.O;Tv.prototype.set=Tv.prototype.set;Tv.prototype.setProperties=Tv.prototype.G;Tv.prototype.unset=Tv.prototype.R;Tv.prototype.changed=Tv.prototype.u;Tv.prototype.dispatchEvent=Tv.prototype.b;Tv.prototype.getRevision=Tv.prototype.K;Tv.prototype.on=Tv.prototype.I;Tv.prototype.once=Tv.prototype.L;Tv.prototype.un=Tv.prototype.J;
Tv.prototype.unByKey=Tv.prototype.M;Uv.prototype.setRenderReprojectionEdges=Uv.prototype.Ab;Uv.prototype.setTileGridForProjection=Uv.prototype.Bb;Uv.prototype.getTileLoadFunction=Uv.prototype.gb;Uv.prototype.getTileUrlFunction=Uv.prototype.hb;Uv.prototype.getUrls=Uv.prototype.ib;Uv.prototype.setTileLoadFunction=Uv.prototype.lb;Uv.prototype.setTileUrlFunction=Uv.prototype.Qa;Uv.prototype.setUrl=Uv.prototype.Va;Uv.prototype.setUrls=Uv.prototype.bb;Uv.prototype.getTileGrid=Uv.prototype.Na;
Uv.prototype.refresh=Uv.prototype.ta;Uv.prototype.getAttributions=Uv.prototype.wa;Uv.prototype.getLogo=Uv.prototype.ua;Uv.prototype.getProjection=Uv.prototype.xa;Uv.prototype.getState=Uv.prototype.V;Uv.prototype.setAttributions=Uv.prototype.qa;Uv.prototype.get=Uv.prototype.get;Uv.prototype.getKeys=Uv.prototype.N;Uv.prototype.getProperties=Uv.prototype.O;Uv.prototype.set=Uv.prototype.set;Uv.prototype.setProperties=Uv.prototype.G;Uv.prototype.unset=Uv.prototype.R;Uv.prototype.changed=Uv.prototype.u;
Uv.prototype.dispatchEvent=Uv.prototype.b;Uv.prototype.getRevision=Uv.prototype.K;Uv.prototype.on=Uv.prototype.I;Uv.prototype.once=Uv.prototype.L;Uv.prototype.un=Uv.prototype.J;Uv.prototype.unByKey=Uv.prototype.M;wf.prototype.type=wf.prototype.type;wf.prototype.target=wf.prototype.target;wf.prototype.preventDefault=wf.prototype.preventDefault;wf.prototype.stopPropagation=wf.prototype.stopPropagation;Vv.prototype.getTileGrid=Vv.prototype.Na;Vv.prototype.refresh=Vv.prototype.ta;
Vv.prototype.getAttributions=Vv.prototype.wa;Vv.prototype.getLogo=Vv.prototype.ua;Vv.prototype.getProjection=Vv.prototype.xa;Vv.prototype.getState=Vv.prototype.V;Vv.prototype.setAttributions=Vv.prototype.qa;Vv.prototype.get=Vv.prototype.get;Vv.prototype.getKeys=Vv.prototype.N;Vv.prototype.getProperties=Vv.prototype.O;Vv.prototype.set=Vv.prototype.set;Vv.prototype.setProperties=Vv.prototype.G;Vv.prototype.unset=Vv.prototype.R;Vv.prototype.changed=Vv.prototype.u;Vv.prototype.dispatchEvent=Vv.prototype.b;
Vv.prototype.getRevision=Vv.prototype.K;Vv.prototype.on=Vv.prototype.I;Vv.prototype.once=Vv.prototype.L;Vv.prototype.un=Vv.prototype.J;Vv.prototype.unByKey=Vv.prototype.M;Zv.prototype.setRenderReprojectionEdges=Zv.prototype.Ab;Zv.prototype.setTileGridForProjection=Zv.prototype.Bb;Zv.prototype.getTileLoadFunction=Zv.prototype.gb;Zv.prototype.getTileUrlFunction=Zv.prototype.hb;Zv.prototype.getUrls=Zv.prototype.ib;Zv.prototype.setTileLoadFunction=Zv.prototype.lb;Zv.prototype.setTileUrlFunction=Zv.prototype.Qa;
Zv.prototype.setUrl=Zv.prototype.Va;Zv.prototype.setUrls=Zv.prototype.bb;Zv.prototype.getTileGrid=Zv.prototype.Na;Zv.prototype.refresh=Zv.prototype.ta;Zv.prototype.getAttributions=Zv.prototype.wa;Zv.prototype.getLogo=Zv.prototype.ua;Zv.prototype.getProjection=Zv.prototype.xa;Zv.prototype.getState=Zv.prototype.V;Zv.prototype.setAttributions=Zv.prototype.qa;Zv.prototype.get=Zv.prototype.get;Zv.prototype.getKeys=Zv.prototype.N;Zv.prototype.getProperties=Zv.prototype.O;Zv.prototype.set=Zv.prototype.set;
Zv.prototype.setProperties=Zv.prototype.G;Zv.prototype.unset=Zv.prototype.R;Zv.prototype.changed=Zv.prototype.u;Zv.prototype.dispatchEvent=Zv.prototype.b;Zv.prototype.getRevision=Zv.prototype.K;Zv.prototype.on=Zv.prototype.I;Zv.prototype.once=Zv.prototype.L;Zv.prototype.un=Zv.prototype.J;Zv.prototype.unByKey=Zv.prototype.M;vl.prototype.type=vl.prototype.type;vl.prototype.target=vl.prototype.target;vl.prototype.preventDefault=vl.prototype.preventDefault;vl.prototype.stopPropagation=vl.prototype.stopPropagation;
Kl.prototype.getTileLoadFunction=Kl.prototype.gb;Kl.prototype.getTileUrlFunction=Kl.prototype.hb;Kl.prototype.getUrls=Kl.prototype.ib;Kl.prototype.setTileLoadFunction=Kl.prototype.lb;Kl.prototype.setTileUrlFunction=Kl.prototype.Qa;Kl.prototype.setUrl=Kl.prototype.Va;Kl.prototype.setUrls=Kl.prototype.bb;Kl.prototype.getTileGrid=Kl.prototype.Na;Kl.prototype.refresh=Kl.prototype.ta;Kl.prototype.getAttributions=Kl.prototype.wa;Kl.prototype.getLogo=Kl.prototype.ua;Kl.prototype.getProjection=Kl.prototype.xa;
Kl.prototype.getState=Kl.prototype.V;Kl.prototype.setAttributions=Kl.prototype.qa;Kl.prototype.get=Kl.prototype.get;Kl.prototype.getKeys=Kl.prototype.N;Kl.prototype.getProperties=Kl.prototype.O;Kl.prototype.set=Kl.prototype.set;Kl.prototype.setProperties=Kl.prototype.G;Kl.prototype.unset=Kl.prototype.R;Kl.prototype.changed=Kl.prototype.u;Kl.prototype.dispatchEvent=Kl.prototype.b;Kl.prototype.getRevision=Kl.prototype.K;Kl.prototype.on=Kl.prototype.I;Kl.prototype.once=Kl.prototype.L;
Kl.prototype.un=Kl.prototype.J;Kl.prototype.unByKey=Kl.prototype.M;Z.prototype.setRenderReprojectionEdges=Z.prototype.Ab;Z.prototype.setTileGridForProjection=Z.prototype.Bb;Z.prototype.getTileLoadFunction=Z.prototype.gb;Z.prototype.getTileUrlFunction=Z.prototype.hb;Z.prototype.getUrls=Z.prototype.ib;Z.prototype.setTileLoadFunction=Z.prototype.lb;Z.prototype.setTileUrlFunction=Z.prototype.Qa;Z.prototype.setUrl=Z.prototype.Va;Z.prototype.setUrls=Z.prototype.bb;Z.prototype.getTileGrid=Z.prototype.Na;
Z.prototype.refresh=Z.prototype.ta;Z.prototype.getAttributions=Z.prototype.wa;Z.prototype.getLogo=Z.prototype.ua;Z.prototype.getProjection=Z.prototype.xa;Z.prototype.getState=Z.prototype.V;Z.prototype.setAttributions=Z.prototype.qa;Z.prototype.get=Z.prototype.get;Z.prototype.getKeys=Z.prototype.N;Z.prototype.getProperties=Z.prototype.O;Z.prototype.set=Z.prototype.set;Z.prototype.setProperties=Z.prototype.G;Z.prototype.unset=Z.prototype.R;Z.prototype.changed=Z.prototype.u;
Z.prototype.dispatchEvent=Z.prototype.b;Z.prototype.getRevision=Z.prototype.K;Z.prototype.on=Z.prototype.I;Z.prototype.once=Z.prototype.L;Z.prototype.un=Z.prototype.J;Z.prototype.unByKey=Z.prototype.M;gw.prototype.setRenderReprojectionEdges=gw.prototype.Ab;gw.prototype.setTileGridForProjection=gw.prototype.Bb;gw.prototype.getTileLoadFunction=gw.prototype.gb;gw.prototype.getTileUrlFunction=gw.prototype.hb;gw.prototype.getUrls=gw.prototype.ib;gw.prototype.setTileLoadFunction=gw.prototype.lb;
gw.prototype.setTileUrlFunction=gw.prototype.Qa;gw.prototype.setUrl=gw.prototype.Va;gw.prototype.setUrls=gw.prototype.bb;gw.prototype.getTileGrid=gw.prototype.Na;gw.prototype.refresh=gw.prototype.ta;gw.prototype.getAttributions=gw.prototype.wa;gw.prototype.getLogo=gw.prototype.ua;gw.prototype.getProjection=gw.prototype.xa;gw.prototype.getState=gw.prototype.V;gw.prototype.setAttributions=gw.prototype.qa;gw.prototype.get=gw.prototype.get;gw.prototype.getKeys=gw.prototype.N;
gw.prototype.getProperties=gw.prototype.O;gw.prototype.set=gw.prototype.set;gw.prototype.setProperties=gw.prototype.G;gw.prototype.unset=gw.prototype.R;gw.prototype.changed=gw.prototype.u;gw.prototype.dispatchEvent=gw.prototype.b;gw.prototype.getRevision=gw.prototype.K;gw.prototype.on=gw.prototype.I;gw.prototype.once=gw.prototype.L;gw.prototype.un=gw.prototype.J;gw.prototype.unByKey=gw.prototype.M;jv.prototype.getTileCoord=jv.prototype.i;jv.prototype.load=jv.prototype.load;vh.prototype.changed=vh.prototype.u;
vh.prototype.dispatchEvent=vh.prototype.b;vh.prototype.getRevision=vh.prototype.K;vh.prototype.on=vh.prototype.I;vh.prototype.once=vh.prototype.L;vh.prototype.un=vh.prototype.J;vh.prototype.unByKey=vh.prototype.M;Gm.prototype.changed=Gm.prototype.u;Gm.prototype.dispatchEvent=Gm.prototype.b;Gm.prototype.getRevision=Gm.prototype.K;Gm.prototype.on=Gm.prototype.I;Gm.prototype.once=Gm.prototype.L;Gm.prototype.un=Gm.prototype.J;Gm.prototype.unByKey=Gm.prototype.M;Jm.prototype.changed=Jm.prototype.u;
Jm.prototype.dispatchEvent=Jm.prototype.b;Jm.prototype.getRevision=Jm.prototype.K;Jm.prototype.on=Jm.prototype.I;Jm.prototype.once=Jm.prototype.L;Jm.prototype.un=Jm.prototype.J;Jm.prototype.unByKey=Jm.prototype.M;Pm.prototype.changed=Pm.prototype.u;Pm.prototype.dispatchEvent=Pm.prototype.b;Pm.prototype.getRevision=Pm.prototype.K;Pm.prototype.on=Pm.prototype.I;Pm.prototype.once=Pm.prototype.L;Pm.prototype.un=Pm.prototype.J;Pm.prototype.unByKey=Pm.prototype.M;Rm.prototype.changed=Rm.prototype.u;
Rm.prototype.dispatchEvent=Rm.prototype.b;Rm.prototype.getRevision=Rm.prototype.K;Rm.prototype.on=Rm.prototype.I;Rm.prototype.once=Rm.prototype.L;Rm.prototype.un=Rm.prototype.J;Rm.prototype.unByKey=Rm.prototype.M;Sl.prototype.changed=Sl.prototype.u;Sl.prototype.dispatchEvent=Sl.prototype.b;Sl.prototype.getRevision=Sl.prototype.K;Sl.prototype.on=Sl.prototype.I;Sl.prototype.once=Sl.prototype.L;Sl.prototype.un=Sl.prototype.J;Sl.prototype.unByKey=Sl.prototype.M;Tl.prototype.changed=Tl.prototype.u;
Tl.prototype.dispatchEvent=Tl.prototype.b;Tl.prototype.getRevision=Tl.prototype.K;Tl.prototype.on=Tl.prototype.I;Tl.prototype.once=Tl.prototype.L;Tl.prototype.un=Tl.prototype.J;Tl.prototype.unByKey=Tl.prototype.M;Ul.prototype.changed=Ul.prototype.u;Ul.prototype.dispatchEvent=Ul.prototype.b;Ul.prototype.getRevision=Ul.prototype.K;Ul.prototype.on=Ul.prototype.I;Ul.prototype.once=Ul.prototype.L;Ul.prototype.un=Ul.prototype.J;Ul.prototype.unByKey=Ul.prototype.M;Wl.prototype.changed=Wl.prototype.u;
Wl.prototype.dispatchEvent=Wl.prototype.b;Wl.prototype.getRevision=Wl.prototype.K;Wl.prototype.on=Wl.prototype.I;Wl.prototype.once=Wl.prototype.L;Wl.prototype.un=Wl.prototype.J;Wl.prototype.unByKey=Wl.prototype.M;Kj.prototype.changed=Kj.prototype.u;Kj.prototype.dispatchEvent=Kj.prototype.b;Kj.prototype.getRevision=Kj.prototype.K;Kj.prototype.on=Kj.prototype.I;Kj.prototype.once=Kj.prototype.L;Kj.prototype.un=Kj.prototype.J;Kj.prototype.unByKey=Kj.prototype.M;Al.prototype.changed=Al.prototype.u;
Al.prototype.dispatchEvent=Al.prototype.b;Al.prototype.getRevision=Al.prototype.K;Al.prototype.on=Al.prototype.I;Al.prototype.once=Al.prototype.L;Al.prototype.un=Al.prototype.J;Al.prototype.unByKey=Al.prototype.M;Bl.prototype.changed=Bl.prototype.u;Bl.prototype.dispatchEvent=Bl.prototype.b;Bl.prototype.getRevision=Bl.prototype.K;Bl.prototype.on=Bl.prototype.I;Bl.prototype.once=Bl.prototype.L;Bl.prototype.un=Bl.prototype.J;Bl.prototype.unByKey=Bl.prototype.M;Dl.prototype.changed=Dl.prototype.u;
Dl.prototype.dispatchEvent=Dl.prototype.b;Dl.prototype.getRevision=Dl.prototype.K;Dl.prototype.on=Dl.prototype.I;Dl.prototype.once=Dl.prototype.L;Dl.prototype.un=Dl.prototype.J;Dl.prototype.unByKey=Dl.prototype.M;Ol.prototype.changed=Ol.prototype.u;Ol.prototype.dispatchEvent=Ol.prototype.b;Ol.prototype.getRevision=Ol.prototype.K;Ol.prototype.on=Ol.prototype.I;Ol.prototype.once=Ol.prototype.L;Ol.prototype.un=Ol.prototype.J;Ol.prototype.unByKey=Ol.prototype.M;qh.prototype.type=qh.prototype.type;
qh.prototype.target=qh.prototype.target;qh.prototype.preventDefault=qh.prototype.preventDefault;qh.prototype.stopPropagation=qh.prototype.stopPropagation;Pf.prototype.type=Pf.prototype.type;Pf.prototype.target=Pf.prototype.target;Pf.prototype.preventDefault=Pf.prototype.preventDefault;Pf.prototype.stopPropagation=Pf.prototype.stopPropagation;nh.prototype.get=nh.prototype.get;nh.prototype.getKeys=nh.prototype.N;nh.prototype.getProperties=nh.prototype.O;nh.prototype.set=nh.prototype.set;
nh.prototype.setProperties=nh.prototype.G;nh.prototype.unset=nh.prototype.R;nh.prototype.changed=nh.prototype.u;nh.prototype.dispatchEvent=nh.prototype.b;nh.prototype.getRevision=nh.prototype.K;nh.prototype.on=nh.prototype.I;nh.prototype.once=nh.prototype.L;nh.prototype.un=nh.prototype.J;nh.prototype.unByKey=nh.prototype.M;rh.prototype.getExtent=rh.prototype.H;rh.prototype.getMaxResolution=rh.prototype.Ob;rh.prototype.getMinResolution=rh.prototype.Pb;rh.prototype.getOpacity=rh.prototype.Qb;
rh.prototype.getVisible=rh.prototype.yb;rh.prototype.getZIndex=rh.prototype.Rb;rh.prototype.setExtent=rh.prototype.fc;rh.prototype.setMaxResolution=rh.prototype.nc;rh.prototype.setMinResolution=rh.prototype.oc;rh.prototype.setOpacity=rh.prototype.gc;rh.prototype.setVisible=rh.prototype.hc;rh.prototype.setZIndex=rh.prototype.ic;rh.prototype.get=rh.prototype.get;rh.prototype.getKeys=rh.prototype.N;rh.prototype.getProperties=rh.prototype.O;rh.prototype.set=rh.prototype.set;
rh.prototype.setProperties=rh.prototype.G;rh.prototype.unset=rh.prototype.R;rh.prototype.changed=rh.prototype.u;rh.prototype.dispatchEvent=rh.prototype.b;rh.prototype.getRevision=rh.prototype.K;rh.prototype.on=rh.prototype.I;rh.prototype.once=rh.prototype.L;rh.prototype.un=rh.prototype.J;rh.prototype.unByKey=rh.prototype.M;I.prototype.setMap=I.prototype.setMap;I.prototype.setSource=I.prototype.Fc;I.prototype.getExtent=I.prototype.H;I.prototype.getMaxResolution=I.prototype.Ob;
I.prototype.getMinResolution=I.prototype.Pb;I.prototype.getOpacity=I.prototype.Qb;I.prototype.getVisible=I.prototype.yb;I.prototype.getZIndex=I.prototype.Rb;I.prototype.setExtent=I.prototype.fc;I.prototype.setMaxResolution=I.prototype.nc;I.prototype.setMinResolution=I.prototype.oc;I.prototype.setOpacity=I.prototype.gc;I.prototype.setVisible=I.prototype.hc;I.prototype.setZIndex=I.prototype.ic;I.prototype.get=I.prototype.get;I.prototype.getKeys=I.prototype.N;I.prototype.getProperties=I.prototype.O;
I.prototype.set=I.prototype.set;I.prototype.setProperties=I.prototype.G;I.prototype.unset=I.prototype.R;I.prototype.changed=I.prototype.u;I.prototype.dispatchEvent=I.prototype.b;I.prototype.getRevision=I.prototype.K;I.prototype.on=I.prototype.I;I.prototype.once=I.prototype.L;I.prototype.un=I.prototype.J;I.prototype.unByKey=I.prototype.M;W.prototype.getSource=W.prototype.ha;W.prototype.getStyle=W.prototype.D;W.prototype.getStyleFunction=W.prototype.C;W.prototype.setStyle=W.prototype.l;
W.prototype.setMap=W.prototype.setMap;W.prototype.setSource=W.prototype.Fc;W.prototype.getExtent=W.prototype.H;W.prototype.getMaxResolution=W.prototype.Ob;W.prototype.getMinResolution=W.prototype.Pb;W.prototype.getOpacity=W.prototype.Qb;W.prototype.getVisible=W.prototype.yb;W.prototype.getZIndex=W.prototype.Rb;W.prototype.setExtent=W.prototype.fc;W.prototype.setMaxResolution=W.prototype.nc;W.prototype.setMinResolution=W.prototype.oc;W.prototype.setOpacity=W.prototype.gc;W.prototype.setVisible=W.prototype.hc;
W.prototype.setZIndex=W.prototype.ic;W.prototype.get=W.prototype.get;W.prototype.getKeys=W.prototype.N;W.prototype.getProperties=W.prototype.O;W.prototype.set=W.prototype.set;W.prototype.setProperties=W.prototype.G;W.prototype.unset=W.prototype.R;W.prototype.changed=W.prototype.u;W.prototype.dispatchEvent=W.prototype.b;W.prototype.getRevision=W.prototype.K;W.prototype.on=W.prototype.I;W.prototype.once=W.prototype.L;W.prototype.un=W.prototype.J;W.prototype.unByKey=W.prototype.M;
ej.prototype.setMap=ej.prototype.setMap;ej.prototype.setSource=ej.prototype.Fc;ej.prototype.getExtent=ej.prototype.H;ej.prototype.getMaxResolution=ej.prototype.Ob;ej.prototype.getMinResolution=ej.prototype.Pb;ej.prototype.getOpacity=ej.prototype.Qb;ej.prototype.getVisible=ej.prototype.yb;ej.prototype.getZIndex=ej.prototype.Rb;ej.prototype.setExtent=ej.prototype.fc;ej.prototype.setMaxResolution=ej.prototype.nc;ej.prototype.setMinResolution=ej.prototype.oc;ej.prototype.setOpacity=ej.prototype.gc;
ej.prototype.setVisible=ej.prototype.hc;ej.prototype.setZIndex=ej.prototype.ic;ej.prototype.get=ej.prototype.get;ej.prototype.getKeys=ej.prototype.N;ej.prototype.getProperties=ej.prototype.O;ej.prototype.set=ej.prototype.set;ej.prototype.setProperties=ej.prototype.G;ej.prototype.unset=ej.prototype.R;ej.prototype.changed=ej.prototype.u;ej.prototype.dispatchEvent=ej.prototype.b;ej.prototype.getRevision=ej.prototype.K;ej.prototype.on=ej.prototype.I;ej.prototype.once=ej.prototype.L;ej.prototype.un=ej.prototype.J;
ej.prototype.unByKey=ej.prototype.M;Vi.prototype.getExtent=Vi.prototype.H;Vi.prototype.getMaxResolution=Vi.prototype.Ob;Vi.prototype.getMinResolution=Vi.prototype.Pb;Vi.prototype.getOpacity=Vi.prototype.Qb;Vi.prototype.getVisible=Vi.prototype.yb;Vi.prototype.getZIndex=Vi.prototype.Rb;Vi.prototype.setExtent=Vi.prototype.fc;Vi.prototype.setMaxResolution=Vi.prototype.nc;Vi.prototype.setMinResolution=Vi.prototype.oc;Vi.prototype.setOpacity=Vi.prototype.gc;Vi.prototype.setVisible=Vi.prototype.hc;
Vi.prototype.setZIndex=Vi.prototype.ic;Vi.prototype.get=Vi.prototype.get;Vi.prototype.getKeys=Vi.prototype.N;Vi.prototype.getProperties=Vi.prototype.O;Vi.prototype.set=Vi.prototype.set;Vi.prototype.setProperties=Vi.prototype.G;Vi.prototype.unset=Vi.prototype.R;Vi.prototype.changed=Vi.prototype.u;Vi.prototype.dispatchEvent=Vi.prototype.b;Vi.prototype.getRevision=Vi.prototype.K;Vi.prototype.on=Vi.prototype.I;Vi.prototype.once=Vi.prototype.L;Vi.prototype.un=Vi.prototype.J;Vi.prototype.unByKey=Vi.prototype.M;
F.prototype.setMap=F.prototype.setMap;F.prototype.setSource=F.prototype.Fc;F.prototype.getExtent=F.prototype.H;F.prototype.getMaxResolution=F.prototype.Ob;F.prototype.getMinResolution=F.prototype.Pb;F.prototype.getOpacity=F.prototype.Qb;F.prototype.getVisible=F.prototype.yb;F.prototype.getZIndex=F.prototype.Rb;F.prototype.setExtent=F.prototype.fc;F.prototype.setMaxResolution=F.prototype.nc;F.prototype.setMinResolution=F.prototype.oc;F.prototype.setOpacity=F.prototype.gc;F.prototype.setVisible=F.prototype.hc;
F.prototype.setZIndex=F.prototype.ic;F.prototype.get=F.prototype.get;F.prototype.getKeys=F.prototype.N;F.prototype.getProperties=F.prototype.O;F.prototype.set=F.prototype.set;F.prototype.setProperties=F.prototype.G;F.prototype.unset=F.prototype.R;F.prototype.changed=F.prototype.u;F.prototype.dispatchEvent=F.prototype.b;F.prototype.getRevision=F.prototype.K;F.prototype.on=F.prototype.I;F.prototype.once=F.prototype.L;F.prototype.un=F.prototype.J;F.prototype.unByKey=F.prototype.M;
J.prototype.getSource=J.prototype.ha;J.prototype.getStyle=J.prototype.D;J.prototype.getStyleFunction=J.prototype.C;J.prototype.setStyle=J.prototype.l;J.prototype.setMap=J.prototype.setMap;J.prototype.setSource=J.prototype.Fc;J.prototype.getExtent=J.prototype.H;J.prototype.getMaxResolution=J.prototype.Ob;J.prototype.getMinResolution=J.prototype.Pb;J.prototype.getOpacity=J.prototype.Qb;J.prototype.getVisible=J.prototype.yb;J.prototype.getZIndex=J.prototype.Rb;J.prototype.setExtent=J.prototype.fc;
J.prototype.setMaxResolution=J.prototype.nc;J.prototype.setMinResolution=J.prototype.oc;J.prototype.setOpacity=J.prototype.gc;J.prototype.setVisible=J.prototype.hc;J.prototype.setZIndex=J.prototype.ic;J.prototype.get=J.prototype.get;J.prototype.getKeys=J.prototype.N;J.prototype.getProperties=J.prototype.O;J.prototype.set=J.prototype.set;J.prototype.setProperties=J.prototype.G;J.prototype.unset=J.prototype.R;J.prototype.changed=J.prototype.u;J.prototype.dispatchEvent=J.prototype.b;
J.prototype.getRevision=J.prototype.K;J.prototype.on=J.prototype.I;J.prototype.once=J.prototype.L;J.prototype.un=J.prototype.J;J.prototype.unByKey=J.prototype.M;Xh.prototype.get=Xh.prototype.get;Xh.prototype.getKeys=Xh.prototype.N;Xh.prototype.getProperties=Xh.prototype.O;Xh.prototype.set=Xh.prototype.set;Xh.prototype.setProperties=Xh.prototype.G;Xh.prototype.unset=Xh.prototype.R;Xh.prototype.changed=Xh.prototype.u;Xh.prototype.dispatchEvent=Xh.prototype.b;Xh.prototype.getRevision=Xh.prototype.K;
Xh.prototype.on=Xh.prototype.I;Xh.prototype.once=Xh.prototype.L;Xh.prototype.un=Xh.prototype.J;Xh.prototype.unByKey=Xh.prototype.M;ai.prototype.getActive=ai.prototype.f;ai.prototype.getMap=ai.prototype.l;ai.prototype.setActive=ai.prototype.i;ai.prototype.get=ai.prototype.get;ai.prototype.getKeys=ai.prototype.N;ai.prototype.getProperties=ai.prototype.O;ai.prototype.set=ai.prototype.set;ai.prototype.setProperties=ai.prototype.G;ai.prototype.unset=ai.prototype.R;ai.prototype.changed=ai.prototype.u;
ai.prototype.dispatchEvent=ai.prototype.b;ai.prototype.getRevision=ai.prototype.K;ai.prototype.on=ai.prototype.I;ai.prototype.once=ai.prototype.L;ai.prototype.un=ai.prototype.J;ai.prototype.unByKey=ai.prototype.M;fu.prototype.getActive=fu.prototype.f;fu.prototype.getMap=fu.prototype.l;fu.prototype.setActive=fu.prototype.i;fu.prototype.get=fu.prototype.get;fu.prototype.getKeys=fu.prototype.N;fu.prototype.getProperties=fu.prototype.O;fu.prototype.set=fu.prototype.set;fu.prototype.setProperties=fu.prototype.G;
fu.prototype.unset=fu.prototype.R;fu.prototype.changed=fu.prototype.u;fu.prototype.dispatchEvent=fu.prototype.b;fu.prototype.getRevision=fu.prototype.K;fu.prototype.on=fu.prototype.I;fu.prototype.once=fu.prototype.L;fu.prototype.un=fu.prototype.J;fu.prototype.unByKey=fu.prototype.M;iu.prototype.type=iu.prototype.type;iu.prototype.target=iu.prototype.target;iu.prototype.preventDefault=iu.prototype.preventDefault;iu.prototype.stopPropagation=iu.prototype.stopPropagation;zi.prototype.type=zi.prototype.type;
zi.prototype.target=zi.prototype.target;zi.prototype.preventDefault=zi.prototype.preventDefault;zi.prototype.stopPropagation=zi.prototype.stopPropagation;li.prototype.getActive=li.prototype.f;li.prototype.getMap=li.prototype.l;li.prototype.setActive=li.prototype.i;li.prototype.get=li.prototype.get;li.prototype.getKeys=li.prototype.N;li.prototype.getProperties=li.prototype.O;li.prototype.set=li.prototype.set;li.prototype.setProperties=li.prototype.G;li.prototype.unset=li.prototype.R;
li.prototype.changed=li.prototype.u;li.prototype.dispatchEvent=li.prototype.b;li.prototype.getRevision=li.prototype.K;li.prototype.on=li.prototype.I;li.prototype.once=li.prototype.L;li.prototype.un=li.prototype.J;li.prototype.unByKey=li.prototype.M;Ai.prototype.getActive=Ai.prototype.f;Ai.prototype.getMap=Ai.prototype.l;Ai.prototype.setActive=Ai.prototype.i;Ai.prototype.get=Ai.prototype.get;Ai.prototype.getKeys=Ai.prototype.N;Ai.prototype.getProperties=Ai.prototype.O;Ai.prototype.set=Ai.prototype.set;
Ai.prototype.setProperties=Ai.prototype.G;Ai.prototype.unset=Ai.prototype.R;Ai.prototype.changed=Ai.prototype.u;Ai.prototype.dispatchEvent=Ai.prototype.b;Ai.prototype.getRevision=Ai.prototype.K;Ai.prototype.on=Ai.prototype.I;Ai.prototype.once=Ai.prototype.L;Ai.prototype.un=Ai.prototype.J;Ai.prototype.unByKey=Ai.prototype.M;oi.prototype.getActive=oi.prototype.f;oi.prototype.getMap=oi.prototype.l;oi.prototype.setActive=oi.prototype.i;oi.prototype.get=oi.prototype.get;oi.prototype.getKeys=oi.prototype.N;
oi.prototype.getProperties=oi.prototype.O;oi.prototype.set=oi.prototype.set;oi.prototype.setProperties=oi.prototype.G;oi.prototype.unset=oi.prototype.R;oi.prototype.changed=oi.prototype.u;oi.prototype.dispatchEvent=oi.prototype.b;oi.prototype.getRevision=oi.prototype.K;oi.prototype.on=oi.prototype.I;oi.prototype.once=oi.prototype.L;oi.prototype.un=oi.prototype.J;oi.prototype.unByKey=oi.prototype.M;ku.prototype.getActive=ku.prototype.f;ku.prototype.getMap=ku.prototype.l;ku.prototype.setActive=ku.prototype.i;
ku.prototype.get=ku.prototype.get;ku.prototype.getKeys=ku.prototype.N;ku.prototype.getProperties=ku.prototype.O;ku.prototype.set=ku.prototype.set;ku.prototype.setProperties=ku.prototype.G;ku.prototype.unset=ku.prototype.R;ku.prototype.changed=ku.prototype.u;ku.prototype.dispatchEvent=ku.prototype.b;ku.prototype.getRevision=ku.prototype.K;ku.prototype.on=ku.prototype.I;ku.prototype.once=ku.prototype.L;ku.prototype.un=ku.prototype.J;ku.prototype.unByKey=ku.prototype.M;si.prototype.getActive=si.prototype.f;
si.prototype.getMap=si.prototype.l;si.prototype.setActive=si.prototype.i;si.prototype.get=si.prototype.get;si.prototype.getKeys=si.prototype.N;si.prototype.getProperties=si.prototype.O;si.prototype.set=si.prototype.set;si.prototype.setProperties=si.prototype.G;si.prototype.unset=si.prototype.R;si.prototype.changed=si.prototype.u;si.prototype.dispatchEvent=si.prototype.b;si.prototype.getRevision=si.prototype.K;si.prototype.on=si.prototype.I;si.prototype.once=si.prototype.L;si.prototype.un=si.prototype.J;
si.prototype.unByKey=si.prototype.M;Fi.prototype.getGeometry=Fi.prototype.X;Fi.prototype.getActive=Fi.prototype.f;Fi.prototype.getMap=Fi.prototype.l;Fi.prototype.setActive=Fi.prototype.i;Fi.prototype.get=Fi.prototype.get;Fi.prototype.getKeys=Fi.prototype.N;Fi.prototype.getProperties=Fi.prototype.O;Fi.prototype.set=Fi.prototype.set;Fi.prototype.setProperties=Fi.prototype.G;Fi.prototype.unset=Fi.prototype.R;Fi.prototype.changed=Fi.prototype.u;Fi.prototype.dispatchEvent=Fi.prototype.b;
Fi.prototype.getRevision=Fi.prototype.K;Fi.prototype.on=Fi.prototype.I;Fi.prototype.once=Fi.prototype.L;Fi.prototype.un=Fi.prototype.J;Fi.prototype.unByKey=Fi.prototype.M;ou.prototype.type=ou.prototype.type;ou.prototype.target=ou.prototype.target;ou.prototype.preventDefault=ou.prototype.preventDefault;ou.prototype.stopPropagation=ou.prototype.stopPropagation;pu.prototype.getActive=pu.prototype.f;pu.prototype.getMap=pu.prototype.l;pu.prototype.setActive=pu.prototype.i;pu.prototype.get=pu.prototype.get;
pu.prototype.getKeys=pu.prototype.N;pu.prototype.getProperties=pu.prototype.O;pu.prototype.set=pu.prototype.set;pu.prototype.setProperties=pu.prototype.G;pu.prototype.unset=pu.prototype.R;pu.prototype.changed=pu.prototype.u;pu.prototype.dispatchEvent=pu.prototype.b;pu.prototype.getRevision=pu.prototype.K;pu.prototype.on=pu.prototype.I;pu.prototype.once=pu.prototype.L;pu.prototype.un=pu.prototype.J;pu.prototype.unByKey=pu.prototype.M;Gi.prototype.getActive=Gi.prototype.f;Gi.prototype.getMap=Gi.prototype.l;
Gi.prototype.setActive=Gi.prototype.i;Gi.prototype.get=Gi.prototype.get;Gi.prototype.getKeys=Gi.prototype.N;Gi.prototype.getProperties=Gi.prototype.O;Gi.prototype.set=Gi.prototype.set;Gi.prototype.setProperties=Gi.prototype.G;Gi.prototype.unset=Gi.prototype.R;Gi.prototype.changed=Gi.prototype.u;Gi.prototype.dispatchEvent=Gi.prototype.b;Gi.prototype.getRevision=Gi.prototype.K;Gi.prototype.on=Gi.prototype.I;Gi.prototype.once=Gi.prototype.L;Gi.prototype.un=Gi.prototype.J;Gi.prototype.unByKey=Gi.prototype.M;
Ii.prototype.getActive=Ii.prototype.f;Ii.prototype.getMap=Ii.prototype.l;Ii.prototype.setActive=Ii.prototype.i;Ii.prototype.get=Ii.prototype.get;Ii.prototype.getKeys=Ii.prototype.N;Ii.prototype.getProperties=Ii.prototype.O;Ii.prototype.set=Ii.prototype.set;Ii.prototype.setProperties=Ii.prototype.G;Ii.prototype.unset=Ii.prototype.R;Ii.prototype.changed=Ii.prototype.u;Ii.prototype.dispatchEvent=Ii.prototype.b;Ii.prototype.getRevision=Ii.prototype.K;Ii.prototype.on=Ii.prototype.I;Ii.prototype.once=Ii.prototype.L;
Ii.prototype.un=Ii.prototype.J;Ii.prototype.unByKey=Ii.prototype.M;Fu.prototype.type=Fu.prototype.type;Fu.prototype.target=Fu.prototype.target;Fu.prototype.preventDefault=Fu.prototype.preventDefault;Fu.prototype.stopPropagation=Fu.prototype.stopPropagation;Gu.prototype.getActive=Gu.prototype.f;Gu.prototype.getMap=Gu.prototype.l;Gu.prototype.setActive=Gu.prototype.i;Gu.prototype.get=Gu.prototype.get;Gu.prototype.getKeys=Gu.prototype.N;Gu.prototype.getProperties=Gu.prototype.O;Gu.prototype.set=Gu.prototype.set;
Gu.prototype.setProperties=Gu.prototype.G;Gu.prototype.unset=Gu.prototype.R;Gu.prototype.changed=Gu.prototype.u;Gu.prototype.dispatchEvent=Gu.prototype.b;Gu.prototype.getRevision=Gu.prototype.K;Gu.prototype.on=Gu.prototype.I;Gu.prototype.once=Gu.prototype.L;Gu.prototype.un=Gu.prototype.J;Gu.prototype.unByKey=Gu.prototype.M;Ki.prototype.getActive=Ki.prototype.f;Ki.prototype.getMap=Ki.prototype.l;Ki.prototype.setActive=Ki.prototype.i;Ki.prototype.get=Ki.prototype.get;Ki.prototype.getKeys=Ki.prototype.N;
Ki.prototype.getProperties=Ki.prototype.O;Ki.prototype.set=Ki.prototype.set;Ki.prototype.setProperties=Ki.prototype.G;Ki.prototype.unset=Ki.prototype.R;Ki.prototype.changed=Ki.prototype.u;Ki.prototype.dispatchEvent=Ki.prototype.b;Ki.prototype.getRevision=Ki.prototype.K;Ki.prototype.on=Ki.prototype.I;Ki.prototype.once=Ki.prototype.L;Ki.prototype.un=Ki.prototype.J;Ki.prototype.unByKey=Ki.prototype.M;Mi.prototype.getActive=Mi.prototype.f;Mi.prototype.getMap=Mi.prototype.l;Mi.prototype.setActive=Mi.prototype.i;
Mi.prototype.get=Mi.prototype.get;Mi.prototype.getKeys=Mi.prototype.N;Mi.prototype.getProperties=Mi.prototype.O;Mi.prototype.set=Mi.prototype.set;Mi.prototype.setProperties=Mi.prototype.G;Mi.prototype.unset=Mi.prototype.R;Mi.prototype.changed=Mi.prototype.u;Mi.prototype.dispatchEvent=Mi.prototype.b;Mi.prototype.getRevision=Mi.prototype.K;Mi.prototype.on=Mi.prototype.I;Mi.prototype.once=Mi.prototype.L;Mi.prototype.un=Mi.prototype.J;Mi.prototype.unByKey=Mi.prototype.M;Qi.prototype.getActive=Qi.prototype.f;
Qi.prototype.getMap=Qi.prototype.l;Qi.prototype.setActive=Qi.prototype.i;Qi.prototype.get=Qi.prototype.get;Qi.prototype.getKeys=Qi.prototype.N;Qi.prototype.getProperties=Qi.prototype.O;Qi.prototype.set=Qi.prototype.set;Qi.prototype.setProperties=Qi.prototype.G;Qi.prototype.unset=Qi.prototype.R;Qi.prototype.changed=Qi.prototype.u;Qi.prototype.dispatchEvent=Qi.prototype.b;Qi.prototype.getRevision=Qi.prototype.K;Qi.prototype.on=Qi.prototype.I;Qi.prototype.once=Qi.prototype.L;Qi.prototype.un=Qi.prototype.J;
Qi.prototype.unByKey=Qi.prototype.M;Tu.prototype.type=Tu.prototype.type;Tu.prototype.target=Tu.prototype.target;Tu.prototype.preventDefault=Tu.prototype.preventDefault;Tu.prototype.stopPropagation=Tu.prototype.stopPropagation;Uu.prototype.getActive=Uu.prototype.f;Uu.prototype.getMap=Uu.prototype.l;Uu.prototype.setActive=Uu.prototype.i;Uu.prototype.get=Uu.prototype.get;Uu.prototype.getKeys=Uu.prototype.N;Uu.prototype.getProperties=Uu.prototype.O;Uu.prototype.set=Uu.prototype.set;
Uu.prototype.setProperties=Uu.prototype.G;Uu.prototype.unset=Uu.prototype.R;Uu.prototype.changed=Uu.prototype.u;Uu.prototype.dispatchEvent=Uu.prototype.b;Uu.prototype.getRevision=Uu.prototype.K;Uu.prototype.on=Uu.prototype.I;Uu.prototype.once=Uu.prototype.L;Uu.prototype.un=Uu.prototype.J;Uu.prototype.unByKey=Uu.prototype.M;Xu.prototype.getActive=Xu.prototype.f;Xu.prototype.getMap=Xu.prototype.l;Xu.prototype.setActive=Xu.prototype.i;Xu.prototype.get=Xu.prototype.get;Xu.prototype.getKeys=Xu.prototype.N;
Xu.prototype.getProperties=Xu.prototype.O;Xu.prototype.set=Xu.prototype.set;Xu.prototype.setProperties=Xu.prototype.G;Xu.prototype.unset=Xu.prototype.R;Xu.prototype.changed=Xu.prototype.u;Xu.prototype.dispatchEvent=Xu.prototype.b;Xu.prototype.getRevision=Xu.prototype.K;Xu.prototype.on=Xu.prototype.I;Xu.prototype.once=Xu.prototype.L;Xu.prototype.un=Xu.prototype.J;Xu.prototype.unByKey=Xu.prototype.M;av.prototype.type=av.prototype.type;av.prototype.target=av.prototype.target;
av.prototype.preventDefault=av.prototype.preventDefault;av.prototype.stopPropagation=av.prototype.stopPropagation;bv.prototype.getActive=bv.prototype.f;bv.prototype.getMap=bv.prototype.l;bv.prototype.setActive=bv.prototype.i;bv.prototype.get=bv.prototype.get;bv.prototype.getKeys=bv.prototype.N;bv.prototype.getProperties=bv.prototype.O;bv.prototype.set=bv.prototype.set;bv.prototype.setProperties=bv.prototype.G;bv.prototype.unset=bv.prototype.R;bv.prototype.changed=bv.prototype.u;
bv.prototype.dispatchEvent=bv.prototype.b;bv.prototype.getRevision=bv.prototype.K;bv.prototype.on=bv.prototype.I;bv.prototype.once=bv.prototype.L;bv.prototype.un=bv.prototype.J;bv.prototype.unByKey=bv.prototype.M;Uc.prototype.get=Uc.prototype.get;Uc.prototype.getKeys=Uc.prototype.N;Uc.prototype.getProperties=Uc.prototype.O;Uc.prototype.set=Uc.prototype.set;Uc.prototype.setProperties=Uc.prototype.G;Uc.prototype.unset=Uc.prototype.R;Uc.prototype.changed=Uc.prototype.u;Uc.prototype.dispatchEvent=Uc.prototype.b;
Uc.prototype.getRevision=Uc.prototype.K;Uc.prototype.on=Uc.prototype.I;Uc.prototype.once=Uc.prototype.L;Uc.prototype.un=Uc.prototype.J;Uc.prototype.unByKey=Uc.prototype.M;Wc.prototype.getClosestPoint=Wc.prototype.wb;Wc.prototype.getExtent=Wc.prototype.H;Wc.prototype.rotate=Wc.prototype.rotate;Wc.prototype.simplify=Wc.prototype.Cb;Wc.prototype.transform=Wc.prototype.kb;Wc.prototype.get=Wc.prototype.get;Wc.prototype.getKeys=Wc.prototype.N;Wc.prototype.getProperties=Wc.prototype.O;Wc.prototype.set=Wc.prototype.set;
Wc.prototype.setProperties=Wc.prototype.G;Wc.prototype.unset=Wc.prototype.R;Wc.prototype.changed=Wc.prototype.u;Wc.prototype.dispatchEvent=Wc.prototype.b;Wc.prototype.getRevision=Wc.prototype.K;Wc.prototype.on=Wc.prototype.I;Wc.prototype.once=Wc.prototype.L;Wc.prototype.un=Wc.prototype.J;Wc.prototype.unByKey=Wc.prototype.M;Tt.prototype.getFirstCoordinate=Tt.prototype.Ib;Tt.prototype.getLastCoordinate=Tt.prototype.Jb;Tt.prototype.getLayout=Tt.prototype.Kb;Tt.prototype.rotate=Tt.prototype.rotate;
Tt.prototype.getClosestPoint=Tt.prototype.wb;Tt.prototype.getExtent=Tt.prototype.H;Tt.prototype.simplify=Tt.prototype.Cb;Tt.prototype.get=Tt.prototype.get;Tt.prototype.getKeys=Tt.prototype.N;Tt.prototype.getProperties=Tt.prototype.O;Tt.prototype.set=Tt.prototype.set;Tt.prototype.setProperties=Tt.prototype.G;Tt.prototype.unset=Tt.prototype.R;Tt.prototype.changed=Tt.prototype.u;Tt.prototype.dispatchEvent=Tt.prototype.b;Tt.prototype.getRevision=Tt.prototype.K;Tt.prototype.on=Tt.prototype.I;
Tt.prototype.once=Tt.prototype.L;Tt.prototype.un=Tt.prototype.J;Tt.prototype.unByKey=Tt.prototype.M;Kn.prototype.getClosestPoint=Kn.prototype.wb;Kn.prototype.getExtent=Kn.prototype.H;Kn.prototype.rotate=Kn.prototype.rotate;Kn.prototype.simplify=Kn.prototype.Cb;Kn.prototype.transform=Kn.prototype.kb;Kn.prototype.get=Kn.prototype.get;Kn.prototype.getKeys=Kn.prototype.N;Kn.prototype.getProperties=Kn.prototype.O;Kn.prototype.set=Kn.prototype.set;Kn.prototype.setProperties=Kn.prototype.G;
Kn.prototype.unset=Kn.prototype.R;Kn.prototype.changed=Kn.prototype.u;Kn.prototype.dispatchEvent=Kn.prototype.b;Kn.prototype.getRevision=Kn.prototype.K;Kn.prototype.on=Kn.prototype.I;Kn.prototype.once=Kn.prototype.L;Kn.prototype.un=Kn.prototype.J;Kn.prototype.unByKey=Kn.prototype.M;nd.prototype.getFirstCoordinate=nd.prototype.Ib;nd.prototype.getLastCoordinate=nd.prototype.Jb;nd.prototype.getLayout=nd.prototype.Kb;nd.prototype.rotate=nd.prototype.rotate;nd.prototype.getClosestPoint=nd.prototype.wb;
nd.prototype.getExtent=nd.prototype.H;nd.prototype.simplify=nd.prototype.Cb;nd.prototype.transform=nd.prototype.kb;nd.prototype.get=nd.prototype.get;nd.prototype.getKeys=nd.prototype.N;nd.prototype.getProperties=nd.prototype.O;nd.prototype.set=nd.prototype.set;nd.prototype.setProperties=nd.prototype.G;nd.prototype.unset=nd.prototype.R;nd.prototype.changed=nd.prototype.u;nd.prototype.dispatchEvent=nd.prototype.b;nd.prototype.getRevision=nd.prototype.K;nd.prototype.on=nd.prototype.I;
nd.prototype.once=nd.prototype.L;nd.prototype.un=nd.prototype.J;nd.prototype.unByKey=nd.prototype.M;R.prototype.getFirstCoordinate=R.prototype.Ib;R.prototype.getLastCoordinate=R.prototype.Jb;R.prototype.getLayout=R.prototype.Kb;R.prototype.rotate=R.prototype.rotate;R.prototype.getClosestPoint=R.prototype.wb;R.prototype.getExtent=R.prototype.H;R.prototype.simplify=R.prototype.Cb;R.prototype.transform=R.prototype.kb;R.prototype.get=R.prototype.get;R.prototype.getKeys=R.prototype.N;
R.prototype.getProperties=R.prototype.O;R.prototype.set=R.prototype.set;R.prototype.setProperties=R.prototype.G;R.prototype.unset=R.prototype.R;R.prototype.changed=R.prototype.u;R.prototype.dispatchEvent=R.prototype.b;R.prototype.getRevision=R.prototype.K;R.prototype.on=R.prototype.I;R.prototype.once=R.prototype.L;R.prototype.un=R.prototype.J;R.prototype.unByKey=R.prototype.M;S.prototype.getFirstCoordinate=S.prototype.Ib;S.prototype.getLastCoordinate=S.prototype.Jb;S.prototype.getLayout=S.prototype.Kb;
S.prototype.rotate=S.prototype.rotate;S.prototype.getClosestPoint=S.prototype.wb;S.prototype.getExtent=S.prototype.H;S.prototype.simplify=S.prototype.Cb;S.prototype.transform=S.prototype.kb;S.prototype.get=S.prototype.get;S.prototype.getKeys=S.prototype.N;S.prototype.getProperties=S.prototype.O;S.prototype.set=S.prototype.set;S.prototype.setProperties=S.prototype.G;S.prototype.unset=S.prototype.R;S.prototype.changed=S.prototype.u;S.prototype.dispatchEvent=S.prototype.b;S.prototype.getRevision=S.prototype.K;
S.prototype.on=S.prototype.I;S.prototype.once=S.prototype.L;S.prototype.un=S.prototype.J;S.prototype.unByKey=S.prototype.M;T.prototype.getFirstCoordinate=T.prototype.Ib;T.prototype.getLastCoordinate=T.prototype.Jb;T.prototype.getLayout=T.prototype.Kb;T.prototype.rotate=T.prototype.rotate;T.prototype.getClosestPoint=T.prototype.wb;T.prototype.getExtent=T.prototype.H;T.prototype.simplify=T.prototype.Cb;T.prototype.transform=T.prototype.kb;T.prototype.get=T.prototype.get;T.prototype.getKeys=T.prototype.N;
T.prototype.getProperties=T.prototype.O;T.prototype.set=T.prototype.set;T.prototype.setProperties=T.prototype.G;T.prototype.unset=T.prototype.R;T.prototype.changed=T.prototype.u;T.prototype.dispatchEvent=T.prototype.b;T.prototype.getRevision=T.prototype.K;T.prototype.on=T.prototype.I;T.prototype.once=T.prototype.L;T.prototype.un=T.prototype.J;T.prototype.unByKey=T.prototype.M;U.prototype.getFirstCoordinate=U.prototype.Ib;U.prototype.getLastCoordinate=U.prototype.Jb;U.prototype.getLayout=U.prototype.Kb;
U.prototype.rotate=U.prototype.rotate;U.prototype.getClosestPoint=U.prototype.wb;U.prototype.getExtent=U.prototype.H;U.prototype.simplify=U.prototype.Cb;U.prototype.transform=U.prototype.kb;U.prototype.get=U.prototype.get;U.prototype.getKeys=U.prototype.N;U.prototype.getProperties=U.prototype.O;U.prototype.set=U.prototype.set;U.prototype.setProperties=U.prototype.G;U.prototype.unset=U.prototype.R;U.prototype.changed=U.prototype.u;U.prototype.dispatchEvent=U.prototype.b;U.prototype.getRevision=U.prototype.K;
U.prototype.on=U.prototype.I;U.prototype.once=U.prototype.L;U.prototype.un=U.prototype.J;U.prototype.unByKey=U.prototype.M;C.prototype.getFirstCoordinate=C.prototype.Ib;C.prototype.getLastCoordinate=C.prototype.Jb;C.prototype.getLayout=C.prototype.Kb;C.prototype.rotate=C.prototype.rotate;C.prototype.getClosestPoint=C.prototype.wb;C.prototype.getExtent=C.prototype.H;C.prototype.simplify=C.prototype.Cb;C.prototype.transform=C.prototype.kb;C.prototype.get=C.prototype.get;C.prototype.getKeys=C.prototype.N;
C.prototype.getProperties=C.prototype.O;C.prototype.set=C.prototype.set;C.prototype.setProperties=C.prototype.G;C.prototype.unset=C.prototype.R;C.prototype.changed=C.prototype.u;C.prototype.dispatchEvent=C.prototype.b;C.prototype.getRevision=C.prototype.K;C.prototype.on=C.prototype.I;C.prototype.once=C.prototype.L;C.prototype.un=C.prototype.J;C.prototype.unByKey=C.prototype.M;E.prototype.getFirstCoordinate=E.prototype.Ib;E.prototype.getLastCoordinate=E.prototype.Jb;E.prototype.getLayout=E.prototype.Kb;
E.prototype.rotate=E.prototype.rotate;E.prototype.getClosestPoint=E.prototype.wb;E.prototype.getExtent=E.prototype.H;E.prototype.simplify=E.prototype.Cb;E.prototype.transform=E.prototype.kb;E.prototype.get=E.prototype.get;E.prototype.getKeys=E.prototype.N;E.prototype.getProperties=E.prototype.O;E.prototype.set=E.prototype.set;E.prototype.setProperties=E.prototype.G;E.prototype.unset=E.prototype.R;E.prototype.changed=E.prototype.u;E.prototype.dispatchEvent=E.prototype.b;E.prototype.getRevision=E.prototype.K;
E.prototype.on=E.prototype.I;E.prototype.once=E.prototype.L;E.prototype.un=E.prototype.J;E.prototype.unByKey=E.prototype.M;jo.prototype.readFeatures=jo.prototype.Fa;ko.prototype.readFeatures=ko.prototype.Fa;ko.prototype.readFeatures=ko.prototype.Fa;Pe.prototype.get=Pe.prototype.get;Pe.prototype.getKeys=Pe.prototype.N;Pe.prototype.getProperties=Pe.prototype.O;Pe.prototype.set=Pe.prototype.set;Pe.prototype.setProperties=Pe.prototype.G;Pe.prototype.unset=Pe.prototype.R;Pe.prototype.changed=Pe.prototype.u;
Pe.prototype.dispatchEvent=Pe.prototype.b;Pe.prototype.getRevision=Pe.prototype.K;Pe.prototype.on=Pe.prototype.I;Pe.prototype.once=Pe.prototype.L;Pe.prototype.un=Pe.prototype.J;Pe.prototype.unByKey=Pe.prototype.M;xf.prototype.getMap=xf.prototype.i;xf.prototype.setMap=xf.prototype.setMap;xf.prototype.setTarget=xf.prototype.c;xf.prototype.get=xf.prototype.get;xf.prototype.getKeys=xf.prototype.N;xf.prototype.getProperties=xf.prototype.O;xf.prototype.set=xf.prototype.set;xf.prototype.setProperties=xf.prototype.G;
xf.prototype.unset=xf.prototype.R;xf.prototype.changed=xf.prototype.u;xf.prototype.dispatchEvent=xf.prototype.b;xf.prototype.getRevision=xf.prototype.K;xf.prototype.on=xf.prototype.I;xf.prototype.once=xf.prototype.L;xf.prototype.un=xf.prototype.J;xf.prototype.unByKey=xf.prototype.M;Ef.prototype.getMap=Ef.prototype.i;Ef.prototype.setMap=Ef.prototype.setMap;Ef.prototype.setTarget=Ef.prototype.c;Ef.prototype.get=Ef.prototype.get;Ef.prototype.getKeys=Ef.prototype.N;Ef.prototype.getProperties=Ef.prototype.O;
Ef.prototype.set=Ef.prototype.set;Ef.prototype.setProperties=Ef.prototype.G;Ef.prototype.unset=Ef.prototype.R;Ef.prototype.changed=Ef.prototype.u;Ef.prototype.dispatchEvent=Ef.prototype.b;Ef.prototype.getRevision=Ef.prototype.K;Ef.prototype.on=Ef.prototype.I;Ef.prototype.once=Ef.prototype.L;Ef.prototype.un=Ef.prototype.J;Ef.prototype.unByKey=Ef.prototype.M;Jf.prototype.getMap=Jf.prototype.i;Jf.prototype.setMap=Jf.prototype.setMap;Jf.prototype.setTarget=Jf.prototype.c;Jf.prototype.get=Jf.prototype.get;
Jf.prototype.getKeys=Jf.prototype.N;Jf.prototype.getProperties=Jf.prototype.O;Jf.prototype.set=Jf.prototype.set;Jf.prototype.setProperties=Jf.prototype.G;Jf.prototype.unset=Jf.prototype.R;Jf.prototype.changed=Jf.prototype.u;Jf.prototype.dispatchEvent=Jf.prototype.b;Jf.prototype.getRevision=Jf.prototype.K;Jf.prototype.on=Jf.prototype.I;Jf.prototype.once=Jf.prototype.L;Jf.prototype.un=Jf.prototype.J;Jf.prototype.unByKey=Jf.prototype.M;an.prototype.getMap=an.prototype.i;an.prototype.setMap=an.prototype.setMap;
an.prototype.setTarget=an.prototype.c;an.prototype.get=an.prototype.get;an.prototype.getKeys=an.prototype.N;an.prototype.getProperties=an.prototype.O;an.prototype.set=an.prototype.set;an.prototype.setProperties=an.prototype.G;an.prototype.unset=an.prototype.R;an.prototype.changed=an.prototype.u;an.prototype.dispatchEvent=an.prototype.b;an.prototype.getRevision=an.prototype.K;an.prototype.on=an.prototype.I;an.prototype.once=an.prototype.L;an.prototype.un=an.prototype.J;an.prototype.unByKey=an.prototype.M;
Af.prototype.getMap=Af.prototype.i;Af.prototype.setMap=Af.prototype.setMap;Af.prototype.setTarget=Af.prototype.c;Af.prototype.get=Af.prototype.get;Af.prototype.getKeys=Af.prototype.N;Af.prototype.getProperties=Af.prototype.O;Af.prototype.set=Af.prototype.set;Af.prototype.setProperties=Af.prototype.G;Af.prototype.unset=Af.prototype.R;Af.prototype.changed=Af.prototype.u;Af.prototype.dispatchEvent=Af.prototype.b;Af.prototype.getRevision=Af.prototype.K;Af.prototype.on=Af.prototype.I;
Af.prototype.once=Af.prototype.L;Af.prototype.un=Af.prototype.J;Af.prototype.unByKey=Af.prototype.M;fn.prototype.getMap=fn.prototype.i;fn.prototype.setMap=fn.prototype.setMap;fn.prototype.setTarget=fn.prototype.c;fn.prototype.get=fn.prototype.get;fn.prototype.getKeys=fn.prototype.N;fn.prototype.getProperties=fn.prototype.O;fn.prototype.set=fn.prototype.set;fn.prototype.setProperties=fn.prototype.G;fn.prototype.unset=fn.prototype.R;fn.prototype.changed=fn.prototype.u;fn.prototype.dispatchEvent=fn.prototype.b;
fn.prototype.getRevision=fn.prototype.K;fn.prototype.on=fn.prototype.I;fn.prototype.once=fn.prototype.L;fn.prototype.un=fn.prototype.J;fn.prototype.unByKey=fn.prototype.M;Cf.prototype.getMap=Cf.prototype.i;Cf.prototype.setMap=Cf.prototype.setMap;Cf.prototype.setTarget=Cf.prototype.c;Cf.prototype.get=Cf.prototype.get;Cf.prototype.getKeys=Cf.prototype.N;Cf.prototype.getProperties=Cf.prototype.O;Cf.prototype.set=Cf.prototype.set;Cf.prototype.setProperties=Cf.prototype.G;Cf.prototype.unset=Cf.prototype.R;
Cf.prototype.changed=Cf.prototype.u;Cf.prototype.dispatchEvent=Cf.prototype.b;Cf.prototype.getRevision=Cf.prototype.K;Cf.prototype.on=Cf.prototype.I;Cf.prototype.once=Cf.prototype.L;Cf.prototype.un=Cf.prototype.J;Cf.prototype.unByKey=Cf.prototype.M;kn.prototype.getMap=kn.prototype.i;kn.prototype.setMap=kn.prototype.setMap;kn.prototype.setTarget=kn.prototype.c;kn.prototype.get=kn.prototype.get;kn.prototype.getKeys=kn.prototype.N;kn.prototype.getProperties=kn.prototype.O;kn.prototype.set=kn.prototype.set;
kn.prototype.setProperties=kn.prototype.G;kn.prototype.unset=kn.prototype.R;kn.prototype.changed=kn.prototype.u;kn.prototype.dispatchEvent=kn.prototype.b;kn.prototype.getRevision=kn.prototype.K;kn.prototype.on=kn.prototype.I;kn.prototype.once=kn.prototype.L;kn.prototype.un=kn.prototype.J;kn.prototype.unByKey=kn.prototype.M;pn.prototype.getMap=pn.prototype.i;pn.prototype.setMap=pn.prototype.setMap;pn.prototype.setTarget=pn.prototype.c;pn.prototype.get=pn.prototype.get;pn.prototype.getKeys=pn.prototype.N;
pn.prototype.getProperties=pn.prototype.O;pn.prototype.set=pn.prototype.set;pn.prototype.setProperties=pn.prototype.G;pn.prototype.unset=pn.prototype.R;pn.prototype.changed=pn.prototype.u;pn.prototype.dispatchEvent=pn.prototype.b;pn.prototype.getRevision=pn.prototype.K;pn.prototype.on=pn.prototype.I;pn.prototype.once=pn.prototype.L;pn.prototype.un=pn.prototype.J;pn.prototype.unByKey=pn.prototype.M;
return OPENLAYERS.ol;
}));
+16
View File
@@ -161,6 +161,22 @@ var swissCoord = ol.proj.transform([8.23, 46.86], 'EPSG:4326', 'EPSG:21781');
## Why is the order of a coordinate [lon,lat], and not [lat,lon]?
Because of two different and incompatible conventions. Latitude and longitude
are normally given in that order. Maps are 2D representations/projections
of the earth's surface, with coordinates expressed in the `x,y` grid of the
[Cartesian system](https://en.wikipedia.org/wiki/Cartesian_coordinate_system).
As they are by convention drawn with west on the left and north at the top,
this means that `x` represents longitude, and `y` latitude. As stated above,
OpenLayers is designed to handle all projections, but the default view is in
projected Cartesian coordinates. It would make no sense to have duplicate
functions to handle coordinates in both the Cartesian `x,y` and `lat,lon`
systems, so the degrees of latitude and longitude should be entered as though
they were Cartesian, in other words, they are `lon,lat`.
If you have difficulty remembering which way round it is, use the language code
for English, `en`, as a mnemonic: East before North.
#### A practical example
So you want to center your map on a certain place on the earth and obviously you
need to have its coordinates for this. Let's assume you want your map centered
on Schladming, a beautiful place in Austria. Head over to the wikipedia
+4 -4
View File
@@ -31,7 +31,7 @@ Below you'll find a complete working example. Create a new file, copy in the co
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
})
],
view: new ol.View({
@@ -85,7 +85,7 @@ The map in the application is contained in a [`<div>` HTML element](http://en.wi
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
})
],
view: new ol.View({
@@ -95,7 +95,7 @@ The map in the application is contained in a [`<div>` HTML element](http://en.wi
});
```
With this JavaScript code, a map object is created with a MapQuest Open Aerial layer zoomed on the African East coast. Let's break this down:
With this JavaScript code, a map object is created with an OSM layer zoomed on the African East coast. Let's break this down:
The following line creates an OpenLayers `Map` object. Just by itself, this does nothing since there's no layers or interaction attached to it.
@@ -114,7 +114,7 @@ The `layers: [ ... ]` array is used to define the list of layers available in th
```js
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
})
]
```
+8 -42
View File
@@ -160,16 +160,15 @@ The minimum config file looks like this:
"closure_entry_point": "app",
"externs": [
"node_modules/openlayers/externs/bingmaps.js",
"node_modules/openlayers/externs/cartodb.js",
"node_modules/openlayers/externs/closure-compiler.js",
"node_modules/openlayers/externs/esrijson.js",
"node_modules/openlayers/externs/geojson.js",
"node_modules/openlayers/externs/proj4js.js",
"node_modules/openlayers/externs/tilejson.js",
"node_modules/openlayers/externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false",
"ol.ENABLE_DOM=false",
"ol.ENABLE_WEBGL=false"
@@ -178,9 +177,6 @@ The minimum config file looks like this:
"node_modules/openlayers/externs/olx.js",
"node_modules/openlayers/externs/oli.js"
],
"jscomp_off": [
"unknownDefines"
],
"extra_annotation_name": [
"api", "observable"
],
@@ -216,16 +212,15 @@ Here is a version of `config.json` with more compilation checks enabled:
"closure_entry_point": "app",
"externs": [
"node_modules/openlayers/externs/bingmaps.js",
"node_modules/openlayers/externs/cartodb.js",
"node_modules/openlayers/externs/closure-compiler.js",
"node_modules/openlayers/externs/esrijson.js",
"node_modules/openlayers/externs/geojson.js",
"node_modules/openlayers/externs/proj4js.js",
"node_modules/openlayers/externs/tilejson.js",
"node_modules/openlayers/externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false",
"ol.ENABLE_DOM=false",
"ol.ENABLE_WEBGL=false"
@@ -235,41 +230,12 @@ Here is a version of `config.json` with more compilation checks enabled:
"node_modules/openlayers/externs/oli.js"
],
"jscomp_error": [
"accessControls",
"ambiguousFunctionDecl",
"checkEventfulObjectDisposal",
"checkRegExp",
"checkTypes",
"checkVars",
"const",
"constantProperty",
"deprecated",
"duplicateMessage",
"es3",
"es5Strict",
"externsValidation",
"fileoverviewTags",
"globalThis",
"internetExplorerChecks",
"invalidCasts",
"misplacedTypeAnnotation",
"missingGetCssName",
"missingProperties",
"missingProvide",
"missingRequire",
"missingReturn",
"newCheckTypes",
"nonStandardJsDocs",
"suspiciousCode",
"strictModuleDepCheck",
"typeInvalidation",
"undefinedNames",
"undefinedVars",
"uselessCode",
"visibility"
"*"
],
"jscomp_off": [
"unknownDefines"
"unknownDefines",
"lintChecks",
"analyzerChecks"
],
"extra_annotation_name": [
"api", "observable"
+13 -13
View File
@@ -13,7 +13,7 @@ This particular tutorial explains how to create custom builds of OpenLayers 3.
## Requirements
OpenLayers 3's build tools use Node and Java, so you need to have Node and Java installed on your machine. You can run `node --version` and `java -version` to test that Node and Java are installed, respectively.
OpenLayers 3's build tools use Node and Java, so you need to have Node and Java installed on your machine. You can run `node --version` and `java -version` to test that Node and Java are installed, respectively. See [developing guide](https://github.com/openlayers/ol3/blob/master/DEVELOPING.md) for minimum version numbers required.
## Download OpenLayers
@@ -60,18 +60,12 @@ Creating a custom build requires writing a build configuration file. The format
"externs/topojson.js"
],
"define": [
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.json.USE_NATIVE_JSON=true",
"goog.DEBUG=false"
],
"jscomp_off": [
"unknownDefines"
],
"extra_annotation_name": [
"api", "observable"
],
"compilation_level": "ADVANCED_OPTIMIZATIONS",
"compilation_level": "ADVANCED",
"manage_closure_dependencies": true
}
}
@@ -193,16 +187,19 @@ Now let's try a more complicated example: [`heatmaps-earthquakes`](http://openla
{
"exports": [
"ol.layer.Heatmap",
"ol.source.KML",
"ol.source.Vector",
"ol.format.KML",
"ol.layer.Heatmap#getSource",
"ol.source.KML#on",
"ol.source.Vector#on",
"ol.source.VectorEvent#feature",
"ol.Feature#get",
"ol.Feature#set",
"ol.layer.Tile",
"ol.source.Stamen",
"ol.Map",
"ol.View"
"ol.View",
"ol.layer.Heatmap#setRadius",
"ol.layer.Heatmap#setBlur"
],
"compile": {
"externs": [
@@ -214,10 +211,9 @@ Now let's try a more complicated example: [`heatmaps-earthquakes`](http://openla
"ol.ENABLE_WEBGL=false",
"ol.ENABLE_PROJ4JS=false",
"ol.ENABLE_IMAGE=false",
"goog.dom.ASSUME_STANDARDS_MODE=true",
"goog.DEBUG=false"
],
"compilation_level": "ADVANCED_OPTIMIZATIONS",
"compilation_level": "ADVANCED",
"manage_closure_dependencies": true
}
}
@@ -227,6 +223,10 @@ The exports are given here in the order in which they occur in the `heatmaps-ear
As this example uses a vector layer it is necessary to remove `"ol.ENABLE_VECTOR=false"` in the `define` section of the configuration.
## Maintaining the code
If you installed OpenLayers from the Node package, you can use `npm` to upgrade to the latest version. If you cloned the Github repo, simply pulling in the latest code may not be enough, as some of the packages used, for example, the compiler, may need upgrading too. Do this by using `npm install` rather than `npm update`.
## Conclusion
This tutorial should have given you the information you need to create custom builds, i.e. builds tailored to your application. See the [tasks readme](https://github.com/openlayers/ol3/tree/master/tasks/readme.md) for more information on the build scripts and the properties you can use in the build configuration file.
+1 -1
View File
@@ -24,7 +24,7 @@ Although Closure library functions are widely used within OL3, none of them are
Unlike in, say, Node, where a module's exports are fixed in the source, with Closure Compiler, exports can be defined at compile time. This makes it easy to create builds that are customized to the needs of a particular site or application: a __custom build__ only exports those properties and methods needed by the site or application. As the full build is large, and will probably become larger as new features are added to the API, it's recommended that sites create a custom build for production software.
## Renderers and Browser Support
The library currently includes three renderers: Canvas, DOM, and WebGL. All three support raster data from tile/image servers, but only the Canvas renderer currently supports vector data. This means that only those browsers that [support Canvas](http://caniuse.com/canvas) can handle vector data. In particular, this excludes Internet Explorer versions before 9, though there is some support for those in the DOM renderer. Clearly, the WebGL renderer can only be used on those devices and browsers supporting WebGL.
The library currently includes three renderers: Canvas, DOM, and WebGL. All three support both raster data from tile/image servers, and vector data; WebGL however only supports Point vectors and does not support labels. Clearly only those browsers that [support Canvas](http://caniuse.com/canvas) can use the Canvas renderer. Equally, the WebGL renderer can only be used on those devices and [browsers](http://caniuse.com/webgl) that support WebGL. Internet Explorer versions before 9 are not supported at all.
The library is intended for use on both desktop/laptop and mobile devices.
+1 -1
View File
@@ -45,7 +45,7 @@ The easiest way to use a custom projection is to add the [Proj4js](http://proj4j
Following example shows definition of a [British National Grid](http://epsg.io/27700):
``` html
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.12/proj4.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.14/proj4.js"></script>
```
``` javascript
-1
View File
@@ -1,6 +1,5 @@
{
"globals": {
"FastClick": false,
"$": false,
"arc": false,
"common": false,
+11
View File
@@ -0,0 +1,11 @@
---
layout: example.html
title: Image ArcGIS MapServer
shortdesc: Example of an image ArcGIS layer.
docs: >
This example shows how to use a dynamic ArcGIS REST MapService.
This source type supports Map and Image Services. For dyamic ArcGIS
services.
tags: arcgis, image, dynamiclayer"
---
<div id="map" class="map"></div>
+30
View File
@@ -0,0 +1,30 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Image');
goog.require('ol.source.OSM');
goog.require('ol.source.ImageArcGISRest');
var url = 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
'Specialty/ESRI_StateCityHighway_USA/MapServer';
var layers = [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Image({
source: new ol.source.ImageArcGISRest({
ratio: 1,
params: {},
url: url
})
})
];
var map = new ol.Map({
layers: layers,
target: 'map',
view: new ol.View({
center: [-10997148, 4569099],
zoom: 4
})
});
+2 -2
View File
@@ -1,7 +1,7 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.source.TileArcGISRest');
var url = 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
@@ -9,7 +9,7 @@ var url = 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
var layers = [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
}),
new ol.layer.Tile({
extent: [-13884991, 2870341, -7455066, 6338219],
+1 -1
View File
@@ -6,7 +6,7 @@ docs: >
<p>When the Bing Maps tile service doesn't have tiles for a given resolution and region it returns "placeholder" tiles indicating that. Zoom the map beyond level 19 to see the "placeholder" tiles. If you want OpenLayers to display stretched tiles in place of "placeholder" tiles beyond zoom level 19 then set <code>maxZoom</code> to <code>19</code> in the options passed to <code>ol.source.BingMaps</code>.</p>
tags: "bing, bing-maps"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<select id="layer-select">
+3 -3
View File
@@ -6,8 +6,8 @@ docs: >
This example shows how to customize the buttons tooltips with <a href="http://getbootstrap.com/javascript/#tooltips">Bootstrap</a>.
tags: "custom, tooltip"
resources:
- https://code.jquery.com/jquery-1.11.2.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
- https://code.jquery.com/jquery-2.2.3.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
---
<div id="map" class="map"></div>
+26
View File
@@ -0,0 +1,26 @@
---
layout: example.html
title: CartoDB source example
shortdesc: Example of a cartodb map.
docs: >
A simple example with an anonymous cartodb map
tags: "simple, openstreetmap, attribution"
---
<div class="row-fluid">
<div class="span12">
<div id="map" class="map"></div>
<div>
<form class="form-horizontal">
<label>
Show countries larger than
<select id="country-area" class="form-control">
<option value="0" default>0 ㎢</option>
<option value="5000">5000 ㎢</option>
<option value="10000">10000 ㎢</option>
<option value="50000">50000 ㎢</option>
<option value="100000">100000 ㎢</option>
</select>
</label>
</form>
</div>
</div>
+48
View File
@@ -0,0 +1,48 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.CartoDB');
goog.require('ol.source.OSM');
var mapConfig = {
'layers': [{
'type': 'cartodb',
'options': {
'cartocss_version': '2.1.1',
'cartocss': '#layer { polygon-fill: #F00; }',
'sql': 'select * from european_countries_e where area > 0'
}
}]
};
var cartoDBSource = new ol.source.CartoDB({
account: 'documentation',
config: mapConfig
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Tile({
source: cartoDBSource
})
],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
function setArea(n) {
mapConfig.layers[0].options.sql =
'select * from european_countries_e where area > ' + n;
cartoDBSource.setConfig(mapConfig);
}
document.getElementById('country-area').addEventListener('change', function() {
setArea(this.value);
});
+2 -2
View File
@@ -5,7 +5,7 @@ goog.require('ol.geom.Point');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.Cluster');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
@@ -62,7 +62,7 @@ var clusters = new ol.layer.Vector({
});
var raster = new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
});
var map = new ol.Map({
+4 -4
View File
@@ -22,8 +22,8 @@ var twoPi = 2 * Math.PI;
/**
* Convert an RGB pixel into an HCL pixel.
* @param {ol.raster.Pixel} pixel A pixel in RGB space.
* @return {ol.raster.Pixel} A pixel in HCL space.
* @param {Array.<number>} pixel A pixel in RGB space.
* @return {Array.<number>} A pixel in HCL space.
*/
function rgb2hcl(pixel) {
var red = rgb2xyz(pixel[0]);
@@ -57,8 +57,8 @@ function rgb2hcl(pixel) {
/**
* Convert an HCL pixel into an RGB pixel.
* @param {ol.raster.Pixel} pixel A pixel in HCL space.
* @return {ol.raster.Pixel} A pixel in RGB space.
* @param {Array.<number>} pixel A pixel in HCL space.
* @return {Array.<number>} A pixel in RGB space.
*/
function hcl2rgb(pixel) {
var h = pixel[0];
+9
View File
@@ -0,0 +1,9 @@
---
layout: example.html
title: Custom Icon
shortdesc: Example using a custom attribution icon object
docs: >
This example creates a custom element for the attribution icon
tags: "icon, element"
---
<div id="map" class="map"><div id="popup"></div></div>
+27
View File
@@ -0,0 +1,27 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var logoElement = document.createElement('a');
logoElement.href = 'http://www.osgeo.org/';
logoElement.target = '_blank';
var logoImage = document.createElement('img');
logoImage.src = 'http://www.osgeo.org/sites/all/themes/osgeo/logo.png';
logoElement.appendChild(logoImage);
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
}),
logo: logoElement
});
File diff suppressed because one or more lines are too long
-43
View File
@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
<sld:NamedLayer>
<sld:Name>countries</sld:Name>
<sld:UserStyle>
<sld:Name>countries</sld:Name>
<sld:Title>A sample style for countries</sld:Title>
<sld:IsDefault>1</sld:IsDefault>
<sld:Abstract>A sample style for countries</sld:Abstract>
<sld:FeatureTypeStyle>
<sld:Name>name</sld:Name>
<sld:Rule>
<sld:Name>Sample</sld:Name>
<sld:Title>Sample</sld:Title>
<sld:PolygonSymbolizer>
<sld:Fill>
<sld:CssParameter name="fill">#ff0000</sld:CssParameter>
<sld:CssParameter name="fill-opacity">0.6</sld:CssParameter>
</sld:Fill>
<sld:Stroke>
<sld:CssParameter name="stroke">#00FF00</sld:CssParameter>
<sld:CssParameter name="stroke-opacity">0.5</sld:CssParameter>
<sld:CssParameter name="stroke-width">4</sld:CssParameter>
</sld:Stroke>
</sld:PolygonSymbolizer>
</sld:Rule>
<sld:Rule>
<sld:MaxScaleDenominator>20000000</sld:MaxScaleDenominator>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>name</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">10</sld:CssParameter>
<sld:CssParameter name="font-style">Normal</sld:CssParameter>
</sld:Font>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>
@@ -0,0 +1,283 @@
<?xml version="1.0" encoding="UTF-8"?>
<msGMLOutput
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<restaurant_layer>
<gml:name>Restaurants</gml:name>
<restaurant_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537750.006175,150923.784252 537750.006175,150923.784252</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537750.006175,150923.784252</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Château d&#39;Ouchy</display_name>
<name>Château d&#39;Ouchy</name>
<osm_id>1230808910</osm_id>
<access></access>
<aerialway></aerialway>
<amenity>restaurant</amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism></tourism>
<waterway></waterway>
<wood></wood>
</restaurant_feature>
<restaurant_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537770.247124,150975.613968 537770.247124,150975.613968</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537770.247124,150975.613968</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Cafe du Vieil Ouchy</display_name>
<name>Cafe du Vieil Ouchy</name>
<osm_id>1433812389</osm_id>
<access></access>
<aerialway></aerialway>
<amenity>restaurant</amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator>Carine Duca</operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism></tourism>
<waterway></waterway>
<wood></wood>
</restaurant_feature>
<restaurant_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537789.197617,150976.218227 537789.197617,150976.218227</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537789.197617,150976.218227</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Creperie</display_name>
<name>Creperie</name>
<osm_id>1433812391</osm_id>
<access></access>
<aerialway></aerialway>
<amenity>restaurant</amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism></tourism>
<waterway></waterway>
<wood></wood>
</restaurant_feature>
<restaurant_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537810.679909,150983.377694 537810.679909,150983.377694</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537810.679909,150983.377694</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>1433812390</display_name>
<name></name>
<osm_id>1433812390</osm_id>
<access></access>
<aerialway></aerialway>
<amenity>restaurant</amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism></tourism>
<waterway></waterway>
<wood></wood>
</restaurant_feature>
</restaurant_layer>
<hotel_layer>
<gml:name>Hôtels</gml:name>
<hotel_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537762.425297,150971.904013 537762.425297,150971.904013</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537762.425297,150971.904013</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Hotel du port</display_name>
<name>Hotel du port</name>
<osm_id>2886793101</osm_id>
<access></access>
<aerialway></aerialway>
<amenity></amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism>hotel</tourism>
<waterway></waterway>
<wood></wood>
</hotel_feature>
<hotel_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:21781">
<gml:coordinates>537798.352160,150985.584164 537798.352160,150985.584164</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<THE_GEOM>
<gml:Point srsName="EPSG:21781">
<gml:coordinates>537798.352160,150985.584164</gml:coordinates>
</gml:Point>
</THE_GEOM>
<display_name>Angleterre</display_name>
<name>Angleterre</name>
<osm_id>1433812387</osm_id>
<access></access>
<aerialway></aerialway>
<amenity></amenity>
<barrier></barrier>
<bicycle></bicycle>
<brand></brand>
<building></building>
<covered></covered>
<denomination></denomination>
<ele></ele>
<foot></foot>
<highway></highway>
<layer></layer>
<leisure></leisure>
<man_made></man_made>
<motorcar></motorcar>
<natural></natural>
<operator></operator>
<population></population>
<power></power>
<place></place>
<railway></railway>
<ref></ref>
<religion></religion>
<shop></shop>
<sport></sport>
<surface></surface>
<tourism>hotel</tourism>
<waterway></waterway>
<wood></wood>
</hotel_feature>
</hotel_layer>
</msGMLOutput>
+1 -1
View File
@@ -6,7 +6,7 @@ docs: >
Example of using the drag-and-drop interaction with a ol.source.ImageVector. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. Each file is rendered to an image on the client.
tags: "drag-and-drop-image-vector, gpx, geojson, igc, kml, topojson, vector, image"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>
+1 -1
View File
@@ -6,7 +6,7 @@ docs: >
Example of using the drag-and-drop interaction. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. There is no projection transform support, so this will only work with data in EPSG:4326 and EPSG:3857.
tags: "drag-and-drop, gpx, geojson, igc, kml, topojson"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>
+2 -2
View File
@@ -3,7 +3,7 @@ goog.require('ol.View');
goog.require('ol.interaction');
goog.require('ol.interaction.DragRotateAndZoom');
goog.require('ol.layer.Tile');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
var map = new ol.Map({
@@ -12,7 +12,7 @@ var map = new ol.Map({
]),
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
})
],
renderer: common.getRendererFromQueryString(),
+2 -2
View File
@@ -6,7 +6,7 @@ goog.require('ol.interaction.Draw');
goog.require('ol.interaction.Modify');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
@@ -14,7 +14,7 @@ goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var raster = new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
});
var map = new ol.Map({
+2 -2
View File
@@ -4,7 +4,7 @@ goog.require('ol.geom.Polygon');
goog.require('ol.interaction.Draw');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
@@ -12,7 +12,7 @@ goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var raster = new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
});
var source = new ol.source.Vector({wrapX: false});
+22 -18
View File
@@ -4,7 +4,7 @@ goog.require('ol.View');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.Point');
goog.require('ol.layer.Tile');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
@@ -14,7 +14,7 @@ goog.require('ol.style.Style');
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
})
],
renderer: common.getRendererFromQueryString(),
@@ -25,11 +25,13 @@ var map = new ol.Map({
})
});
var imageStyle = new ol.style.Circle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'yellow'}),
stroke: new ol.style.Stroke({color: 'red', width: 1})
var imageStyle = new ol.style.Style({
image: new ol.style.Circle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'yellow'}),
stroke: new ol.style.Stroke({color: 'red', width: 1})
})
});
var headInnerImageStyle = new ol.style.Style({
@@ -40,10 +42,12 @@ var headInnerImageStyle = new ol.style.Style({
})
});
var headOuterImageStyle = new ol.style.Circle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'black'})
var headOuterImageStyle = new ol.style.Style({
image: new ol.style.Circle({
radius: 5,
snapToPixel: false,
fill: new ol.style.Fill({color: 'black'})
})
});
var n = 200;
@@ -63,16 +67,16 @@ map.on('postcompose', function(event) {
var y = (R + r) * Math.sin(t) + p * Math.sin((R + r) * t / r);
coordinates.push([x, y]);
}
vectorContext.setImageStyle(imageStyle);
vectorContext.drawMultiPointGeometry(
new ol.geom.MultiPoint(coordinates), null);
vectorContext.setStyle(imageStyle);
vectorContext.drawGeometry(new ol.geom.MultiPoint(coordinates));
var headPoint = new ol.geom.Point(coordinates[coordinates.length - 1]);
var headFeature = new ol.Feature(headPoint);
vectorContext.drawFeature(headFeature, headInnerImageStyle);
vectorContext.setImageStyle(headOuterImageStyle);
vectorContext.drawMultiPointGeometry(headPoint, null);
vectorContext.setStyle(headOuterImageStyle);
vectorContext.drawGeometry(headPoint);
vectorContext.setStyle(headInnerImageStyle);
vectorContext.drawGeometry(headPoint);
map.render();
});
-1
View File
@@ -9,7 +9,6 @@
}
.tooltip.in {
opacity: 1;
filter: alpha(opacity=100);
}
.tooltip.top .tooltip-arrow {
border-top-color: white;
+15 -8
View File
@@ -13,6 +13,12 @@ goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var symbol = [[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]];
var scale;
var scaleFunction = function(coordinate) {
return [coordinate[0] * scale, coordinate[1] * scale];
};
var styleCache = {};
var styleFunction = function(feature) {
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
@@ -21,22 +27,23 @@ var styleFunction = function(feature) {
var name = feature.get('name');
var magnitude = parseFloat(name.substr(2));
var size = parseInt(10 + 40 * (magnitude - 5), 10);
scale = size / 10;
var style = styleCache[size];
if (!style) {
var canvas =
/** @type {HTMLCanvasElement} */ (document.createElement('canvas'));
var render = ol.render.toContext(
var vectorContext = ol.render.toContext(
/** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d')),
{size: [size + 2, size + 2], pixelRatio: size / 10});
render.setFillStrokeStyle(
new ol.style.Fill({color: 'rgba(255, 153, 0, 0.4)'}),
new ol.style.Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 1}));
render.drawPolygonGeometry(new ol.geom.Polygon(
[[[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]]]));
{size: [size, size], pixelRatio: 1});
vectorContext.setStyle(new ol.style.Style({
fill: new ol.style.Fill({color: 'rgba(255, 153, 0, 0.4)'}),
stroke: new ol.style.Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 2})
}));
vectorContext.drawGeometry(new ol.geom.Polygon([symbol.map(scaleFunction)]));
style = new ol.style.Style({
image: new ol.style.Icon({
img: canvas,
imgSize: [canvas.width, canvas.height],
imgSize: [size, size],
rotation: 1.2
})
});
+1 -1
View File
@@ -6,7 +6,7 @@ docs: >
Example of exporting a map as a PDF using the <a href="https://github.com/MrRio/jsPDF" target="_blank">jsPDF</a> library.
tags: "export, pdf, openstreetmap"
resources:
- http://mrrio.github.io/jsPDF/dist/jspdf.min.js
- https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js
---
<div class="row-fluid">
<div class="span12">
+1
View File
@@ -1,3 +1,4 @@
// NOCOMPILE
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
+11 -8
View File
@@ -12,6 +12,7 @@ goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Circle');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var map = new ol.Map({
@@ -67,17 +68,19 @@ function flash(feature) {
var radius = ol.easing.easeOut(elapsedRatio) * 25 + 5;
var opacity = ol.easing.easeOut(1 - elapsedRatio);
var flashStyle = new ol.style.Circle({
radius: radius,
snapToPixel: false,
stroke: new ol.style.Stroke({
color: 'rgba(255, 0, 0, ' + opacity + ')',
width: 1
var style = new ol.style.Style({
image: new ol.style.Circle({
radius: radius,
snapToPixel: false,
stroke: new ol.style.Stroke({
color: 'rgba(255, 0, 0, ' + opacity + ')',
width: 0.25 + opacity
})
})
});
vectorContext.setImageStyle(flashStyle);
vectorContext.drawPointGeometry(flashGeom, null);
vectorContext.setStyle(style);
vectorContext.drawGeometry(flashGeom);
if (elapsed > duration) {
ol.Observable.unByKey(listenerKey);
return;
+12 -16
View File
@@ -27,12 +27,11 @@ var map = new ol.Map({
})
});
var defaultStroke = new ol.style.Stroke({
color: '#EAE911',
width: 2
});
var defaultStyle = new ol.style.Style({
stroke: defaultStroke
var style = new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#EAE911',
width: 2
})
});
var flightsSource;
@@ -47,14 +46,13 @@ var pointsPerMs = 0.1;
var animateFlights = function(event) {
var vectorContext = event.vectorContext;
var frameState = event.frameState;
vectorContext.setFillStrokeStyle(null, defaultStroke);
vectorContext.setStyle(style);
var features = flightsSource.getFeatures();
for (var i = 0; i < features.length; i++) {
var feature = features[i];
if (!feature.get('finished')) {
// only draw the lines for which the animation has not
// finished yet
// only draw the lines for which the animation has not finished yet
var coords = feature.getGeometry().getCoordinates();
var elapsedTime = frameState.time - feature.get('start');
var elapsedPoints = elapsedTime * pointsPerMs;
@@ -67,19 +65,17 @@ var animateFlights = function(event) {
var currentLine = new ol.geom.LineString(coords.slice(0, maxIndex));
// directly draw the line with the vector context
vectorContext.drawLineStringGeometry(currentLine, feature);
vectorContext.drawGeometry(currentLine);
}
}
// tell OL3 to continue the postcompose animation
// tell OL3 to continue the animation
map.render();
};
flightsSource = new ol.source.Vector({
wrapX: false,
attributions: [new ol.Attribution({
html: 'Flight data by ' +
'<a href="http://openflights.org/data.html">OpenFlights</a>,'
})],
attributions: 'Flight data by ' +
'<a href="http://openflights.org/data.html">OpenFlights</a>,',
loader: function() {
var url = 'data/openflights/flights.json';
fetch(url).then(function(response) {
@@ -121,7 +117,7 @@ var flightsLayer = new ol.layer.Vector({
// if the animation is still active for a feature, do not
// render the feature with the layer style
if (feature.get('finished')) {
return defaultStyle;
return style;
} else {
return null;
}
+1 -1
View File
@@ -33,7 +33,7 @@ var map = new ol.Map({
});
function makeFractal(depth) {
var geometry = /** @type {ol.geom.LineString} */ (triangle.clone());
var geometry = triangle.clone();
var graph = coordsToGraph(geometry.getCoordinates());
for (var i = 0; i < depth; ++i) {
var node = graph;
@@ -7,6 +7,6 @@ docs: >
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
tags: "full-screen, drag, rotate, zoom, bing, bing-maps"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
+44
View File
@@ -0,0 +1,44 @@
.fullscreen:-moz-full-screen {
height: 100%;
}
.fullscreen:-webkit-full-screen {
height: 100%;
}
.fullscreen:-ms-fullscreen {
height: 100%;
}
.fullscreen:fullscreen {
height: 100%;
}
.fullscreen {
margin-bottom: 10px;
width: 100%;
height: 400px;
}
.ol-rotate {
top: 3em;
}
.map {
width: 80%;
height: 100%;
float: left;
}
.sidepanel {
background: #1F6B75;
width: 20%;
height: 100%;
float: left;
}
.sidepanel-title {
width: 100%;
font-size: 3em;
color: #ffffff;
display: block;
text-align: center;
}
+16
View File
@@ -0,0 +1,16 @@
---
layout: example.html
title: Full Screen Control with extended source element
shortdesc: Example of a full screen control with a source option definition.
docs: >
<p>Click the control in the top right corner to go full screen. Click it again to exit full screen.</p>
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
tags: "full-screen, source, fullScreenSource, osm, osm-maps"
---
<div id="fullscreen" class="fullscreen">
<div id="map" class="map"></div>
<div class="sidepanel">
<span class="sidepanel-title">Side Panel</span>
</div>
</div>
+28
View File
@@ -0,0 +1,28 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.control');
goog.require('ol.control.FullScreen');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var view = new ol.View({
center: [-9101767, 2822912],
zoom: 14
});
var map = new ol.Map({
controls: ol.control.defaults().extend([
new ol.control.FullScreen({
source: 'fullscreen'
})
]),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
renderer: common.getRendererFromQueryString(),
target: 'map',
view: view
});
+1 -1
View File
@@ -7,6 +7,6 @@ docs: >
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
tags: "full-screen, bing, bing-maps"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
+2 -3
View File
@@ -10,10 +10,9 @@ tags: "fullscreen, geolocation, orientation, mobile"
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="./resources/layout.css" type="text/css">
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Function.prototype.bind|gated"></script>
<title>Mobile Geolocation Tracking with Orientation</title>
<style type="text/css">
html, body, .map {
@@ -45,7 +44,7 @@ tags: "fullscreen, geolocation, orientation, mobile"
<button id="geolocate">Geolocate Me!</button>
<button id="simulate">Simulate</button>
</div>
<script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-2.2.3.min.js" type="text/javascript"></script>
<script src="./resources/common.js" type="text/javascript"></script>
<script src="loader.js?id=geolocation-orientation" type="text/javascript"></script>
</body>
+26
View File
@@ -0,0 +1,26 @@
---
layout: example.html
title: WMS GetFeatureInfo (Layers)
shortdesc: >
Shows how to fetch features per layer name in a single WMS GetFeatureInfo
request
docs: >
Demonstrates the use of the `layers` option in the
`ol.format.WMSGetFeatureInfo` format object, which allows features returned
by a single WMS GetFeatureInfo request that asks for more than one layer
to be read by layer name.
---
<table id="info">
<tr>
<td>All features:</td>
<td id="all"></td>
</tr>
<tr>
<td>Hotel features:</td>
<td id="hotel"></td>
</tr>
<tr>
<td>Restaurant features:</td>
<td id="restaurant"></td>
</tr>
</table>
+23
View File
@@ -0,0 +1,23 @@
goog.require('ol.format.WMSGetFeatureInfo');
fetch('data/wmsgetfeatureinfo/osm-restaurant-hotel.xml').then(function(response) {
return response.text();
}).then(function(response) {
// this is the standard way to read the features
var allFeatures = new ol.format.WMSGetFeatureInfo().readFeatures(response);
document.getElementById('all').innerText = allFeatures.length.toString();
// when specifying the 'layers' options, only the features of those
// layers are returned by the format
var hotelFeatures = new ol.format.WMSGetFeatureInfo({
layers: ['hotel']
}).readFeatures(response);
document.getElementById('hotel').innerText = hotelFeatures.length.toString();
var restaurantFeatures = new ol.format.WMSGetFeatureInfo({
layers: ['restaurant']
}).readFeatures(response);
document.getElementById('restaurant').innerText = restaurantFeatures.length.toString();
});
+1 -1
View File
@@ -6,7 +6,7 @@ docs: >
Example of using the GPX source.
tags: "GPX"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>
+3 -3
View File
@@ -6,8 +6,8 @@ docs: >
Example using an icon to symbolize a point.
tags: "vector, style, icon, marker, popup"
resources:
- https://code.jquery.com/jquery-1.11.2.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
- https://code.jquery.com/jquery-2.2.3.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
---
<div id="map" class="map"><div id="popup"></div></div>
+4 -2
View File
@@ -59,7 +59,8 @@ var element = document.getElementById('popup');
var popup = new ol.Overlay({
element: element,
positioning: 'bottom-center',
stopEvent: false
stopEvent: false,
offset: [0, -50]
});
map.addOverlay(popup);
@@ -70,7 +71,8 @@ map.on('click', function(evt) {
return feature;
});
if (feature) {
popup.setPosition(evt.coordinate);
var coordinates = feature.getGeometry().getCoordinates();
popup.setPosition(coordinates);
$(element).popover({
'placement': 'top',
'html': true,
+14 -19
View File
@@ -86,10 +86,7 @@ var map = new ol.Map({
new ol.layer.Tile({
source: new ol.source.OSM({
attributions: [
new ol.Attribution({
html: 'All maps &copy; ' +
'<a href="http://www.opencyclemap.org/">OpenCycleMap</a>'
}),
'All maps © <a href="http://www.opencyclemap.org/">OpenCycleMap</a>',
ol.source.OSM.ATTRIBUTION
],
url: 'http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png'
@@ -155,27 +152,26 @@ map.on('click', function(evt) {
displaySnap(evt.coordinate);
});
var imageStyle = new ol.style.Circle({
radius: 5,
fill: null,
stroke: new ol.style.Stroke({
color: 'rgba(255,0,0,0.9)',
width: 1
})
});
var strokeStyle = new ol.style.Stroke({
var stroke = new ol.style.Stroke({
color: 'rgba(255,0,0,0.9)',
width: 1
});
var style = new ol.style.Style({
stroke: stroke,
image: new ol.style.Circle({
radius: 5,
fill: null,
stroke: stroke
})
});
map.on('postcompose', function(evt) {
var vectorContext = evt.vectorContext;
vectorContext.setStyle(style);
if (point !== null) {
vectorContext.setImageStyle(imageStyle);
vectorContext.drawPointGeometry(point);
vectorContext.drawGeometry(point);
}
if (line !== null) {
vectorContext.setFillStrokeStyle(null, strokeStyle);
vectorContext.drawLineStringGeometry(line);
vectorContext.drawGeometry(line);
}
});
@@ -187,8 +183,7 @@ var featureOverlay = new ol.layer.Vector({
radius: 5,
fill: new ol.style.Fill({
color: 'rgba(255,0,0,0.9)'
}),
stroke: null
})
})
})
});
+1 -1
View File
@@ -8,7 +8,7 @@ docs: >
In this example, the <code>postcompose</code> listener applies a filter to the image data.</p>
tags: "filter, image manipulation"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<select id="kernel" name="kernel">
+2 -2
View File
@@ -5,7 +5,7 @@ goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.ImageVector');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
@@ -15,7 +15,7 @@ goog.require('ol.style.Style');
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
}),
new ol.layer.Image({
source: new ol.source.ImageVector({
+17 -9
View File
@@ -4,16 +4,13 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<link rel="stylesheet" href="./resources/layout.css" type="text/css">
<style>
body {
padding-top: 70px;
}
.navbar-form {
margin-top: 12px;
}
input.search-query {
color: #333;
}
@@ -186,11 +183,22 @@
<header class="navbar navbar-fixed-top" role="navigation">
<div class="container">
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png">&nbsp;OpenLayers 3 Examples</a>
<form class="navbar-form navbar-left" role="search">
<input name="q" type="text" id="keywords" class="search-query" placeholder="Search" autofocus>
<span id="count"></span>
</form>
<div class="display-table pull-left">
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png">&nbsp;OpenLayers 3 Examples</a>
<form class="navbar-form" role="search">
<input name="q" type="text" id="keywords" class="search-query" placeholder="Search" autofocus>
<span id="count"></span>
</form>
</div>
<!-- menu items that get hidden below 768px width -->
<nav class='collapse navbar-collapse navbar-responsive-collapse'>
<ul class="nav navbar-nav pull-right">
<li><a href="../doc">Docs</a></li>
<li><a class="active" href="index.html">Examples</a></li>
<li><a href="../apidoc">API</a></li>
<li><a href="https://github.com/openlayers/ol3">Code</a></li>
</ul>
</nav>
</div>
</header>
+1 -2
View File
@@ -7,7 +7,6 @@ docs: >
with OpenLayers 3.
tags: "vector, jsts, buffer"
resources:
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/lib/0.17.0/javascript.util.min.js
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/lib/0.17.0/jsts.min.js
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/1.2.0/jsts.min.js
---
<div id="map" class="map"></div>
+3 -5
View File
@@ -7,7 +7,7 @@ goog.require('ol.format.GeoJSON');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.proj');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
@@ -18,7 +18,7 @@ fetch('data/geojson/roads-seoul.geojson').then(function(response) {
var format = new ol.format.GeoJSON();
var features = format.readFeatures(json, {featureProjection: 'EPSG:3857'});
var parser = new jsts.io.olParser();
var parser = new jsts.io.OL3Parser();
for (var i = 0; i < features.length; i++) {
var feature = features[i];
@@ -39,9 +39,7 @@ var vectorLayer = new ol.layer.Vector({
});
var rasterLayer = new ol.layer.Tile({
source: new ol.source.MapQuest({
layer: 'osm'
})
source: new ol.source.OSM()
});
var map = new ol.Map({
-1
View File
@@ -9,7 +9,6 @@
}
.tooltip.in {
opacity: 1;
filter: alpha(opacity=100);
}
.tooltip.top .tooltip-arrow {
border-top-color: white;
+3 -3
View File
@@ -6,8 +6,8 @@ docs: >
This example parses a KML file and renders the features as a vector layer. The layer is given a <code>style</code> that renders earthquake locations with a size relative to their magnitude.
tags: "KML, vector, style, tooltip"
resources:
- https://code.jquery.com/jquery-1.11.2.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
- https://code.jquery.com/jquery-2.2.3.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
---
<div id="map" class="map"><div id="info"></div></div>
+3 -3
View File
@@ -7,8 +7,8 @@ docs: >
yellow with an opacity calculated based on the current offset to local noon.
tags: "KML, vector, style"
resources:
- https://code.jquery.com/jquery-1.11.2.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
- https://code.jquery.com/jquery-2.2.3.min.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
---
<div id="map" class="map"><div id="info"></div></div>
+1 -1
View File
@@ -6,7 +6,7 @@ docs: >
This example uses the <code>ol.format.KML</code> to parse KML for rendering with a vector source.
tags: "KML"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<div id="info">&nbsp;</div>
+7 -3
View File
@@ -25,8 +25,10 @@ var map = new ol.Map({
osm.on('precompose', function(event) {
var ctx = event.context;
ctx.save();
ctx.translate(ctx.canvas.width / 2, ctx.canvas.height / 2);
ctx.scale(3, 3);
var pixelRatio = event.frameState.pixelRatio;
var size = map.getSize();
ctx.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
ctx.scale(3 * pixelRatio, 3 * pixelRatio);
ctx.translate(-75, -80);
ctx.beginPath();
ctx.moveTo(75, 40);
@@ -37,7 +39,9 @@ osm.on('precompose', function(event) {
ctx.bezierCurveTo(130, 62.5, 130, 25, 100, 25);
ctx.bezierCurveTo(85, 25, 75, 37, 75, 40);
ctx.clip();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.translate(75, 80);
ctx.scale(1 / 3 / pixelRatio, 1 / 3 / pixelRatio);
ctx.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
});
osm.on('postcompose', function(event) {
+6 -7
View File
@@ -4,13 +4,12 @@ title: Limited Layer Extent
shortdesc: Restricting layer rendering to a limited extent.
docs: >
This example uses the <code>layer.setExtent()</code> method to
modify the extent of the overlay layer. Use the controls below
to limit rendering based on an extent.
modify the extent of the overlay layer. Use the controls above
to limit rendering based on an extent (approximate country bounds).
tags: "extent, tilejson"
---
<div id="map" class="map"></div>
<button type="button" class="btn btn-default" id="northwest">northwest</button>
<button type="button" class="btn btn-default" id="northeast">northeast</button>
<button type="button" class="btn btn-default" id="southeast">southeast</button>
<button type="button" class="btn btn-default" id="southwest">southwest</button>
<button type="button" class="btn btn-default" id="world">world</button>
<button type="button" class="btn btn-default" id="India">India</button>
<button type="button" class="btn btn-default" id="Argentina">Argentina</button>
<button type="button" class="btn btn-default" id="Nigeria">Nigeria</button>
<button type="button" class="btn btn-default" id="Sweden">Sweden</button>
+7 -8
View File
@@ -9,26 +9,25 @@ function transform(extent) {
}
var extents = {
northwest: transform([-180, 0, 0, 85]),
northeast: transform([0, 0, 180, 85]),
southeast: transform([0, -85, 180, 0]),
southwest: transform([-180, -85, 0, 0]),
world: transform([-180, -85, 180, 85])
India: transform([68.17665, 7.96553, 97.40256, 35.49401]),
Argentina: transform([-73.41544, -55.25, -53.62835, -21.83231]),
Nigeria: transform([2.6917, 4.24059, 14.57718, 13.86592]),
Sweden: transform([11.02737, 55.36174, 23.90338, 69.10625])
};
var base = new ol.layer.Tile({
source: new ol.source.TileJSON({
url: 'http://api.tiles.mapbox.com/v3/' +
'mapbox.world-black.json',
'mapbox.world-light.json',
crossOrigin: 'anonymous'
})
});
var overlay = new ol.layer.Tile({
extent: extents.northwest,
extent: extents.India,
source: new ol.source.TileJSON({
url: 'http://api.tiles.mapbox.com/v3/' +
'mapbox.world-glass.json',
'mapbox.world-black.json',
crossOrigin: 'anonymous'
})
});
+2 -2
View File
@@ -6,13 +6,13 @@ docs: >
Example of a map with layer group.
tags: "tilejson, input, bind, group, layergroup"
resources:
- https://code.jquery.com/jquery-1.11.2.min.js
- https://code.jquery.com/jquery-2.2.3.min.js
---
<div id="map" class="map"></div>
<div id="layertree">
<h5>Click on layer nodes below to change their properties.</h5>
<ul>
<li><span>OpenAerial layer</span>
<li><span>OSM layer</span>
<fieldset id="layer0">
<label class="checkbox" for="visible0">
<input id="visible0" class="visible" type="checkbox"/>visibility
+2 -2
View File
@@ -3,13 +3,13 @@ goog.require('ol.View');
goog.require('ol.layer.Group');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.source.TileJSON');
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
}), new ol.layer.Group({
layers: [
new ol.layer.Tile({
+1 -1
View File
@@ -10,6 +10,6 @@ docs: >
<p>Move around the map to see the effect. Use the ↑ up and ↓ down arrow keys to adjust the spyglass size.</p>
tags: "spy, image manipulation"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
+1 -1
View File
@@ -6,7 +6,7 @@ docs: >
Example of a Layer swipe map.
tags: "swipe, openstreetmap"
cloak:
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
---
<div id="map" class="map"></div>
<input id="swipe" type="range" style="width: 100%">
+2 -2
View File
@@ -1,9 +1,9 @@
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
var source = new ol.source.MapQuest({layer: 'sat'});
var source = new ol.source.OSM();
var layer = new ol.layer.Tile();
+2 -2
View File
@@ -4,14 +4,14 @@ goog.require('ol.geom.Point');
goog.require('ol.interaction.Draw');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.MapQuest');
goog.require('ol.source.OSM');
goog.require('ol.source.Vector');
goog.require('ol.style.Icon');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var raster = new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
source: new ol.source.OSM()
});
var source = new ol.source.Vector();

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