From 830e11f46932c07cfb6d230e13b3f6cc1caca5f3 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 29 Jan 2025 16:15:29 -0400 Subject: [PATCH 1/3] add OpenLayers lib folder --- conf.py | 6 + extra/lib/OpenLayers-ms60.js | 591 ++++++++++++++++++ extra/lib/README.md | 23 + extra/lib/img/blank.gif | Bin 0 -> 42 bytes extra/lib/img/cloud-popup-relative.png | Bin 0 -> 3177 bytes extra/lib/img/drag-rectangle-off.png | Bin 0 -> 1202 bytes extra/lib/img/drag-rectangle-on.png | Bin 0 -> 1218 bytes extra/lib/img/east-mini.png | Bin 0 -> 451 bytes extra/lib/img/layer-switcher-maximize.png | Bin 0 -> 451 bytes extra/lib/img/layer-switcher-minimize.png | Bin 0 -> 249 bytes extra/lib/img/marker-blue.png | Bin 0 -> 992 bytes extra/lib/img/marker-gold.png | Bin 0 -> 831 bytes extra/lib/img/marker-green.png | Bin 0 -> 967 bytes extra/lib/img/marker.png | Bin 0 -> 606 bytes extra/lib/img/measuring-stick-off.png | Bin 0 -> 3343 bytes extra/lib/img/measuring-stick-on.png | Bin 0 -> 3816 bytes extra/lib/img/north-mini.png | Bin 0 -> 484 bytes extra/lib/img/panning-hand-off.png | Bin 0 -> 3875 bytes extra/lib/img/panning-hand-on.png | Bin 0 -> 3977 bytes extra/lib/img/slider.png | Bin 0 -> 285 bytes extra/lib/img/south-mini.png | Bin 0 -> 481 bytes extra/lib/img/west-mini.png | Bin 0 -> 453 bytes extra/lib/img/zoom-minus-mini.png | Bin 0 -> 359 bytes extra/lib/img/zoom-plus-mini.png | Bin 0 -> 489 bytes extra/lib/img/zoom-world-mini.png | Bin 0 -> 1072 bytes extra/lib/img/zoombar.png | Bin 0 -> 463 bytes extra/lib/theme/default/framedCloud.css | 0 extra/lib/theme/default/google.css | 10 + extra/lib/theme/default/ie6-style.css | 7 + extra/lib/theme/default/img/add_point_off.png | Bin 0 -> 1616 bytes extra/lib/theme/default/img/add_point_on.png | Bin 0 -> 1464 bytes extra/lib/theme/default/img/blank.gif | Bin 0 -> 42 bytes extra/lib/theme/default/img/close.gif | Bin 0 -> 1078 bytes .../theme/default/img/drag-rectangle-off.png | Bin 0 -> 1202 bytes .../theme/default/img/drag-rectangle-on.png | Bin 0 -> 1218 bytes extra/lib/theme/default/img/draw_line_off.png | Bin 0 -> 1567 bytes extra/lib/theme/default/img/draw_line_on.png | Bin 0 -> 1399 bytes .../lib/theme/default/img/draw_point_off.png | Bin 0 -> 1612 bytes extra/lib/theme/default/img/draw_point_on.png | Bin 0 -> 1460 bytes .../theme/default/img/draw_polygon_off.png | Bin 0 -> 1546 bytes .../lib/theme/default/img/draw_polygon_on.png | Bin 0 -> 1407 bytes .../theme/default/img/editing_tool_bar.png | Bin 0 -> 3901 bytes .../theme/default/img/move_feature_off.png | Bin 0 -> 1543 bytes .../lib/theme/default/img/move_feature_on.png | Bin 0 -> 1379 bytes .../theme/default/img/navigation_history.png | Bin 0 -> 7021 bytes .../default/img/overview_replacement.gif | Bin 0 -> 79 bytes .../theme/default/img/pan-panel-NOALPHA.png | Bin 0 -> 566 bytes extra/lib/theme/default/img/pan-panel.png | Bin 0 -> 1287 bytes extra/lib/theme/default/img/pan_off.png | Bin 0 -> 1696 bytes extra/lib/theme/default/img/pan_on.png | Bin 0 -> 1568 bytes .../theme/default/img/panning-hand-off.png | Bin 0 -> 3875 bytes .../lib/theme/default/img/panning-hand-on.png | Bin 0 -> 3977 bytes .../theme/default/img/remove_point_off.png | Bin 0 -> 1612 bytes .../lib/theme/default/img/remove_point_on.png | Bin 0 -> 1464 bytes extra/lib/theme/default/img/ruler.png | Bin 0 -> 1211 bytes .../theme/default/img/save_features_off.png | Bin 0 -> 357 bytes .../theme/default/img/save_features_on.png | Bin 0 -> 364 bytes extra/lib/theme/default/img/view_next_off.png | Bin 0 -> 1644 bytes extra/lib/theme/default/img/view_next_on.png | Bin 0 -> 1686 bytes .../theme/default/img/view_previous_off.png | Bin 0 -> 1553 bytes .../theme/default/img/view_previous_on.png | Bin 0 -> 1592 bytes .../theme/default/img/zoom-panel-NOALPHA.png | Bin 0 -> 1173 bytes extra/lib/theme/default/img/zoom-panel.png | Bin 0 -> 1624 bytes extra/lib/theme/default/style.css | 397 ++++++++++++ 64 files changed, 1034 insertions(+) create mode 100644 extra/lib/OpenLayers-ms60.js create mode 100644 extra/lib/README.md create mode 100644 extra/lib/img/blank.gif create mode 100644 extra/lib/img/cloud-popup-relative.png create mode 100644 extra/lib/img/drag-rectangle-off.png create mode 100644 extra/lib/img/drag-rectangle-on.png create mode 100644 extra/lib/img/east-mini.png create mode 100644 extra/lib/img/layer-switcher-maximize.png create mode 100644 extra/lib/img/layer-switcher-minimize.png create mode 100644 extra/lib/img/marker-blue.png create mode 100644 extra/lib/img/marker-gold.png create mode 100644 extra/lib/img/marker-green.png create mode 100644 extra/lib/img/marker.png create mode 100644 extra/lib/img/measuring-stick-off.png create mode 100644 extra/lib/img/measuring-stick-on.png create mode 100644 extra/lib/img/north-mini.png create mode 100644 extra/lib/img/panning-hand-off.png create mode 100644 extra/lib/img/panning-hand-on.png create mode 100644 extra/lib/img/slider.png create mode 100644 extra/lib/img/south-mini.png create mode 100644 extra/lib/img/west-mini.png create mode 100644 extra/lib/img/zoom-minus-mini.png create mode 100644 extra/lib/img/zoom-plus-mini.png create mode 100644 extra/lib/img/zoom-world-mini.png create mode 100644 extra/lib/img/zoombar.png create mode 100644 extra/lib/theme/default/framedCloud.css create mode 100644 extra/lib/theme/default/google.css create mode 100644 extra/lib/theme/default/ie6-style.css create mode 100644 extra/lib/theme/default/img/add_point_off.png create mode 100644 extra/lib/theme/default/img/add_point_on.png create mode 100644 extra/lib/theme/default/img/blank.gif create mode 100644 extra/lib/theme/default/img/close.gif create mode 100644 extra/lib/theme/default/img/drag-rectangle-off.png create mode 100644 extra/lib/theme/default/img/drag-rectangle-on.png create mode 100644 extra/lib/theme/default/img/draw_line_off.png create mode 100644 extra/lib/theme/default/img/draw_line_on.png create mode 100644 extra/lib/theme/default/img/draw_point_off.png create mode 100644 extra/lib/theme/default/img/draw_point_on.png create mode 100644 extra/lib/theme/default/img/draw_polygon_off.png create mode 100644 extra/lib/theme/default/img/draw_polygon_on.png create mode 100644 extra/lib/theme/default/img/editing_tool_bar.png create mode 100644 extra/lib/theme/default/img/move_feature_off.png create mode 100644 extra/lib/theme/default/img/move_feature_on.png create mode 100644 extra/lib/theme/default/img/navigation_history.png create mode 100644 extra/lib/theme/default/img/overview_replacement.gif create mode 100644 extra/lib/theme/default/img/pan-panel-NOALPHA.png create mode 100644 extra/lib/theme/default/img/pan-panel.png create mode 100644 extra/lib/theme/default/img/pan_off.png create mode 100644 extra/lib/theme/default/img/pan_on.png create mode 100644 extra/lib/theme/default/img/panning-hand-off.png create mode 100644 extra/lib/theme/default/img/panning-hand-on.png create mode 100644 extra/lib/theme/default/img/remove_point_off.png create mode 100644 extra/lib/theme/default/img/remove_point_on.png create mode 100644 extra/lib/theme/default/img/ruler.png create mode 100644 extra/lib/theme/default/img/save_features_off.png create mode 100644 extra/lib/theme/default/img/save_features_on.png create mode 100644 extra/lib/theme/default/img/view_next_off.png create mode 100644 extra/lib/theme/default/img/view_next_on.png create mode 100644 extra/lib/theme/default/img/view_previous_off.png create mode 100644 extra/lib/theme/default/img/view_previous_on.png create mode 100644 extra/lib/theme/default/img/zoom-panel-NOALPHA.png create mode 100644 extra/lib/theme/default/img/zoom-panel.png create mode 100644 extra/lib/theme/default/style.css diff --git a/conf.py b/conf.py index 55032ffaf97..24ee5113f04 100644 --- a/conf.py +++ b/conf.py @@ -157,6 +157,12 @@ def __getattr__(cls, name): # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +# Add paths that you wish to copy to the output directory +# see: https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-html_extra_path +# note that the actual 'extra' folder itself is excluded, so only its contents +# are copied to the output directory +html_extra_path = ['./extra'] + # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%Y-%m-%d' diff --git a/extra/lib/OpenLayers-ms60.js b/extra/lib/OpenLayers-ms60.js new file mode 100644 index 00000000000..28c9740b1fa --- /dev/null +++ b/extra/lib/OpenLayers-ms60.js @@ -0,0 +1,591 @@ +/* + + OpenLayers.js -- OpenLayers Map Viewer Library + + Copyright 2005-2010 OpenLayers Contributors, released under the Clear BSD + license. Please see http://svn.openlayers.org/trunk/openlayers/license.txt + for the full text of the license. + + Includes compressed code under the following licenses: + + (For uncompressed versions of the code used please see the + OpenLayers SVN repository: ) + +*/ + +/* Contains portions of Prototype.js: + * + * Prototype JavaScript framework, version 1.4.0 + * (c) 2005 Sam Stephenson + * + * Prototype is freely distributable under the terms of an MIT-style license. + * For details, see the Prototype web site: http://prototype.conio.net/ + * + *--------------------------------------------------------------------------*/ + +/** +* +* Contains portions of Rico +* +* Copyright 2005 Sabre Airline Solutions +* +* Licensed under the Apache License, Version 2.0 (the "License"); you +* may not use this file except in compliance with the License. You +* may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +* implied. See the License for the specific language governing +* permissions and limitations under the License. +* +**/ + +/** + * Contains XMLHttpRequest.js + * Copyright 2007 Sergey Ilinsky (http://www.ilinsky.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +/** + * Contains portions of Gears + * + * Copyright 2007, Google Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Google Inc. nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Sets up google.gears.*, which is *the only* supported way to access Gears. + * + * Circumvent this file at your own risk! + * + * In the future, Gears may automatically define google.gears.* without this + * file. Gears may use these objects to transparently fix bugs and compatibility + * issues. Applications that use the code below will continue to work seamlessly + * when that happens. + */ +var OpenLayers={singleFile:true};(function(){var singleFile=(typeof OpenLayers=="object"&&OpenLayers.singleFile);var scriptLocation;window.OpenLayers={_scriptName:(!singleFile)?"lib/OpenLayers-ms60.js":"OpenLayers-ms60.js",_getScriptLocation:function(){if(scriptLocation!=undefined){return scriptLocation;} +scriptLocation="";var isOL=new RegExp("(^|(.*?\\/))("+OpenLayers._scriptName+")(\\?|$)");var scripts=document.getElementsByTagName('script');for(var i=0,len=scripts.length;i";}else{var s=document.createElement("script");s.src=host+jsfiles[i];var h=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;h.appendChild(s);}} +if(docWrite){document.write(allScriptTags.join(""));}}})();OpenLayers.VERSION_NUMBER="OpenLayers 2.10 -- $Revision: 10721 $";OpenLayers.String={startsWith:function(str,sub){return(str.indexOf(sub)==0);},contains:function(str,sub){return(str.indexOf(sub)!=-1);},trim:function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');},camelize:function(str){var oStringList=str.split('-');var camelizedString=oStringList[0];for(var i=1,len=oStringList.length;i0){fig=parseFloat(num.toPrecision(sig));} +return fig;},format:function(num,dec,tsep,dsep){dec=(typeof dec!="undefined")?dec:0;tsep=(typeof tsep!="undefined")?tsep:OpenLayers.Number.thousandsSeparator;dsep=(typeof dsep!="undefined")?dsep:OpenLayers.Number.decimalSeparator;if(dec!=null){num=parseFloat(num.toFixed(dec));} +var parts=num.toString().split(".");if(parts.length==1&&dec==null){dec=0;} +var integer=parts[0];if(tsep){var thousands=/(-?[0-9]+)([0-9]{3})/;while(thousands.test(integer)){integer=integer.replace(thousands,"$1"+tsep+"$2");}} +var str;if(dec==0){str=integer;}else{var rem=parts.length>1?parts[1]:"0";if(dec!=null){rem=rem+new Array(dec-rem.length+1).join("0");} +str=integer+dsep+rem;} +return str;}};if(!Number.prototype.limitSigDigs){Number.prototype.limitSigDigs=function(sig){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Number.limitSigDigs'}));return OpenLayers.Number.limitSigDigs(this,sig);};} +OpenLayers.Function={bind:function(func,object){var args=Array.prototype.slice.apply(arguments,[2]);return function(){var newArgs=args.concat(Array.prototype.slice.apply(arguments,[0]));return func.apply(object,newArgs);};},bindAsEventListener:function(func,object){return function(event){return func.call(object,event||window.event);};},False:function(){return false;},True:function(){return true;}};if(!Function.prototype.bind){Function.prototype.bind=function(){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bind'}));Array.prototype.unshift.apply(arguments,[this]);return OpenLayers.Function.bind.apply(null,arguments);};} +if(!Function.prototype.bindAsEventListener){Function.prototype.bindAsEventListener=function(object){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bindAsEventListener'}));return OpenLayers.Function.bindAsEventListener(this,object);};} +OpenLayers.Array={filter:function(array,callback,caller){var selected=[];if(Array.prototype.filter){selected=array.filter(callback,caller);}else{var len=array.length;if(typeof callback!="function"){throw new TypeError();} +for(var i=0;i1){initialize=Type.prototype.initialize;Type.prototype.initialize=function(){};extended=new Type();if(initialize===undefined){delete Type.prototype.initialize;}else{Type.prototype.initialize=initialize;}} +parent=Type.prototype;}else{parent=Type;} +OpenLayers.Util.extend(extended,parent);} +Class.prototype=extended;return Class;};OpenLayers.Class.isPrototype=function(){};OpenLayers.Class.create=function(){return function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments);}};};OpenLayers.Class.inherit=function(){var superClass=arguments[0];var proto=new superClass(OpenLayers.Class.isPrototype);for(var i=1,len=arguments.length;i=0;i--){if(array[i]==item){array.splice(i,1);}} +return array;};OpenLayers.Util.clearArray=function(array){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'array = []'}));array.length=0;};OpenLayers.Util.indexOf=function(array,obj){if(typeof array.indexOf=="function"){return array.indexOf(obj);}else{for(var i=0,len=array.length;i=0.0&&parseFloat(opacity)<1.0){element.style.filter='alpha(opacity='+(opacity*100)+')';element.style.opacity=opacity;}else if(parseFloat(opacity)==1.0){element.style.filter='';element.style.opacity='';}};OpenLayers.Util.createDiv=function(id,px,sz,imgURL,position,border,overflow,opacity){var dom=document.createElement('div');if(imgURL){dom.style.backgroundImage='url('+imgURL+')';} +if(!id){id=OpenLayers.Util.createUniqueID("OpenLayersDiv");} +if(!position){position="absolute";} +OpenLayers.Util.modifyDOMElement(dom,id,px,sz,position,border,overflow,opacity);return dom;};OpenLayers.Util.createImage=function(id,px,sz,imgURL,position,border,opacity,delayDisplay){var image=document.createElement("img");if(!id){id=OpenLayers.Util.createUniqueID("OpenLayersDiv");} +if(!position){position="relative";} +OpenLayers.Util.modifyDOMElement(image,id,px,sz,position,border,null,opacity);if(delayDisplay){image.style.display="none";OpenLayers.Event.observe(image,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,image));OpenLayers.Event.observe(image,"error",OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError,image));} +image.style.alt=id;image.galleryImg="no";if(imgURL){image.src=imgURL;} +return image;};OpenLayers.Util.setOpacity=function(element,opacity){OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);};OpenLayers.Util.onImageLoad=function(){if(!this.viewRequestID||(this.map&&this.viewRequestID==this.map.viewRequestID)){this.style.display="";} +OpenLayers.Element.removeClass(this,"olImageLoadError");};OpenLayers.IMAGE_RELOAD_ATTEMPTS=0;OpenLayers.Util.onImageLoadError=function(){this._attempts=(this._attempts)?(this._attempts+1):1;if(this._attempts<=OpenLayers.IMAGE_RELOAD_ATTEMPTS){var urls=this.urls;if(urls&&urls instanceof Array&&urls.length>1){var src=this.src.toString();var current_url,k;for(k=0;current_url=urls[k];k++){if(src.indexOf(current_url)!=-1){break;}} +var guess=Math.floor(urls.length*Math.random());var new_url=urls[guess];k=0;while(new_url==current_url&&k++<4){guess=Math.floor(urls.length*Math.random());new_url=urls[guess];} +this.src=src.replace(current_url,new_url);}else{this.src=this.src;}}else{OpenLayers.Element.addClass(this,"olImageLoadError");} +this.style.display="";};OpenLayers.Util.alphaHackNeeded=null;OpenLayers.Util.alphaHack=function(){if(OpenLayers.Util.alphaHackNeeded==null){var arVersion=navigator.appVersion.split("MSIE");var version=parseFloat(arVersion[1]);var filter=false;try{filter=!!(document.body.filters);}catch(e){} +OpenLayers.Util.alphaHackNeeded=(filter&&(version>=5.5)&&(version<7));} +return OpenLayers.Util.alphaHackNeeded;};OpenLayers.Util.modifyAlphaImageDiv=function(div,id,px,sz,imgURL,position,border,sizing,opacity){OpenLayers.Util.modifyDOMElement(div,id,px,sz,position,null,null,opacity);var img=div.childNodes[0];if(imgURL){img.src=imgURL;} +OpenLayers.Util.modifyDOMElement(img,div.id+"_innerImage",null,sz,"relative",border);if(OpenLayers.Util.alphaHack()){if(div.style.display!="none"){div.style.display="inline-block";} +if(sizing==null){sizing="scale";} +div.style.filter="progid:DXImageTransform.Microsoft"+".AlphaImageLoader(src='"+img.src+"', "+"sizingMethod='"+sizing+"')";if(parseFloat(div.style.opacity)>=0.0&&parseFloat(div.style.opacity)<1.0){div.style.filter+=" alpha(opacity="+div.style.opacity*100+")";} +img.style.filter="alpha(opacity=0)";}};OpenLayers.Util.createAlphaImageDiv=function(id,px,sz,imgURL,position,border,sizing,opacity,delayDisplay){var div=OpenLayers.Util.createDiv();var img=OpenLayers.Util.createImage(null,null,null,null,null,null,null,false);div.appendChild(img);if(delayDisplay){img.style.display="none";OpenLayers.Event.observe(img,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,div));OpenLayers.Event.observe(img,"error",OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError,div));} +OpenLayers.Util.modifyAlphaImageDiv(div,id,px,sz,imgURL,position,border,sizing,opacity);return div;};OpenLayers.Util.upperCaseObject=function(object){var uObject={};for(var key in object){uObject[key.toUpperCase()]=object[key];} +return uObject;};OpenLayers.Util.applyDefaults=function(to,from){to=to||{};var fromIsEvt=typeof window.Event=="function"&&from instanceof window.Event;for(var key in from){if(to[key]===undefined||(!fromIsEvt&&from.hasOwnProperty&&from.hasOwnProperty(key)&&!to.hasOwnProperty(key))){to[key]=from[key];}} +if(!fromIsEvt&&from&&from.hasOwnProperty&&from.hasOwnProperty('toString')&&!to.hasOwnProperty('toString')){to.toString=from.toString;} +return to;};OpenLayers.Util.getParameterString=function(params){var paramsArray=[];for(var key in params){var value=params[key];if((value!=null)&&(typeof value!='function')){var encodedValue;if(typeof value=='object'&&value.constructor==Array){var encodedItemArray=[];var item;for(var itemIndex=0,len=value.length;itemIndex0)) +{if(!index){index=0;} +if(result[index].childNodes.length>1){return result.childNodes[1].nodeValue;} +else if(result[index].childNodes.length==1){return result[index].firstChild.nodeValue;}}else{return"";}};OpenLayers.Util.getXmlNodeValue=function(node){var val=null;OpenLayers.Util.Try(function(){val=node.text;if(!val){val=node.textContent;} +if(!val){val=node.firstChild.nodeValue;}},function(){val=node.textContent;});return val;};OpenLayers.Util.mouseLeft=function(evt,div){var target=(evt.relatedTarget)?evt.relatedTarget:evt.toElement;while(target!=div&&target!=null){target=target.parentNode;} +return(target!=div);};OpenLayers.Util.DEFAULT_PRECISION=14;OpenLayers.Util.toFloat=function(number,precision){if(precision==null){precision=OpenLayers.Util.DEFAULT_PRECISION;} +var number;if(precision==0){number=parseFloat(number);}else{number=parseFloat(parseFloat(number).toPrecision(precision));} +return number;};OpenLayers.Util.rad=function(x){return x*Math.PI/180;};OpenLayers.Util.deg=function(x){return x*180/Math.PI;};OpenLayers.Util.VincentyConstants={a:6378137,b:6356752.3142,f:1/298.257223563};OpenLayers.Util.distVincenty=function(p1,p2){var ct=OpenLayers.Util.VincentyConstants;var a=ct.a,b=ct.b,f=ct.f;var L=OpenLayers.Util.rad(p2.lon-p1.lon);var U1=Math.atan((1-f)*Math.tan(OpenLayers.Util.rad(p1.lat)));var U2=Math.atan((1-f)*Math.tan(OpenLayers.Util.rad(p2.lat)));var sinU1=Math.sin(U1),cosU1=Math.cos(U1);var sinU2=Math.sin(U2),cosU2=Math.cos(U2);var lambda=L,lambdaP=2*Math.PI;var iterLimit=20;while(Math.abs(lambda-lambdaP)>1e-12&&--iterLimit>0){var sinLambda=Math.sin(lambda),cosLambda=Math.cos(lambda);var sinSigma=Math.sqrt((cosU2*sinLambda)*(cosU2*sinLambda)+ +(cosU1*sinU2-sinU1*cosU2*cosLambda)*(cosU1*sinU2-sinU1*cosU2*cosLambda));if(sinSigma==0){return 0;} +var cosSigma=sinU1*sinU2+cosU1*cosU2*cosLambda;var sigma=Math.atan2(sinSigma,cosSigma);var alpha=Math.asin(cosU1*cosU2*sinLambda/sinSigma);var cosSqAlpha=Math.cos(alpha)*Math.cos(alpha);var cos2SigmaM=cosSigma-2*sinU1*sinU2/cosSqAlpha;var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));lambdaP=lambda;lambda=L+(1-C)*f*Math.sin(alpha)*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));} +if(iterLimit==0){return NaN;} +var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)- +B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var s=b*A*(sigma-deltaSigma);var d=s.toFixed(3)/1000;return d;};OpenLayers.Util.destinationVincenty=function(lonlat,brng,dist){var u=OpenLayers.Util;var ct=u.VincentyConstants;var a=ct.a,b=ct.b,f=ct.f;var lon1=lonlat.lon;var lat1=lonlat.lat;var s=dist;var alpha1=u.rad(brng);var sinAlpha1=Math.sin(alpha1);var cosAlpha1=Math.cos(alpha1);var tanU1=(1-f)*Math.tan(u.rad(lat1));var cosU1=1/Math.sqrt((1+tanU1*tanU1)),sinU1=tanU1*cosU1;var sigma1=Math.atan2(tanU1,cosAlpha1);var sinAlpha=cosU1*sinAlpha1;var cosSqAlpha=1-sinAlpha*sinAlpha;var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var sigma=s/(b*A),sigmaP=2*Math.PI;while(Math.abs(sigma-sigmaP)>1e-12){var cos2SigmaM=Math.cos(2*sigma1+sigma);var sinSigma=Math.sin(sigma);var cosSigma=Math.cos(sigma);var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)- +B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));sigmaP=sigma;sigma=s/(b*A)+deltaSigma;} +var tmp=sinU1*sinSigma-cosU1*cosSigma*cosAlpha1;var lat2=Math.atan2(sinU1*cosSigma+cosU1*sinSigma*cosAlpha1,(1-f)*Math.sqrt(sinAlpha*sinAlpha+tmp*tmp));var lambda=Math.atan2(sinSigma*sinAlpha1,cosU1*cosSigma-sinU1*sinSigma*cosAlpha1);var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));var L=lambda-(1-C)*f*sinAlpha*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));var revAz=Math.atan2(sinAlpha,-tmp);return new OpenLayers.LonLat(lon1+u.deg(L),u.deg(lat2));};OpenLayers.Util.getParameters=function(url){url=url||window.location.href;var paramsString="";if(OpenLayers.String.contains(url,'?')){var start=url.indexOf('?')+1;var end=OpenLayers.String.contains(url,"#")?url.indexOf('#'):url.length;paramsString=url.substring(start,end);} +var parameters={};var pairs=paramsString.split(/[&;]/);for(var i=0,len=pairs.length;i1.0)?(1.0/scale):scale;return normScale;};OpenLayers.Util.getResolutionFromScale=function(scale,units){var resolution;if(scale){if(units==null){units="degrees";} +var normScale=OpenLayers.Util.normalizeScale(scale);resolution=1/(normScale*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH);} +return resolution;};OpenLayers.Util.getScaleFromResolution=function(resolution,units){if(units==null){units="degrees";} +var scale=resolution*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH;return scale;};OpenLayers.Util.safeStopPropagation=function(evt){OpenLayers.Event.stop(evt,true);};OpenLayers.Util.pagePosition=function(forElement){var valueT=0,valueL=0;var element=forElement;var child=forElement;while(element){if(element==document.body){if(OpenLayers.Element.getStyle(child,'position')=='absolute'){break;}} +valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;child=element;try{element=element.offsetParent;}catch(e){OpenLayers.Console.error(OpenLayers.i18n("pagePositionFailed",{'elemId':element.id}));break;}} +element=forElement;while(element){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;element=element.parentNode;} +return[valueL,valueT];};OpenLayers.Util.isEquivalentUrl=function(url1,url2,options){options=options||{};OpenLayers.Util.applyDefaults(options,{ignoreCase:true,ignorePort80:true,ignoreHash:true});var urlObj1=OpenLayers.Util.createUrlObject(url1,options);var urlObj2=OpenLayers.Util.createUrlObject(url2,options);for(var key in urlObj1){if(key!=="args"){if(urlObj1[key]!=urlObj2[key]){return false;}}} +for(var key in urlObj1.args){if(urlObj1.args[key]!=urlObj2.args[key]){return false;} +delete urlObj2.args[key];} +for(var key in urlObj2.args){return false;} +return true;};OpenLayers.Util.createUrlObject=function(url,options){options=options||{};if(!(/^\w+:\/\//).test(url)){var loc=window.location;var port=loc.port?":"+loc.port:"";var fullUrl=loc.protocol+"//"+loc.host.split(":").shift()+port;if(url.indexOf("/")===0){url=fullUrl+url;}else{var parts=loc.pathname.split("/");parts.pop();url=fullUrl+parts.join("/")+"/"+url;}} +if(options.ignoreCase){url=url.toLowerCase();} +var a=document.createElement('a');a.href=url;var urlObject={};urlObject.host=a.host.split(":").shift();urlObject.protocol=a.protocol;if(options.ignorePort80){urlObject.port=(a.port=="80"||a.port=="0")?"":a.port;}else{urlObject.port=(a.port==""||a.port=="0")?"80":a.port;} +urlObject.hash=(options.ignoreHash||a.hash==="#")?"":a.hash;var queryString=a.search;if(!queryString){var qMark=url.indexOf("?");queryString=(qMark!=-1)?url.substr(qMark):"";} +urlObject.args=OpenLayers.Util.getParameters(queryString);urlObject.pathname=(a.pathname.charAt(0)=="/")?a.pathname:"/"+a.pathname;return urlObject;};OpenLayers.Util.removeTail=function(url){var head=null;var qMark=url.indexOf("?");var hashMark=url.indexOf("#");if(qMark==-1){head=(hashMark!=-1)?url.substr(0,hashMark):url;}else{head=(hashMark!=-1)?url.substr(0,Math.min(qMark,hashMark)):url.substr(0,qMark);} +return head;};OpenLayers.Util.getBrowserName=function(){var browserName="";var ua=navigator.userAgent.toLowerCase();if(ua.indexOf("opera")!=-1){browserName="opera";}else if(ua.indexOf("msie")!=-1){browserName="msie";}else if(ua.indexOf("safari")!=-1){browserName="safari";}else if(ua.indexOf("mozilla")!=-1){if(ua.indexOf("firefox")!=-1){browserName="firefox";}else{browserName="mozilla";}} +return browserName;};OpenLayers.Util.getRenderedDimensions=function(contentHTML,size,options){var w,h;var container=document.createElement("div");container.style.visibility="hidden";var containerElement=(options&&options.containerElement)?options.containerElement:document.body;if(size){if(size.w){w=size.w;container.style.width=w+"px";}else if(size.h){h=size.h;container.style.height=h+"px";}} +if(options&&options.displayClass){container.className=options.displayClass;} +var content=document.createElement("div");content.innerHTML=contentHTML;content.style.overflow="visible";if(content.childNodes){for(var i=0,l=content.childNodes.length;i=0){if(coordinateminutes<10){coordinateminutes="0"+coordinateminutes;} +str+=coordinateminutes+"'";if(dmsOption.indexOf('dms')>=0){if(coordinateseconds<10){coordinateseconds="0"+coordinateseconds;} +str+=coordinateseconds+'"';}} +if(axis=="lon"){str+=coordinate<0?OpenLayers.i18n("W"):OpenLayers.i18n("E");}else{str+=coordinate<0?OpenLayers.i18n("S"):OpenLayers.i18n("N");} +return str;};OpenLayers.Element={visible:function(element){return OpenLayers.Util.getElement(element).style.display!='none';},toggle:function(){for(var i=0,len=arguments.length;ithis.right)){this.right=bounds.right;} +if((this.top==null)||(bounds.top>this.top)){this.top=bounds.top;}}}},containsLonLat:function(ll,inclusive){return this.contains(ll.lon,ll.lat,inclusive);},containsPixel:function(px,inclusive){return this.contains(px.x,px.y,inclusive);},contains:function(x,y,inclusive){if(inclusive==null){inclusive=true;} +if(x==null||y==null){return false;} +x=OpenLayers.Util.toFloat(x);y=OpenLayers.Util.toFloat(y);var contains=false;if(inclusive){contains=((x>=this.left)&&(x<=this.right)&&(y>=this.bottom)&&(y<=this.top));}else{contains=((x>this.left)&&(xthis.bottom)&&(y=this.bottom)&&(bounds.bottom<=this.top))||((this.bottom>=bounds.bottom)&&(this.bottom<=bounds.top)));var inTop=(((bounds.top>=this.bottom)&&(bounds.top<=this.top))||((this.top>bounds.bottom)&&(this.top=this.left)&&(bounds.left<=this.right))||((this.left>=bounds.left)&&(this.left<=bounds.right)));var inRight=(((bounds.right>=this.left)&&(bounds.right<=this.right))||((this.right>=bounds.left)&&(this.right<=bounds.right)));intersects=((inBottom||inTop)&&(inLeft||inRight));} +return intersects;},containsBounds:function(bounds,partial,inclusive){if(partial==null){partial=false;} +if(inclusive==null){inclusive=true;} +var bottomLeft=this.contains(bounds.left,bounds.bottom,inclusive);var bottomRight=this.contains(bounds.right,bounds.bottom,inclusive);var topLeft=this.contains(bounds.left,bounds.top,inclusive);var topRight=this.contains(bounds.right,bounds.top,inclusive);return(partial)?(bottomLeft||bottomRight||topLeft||topRight):(bottomLeft&&bottomRight&&topLeft&&topRight);},determineQuadrant:function(lonlat){var quadrant="";var center=this.getCenterLonLat();quadrant+=(lonlat.lat=maxExtent.right&&newBounds.right>maxExtent.right){newBounds=newBounds.add(-maxExtent.getWidth(),0);}} +return newBounds;},CLASS_NAME:"OpenLayers.Bounds"});OpenLayers.Bounds.fromString=function(str){var bounds=str.split(",");return OpenLayers.Bounds.fromArray(bounds);};OpenLayers.Bounds.fromArray=function(bbox){return new OpenLayers.Bounds(parseFloat(bbox[0]),parseFloat(bbox[1]),parseFloat(bbox[2]),parseFloat(bbox[3]));};OpenLayers.Bounds.fromSize=function(size){return new OpenLayers.Bounds(0,size.h,size.w,0);};OpenLayers.Bounds.oppositeQuadrant=function(quadrant){var opp="";opp+=(quadrant.charAt(0)=='t')?'b':'t';opp+=(quadrant.charAt(1)=='l')?'r':'l';return opp;};OpenLayers.LonLat=OpenLayers.Class({lon:0.0,lat:0.0,initialize:function(lon,lat){this.lon=OpenLayers.Util.toFloat(lon);this.lat=OpenLayers.Util.toFloat(lat);},toString:function(){return("lon="+this.lon+",lat="+this.lat);},toShortString:function(){return(this.lon+", "+this.lat);},clone:function(){return new OpenLayers.LonLat(this.lon,this.lat);},add:function(lon,lat){if((lon==null)||(lat==null)){var msg=OpenLayers.i18n("lonlatAddError");OpenLayers.Console.error(msg);return null;} +return new OpenLayers.LonLat(this.lon+OpenLayers.Util.toFloat(lon),this.lat+OpenLayers.Util.toFloat(lat));},equals:function(ll){var equals=false;if(ll!=null){equals=((this.lon==ll.lon&&this.lat==ll.lat)||(isNaN(this.lon)&&isNaN(this.lat)&&isNaN(ll.lon)&&isNaN(ll.lat)));} +return equals;},transform:function(source,dest){var point=OpenLayers.Projection.transform({'x':this.lon,'y':this.lat},source,dest);this.lon=point.x;this.lat=point.y;return this;},wrapDateLine:function(maxExtent){var newLonLat=this.clone();if(maxExtent){while(newLonLat.lonmaxExtent.right){newLonLat.lon-=maxExtent.getWidth();}} +return newLonLat;},CLASS_NAME:"OpenLayers.LonLat"});OpenLayers.LonLat.fromString=function(str){var pair=str.split(",");return new OpenLayers.LonLat(pair[0],pair[1]);};OpenLayers.Pixel=OpenLayers.Class({x:0.0,y:0.0,initialize:function(x,y){this.x=parseFloat(x);this.y=parseFloat(y);},toString:function(){return("x="+this.x+",y="+this.y);},clone:function(){return new OpenLayers.Pixel(this.x,this.y);},equals:function(px){var equals=false;if(px!=null){equals=((this.x==px.x&&this.y==px.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(px.x)&&isNaN(px.y)));} +return equals;},add:function(x,y){if((x==null)||(y==null)){var msg=OpenLayers.i18n("pixelAddError");OpenLayers.Console.error(msg);return null;} +return new OpenLayers.Pixel(this.x+x,this.y+y);},offset:function(px){var newPx=this.clone();if(px){newPx=this.add(px.x,px.y);} +return newPx;},CLASS_NAME:"OpenLayers.Pixel"});OpenLayers.Control=OpenLayers.Class({id:null,map:null,div:null,type:null,allowSelection:false,displayClass:"",title:"",autoActivate:false,active:null,handler:null,eventListeners:null,events:null,EVENT_TYPES:["activate","deactivate"],initialize:function(options){this.displayClass=this.CLASS_NAME.replace("OpenLayers.","ol").replace(/\./g,"");OpenLayers.Util.extend(this,options);this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);} +if(this.id==null){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");}},destroy:function(){if(this.events){if(this.eventListeners){this.events.un(this.eventListeners);} +this.events.destroy();this.events=null;} +this.eventListeners=null;if(this.handler){this.handler.destroy();this.handler=null;} +if(this.handlers){for(var key in this.handlers){if(this.handlers.hasOwnProperty(key)&&typeof this.handlers[key].destroy=="function"){this.handlers[key].destroy();}} +this.handlers=null;} +if(this.map){this.map.removeControl(this);this.map=null;}},setMap:function(map){this.map=map;if(this.handler){this.handler.setMap(map);}},draw:function(px){if(this.div==null){this.div=OpenLayers.Util.createDiv(this.id);this.div.className=this.displayClass;if(!this.allowSelection){this.div.className+=" olControlNoSelect";this.div.setAttribute("unselectable","on",0);this.div.onselectstart=OpenLayers.Function.False;} +if(this.title!=""){this.div.title=this.title;}} +if(px!=null){this.position=px.clone();} +this.moveTo(this.position);return this.div;},moveTo:function(px){if((px!=null)&&(this.div!=null)){this.div.style.left=px.x+"px";this.div.style.top=px.y+"px";}},activate:function(){if(this.active){return false;} +if(this.handler){this.handler.activate();} +this.active=true;if(this.map){OpenLayers.Element.addClass(this.map.viewPortDiv,this.displayClass.replace(/ /g,"")+"Active");} +this.events.triggerEvent("activate");return true;},deactivate:function(){if(this.active){if(this.handler){this.handler.deactivate();} +this.active=false;if(this.map){OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass.replace(/ /g,"")+"Active");} +this.events.triggerEvent("deactivate");return true;} +return false;},CLASS_NAME:"OpenLayers.Control"});OpenLayers.Control.TYPE_BUTTON=1;OpenLayers.Control.TYPE_TOGGLE=2;OpenLayers.Control.TYPE_TOOL=3;OpenLayers.Lang={code:null,defaultCode:"en",getCode:function(){if(!OpenLayers.Lang.code){OpenLayers.Lang.setCode();} +return OpenLayers.Lang.code;},setCode:function(code){var lang;if(!code){code=(OpenLayers.Util.getBrowserName()=="msie")?navigator.userLanguage:navigator.language;} +var parts=code.split('-');parts[0]=parts[0].toLowerCase();if(typeof OpenLayers.Lang[parts[0]]=="object"){lang=parts[0];} +if(parts[1]){var testLang=parts[0]+'-'+parts[1].toUpperCase();if(typeof OpenLayers.Lang[testLang]=="object"){lang=testLang;}} +if(!lang){OpenLayers.Console.warn('Failed to find OpenLayers.Lang.'+parts.join("-")+' dictionary, falling back to default language');lang=OpenLayers.Lang.defaultCode;} +OpenLayers.Lang.code=lang;},translate:function(key,context){var dictionary=OpenLayers.Lang[OpenLayers.Lang.getCode()];var message=dictionary[key];if(!message){message=key;} +if(context){message=OpenLayers.String.format(message,context);} +return message;}};OpenLayers.i18n=OpenLayers.Lang.translate;OpenLayers.Tween=OpenLayers.Class({INTERVAL:10,easing:null,begin:null,finish:null,duration:null,callbacks:null,time:null,interval:null,playing:false,initialize:function(easing){this.easing=(easing)?easing:OpenLayers.Easing.Expo.easeOut;},start:function(begin,finish,duration,options){this.playing=true;this.begin=begin;this.finish=finish;this.duration=duration;this.callbacks=options.callbacks;this.time=0;if(this.interval){window.clearInterval(this.interval);this.interval=null;} +if(this.callbacks&&this.callbacks.start){this.callbacks.start.call(this,this.begin);} +this.interval=window.setInterval(OpenLayers.Function.bind(this.play,this),this.INTERVAL);},stop:function(){if(!this.playing){return;} +if(this.callbacks&&this.callbacks.done){this.callbacks.done.call(this,this.finish);} +window.clearInterval(this.interval);this.interval=null;this.playing=false;},play:function(){var value={};for(var i in this.begin){var b=this.begin[i];var f=this.finish[i];if(b==null||f==null||isNaN(b)||isNaN(f)){OpenLayers.Console.error('invalid value for Tween');} +var c=f-b;value[i]=this.easing.apply(this,[this.time,b,c,this.duration]);} +this.time++;if(this.callbacks&&this.callbacks.eachStep){this.callbacks.eachStep.call(this,value);} +if(this.time>this.duration){this.stop();}},CLASS_NAME:"OpenLayers.Tween"});OpenLayers.Easing={CLASS_NAME:"OpenLayers.Easing"};OpenLayers.Easing.Linear={easeIn:function(t,b,c,d){return c*t/d+b;},easeOut:function(t,b,c,d){return c*t/d+b;},easeInOut:function(t,b,c,d){return c*t/d+b;},CLASS_NAME:"OpenLayers.Easing.Linear"};OpenLayers.Easing.Expo={easeIn:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOut:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOut:function(t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},CLASS_NAME:"OpenLayers.Easing.Expo"};OpenLayers.Easing.Quad={easeIn:function(t,b,c,d){return c*(t/=d)*t+b;},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},CLASS_NAME:"OpenLayers.Easing.Quad"};OpenLayers.Control.ArgParser=OpenLayers.Class(OpenLayers.Control,{center:null,zoom:null,layers:null,displayProjection:null,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);for(var i=0,len=this.map.controls.length;i=0;--i){this._removeButton(this.buttons[i]);}},doubleClick:function(evt){OpenLayers.Event.stop(evt);return false;},buttonDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;} +switch(this.action){case"panup":this.map.pan(0,-this.getSlideFactor("h"));break;case"pandown":this.map.pan(0,this.getSlideFactor("h"));break;case"panleft":this.map.pan(-this.getSlideFactor("w"),0);break;case"panright":this.map.pan(this.getSlideFactor("w"),0);break;case"zoomin":this.map.zoomIn();break;case"zoomout":this.map.zoomOut();break;case"zoomworld":this.map.zoomToMaxExtent();break;} +OpenLayers.Event.stop(evt);},CLASS_NAME:"OpenLayers.Control.PanZoom"});OpenLayers.Control.PanZoom.X=4;OpenLayers.Control.PanZoom.Y=4;OpenLayers.Event={observers:false,KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},isRightClick:function(event){return(((event.which)&&(event.which==3))||((event.button)&&(event.button==2)));},stop:function(event,allowDefault){if(!allowDefault){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}} +if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble=true;}},findElement:function(event,tagName){var element=OpenLayers.Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase()))){element=element.parentNode;} +return element;},observe:function(elementParam,name,observer,useCapture){var element=OpenLayers.Util.getElement(elementParam);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent)){name='keydown';} +if(!this.observers){this.observers={};} +if(!element._eventCacheID){var idPrefix="eventCacheID_";if(element.id){idPrefix=element.id+"_"+idPrefix;} +element._eventCacheID=OpenLayers.Util.createUniqueID(idPrefix);} +var cacheID=element._eventCacheID;if(!this.observers[cacheID]){this.observers[cacheID]=[];} +this.observers[cacheID].push({'element':element,'name':name,'observer':observer,'useCapture':useCapture});if(element.addEventListener){element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){element.attachEvent('on'+name,observer);}},stopObservingElement:function(elementParam){var element=OpenLayers.Util.getElement(elementParam);var cacheID=element._eventCacheID;this._removeElementObservers(OpenLayers.Event.observers[cacheID]);},_removeElementObservers:function(elementObservers){if(elementObservers){for(var i=elementObservers.length-1;i>=0;i--){var entry=elementObservers[i];var args=new Array(entry.element,entry.name,entry.observer,entry.useCapture);var removed=OpenLayers.Event.stopObserving.apply(this,args);}}},stopObserving:function(elementParam,name,observer,useCapture){useCapture=useCapture||false;var element=OpenLayers.Util.getElement(elementParam);var cacheID=element._eventCacheID;if(name=='keypress'){if(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent){name='keydown';}} +var foundEntry=false;var elementObservers=OpenLayers.Event.observers[cacheID];if(elementObservers){var i=0;while(!foundEntry&&i
"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.

"+"Most likely, this is because the Google Maps library "+"script was either not included, or does not contain the "+"correct API key for your site.

"+"Developers: For help getting this working correctly, "+"click here",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.

"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.

"+"Most likely, this is because the ${layerLib} library "+"script was not correctly included.

"+"Developers: For help getting this working correctly, "+"click here",'scale':"Scale = 1 : ${scaleDenom}",'W':'W','E':'E','N':'N','S':'S','graticule':'Graticule','layerAlreadyAdded':"You tried to add the layer: ${layerName} to the map, but it has already been added",'reprojectDeprecated':"You are using the 'reproject' option "+"on the ${layerName} layer. This option is deprecated: "+"its use was designed to support displaying data over commercial "+"basemaps, but that functionality should now be achieved by using "+"Spherical Mercator support. More information is available from "+"https://web.archive.org/web/20130515004755/http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"This method has been deprecated and will be removed in 3.0. "+"Please use ${newMethod} instead.",'boundsAddError':"You must pass both x and y values to the add function.",'lonlatAddError':"You must pass both lon and lat values to the add function.",'pixelAddError':"You must pass both x and y values to the add function.",'unsupportedGeometryType':"Unsupported geometry type: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",'filterEvaluateNotImplemented':"evaluate is not implemented for this filter type.",'end':''};OpenLayers.Projection=OpenLayers.Class({proj:null,projCode:null,initialize:function(projCode,options){OpenLayers.Util.extend(this,options);this.projCode=projCode;if(window.Proj4js){this.proj=new Proj4js.Proj(projCode);}},getCode:function(){return this.proj?this.proj.srsCode:this.projCode;},getUnits:function(){return this.proj?this.proj.units:null;},toString:function(){return this.getCode();},equals:function(projection){if(projection&&projection.getCode){return this.getCode()==projection.getCode();}else{return false;}},destroy:function(){delete this.proj;delete this.projCode;},CLASS_NAME:"OpenLayers.Projection"});OpenLayers.Projection.transforms={};OpenLayers.Projection.addTransform=function(from,to,method){if(!OpenLayers.Projection.transforms[from]){OpenLayers.Projection.transforms[from]={};} +OpenLayers.Projection.transforms[from][to]=method;};OpenLayers.Projection.transform=function(point,source,dest){if(source.proj&&dest.proj){point=Proj4js.transform(source.proj,dest.proj,point);}else if(source&&dest&&OpenLayers.Projection.transforms[source.getCode()]&&OpenLayers.Projection.transforms[source.getCode()][dest.getCode()]){OpenLayers.Projection.transforms[source.getCode()][dest.getCode()](point);} +return point;};OpenLayers.Tile=OpenLayers.Class({EVENT_TYPES:["loadstart","loadend","reload","unload"],events:null,id:null,layer:null,url:null,bounds:null,size:null,position:null,isLoading:false,initialize:function(layer,position,bounds,url,size){this.layer=layer;this.position=position.clone();this.bounds=bounds.clone();this.url=url;this.size=size.clone();this.id=OpenLayers.Util.createUniqueID("Tile_");this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);},unload:function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("unload");}},destroy:function(){this.layer=null;this.bounds=null;this.size=null;this.position=null;this.events.destroy();this.events=null;},clone:function(obj){if(obj==null){obj=new OpenLayers.Tile(this.layer,this.position,this.bounds,this.url,this.size);} +OpenLayers.Util.applyDefaults(obj,this);return obj;},draw:function(){var maxExtent=this.layer.maxExtent;var withinMaxExtent=(maxExtent&&this.bounds.intersectsBounds(maxExtent,false));this.shouldDraw=(withinMaxExtent||this.layer.displayOutsideMaxExtent);this.clear();return this.shouldDraw;},moveTo:function(bounds,position,redraw){if(redraw==null){redraw=true;} +this.bounds=bounds.clone();this.position=position.clone();if(redraw){this.draw();}},clear:function(){},getBoundsFromBaseLayer:function(position){var msg=OpenLayers.i18n('reprojectDeprecated',{'layerName':this.layer.name});OpenLayers.Console.warn(msg);var topLeft=this.layer.map.getLonLatFromLayerPx(position);var bottomRightPx=position.clone();bottomRightPx.x+=this.size.w;bottomRightPx.y+=this.size.h;var bottomRight=this.layer.map.getLonLatFromLayerPx(bottomRightPx);if(topLeft.lon>bottomRight.lon){if(topLeft.lon<0){topLeft.lon=-180-(topLeft.lon+180);}else{bottomRight.lon=180+bottomRight.lon+180;}} +var bounds=new OpenLayers.Bounds(topLeft.lon,bottomRight.lat,bottomRight.lon,topLeft.lat);return bounds;},showTile:function(){if(this.shouldDraw){this.show();}},show:function(){},hide:function(){},CLASS_NAME:"OpenLayers.Tile"});OpenLayers.Handler=OpenLayers.Class({id:null,control:null,map:null,keyMask:null,active:false,evt:null,initialize:function(control,callbacks,options){OpenLayers.Util.extend(this,options);this.control=control;this.callbacks=callbacks;var map=this.map||control.map;if(map){this.setMap(map);} +this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},setMap:function(map){this.map=map;},checkModifiers:function(evt){if(this.keyMask==null){return true;} +var keyModifiers=(evt.shiftKey?OpenLayers.Handler.MOD_SHIFT:0)|(evt.ctrlKey?OpenLayers.Handler.MOD_CTRL:0)|(evt.altKey?OpenLayers.Handler.MOD_ALT:0);return(keyModifiers==this.keyMask);},activate:function(){if(this.active){return false;} +var events=OpenLayers.Events.prototype.BROWSER_EVENTS;for(var i=0,len=events.length;i=0;--i){this.controls[i].destroy();} +this.controls=null;} +if(this.layers!=null){for(var i=this.layers.length-1;i>=0;--i){this.layers[i].destroy(false);} +this.layers=null;} +if(this.viewPortDiv){this.div.removeChild(this.viewPortDiv);} +this.viewPortDiv=null;if(this.eventListeners){this.events.un(this.eventListeners);this.eventListeners=null;} +this.events.destroy();this.events=null;},setOptions:function(options){OpenLayers.Util.extend(this,options);},getTileSize:function(){return this.tileSize;},getBy:function(array,property,match){var test=(typeof match.test=="function");var found=OpenLayers.Array.filter(this[array],function(item){return item[property]==match||(test&&match.test(item[property]));});return found;},getLayersBy:function(property,match){return this.getBy("layers",property,match);},getLayersByName:function(match){return this.getLayersBy("name",match);},getLayersByClass:function(match){return this.getLayersBy("CLASS_NAME",match);},getControlsBy:function(property,match){return this.getBy("controls",property,match);},getControlsByClass:function(match){return this.getControlsBy("CLASS_NAME",match);},getLayer:function(id){var foundLayer=null;for(var i=0,len=this.layers.length;ithis.layers.length){idx=this.layers.length;} +if(base!=idx){this.layers.splice(base,1);this.layers.splice(idx,0,layer);for(var i=0,len=this.layers.length;i=0;--i){this.removePopup(this.popups[i]);}} +popup.map=this;this.popups.push(popup);var popupDiv=popup.draw();if(popupDiv){popupDiv.style.zIndex=this.Z_INDEX_BASE['Popup']+ +this.popups.length;this.layerContainerDiv.appendChild(popupDiv);}},removePopup:function(popup){OpenLayers.Util.removeItem(this.popups,popup);if(popup.div){try{this.layerContainerDiv.removeChild(popup.div);} +catch(e){}} +popup.map=null;},getSize:function(){var size=null;if(this.size!=null){size=this.size.clone();} +return size;},updateSize:function(){var newSize=this.getCurrentSize();if(newSize&&!isNaN(newSize.h)&&!isNaN(newSize.w)){this.events.clearMouseCache();var oldSize=this.getSize();if(oldSize==null){this.size=oldSize=newSize;} +if(!newSize.equals(oldSize)){this.size=newSize;for(var i=0,len=this.layers.length;ithis.restrictedExtent.getWidth()){lonlat=new OpenLayers.LonLat(maxCenter.lon,lonlat.lat);}else if(extent.leftthis.restrictedExtent.right){lonlat=lonlat.add(this.restrictedExtent.right- +extent.right,0);} +if(extent.getHeight()>this.restrictedExtent.getHeight()){lonlat=new OpenLayers.LonLat(lonlat.lon,maxCenter.lat);}else if(extent.bottomthis.restrictedExtent.top){lonlat=lonlat.add(0,this.restrictedExtent.top- +extent.top);}}} +var zoomChanged=forceZoomChange||((this.isValidZoomLevel(zoom))&&(zoom!=this.getZoom()));var centerChanged=(this.isValidLonLat(lonlat))&&(!lonlat.equals(this.center));if(zoomChanged||centerChanged||!dragging){if(!this.dragging&&!noEvent){this.events.triggerEvent("movestart");} +if(centerChanged){if((!zoomChanged)&&(this.center)){this.centerLayerContainer(lonlat);} +this.center=lonlat.clone();} +if((zoomChanged)||(this.layerContainerOrigin==null)){this.layerContainerOrigin=this.center.clone();this.layerContainerDiv.style.left="0px";this.layerContainerDiv.style.top="0px";} +if(zoomChanged){this.zoom=zoom;this.resolution=this.getResolutionForZoom(zoom);this.viewRequestID++;} +var bounds=this.getExtent();if(this.baseLayer.visibility){this.baseLayer.moveTo(bounds,zoomChanged,dragging);if(dragging){this.baseLayer.events.triggerEvent("move");}else{this.baseLayer.events.triggerEvent("moveend",{"zoomChanged":zoomChanged});}} +bounds=this.baseLayer.getExtent();for(var i=0,len=this.layers.length;i=0)&&(zoomLevel0){resolution=this.layers[0].getResolution();} +return resolution;},getUnits:function(){var units=null;if(this.baseLayer!=null){units=this.baseLayer.units;} +return units;},getScale:function(){var scale=null;if(this.baseLayer!=null){var res=this.getResolution();var units=this.baseLayer.units;scale=OpenLayers.Util.getScaleFromResolution(res,units);} +return scale;},getZoomForExtent:function(bounds,closest){var zoom=null;if(this.baseLayer!=null){zoom=this.baseLayer.getZoomForExtent(bounds,closest);} +return zoom;},getResolutionForZoom:function(zoom){var resolution=null;if(this.baseLayer){resolution=this.baseLayer.getResolutionForZoom(zoom);} +return resolution;},getZoomForResolution:function(resolution,closest){var zoom=null;if(this.baseLayer!=null){zoom=this.baseLayer.getZoomForResolution(resolution,closest);} +return zoom;},zoomTo:function(zoom){if(this.isValidZoomLevel(zoom)){this.setCenter(null,zoom);}},zoomIn:function(){this.zoomTo(this.getZoom()+1);},zoomOut:function(){this.zoomTo(this.getZoom()-1);},zoomToExtent:function(bounds,closest){var center=bounds.getCenterLonLat();if(this.baseLayer.wrapDateLine){var maxExtent=this.getMaxExtent();bounds=bounds.clone();while(bounds.rightOpenLayers.IMAGE_RELOAD_ATTEMPTS){onload.call(this);}};OpenLayers.Event.observe(this.imgDiv,"error",OpenLayers.Function.bind(onerror,this));},checkImgURL:function(){if(this.layer){var loaded=this.layerAlphaHack?this.imgDiv.firstChild.src:this.imgDiv.src;if(!OpenLayers.Util.isEquivalentUrl(loaded,this.url)){this.hide();}}},startTransition:function(){if(!this.backBufferTile||!this.backBufferTile.imgDiv){return;} +var ratio=1;if(this.backBufferTile.resolution){ratio=this.backBufferTile.resolution/this.layer.getResolution();} +if(ratio!=this.lastRatio){if(this.layer.transitionEffect=='resize'){var upperLeft=new OpenLayers.LonLat(this.backBufferTile.bounds.left,this.backBufferTile.bounds.top);var size=new OpenLayers.Size(this.backBufferTile.size.w*ratio,this.backBufferTile.size.h*ratio);var px=this.layer.map.getLayerPxFromLonLat(upperLeft);OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,null,px,size);var imageSize=this.backBufferTile.imageSize;imageSize=new OpenLayers.Size(imageSize.w*ratio,imageSize.h*ratio);var imageOffset=this.backBufferTile.imageOffset;if(imageOffset){imageOffset=new OpenLayers.Pixel(imageOffset.x*ratio,imageOffset.y*ratio);} +OpenLayers.Util.modifyDOMElement(this.backBufferTile.imgDiv,null,imageOffset,imageSize);this.backBufferTile.show();}}else{if(this.layer.singleTile){this.backBufferTile.show();}else{this.backBufferTile.hide();}} +this.lastRatio=ratio;},show:function(){this.frame.style.display='';if(OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1){if(navigator.userAgent.toLowerCase().indexOf("gecko")!=-1){this.frame.scrollLeft=this.frame.scrollLeft;}}},hide:function(){this.frame.style.display='none';},CLASS_NAME:"OpenLayers.Tile.Image"});OpenLayers.Tile.Image.useBlankTile=(OpenLayers.Util.getBrowserName()=="safari"||OpenLayers.Util.getBrowserName()=="opera");OpenLayers.Handler.Click=OpenLayers.Class(OpenLayers.Handler,{delay:300,single:true,'double':false,pixelTolerance:0,stopSingle:false,stopDouble:false,timerId:null,down:null,rightclickTimerId:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);if(this.pixelTolerance!=null){this.mousedown=function(evt){this.down=evt.xy;return true;};}},mousedown:null,mouseup:function(evt){var propagate=true;if(this.checkModifiers(evt)&&this.control.handleRightClicks&&OpenLayers.Event.isRightClick(evt)){propagate=this.rightclick(evt);} +return propagate;},rightclick:function(evt){if(this.passesTolerance(evt)){if(this.rightclickTimerId!=null){this.clearTimer();this.callback('dblrightclick',[evt]);return!this.stopDouble;}else{var clickEvent=this['double']?OpenLayers.Util.extend({},evt):this.callback('rightclick',[evt]);var delayedRightCall=OpenLayers.Function.bind(this.delayedRightCall,this,clickEvent);this.rightclickTimerId=window.setTimeout(delayedRightCall,this.delay);}} +return!this.stopSingle;},delayedRightCall:function(evt){this.rightclickTimerId=null;if(evt){this.callback('rightclick',[evt]);} +return!this.stopSingle;},dblclick:function(evt){if(this.passesTolerance(evt)){if(this["double"]){this.callback('dblclick',[evt]);} +this.clearTimer();} +return!this.stopDouble;},click:function(evt){if(this.passesTolerance(evt)){if(this.timerId!=null){this.clearTimer();}else{var clickEvent=this.single?OpenLayers.Util.extend({},evt):null;this.timerId=window.setTimeout(OpenLayers.Function.bind(this.delayedCall,this,clickEvent),this.delay);}} +return!this.stopSingle;},passesTolerance:function(evt){var passes=true;if(this.pixelTolerance!=null&&this.down){var dpx=Math.sqrt(Math.pow(this.down.x-evt.xy.x,2)+ +Math.pow(this.down.y-evt.xy.y,2));if(dpx>this.pixelTolerance){passes=false;}} +return passes;},clearTimer:function(){if(this.timerId!=null){window.clearTimeout(this.timerId);this.timerId=null;} +if(this.rightclickTimerId!=null){window.clearTimeout(this.rightclickTimerId);this.rightclickTimerId=null;}},delayedCall:function(evt){this.timerId=null;if(evt){this.callback('click',[evt]);}},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.clearTimer();this.down=null;deactivated=true;} +return deactivated;},CLASS_NAME:"OpenLayers.Handler.Click"});OpenLayers.Handler.Drag=OpenLayers.Class(OpenLayers.Handler,{started:false,stopDown:true,dragging:false,last:null,start:null,oldOnselectstart:null,interval:0,timeoutId:null,documentDrag:false,documentEvents:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},down:function(evt){},move:function(evt){},up:function(evt){},out:function(evt){},mousedown:function(evt){var propagate=true;this.dragging=false;if(this.checkModifiers(evt)&&OpenLayers.Event.isLeftClick(evt)){this.started=true;this.start=evt.xy;this.last=evt.xy;OpenLayers.Element.addClass(this.map.viewPortDiv,"olDragDown");this.down(evt);this.callback("down",[evt.xy]);OpenLayers.Event.stop(evt);if(!this.oldOnselectstart){this.oldOnselectstart=(document.onselectstart)?document.onselectstart:OpenLayers.Function.True;} +document.onselectstart=OpenLayers.Function.False;propagate=!this.stopDown;}else{this.started=false;this.start=null;this.last=null;} +return propagate;},mousemove:function(evt){if(this.started&&!this.timeoutId&&(evt.xy.x!=this.last.x||evt.xy.y!=this.last.y)){if(this.documentDrag===true&&this.documentEvents){if(evt.element===document){this.adjustXY(evt);this.setEvent(evt);}else{this.destroyDocumentEvents();}} +if(this.interval>0){this.timeoutId=setTimeout(OpenLayers.Function.bind(this.removeTimeout,this),this.interval);} +this.dragging=true;this.move(evt);this.callback("move",[evt.xy]);if(!this.oldOnselectstart){this.oldOnselectstart=document.onselectstart;document.onselectstart=OpenLayers.Function.False;} +this.last=this.evt.xy;} +return true;},removeTimeout:function(){this.timeoutId=null;},mouseup:function(evt){if(this.started){if(this.documentDrag===true&&this.documentEvents){this.adjustXY(evt);this.destroyDocumentEvents();} +var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.up(evt);this.callback("up",[evt.xy]);if(dragged){this.callback("done",[evt.xy]);} +document.onselectstart=this.oldOnselectstart;} +return true;},mouseout:function(evt){if(this.started&&OpenLayers.Util.mouseLeft(evt,this.map.div)){if(this.documentDrag===true){this.documentEvents=new OpenLayers.Events(this,document,null,null,{includeXY:true});this.documentEvents.on({mousemove:this.mousemove,mouseup:this.mouseup});OpenLayers.Element.addClass(document.body,"olDragDown");}else{var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.out(evt);this.callback("out",[]);if(dragged){this.callback("done",[evt.xy]);} +if(document.onselectstart){document.onselectstart=this.oldOnselectstart;}}} +return true;},click:function(evt){return(this.start==this.last);},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragging=false;activated=true;} +return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.started=false;this.dragging=false;this.start=null;this.last=null;deactivated=true;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");} +return deactivated;},adjustXY:function(evt){var pos=OpenLayers.Util.pagePosition(this.map.div);evt.xy.x-=pos[0];evt.xy.y-=pos[1];},destroyDocumentEvents:function(){OpenLayers.Element.removeClass(document.body,"olDragDown");this.documentEvents.destroy();this.documentEvents=null;},CLASS_NAME:"OpenLayers.Handler.Drag"});OpenLayers.Handler.MouseWheel=OpenLayers.Class(OpenLayers.Handler,{wheelListener:null,mousePosition:null,interval:0,delta:0,cumulative:true,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);this.wheelListener=OpenLayers.Function.bindAsEventListener(this.onWheelEvent,this);},destroy:function(){OpenLayers.Handler.prototype.destroy.apply(this,arguments);this.wheelListener=null;},onWheelEvent:function(e){if(!this.map||!this.checkModifiers(e)){return;} +var overScrollableDiv=false;var overLayerDiv=false;var overMapDiv=false;var elem=OpenLayers.Event.element(e);while((elem!=null)&&!overMapDiv&&!overScrollableDiv){if(!overScrollableDiv){try{if(elem.currentStyle){overflow=elem.currentStyle["overflow"];}else{var style=document.defaultView.getComputedStyle(elem,null);var overflow=style.getPropertyValue("overflow");} +overScrollableDiv=(overflow&&(overflow=="auto")||(overflow=="scroll"));}catch(err){}} +if(!overLayerDiv){for(var i=0,len=this.map.layers.length;i=0){this.initResolutions();break;}}}},onMapResize:function(){},redraw:function(){var redrawn=false;if(this.map){this.inRange=this.calculateInRange();var extent=this.getExtent();if(extent&&this.inRange&&this.visibility){var zoomChanged=true;this.moveTo(extent,zoomChanged,false);this.events.triggerEvent("moveend",{"zoomChanged":zoomChanged});redrawn=true;}} +return redrawn;},moveTo:function(bounds,zoomChanged,dragging){var display=this.visibility;if(!this.isBaseLayer){display=display&&this.inRange;} +this.display(display);},setMap:function(map){if(this.map==null){this.map=map;this.maxExtent=this.maxExtent||this.map.maxExtent;this.minExtent=this.minExtent||this.map.minExtent;this.projection=this.projection||this.map.projection;if(typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection);} +this.units=this.projection.getUnits()||this.units||this.map.units;this.initResolutions();if(!this.isBaseLayer){this.inRange=this.calculateInRange();var show=((this.visibility)&&(this.inRange));this.div.style.display=show?"":"none";} +this.setTileSize();}},afterAdd:function(){},removeMap:function(map){},getImageSize:function(bounds){return(this.imageSize||this.tileSize);},setTileSize:function(size){var tileSize=(size)?size:((this.tileSize)?this.tileSize:this.map.getTileSize());this.tileSize=tileSize;if(this.gutter){this.imageOffset=new OpenLayers.Pixel(-this.gutter,-this.gutter);this.imageSize=new OpenLayers.Size(tileSize.w+(2*this.gutter),tileSize.h+(2*this.gutter));}},getVisibility:function(){return this.visibility;},setVisibility:function(visibility){if(visibility!=this.visibility){this.visibility=visibility;this.display(visibility);this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"visibility"});} +this.events.triggerEvent("visibilitychanged");}},display:function(display){if(display!=(this.div.style.display!="none")){this.div.style.display=(display&&this.calculateInRange())?"block":"none";}},calculateInRange:function(){var inRange=false;if(this.alwaysInRange){inRange=true;}else{if(this.map){var resolution=this.map.getResolution();inRange=((resolution>=this.minResolution)&&(resolution<=this.maxResolution));}} +return inRange;},setIsBaseLayer:function(isBaseLayer){if(isBaseLayer!=this.isBaseLayer){this.isBaseLayer=isBaseLayer;if(this.map!=null){this.map.events.triggerEvent("changebaselayer",{layer:this});}}},initResolutions:function(){var i,len;var props={},alwaysInRange=true;for(i=0,len=this.RESOLUTION_PROPERTIES.length;i=resolution){highRes=res;lowZoom=i;} +if(res<=resolution){lowRes=res;highZoom=i;break;}} +var dRes=highRes-lowRes;if(dRes>0){zoom=lowZoom+((highRes-resolution)/dRes);}else{zoom=lowZoom;}}else{var diff;var minDiff=Number.POSITIVE_INFINITY;for(var i=0,len=this.resolutions.length;iminDiff){break;} +minDiff=diff;}else{if(this.resolutions[i]startX){this.zoomBox.style.width=Math.max(1,deltaX-box.xOffset)+"px";} +if(xy.y>startY){this.zoomBox.style.height=Math.max(1,deltaY-box.yOffset)+"px";}}},endBox:function(end){var result;if(Math.abs(this.dragHandler.start.x-end.x)>5||Math.abs(this.dragHandler.start.y-end.y)>5){var start=this.dragHandler.start;var top=Math.min(start.y,end.y);var bottom=Math.max(start.y,end.y);var left=Math.min(start.x,end.x);var right=Math.max(start.x,end.x);result=new OpenLayers.Bounds(left,bottom,right,top);}else{result=this.dragHandler.start.clone();} +this.removeBox();this.callback("done",[result]);},removeBox:function(){this.map.viewPortDiv.removeChild(this.zoomBox);this.zoomBox=null;this.boxCharacteristics=null;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDrawBox");},activate:function(){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragHandler.activate();return true;}else{return false;}},deactivate:function(){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.dragHandler.deactivate();return true;}else{return false;}},getBoxCharacteristics:function(){if(!this.boxCharacteristics){var xOffset=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-left-width"))+parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-right-width"))+1;var yOffset=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-top-width"))+parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-bottom-width"))+1;var newBoxModel=OpenLayers.Util.getBrowserName()=="msie"?document.compatMode!="BackCompat":true;this.boxCharacteristics={xOffset:xOffset,yOffset:yOffset,newBoxModel:newBoxModel};} +return this.boxCharacteristics;},CLASS_NAME:"OpenLayers.Handler.Box"});OpenLayers.Layer.HTTPRequest=OpenLayers.Class(OpenLayers.Layer,{URL_HASH_FACTOR:(Math.sqrt(5)-1)/2,url:null,params:null,reproject:false,initialize:function(name,url,params,options){var newArguments=arguments;newArguments=[name,options];OpenLayers.Layer.prototype.initialize.apply(this,newArguments);this.url=url;this.params=OpenLayers.Util.extend({},params);},destroy:function(){this.url=null;this.params=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.HTTPRequest(this.name,this.url,this.params,this.getOptions());} +obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);return obj;},setUrl:function(newUrl){this.url=newUrl;},mergeNewParams:function(newParams){this.params=OpenLayers.Util.extend(this.params,newParams);var ret=this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"params"});} +return ret;},redraw:function(force){if(force){return this.mergeNewParams({"_olSalt":Math.random()});}else{return OpenLayers.Layer.prototype.redraw.apply(this,[]);}},selectUrl:function(paramString,urls){var product=1;for(var i=0,len=paramString.length;i=bounds.bottom-tilelat*this.buffer)||rowidx=0)&&(testCell=0)){tile=this.grid[testRow][testCell];} +if((tile!=null)&&(!tile.queued)){tileQueue.unshift(tile);tile.queued=true;directionsTried=0;iRow=testRow;iCell=testCell;}else{direction=(direction+1)%4;directionsTried++;}} +for(var i=0,len=tileQueue.length;i-this.tileSize.w*(buffer-1)){this.shiftColumn(true);}else if(tlViewPort.x<-this.tileSize.w*buffer){this.shiftColumn(false);}else if(tlViewPort.y>-this.tileSize.h*(buffer-1)){this.shiftRow(true);}else if(tlViewPort.y<-this.tileSize.h*buffer){this.shiftRow(false);}else{break;}};},shiftRow:function(prepend){var modelRowIndex=(prepend)?0:(this.grid.length-1);var grid=this.grid;var modelRow=grid[modelRowIndex];var resolution=this.map.getResolution();var deltaY=(prepend)?-this.tileSize.h:this.tileSize.h;var deltaLat=resolution*-deltaY;var row=(prepend)?grid.pop():grid.shift();for(var i=0,len=modelRow.length;irows){var row=this.grid.pop();for(var i=0,l=row.length;icolumns){for(var i=0,l=this.grid.length;i=1.3&&!params.EXCEPTIONS){params.EXCEPTIONS="INIMAGE";} +newArguments.push(name,url,params,options);OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);OpenLayers.Util.applyDefaults(this.params,OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS));if(!this.noMagic&&this.params.TRANSPARENT&&this.params.TRANSPARENT.toString().toLowerCase()=="true"){if((options==null)||(!options.isBaseLayer)){this.isBaseLayer=false;} +if(this.params.FORMAT=="image/jpeg"){this.params.FORMAT=OpenLayers.Util.alphaHack()?"image/gif":"image/png";}}},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.WMS(this.name,this.url,this.params,this.getOptions());} +obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},reverseAxisOrder:function(){return(parseFloat(this.params.VERSION)>=1.3&&!!this.yx[this.map.getProjectionObject().getCode()]);},getURL:function(bounds){bounds=this.adjustBounds(bounds);var imageSize=this.getImageSize();var newParams={};var reverseAxisOrder=this.reverseAxisOrder();newParams.BBOX=this.encodeBBOX?bounds.toBBOX(null,reverseAxisOrder):bounds.toArray(reverseAxisOrder);newParams.WIDTH=imageSize.w;newParams.HEIGHT=imageSize.h;var requestString=this.getFullRequestString(newParams);return requestString;},addTile:function(bounds,position){return new OpenLayers.Tile.Image(this,position,bounds,null,this.tileSize);},mergeNewParams:function(newParams){var upperParams=OpenLayers.Util.upperCaseObject(newParams);var newArguments=[upperParams];return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,newArguments);},getFullRequestString:function(newParams,altUrl){var projectionCode=this.map.getProjection();var value=(projectionCode=="none")?null:projectionCode +if(parseFloat(this.params.VERSION)>=1.3){this.params.CRS=value;}else{this.params.SRS=value;} +return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this,arguments);},CLASS_NAME:"OpenLayers.Layer.WMS"}); diff --git a/extra/lib/README.md b/extra/lib/README.md new file mode 100644 index 00000000000..abae71b2f15 --- /dev/null +++ b/extra/lib/README.md @@ -0,0 +1,23 @@ +# OpenLayers library files for template=openlayers + +MapServer's built-in [OpenLayers viewer](https://mapserver.org/cgi/openlayers.html) +points to a hardcoded filepath of `www.mapserver.org/lib` to find the OpenLayers +library, referred to in [maptemplate.c](https://github.com/MapServer/MapServer/blob/main/src/maptemplate.c#L54). + +The entire contents of the `lib` folder in this documentation repository +will now be copied as-is, when the documentation is built & deployed. + +Previously, the `lib` folder containing the OpenLayers library only existed on +a server (that could be pruned through various possible steps during the +automatic deployment of the MapServer documentation). + +# Related + +- [RFC 63](https://mapserver.org/development/rfc/ms-rfc-63.html) (add + Built-in OpenLayers map viewer) +- initial [issue #3549](https://github.com/MapServer/MapServer/issues/3549) + +# History + +- updated to OpenLayers 2.10 in 2014 +- initially included in the MapServer 6.0 release in 2011 diff --git a/extra/lib/img/blank.gif b/extra/lib/img/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bcc753a12e9854923af4b9b5b9a4b76f1bc53a6 GIT binary patch literal 42 ocmZ?wbhEHbWMp7uXkY+=|Ns9h{$ybUF?B!$NXCJQ(S^Yp0J?7nHvj+t literal 0 HcmV?d00001 diff --git a/extra/lib/img/cloud-popup-relative.png b/extra/lib/img/cloud-popup-relative.png new file mode 100644 index 0000000000000000000000000000000000000000..1215a36184b22834733c302f9ca1c894099aa6c8 GIT binary patch literal 3177 zcmd^BYgAKL7QO*BVq~IVMI1t8ETYvCC{#t%5Rg#{1`8;aw1B7)6bv;8gP4cILK0#V ztxKW>4b_fdd1M6I7+#@}NVOnfKtP0OR8V3FH;|CWO)@vGS@Uatpub!*cdfJU-TUls zuXFb~``d@Thq%*u(aJ>t060hN+7SZ)^B@3lc)HLLwrujb;t9VH)R>*2K+OY>*RT?_ zCn_#{pHoO@XQxV~dh_OuTCJX(oYZJEQ&UqQ2x_(3>FH^`UOziKYcv{7CX?B0wpc7y ztJP++@qGLn>=CnKh_OJ(*dW=iq(tuA0kGy{cEO5M=C1uz09Z6-ABfPZz{{`^nH8}+ z965wqj0*TP*Fo|H0H8`Eb`awJ_E*{n8RaeDp>s@-NPEs->agXiSv-oY z5ahpcN7G~;^QGE0m|&}mZDdjnDC*uvOsDq z&W{Y8bMj-JWMPwG8`FSbVdpAV(UnM+z<^L9SJ8nv3Z{XLoxAtjsQ){Vx5;|1BzqyG z=nx2)s{mc`@8JD5>W2wgf(IR?(GUPSF2T=Lgg{dCTipL;#^8N_*R6d2B!@Z7oh@Ki zQNH8Z|6n2S&wMar&Y537oZk;2t0*AJeOYo7TX4(H-;OektO95z(Ri@#r-VzCX;ssU z1SZ64B9!=iHvJIuS~Z>f?@0@jFf3vP-*7xP&@y1!=8jEn(!(&aIZ-vFx5sPpKW0fiIw9`OL@6o|BO8=9blye-b`%}976cpf6QA?xGMv)5`QV10f~I&&P2T#Bv{!WyK>%`ItZ94*$xB&Q|9M^t-zYf|oeUDBpfPl3M~9+w+M^epcYlzDA7i$|A+Rl5Zza-$-#8 zYh3^MLDWtoenw&`21JzN3FI_SK}#_IdUBS)GG|Y!w_Pbb-j61GN-`d=d(v_J$m>g^ z^13$}0br%|*_lv~v?j6H^tHB1jM!INnx@E(=gT9{M^7LFzEf=)qs+3i&x7u zMVf_(T%LYB0pt{>6@z)c%O$S~ma<#z%?~_d{hy|GrYsJD?i2lGLa3{&HHq7i@ehMV zAGtAro%ATrpC}nipFnnDG~V3bDVv7wp3h$zKjP-x=|{h4=sL0@xyKYp*Pt8d zdFNatZ8_Ka8w-6YC7ws6-ELQ(6(cPz+DkS2rNUPJ6gj}fZ;UN8^pkYU@u{!=+1=Qk z`Vtc>%q@>k-}tzVe5-YS2ThC_Td%n!P}u;d;Z9NQ?(LZwmLJ#(@92p8u9E5Dfd`J? zGdWx+2EDJ!db;!H)jd5o{Li3xme6ijq3zI&%7=bLk<^WBQ8*0#e6uiIuG5DRsfdsSA(`n15xQBCxgOr+MnkP0lZ&2y%^{jSbu* z>6oFMiYrPQGSO%d;4J{@6YwoP}v3OWwjzO-$bj&Jq!Na zeb|TI^OaS5y7~Cg7CQg*XsOy2pSqSo;oEY8wEQ}kN|zF6>Es>hMJ+{e8uwSItPUE% zbkl?ny834NaNHwJIc!0I3MPoM+mP&lQ`S%%lr2_?wr)uG(Ok3_}4!g7G zLwCD9ZK3T_Ds8QT3j(FFCV!S{Tyz-(KM2U&^qo_Tqtx0T2xf z510r*#p}0MU9L}Z-I5}*imKAuOe&$h1i3c-hW66dNWGgDQS!$lGm&*$Zs^Z=3x zA=nPn)W?J(iFoF2+#PP1+YhXUDlAtmb++2)o?hW~P&fSo%*!cXYv=A=!-7CbqH<5E z0hD@Z)-qD}${R~JEYeVle^3!5nPX{K$m33K)%NxEjkRmN2RI!w<`WknQgdINUe;8W zS8sHiokZp6sR`-mp6PEs2%P;r8O;!iu#0mIJKn4k(_~?fw}@+2?^2k|h8MOta%nq- zMMgNC>eY)WUk86JO2&2QOko5lZ>R|cGo__Wc4CYlv3ba*^`#mWS4O2ve+iK*X}yIp zyO_vj;pbmcUv~&6uB&W`V`s}cy-mpejyg8a^Wex6s$^5XXMXQ zvnHoT^O{@#6b*n+X#gdQM?wey17H9`ms6QpDV87r7?n;ZNi3|0ys9d^w*-~qYrus8O{egy> zf~|E%0Ov;1AALF_gfeT^ahn^Bok3YtsIk8A(RX?lJBxtnEUA0Cchd^jaq`y%cq(?m z-*@Ju+djH&rJ8T=J!IW>b#nRmXk=a@fRSOPW<~DV-@?BhZ{D(_lxB5OOb+mg{`Qm_ zPxyzLy~5y2OR>40aXEP^eCT_L^>}LW)BHpL{pSq;RYkFo@-}>dgOVUCf=hW530T2H(ddhG1v#03MBLu?a#LnhmzMM9% z(Qa>y7j_)3kekr^?_HYHHwt{_J+!@#hJ{DK^fh}~wXuJOPiFGUMglgYtn*NX1*vLr z+^5Z7R<(R=GW?z>jpBKA z4prWr$7l1DF%hj3)kHMba!p&K!Gq1;hMa(zxqDG$S2wD?@e^1{U(pzk4Z2C1se|Mo zIq@5S`Bv)tU3kHOv&170BzaM>EcRXBGq7lXTS8~ChJ(fbkq96ZFc((4x~C_)W`d`u z(tSP)5{X|)P2RS|tpVX%ogOsbb2z9amKQ%g zSm5Ig0E|_;FQB^4!RPBpYFWCc>2GSJRXsBP6blMVC_I#$DntPQU_StEv`r{gx`nxs zR&{c5${wJ-*IQKgN7CQ_JSsPYiBeNq%I^xG-q>}oR(Dt0B{;3*AUAxam=Ii7Y%0IunquRlK!lkzf`nOx9q;&Xe8IL%zWQi8B1?Q_W5A|Kv+?ee#IlG zG(<#MiN78$9+yc%LFA}S(c5mEdy4Ti}YS&gpK~WCAUqqlkEA9;8HJ1l+cHL6%UAee1VBOtALSF%C zw^|8PMz%aAMb_8KkU8O~(aC%4pi|h@1txE0V_koh;%3Dh6+FZpm2*ZE+W1e z0lRMYqb7scP43HJRpwg*`&&M|iM|8pHo54YHhlTHs)&TdTMX%sM6#}#b`FpT8_7Cs z`t~(NcVm5D>&%OhdU#QYtKIEPLFb^FHpib)P9}kaFGuA^j8nvK!w*1(oX##v#J9aA zJ17nS185;EZMpzz#sSLN1jND3Vpo@%4RwmP9{+!#ds6hVgfcd_vHn^+q+#<+?yuS) zgv7JKDMb8@Rsg`#axX}u`FrIGg82vhqzk&qQIo?#@j@q_)sBUHe|r^S3+3en`2Rl3 zVOilNw$gS^UsHeYu#xe|uq=(sFF9MjQ%iYNhunCV%Z1UT!I~UF8c)AfDJx2PSttO+ g=OxDHCB9(%2l8UY($ek@rvLx|07*qoM6N<$f|>;}-v9sr literal 0 HcmV?d00001 diff --git a/extra/lib/img/east-mini.png b/extra/lib/img/east-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..0707567a7d50203cedc0bd73637db130aeb4b789 GIT binary patch literal 451 zcmV;!0X+VRP)D z)UiuKQ547V@0BoUP#nS`XpnRXbg>~@grLPG3u+4_aTVc#|AOFy{s0FzArL3Q$+RGp z6hScpCk?Ej9E2nZ>^40pd+O6O-t*(bLXn7@U~tC>wgp@Zp;~nzhr>!PcTA~thR3sM1iR9OwDSA6X*4cK zrH-)MH|Aj>A=Lf3GcuV3;jo)d=MqKnVm8l=9~v6A#j;K^>8ITe5ePW+B6~}1&FQp} z&!12zoZ@oXez&|!uYWT6rrRAd7<~RYUt0z#m!FA7Z)mmNr(1PHP_H*cQEtg*JF_CS zxzK3zMI!Nls@52fC-b63T}VnvCi6r*en-FmvFO5SDV54UsM&nO=gUy7zAgd)`ald; tfBhPAE~Ro0tH1sPx#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10USw0 zK~y+TWBmXBKLa{oWbCm7ia7(ZDG-|gu@r_PbODe-FwDTv%@4%$fEZ{xi5STcYoO*Q zBpU#;5aKnkOK=*($2al6nAlYOu7nzd(>t7;{r|sw`T76%@4x?pf;QkWjG-GCu(-oR zKw#4UA3uKo|Muv1SJiO1dA<80RX2fQRqgESEK*{002ovPDHLkV1i4nw6y>L literal 0 HcmV?d00001 diff --git a/extra/lib/img/layer-switcher-minimize.png b/extra/lib/img/layer-switcher-minimize.png new file mode 100644 index 0000000000000000000000000000000000000000..e80bf213f8127f0cae11f6b29d870f04effcac1f GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|mSQK*5Dp-y;YjHK@+C`LBT9nv z(@M${i&7cN%ggmL^RkPR6AM!H@{7`Ezq647D(d!haSXBOeLKmK>yUwnOZ<_thlh+y zpHJM=yxeEujIhx2s`GJMsI7=b{!q*QiBG{2IkI9M;Wh2U6{x z%)QC_*1W4v`=8_v#^opE8?-;nP*rK2cvISQ@3U8`vD1t+w>)o;6MD-RazOi2_JU}x tKmRXod$TcG?U~Hh#Er-Qc^$prcIkauSI*=veW0@#JYD@<);T3K0RU+eU$+1N literal 0 HcmV?d00001 diff --git a/extra/lib/img/marker-blue.png b/extra/lib/img/marker-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..83a90b4c85f708b08220ff501e281b6df6e1171c GIT binary patch literal 992 zcmV<610Vc}P)X1^@s6-qmI800004b3#c}2nYxW zd>{!xLrWaJ zX<&2cGVi$Fn;O%iVYe{MyHLDr%-V2_xvjO8>z;f5pY!~B(I&gQXWOOv!Sm+#{eC~^ zJUq`iKM)b-TL3BqpV$ImaY6q141yr;lH{Pea?K`7_J_s*Z1~qu0LA{m!uFEVGNt}R znvO>`+EI6&0->-b`9mK7@XeNGlYpFJj6Eg$Ll>UdxOLG>)yD#&C_m6L_eXI0#8z!& zu1$!F8;$qHqacvFaI5b6@xO_~hUwT#g>XhkGhuXc*9~3CGgmyh8KM+`BnLs9qpZ9#&tn=Y;?3`BhMuV=B3A$aB1&=YwtpKxV$BS! zEZ>Nl!{6bBEe$x(m_{HJ&VzmvJ8ZeGeTj&!1G!h~VMz}5)_wGIXvwliJ-6spzuoIW zW8_)IHnkN*G!6j5lt@Iw#QD)gORZKg5kOnhPL(@${S+_<3IL8{9=qG~W45;|SrG8% zwJ7~QbZ5|Y?WXDd94HYPmZ`oIJGo2c+?^9>Xc;70_UeYNR1*=O6*>uyXEWnH*E^c| zOl^8yjvg{Och3`1=S(dR3IL|AyxIQ6K~q;JJb}XlX{3^8EK^r%y>w3~5#0tTcBQSs z^w4nb)3;Q|vGx+tp9Mn!z%;V^QpwZK=+G}Y{mx`7{V{sCpSasRTXt3`5sh)zZHRwX zqfYg-?0sB3vtKv=IULW=dQK<+xUSte*ne}P=hoK%fUnNJXK-@Q5z(!=a)nINs^TTf zv%BBFN|GF$08sp&rzsI35G=a3AY5XAvF-oMh@O1g$9EK2H literal 0 HcmV?d00001 diff --git a/extra/lib/img/marker-gold.png b/extra/lib/img/marker-gold.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff9ec52813915962a1f15d9b481cb769b102d18 GIT binary patch literal 831 zcmV-F1Hk-=P)X1^@s6-qmI800004b3#c}2nYxW zdR7i=X zm0L(uQ51&1J>KS=IZl?TU6ANPJtT>sX4w@Xirx%_Uc%}vgDw!1LJ*};FA<>_71o1g zqy>seJ(OK2%Y>whsZl`}1fy)6GdeRms|Ot!ouf{=;D6cs-{1Kci?cT(!gK=GL`PEv z%#FxDogq4kBHfOemxE8&=mj>+7z!lBJ7`?Bl>V+JL^_a$3S^FfN4HZ7MEw^O$Z=@& z9N5i(w|xW{)X&FAZU&~)pbbc!77D1iSc;tnW_`tYSg3~IBc+G&>vsBq{7IoeveUuS z%ryGHH%|@>RZ9)BAPFNMK{8wfWIY zSic*J&%??c;Bs60_U5BjuRwq#8*sU&moHU!5i4`u0~qvzXAo=(9=2FRYwtt%SAO`1 zC<_iLJHd(RdL2HDhu09@J|aU${Cokgj`>7X^7XWHBDN3nDS{&W)8qk-eTDNFbA3i}=0sWooOO6^*n z%Jt4B98pn|16^)dl82|y#TF514c)U%G>b@G?;koY-6Akm$`j}D28OAf2n<53ZmINm z2cADKt^fHqcM;u=3z%nhJ}l|zhuTHBU2*|$_#PA%V|slY6_MYTZA@`VCuwoGI~vEQ zyjn`YY4DcOdHnZt5*x#@%~`mEz~3#1)4&8WX8cA0F^10f#>x@s{#^_hI#*`>@Buqh z7vO$=1JUgC0SU8)iU>}FXUT~SDn(%={)nJJdTb2UQw=9n{{ZUlb)-Lb_=Nxf002ov JPDHLkV1l45bA|u_ literal 0 HcmV?d00001 diff --git a/extra/lib/img/marker-green.png b/extra/lib/img/marker-green.png new file mode 100644 index 0000000000000000000000000000000000000000..17168f1b91a857283440eb923328ff7743c276d8 GIT binary patch literal 967 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 Z3;<*L46wTc`o91G002ovPDHLkV1nF_YdHV_ literal 0 HcmV?d00001 diff --git a/extra/lib/img/measuring-stick-on.png b/extra/lib/img/measuring-stick-on.png new file mode 100644 index 0000000000000000000000000000000000000000..cdb8f345b942219122bc24cd7bcdad1f35b09ca1 GIT binary patch literal 3816 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 literal 0 HcmV?d00001 diff --git a/extra/lib/img/north-mini.png b/extra/lib/img/north-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a0b4033e40426b3dfed17b330fe602607c33c3 GIT binary patch literal 484 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 literal 0 HcmV?d00001 diff --git a/extra/lib/img/slider.png b/extra/lib/img/slider.png new file mode 100644 index 0000000000000000000000000000000000000000..23afd573bbf1832dafe81119693cce89ea945dc9 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W^!3HFa4)S;aDVAa<&kznEsNqQI0P-bETq8EaloF>&ogTfQa-0k``KYHdRL z3--2libuR!>$`)2eZkg6kJ!ExFiQ*dJLWT*8;D(6$7;{WEo8nYE3M1?ehSMZ;{s-r z2Z`?7QygA>+q8OV#sO&=zxg@3TTVamxqn~KRounFMd0N#@6x~!le5)6ul&A7F5^6W zIeuc(gNC4^H_o>d{#mdtzJueKL=Q;SyztGeOefiYzyEj1s^ooKcMzopr08#yEu>b%7 literal 0 HcmV?d00001 diff --git a/extra/lib/img/south-mini.png b/extra/lib/img/south-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4ac8a0f196dcf06d1627ed86f91ccaf9c3f2d7 GIT binary patch literal 481 zcmV<70UrK|P)z zlD|uWQ51%sD?!juGzqmigdjB4P>n(VKtpo{L6Zp|_y@QMIk~y$W(0zxOQr=W2UV*LLZQ8h5D{T}J369`JS`r7Bb}~H1Vy7S+~0p#g8l&btlBjjNxZ z4Sc>k!>yWjV+H}p*?_FsBp7_8So|9F>2!rytYBsZ$l8FU*`(F#;PIpYXtz7K-PcwS zfTR);lnR7_Lo-Jru}`T~=k)Z-3K9{~j{2Y_;2BsQcde~0Q>*<_t2NCaI^Yt~>Pn=W z8KnX{z@-_?qIBRuM9aWXj(UO%h)e;A^ft-#g~3L{rBq-G*abF$jh>vN`@=~Q&5(^h XLCTLS$T zl)paibF^>Dft7U1W{0Gu@=E42itQHT%26p-YAIwfI%Qqh(mLsLs3wZ zP(+h9=ineoV7I|6dC&KJhTrY{xSxB@xtuErAy7+_ic#PY2m>KtLzASEMFp?}CE#S< zL0ym}759L1U~^FjfIL-+DM&K8MJBU58^pLBLr5U7MzeWLqj7}WZP&ytKZDhsiPO1? zqU@7S?;y*P?nM^HucMLGDwE3vDHNjEY%4~^{({14XCmRIREpv8IOYPTL7|D^^*Sh* z4~WNIrU4Vl(?+lNL8sGaH2V4%=#5a zI(-w*NuC&V>Gm(yx`qw)3->;~_Os(HkJvl&8*k0>5?Mr9zb`E~lJO{^#5=$8ppF>tyzo!t1#uE5{2^Q@d+w8{^rUH@BD9j>SO`@5+8V3~Et zERDk?myN;y$@l%wDi51Kkj-FRf343l$70joc`v0O%=1ZUWRF<^3T zk~>cVK@>*M;IIp1RV*w-?1+t)nD}T+`~liYV?k$Yvi|}SS}QHAtTeHs~8=CeJ45 fP4rX#?H_#tm&$|IMWgd%00000NkvXXu0mjfXz|d8 literal 0 HcmV?d00001 diff --git a/extra/lib/img/zoom-world-mini.png b/extra/lib/img/zoom-world-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..2159dde7ba0c32010d5d76910fd4d49bae925912 GIT binary patch literal 1072 zcmV-01kd}4P)K;tg z_(&AUz=Rk^zzAfh$QTk7qoAn37>t|1C}ms<{M$W{;TW8^lbn3#@;m2<;72!Gm{<%6 z2|6+}L(ypD)YkU#`0+4;uw^)+|ARCdIn~vB(P+FG8gigecv4aE7OORkxVQiu4kw2W z)zQ;4y)p5Boztfic>VeZ?Dl11V(wzKKA^C$g@uI`va)K}v7?mE&IzikzsF|Vy)~$) zD3R>!?PO$BGc~oq{rh_{8dbb{HA!%=F9w5x)m0Zyo(wZEFw4Gu;oQ0N-A0gJui*Ic zII61N@#f7GM~^l#JnSGfHHdU^J>Qn{|lABF>%LMO4(?wTk3& zDLFayw6~8@UT!5bGlY*H?SzN>t(X4n*`K7Q1_2 zF>vo*4=-Mf6B43iY;2zV{Aer|14^YQCX<%HKm|vRM6+$15{X2_+}tv^Z+Brf>j01* zI1q{34av!RT3bi(@{-WdFi1ngAVo!qR8+hJKoDH``g(Hd(r*AyLsZ@kqE+s!dnk!e52@dw<#ED-p8r3v54kGR9 z`b12OKU%Ffp`l93%6h1;A0Re10JB*~QPEcjf(w6tZ#+E2G&TJ}X=yh$+iu)$Fqw3m zJlTxY<$@0%{^I7%Z;(htOv1Hm7W8@_ ztkzI+a_ZJv2bi2(q_VP?jEoSHl73?U{s;~pjKt5+3#U^cHa38Xi3KiROhToS@$%&- z;^Vc{*7niSG5#3@aQ=KNV`G2w{(U}mb^RPW)gcyqV(DCY@~oDBzn3yhE&XXd)qOO$&jb@;r+~Y zp$B&+Op96lcFXfce&P<>rxl1f*5#jHu5oIzdd9H^{|B>U_+%4qn^nE{=e+)U>glIW z-s_&&H+eZ9TQb=;*L79Lf~5+fDt!wsP0$i@56JWo?NnZ2vZU*XV2D(Z>mv>=UdazP zqi!2_?3TAqc$asRwKTzJ#fgag&8&NsOiH^_UNhcVcA}?CXUEN^IKf#~uE*ABCe2c6 z3Ts>zwq)n;=px6p%=>a@t7|`cox5#8c#8?d$PKe^&T~8_aeU?fjGsSiX%Dn1C(U*(jVTmsry}V!7KF0-TU&#D^nESl?#TtTrirz zD8F{=e4a<|+Ut&Q5_J?6+#-^4;M|h)HhZ>yn;m%PZm6K6x8p3OLYAp*U;4si9G5EM e^{Vgc6Y?kJ*;+Ny_dEo~2!p4qpUXO@geCy#6~E2^ literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/framedCloud.css b/extra/lib/theme/default/framedCloud.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/extra/lib/theme/default/google.css b/extra/lib/theme/default/google.css new file mode 100644 index 00000000000..3c1c1872a1b --- /dev/null +++ b/extra/lib/theme/default/google.css @@ -0,0 +1,10 @@ +.olLayerGoogleCopyright { + right: 3px; + bottom: 2px; + left: auto; +} +.olLayerGooglePoweredBy { + left: 2px; + bottom: 2px; +} + diff --git a/extra/lib/theme/default/ie6-style.css b/extra/lib/theme/default/ie6-style.css new file mode 100644 index 00000000000..65f6b192cde --- /dev/null +++ b/extra/lib/theme/default/ie6-style.css @@ -0,0 +1,7 @@ +.olControlZoomPanel div { + background-image: url(img/zoom-panel-NOALPHA.png); +} +.olControlPanPanel div { + background-image: url(img/pan-panel-NOALPHA.png); +} + diff --git a/extra/lib/theme/default/img/add_point_off.png b/extra/lib/theme/default/img/add_point_off.png new file mode 100644 index 0000000000000000000000000000000000000000..aefd09cf33c21ad75939f5f8ab93a99e65114708 GIT binary patch literal 1616 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 S7Cw~#0000bmP+{ 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 literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/draw_line_off.png b/extra/lib/theme/default/img/draw_line_off.png new file mode 100644 index 0000000000000000000000000000000000000000..7f15612548a17545c7dceaee437c78078b9b8373 GIT binary patch literal 1567 zcmV+)2H^RLP)4Tx0C=30lFLg1K^(`wyAnpvLzWQ)dol?P=>Z85n9u_|m;{xVSl87ATbJ3< z3c7X|xf;w~ygf1c5%ueA+q%ZuK&-|E~-~1kcTvJUmF9X;$ zC`l|WD4SbJ#r*^qy5LCFEHe_1ucD>C9wG7dA;{mVbRXVj#y|R}-wU1I?eb#ldyaYt z3kXOa#-6NTKj)O-InI03q>SU7wH-Chm>B|OJrQMGX55z*e8xE?_?B}?%ksNb#vvn} zGZ=p|o=xkP2FN@X)l9<9$ft~hJb&>u8UyA>0avZ*OIpD772x$Xeg0u!a09rXYWnJH zPEDktnw6QFbX-!;0?_ed+jSq{J_Z_P+y1_=?ZzdG@eEWAtw>70b&=#S&~7hs6MNAE zhtP^e{*FSx`7*Gus{L<{)> zu}oFd+cf&WqWZp*TeM&vkX&|$DiJnaIt#dK7O74G%8H>)1eD28XojEr0p&M$wvB-o zTL1t908mU+MbOX9o12jM`}XPQEoWBlUP<(w6n6q!^4GygxA;2b#!#$-Ou{=>-YEf=;z_a#I>ZLn9a+(=jY=0_44@l z_3+=T8yOi$Mn&%I-ezTG=;q<;>gDmkDyXQP?(ORO`~KeB%lrEIX=!OHC@B8=?a{bp z%*@LK1O@f=^}@lx`S|vBb8OPm(z36n%*?^&FMRSEC2lQ>gnX^ z=Hcz_?e_HR?(X4@jEl9hqwm2rm6VhH{QJGTto{A}kdKYLy0m6wUev2BYH4DVl98&a zru6dbl#+y9TvY4FR`~e!u&=J|z&L$;ajcCo|NZu)p_Gk`f85*Gf`NDI>EySqjrjTg zxwohB@9M6soRX1`YkmQ?Ca_A@#gF6>(tW2=H=yA zRZ!vK;K9GJeSCVUsHFe@`{&Ge+1AI}z-{~a@&Et-{rvd;{{645rmv-i`1$r;UR(M6 z_v!5C>gnhI{`r}jm;V3$`~Ca&_V(xK@2#w+pP!;JF)f*xmjC+fVPIeX|Nr{=_w4NF z{QUd<{rvp<`uh3!@9*#X`}zC&`276*^z`)l`udiYmH+*o3S`TqU<@bK{S z^Yi}w{p{=J?Ca*w3q$m;3X#{dBO{Q3X?|LW`I z`uY0R(!>A%{mRF<*w)7S`T6wp^ZNSvo`W-?pr5Iyn$yw1*VV+2kCX84@6pb{>gww9 z^75IPj=;aZ>FDOcoi8FHAF#2v+S}mn@b2&M@sW^}?CIgp$gltZ|NsC0?C9Rn(9pNH zu8E0-dulb6l$4c~l==Di`uOs{rd9d<_vhy1sHK<6z@N>{(d+8y*VM)8(SQ8@`wP5Z z3IG5BElET{R49>Uk}Yn;Fc3yvSqgMWNI*e=M;mIk(7u9EsX<{6uxQm&_yk6_ysJoF z+=8Osp+_h!>^I4(TeZ)>^Sv>%I1XL^kMrp$PTfBKB@f+6oQLvHfV1dZX*FIhB{uH3 z#I3IveaShNT#b3C@v2HK5cMtB+TJI#cwbVBu~is|oN~^|+cabM9%TX$DN$O;Q=-g~ z_e7gm7DB!x;z_`p>7F2HE$GH<46z7g>0l998#d!31qjQ6Y_LoSf!i#D>ST002ovPDHLkV1jy{zg7SM literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/draw_line_on.png b/extra/lib/theme/default/img/draw_line_on.png new file mode 100644 index 0000000000000000000000000000000000000000..ba09186c7e212a9af610cfaa91b63f0dea314820 GIT binary patch literal 1399 zcmV--1&I2IP)4Tx0C=30lFLg1K^(`wyAnpvLzWQ)dol?P=>Z85n9u_|m;{xVSl87ATbJ3< z3c7X|xf;w~ygf1c5%ueA+q%ZuK&-|E~-~1kcTvJUmF9X;$ zC`l|WD4SbJ#r*^qy5LCFEHe_1ucD>C9wG7dA;{mVbRXVj#y|R}-wU1I?eb#ldyaYt z3kXOa#-6NTKj)O-InI03q>SU7wH-Chm>B|OJrQMGX55z*e8xE?_?B}?%ksNb#vvn} zGZ=p|o=xkP2FN@X)l9<9$ft~hJb&>u8UyA>0avZ*OIpD772x$Xeg0u!a09rXYWnJH zPEDktnw6QFbX-!;0?_ed+jSq{J_Z_P+y1_=?ZzdG@eEWAtw>70b&=#S&~7hs6MNAE zhtP^e{*FSx`7*Gus{L<{)> zu}oFd+cf&WqWZp*TeM&vkX&|$DiJnaIt#dK7O74G%8H>)1eD28XojEr0p&M$wvB-o zTL1t908mU+MbOX9o12jM`}XPQEoWBlUP<(w6n6q!^4GygxA;2b#!#$-Ou{=>-YEf=;z_a#I>ZLn9a+(=jY=0_44@l z_3+=T8yOi$Mn&%I-ezTG=;q<;>gDmkDyXQP?(ORO`~KeB%lrEIX=!OHC@B8=?a{bp z%*@LK1O@f=^}@lx`S|vBb8OPm(z36n%*?^&FMRSEC2lQ>gnX^ z=Hcz_?e_HR?(X4@jEl9hqwm2rm6VhH{QJGTto{A}kdKYLy0m6wUev2BYH4DVl98&a zru6dbl#+y9TvY4FR`~e!u&=J|z&L$;ajcCo|NZu)p_Gk`f85*Gf`NDI>EySqjrjTg zxwohB@9M6soRX1`YkmQ?Ca_A@#gF6>(tW2=H=yA zRZ!vK;K9GJeSCVUsHFe@`{&Ge+1AI}z-{~a@&Et-{rvd;{{645rmv-i`1$r;UR(M6 z_v!5C>gnhI{`r}jm;V3$`~Ca&_V(xK@2#w+pP!;JF)f*xmjC+fVPIeX|Nr{=_w4NF z{QUd<{rvp<`uh3!@9*#X`}zC&`276*^z`)l`udiYmH+*o3S`TqU<@bK{S z^Yi}w{p{=J?Ca*w3q$m;3X#{dBO{Q3X?|LW`I z`uY0R(!>A%{mRF<*w)7S`T6wp^ZNSvo`W-?pr5Iyn$yw1*VV+2kCX84@6pb{>gww9 z^75IPj=;aZ>FDOcoi8FHAF#2v+S}mn@b2&M@sW^}?CIgp$gltZ|NsC0?C9Rn(9pNH zu8E0-dulb6l$4c~l==Di`uOs{rd9d<_vhy1sHK<6z@N>{(d+8y*VM)8(SQ8@`wP5Z z3IG5Ag-Jv~R49>SXb@rJ#{e5QG%##n+o6sDcCc+=*oZ|O2sSeCV-;8Dhf5e4ZNe_0 zXr#Vr6BY@G*e19fngm!5MFQFUO-72?C4laLOQ48@dH5wjTCquZfGk53NAe&A5)d0P zC7?E9GfEvIp@CgOgTWG8)T+O?WI#>~jEC|L-iIWHCIBNhV8yc%ja>i$002ovPDHLk FV1oMCUvvNf literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/draw_point_off.png b/extra/lib/theme/default/img/draw_point_off.png new file mode 100644 index 0000000000000000000000000000000000000000..fde94bde24ad8eb7c5f2109bf6fe837f1bddf9fe GIT binary patch literal 1612 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 literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/draw_polygon_on.png b/extra/lib/theme/default/img/draw_polygon_on.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3337614fa182ca28fc8e884b72f615ff6c94e0 GIT binary patch literal 1407 zcmV-_1%UdAP)4Tx0C=30lFLg1K^(`wyAnpvLzWQ)dol?P=>Z85n9u_|m;{xVSl87ATbJ3< z3c7X|xf;w~ygf1c5%ueA+q%ZuK&-|E~-~1kcTvJUmF9X;$ zC`l|WD4SbJ#r*^qy5LCFEHe_1ucD>C9wG7dA;{mVbRXVj#y|R}-wU1I?eb#ldyaYt z3kXOa#-6NTKj)O-InI03q>SU7wH-Chm>B|OJrQMGX55z*e8xE?_?B}?%ksNb#vvn} zGZ=p|o=xkP2FN@X)l9<9$ft~hJb&>u8UyA>0avZ*OIpD772x$Xeg0u!a09rXYWnJH zPEDktnw6QFbX-!;0?_ed+jSq{J_Z_P+y1_=?ZzdG@eEWAtw>70b&=#S&~7hs6MNAE zhtP^e{*FSx`7*Gus{L<{)> zu}oFd+cf&WqWZp*TeM&vkX&|$DiJnaIt#dK7O74G%8H>)1eD28XojEr0p&M$wvB-o zTL1t908mU+MbOX9o12jM`}XPQEoWBlUP<(w6n6q!^4GygxA;2b#!#$-Ou{=>-YEf=;z_a#I>ZLn9a+(=jY=0_44@l z_3+=T8yOi$Mn&%I-ezTG=;q<;>gDmkDyXQP?(ORO`~KeB%lrEIX=!OHC@B8=?a{bp z%*@LK1O@f=^}@lx`S|vBb8OPm(z36n%*?^&FMRSEC2lQ>gnX^ z=Hcz_?e_HR?(X4@jEl9hqwm2rm6VhH{QJGTto{A}kdKYLy0m6wUev2BYH4DVl98&a zru6dbl#+y9TvY4FR`~e!u&=J|z&L$;ajcCo|NZu)p_Gk`f85*Gf`NDI>EySqjrjTg zxwohB@9M6soRX1`YkmQ?Ca_A@#gF6>(tW2=H=yA zRZ!vK;K9GJeSCVUsHFe@`{&Ge+1AI}z-{~a@&Et-{rvd;{{645rmv-i`1$r;UR(M6 z_v!5C>gnhI{`r}jm;V3$`~Ca&_V(xK@2#w+pP!;JF)f*xmjC+fVPIeX|Nr{=_w4NF z{QUd<{rvp<`uh3!@9*#X`}zC&`276*^z`)l`udiYmH+*o3S`TqU<@bK{S z^Yi}w{p{=J?Ca*w3q$m;3X#{dBO{Q3X?|LW`I z`uY0R(!>A%{mRF<*w)7S`T6wp^ZNSvo`W-?pr5Iyn$yw1*VV+2kCX84@6pb{>gww9 z^75IPj=;aZ>FDOcoi8FHAF#2v+S}mn@b2&M@sW^}?CIgp$gltZ|NsC0?C9Rn(9pNH zu8E0-dulb6l$4c~l==Di`uOs{rd9d<_vhy1sHK<6z@N>{(d+8y*VM)8(SQ8@`wP5Z z3IG5AjY&j7R49>!(ySgSe56!r#3i@|3roh5IFB#9 z9R}uk8LrMZ$!U<}#@J+ZNiyk|Wbw3*z5-wz0@RFvX^B-k!P^c{`$7mD6sU0M)#5(@ zltX}>`|ssTC~U}KJ6Imuz&f-a@R?P|p_86{ZG85!Uxv$kn;z>j++XxZocWJqGll>F N002ovPDHLkV1l|7aCra# literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/editing_tool_bar.png b/extra/lib/theme/default/img/editing_tool_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..464340efb61df48b4cab2225ca724d53314ee67b GIT binary patch literal 3901 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 literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/move_feature_on.png b/extra/lib/theme/default/img/move_feature_on.png new file mode 100644 index 0000000000000000000000000000000000000000..072f066c30836dd2a0185fb3208be2214d67f329 GIT binary patch literal 1379 zcmV-p1)TbcP)4Tx0C=30lFLg1K^(`wyAnpvLzWQ)dol?P=>Z85n9u_|m;{xVSl87ATbJ3< z3c7X|xf;w~ygf1c5%ueA+q%ZuK&-|E~-~1kcTvJUmF9X;$ zC`l|WD4SbJ#r*^qy5LCFEHe_1ucD>C9wG7dA;{mVbRXVj#y|R}-wU1I?eb#ldyaYt z3kXOa#-6NTKj)O-InI03q>SU7wH-Chm>B|OJrQMGX55z*e8xE?_?B}?%ksNb#vvn} zGZ=p|o=xkP2FN@X)l9<9$ft~hJb&>u8UyA>0avZ*OIpD772x$Xeg0u!a09rXYWnJH zPEDktnw6QFbX-!;0?_ed+jSq{J_Z_P+y1_=?ZzdG@eEWAtw>70b&=#S&~7hs6MNAE zhtP^e{*FSx`7*Gus{L<{)> zu}oFd+cf&WqWZp*TeM&vkX&|$DiJnaIt#dK7O74G%8H>)1eD28XojEr0p&M$wvB-o zTL1t908mU+MbOX9o12jM`}XPQEoWBlUP<(w6n6q!^4GygxA;2b#!#$-Ou{=>-YEf=;z_a#I>ZLn9a+(=jY=0_44@l z_3+=T8yOi$Mn&%I-ezTG=;q<;>gDmkDyXQP?(ORO`~KeB%lrEIX=!OHC@B8=?a{bp z%*@LK1O@f=^}@lx`S|vBb8OPm(z36n%*?^&FMRSEC2lQ>gnX^ z=Hcz_?e_HR?(X4@jEl9hqwm2rm6VhH{QJGTto{A}kdKYLy0m6wUev2BYH4DVl98&a zru6dbl#+y9TvY4FR`~e!u&=J|z&L$;ajcCo|NZu)p_Gk`f85*Gf`NDI>EySqjrjTg zxwohB@9M6soRX1`YkmQ?Ca_A@#gF6>(tW2=H=yA zRZ!vK;K9GJeSCVUsHFe@`{&Ge+1AI}z-{~a@&Et-{rvd;{{645rmv-i`1$r;UR(M6 z_v!5C>gnhI{`r}jm;V3$`~Ca&_V(xK@2#w+pP!;JF)f*xmjC+fVPIeX|Nr{=_w4NF z{QUd<{rvp<`uh3!@9*#X`}zC&`276*^z`)l`udiYmH+*o3S`TqU<@bK{S z^Yi}w{p{=J?Ca*w3q$m;3X#{dBO{Q3X?|LW`I z`uY0R(!>A%{mRF<*w)7S`T6wp^ZNSvo`W-?pr5Iyn$yw1*VV+2kCX84@6pb{>gww9 z^75IPj=;aZ>FDOcoi8FHAF#2v+S}mn@b2&M@sW^}?CIgp$gltZ|NsC0?C9Rn(9pNH zu8E0-dulb6l$4c~l==Di`uOs{rd9d<_vhy1sHK<6z@N>{(d+8y*VM)8(SQ8@`wP5Z z3IG5AaY;l$R49>SXb@rJ#{e5QG%##n+o6sDcCc+=*oZ|O2sSeCV-;8DN0HFQA)%|Q zi&a8b7fFUVqp(Woq7rZkT_g!zBne$qK!gt5c97v*ygtVjR%k|PsAB~h43^lUR{gyt l19DB1ORibRs~T(?alxI002ovPDHLkV1oQjSo#0} literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/navigation_history.png b/extra/lib/theme/default/img/navigation_history.png new file mode 100644 index 0000000000000000000000000000000000000000..053d1e0d26a5b41e84c441b4d4e08d6ae7abf1ad GIT binary patch literal 7021 zcmW-mcRbX89LEob%e*8m^Ngf^mr=%5hn&b>+1ZM6y zF7uMr+1&5+d_2D2_n+U-=kxfyU+>rZ{e5Dnf0vzwj|Bh#uxn}FF{VYC(+A8%doyQT z{6Gs#jyiYm&?1d}wa!RdIOC^j8Aywo{~nEx50n7_es--pswSb|`>ZE@1^V;qRs&J` z890#}xC=r!oZRK4o8y}zmQ`>WXy1V7$3f-22|ySK3@m7c4kXQEp|^Q@>G4c-T>bT4 zFfMOLiyeH%#mNTl#BUzP+-V{=u0MYSzq|X_)TW!WNL%jWe=o&RHqw3he`*gRcFj$T zFe3_UoROj1L$g#NC+*8YHibkvQ&ZDIVvycF)6_=TR0|Blrbc9s`HJeEG%@YBw6(R= zDi>HXh&&iA(l2~Cy*9pI`Q1F8ily?47~PS~R826(pbze01eR1cH+LWTt$sUP$5MMF zS37FSs7NfyP z7yfs|j(R}EqPiwsrm6KLQyTA|j5Dv*qEZ*mo^9}eQg?h3 z+J&_<+W8%Juo8K2N$-I#XYBW>vs}PbQW&w>J6SeZpno%zo^DD*QsB>eE6nIGO07f_ zv*dlBxcg@Tu6<^N63}if^=y3Hs>V!*7!=V8+b+ZOO+}3PWe_Euop`iFYxWzm%sxMLd2jciC-y-;XP4NPtVqcgwt^T5EP+|k=Y4_ zbBJKzU)~Dz`%7K~=DI<$)f328JV%cCLI#p|5@7!&5_mbBs>vxDZm%lF$YY+$MS}|g z`{7c|GP;4UBp!uKT|FvIki|#)%_B=T`c)2&sryB5zCEbB{Ha{0_HeUbi10Oo_=tqR zXAq0S;di#0Q4I<)w73`AEtS~O(+vfV%IV?e z!utJflCj%@xQ$Tm@;YBHFF%>Q>M?k#F_D6bP}a&2*P@@uc7e3$fy!kx5{!vKHp@}s z#6E~fGHyPK4hLd7_hf{I=F2Mb0Y&Vtvt_o+{`gg#3>(gHtR{LQjJEoW58H^ebmE|Y z>41McN1vmU6GUbI*M|?wl1Pl9HV9uT2`ZHw6o_wtLch7U`IJYemxgvjoWhUxdSfy( zaX9d0^iJdbR)I@7YMR6|4b|8q#**@jm`^UZ*Wu9)%N@1b2qZ!}arUG|a%XpUSFxbN z1JW|&U%A==xy2#UqW8w5veIQzL8Q_%A7fZa#+kPf)Z$h@`}}e_=$Uqfr6g2N#ja}QCNg`W zBRe)-k|i1n6$eE_6G3O_2}z>Jj5`UEqTDG=^u18LfztV;iapdux=K@^RGbC3%LT~jh{IH~Rh3IV z5;B8wXK42*3YJVK)bEfiiyz)b9Hq+ktKM9q(1X*MQ5(aYqK~KF8zhjRK&O7y*A_n} z+!fAp^-+SfdnFv$Q%P_PJay>?M~OvsXJ-w2iP_*=7;8yhUV-AMhhC@O{Ezm9g;++@ zVv+b8sS~JH+XCM}|0v zmU!OYG}RK*8me%BbCjpVIpkK5WS9~}39R%o+)l|f{eK{z+E}eoW)&o0qsWE}-AEbi zmRj!JxIPryB^-VW58-D5NeJwOGBFEY%F9|~Y9fwu5_FLU7}K8A?!jN4vp+DsK+0`wrO|lAwYz)e; zoX5F0-%h*nWr@M}GN}0QnYMC~KEH-Cwxgr%wMV_GWAE<#F5|5}f`4(}=OMtMtOT&s zTzS^rf~UN@yJWaGrsG7KdQI-{-_aKKY@9#kU~8-SL5q@N2nnBeJt;}iH~8V_A$3vn zI^+D04})E=HZ;9x+RA^y!@GJB7ZKHtpK6TXr=h6|SN1)5xCSz|U zDf`Zr+>B8qpelD*VR}HAw_dhRIltn`jv_L#&nwv5J3@(vyrw6f*caMWS63(f?344? zm4_X+k%p>2I92-T&^Ejn`*iTe5#&Bko8};WXT7(!>>`|&I~X{JKn~gLO5A)$Z2_UK z8g_N_XsM`3C2}>(#oH@OyWP6mR`LUBAwVXSJYI7@@AIl>FJff zf1AV|K7;a~BT(OhroMOCYH?v^W(+lr#4qzv_Tl>3Q{Q1#)@E6TnqYx`vY=qZ(dLsg zMRizgnHVHl<3_E?C)cDt?TasL@87rcm3yal{oJ%ZU>7Hyh*>^}VkljvFvXy;-a5uI z%N9AdchlmK z3=B^-VHJ{NtIWdAjpnt#0`A?5ecv8fd{Y-tRkiDMBuM9#AJA=EckY_3tn$eoX<@5G z&B-Yy#z1-hSLWF2P=T1(^z_*3&r+C9hW7)$et&DJ9DOHRb*WkiK+Fb&)S<$Q3_ZN`CP|i1TIjTQ*gb z>`5OBQ=N;2z6v=xb#||sEV|IgnFa!vxHeH?w%MG*$^pNYjVyQe5kiH#phN_p`TuytKQnm~6Z< z>2~Xu;49mr=UL)5bz?v}lA~;adcu-me~YYHmRXhcB3%9QGcz-|zENUd`NdS+-r~?; z&RNly-Aa7wug#MB4i05CUK_Xj(Um+st7T;|w_hTn-cao>m-itzy|&hVxaG{prNA3{ zVlNFPxq~G@aagPAiHV6}N=k}nvz3jFd@`!rs>bADw~6+vt5r0?xqiW>&Wt$D!)w}X zVQt-o?lv2w8LDv4D>(&4SikwdD`R6OtK&73lg-T|BMl9k{%Nl|JFET^;E3;@F(a>< zVo;B+K5&gA2|d!ykgKWj4lo7_TmpmQ&xnX;eq6eL6}h#)w!!+F(^QcE98l|hDEj1m zEU#VGOU+-CZk)nAKw62{LcTTx7`Q?@Qo(qdj)6p+r~FD8`a9}ZqU=o1i{NDR1_Nx6 zu5JcJ8n3H#h$_e2q}p2NuS;qPOH)&sS_7|v^8-)UBRF?*F@{!e>~#me=X(^YQ1_SO z8qTG>^=;LaC>U~WoDA=w9m&iiP6c#eV6QzC3}WLz-kcm&OYoj*DQ&WfDAql|u%! z+t;_Y8p;gOl2qzhM~8NK`wgwFL!1NFE(5&!n~mx0&;1sKI&VsrHg zy3n^7_Fs<9EBPV+t$po2|6sJUs;?p`_`e)7MWbwF!1X~hs@vAi##=6b$TiSIix@O5 z!^7(k`L=Ch^juP(qmGVHnnRP-{?T5j#C7?F?UYoO=nC~R+w~mM?x8RnRgg~L<}XUX zbMm-nmgq|lL|tWNzAjTt=`#HI*snZF7KwQb5QwK>ZgW~H9nHAA=X;+E*!uOu`eygr zt*Ket?tE>V4mr3*o%xlHnW_Ikwfr2cNNBNS2FB3bToMEBkEMBk=-zSkT*rtz6si^V zZaBU2&-CGYR&->;>&m!>Hj66LsM!l5n@?El{NGf>fTIsiA8#QgN*pn7|@nzi=z;r-_JW`s&B}(wVwIj=2vK2s4;7p zn4!6szm!-UT7__ltFn@u9Xq@gpj_vXRk@0ftDOp_sa1i52nAKy>^Z`SH#KGc`pmr(n&rN^`S_N5g0dz+cfo;jw4BzdX zo*o>e+!Rrsou!`aV(q%xx~e_$D?D^`ruyO{Vcz&++d@WXYIz`3V{O$z@8v{LWbsqPLv=x(?{KoZzJwE#AbTg~v_%`!vIE{L$al z?a?DQH~ti_o!OHie={>lL7|Fo{;7gu&H(|T6YGjYG0fEC*|XP@$4rrT{2d%TRwAk9 zru?)5J+e$@==%L|vC4f>MS5PISyKAlUTLq^xuv417P46t=9?!b{I3!1mO-Wz z2%S<$0)k|2|{=8!fLHYmR{O)|o5Z0!yEsX*dxIpF9bfP3dp6#A%AV zx~Uv2rzk2Yyq)w?$n=m~{Ks2MBuE4!NJiV_9J667l&+iz7RYpJt^UD7N(@03d79iw zeoc(NHPyGVqjLj%_z`zRp(X~2NCP7ecY4PbCLn;g!~gm%?c#Awla_m_(_-Nfro3s1 zRFQ~fUIRRKBAA@m4i8!=(w;x*rm_Z+|wa%jXGYqxEgh~|&t*2Vm=U>mD z4%+h4rnLj6WB#-$z?EkK&qHRymR^L+>>ofVrt^^t&&+MZ7S0=CinUihW?nKVM6@Rb zsS2a_=HrFYZImfs3E>uDcc2;^pkZ&q|<3?11p2P;ss& zcSO;VzNbi+zxW4&^LCk$5x2S#0>yoRi=W>TT#Yu7&v~Fglk8C$`eaVB!jLjRght5pHfFxUy9iLaLxd+iK%FAZEaPvNr8f*$NOHf`LB181(R6IEj?L z<|PfH3+E%?m}mDno^$O`qA(BS0c=D;Am&DBi=}er zZ}qo}0dhB{W|@XO6jY4`mvm0^y(R~zedp*TC1ibr^18Jly@jl(8E)_Sb&ak6*is0Yu}q6u(BHJ zDP3m>?P-z%>7Lc~bYbKv%mwiFO7$y}JpthU-asu!;I(^hZ1(H(Q|xk&NyQ-odp?S* z(L!w0X{jwAdy`;Moe;gQKRgnO5VkMb@UHa#Lo zKi;%^%^Gb_7bK5y=L1j|6{AMHz0;KpS$ap87>3w^fXC3sP*BugE-5*sLOs0Nfy7{| z&vZu+nMZ^+ddnHCsq1%auz;DtkUcN7d)a-uPl^wt*ESdqK@NQ3A)NH~Qcnf-+N4H@ zbtN)CI)|S8>`UU6wrzrKtWa(m^0LvB%*~@VM@Qe~(AHw#BmIW8!=Hpt;a3DlcbS=9 zz^OKJ3PAWySzQLCY#yrKo4Y9_k}NVEXaltXzq_PuOmm1p`nPPrD=ad2a%>Z=OV&%$ zpz~`0Net<;w$7@)4OTfC<`8&XyuRD$l|1jtA_}UO0DU!B4imCY6hBXMS`EwFsyEjt zLN^~S50|KwfSvCr($_A2IzJHb@c6q#5kGpEgq?0ZlDm9pnW}*LmCrk(?!A(zJW@MqnP5*v7ti{NwzwOp} zAdWLaVek%Mw%_qx?iYQ$J&(0zGQIix?K#oQFN#hH5io>VGT{fWZQw|B>fD%`yBwpV zbEsMy1|3g1i)(%=KSF>2;f_B#(%pZ*>PT-Q+&3Bt(Ps?w-_yTe%WYUua}Y^&T7e># z;KS}1=(MAU5T5*xkZf$Xz8nkR_*fs14#>meHQ4k53PD@g5k)L&Yu~p8bjtFUlIK`V z&%e#KVz+jdQdBynn>J|pM+*}VdGm2!91hGdff8WeoBBQ%1_kisegvF^qi-FBa8(oS zB9AFVyBzW1E?zqzURasUNz2h=a=gj+dd*b+mtL&3tloI%pRH4_A#Vflum}eFF5BU1 zvAelW_R1*NQx=cH?0@X=F=qGai#1yMiL7@s=OYxE$q@}w31B35?7sUlnc{pcPgmkR zHhgLvN*NeupO7H6dWwH* zInUB33X0D23{eE^9;!NlqoH+@x*PR9lJ9Ao$`9LtIc*2uat-yFvX5H0Hay~m#CEay zGR6!yMt}+kG7zy|u1_w0DIFZ~fdr-2`+Mtc(DXJk(zeE<_ySD|F()UTqb;3>o!bu< zGo@`h9XfA;L(m3g%D^U016 zV30!(^BdMHJV||4>~9+>LH5fBH|Ng80(=oC>VG+7sHuQ=%pFpDU$hzJIxR3~4iDa8 z&Yb~+k$`mL3J+b9C8z4pTj(v#^4kphMNDzeRXF)@(N>5r9PRd>9hnFrvp#bj;mY9U zt!vetO--ZFAz(8F6wT<-Kl$BP$nvpco`i*d2_RbYl}INo=enMJ!2QIMqI0#XYftgy zYfBDXD&__HsltYSbn?#7CTivH{_?Q{1~^cH%#W7>ZVwzGK&W7zuXryWGdGOTt?_>> z?yk>bBdI6HAk}(q^#qYhmfAULom9dLt7}PgMauGwEC*F~?f1XOka&B-RkcNu-i$qd zDjdni*SlS>cC?u`2~2NU>yiQiEo_EeqscZH*pq7qTb!d+7C|B1A)^S}Ae{GH)!1h4L`r|_WF zZ*T6sQc!?;d&@zksR!ifKRh4Ge$FjScR&Y>W#Y=7 z7=nPEzQVuOrif#R<>OwT*1LVwcgk5;L1lWvT{h?w`)yx4^X;JP=++IYunMpMePb+s literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/overview_replacement.gif b/extra/lib/theme/default/img/overview_replacement.gif new file mode 100644 index 0000000000000000000000000000000000000000..a82cf5fc54cc0064099720322d62e9bf4dde05c9 GIT binary patch literal 79 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 literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/remove_point_off.png b/extra/lib/theme/default/img/remove_point_off.png new file mode 100644 index 0000000000000000000000000000000000000000..76c8606f550c1d95cb9df2e8b8656447e8a9e58d GIT binary patch literal 1612 zcmV-S2DABzP)4Tx0C=30lFLg1K^(`wyAnpvLzWQ)dol?P=>Z85n9u_|m;{xVSl87ATbJ3< z3c7X|xf;w~ygf1c5%ueA+q%ZuK&-|E~-~1kcTvJUmF9X;$ zC`l|WD4SbJ#r*^qy5LCFEHe_1ucD>C9wG7dA;{mVbRXVj#y|R}-wU1I?eb#ldyaYt z3kXOa#-6NTKj)O-InI03q>SU7wH-Chm>B|OJrQMGX55z*e8xE?_?B}?%ksNb#vvn} zGZ=p|o=xkP2FN@X)l9<9$ft~hJb&>u8UyA>0avZ*OIpD772x$Xeg0u!a09rXYWnJH zPEDktnw6QFbX-!;0?_ed+jSq{J_Z_P+y1_=?ZzdG@eEWAtw>70b&=#S&~7hs6MNAE zhtP^e{*FSx`7*Gus{L<{)> zu}oFd+cf&WqWZp*TeM&vkX&|$DiJnaIt#dK7O74G%8H>)1eD28XojEr0p&M$wvB-o zTL1t908mU+MbOX9o12jM`}XPQEoWBlUP<(w6n6q!^4GygxA;2b#!#$-Ou{=>-YEf=;z_a#I>ZLn9a+(=jY=0_44@l z_3+=T8yOi$Mn&%I-ezTG=;q<;>gDmkDyXQP?(ORO`~KeB%lrEIX=!OHC@B8=?a{bp z%*@LK1O@f=^}@lx`S|vBb8OPm(z36n%*?^&FMRSEC2lQ>gnX^ z=Hcz_?e_HR?(X4@jEl9hqwm2rm6VhH{QJGTto{A}kdKYLy0m6wUev2BYH4DVl98&a zru6dbl#+y9TvY4FR`~e!u&=J|z&L$;ajcCo|NZu)p_Gk`f85*Gf`NDI>EySqjrjTg zxwohB@9M6soRX1`YkmQ?Ca_A@#gF6>(tW2=H=yA zRZ!vK;K9GJeSCVUsHFe@`{&Ge+1AI}z-{~a@&Et-{rvd;{{645rmv-i`1$r;UR(M6 z_v!5C>gnhI{`r}jm;V3$`~Ca&_V(xK@2#w+pP!;JF)f*xmjC+fVPIeX|Nr{=_w4NF z{QUd<{rvp<`uh3!@9*#X`}zC&`276*^z`)l`udiYmH+*o3S`TqU<@bK{S z^Yi}w{p{=J?Ca*w3q$m;3X#{dBO{Q3X?|LW`I z`uY0R(!>A%{mRF<*w)7S`T6wp^ZNSvo`W-?pr5Iyn$yw1*VV+2kCX84@6pb{>gww9 z^75IPj=;aZ>FDOcoi8FHAF#2v+S}mn@b2&M@sW^}?CIgp$gltZ|NsC0?C9Rn(9pNH zu8E0-dulb6l$4c~l==Di`uOs{rd9d<_vhy1sHK<6z@N>{(d+8y*VM)8(SQ8@`wP5Z z3IG5BT1iAfR49>Uk}+$-Kp2Kk0vQVCmJmotr*emo?KZPrK>80H1%)gQous%p=&!g= zZrA0)DS>1RcBoq$w+@BQow|1HcQLI}pF8sLz0XUgLyxYFFW7EYXk+)qf0S!)(ALc^ z1h7T8$O#$(39Lj@wwDdf3?i&oAY_Ex6!`sTaLqxXh;X$ zY1?;Tb$-P>9i*)7H-PZX9I=$$H+^RC8v%x};jpg5mngm_hNG~2Kk*Ll;oHKC6Q7vf zPcZ5cm=;N3Kr?{_oS*bi-*&$Vf#!*Xkgq;kojr!m)7|c)eGES;bEA)yi@5Uu0000< KMNUMnLSTZbgw{R) literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/remove_point_on.png b/extra/lib/theme/default/img/remove_point_on.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff28fc7168a54e550cf98006e02d05958b5a6ab GIT binary patch literal 1464 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 literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/save_features_on.png b/extra/lib/theme/default/img/save_features_on.png new file mode 100644 index 0000000000000000000000000000000000000000..93c8f080bff6c78ed95d7d5c6ccadb90a9a66401 GIT binary patch literal 364 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 literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/view_previous_off.png b/extra/lib/theme/default/img/view_previous_off.png new file mode 100644 index 0000000000000000000000000000000000000000..b9c230f749e1887d70d1928398b5d03e0105a3d8 GIT binary patch literal 1553 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�a{vGU0d!JMQvg8b*k%9#00Cl4M??UK1szBL000Sa zNLh0L01FcU01FcV0GgZ_00007bV*G`2iOM!5(+95W_CLO000?uMObu0Z*6U5Zgc=c za%Ew3Wn>_CX>@2HM@dakSAh-}0005ZNkliz`RUC*NR1}GbSRZP=+y%aT+HBjXxSYASj%|Z${aiZ00000NkvXXu0mjf$)YM? literal 0 HcmV?d00001 diff --git a/extra/lib/theme/default/img/zoom-panel.png b/extra/lib/theme/default/img/zoom-panel.png new file mode 100644 index 0000000000000000000000000000000000000000..f2c7c518d592b2142c2e94bef00e985c6884de69 GIT binary patch literal 1624 zcmV-e2B-OnP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOM! z1|kHG!rt-#000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000HENklF7{`CTz4QeuZ3#$)%1}|98iPPp)GE#eO%s(w;!AW+iA$zN6OG*>CWXz)o{z;SDr}zAN zpXZ$OocmYMt8!C;nScdI2?Q&EUw|`U|M}GsidO)7AP-nU-`WqX2YX8|pxi0IVIYS7 zsSa2O_RHNsxq6`L4ItfNW5C`b1Oj<)0U*~INLO5^Q(-Wu z0q}Tyw6%3~AC{tk+^)Y23sd26e2ORvU3YYJNXRmTg!GI>M}LFMPNrRDPxN@cb z-9Y`-zh5IkfRq#yvu6(_B0@_^$wSVatHtM&`Rs1ZrlNEw(r@r=^}3TOENN!@c#SxR8%xj zTs)VYoXNd|va=_WnK_bKvx;##-5fqVhlB(pzy8`pY-|{2vyP4qiSy@csi|pU-n@AB z?fbANC?-b7nlTr* z($a=7dUW{THM(+T2{kp%h@!yKrN{Aje2f@jz-l#Z57w9JtZzqPksFhva-fvwVKiERU{`zF?g_!<;%x1e7GK^ zQbB90m%V#$V6m9|>uAA(QOGh(of<=FX&q{{l9MMNaq{FNva=_0@ZcQ)d_IY=FcsUj z`48DGTT)Rd;N?pnX=$+tt*ss^DxP9C59G@)t%Qeby3%QF^&&|!PG=j>pL=>tcX+sl zJ$q(SUEPdcuR=I+;y03$qbMr6%g&uwiHRA=_U%(hPk)cd$WUA^KR^@}Xtg3)S!3C; zV=A$+VXR$yhJ=K0PMvy$c;iMRXk?W?(R=X>a%Wr#~a(M=TZ-F4s$T?V85KiGx|TYzzej zw*mhNVloZD;dp^YqvWfvti;3&#AX}H;>Ab*-u+EYZ5%pumszvoNKO5Y`SVAxaN#Hn z1~nd!kHo}5G&H!`x-}J}QN#7?jU**SQBv}dt5=`)Y$KaDmr`HFIG~W{#w##mm{Vk0~pwdu=`acYF5#ptm^JqN4{87N+iV zkjv%4;dl`oWHhR&srdx2SLzd_QVEz$U(?*|=^dn03MiEVlGOK`hf*o@cs=X{Ie=&Y zr?ZV2GY%6Gq3sjY)a1tLZ0jC!hym9#w=+^&TK6`!t`Gv&>0R}U;P+qetTRHu#O;3v z$bPW@+*$hd0n7BJstb(mT-o*(zlnPzSf}x8d1Z^(FZ)egztY?vFnpJTc-pr&$A1Cq W+8RZ(A4&570000 Date: Wed, 29 Jan 2025 16:36:03 -0400 Subject: [PATCH 2/3] mention OL file location --- en/cgi/openlayers.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/en/cgi/openlayers.txt b/en/cgi/openlayers.txt index 0134a3df1a1..4d0e7bca3de 100644 --- a/en/cgi/openlayers.txt +++ b/en/cgi/openlayers.txt @@ -100,3 +100,15 @@ Customizing settings * environment variables:: MS_OPENLAYERS_JS_URL - The URL to the OpenLayers javascript library. Per default the library loaded from the MapServer web server. + +Location of the embedded OpenLayers.js file +------------------------------------------- + +If you aren't providing your own OpenLayers library through `MS_OPENLAYERS_JS_UR`, +MapServer will point to a hardcoded filepath of `www.mapserver.org/lib` to find the OpenLayers +library, referred to in [maptemplate.c](https://github.com/MapServer/MapServer/blob/main/src/maptemplate.c#L54). + +The contents on that `lib` folder is stored in the MapServer documentation repository, +in the [/extra](https://github.com/MapServer/MapServer-documentation/tree/main/extra) folder. +You are warmly encouraged to contribute to upgrading the OpenLayers library, at any time (maybe start +with creating a new [Pull Request](https://github.com/MapServer/MapServer-documentation/pulls) there. \ No newline at end of file From 606ab8962c55011351e2a788710ccade5ee9d924 Mon Sep 17 00:00:00 2001 From: Jeff McKenna Date: Wed, 29 Jan 2025 16:52:46 -0400 Subject: [PATCH 3/3] mention OL file location --- en/cgi/openlayers.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/cgi/openlayers.txt b/en/cgi/openlayers.txt index 4d0e7bca3de..79795b01102 100644 --- a/en/cgi/openlayers.txt +++ b/en/cgi/openlayers.txt @@ -104,7 +104,7 @@ Customizing settings Location of the embedded OpenLayers.js file ------------------------------------------- -If you aren't providing your own OpenLayers library through `MS_OPENLAYERS_JS_UR`, +If you aren't providing your own OpenLayers library through `MS_OPENLAYERS_JS_URL`, MapServer will point to a hardcoded filepath of `www.mapserver.org/lib` to find the OpenLayers library, referred to in [maptemplate.c](https://github.com/MapServer/MapServer/blob/main/src/maptemplate.c#L54).