1
|
/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
|
2
|
* full list of contributors). Published under the 2-clause BSD license.
|
3
|
* See license.txt in the OpenLayers distribution or repository for the
|
4
|
* full text of the license. */
|
5
|
|
6
|
/*
|
7
|
* @requires OpenLayers/BaseTypes.js
|
8
|
* @requires OpenLayers/Lang/en.js
|
9
|
* @requires OpenLayers/Console.js
|
10
|
*/
|
11
|
|
12
|
/*
|
13
|
* TODO: In 3.0, we will stop supporting build profiles that include
|
14
|
* OpenLayers.js. This means we will not need the singleFile and scriptFile
|
15
|
* variables, because we don't have to handle the singleFile case any more.
|
16
|
*/
|
17
|
|
18
|
(function() {
|
19
|
/**
|
20
|
* Before creating the OpenLayers namespace, check to see if
|
21
|
* OpenLayers.singleFile is true. This occurs if the
|
22
|
* OpenLayers/SingleFile.js script is included before this one - as is the
|
23
|
* case with old single file build profiles that included both
|
24
|
* OpenLayers.js and OpenLayers/SingleFile.js.
|
25
|
*/
|
26
|
var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile);
|
27
|
|
28
|
/**
|
29
|
* Relative path of this script.
|
30
|
*/
|
31
|
var scriptName = (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js";
|
32
|
|
33
|
/*
|
34
|
* If window.OpenLayers isn't set when this script (OpenLayers.js) is
|
35
|
* evaluated (and if singleFile is false) then this script will load
|
36
|
* *all* OpenLayers scripts. If window.OpenLayers is set to an array
|
37
|
* then this script will attempt to load scripts for each string of
|
38
|
* the array, using the string as the src of the script.
|
39
|
*
|
40
|
* Example:
|
41
|
* (code)
|
42
|
* <script type="text/javascript">
|
43
|
* window.OpenLayers = [
|
44
|
* "OpenLayers/Util.js",
|
45
|
* "OpenLayers/BaseTypes.js"
|
46
|
* ];
|
47
|
* </script>
|
48
|
* <script type="text/javascript" src="../lib/OpenLayers.js"></script>
|
49
|
* (end)
|
50
|
* In this example OpenLayers.js will load Util.js and BaseTypes.js only.
|
51
|
*/
|
52
|
var jsFiles = window.OpenLayers;
|
53
|
|
54
|
/**
|
55
|
* Namespace: OpenLayers
|
56
|
* The OpenLayers object provides a namespace for all things OpenLayers
|
57
|
*/
|
58
|
window.OpenLayers = {
|
59
|
/**
|
60
|
* Method: _getScriptLocation
|
61
|
* Return the path to this script. This is also implemented in
|
62
|
* OpenLayers/SingleFile.js
|
63
|
*
|
64
|
* Returns:
|
65
|
* {String} Path to this script
|
66
|
*/
|
67
|
_getScriptLocation: (function() {
|
68
|
var r = new RegExp("(^|(.*?\\/))(" + scriptName + ")(\\?|$)"),
|
69
|
s = document.getElementsByTagName('script'),
|
70
|
src, m, l = "";
|
71
|
for(var i=0, len=s.length; i<len; i++) {
|
72
|
src = s[i].getAttribute('src');
|
73
|
if(src) {
|
74
|
m = src.match(r);
|
75
|
if(m) {
|
76
|
l = m[1];
|
77
|
break;
|
78
|
}
|
79
|
}
|
80
|
}
|
81
|
return (function() { return l; });
|
82
|
})(),
|
83
|
|
84
|
/**
|
85
|
* APIProperty: ImgPath
|
86
|
* {String} Set this to the path where control images are stored, a path
|
87
|
* given here must end with a slash. If set to '' (which is the default)
|
88
|
* OpenLayers will use its script location + "img/".
|
89
|
*
|
90
|
* You will need to set this property when you have a singlefile build of
|
91
|
* OpenLayers that either is not named "OpenLayers.js" or if you move
|
92
|
* the file in a way such that the image directory cannot be derived from
|
93
|
* the script location.
|
94
|
*
|
95
|
* If your custom OpenLayers build is named "my-custom-ol.js" and the images
|
96
|
* of OpenLayers are in a folder "/resources/external/images/ol" a correct
|
97
|
* way of including OpenLayers in your HTML would be:
|
98
|
*
|
99
|
* (code)
|
100
|
* <script src="/path/to/my-custom-ol.js" type="text/javascript"></script>
|
101
|
* <script type="text/javascript">
|
102
|
* // tell OpenLayers where the control images are
|
103
|
* // remember the trailing slash
|
104
|
* OpenLayers.ImgPath = "/resources/external/images/ol/";
|
105
|
* </script>
|
106
|
* (end code)
|
107
|
*
|
108
|
* Please remember that when your OpenLayers script is not named
|
109
|
* "OpenLayers.js" you will have to make sure that the default theme is
|
110
|
* loaded into the page by including an appropriate <link>-tag,
|
111
|
* e.g.:
|
112
|
*
|
113
|
* (code)
|
114
|
* <link rel="stylesheet" href="/path/to/default/style.css" type="text/css">
|
115
|
* (end code)
|
116
|
*/
|
117
|
ImgPath : ''
|
118
|
};
|
119
|
|
120
|
/**
|
121
|
* OpenLayers.singleFile is a flag indicating this file is being included
|
122
|
* in a Single File Library build of the OpenLayers Library.
|
123
|
*
|
124
|
* When we are *not* part of a SFL build we dynamically include the
|
125
|
* OpenLayers library code.
|
126
|
*
|
127
|
* When we *are* part of a SFL build we do not dynamically include the
|
128
|
* OpenLayers library code as it will be appended at the end of this file.
|
129
|
*/
|
130
|
if(!singleFile) {
|
131
|
if (!jsFiles) {
|
132
|
jsFiles = [
|
133
|
"OpenLayers/BaseTypes/Class.js",
|
134
|
"OpenLayers/Util.js",
|
135
|
"OpenLayers/Util/vendorPrefix.js",
|
136
|
"OpenLayers/Animation.js",
|
137
|
"OpenLayers/BaseTypes.js",
|
138
|
"OpenLayers/BaseTypes/Bounds.js",
|
139
|
"OpenLayers/BaseTypes/Date.js",
|
140
|
"OpenLayers/BaseTypes/Element.js",
|
141
|
"OpenLayers/BaseTypes/LonLat.js",
|
142
|
"OpenLayers/BaseTypes/Pixel.js",
|
143
|
"OpenLayers/BaseTypes/Size.js",
|
144
|
"OpenLayers/Console.js",
|
145
|
"OpenLayers/Tween.js",
|
146
|
"OpenLayers/Kinetic.js",
|
147
|
"OpenLayers/Events.js",
|
148
|
"OpenLayers/Events/buttonclick.js",
|
149
|
"OpenLayers/Events/featureclick.js",
|
150
|
"OpenLayers/Request.js",
|
151
|
"OpenLayers/Request/XMLHttpRequest.js",
|
152
|
"OpenLayers/Projection.js",
|
153
|
"OpenLayers/Map.js",
|
154
|
"OpenLayers/Layer.js",
|
155
|
"OpenLayers/Icon.js",
|
156
|
"OpenLayers/Marker.js",
|
157
|
"OpenLayers/Marker/Box.js",
|
158
|
"OpenLayers/Popup.js",
|
159
|
"OpenLayers/Tile.js",
|
160
|
"OpenLayers/Tile/Image.js",
|
161
|
"OpenLayers/Tile/Image/IFrame.js",
|
162
|
"OpenLayers/Tile/UTFGrid.js",
|
163
|
"OpenLayers/Layer/Image.js",
|
164
|
"OpenLayers/Layer/SphericalMercator.js",
|
165
|
"OpenLayers/Layer/EventPane.js",
|
166
|
"OpenLayers/Layer/FixedZoomLevels.js",
|
167
|
"OpenLayers/Layer/Google.js",
|
168
|
"OpenLayers/Layer/Google/v3.js",
|
169
|
"OpenLayers/Layer/HTTPRequest.js",
|
170
|
"OpenLayers/Layer/Grid.js",
|
171
|
"OpenLayers/Layer/MapGuide.js",
|
172
|
"OpenLayers/Layer/MapServer.js",
|
173
|
"OpenLayers/Layer/KaMap.js",
|
174
|
"OpenLayers/Layer/KaMapCache.js",
|
175
|
"OpenLayers/Layer/Markers.js",
|
176
|
"OpenLayers/Layer/Text.js",
|
177
|
"OpenLayers/Layer/WorldWind.js",
|
178
|
"OpenLayers/Layer/ArcGIS93Rest.js",
|
179
|
"OpenLayers/Layer/WMS.js",
|
180
|
"OpenLayers/Layer/WMTS.js",
|
181
|
"OpenLayers/Layer/ArcIMS.js",
|
182
|
"OpenLayers/Layer/GeoRSS.js",
|
183
|
"OpenLayers/Layer/Boxes.js",
|
184
|
"OpenLayers/Layer/XYZ.js",
|
185
|
"OpenLayers/Layer/UTFGrid.js",
|
186
|
"OpenLayers/Layer/OSM.js",
|
187
|
"OpenLayers/Layer/Bing.js",
|
188
|
"OpenLayers/Layer/TMS.js",
|
189
|
"OpenLayers/Layer/TileCache.js",
|
190
|
"OpenLayers/Layer/Zoomify.js",
|
191
|
"OpenLayers/Layer/ArcGISCache.js",
|
192
|
"OpenLayers/Popup/Anchored.js",
|
193
|
"OpenLayers/Popup/Framed.js",
|
194
|
"OpenLayers/Popup/FramedCloud.js",
|
195
|
"OpenLayers/Feature.js",
|
196
|
"OpenLayers/Feature/Vector.js",
|
197
|
"OpenLayers/Handler.js",
|
198
|
"OpenLayers/Handler/Click.js",
|
199
|
"OpenLayers/Handler/Hover.js",
|
200
|
"OpenLayers/Handler/Point.js",
|
201
|
"OpenLayers/Handler/Path.js",
|
202
|
"OpenLayers/Handler/Polygon.js",
|
203
|
"OpenLayers/Handler/Feature.js",
|
204
|
"OpenLayers/Handler/Drag.js",
|
205
|
"OpenLayers/Handler/Pinch.js",
|
206
|
"OpenLayers/Handler/RegularPolygon.js",
|
207
|
"OpenLayers/Handler/Box.js",
|
208
|
"OpenLayers/Handler/MouseWheel.js",
|
209
|
"OpenLayers/Handler/Keyboard.js",
|
210
|
"OpenLayers/Control.js",
|
211
|
"OpenLayers/Control/Attribution.js",
|
212
|
"OpenLayers/Control/Button.js",
|
213
|
"OpenLayers/Control/CacheRead.js",
|
214
|
"OpenLayers/Control/CacheWrite.js",
|
215
|
"OpenLayers/Control/ZoomBox.js",
|
216
|
"OpenLayers/Control/ZoomToMaxExtent.js",
|
217
|
"OpenLayers/Control/DragPan.js",
|
218
|
"OpenLayers/Control/Navigation.js",
|
219
|
"OpenLayers/Control/PinchZoom.js",
|
220
|
"OpenLayers/Control/TouchNavigation.js",
|
221
|
"OpenLayers/Control/MousePosition.js",
|
222
|
"OpenLayers/Control/OverviewMap.js",
|
223
|
"OpenLayers/Control/KeyboardDefaults.js",
|
224
|
"OpenLayers/Control/PanZoom.js",
|
225
|
"OpenLayers/Control/PanZoomBar.js",
|
226
|
"OpenLayers/Control/ArgParser.js",
|
227
|
"OpenLayers/Control/Permalink.js",
|
228
|
"OpenLayers/Control/Scale.js",
|
229
|
"OpenLayers/Control/ScaleLine.js",
|
230
|
"OpenLayers/Control/Snapping.js",
|
231
|
"OpenLayers/Control/Split.js",
|
232
|
"OpenLayers/Control/LayerSwitcher.js",
|
233
|
"OpenLayers/Control/DrawFeature.js",
|
234
|
"OpenLayers/Control/DragFeature.js",
|
235
|
"OpenLayers/Control/ModifyFeature.js",
|
236
|
"OpenLayers/Control/Panel.js",
|
237
|
"OpenLayers/Control/SelectFeature.js",
|
238
|
"OpenLayers/Control/NavigationHistory.js",
|
239
|
"OpenLayers/Control/Measure.js",
|
240
|
"OpenLayers/Control/WMSGetFeatureInfo.js",
|
241
|
"OpenLayers/Control/WMTSGetFeatureInfo.js",
|
242
|
"OpenLayers/Control/Graticule.js",
|
243
|
"OpenLayers/Control/TransformFeature.js",
|
244
|
"OpenLayers/Control/UTFGrid.js",
|
245
|
"OpenLayers/Control/SLDSelect.js",
|
246
|
"OpenLayers/Control/Zoom.js",
|
247
|
"OpenLayers/Geometry.js",
|
248
|
"OpenLayers/Geometry/Collection.js",
|
249
|
"OpenLayers/Geometry/Point.js",
|
250
|
"OpenLayers/Geometry/MultiPoint.js",
|
251
|
"OpenLayers/Geometry/Curve.js",
|
252
|
"OpenLayers/Geometry/LineString.js",
|
253
|
"OpenLayers/Geometry/LinearRing.js",
|
254
|
"OpenLayers/Geometry/Polygon.js",
|
255
|
"OpenLayers/Geometry/MultiLineString.js",
|
256
|
"OpenLayers/Geometry/MultiPolygon.js",
|
257
|
"OpenLayers/Renderer.js",
|
258
|
"OpenLayers/Renderer/Elements.js",
|
259
|
"OpenLayers/Renderer/SVG.js",
|
260
|
"OpenLayers/Renderer/Canvas.js",
|
261
|
"OpenLayers/Renderer/VML.js",
|
262
|
"OpenLayers/Layer/Vector.js",
|
263
|
"OpenLayers/Layer/PointGrid.js",
|
264
|
"OpenLayers/Layer/Vector/RootContainer.js",
|
265
|
"OpenLayers/Strategy.js",
|
266
|
"OpenLayers/Strategy/Filter.js",
|
267
|
"OpenLayers/Strategy/Fixed.js",
|
268
|
"OpenLayers/Strategy/Cluster.js",
|
269
|
"OpenLayers/Strategy/Paging.js",
|
270
|
"OpenLayers/Strategy/BBOX.js",
|
271
|
"OpenLayers/Strategy/Save.js",
|
272
|
"OpenLayers/Strategy/Refresh.js",
|
273
|
"OpenLayers/Filter.js",
|
274
|
"OpenLayers/Filter/FeatureId.js",
|
275
|
"OpenLayers/Filter/Logical.js",
|
276
|
"OpenLayers/Filter/Comparison.js",
|
277
|
"OpenLayers/Filter/Spatial.js",
|
278
|
"OpenLayers/Filter/Function.js",
|
279
|
"OpenLayers/Protocol.js",
|
280
|
"OpenLayers/Protocol/HTTP.js",
|
281
|
"OpenLayers/Protocol/WFS.js",
|
282
|
"OpenLayers/Protocol/WFS/v1.js",
|
283
|
"OpenLayers/Protocol/WFS/v1_0_0.js",
|
284
|
"OpenLayers/Protocol/WFS/v1_1_0.js",
|
285
|
"OpenLayers/Protocol/CSW.js",
|
286
|
"OpenLayers/Protocol/CSW/v2_0_2.js",
|
287
|
"OpenLayers/Protocol/Script.js",
|
288
|
"OpenLayers/Protocol/SOS.js",
|
289
|
"OpenLayers/Protocol/SOS/v1_0_0.js",
|
290
|
"OpenLayers/Layer/PointTrack.js",
|
291
|
"OpenLayers/Style.js",
|
292
|
"OpenLayers/Style2.js",
|
293
|
"OpenLayers/StyleMap.js",
|
294
|
"OpenLayers/Rule.js",
|
295
|
"OpenLayers/Format.js",
|
296
|
"OpenLayers/Format/QueryStringFilter.js",
|
297
|
"OpenLayers/Format/XML.js",
|
298
|
"OpenLayers/Format/XML/VersionedOGC.js",
|
299
|
"OpenLayers/Format/Context.js",
|
300
|
"OpenLayers/Format/ArcXML.js",
|
301
|
"OpenLayers/Format/ArcXML/Features.js",
|
302
|
"OpenLayers/Format/GML.js",
|
303
|
"OpenLayers/Format/GML/Base.js",
|
304
|
"OpenLayers/Format/GML/v2.js",
|
305
|
"OpenLayers/Format/GML/v3.js",
|
306
|
"OpenLayers/Format/Atom.js",
|
307
|
"OpenLayers/Format/EncodedPolyline.js",
|
308
|
"OpenLayers/Format/KML.js",
|
309
|
"OpenLayers/Format/GeoRSS.js",
|
310
|
"OpenLayers/Format/WFS.js",
|
311
|
"OpenLayers/Format/OWSCommon.js",
|
312
|
"OpenLayers/Format/OWSCommon/v1.js",
|
313
|
"OpenLayers/Format/OWSCommon/v1_0_0.js",
|
314
|
"OpenLayers/Format/OWSCommon/v1_1_0.js",
|
315
|
"OpenLayers/Format/WCSCapabilities.js",
|
316
|
"OpenLayers/Format/WCSCapabilities/v1.js",
|
317
|
"OpenLayers/Format/WCSCapabilities/v1_0_0.js",
|
318
|
"OpenLayers/Format/WCSCapabilities/v1_1_0.js",
|
319
|
"OpenLayers/Format/WFSCapabilities.js",
|
320
|
"OpenLayers/Format/WFSCapabilities/v1.js",
|
321
|
"OpenLayers/Format/WFSCapabilities/v1_0_0.js",
|
322
|
"OpenLayers/Format/WFSCapabilities/v1_1_0.js",
|
323
|
"OpenLayers/Format/WFSDescribeFeatureType.js",
|
324
|
"OpenLayers/Format/WMSDescribeLayer.js",
|
325
|
"OpenLayers/Format/WMSDescribeLayer/v1_1.js",
|
326
|
"OpenLayers/Format/WKT.js",
|
327
|
"OpenLayers/Format/CQL.js",
|
328
|
"OpenLayers/Format/OSM.js",
|
329
|
"OpenLayers/Format/GPX.js",
|
330
|
"OpenLayers/Format/Filter.js",
|
331
|
"OpenLayers/Format/Filter/v1.js",
|
332
|
"OpenLayers/Format/Filter/v1_0_0.js",
|
333
|
"OpenLayers/Format/Filter/v1_1_0.js",
|
334
|
"OpenLayers/Format/SLD.js",
|
335
|
"OpenLayers/Format/SLD/v1.js",
|
336
|
"OpenLayers/Format/SLD/v1_0_0.js",
|
337
|
"OpenLayers/Format/SLD/v1_0_0_GeoServer.js",
|
338
|
"OpenLayers/Format/OWSCommon.js",
|
339
|
"OpenLayers/Format/OWSCommon/v1.js",
|
340
|
"OpenLayers/Format/OWSCommon/v1_0_0.js",
|
341
|
"OpenLayers/Format/OWSCommon/v1_1_0.js",
|
342
|
"OpenLayers/Format/CSWGetDomain.js",
|
343
|
"OpenLayers/Format/CSWGetDomain/v2_0_2.js",
|
344
|
"OpenLayers/Format/CSWGetRecords.js",
|
345
|
"OpenLayers/Format/CSWGetRecords/v2_0_2.js",
|
346
|
"OpenLayers/Format/WFST.js",
|
347
|
"OpenLayers/Format/WFST/v1.js",
|
348
|
"OpenLayers/Format/WFST/v1_0_0.js",
|
349
|
"OpenLayers/Format/WFST/v1_1_0.js",
|
350
|
"OpenLayers/Format/Text.js",
|
351
|
"OpenLayers/Format/JSON.js",
|
352
|
"OpenLayers/Format/GeoJSON.js",
|
353
|
"OpenLayers/Format/WMC.js",
|
354
|
"OpenLayers/Format/WMC/v1.js",
|
355
|
"OpenLayers/Format/WMC/v1_0_0.js",
|
356
|
"OpenLayers/Format/WMC/v1_1_0.js",
|
357
|
"OpenLayers/Format/WCSGetCoverage.js",
|
358
|
"OpenLayers/Format/WMSCapabilities.js",
|
359
|
"OpenLayers/Format/WMSCapabilities/v1.js",
|
360
|
"OpenLayers/Format/WMSCapabilities/v1_1.js",
|
361
|
"OpenLayers/Format/WMSCapabilities/v1_1_0.js",
|
362
|
"OpenLayers/Format/WMSCapabilities/v1_1_1.js",
|
363
|
"OpenLayers/Format/WMSCapabilities/v1_3.js",
|
364
|
"OpenLayers/Format/WMSCapabilities/v1_3_0.js",
|
365
|
"OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js",
|
366
|
"OpenLayers/Format/WMSGetFeatureInfo.js",
|
367
|
"OpenLayers/Format/SOSCapabilities.js",
|
368
|
"OpenLayers/Format/SOSCapabilities/v1_0_0.js",
|
369
|
"OpenLayers/Format/SOSGetFeatureOfInterest.js",
|
370
|
"OpenLayers/Format/SOSGetObservation.js",
|
371
|
"OpenLayers/Format/OWSContext.js",
|
372
|
"OpenLayers/Format/OWSContext/v0_3_1.js",
|
373
|
"OpenLayers/Format/WMTSCapabilities.js",
|
374
|
"OpenLayers/Format/WMTSCapabilities/v1_0_0.js",
|
375
|
"OpenLayers/Format/WPSCapabilities.js",
|
376
|
"OpenLayers/Format/WPSCapabilities/v1_0_0.js",
|
377
|
"OpenLayers/Format/WPSDescribeProcess.js",
|
378
|
"OpenLayers/Format/WPSExecute.js",
|
379
|
"OpenLayers/Format/XLS.js",
|
380
|
"OpenLayers/Format/XLS/v1.js",
|
381
|
"OpenLayers/Format/XLS/v1_1_0.js",
|
382
|
"OpenLayers/Format/OGCExceptionReport.js",
|
383
|
"OpenLayers/Control/GetFeature.js",
|
384
|
"OpenLayers/Control/NavToolbar.js",
|
385
|
"OpenLayers/Control/PanPanel.js",
|
386
|
"OpenLayers/Control/Pan.js",
|
387
|
"OpenLayers/Control/ZoomIn.js",
|
388
|
"OpenLayers/Control/ZoomOut.js",
|
389
|
"OpenLayers/Control/ZoomPanel.js",
|
390
|
"OpenLayers/Control/EditingToolbar.js",
|
391
|
"OpenLayers/Control/Geolocate.js",
|
392
|
"OpenLayers/Symbolizer.js",
|
393
|
"OpenLayers/Symbolizer/Point.js",
|
394
|
"OpenLayers/Symbolizer/Line.js",
|
395
|
"OpenLayers/Symbolizer/Polygon.js",
|
396
|
"OpenLayers/Symbolizer/Text.js",
|
397
|
"OpenLayers/Symbolizer/Raster.js",
|
398
|
"OpenLayers/Lang.js",
|
399
|
"OpenLayers/Lang/en.js",
|
400
|
"OpenLayers/Spherical.js",
|
401
|
"OpenLayers/TileManager.js",
|
402
|
"OpenLayers/WPSClient.js",
|
403
|
"OpenLayers/WPSProcess.js"
|
404
|
]; // etc.
|
405
|
}
|
406
|
|
407
|
// use "parser-inserted scripts" for guaranteed execution order
|
408
|
// http://hsivonen.iki.fi/script-execution/
|
409
|
var scriptTags = new Array(jsFiles.length);
|
410
|
var host = OpenLayers._getScriptLocation() + "lib/";
|
411
|
for (var i=0, len=jsFiles.length; i<len; i++) {
|
412
|
scriptTags[i] = "<script src='" + host + jsFiles[i] +
|
413
|
"'></script>";
|
414
|
}
|
415
|
if (scriptTags.length > 0) {
|
416
|
document.write(scriptTags.join(""));
|
417
|
}
|
418
|
}
|
419
|
})();
|
420
|
|
421
|
/**
|
422
|
* Constant: VERSION_NUMBER
|
423
|
*
|
424
|
* This constant identifies the version of OpenLayers.
|
425
|
*
|
426
|
* When asking questions or reporting issues, make sure to include the output of
|
427
|
* OpenLayers.VERSION_NUMBER in the question or issue-description.
|
428
|
*/
|
429
|
OpenLayers.VERSION_NUMBER="Release 2.13.1";
|