/* OMAP.js -- OMAP Map Viewer Library Copyright (c) 2006-2013 by OMAP Contributors Published under the 2-clause BSD license. See http://OMAP.org/dev/license.txt for the full text of the license, and http://OMAP.org/dev/authors.txt for full list of contributors. Includes compressed code under the following licenses: (For uncompressed versions of the code used, please see the OMAP Github repository: ) */ /** * 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 s */ /** * OMAP.Util.pagePosition is based on Yahoo's getXY method, which is * Copyright (c) 2006, Yahoo! Inc. * All rights reserved. * * Redistribution and use of this software in source and binary forms, with or * without modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * 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. * * * Neither the name of Yahoo! Inc. nor the names of its contributors may be * used to endorse or promote products derived from this software without * specific prior written permission of Yahoo! Inc. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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. */ var OMAP={VERSION_NUMBER:"Release 2.13",singleFile:!0,_getScriptLocation:function(){for(var a=/(^|(.*?\/))(OMAP[^\/]*?\.js)(\?|$)/,b=document.getElementsByTagName("script"),c,d="",e=0,f=b.length;ethis.right)this.right=a.right;if(null==this.top||a.top>this.top)this.top=a.top}},extendXY:function(a,b){this.centerLonLat=null;if(null==this.left||athis.right)this.right=a;if(null==this.top||b>this.top)this.top=b},containsLonLat:function(a,b){"boolean"===typeof b&&(b={inclusive:b});b=b||{};var c=this.contains(a.lon,a.lat,b.inclusive),d=b.worldBounds;d&&!c&&(c=d.getWidth(),d=Math.round((a.lon-(d.left+d.right)/2)/c),c=this.containsLonLat({lon:a.lon-d*c,lat:a.lat},{inclusive:b.inclusive}));return c},containsPixel:function(a,b){return this.contains(a.x,a.y,b)},contains:function(a,b,c){null==c&&(c=!0);if(null==a||null==b)return!1;a=OMAP.Util.toFloat(a);b=OMAP.Util.toFloat(b);return c?a>=this.left&&a<=this.right&&b>=this.bottom&&b<=this.top:a>this.left&&athis.bottom&&b=c.bottom&&a.top<=c.top||c.top>a.bottom&&c.top=c.left&&a.left<=c.right||c.left>=a.left&&c.left<=a.right,f=a.right>=c.left&&a.right<=c.right||c.right>=a.left&&c.right<=a.right,d=(a.bottom>=c.bottom&&a.bottom<=c.top||c.bottom>=a.bottom&&c.bottom<=a.top||d)&&(e||f);if(b.worldBounds&&!d){var g=b.worldBounds,e=g.getWidth(),f=!g.containsBounds(c),g=!g.containsBounds(a);f&&!g?(a=a.add(-e,0),d=c.intersectsBounds(a,{inclusive:b.inclusive})):g&&!f&&(c=c.add(-e,0),d=a.intersectsBounds(c,{inclusive:b.inclusive}))}return d},containsBounds:function(a,b,c){null==b&&(b=!1);null==c&&(c=!0);var d=this.contains(a.left,a.bottom,c),e=this.contains(a.right,a.bottom,c),f=this.contains(a.left,a.top,c);a=this.contains(a.right,a.top,c);return b?d||e||f||a:d&&e&&f&&a},determineQuadrant:function(a){var b="",c=this.getCenterLonLat(),b=b+(a.lat=a.right&&e.right>a.right;)e=e.add(-f,0);c=e.left+c;ca.left&&e.right-d>a.right&&(e=e.add(-f,0))}return e},CLASS_NAME:"OMAP.Bounds"});OMAP.Bounds.fromString=function(a,b){var c=a.split(",");return OMAP.Bounds.fromArray(c,b)};OMAP.Bounds.fromArray=function(a,b){return!0===b?new OMAP.Bounds(a[1],a[0],a[3],a[2]):new OMAP.Bounds(a[0],a[1],a[2],a[3])};OMAP.Bounds.fromSize=function(a){return new OMAP.Bounds(0,a.h,a.w,0)};OMAP.Bounds.oppositeQuadrant=function(a){return""+("t"==a.charAt(0)?"b":"t")+("l"==a.charAt(1)?"r":"l")};OMAP.Element={visible:function(a){return"none"!=OMAP.Util.getElement(a).style.display},toggle:function(){for(var a=0,b=arguments.length;aa.right;)b.lon-=a.getWidth()}return b},CLASS_NAME:"OMAP.LonLat"});OMAP.LonLat.fromString=function(a){a=a.split(",");return new OMAP.LonLat(a[0],a[1])};OMAP.LonLat.fromArray=function(a){var b=OMAP.Util.isArray(a);return new OMAP.LonLat(b&&a[0],b&&a[1])};OMAP.Pixel=OMAP.Class({x:0,y:0,initialize:function(a,b){this.x=parseFloat(a);this.y=parseFloat(b)},toString:function(){return"x\x3d"+this.x+",y\x3d"+this.y},clone:function(){return new OMAP.Pixel(this.x,this.y)},equals:function(a){var b=!1;null!=a&&(b=this.x==a.x&&this.y==a.y||isNaN(this.x)&&isNaN(this.y)&&isNaN(a.x)&&isNaN(a.y));return b},distanceTo:function(a){return Math.sqrt(Math.pow(this.x-a.x,2)+Math.pow(this.y-a.y,2))},add:function(a,b){if(null==a||null==b)throw new TypeError("Pixel.add cannot receive null values");return new OMAP.Pixel(this.x+a,this.y+b)},offset:function(a){var b=this.clone();a&&(b=this.add(a.x,a.y));return b},CLASS_NAME:"OMAP.Pixel"});OMAP.Size=OMAP.Class({w:0,h:0,initialize:function(a,b){this.w=parseFloat(a);this.h=parseFloat(b)},toString:function(){return"w\x3d"+this.w+",h\x3d"+this.h},clone:function(){return new OMAP.Size(this.w,this.h)},equals:function(a){var b=!1;null!=a&&(b=this.w==a.w&&this.h==a.h||isNaN(this.w)&&isNaN(this.h)&&isNaN(a.w)&&isNaN(a.h));return b},CLASS_NAME:"OMAP.Size"});OMAP.Console={log:function(){},debug:function(){},info:function(){},warn:function(){},error:function(){},userError:function(a){alert(a)},assert:function(){},dir:function(){},dirxml:function(){},trace:function(){},group:function(){},groupEnd:function(){},time:function(){},timeEnd:function(){},profile:function(){},profileEnd:function(){},count:function(){},CLASS_NAME:"OMAP.Console"};(function(){for(var a=document.getElementsByTagName("script"),b=0,c=a.length;bparseFloat(h)?(a.style.filter="alpha(opacity\x3d"+100*h+")",a.style.opacity=h):1==parseFloat(h)&&(a.style.filter="",a.style.opacity="")};OMAP.Util.createDiv=function(a,b,c,d,e,f,g,h){var k=document.createElement("div");d&&(k.style.backgroundImage="url("+d+")");a||(a=OMAP.Util.createUniqueID("OMAPDiv"));e||(e="absolute");OMAP.Util.modifyDOMElement(k,a,b,c,e,f,g,h);return k};OMAP.Util.createImage=function(a,b,c,d,e,f,g,h){var k=document.createElement("img");a||(a=OMAP.Util.createUniqueID("OMAPDiv"));e||(e="relative");OMAP.Util.modifyDOMElement(k,a,b,c,e,f,null,g);h&&(k.style.display="none",b=function(){k.style.display="";OMAP.Event.stopObservingElement(k)},OMAP.Event.observe(k,"load",b),OMAP.Event.observe(k,"error",b));k.style.alt=a;k.galleryImg="no";d&&(k.src=d);return k};OMAP.IMAGE_RELOAD_ATTEMPTS=0;OMAP.Util.alphaHackNeeded=null;OMAP.Util.alphaHack=function(){if(null==OMAP.Util.alphaHackNeeded){var a=navigator.appVersion.split("MSIE"),a=parseFloat(a[1]),b=!1;try{b=!!document.body.filters}catch(c){}OMAP.Util.alphaHackNeeded=b&&5.5<=a&&7>a}return OMAP.Util.alphaHackNeeded};OMAP.Util.modifyAlphaImageDiv=function(a,b,c,d,e,f,g,h,k){OMAP.Util.modifyDOMElement(a,b,c,d,f,null,null,k);b=a.childNodes[0];e&&(b.src=e);OMAP.Util.modifyDOMElement(b,a.id+"_innerImage",null,d,"relative",g);OMAP.Util.alphaHack()&&("none"!=a.style.display&&(a.style.display="inline-block"),null==h&&(h="scale"),a.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+b.src+"', sizingMethod\x3d'"+h+"')",0<=parseFloat(a.style.opacity)&&1>parseFloat(a.style.opacity)&&(a.style.filter+=" alpha(opacity\x3d"+100*a.style.opacity+")"),b.style.filter="alpha(opacity\x3d0)")};OMAP.Util.createAlphaImageDiv=function(a,b,c,d,e,f,g,h,k){var l=OMAP.Util.createDiv();k=OMAP.Util.createImage(null,null,null,null,null,null,null,k);k.className="olAlphaImg";l.appendChild(k);OMAP.Util.modifyAlphaImageDiv(l,a,b,c,d,e,f,g,h);return l};OMAP.Util.upperCaseObject=function(a){var b={},c;for(c in a)b[c.toUpperCase()]=a[c];return b};OMAP.Util.applyDefaults=function(a,b){a=a||{};var c="function"==typeof window.Event&&b instanceof window.Event,d;for(d in b)if(void 0===a[d]||!c&&b.hasOwnProperty&&b.hasOwnProperty(d)&&!a.hasOwnProperty(d))a[d]=b[d];!c&&b&&b.hasOwnProperty&&b.hasOwnProperty("toString")&&!a.hasOwnProperty("toString")&&(a.toString=b.toString);return a};OMAP.Util.getParameterString=function(a){var b=[],c;for(c in a){var d=a[c];if(null!=d&&"function"!=typeof d){if("object"==typeof d&&d.constructor==Array){for(var e=[],f,g=0,h=d.length;ge&&(e="0"+e);e+="\u00b0";0<=c.indexOf("dm")&&(10>d&&(d="0"+d),e+=d+"'",0<=c.indexOf("dms")&&(10>f&&(f="0"+f),e+=f+'"'));return"lon"==b?e+(0>a?OMAP.i18n("W"):OMAP.i18n("E")):e+(0>a?OMAP.i18n("S"):OMAP.i18n("N"))};OMAP.Format=OMAP.Class({options:null,externalProjection:null,internalProjection:null,data:null,keepData:!1,initialize:function(a){OMAP.Util.extend(this,a);this.options=a},destroy:function(){},read:function(a){throw Error("Read not implemented.");},write:function(a){throw Error("Write not implemented.");},CLASS_NAME:"OMAP.Format"});OMAP.Format.CSWGetRecords=function(a){a=OMAP.Util.applyDefaults(a,OMAP.Format.CSWGetRecords.DEFAULTS);var b=OMAP.Format.CSWGetRecords["v"+a.version.replace(/\./g,"_")];if(!b)throw"Unsupported CSWGetRecords version: "+a.version;return new b(a)};OMAP.Format.CSWGetRecords.DEFAULTS={version:"2.0.2"};OMAP.Control=OMAP.Class({id:null,map:null,div:null,type:null,allowSelection:!1,displayClass:"",title:"",autoActivate:!1,active:null,handlerOptions:null,handler:null,eventListeners:null,events:null,initialize:function(a){this.displayClass=this.CLASS_NAME.replace("OMAP.","ol").replace(/\./g,"");OMAP.Util.extend(this,a);this.events=new OMAP.Events(this);if(this.eventListeners instanceof Object)this.events.on(this.eventListeners);null==this.id&&(this.id=OMAP.Util.createUniqueID(this.CLASS_NAME+"_"))},destroy:function(){this.events&&(this.eventListeners&&this.events.un(this.eventListeners),this.events.destroy(),this.events=null);this.eventListeners=null;this.handler&&(this.handler.destroy(),this.handler=null);if(this.handlers){for(var a in this.handlers)this.handlers.hasOwnProperty(a)&&"function"==typeof this.handlers[a].destroy&&this.handlers[a].destroy();this.handlers=null}this.map&&(this.map.removeControl(this),this.map=null);this.div=null},setMap:function(a){this.map=a;this.handler&&this.handler.setMap(a)},draw:function(a){null==this.div&&(this.div=OMAP.Util.createDiv(this.id),this.div.className=this.displayClass,this.allowSelection||(this.div.className+=" olControlNoSelect",this.div.setAttribute("unselectable","on",0),this.div.onselectstart=OMAP.Function.False),""!=this.title&&(this.div.title=this.title));null!=a&&(this.position=a.clone());this.moveTo(this.position);return this.div},moveTo:function(a){null!=a&&null!=this.div&&(this.div.style.left=a.x+"px",this.div.style.top=a.y+"px")},activate:function(){if(this.active)return!1;this.handler&&this.handler.activate();this.active=!0;this.map&&OMAP.Element.addClass(this.map.viewPortDiv,this.displayClass.replace(/ /g,"")+"Active");this.events.triggerEvent("activate");return!0},deactivate:function(){return this.active?(this.handler&&this.handler.deactivate(),this.active=!1,this.map&&OMAP.Element.removeClass(this.map.viewPortDiv,this.displayClass.replace(/ /g,"")+"Active"),this.events.triggerEvent("deactivate"),!0):!1},CLASS_NAME:"OMAP.Control"});OMAP.Control.TYPE_BUTTON=1;OMAP.Control.TYPE_TOGGLE=2;OMAP.Control.TYPE_TOOL=3;OMAP.Event={observers:!1,KEY_SPACE:32,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(a){return a.target||a.srcElement},isSingleTouch:function(a){return a.touches&&1==a.touches.length},isMultiTouch:function(a){return a.touches&&1Math.floor(a.pageY)||0===a.pageX&&Math.floor(d)>Math.floor(a.pageX))d-=c,e-=b;else if(ethis.duration&&this.stop()},CLASS_NAME:"OMAP.Tween"});OMAP.Easing={CLASS_NAME:"OMAP.Easing"};OMAP.Easing.Linear={easeIn:function(a,b,c,d){return c*a/d+b},easeOut:function(a,b,c,d){return c*a/d+b},easeInOut:function(a,b,c,d){return c*a/d+b},CLASS_NAME:"OMAP.Easing.Linear"};OMAP.Easing.Expo={easeIn:function(a,b,c,d){return 0==a?b:c*Math.pow(2,10*(a/d-1))+b},easeOut:function(a,b,c,d){return a==d?b+c:c*(-Math.pow(2,-10*a/d)+1)+b},easeInOut:function(a,b,c,d){return 0==a?b:a==d?b+c:1>(a/=d/2)?c/2*Math.pow(2,10*(a-1))+b:c/2*(-Math.pow(2,-10*--a)+2)+b},CLASS_NAME:"OMAP.Easing.Expo"};OMAP.Easing.Quad={easeIn:function(a,b,c,d){return c*(a/=d)*a+b},easeOut:function(a,b,c,d){return-c*(a/=d)*(a-2)+b},easeInOut:function(a,b,c,d){return 1>(a/=d/2)?c/2*a*a+b:-c/2*(--a*(a-2)-1)+b},CLASS_NAME:"OMAP.Easing.Quad"};OMAP.Projection=OMAP.Class({proj:null,projCode:null,titleRegEx:/\+title=[^\+]*/,initialize:function(a,b){OMAP.Util.extend(this,b);this.projCode=a;"object"==typeof Proj4js&&(this.proj=new Proj4js.Proj(a))},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(a){var b=!1;a&&(a instanceof OMAP.Projection||(a=new OMAP.Projection(a)),"object"==typeof Proj4js&&this.proj.defData&&a.proj.defData?b=this.proj.defData.replace(this.titleRegEx,"")==a.proj.defData.replace(this.titleRegEx,""):a.getCode&&(b=this.getCode(),a=a.getCode(),b=b==a||!!OMAP.Projection.transforms[b]&&OMAP.Projection.transforms[b][a]===OMAP.Projection.nullTransform));return b},destroy:function(){delete this.proj;delete this.projCode},CLASS_NAME:"OMAP.Projection"});OMAP.Projection.transforms={};OMAP.Projection.defaults={"EPSG:4326":{units:"degrees",maxExtent:[-180,-90,180,90],yx:!0},"CRS:84":{units:"degrees",maxExtent:[-180,-90,180,90]},"EPSG:900913":{units:"m",maxExtent:[-2.003750834E7,-2.003750834E7,2.003750834E7,2.003750834E7]}};OMAP.Projection.addTransform=function(a,b,c){if(c===OMAP.Projection.nullTransform){var d=OMAP.Projection.defaults[a];d&&!OMAP.Projection.defaults[b]&&(OMAP.Projection.defaults[b]=d)}OMAP.Projection.transforms[a]||(OMAP.Projection.transforms[a]={});OMAP.Projection.transforms[a][b]=c};OMAP.Projection.transform=function(a,b,c){if(b&&c)if(b instanceof OMAP.Projection||(b=new OMAP.Projection(b)),c instanceof OMAP.Projection||(c=new OMAP.Projection(c)),b.proj&&c.proj)a=Proj4js.transform(b.proj,c.proj,a);else{b=b.getCode();c=c.getCode();var d=OMAP.Projection.transforms;if(d[b]&&d[b][c])d[b][c](a)}return a};OMAP.Projection.nullTransform=function(a){return a};(function(){function a(a){a.x=180*a.x/d;a.y=180/Math.PI*(2*Math.atan(Math.exp(a.y/d*Math.PI))-Math.PI/2);return a}function b(a){a.x=a.x*d/180;a.y=Math.max(-2.003750834E7,Math.min(Math.log(Math.tan((90+a.y)*Math.PI/360))/Math.PI*d,2.003750834E7));return a}function c(c,d){var e=OMAP.Projection.addTransform,f=OMAP.Projection.nullTransform,g,h,k,r,t;g=0;for(h=d.length;gb?b=0:b>this.layers.length&&(b=this.layers.length);if(c!=b){this.layers.splice(c,1);this.layers.splice(b,0,a);for(var c=0,d=this.layers.length;c=this.minPx.x+h?Math.round(a):0;b=f<=this.maxPx.y-k&&f>=this.minPx.y+k?Math.round(b):0;if(a||b){this.dragging||(this.dragging=!0,this.events.triggerEvent("movestart"));this.center=null;a&&(this.layerContainerOriginPx.x-=a,this.minPx.x-=a,this.maxPx.x-=a);b&&(this.layerContainerOriginPx.y-=b,this.minPx.y-=b,this.maxPx.y-=b);this.applyTransform();d=0;for(e=this.layers.length;dc)if(this.fractionalZoom)a=this.getZoomForResolution(c);else for(var d=a|0,e=b.length;dthis.restrictedExtent.getWidth()?a=new OMAP.LonLat(g.lon,a.lat):f.leftthis.restrictedExtent.right&&(a=a.add(this.restrictedExtent.right-f.right,0));f.getHeight()>this.restrictedExtent.getHeight()?a=new OMAP.LonLat(a.lon,g.lat):f.bottomthis.restrictedExtent.top&&(a=a.add(0,this.restrictedExtent.top-f.top))}}e=e||this.isValidZoomLevel(b)&&b!=this.getZoom();f=this.isValidLonLat(a)&&!a.equals(this.center);if(e||f||d){d||this.events.triggerEvent("movestart",{zoomChanged:e});f&&(!e&&this.center&&this.centerLayerContainer(a),this.center=a.clone());a=e?this.getResolutionForZoom(b):this.getResolution();if(e||null==this.layerContainerOrigin){this.layerContainerOrigin=this.getCachedCenter();this.layerContainerOriginPx.x=0;this.layerContainerOriginPx.y=0;this.applyTransform();var f=this.getMaxExtent({restricted:!0}),h=f.getCenterLonLat(),g=this.center.lon-h.lon,h=h.lat-this.center.lat,k=Math.round(f.getWidth()/a),l=Math.round(f.getHeight()/a);this.minPx={x:(this.size.w-k)/2-g/a,y:(this.size.h-l)/2-h/a};this.maxPx={x:this.minPx.x+Math.round(f.getWidth()/a),y:this.minPx.y+Math.round(f.getHeight()/a)}}e&&(this.zoom=b,this.resolution=a);a=this.getExtent();this.baseLayer.visibility&&(this.baseLayer.moveTo(a,e,c.dragging),c.dragging||this.baseLayer.events.triggerEvent("moveend",{zoomChanged:e}));a=this.baseLayer.getExtent();for(b=this.layers.length-1;0<=b;--b)f=this.layers[b],f===this.baseLayer||f.isBaseLayer||(g=f.calculateInRange(),f.inRange!=g&&((f.inRange=g)||f.display(!1),this.events.triggerEvent("changelayer",{layer:f,property:"visibility"})),g&&f.visibility&&(f.moveTo(a,e,c.dragging),c.dragging||f.events.triggerEvent("moveend",{zoomChanged:e})));this.events.triggerEvent("move");d||this.events.triggerEvent("moveend");if(e){b=0;for(c=this.popups.length;b=this.down.xy.distanceTo(a.xy))&&this.touch&&this.down.touches.length===this.last.touches.length){a=0;for(var c=this.down.touches.length;athis.pixelTolerance){b=!1;break}}return b},getTouchDistance:function(a,b){return Math.sqrt(Math.pow(a.clientX-b.clientX,2)+Math.pow(a.clientY-b.clientY,2))},passesDblclickTolerance:function(a){a=!0;this.down&&this.first&&(a=this.down.xy.distanceTo(this.first.xy)<=this.dblclickTolerance);return a},clearTimer:function(){null!=this.timerId&&(window.clearTimeout(this.timerId),this.timerId=null);null!=this.rightclickTimerId&&(window.clearTimeout(this.rightclickTimerId),this.rightclickTimerId=null)},delayedCall:function(a){this.timerId=null;a&&this.callback("click",[a])},getEventInfo:function(a){var b;if(a.touches){var c=a.touches.length;b=Array(c);for(var d,e=0;ethis.minRatio&&b<=this.maxRatio&&this.ovmap.getExtent().containsBounds(a)},updateOverview:function(){var a=this.map.getResolution();this.ovmap.getResolution();this.ovmap.getProjection()!=this.map.getProjection()&&(a=this.map.center.clone(),a.transform(this.map.getProjectionObject(),this.ovmap.getProjectionObject()));this.ovmap.setCenter(this.map.getExtent().getCenterLonLat());this.updateRectToMap()},createMap:function(){var a=OMAP.Util.extend({controls:[],zoom:this.map.zoom,config:this.map.config,resolutions:this.map.resolutions,maxResolution:"auto",fallThrough:!1},this.mapOptions||{});this.ovmap=new OMAP.Map(this.mapDiv,a);this.ovmap.viewPortDiv.appendChild(this.extentRectangle);OMAP.Event.stopObserving(window,"unload",this.ovmap.unloadDestroy);this.ovmap.addLayers(this.layers);this.ovmap.setCenter(this.map.getExtent().getCenterLonLat());this.wComp=(this.wComp=parseInt(OMAP.Element.getStyle(this.extentRectangle,"border-left-width"))+parseInt(OMAP.Element.getStyle(this.extentRectangle,"border-right-width")))?this.wComp:2;this.hComp=(this.hComp=parseInt(OMAP.Element.getStyle(this.extentRectangle,"border-top-width"))+parseInt(OMAP.Element.getStyle(this.extentRectangle,"border-bottom-width")))?this.hComp:2;this.handlers.drag=new OMAP.Handler.Drag(this,{move:this.rectDrag,done:this.updateMapToRect},{map:this.ovmap});this.handlers.click=new OMAP.Handler.Click(this,{click:this.mapDivClick},{single:!0,"double":!1,stopSingle:!0,stopDouble:!0,pixelTolerance:1,map:this.ovmap});this.handlers.click.activate();this.rectEvents=new OMAP.Events(this,this.extentRectangle,null,!0);this.rectEvents.register("mouseover",this,function(a){this.handlers.drag.active||this.map.dragging||this.handlers.drag.activate()});this.rectEvents.register("mouseout",this,function(a){this.handlers.drag.dragging||this.handlers.drag.deactivate()});if(this.ovmap.getProjection()!=this.map.getProjection()){var a=this.map.getProjectionObject().getUnits()||this.map.units||this.map.baseLayer.units,b=this.ovmap.getProjectionObject().getUnits()||this.ovmap.units||this.ovmap.baseLayer.units;this.resolutionFactor=a&&b?OMAP.INCHES_PER_UNIT[a]/OMAP.INCHES_PER_UNIT[b]:1}},updateRectToMap:function(){var a;a=this.ovmap.getProjection()!=this.map.getProjection()?this.map.getExtent().transform(this.map.getProjectionObject(),this.ovmap.getProjectionObject()):this.map.getExtent();(a=this.getRectBoundsFromMapBounds(a))&&this.setRectPxBounds(a)},updateMapToRect:function(){var a=this.getMapBoundsFromRectBounds(this.rectPxBounds);this.ovmap.getProjection()!=this.map.getProjection()&&(a=a.transform(this.ovmap.getProjectionObject(),this.map.getProjectionObject()));this.map.panTo(a.getCenterLonLat())},setRectPxBounds:function(a){var b=Math.max(a.top,0),c=Math.max(a.left,0),d=Math.min(a.top+Math.abs(a.getHeight()),this.ovmap.size.h-this.hComp);a=Math.min(a.left+a.getWidth(),this.ovmap.size.w-this.wComp);var e=Math.max(a-c,0),f=Math.max(d-b,0);ethis.map.zoom?0:this.map.zoom-4;this.ovmap.setCenter(this.map.getExtent().getCenterLonLat(),a)},updateMapToRect:function(){OMAP.Control.OverviewMap.prototype.updateMapToRect.apply(this,arguments);this.ovmap.setCenter(this.map.getExtent().getCenterLonLat())},createMap:function(){OMAP.Control.OverviewMap.prototype.createMap.apply(this,arguments);this.ovmap.events.register("moveend",this,this.updateRectToMap);this.ovmap.events.register("zoomend",this,this.updateRectToMap)},draw:function(){OMAP.Control.prototype.draw.apply(this,arguments);if(!(0=this.minResolution&&a<=this.maxResolution);return a},setIsBaseLayer:function(a){a!=this.isBaseLayer&&(this.isBaseLayer=a,null!=this.map&&this.map.events.triggerEvent("changebaselayer",{layer:this}))},initResolutions:function(){var a,b,c,d={},e=!0;a=0;for(b=this.RESOLUTION_PROPERTIES.length;a=a||"number"!==typeof d&&"number"!==typeof c)){b=Array(a);var e=2;"number"==typeof c&&"number"==typeof d&&(e=Math.pow(d/c,1/(a-1)));var f;if("number"===typeof d)for(f=0;f=a&&(f=h,e=c),h<=a){g=h;break}c=f-g;c=0f)break;f=e}else if(this.resolutions[c]=a.count&&this.removeGMapElements()}OMAP.Layer.EventPane.prototype.destroy.apply(this,arguments)},removeGMapElements:function(){var a=OMAP.Layer.Google.cache[this.map.id];if(a){var b=this.mapObject&&this.getMapContainer();b&&b.parentNode&&b.parentNode.removeChild(b);(b=a.termsOfUse)&&b.parentNode&&b.parentNode.removeChild(b);(a=a.poweredBy)&&a.parentNode&&a.parentNode.removeChild(a);this.mapObject&&window.google&&google.maps&&google.maps.event&&google.maps.event.clearListeners&&google.maps.event.clearListeners(this.mapObject,"tilesloaded")}},removeMap:function(a){this.visibility&&this.mapObject&&this.setGMapVisibility(!1);var b=OMAP.Layer.Google.cache[a.id];b&&(1>=b.count?(this.removeGMapElements(),delete OMAP.Layer.Google.cache[a.id]):--b.count);delete this.termsOfUse;delete this.poweredBy;delete this.mapObject;delete this.dragObject;OMAP.Layer.EventPane.prototype.removeMap.apply(this,arguments)},getOLBoundsFromMapObjectBounds:function(a){var b=null;null!=a&&(b=a.getSouthWest(),a=a.getNorthEast(),this.sphericalMercator?(b=this.forwardMercator(b.lng(),b.lat()),a=this.forwardMercator(a.lng(),a.lat())):(b=new OMAP.LonLat(b.lng(),b.lat()),a=new OMAP.LonLat(a.lng(),a.lat())),b=new OMAP.Bounds(b.lon,b.lat,a.lon,a.lat));return b},getWarningHTML:function(){return OMAP.i18n("googleWarning")},getMapObjectCenter:function(){return this.mapObject.getCenter()},getMapObjectZoom:function(){return this.mapObject.getZoom()},getLongitudeFromMapObjectLonLat:function(a){return this.sphericalMercator?this.forwardMercator(a.lng(),a.lat()).lon:a.lng()},getLatitudeFromMapObjectLonLat:function(a){return this.sphericalMercator?this.forwardMercator(a.lng(),a.lat()).lat:a.lat()},getXFromMapObjectPixel:function(a){return a.x},getYFromMapObjectPixel:function(a){return a.y},CLASS_NAME:"OMAP.Layer.Google"});OMAP.Layer.Google.cache={};OMAP.Layer.Google.v2={termsOfUse:null,poweredBy:null,dragObject:null,loadMapObject:function(){this.type||(this.type=G_NORMAL_MAP);var a,b,c,d=OMAP.Layer.Google.cache[this.map.id];if(d)a=d.mapObject,b=d.termsOfUse,c=d.poweredBy,++d.count;else{var d=this.map.viewPortDiv,e=document.createElement("div");e.id=this.map.id+"_GMap2Container";e.style.position="absolute";e.style.width="100%";e.style.height="100%";d.appendChild(e);try{a=new GMap2(e),b=e.lastChild,d.appendChild(b),b.style.zIndex="1100",b.style.right="",b.style.bottom="",b.className="olLayerGoogleCopyright",c=e.lastChild,d.appendChild(c),c.style.zIndex="1100",c.style.right="",c.style.bottom="",c.className="olLayerGooglePoweredBy gmnoprint"}catch(f){throw f;}OMAP.Layer.Google.cache[this.map.id]={mapObject:a,termsOfUse:b,poweredBy:c,count:1}}this.mapObject=a;this.termsOfUse=b;this.poweredBy=c;-1===OMAP.Util.indexOf(this.mapObject.getMapTypes(),this.type)&&this.mapObject.addMapType(this.type);"function"==typeof a.getDragObject?this.dragObject=a.getDragObject():this.dragPanMapObject=null;!1===this.isBaseLayer&&this.setGMapVisibility("none"!==this.div.style.display)},onMapResize:function(){if(this.visibility&&this.mapObject.isLoaded())this.mapObject.checkResize();else{if(!this._resized)var a=this,b=GEvent.addListener(this.mapObject,"load",function(){GEvent.removeListener(b);delete a._resized;a.mapObject.checkResize();a.moveTo(a.map.getCenter(),a.map.getZoom())});this._resized=!0}},setGMapVisibility:function(a){var b=OMAP.Layer.Google.cache[this.map.id];if(b){var c=this.mapObject.getContainer();!0===a?(this.mapObject.setMapType(this.type),c.style.display="",this.termsOfUse.style.left="",this.termsOfUse.style.display="",this.poweredBy.style.display="",b.displayed=this.id):(b.displayed===this.id&&delete b.displayed,b.displayed||(c.style.display="none",this.termsOfUse.style.display="none",this.termsOfUse.style.left="-9999px",this.poweredBy.style.display="none"))}},getMapContainer:function(){return this.mapObject.getContainer()},getMapObjectBoundsFromOLBounds:function(a){var b=null;null!=a&&(b=this.sphericalMercator?this.inverseMercator(a.bottom,a.left):new OMAP.LonLat(a.bottom,a.left),a=this.sphericalMercator?this.inverseMercator(a.top,a.right):new OMAP.LonLat(a.top,a.right),b=new GLatLngBounds(new GLatLng(b.lat,b.lon),new GLatLng(a.lat,a.lon)));return b},setMapObjectCenter:function(a,b){this.mapObject.setCenter(a,b)},dragPanMapObject:function(a,b){this.dragObject.moveBy(new GSize(-a,b))},getMapObjectLonLatFromMapObjectPixel:function(a){return this.mapObject.fromContainerPixelToLatLng(a)},getMapObjectPixelFromMapObjectLonLat:function(a){return this.mapObject.fromLatLngToContainerPixel(a)},getMapObjectZoomFromMapObjectBounds:function(a){return this.mapObject.getBoundsZoomLevel(a)},getMapObjectLonLatFromLonLat:function(a,b){var c;this.sphericalMercator?(c=this.inverseMercator(a,b),c=new GLatLng(c.lat,c.lon)):c=new GLatLng(b,a);return c},getMapObjectPixelFromXY:function(a,b){return new GPoint(a,b)}};OMAP.Format.XML=OMAP.Class(OMAP.Format,{namespaces:null,namespaceAlias:null,defaultPrefix:null,readers:{},writers:{},xmldom:null,initialize:function(a){window.ActiveXObject&&(this.xmldom=new ActiveXObject("Microsoft.XMLDOM"));OMAP.Format.prototype.initialize.apply(this,[a]);this.namespaces=OMAP.Util.extend({},this.namespaces);this.namespaceAlias={};for(var b in this.namespaces)this.namespaceAlias[this.namespaces[b]]=b},destroy:function(){this.xmldom=null;OMAP.Format.prototype.destroy.apply(this,arguments)},setNamespace:function(a,b){this.namespaces[a]=b;this.namespaceAlias[b]=a},read:function(a){var b=a.indexOf("\x3c");0this.value;break;case OMAP.Filter.Comparison.LESS_THAN_OR_EQUAL_TO:b=a<=this.value;break;case OMAP.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO:b=a>=this.value;break;case OMAP.Filter.Comparison.BETWEEN:b=a>=this.lowerBoundary&&a<=this.upperBoundary;break;case OMAP.Filter.Comparison.LIKE:b=RegExp(this.value,"gi").test(a);break;case OMAP.Filter.Comparison.IS_NULL:b=null===a}return b},value2regex:function(a,b,c){if("."==a)throw Error("'.' is an unsupported wildCard character for OMAP.Filter.Comparison");a=a?a:"*";b=b?b:".";this.value=this.value.replace(RegExp("\\"+(c?c:"!")+"(.|$)","g"),"\\$1");this.value=this.value.replace(RegExp("\\"+b,"g"),".");this.value=this.value.replace(RegExp("\\"+a,"g"),".*");this.value=this.value.replace(RegExp("\\\\.\\*","g"),"\\"+a);return this.value=this.value.replace(RegExp("\\\\\\.","g"),"\\"+b)},regex2value:function(){var a=this.value,a=a.replace(/!/g,"!!"),a=a.replace(/(\\)?\\\./g,function(a,c){return c?a:"!."}),a=a.replace(/(\\)?\\\*/g,function(a,c){return c?a:"!*"}),a=a.replace(/\\\\/g,"\\");return a=a.replace(/\.\*/g,"*")},clone:function(){return OMAP.Util.extend(new OMAP.Filter.Comparison,this)},CLASS_NAME:"OMAP.Filter.Comparison"});OMAP.Filter.Comparison.EQUAL_TO="\x3d\x3d";OMAP.Filter.Comparison.NOT_EQUAL_TO="!\x3d";OMAP.Filter.Comparison.LESS_THAN="\x3c";OMAP.Filter.Comparison.GREATER_THAN="\x3e";OMAP.Filter.Comparison.LESS_THAN_OR_EQUAL_TO="\x3c\x3d";OMAP.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO="\x3e\x3d";OMAP.Filter.Comparison.BETWEEN="..";OMAP.Filter.Comparison.LIKE="~";OMAP.Filter.Comparison.IS_NULL="NULL";OMAP.Format.Filter=OMAP.Class(OMAP.Format.XML.VersionedOGC,{defaultVersion:"1.0.0",CLASS_NAME:"OMAP.Format.Filter"});OMAP.Filter.Function=OMAP.Class(OMAP.Filter,{name:null,params:null,CLASS_NAME:"OMAP.Filter.Function"});OMAP.Date={dateRegEx:/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:(?:T(\d{1,2}):(\d{2}):(\d{2}(?:\.\d+)?)(Z|(?:[+-]\d{1,2}(?::(\d{2}))?)))|Z)?$/,toISOString:function(){return"toISOString"in Date.prototype?function(a){return a.toISOString()}:function(a){return isNaN(a.getTime())?"Invalid Date":a.getUTCFullYear()+"-"+OMAP.Number.zeroPad(a.getUTCMonth()+1,2)+"-"+OMAP.Number.zeroPad(a.getUTCDate(),2)+"T"+OMAP.Number.zeroPad(a.getUTCHours(),2)+":"+OMAP.Number.zeroPad(a.getUTCMinutes(),2)+":"+OMAP.Number.zeroPad(a.getUTCSeconds(),2)+"."+OMAP.Number.zeroPad(a.getUTCMilliseconds(),3)+"Z"}}(),parse:function(a){var b;if((a=a.match(this.dateRegEx))&&(a[1]||a[7])){b=parseInt(a[1],10)||0;var c=parseInt(a[2],10)-1||0,d=parseInt(a[3],10)||1;b=new Date(Date.UTC(b,c,d));if(c=a[7]){var d=parseInt(a[4],10),e=parseInt(a[5],10),f=parseFloat(a[6]),g=f|0,f=Math.round(1E3*(f-g));b.setUTCHours(d,e,g,f);"Z"!==c&&(c=parseInt(c,10),a=parseInt(a[8],10)||0,a=-1E3*(3600*c+60*a),b=new Date(b.getTime()+a))}}else b=new Date("invalid");return b}};OMAP.Format.Filter.v1=OMAP.Class(OMAP.Format.XML,{namespaces:{ogc:"http://www.opengis.net/ogc",gml:"http://www.opengis.net/gml",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance"},defaultPrefix:"ogc",schemaLocation:null,initialize:function(a){OMAP.Format.XML.prototype.initialize.apply(this,[a])},read:function(a){var b={};this.readers.ogc.Filter.apply(this,[a,b]);return b.filter},readers:{ogc:{_expression:function(a){for(var b="",c=a.firstChild;c;c=c.nextSibling)switch(c.nodeType){case 1:a=this.readNode(c);a.property?b+="${"+a.property+"}":void 0!==a.value&&(b+=a.value);break;case 3:case 4:b+=c.nodeValue}return b},Filter:function(a,b){var c={fids:[],filters:[]};this.readChildNodes(a,c);0=f&&0<=n&&1>=n&&(d?(h=a.x1+f*h,n=a.y1+f*k,e=new OMAP.Geometry.Point(h,n)):e=!0));if(c)if(e){if(d)a:for(a=[a,b],b=0;2>b;++b)for(f=a[b],k=1;3>k;++k)if(h=f["x"+k],n=f["y"+k],d=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(n-e.y,2)),db;++b)for(h=a[b],n=a[(b+1)%2],k=1;3>k;++k)if(f={x:h["x"+k],y:h["y"+k]},g=OMAP.Geometry.distanceToSegment(f,n),g.distance=m||(1<=m?(e=g,f=h):(e+=m*k,f+=m*l));return{distance:Math.pow(e-c,2)+Math.pow(f-d,2),x:e,y:f,along:m}};OMAP.Geometry.Point=OMAP.Class(OMAP.Geometry,{x:null,y:null,initialize:function(a,b){OMAP.Geometry.prototype.initialize.apply(this,arguments);this.x=parseFloat(a);this.y=parseFloat(b)},clone:function(a){null==a&&(a=new OMAP.Geometry.Point(this.x,this.y));OMAP.Util.applyDefaults(a,this);return a},calculateBounds:function(){this.bounds=new OMAP.Bounds(this.x,this.y,this.x,this.y)},distanceTo:function(a,b){var c=!(b&&!1===b.edge)&&b&&b.details,d,e,f,g,h;a instanceof OMAP.Geometry.Point?(e=this.x,f=this.y,g=a.x,h=a.y,d=Math.sqrt(Math.pow(e-g,2)+Math.pow(f-h,2)),d=c?{x0:e,y0:f,x1:g,y1:h,distance:d}:d):(d=a.distanceTo(this,b),c&&(d={x0:d.x1,y0:d.y1,x1:d.x0,y1:d.y0,distance:d.distance}));return d},equals:function(a){var b=!1;null!=a&&(b=this.x==a.x&&this.y==a.y||isNaN(this.x)&&isNaN(this.y)&&isNaN(a.x)&&isNaN(a.y));return b},toShortString:function(){return this.x+", "+this.y},move:function(a,b){this.x+=a;this.y+=b;this.clearBounds()},rotate:function(a,b){a*=Math.PI/180;var c=this.distanceTo(b),d=a+Math.atan2(this.y-b.y,this.x-b.x);this.x=b.x+c*Math.cos(d);this.y=b.y+c*Math.sin(d);this.clearBounds()},getCentroid:function(){return new OMAP.Geometry.Point(this.x,this.y)},resize:function(a,b,c){this.x=b.x+a*(void 0==c?1:c)*(this.x-b.x);this.y=b.y+a*(this.y-b.y);this.clearBounds();return this},intersects:function(a){return"OMAP.Geometry.Point"==a.CLASS_NAME?this.equals(a):a.intersects(this)},transform:function(a,b){a&&b&&(OMAP.Projection.transform(this,a,b),this.bounds=null);return this},getVertices:function(a){return[this]},CLASS_NAME:"OMAP.Geometry.Point"});OMAP.Geometry.Collection=OMAP.Class(OMAP.Geometry,{components:null,componentTypes:null,initialize:function(a){OMAP.Geometry.prototype.initialize.apply(this,arguments);this.components=[];null!=a&&this.addComponents(a)},destroy:function(){this.components.length=0;this.components=null;OMAP.Geometry.prototype.destroy.apply(this,arguments)},clone:function(){for(var a=eval("new "+this.CLASS_NAME+"()"),b=0,c=this.components.length;bf)break;if(!(k.x2Math.max(g,h)||Math.max(l,m)h&&(k>l.y1&&kl.y2))break;e=c?{distance:e.distance,x0:e.x,y0:e.y,x1:h,y1:k}:e.distance}else if(a instanceof OMAP.Geometry.LineString){var g=this.getSortedSegments(),h=a.getSortedSegments(),p,q,r=h.length,t={point:!0},m=0,n=g.length;a:for(;mb.length)return this;var c=function(a,b,d,k){for(var f=0,g=0,h=b,p;hf&&(f=p,g=h)}f>k&&g!=b&&(e.push(g),c(a,b,g,k),c(a,g,d,k))},d=b.length-1,e=[];e.push(0);for(e.push(d);b[0].equals(b[d]);)d--,e.push(d);c(b,0,d,a);a=[];e.sort(function(a,b){return a-b});for(d=0;d=a)return this.components[0].clone();if(2=g&&c<=h||g>=h&&c<=g&&c>=h)){l=-1;break}}else{k=b((h-g)/(f-e)*(a-f)+h,14);if(k==c&&(e=e&&a<=f||e>f&&a<=e&&a>=f)){l=-1;break}k<=c||g!=h&&(kMath.max(g,h))||(e=e&&af&&a=f)&&++l}return-1==l?1:!!(l&1)},intersects:function(a){var b=!1;if("OMAP.Geometry.Point"==a.CLASS_NAME)b=this.containsPoint(a);else if("OMAP.Geometry.LineString"==a.CLASS_NAME)b=a.intersects(this);else if("OMAP.Geometry.LinearRing"==a.CLASS_NAME)b=OMAP.Geometry.LineString.prototype.intersects.apply(this,[a]);else for(var c=0,d=a.components.length;ca?"0"+a:a}return'"'+a.getFullYear()+"-"+b(a.getMonth()+1)+"-"+b(a.getDate())+"T"+b(a.getHours())+":"+b(a.getMinutes())+":"+b(a.getSeconds())+'"'}},CLASS_NAME:"OMAP.Format.JSON"});OMAP.Format.GeoJSON=OMAP.Class(OMAP.Format.JSON,{ignoreExtraDims:!1,read:function(a,b,c){b=b?b:"FeatureCollection";var d=null;c="string"==typeof a?OMAP.Format.JSON.prototype.read.apply(this,[a,c]):a;if(!c)OMAP.Console.error("Bad JSON: "+a);else if("string"!=typeof c.type)OMAP.Console.error("Bad GeoJSON - no type: "+a);else if(this.isValidType(c,b))switch(b){case "Geometry":try{d=this.parseGeometry(c)}catch(f){OMAP.Console.error(f)}break;case "Feature":try{d=this.parseFeature(c),d.type="Feature"}catch(f){OMAP.Console.error(f)}break;case "FeatureCollection":switch(d=[],c.type){case "Feature":try{d.push(this.parseFeature(c))}catch(f){d=null,OMAP.Console.error(f)}break;case "FeatureCollection":a=0;for(b=c.features.length;ad&&(e=~e);a[c]=e}return this.encodeUnsignedIntegers(a)},decodeSignedIntegers:function(a){a=this.decodeUnsignedIntegers(a);for(var b=a.length,c=0;c>1):d>>1}return a},encodeUnsignedIntegers:function(a){for(var b="",c=a.length,d=0;dg?(b.push(c),d=c=0):d+=5}return b},encodeFloat:function(a,b){a=Math.round(a*(b||1E5));return this.encodeSignedInteger(a)},decodeFloat:function(a,b){return this.decodeSignedInteger(a)/(b||1E5)},encodeSignedInteger:function(a){var b=a<<1;0>a&&(b=~b);return this.encodeUnsignedInteger(b)},decodeSignedInteger:function(a){a=this.decodeUnsignedInteger(a);return a&1?~(a>>1):a>>1},encodeUnsignedInteger:function(a){for(var b,c="";32<=a;)b=(32|a&31)+63,c+=String.fromCharCode(b),a>>=5;return c+String.fromCharCode(a+63)},decodeUnsignedInteger:function(a){for(var b=0,c=0,d=a.length,e=0;ef)break;c+=5}return b},CLASS_NAME:"OMAP.Format.EncodedPolyline"});OMAP.Control.Panel=OMAP.Class(OMAP.Control,{controls:null,autoActivate:!0,defaultControl:null,saveState:!1,allowDepress:!1,activeState:null,initialize:function(a){OMAP.Control.prototype.initialize.apply(this,[a]);this.controls=[];this.activeState={}},destroy:function(){this.map&&this.map.events.unregister("buttonclick",this,this.onButtonClick);OMAP.Control.prototype.destroy.apply(this,arguments);for(var a,b=this.controls.length-1;0<=b;b--)a=this.controls[b],a.events&&a.events.un({activate:this.iconOn,deactivate:this.iconOff}),a.panel_div=null;this.activeState=null},activate:function(){if(OMAP.Control.prototype.activate.apply(this,arguments)){for(var a,b=0,c=this.controls.length;bthis.layer.opacity&&(a.filter="alpha(opacity\x3d"+100*this.layer.opacity+")");a.position="absolute";this.layerAlphaHack&&(a.paddingTop=a.height,a.height="0",a.width="100%");this.frame&&this.frame.appendChild(this.imgDiv)}return this.imgDiv},setImage:function(a){this.imgDiv=a},initImage:function(){this.events.triggerEvent("beforeload");this.layer.div.appendChild(this.getTile());this.events.triggerEvent(this._loadEvent);var a=this.getImage();this.url&&OMAP.Util.isEquivalentUrl(a.src,this.url)?this._loadTimeout=window.setTimeout(OMAP.Function.bind(this.onImageLoad,this),0):(this.stopLoading(),this.crossOriginKeyword&&a.removeAttribute("crossorigin"),OMAP.Event.observe(a,"load",OMAP.Function.bind(this.onImageLoad,this)),OMAP.Event.observe(a,"error",OMAP.Function.bind(this.onImageError,this)),this.imageReloadAttempts=0,this.setImgSrc(this.url))},setImgSrc:function(a){var b=this.imgDiv;a?(b.style.visibility="hidden",b.style.opacity=0,this.crossOriginKeyword&&("data:"!==a.substr(0,5)?b.setAttribute("crossorigin",this.crossOriginKeyword):b.removeAttribute("crossorigin")),b.src=a):(this.stopLoading(),this.imgDiv=null,b.parentNode&&b.parentNode.removeChild(b))},getTile:function(){return this.frame?this.frame:this.getImage()},createBackBuffer:function(){if(this.imgDiv&&!this.isLoading){var a;this.frame?(a=this.frame.cloneNode(!1),a.appendChild(this.imgDiv)):a=this.imgDiv;this.imgDiv=null;return a}},onImageLoad:function(){var a=this.imgDiv;this.stopLoading();a.style.visibility="inherit";a.style.opacity=this.layer.opacity;this.isLoading=!1;this.canvasContext=null;this.events.triggerEvent("loadend");!0===this.layerAlphaHack&&(a.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+a.src+"', sizingMethod\x3d'scale')")},onImageError:function(){var a=this.imgDiv;null!=a.src&&(this.imageReloadAttempts++,this.imageReloadAttempts<=OMAP.IMAGE_RELOAD_ATTEMPTS?this.setImgSrc(this.layer.getURL(this.bounds)):(OMAP.Element.addClass(a,"olImageLoadError"),this.events.triggerEvent("loaderror"),this.onImageLoad(),this.onImageLoadError(a)))},stopLoading:function(){OMAP.Event.stopObservingElement(this.imgDiv);window.clearTimeout(this._loadTimeout);delete this._loadTimeout},getCanvasContext:function(){if(OMAP.CANVAS_SUPPORTED&&this.imgDiv&&!this.isLoading){if(!this.canvasContext){var a=document.createElement("canvas");a.width=this.size.w;a.height=this.size.h;this.canvasContext=a.getContext("2d");this.canvasContext.drawImage(this.imgDiv,0,0)}return this.canvasContext}},CLASS_NAME:"OMAP.Tile.Image"});OMAP.Tile.Image.IMAGE=function(){var a=new Image;a.className="olTileImage";a.galleryImg="no";return a}();OMAP.Layer.Grid=OMAP.Class(OMAP.Layer.HTTPRequest,{tileSize:null,tileOriginCorner:"bl",tileOrigin:null,tileOptions:null,tileClass:OMAP.Tile.Image,grid:null,singleTile:!1,ratio:1.5,buffer:0,transitionEffect:"resize",numLoadingTiles:0,serverResolutions:null,loading:!1,backBuffer:null,gridResolution:null,backBufferResolution:null,backBufferLonLat:null,backBufferTimerId:null,removeBackBufferDelay:null,className:null,gridLayout:null,rowSign:null,transitionendEvents:["transitionend","webkitTransitionEnd","otransitionend","oTransitionEnd"],initialize:function(a,b,c,d){OMAP.Layer.HTTPRequest.prototype.initialize.apply(this,arguments);this.grid=[];this._removeBackBuffer=OMAP.Function.bind(this.removeBackBuffer,this);this.initProperties();this.rowSign="t"===this.tileOriginCorner.substr(0,1)?1:-1},initProperties:function(){void 0===this.options.removeBackBufferDelay&&(this.removeBackBufferDelay=this.singleTile?0:2500);void 0===this.options.className&&(this.className=this.singleTile?"olLayerGridSingleTile":"olLayerGrid")},setMap:function(a){OMAP.Layer.HTTPRequest.prototype.setMap.call(this,a);OMAP.Element.addClass(this.div,this.className)},removeMap:function(a){this.removeBackBuffer()},destroy:function(){this.removeBackBuffer();this.clearGrid();this.tileSize=this.grid=null;OMAP.Layer.HTTPRequest.prototype.destroy.apply(this,arguments)},clearGrid:function(){if(this.grid){for(var a=0,b=this.grid.length;ab)break;b=d;f=e}a=f}return a},getServerZoom:function(){var a=this.getServerResolution();return this.serverResolutions?OMAP.Util.indexOf(this.serverResolutions,a):this.map.getZoomForResolution(a)+(this.zoomOffset||0)},applyBackBuffer:function(a){null!==this.backBufferTimerId&&this.removeBackBuffer();var b=this.backBuffer;if(!b){b=this.createBackBuffer();if(!b)return;a===this.gridResolution?this.div.insertBefore(b,this.div.firstChild):this.map.baseLayer.div.parentNode.insertBefore(b,this.map.baseLayer.div);this.backBuffer=b;var c=this.grid[0][0].bounds;this.backBufferLonLat={lon:c.left,lat:c.top};this.backBufferResolution=this.gridResolution}for(var c=this.backBufferResolution/a,d=b.childNodes,e,f=d.length-1;0<=f;--f)e=d[f],e.style.top=(c*e._i*e._h|0)+"px",e.style.left=(c*e._j*e._w|0)+"px",e.style.width=Math.round(c*e._w)+"px",e.style.height=Math.round(c*e._h)+"px";a=this.getViewPortPxFromLonLat(this.backBufferLonLat,a);c=this.map.layerContainerOriginPx.y;b.style.left=Math.round(a.x-this.map.layerContainerOriginPx.x)+"px";b.style.top=Math.round(a.y-c)+"px"},createBackBuffer:function(){var a;if(0=a.bottom-h*this.buffer||n-d.w*(a-1))this.shiftColumn(!0,d);else if(c<-d.w*a)this.shiftColumn(!1,d);else if(b>-d.h*(a-1))this.shiftRow(!0,d);else if(b<-d.h*a)this.shiftRow(!1,d);else break}},shiftRow:function(a,b){var c=this.grid,d=a?0:c.length-1,e=a?-1:1;this.gridLayout.startrow+=e*this.rowSign;for(var f=c[d],g=c[a?"pop":"shift"](),h=0,k=g.length;ha;){var e=this.grid.pop();c=0;for(d=e.length;cb;)e=this.grid[c],f=e.pop(),this.destroyTile(f)},onMapResize:function(){this.singleTile&&(this.clearGrid(),this.setTileSize())},getTileBounds:function(a){var b=this.maxExtent,c=this.getResolution(),d=c*this.tileSize.w,c=c*this.tileSize.h,e=this.getLonLatFromViewPortPx(a);a=b.left+d*Math.floor((e.lon-b.left)/d);b=b.bottom+c*Math.floor((e.lat-b.bottom)/c);return new OMAP.Bounds(a,b,a+d,b+c)},CLASS_NAME:"OMAP.Layer.Grid"});OMAP.Format.ArcXML=OMAP.Class(OMAP.Format.XML,{fontStyleKeys:"antialiasing blockout font fontcolor fontsize fontstyle glowing interval outline printmode shadow transparency".split(" "),request:null,response:null,initialize:function(a){this.request=new OMAP.Format.ArcXML.Request;this.response=new OMAP.Format.ArcXML.Response;if(a)if("feature"==a.requesttype){this.request.get_image=null;var b=this.request.get_feature.query;this.addCoordSys(b.featurecoordsys,a.featureCoordSys);this.addCoordSys(b.filtercoordsys,a.filterCoordSys);a.polygon?(b.isspatial=!0,b.spatialfilter.polygon=a.polygon):a.envelope&&(b.isspatial=!0,b.spatialfilter.envelope={minx:0,miny:0,maxx:0,maxy:0},this.parseEnvelope(b.spatialfilter.envelope,a.envelope))}else"image"==a.requesttype?(this.request.get_feature=null,b=this.request.get_image.properties,this.parseEnvelope(b.envelope,a.envelope),this.addLayers(b.layerlist,a.layers),this.addImageSize(b.imagesize,a.tileSize),this.addCoordSys(b.featurecoordsys,a.featureCoordSys),this.addCoordSys(b.filtercoordsys,a.filterCoordSys)):this.request=null;OMAP.Format.XML.prototype.initialize.apply(this,[a])},parseEnvelope:function(a,b){b&&4==b.length&&(a.minx=b[0],a.miny=b[1],a.maxx=b[2],a.maxy=b[3])},addLayers:function(a,b){for(var c=0,d=b.length;cg.where.length)continue;var h;h="boolean"==typeof g.spatialfilter&&g.spatialfilter?this.createElementNS("","SPATIALQUERY"):this.createElementNS("","QUERY");h.setAttribute("where",g.where);"number"==typeof g.accuracy&&0g.featurelimit&&h.setAttribute("featurelimit",g.featurelimit);"string"==typeof g.subfields&&"#ALL#"!=g.subfields&&h.setAttribute("subfields",g.subfields);"string"==typeof g.joinexpression&&0arguments.length&&(k=!0);this._async=k;var l=this,m=this.readyState,n;h&&k&&(n=function(){m!=b.DONE&&(e(l),l.abort())},window.attachEvent("onunload",n));b.onopen&&b.onopen.apply(this,arguments);4b.UNSENT&&(this._aborted=!0);this._object.abort();e(this);this.readyState=b.UNSENT;delete this._data};b.prototype.getAllResponseHeaders=function(){return this._object.getAllResponseHeaders()};b.prototype.getResponseHeader=function(a){return this._object.getResponseHeader(a)};b.prototype.setRequestHeader=function(a,b){this._headers||(this._headers={});this._headers[a]=b;return this._object.setRequestHeader(a,b)};b.prototype.addEventListener=function(a,b,c){for(var d=0,e;e=this._listeners[d];d++)if(e[0]==a&&e[1]==b&&e[2]==c)return;this._listeners.push([a,b,c])};b.prototype.removeEventListener=function(a,b,c){for(var d=0,e;(e=this._listeners[d])&&(e[0]!=a||e[1]!=b||e[2]!=c);d++);e&&this._listeners.splice(d,1)};b.prototype.dispatchEvent=function(a){a={type:a.type,target:this,currentTarget:this,eventPhase:2,bubbles:a.bubbles,cancelable:a.cancelable,timeStamp:a.timeStamp,stopPropagation:function(){},preventDefault:function(){},initEvent:function(){}};"readystatechange"==a.type&&this.onreadystatechange&&(this.onreadystatechange.handleEvent||this.onreadystatechange).apply(this,[a]);for(var b=0,c;c=this._listeners[b];b++)c[0]!=a.type||c[2]||(c[1].handleEvent||c[1]).apply(this,[a])};b.prototype.toString=function(){return"[object XMLHttpRequest]"};b.toString=function(){return"[XMLHttpRequest]"};window.Function.prototype.apply||(window.Function.prototype.apply=function(a,b){b||(b=[]);a.__func=this;a.__func(b[0],b[1],b[2],b[3],b[4]);delete a.__func});OMAP.Request||(OMAP.Request={});OMAP.Request.XMLHttpRequest=b})();OMAP.ProxyHost="";OMAP.Request||(OMAP.Request={});OMAP.Util.extend(OMAP.Request,{DEFAULT_CONFIG:{method:"GET",url:window.location.href,async:!0,user:void 0,password:void 0,params:null,proxy:OMAP.ProxyHost,headers:{},data:null,callback:function(){},success:null,failure:null,scope:null},URL_SPLIT_REGEX:/([^:]*:)\/\/([^:]*:?[^@]*@)?([^:\/\?]*):?([^\/\?]*)/,events:new OMAP.Events(this),makeSameOrigin:function(a,b){var c=0!==a.indexOf("http"),d=!c&&a.match(this.URL_SPLIT_REGEX);if(d){var e=window.location,c=d[1]==e.protocol&&d[3]==e.hostname,d=d[4],e=e.port;if(80!=d&&""!=d||"80"!=e&&""!=e)c=c&&d==e}c||b&&(a="function"==typeof b?b(a):b+encodeURIComponent(a));return a},issue:function(a){var b=OMAP.Util.extend(this.DEFAULT_CONFIG,{proxy:OMAP.ProxyHost});a=a||{};a.headers=a.headers||{};a=OMAP.Util.applyDefaults(a,b);a.headers=OMAP.Util.applyDefaults(a.headers,b.headers);var b=!1,c;for(c in a.headers)a.headers.hasOwnProperty(c)&&"x-requested-with"===c.toLowerCase()&&(b=!0);!1===b&&(a.headers["X-Requested-With"]="XMLHttpRequest");var d=new OMAP.Request.XMLHttpRequest,e=OMAP.Util.urlAppend(a.url,OMAP.Util.getParameterString(a.params||{})),e=OMAP.Request.makeSameOrigin(e,a.proxy);d.open(a.method,e,a.async,a.user,a.password);for(var f in a.headers)d.setRequestHeader(f,a.headers[f]);var g=this.events,h=this;d.onreadystatechange=function(){d.readyState==OMAP.Request.XMLHttpRequest.DONE&&!1!==g.triggerEvent("complete",{request:d,config:a,requestUrl:e})&&h.runCallbacks({request:d,config:a,requestUrl:e})};!1===a.async?d.send(a.data):window.setTimeout(function(){0!==d.readyState&&d.send(a.data)},0);return d},runCallbacks:function(a){var b=a.request,c=a.config,d=c.scope?OMAP.Function.bind(c.callback,c.scope):c.callback,e;c.success&&(e=c.scope?OMAP.Function.bind(c.success,c.scope):c.success);var f;c.failure&&(f=c.scope?OMAP.Function.bind(c.failure,c.scope):c.failure);"file:"==OMAP.Util.createUrlObject(c.url).protocol&&b.responseText&&(b.status=200);d(b);if(!b.status||200<=b.status&&300>b.status)this.events.triggerEvent("success",a),e&&e(b);b.status&&(200>b.status||300<=b.status)&&(this.events.triggerEvent("failure",a),f&&f(b))},GET:function(a){a=OMAP.Util.extend(a,{method:"GET"});return OMAP.Request.issue(a)},POST:function(a){a=OMAP.Util.extend(a,{method:"POST"});a.headers=a.headers?a.headers:{};"CONTENT-TYPE"in OMAP.Util.upperCaseObject(a.headers)||(a.headers["Content-Type"]="application/xml");return OMAP.Request.issue(a)},PUT:function(a){a=OMAP.Util.extend(a,{method:"PUT"});a.headers=a.headers?a.headers:{};"CONTENT-TYPE"in OMAP.Util.upperCaseObject(a.headers)||(a.headers["Content-Type"]="application/xml");return OMAP.Request.issue(a)},DELETE:function(a){a=OMAP.Util.extend(a,{method:"DELETE"});return OMAP.Request.issue(a)},HEAD:function(a){a=OMAP.Util.extend(a,{method:"HEAD"});return OMAP.Request.issue(a)},OPTIONS:function(a){a=OMAP.Util.extend(a,{method:"OPTIONS"});return OMAP.Request.issue(a)}});OMAP.Layer.ArcIMS=OMAP.Class(OMAP.Layer.Grid,{DEFAULT_PARAMS:{ClientVersion:"9.2",ServiceName:""},featureCoordSys:"4326",filterCoordSys:"4326",layers:null,async:!0,name:"ArcIMS",isBaseLayer:!0,DEFAULT_OPTIONS:{tileSize:new OMAP.Size(512,512),featureCoordSys:"4326",filterCoordSys:"4326",layers:null,isBaseLayer:!0,async:!0,name:"ArcIMS"},initialize:function(a,b,c){this.tileSize=new OMAP.Size(512,512);this.params=OMAP.Util.applyDefaults({ServiceName:c.serviceName},this.DEFAULT_PARAMS);this.options=OMAP.Util.applyDefaults(c,this.DEFAULT_OPTIONS);OMAP.Layer.Grid.prototype.initialize.apply(this,[a,b,this.params,c]);this.transparent&&(this.isBaseLayer||(this.isBaseLayer=!1),"image/jpeg"==this.format&&(this.format=OMAP.Util.alphaHack()?"image/gif":"image/png"));null===this.options.layers&&(this.options.layers=[])},getURL:function(a){var b="";a=this.adjustBounds(a);a=new OMAP.Format.ArcXML(OMAP.Util.extend(this.options,{requesttype:"image",envelope:a.toArray(),tileSize:this.tileSize}));a=new OMAP.Request.POST({url:this.getFullRequestString(),data:a.write(),async:!1});null!=a&&(b=a.responseXML,b&&b.documentElement||(b=a.responseText),b=(new OMAP.Format.ArcXML).read(b),b=this.getUrlOrImage(b.image.output));return b},getURLasync:function(a,b,c){a=this.adjustBounds(a);a=new OMAP.Format.ArcXML(OMAP.Util.extend(this.options,{requesttype:"image",envelope:a.toArray(),tileSize:this.tileSize}));OMAP.Request.POST({url:this.getFullRequestString(),async:!0,data:a.write(),callback:function(a){var d=a.responseXML;d&&d.documentElement||(d=a.responseText);a=(new OMAP.Format.ArcXML).read(d);b.call(c,this.getUrlOrImage(a.image.output))},scope:this})},getUrlOrImage:function(a){var b="";a.url?b=a.url:a.data&&(b="data:image/"+a.type+";base64,"+a.data);return b},setLayerQuery:function(a,b){for(var c=0;ch.length||(a=this.getLocalXY(a),e=a[0],g=a[1],isNaN(e)||isNaN(g)))){this.canvas.lineCap="round";this.canvas.lineJoin="round";this.hitDetection&&(this.hitContext.lineCap="round",this.hitContext.lineJoin="round");if(b.graphicName in this.cachedSymbolBounds)d=this.cachedSymbolBounds[b.graphicName];else{d=new OMAP.Bounds;for(a=0;a=this.map.Z_INDEX_BASE.Feature?this.layer.setZIndex(a):this.map.setLayerZIndex(this.layer,this.map.getLayerIndex(this.layer))},CLASS_NAME:"OMAP.Control.ModifyFeature"});OMAP.Control.ModifyFeature.RESHAPE=1;OMAP.Control.ModifyFeature.RESIZE=2;OMAP.Control.ModifyFeature.ROTATE=4;OMAP.Control.ModifyFeature.DRAG=8;OMAP.Layer.Bing=OMAP.Class(OMAP.Layer.XYZ,{key:null,serverResolutions:[156543.03390625,78271.516953125,39135.7584765625,19567.87923828125,9783.939619140625,4891.9698095703125,2445.9849047851562,1222.9924523925781,611.4962261962891,305.74811309814453,152.87405654907226,76.43702827453613,38.218514137268066,19.109257068634033,9.554628534317017,4.777314267158508,2.388657133579254,1.194328566789627,.5971642833948135,.29858214169740677,.14929107084870338,.07464553542435169],attributionTemplate:'\x3cspan class\x3d"olBingAttribution ${type}"\x3e\x3cdiv\x3e\x3ca target\x3d"_blank" href\x3d"http://www.bing.com/maps/"\x3e\x3cimg src\x3d"${logo}" /\x3e\x3c/a\x3e\x3c/div\x3e${copyrights}\x3ca style\x3d"white-space: nowrap" target\x3d"_blank" href\x3d"http://www.microsoft.com/maps/product/terms.html"\x3eTerms of Use\x3c/a\x3e\x3c/span\x3e',metadata:null,protocolRegex:/^http:/i,type:"Road",culture:"en-US",metadataParams:null,tileOptions:null,protocol:~window.location.href.indexOf("http")?"":"http:",initialize:function(a){a=OMAP.Util.applyDefaults({sphericalMercator:!0},a);OMAP.Layer.XYZ.prototype.initialize.apply(this,[a.name||"Bing "+(a.type||this.type),null,a]);this.tileOptions=OMAP.Util.extend({crossOriginKeyword:"anonymous"},this.options.tileOptions);this.loadMetadata()},loadMetadata:function(){this._callbackId="_callback_"+this.id.replace(/\./g,"_");window[this._callbackId]=OMAP.Function.bind(OMAP.Layer.Bing.processMetadata,this);var a=OMAP.Util.applyDefaults({key:this.key,jsonp:this._callbackId,include:"ImageryProviders"},this.metadataParams),a=this.protocol+"//dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.type+"?"+OMAP.Util.getParameterString(a),b=document.createElement("script");b.type="text/javascript";b.src=a;b.id=this._callbackId;document.getElementsByTagName("head")[0].appendChild(b)},initLayer:function(){var a=this.metadata.resourceSets[0].resources[0],b=a.imageUrl.replace("{quadkey}","${quadkey}"),b=b.replace("{culture}",this.culture),b=b.replace(this.protocolRegex,this.protocol);this.url=[];for(var c=0;c=n.zoomMin&&(b+=f.attribution+" ");a=a.brandLogoUri.replace(this.protocolRegex,this.protocol);this.attribution=OMAP.String.format(this.attributionTemplate,{type:this.type.toLowerCase(),logo:a,copyrights:b});this.map&&this.map.events.triggerEvent("changelayer",{layer:this,property:"attribution"})}},setMap:function(){OMAP.Layer.XYZ.prototype.setMap.apply(this,arguments);this.map.events.register("moveend",this,this.updateAttribution)},clone:function(a){null==a&&(a=new OMAP.Layer.Bing(this.options));return OMAP.Layer.XYZ.prototype.clone.apply(this,[a])},destroy:function(){this.map&&this.map.events.unregister("moveend",this,this.updateAttribution);OMAP.Layer.XYZ.prototype.destroy.apply(this,arguments)},CLASS_NAME:"OMAP.Layer.Bing"});OMAP.Layer.Bing.processMetadata=function(a){this.metadata=a;this.initLayer();a=document.getElementById(this._callbackId);a.parentNode.removeChild(a);window[this._callbackId]=void 0;delete this._callbackId};OMAP.StyleMap=OMAP.Class({styles:null,extendDefault:!0,initialize:function(a,b){this.styles={"default":new OMAP.Style(OMAP.Feature.Vector.style["default"]),select:new OMAP.Style(OMAP.Feature.Vector.style.select),temporary:new OMAP.Style(OMAP.Feature.Vector.style.temporary),"delete":new OMAP.Style(OMAP.Feature.Vector.style["delete"])};if(a instanceof OMAP.Style)this.styles["default"]=a,this.styles.select=a,this.styles.temporary=a,this.styles["delete"]=a;else if("object"==typeof a)for(var c in a)if(a[c]instanceof OMAP.Style)this.styles[c]=a[c];else if("object"==typeof a[c])this.styles[c]=new OMAP.Style(a[c]);else{this.styles["default"]=new OMAP.Style(a);this.styles.select=new OMAP.Style(a);this.styles.temporary=new OMAP.Style(a);this.styles["delete"]=new OMAP.Style(a);break}OMAP.Util.extend(this,b)},destroy:function(){for(var a in this.styles)this.styles[a].destroy();this.styles=null},createSymbolizer:function(a,b){a||(a=new OMAP.Feature.Vector);this.styles[b]||(b="default");a.renderIntent=b;var c={};this.extendDefault&&"default"!=b&&(c=this.styles["default"].createSymbolizer(a));return OMAP.Util.extend(c,this.styles[b].createSymbolizer(a))},addUniqueValueRules:function(a,b,c,d){var e=[],f;for(f in c)e.push(new OMAP.Rule({symbolizer:c[f],context:d,filter:new OMAP.Filter.Comparison({type:OMAP.Filter.Comparison.EQUAL_TO,property:b,value:f})}));this.styles[a].addRules(e)},CLASS_NAME:"OMAP.StyleMap"});OMAP.Layer.Vector=OMAP.Class(OMAP.Layer,{isBaseLayer:!1,isFixed:!1,features:null,filter:null,selectedFeatures:null,unrenderedFeatures:null,reportError:!0,style:null,styleMap:null,strategies:null,protocol:null,renderers:["SVG","VML","Canvas"],renderer:null,rendererOptions:null,geometryType:null,circlehandler:null,drawn:!1,ratio:1,initialize:function(a,b){OMAP.Layer.prototype.initialize.apply(this,arguments);this.renderer&&this.renderer.supported()||this.assignRenderer();this.renderer&&this.renderer.supported()||(this.renderer=null,this.displayError());this.styleMap||(this.styleMap=new OMAP.StyleMap);this.features=[];this.selectedFeatures=[];this.unrenderedFeatures={};if(this.strategies)for(var c=0,d=this.strategies.length;cb?this.callback("down",[a,this.cumulative?Math.max(-this.maxDelta,b):-1]):this.callback("up",[a,this.cumulative?Math.min(this.maxDelta,b):1]))},activate:function(a){if(OMAP.Handler.prototype.activate.apply(this,arguments)){var b=this.wheelListener;OMAP.Event.observe(window,"DOMMouseScroll",b);OMAP.Event.observe(window,"mousewheel",b);OMAP.Event.observe(document,"mousewheel",b);return!0}return!1},deactivate:function(a){if(OMAP.Handler.prototype.deactivate.apply(this,arguments)){var b=this.wheelListener;OMAP.Event.stopObserving(window,"DOMMouseScroll",b);OMAP.Event.stopObserving(window,"mousewheel",b);OMAP.Event.stopObserving(document,"mousewheel",b);return!0}return!1},CLASS_NAME:"OMAP.Handler.MouseWheel"});OMAP.Symbolizer=OMAP.Class({zIndex:0,initialize:function(a){OMAP.Util.extend(this,a)},clone:function(){return new (eval(this.CLASS_NAME))(OMAP.Util.extend({},this))},CLASS_NAME:"OMAP.Symbolizer"});OMAP.Symbolizer.Raster=OMAP.Class(OMAP.Symbolizer,{initialize:function(a){OMAP.Symbolizer.prototype.initialize.apply(this,arguments)},CLASS_NAME:"OMAP.Symbolizer.Raster"});OMAP.Rule=OMAP.Class({id:null,name:null,title:null,description:null,context:null,filter:null,elseFilter:!1,symbolizer:null,symbolizers:null,minScaleDenominator:null,maxScaleDenominator:null,initialize:function(a){this.symbolizer={};OMAP.Util.extend(this,a);this.symbolizers&&delete this.symbolizer;this.id=OMAP.Util.createUniqueID(this.CLASS_NAME+"_")},destroy:function(){for(var a in this.symbolizer)this.symbolizer[a]=null;this.symbolizer=null;delete this.symbolizers},evaluate:function(a){var b=this.getContext(a),c=!0;if(this.minScaleDenominator||this.maxScaleDenominator)var d=a.layer.map.getScale();this.minScaleDenominator&&(c=d>=OMAP.Style.createLiteral(this.minScaleDenominator,b));c&&this.maxScaleDenominator&&(c=dthis.maxZIndex&&(this.maxZIndex=b)},getNextElement:function(a){a+=1;if(aa.left&&f.righta.left&&f.lefta.length)throw Error("At least two point features have to be added to create a line from");for(var c=Array(a.length-1),d,e,f,g=0,h=a.length;gthis.opacity&&a.setOpacity(this.opacity);this.map&&this.map.getExtent()&&(a.map=this.map,this.drawMarker(a))},removeMarker:function(a){this.markers&&this.markers.length&&(OMAP.Util.removeItem(this.markers,a),a.erase())},clearMarkers:function(){if(null!=this.markers)for(;0=a.maxResolution)return null;for(var c={node:this.getGeoTolerance(a.nodeTolerance,c),vertex:this.getGeoTolerance(a.vertexTolerance,c),edge:this.getGeoTolerance(a.edgeTolerance,c)},d=Math.max(c.node,c.vertex,c.edge),e={rank:Number.POSITIVE_INFINITY,dist:Number.POSITIVE_INFINITY},f=!1,g=a.layer.features,h,k,l,m,n,p,q=this.precedence.length,r=new OMAP.LonLat(b.x,b.y),t=0,u=g.length;t=this.maxDepth)return!1;var c=OMAP.Util.extend({},b);c.depth++;for(var d=0,e=a.length;d=e.length)){switch(e.length){case 1:f=e[0];break;case 2:f=e[0];e=e[1];f=3==f.nodeType||4==f.nodeType?f:e;break;default:f=e[1]}if(3==f.nodeType||4==f.nodeType)if(d=d.prefix?d.nodeName.split(":")[1]:d.nodeName,f=OMAP.Util.getXmlNodeValue(f))f=f.replace(this.regExes.trimSpace,""),b[d]=f}return b},parseExtendedData:function(a){var b={},c,d,e,f,g=a.getElementsByTagName("Data");c=0;for(d=g.length;cc.status?(c=this.parseResponse(c,b.readOptions))&&!1!==c.success?(b.readOptions&&"object"==b.readOptions.output?OMAP.Util.extend(a,c):a.features=c,a.code=OMAP.Protocol.Response.SUCCESS):(a.code=OMAP.Protocol.Response.FAILURE,a.error=c):a.code=OMAP.Protocol.Response.FAILURE;b.callback.call(b.scope,a)}},parseResponse:function(a,b){var c=a.responseXML;c&&c.documentElement||(c=a.responseText);if(!c||0>=c.length)return null;c=null!==this.readFormat?this.readFormat.read(c):this.format.read(c,b);if(!this.featureNS){var d=this.readFormat||this.format;this.featureNS=d.featureNS;d.autoConfig=!1;this.geometryName||this.setGeometryName(d.geometryName)}return c},commit:function(a,b){b=OMAP.Util.extend({},b);OMAP.Util.applyDefaults(b,this.options);var c=new OMAP.Protocol.Response({requestType:"commit",reqFeatures:a});c.priv=OMAP.Request.POST({url:b.url,headers:b.headers,data:this.format.write(a,b),callback:this.createCallback(this.handleCommit,c,b)});return c},handleCommit:function(a,b){if(b.callback){var c=a.priv,d=c.responseXML;d&&d.documentElement||(d=c.responseText);c=this.format.read(d)||{};a.insertIds=c.insertIds||[];c.success?a.code=OMAP.Protocol.Response.SUCCESS:(a.code=OMAP.Protocol.Response.FAILURE,a.error=c);b.callback.call(b.scope,a)}},filterDelete:function(a,b){b=OMAP.Util.extend({},b);OMAP.Util.applyDefaults(b,this.options);new OMAP.Protocol.Response({requestType:"commit"});var c=this.format.createElementNSPlus("wfs:Transaction",{attributes:{service:"WFS",version:this.version}}),d=this.format.createElementNSPlus("wfs:Delete",{attributes:{typeName:(b.featureNS?this.featurePrefix+":":"")+b.featureType}});b.featureNS&&d.setAttribute("xmlns:"+this.featurePrefix,b.featureNS);var e=this.format.writeNode("ogc:Filter",a);d.appendChild(e);c.appendChild(d);c=OMAP.Format.XML.prototype.write.apply(this.format,[c]);return OMAP.Request.POST({url:this.url,callback:b.callback||function(){},data:c})},abort:function(a){a&&a.priv.abort()},CLASS_NAME:"OMAP.Protocol.WFS.v1"});OMAP.Handler.Feature=OMAP.Class(OMAP.Handler,{EVENTMAP:{click:{"in":"click",out:"clickout"},mousemove:{"in":"over",out:"out"},dblclick:{"in":"dblclick",out:null},mousedown:{"in":null,out:null},mouseup:{"in":null,out:null},touchstart:{"in":"click",out:"clickout"}},feature:null,lastFeature:null,down:null,up:null,clickTolerance:4,geometryTypes:null,stopClick:!0,stopDown:!0,stopUp:!1,initialize:function(a,b,c,d){OMAP.Handler.prototype.initialize.apply(this,[a,c,d]);this.layer=b},touchstart:function(a){this.startTouch();return OMAP.Event.isMultiTouch(a)?!0:this.mousedown(a)},touchmove:function(a){OMAP.Event.preventDefault(a)},mousedown:function(a){if(OMAP.Event.isLeftClick(a)||OMAP.Event.isSingleTouch(a))this.down=a.xy;return this.handle(a)?!this.stopDown:!0},mouseup:function(a){this.up=a.xy;return this.handle(a)?!this.stopUp:!0},click:function(a){return this.handle(a)?!this.stopClick:!0},mousemove:function(a){if(!this.callbacks.over&&!this.callbacks.out)return!0;this.handle(a);return!0},dblclick:function(a){return!this.handle(a)},geometryTypeMatches:function(a){return null==this.geometryTypes||-1=this.map.Z_INDEX_BASE.Feature?this.layer.setZIndex(a):this.map.setLayerZIndex(this.layer,this.map.getLayerIndex(this.layer))},CLASS_NAME:"OMAP.Handler.Feature"});OMAP.Layer.Vector.RootContainer=OMAP.Class(OMAP.Layer.Vector,{displayInLayerSwitcher:!1,layers:null,display:function(){},getFeatureFromEvent:function(a){for(var b=this.layers,c,d=0;df;)d=c.selectedFeatures[f],a&&a.except==d?++f:this.unselect(d)},clickFeature:function(a){this.hover||(-1c&&(d=!1);return d},CLASS_NAME:"OMAP.Handler.Point"});OMAP.Handler.Path=OMAP.Class(OMAP.Handler.Point,{line:null,maxVertices:null,doubleTouchTolerance:20,freehand:!1,freehandToggle:"shiftKey",timerId:null,redoStack:null,createFeature:function(a){a=this.layer.getLonLatFromViewPortPx(a);a=new OMAP.Geometry.Point(a.lon,a.lat);this.point=new OMAP.Feature.Vector(a);this.line=new OMAP.Feature.Vector(new OMAP.Geometry.LineString([this.point.geometry]));this.callback("create",[this.point.geometry,this.getSketch()]);this.point.geometry.clearBounds();this.layer.addFeatures([this.line,this.point],{silent:!0})},destroyFeature:function(a){OMAP.Handler.Point.prototype.destroyFeature.call(this,a);this.line=null},destroyPersistedFeature:function(){var a=this.layer;a&&2this.nbPoints&&this.points.pop()},end:function(a){for(var b,c=(new Date).getTime(),d=0,e=this.points.length,f;dthis.delay)break;b=f}if(b&&(d=(new Date).getTime()-b.tick,c=Math.sqrt(Math.pow(a.x-b.xy.x,2)+Math.pow(a.y-b.xy.y,2)),d=c/d,!(0==d||d=-this.deceleration*a+c&&(OMAP.Animation.stop(this.timerId),this.timerId=null,n=!0);a=m-g;p=l-h;g=m;h=l;b(a,p,n)}},this))},CLASS_NAME:"OMAP.Kinetic"});OMAP.Format.WPSExecute=OMAP.Class(OMAP.Format.XML,OMAP.Format.Filter.v1_1_0,{namespaces:{ows:"http://www.opengis.net/ows/1.1",gml:"http://www.opengis.net/gml",wps:"http://www.opengis.net/wps/1.0.0",wfs:"http://www.opengis.net/wfs",ogc:"http://www.opengis.net/ogc",wcs:"http://www.opengis.net/wcs",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance"},regExes:{trimSpace:/^\s*|\s*$/g,removeSpace:/\s*/g,splitSpace:/\s+/,trimComma:/\s*,\s*/g},VERSION:"1.0.0",schemaLocation:"http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd",schemaLocationAttr:function(a){},write:function(a){var b;window.ActiveXObject?this.xmldom=b=new ActiveXObject("Microsoft.XMLDOM"):b=document.implementation.createDocument("","",null);a=this.writeNode("wps:Execute",a,b);this.setAttributeNS(a,this.namespaces.xsi,"xsi:schemaLocation",this.schemaLocation);return OMAP.Format.XML.prototype.write.apply(this,[a])},read:function(a){"string"==typeof a&&(a=OMAP.Format.XML.prototype.read.apply(this,[a]));a&&9==a.nodeType&&(a=a.documentElement);var b={};this.readNode(a,b);return b},writers:{wps:{Execute:function(a){var b=this.createElementNSPlus("wps:Execute",{attributes:{version:this.VERSION,service:"WPS"}});this.writeNode("ows:Identifier",a.identifier,b);this.writeNode("wps:DataInputs",a.dataInputs,b);this.writeNode("wps:ResponseForm",a.responseForm,b);return b},ResponseForm:function(a){var b=this.createElementNSPlus("wps:ResponseForm",{});a.rawDataOutput&&this.writeNode("wps:RawDataOutput",a.rawDataOutput,b);a.responseDocument&&this.writeNode("wps:ResponseDocument",a.responseDocument,b);return b},ResponseDocument:function(a){var b=this.createElementNSPlus("wps:ResponseDocument",{attributes:{storeExecuteResponse:a.storeExecuteResponse,lineage:a.lineage,status:a.status}});if(a.outputs)for(var c=0,d=a.outputs.length;c1/3&&e<2/3?d="c":e>=2/3&&(d="r");f<=1/3?d+="b":f>1/3&&f<2/3?d+="m":f>=2/3&&(d+="t");c.labelAlign=d;OMAP.Util.applyDefaults(b,c)},AnchorPoint:function(a,b){this.readChildNodes(a,b)},AnchorPointX:function(a,b){var c=this.readers.ogc._expression.call(this,a);c&&(b.labelAnchorPointX=c)},AnchorPointY:function(a,b){var c=this.readers.ogc._expression.call(this,a);c&&(b.labelAnchorPointY=c)},Displacement:function(a,b){this.readChildNodes(a,b)},DisplacementX:function(a,b){var c=this.readers.ogc._expression.call(this,a);c&&(b.labelXOffset=c)},DisplacementY:function(a,b){var c=this.readers.ogc._expression.call(this,a);c&&(b.labelYOffset=c)},LinePlacement:function(a,b){this.readChildNodes(a,b)},PerpendicularOffset:function(a,b){var c=this.readers.ogc._expression.call(this,a);c&&(b.labelPerpendicularOffset=c)},Label:function(a,b){var c=this.readers.ogc._expression.call(this,a);c&&(b.label=c)},Font:function(a,b){this.readChildNodes(a,b)},Halo:function(a,b){var c={};this.readChildNodes(a,c);b.haloRadius=c.haloRadius;b.haloColor=c.fillColor;b.haloOpacity=c.fillOpacity},Radius:function(a,b){var c=this.readers.ogc._expression.call(this,a);null!=c&&(b.haloRadius=c)},RasterSymbolizer:function(a,b){var c={};this.readChildNodes(a,c);this.multipleSymbolizers?(c.zIndex=this.featureTypeCounter,b.symbolizers.push(new OMAP.Symbolizer.Raster(c))):b.symbolizer.Raster=OMAP.Util.applyDefaults(c,b.symbolizer.Raster)},Geometry:function(a,b){b.geometry={};this.readChildNodes(a,b.geometry)},ColorMap:function(a,b){b.colorMap=[];this.readChildNodes(a,b.colorMap)},ColorMapEntry:function(a,b){var c=a.getAttribute("quantity"),d=a.getAttribute("opacity");b.push({color:a.getAttribute("color"),quantity:null!==c?parseFloat(c):void 0,label:a.getAttribute("label")||void 0,opacity:null!==d?parseFloat(d):void 0})},LineSymbolizer:function(a,b){var c={};this.readChildNodes(a,c);this.multipleSymbolizers?(c.zIndex=this.featureTypeCounter,b.symbolizers.push(new OMAP.Symbolizer.Line(c))):b.symbolizer.Line=OMAP.Util.applyDefaults(c,b.symbolizer.Line)},PolygonSymbolizer:function(a,b){var c={fill:!1,stroke:!1};this.multipleSymbolizers||(c=b.symbolizer.Polygon||c);this.readChildNodes(a,c);this.multipleSymbolizers?(c.zIndex=this.featureTypeCounter,b.symbolizers.push(new OMAP.Symbolizer.Polygon(c))):b.symbolizer.Polygon=c},PointSymbolizer:function(a,b){var c={fill:!1,stroke:!1,graphic:!1};this.multipleSymbolizers||(c=b.symbolizer.Point||c);this.readChildNodes(a,c);this.multipleSymbolizers?(c.zIndex=this.featureTypeCounter,b.symbolizers.push(new OMAP.Symbolizer.Point(c))):b.symbolizer.Point=c},Stroke:function(a,b){b.stroke=!0;this.readChildNodes(a,b)},Fill:function(a,b){b.fill=!0;this.readChildNodes(a,b)},CssParameter:function(a,b){var c=a.getAttribute("name"),d=this.cssMap[c];b.label&&("fill"===c?d="fontColor":"fill-opacity"===c&&(d="fontOpacity"));d&&(c=this.readers.ogc._expression.call(this,a))&&(b[d]=c)},Graphic:function(a,b){b.graphic=!0;var c={};this.readChildNodes(a,c);for(var d="stroke strokeColor strokeWidth strokeOpacity strokeLinecap fill fillColor fillOpacity graphicName rotation graphicFormat".split(" "),e,f,g=0,h=d.length;g=-this.MAX_PIXEL&&a<=this.MAX_PIXEL&&b>=-this.MAX_PIXEL&&b<=this.MAX_PIXEL},setExtent:function(a,b){var c=OMAP.Renderer.Elements.prototype.setExtent.apply(this,arguments),d=this.getResolution(),e=-a.left/d,d=a.top/d;if(b)return this.left=e,this.top=d,this.rendererRoot.setAttributeNS(null,"viewBox","0 0 "+this.size.w+" "+this.size.h),this.translate(this.xOffset,0),!0;(e=this.translate(e-this.left+this.xOffset,d-this.top))||this.setExtent(a,!0);return c&&e},translate:function(a,b){if(this.inValidRange(a,b,!0)){var c="";if(a||b)c="translate("+a+","+b+")";this.root.setAttributeNS(null,"transform",c);this.translationParameters={x:a,y:b};return!0}return!1},setSize:function(a){OMAP.Renderer.prototype.setSize.apply(this,arguments);this.rendererRoot.setAttributeNS(null,"width",this.size.w);this.rendererRoot.setAttributeNS(null,"height",this.size.h)},getNodeType:function(a,b){var c=null;switch(a.CLASS_NAME){case "OMAP.Geometry.Point":c=b.externalGraphic?"image":this.isComplexSymbol(b.graphicName)?"svg":"circle";break;case "OMAP.Geometry.Rectangle":c="rect";break;case "OMAP.Geometry.LineString":c="polyline";break;case "OMAP.Geometry.LinearRing":c="polygon";break;case "OMAP.Geometry.Polygon":case "OMAP.Geometry.Curve":c="path"}return c},setStyle:function(a,b,c){b=b||a._style;c=c||a._options;var d=b.title||b.graphicTitle;if(d){a.setAttributeNS(null,"title",d);var e=a.getElementsByTagName("title");0k;)f.removeChild(f.lastChild);for(var l=0;ld)k=(c-g)/(h-f),h=0>h?-d:d,c=g+(h-f)*k;if(c<-e||c>e)k=(h-f)/(c-g),c=0>c?-e:e,h=f+(c-g)*k;return h+","+c},getShortString:function(a){var b=this.getResolution(),c=(a.x-this.featureDx)/b+this.left;a=this.top-a.y/b;return this.inValidRange(c,a)?c+","+a:!1},getPosition:function(a){return{x:parseFloat(a.getAttributeNS(null,"cx")),y:parseFloat(a.getAttributeNS(null,"cy"))}},importSymbol:function(a){this.defs||(this.defs=this.createDefs());var b=this.container.id+"-"+a,c=document.getElementById(b);if(null!=c)return c;var d=OMAP.Renderer.symbol[a];if(!d)throw Error(a+" is not a valid symbol name");a=this.nodeFactory(b,"symbol");var e=this.nodeFactory(null,"polygon");a.appendChild(e);for(var c=new OMAP.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0),f=[],g,h,k=0;ka.w-this.map.paddingForPopups.right&&(c.x=a.w-this.map.paddingForPopups.right-this.size.w);b.ya.h-this.map.paddingForPopups.bottom&&(c.y=a.h-this.map.paddingForPopups.bottom-this.size.h);this.map.pan(b.x-c.x,b.y-c.y)},registerEvents:function(){this.events=new OMAP.Events(this,this.div,null,!0);this.events.on({mousedown:this.onmousedown,mousemove:this.onmousemove,mouseup:this.onmouseup,click:this.onclick,mouseout:this.onmouseout,dblclick:this.ondblclick,touchstart:function(a){OMAP.Event.stop(a,!0)},scope:this})},onmousedown:function(a){this.mousedown=!0;OMAP.Event.stop(a,!0)},onmousemove:function(a){this.mousedown&&OMAP.Event.stop(a,!0)},onmouseup:function(a){this.mousedown&&(this.mousedown=!1,OMAP.Event.stop(a,!0))},onclick:function(a){OMAP.Event.stop(a,!0)},onmouseout:function(a){this.mousedown=!1},ondblclick:function(a){OMAP.Event.stop(a,!0)},CLASS_NAME:"OMAP.Popup"});OMAP.Popup.WIDTH=200;OMAP.Popup.HEIGHT=200;OMAP.Popup.COLOR="white";OMAP.Popup.OPACITY=1;OMAP.Popup.BORDER="0px";OMAP.Control.ScaleLine=OMAP.Class(OMAP.Control,{maxWidth:100,topOutUnits:"km",topInUnits:"m",bottomOutUnits:"mi",bottomInUnits:"ft",eTop:null,eBottom:null,geodesic:!1,draw:function(){OMAP.Control.prototype.draw.apply(this,arguments);this.eTop||(this.eTop=document.createElement("div"),this.eTop.className=this.displayClass+"Top",this.div.appendChild(this.eTop),this.eTop.style.visibility=""==this.topOutUnits||""==this.topInUnits?"hidden":"visible",this.eBottom=document.createElement("div"),this.eBottom.className=this.displayClass+"Bottom",this.div.appendChild(this.eBottom),this.eBottom.style.visibility=""==this.bottomOutUnits||""==this.bottomInUnits?"hidden":"visible");this.map.events.register("moveend",this,this.update);this.update();return this.div},getBarLen:function(a){var b=parseInt(Math.log(a)/Math.log(10)),b=Math.pow(10,b);a=parseInt(a/b);return(5Math.abs(n)?1:l/n,h=(1E-5>Math.abs(m)?1:k/m)/l):(m=Math.sqrt(m*m+n*n),l=Math.sqrt(k*k+l*l)/m);a._moving=!0;a.box.geometry.rotate(-a.rotation,f);delete a._moving;a.box.geometry.resize(l,f,h);a.box.geometry.rotate(a.rotation,f);a.transformFeature({scale:l,ratio:h});a.irregular&&!a._setfeature&&(k=f.clone(),k.x+=1E-5>Math.abs(d-f.x)?0:this.x-d,k.y+=1E-5>Math.abs(e-f.y)?0:this.y-e,a.box.geometry.move(this.x-d,this.y-e),a.transformFeature({center:k}))}},f=function(b,c){var d=this.x,e=this.y;OMAP.Geometry.Point.prototype.move.call(this,b,c);if(!a._moving){var f=a.dragControl.handlers.drag.evt,f=f&&f.shiftKey?45:1,g=a.center,h=this.x-g.x,k=this.y-g.y;this.x=d;this.y=e;d=Math.atan2(k-c,h-b);d=Math.atan2(k,h)-d;d*=180/Math.PI;a._angle=(a._angle+d)%360;d=a.rotation%f;if(Math.abs(a._angle)>=f||0!==d)d=Math.round(a._angle/f)*f-d,a._angle=0,a.box.geometry.rotate(d,g),a.transformFeature({rotation:d})}},g=Array(8),h=Array(4),k,l,m,n="sw s se e ne n nw w".split(" "),p=0;8>p;++p)k=this.box.geometry.components[p],l=new OMAP.Feature.Vector(k.clone(),{role:n[p]+"-resize"},"string"==typeof this.renderIntent?null:this.renderIntent),0==p%2&&(m=new OMAP.Feature.Vector(k.clone(),{role:n[p]+"-rotate"},"string"==typeof this.rotationHandleSymbolizer?null:this.rotationHandleSymbolizer),m.geometry.move=f,k._rotationHandle=m,h[p/2]=m),k.move=b,k.resize=c,k.rotate=d,l.geometry.move=e,k._handle=l,g[p]=l;this.rotationHandles=h;this.handles=g},createControl:function(){var a=this;this.dragControl=new OMAP.Control.DragFeature(this.layer,{documentDrag:!0,moveFeature:function(b){this.feature===a.feature&&(this.feature=a.box);OMAP.Control.DragFeature.prototype.moveFeature.apply(this,arguments)},onDrag:function(b,c){b===a.box&&a.transformFeature({center:a.center})},onStart:function(b,c){var d=!a.geometryTypes||-1!==OMAP.Util.indexOf(a.geometryTypes,b.geometry.CLASS_NAME),e=OMAP.Util.indexOf(a.handles,b),e=e+OMAP.Util.indexOf(a.rotationHandles,b);b!==a.feature&&b!==a.box&&-2==e&&d&&a.setFeature(b)},onComplete:function(b,c){a.events.triggerEvent("transformcomplete",{feature:a.feature})}})},drawHandles:function(){for(var a=this.layer,b=0;8>b;++b)this.rotate&&0===b%2&&a.drawFeature(this.rotationHandles[b/2],this.rotationHandleSymbolizer),a.drawFeature(this.handles[b],this.renderIntent)},transformFeature:function(a){if(!this._setfeature){this.scale*=a.scale||1;this.ratio*=a.ratio||1;var b=this.rotation;this.rotation=(this.rotation+(a.rotation||0))%360;if(!1!==this.events.triggerEvent("beforetransform",a)){var c=this.feature,d=c.geometry,e=this.center;d.rotate(-b,e);a.scale||a.ratio?d.resize(a.scale,e,a.ratio):a.center&&c.move(a.center.getBounds().getCenterLonLat());d.rotate(this.rotation,e);this.layer.drawFeature(c);c.toState(OMAP.State.UPDATE);this.events.triggerEvent("transform",a)}}this.layer.drawFeature(this.box,this.renderIntent);this.drawHandles()},destroy:function(){for(var a,b=0;8>b;++b)a=this.box.geometry.components[b],a._handle.destroy(),a._handle=null,a._rotationHandle&&a._rotationHandle.destroy(),a._rotationHandle=null;this.rotationHandles=this.rotationHandleSymbolizer=this.handles=this.feature=this.center=null;this.box.destroy();this.layer=this.box=null;this.dragControl.destroy();this.dragControl=null;OMAP.Control.prototype.destroy.apply(this,arguments)},CLASS_NAME:"OMAP.Control.TransformFeature"});OMAP.Handler.Box=OMAP.Class(OMAP.Handler,{dragHandler:null,boxDivClassName:"olHandlerBoxZoomBox",boxOffsets:null,initialize:function(a,b,c){OMAP.Handler.prototype.initialize.apply(this,arguments);this.dragHandler=new OMAP.Handler.Drag(this,{down:this.startBox,move:this.moveBox,out:this.removeBox,up:this.endBox},{keyMask:this.keyMask})},destroy:function(){OMAP.Handler.prototype.destroy.apply(this,arguments);this.dragHandler&&(this.dragHandler.destroy(),this.dragHandler=null)},setMap:function(a){OMAP.Handler.prototype.setMap.apply(this,arguments);this.dragHandler&&this.dragHandler.setMap(a)},startBox:function(a){this.callback("start",[]);this.zoomBox=OMAP.Util.createDiv("zoomBox",{x:-9999,y:-9999});this.zoomBox.className=this.boxDivClassName;this.zoomBox.style.zIndex=this.map.Z_INDEX_BASE.Popup-1;this.map.viewPortDiv.appendChild(this.zoomBox);OMAP.Element.addClass(this.map.viewPortDiv,"olDrawBox")},moveBox:function(a){var b=this.dragHandler.start.x,c=this.dragHandler.start.y,d=Math.abs(b-a.x),e=Math.abs(c-a.y),f=this.getBoxOffsets();this.zoomBox.style.width=d+f.width+1+"px";this.zoomBox.style.height=e+f.height+1+"px";this.zoomBox.style.left=(a.x=this.resFactor||a<=1/this.resFactor);return a},calculateBounds:function(a){a||(a=this.getMapBounds());var b=a.getCenterLonLat(),c=a.getWidth()*this.ratio;a=a.getHeight()*this.ratio;this.bounds=new OMAP.Bounds(b.lon-c/2,b.lat-a/2,b.lon+c/2,b.lat+a/2)},triggerRead:function(a){!this.response||a&&!0===a.noAbort||(this.layer.protocol.abort(this.response),this.layer.events.triggerEvent("loadend"));var b={filter:this.createFilter()};this.layer.events.triggerEvent("loadstart",b);this.response=this.layer.protocol.read(OMAP.Util.applyDefaults({filter:b.filter,callback:this.merge,scope:this},a))},createFilter:function(){var a=new OMAP.Filter.Spatial({type:OMAP.Filter.Spatial.BBOX,value:this.bounds,projection:this.layer.projection});this.layer.filter&&(a=new OMAP.Filter.Logical({type:OMAP.Filter.Logical.AND,filters:[this.layer.filter,a]}));return a},merge:function(a){this.layer.destroyFeatures();if(a.success()){var b=a.features;if(b&&0=a?Math.round(a/1E3)+"K":95E4<=a?Math.round(a/1E6)+"M":Math.round(a),this.element.innerHTML=OMAP.i18n("Scale \x3d 1 : ${scaleDenom}",{scaleDenom:a}))},CLASS_NAME:"OMAP.Control.Scale"});OMAP.Layer.MapGuide=OMAP.Class(OMAP.Layer.Grid,{isBaseLayer:!0,useHttpTile:!1,singleTile:!1,useOverlay:!1,useAsyncOverlay:!0,TILE_PARAMS:{operation:"GETTILEIMAGE",version:"1.2.0"},SINGLE_TILE_PARAMS:{operation:"GETMAPIMAGE",format:"PNG",locale:"en",clip:"1",version:"1.0.0"},OVERLAY_PARAMS:{operation:"GETDYNAMICMAPOVERLAYIMAGE",format:"PNG",locale:"en",clip:"1",version:"2.0.0"},FOLDER_PARAMS:{tileColumnsPerFolder:30,tileRowsPerFolder:30,format:"png",querystring:null},defaultSize:new OMAP.Size(300,300),tileOriginCorner:"tl",initialize:function(a,b,c,d){OMAP.Layer.Grid.prototype.initialize.apply(this,arguments);if(null==d||null==d.isBaseLayer)this.isBaseLayer="true"!=this.transparent&&1!=this.transparent;d&&null!=d.useOverlay&&(this.useOverlay=d.useOverlay);this.singleTile?this.useOverlay?(OMAP.Util.applyDefaults(this.params,this.OVERLAY_PARAMS),this.useAsyncOverlay||(this.params.version="1.0.0")):OMAP.Util.applyDefaults(this.params,this.SINGLE_TILE_PARAMS):(this.useHttpTile?OMAP.Util.applyDefaults(this.params,this.FOLDER_PARAMS):OMAP.Util.applyDefaults(this.params,this.TILE_PARAMS),this.setTileSize(this.defaultSize))},clone:function(a){null==a&&(a=new OMAP.Layer.MapGuide(this.name,this.url,this.params,this.getOptions()));return OMAP.Layer.Grid.prototype.clone.apply(this,[a])},getURL:function(a){var b;b=a.getCenterLonLat();var c=this.map.getSize();this.singleTile?(a={setdisplaydpi:OMAP.DOTS_PER_INCH,setdisplayheight:c.h*this.ratio,setdisplaywidth:c.w*this.ratio,setviewcenterx:b.lon,setviewcentery:b.lat,setviewscale:this.map.getScale()},this.useOverlay&&!this.useAsyncOverlay&&(b={},b=OMAP.Util.extend(b,a),b.operation="GETVISIBLEMAPEXTENT",b.version="1.0.0",b.session=this.params.session,b.mapName=this.params.mapName,b.format="text/xml",b=this.getFullRequestString(b),OMAP.Request.GET({url:b,async:!1})),b=this.getFullRequestString(a)):(c=this.map.getResolution(),b=Math.floor((a.left-this.maxExtent.left)/c),b=Math.round(b/this.tileSize.w),a=Math.floor((this.maxExtent.top-a.top)/c),a=Math.round(a/this.tileSize.h),b=this.useHttpTile?this.getImageFilePath({tilecol:b,tilerow:a,scaleindex:this.resolutions.length-this.map.zoom-1}):this.getFullRequestString({tilecol:b,tilerow:a,scaleindex:this.resolutions.length-this.map.zoom-1}));return b},getFullRequestString:function(a,b){var c=null==b?this.url:b;"object"==typeof c&&(c=c[Math.floor(Math.random()*c.length)]);var d=c,e=OMAP.Util.extend({},this.params),e=OMAP.Util.extend(e,a),f=OMAP.Util.upperCaseObject(OMAP.Util.getParameters(c)),g;for(g in e)g.toUpperCase()in f&&delete e[g];e=OMAP.Util.getParameterString(e);e=e.replace(/,/g,"+");""!=e&&(f=c.charAt(c.length-1),d="\x26"==f||"?"==f?d+e:-1==c.indexOf("?")?d+("?"+e):d+("\x26"+e));return d},getImageFilePath:function(a,b){var c=null==b?this.url:b;"object"==typeof c&&(c=c[Math.floor(Math.random()*c.length)]);var d="",e="";0>a.tilerow&&(d="-");d=0==a.tilerow?d+"0":d+Math.floor(Math.abs(a.tilerow/this.params.tileRowsPerFolder))*this.params.tileRowsPerFolder;0>a.tilecol&&(e="-");e=0==a.tilecol?e+"0":e+Math.floor(Math.abs(a.tilecol/this.params.tileColumnsPerFolder))*this.params.tileColumnsPerFolder;d="/S"+Math.floor(a.scaleindex)+"/"+this.params.basemaplayergroupname+"/R"+d+"/C"+e+"/"+a.tilerow%this.params.tileRowsPerFolder+"_"+a.tilecol%this.params.tileColumnsPerFolder+"."+this.params.format;this.params.querystring&&(d+="?"+this.params.querystring);return c+d},CLASS_NAME:"OMAP.Layer.MapGuide"});OMAP.Control.Measure=OMAP.Class(OMAP.Control,{callbacks:null,displaySystem:"metric",geodesic:!1,displaySystemUnits:{geographic:["dd"],english:["mi","ft","in"],metric:["km","m"]},partialDelay:300,delayedTrigger:null,persist:!1,immediate:!1,initialize:function(a,b){OMAP.Control.prototype.initialize.apply(this,[b]);var c={done:this.measureComplete,point:this.measurePartial};this.immediate&&(c.modify=this.measureImmediate);this.callbacks=OMAP.Util.extend(c,this.callbacks);this.handlerOptions=OMAP.Util.extend({persist:this.persist},this.handlerOptions);this.handler=new a(this,this.callbacks,this.handlerOptions)},deactivate:function(){this.cancelDelay();return OMAP.Control.prototype.deactivate.apply(this,arguments)},cancel:function(){this.cancelDelay();this.handler.cancel()},setImmediate:function(a){(this.immediate=a)?this.callbacks.modify=this.measureImmediate:delete this.callbacks.modify},updateHandler:function(a,b){var c=this.active;c&&this.deactivate();this.handler=new a(this,this.callbacks,b);c&&this.activate()},measureComplete:function(a){this.cancelDelay();this.measure(a,"measure")},measurePartial:function(a,b){this.cancelDelay();b=b.clone();this.handler.freehandMode(this.handler.evt)?this.measure(b,"measurepartial"):this.delayedTrigger=window.setTimeout(OMAP.Function.bind(function(){this.delayedTrigger=null;this.measure(b,"measurepartial")},this),this.partialDelay)},measureImmediate:function(a,b,c){c&&!this.handler.freehandMode(this.handler.evt)&&(this.cancelDelay(),this.measure(b.geometry,"measurepartial"))},cancelDelay:function(){null!==this.delayedTrigger&&(window.clearTimeout(this.delayedTrigger),this.delayedTrigger=null)},measure:function(a,b){var c,d;-1k?0:k)+"px";d.div.style.height=(0>l?0:l)+"px";d.div.style.left=null!=e?e+"px":"";d.div.style.bottom=null!=f?f+"px":"";d.div.style.right=null!=g?g+"px":"";d.div.style.top=null!=h?h+"px":"";d.image.style.left=c.position.x+"px";d.image.style.top=c.position.y+"px"}this.contentDiv.style.left=this.padding.left+"px";this.contentDiv.style.top=this.padding.top+"px";this.contentDiv.onmousemove=OMAP.Util.stopPropagation}},CLASS_NAME:"OMAP.Popup.Framed"});OMAP.Popup.FramedCloud=OMAP.Class(OMAP.Popup.Framed,{contentDisplayClass:"olFramedCloudPopupContent",autoSize:!0,panMapIfOutOfView:!0,imageSize:new OMAP.Size(1276,736),isAlphaImage:!1,fixedRelativePosition:!1,positionBlocks:{tl:{offset:new OMAP.Pixel(44,0),padding:new OMAP.Bounds(8,40,8,9),blocks:[{size:new OMAP.Size("auto","auto"),anchor:new OMAP.Bounds(0,51,22,0),position:new OMAP.Pixel(0,0)},{size:new OMAP.Size(22,"auto"),anchor:new OMAP.Bounds(null,50,0,0),position:new OMAP.Pixel(-1238,0)},{size:new OMAP.Size("auto",19),anchor:new OMAP.Bounds(0,32,22,null),position:new OMAP.Pixel(0,-631)},{size:new OMAP.Size(22,18),anchor:new OMAP.Bounds(null,32,0,null),position:new OMAP.Pixel(-1238,-632)},{size:new OMAP.Size(81,35),anchor:new OMAP.Bounds(null,0,0,null),position:new OMAP.Pixel(0,-688)}]},tr:{offset:new OMAP.Pixel(-45,0),padding:new OMAP.Bounds(8,40,8,9),blocks:[{size:new OMAP.Size("auto","auto"),anchor:new OMAP.Bounds(0,51,22,0),position:new OMAP.Pixel(0,0)},{size:new OMAP.Size(22,"auto"),anchor:new OMAP.Bounds(null,50,0,0),position:new OMAP.Pixel(-1238,0)},{size:new OMAP.Size("auto",19),anchor:new OMAP.Bounds(0,32,22,null),position:new OMAP.Pixel(0,-631)},{size:new OMAP.Size(22,19),anchor:new OMAP.Bounds(null,32,0,null),position:new OMAP.Pixel(-1238,-631)},{size:new OMAP.Size(81,35),anchor:new OMAP.Bounds(0,0,null,null),position:new OMAP.Pixel(-215,-687)}]},bl:{offset:new OMAP.Pixel(45,0),padding:new OMAP.Bounds(8,9,8,40),blocks:[{size:new OMAP.Size("auto","auto"),anchor:new OMAP.Bounds(0,21,22,32),position:new OMAP.Pixel(0,0)},{size:new OMAP.Size(22,"auto"),anchor:new OMAP.Bounds(null,21,0,32),position:new OMAP.Pixel(-1238,0)},{size:new OMAP.Size("auto",21),anchor:new OMAP.Bounds(0,0,22,null),position:new OMAP.Pixel(0,-629)},{size:new OMAP.Size(22,21),anchor:new OMAP.Bounds(null,0,0,null),position:new OMAP.Pixel(-1238,-629)},{size:new OMAP.Size(81,33),anchor:new OMAP.Bounds(null,null,0,0),position:new OMAP.Pixel(-101,-674)}]},br:{offset:new OMAP.Pixel(-44,0),padding:new OMAP.Bounds(8,9,8,40),blocks:[{size:new OMAP.Size("auto","auto"),anchor:new OMAP.Bounds(0,21,22,32),position:new OMAP.Pixel(0,0)},{size:new OMAP.Size(22,"auto"),anchor:new OMAP.Bounds(null,21,0,32),position:new OMAP.Pixel(-1238,0)},{size:new OMAP.Size("auto",21),anchor:new OMAP.Bounds(0,0,22,null),position:new OMAP.Pixel(0,-629)},{size:new OMAP.Size(22,21),anchor:new OMAP.Bounds(null,0,0,null),position:new OMAP.Pixel(-1238,-629)},{size:new OMAP.Size(81,33),anchor:new OMAP.Bounds(0,null,null,0),position:new OMAP.Pixel(-311,-674)}]}},minSize:new OMAP.Size(105,10),maxSize:new OMAP.Size(1200,660),initialize:function(a,b,c,d,e,f,g){this.imageSrc=OMAP.Util.getImageLocation("cloud-popup-relative.png");OMAP.Popup.Framed.prototype.initialize.apply(this,arguments);this.contentDiv.className=this.contentDisplayClass;this.contentDiv.onmousemove=OMAP.Util.stopPropagation},CLASS_NAME:"OMAP.Popup.FramedCloud"});OMAP.Popup.CSSFramedCloud=OMAP.Class(OMAP.Popup.Framed,{autoSize:!0,panMapIfOutOfView:!0,fixedRelativePosition:!1,positionBlocks:{tl:{offset:new OMAP.Pixel(44,-6),padding:new OMAP.Bounds(5,14,5,5),blocks:[{className:"olwidgetPopupStemTL",size:new OMAP.Size(20,20),anchor:new OMAP.Bounds(null,4,32,null),position:new OMAP.Pixel(0,-28)}]},tr:{offset:new OMAP.Pixel(-44,-6),padding:new OMAP.Bounds(5,14,5,5),blocks:[{className:"olwidgetPopupStemTR",size:new OMAP.Size(20,20),anchor:new OMAP.Bounds(32,4,null,null),position:new OMAP.Pixel(0,-28)}]},bl:{offset:new OMAP.Pixel(44,6),padding:new OMAP.Bounds(5,5,5,14),blocks:[{className:"olwidgetPopupStemBL",size:new OMAP.Size(20,20),anchor:new OMAP.Bounds(null,null,32,4),position:new OMAP.Pixel(0,0)}]},br:{offset:new OMAP.Pixel(-44,6),padding:new OMAP.Bounds(5,5,5,14),blocks:[{className:"olwidgetPopupStemBR",size:new OMAP.Size(20,20),anchor:new OMAP.Bounds(32,null,null,4),position:new OMAP.Pixel(0,0)}]}},initialize:function(a,b,c,d,e,f,g,h,k){h&&"auto"!=h&&(this.fixedRelativePosition=!0,this.relativePosition=h);this.separator=void 0===k?" of ":k;this.olwidgetCloseBox=f;this.olwidgetCloseBoxCallback=g;this.page=0;OMAP.Popup.Framed.prototype.initialize.apply(this,[a,b,c,d,e,!1,null])},setContentHTML:function(a){null!==a&&void 0!==a&&(this.contentHTML=a);if(null!==this.contentDiv){var b=this;this.contentDiv.innerHTML="";a=document.createElement("div");a.innerHTML=this.contentHTML;a.className="olwidgetPopupContent";a.onmousemove=OMAP.Util.stopPropagation;this.contentDiv.appendChild(a);this.olwidgetCloseBox&&(a=document.createElement("div"),a.className="olwidgetPopupCloseBox",a.innerHTML="",a.onclick=function(a){b.olwidgetCloseBoxCallback.apply(b,arguments);OMAP.Util.stopPropagation(a)},a.onmousemove=OMAP.Util.stopPropagation,this.contentDiv.appendChild(a));this.autoSize&&(this.registerImageListeners(),this.updateSize())}},createBlocks:function(){this.blocks=[];var a=null,b;for(b in this.positionBlocks){a=b;break}a=this.positionBlocks[a];for(b=0;bk?0:k)+"px";d.div.style.height=(0>l?0:l)+"px";d.div.style.left=null!==e?e+"px":"";d.div.style.bottom=null!==f?f+"px":"";d.div.style.right=null!==g?g+"px":"";d.div.style.top=null!==h?h+"px":"";d.div.className=c.className}this.contentDiv.style.left=this.padding.left+"px";this.contentDiv.style.top=this.padding.top+"px"}},updateSize:function(){return OMAP.Popup.prototype.updateSize.apply(this,arguments)},clone:function(){return new OMAP.Popup.CSSFramedCloud(this.id,this.lonlat,null,this.contentHTML,null,this.olwidgetCloseBox,this.olwidgetCloseBoxCallback)},CLASS_NAME:"OMAP.Popup.CSSFramedCloud"});OMAP.Tile.Image.IFrame={useIFrame:null,blankImageUrl:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAQAIBRAA7",draw:function(){if(OMAP.Tile.Image.prototype.shouldDraw.call(this)){var a=this.layer.getURL(this.bounds),b=this.useIFrame;this.useIFrame=null!==this.maxGetUrlLength&&!this.layer.async&&a.length>this.maxGetUrlLength;a=b&&!this.useIFrame;b=!b&&this.useIFrame;if(a||b)this.imgDiv&&this.imgDiv.parentNode===this.frame&&this.frame.removeChild(this.imgDiv),this.imgDiv=null,a&&this.frame.removeChild(this.frame.firstChild)}return OMAP.Tile.Image.prototype.draw.apply(this,arguments)},getImage:function(){if(!0===this.useIFrame){if(!this.frame.childNodes.length){var a=document.createElement("div"),b=a.style;b.position="absolute";b.width="100%";b.height="100%";b.zIndex=1;b.backgroundImage="url("+this.blankImageUrl+")";this.frame.appendChild(a)}a=this.id+"_iFrame";9>parseFloat(navigator.appVersion.split("MSIE")[1])?(b=document.createElement('\x3ciframe name\x3d"'+a+'"\x3e'),b.style.backgroundColor="#FFFFFF",b.style.filter="chroma(color\x3d#FFFFFF)"):(b=document.createElement("iframe"),b.style.backgroundColor="transparent",b.name=a);b.scrolling="no";b.marginWidth="0px";b.marginHeight="0px";b.frameBorder="0";b.style.position="absolute";b.style.width="100%";b.style.height="100%";1>this.layer.opacity&&OMAP.Util.modifyDOMElement(b,null,null,null,null,null,null,this.layer.opacity);this.frame.appendChild(b);return this.imgDiv=b}return OMAP.Tile.Image.prototype.getImage.apply(this,arguments)},createRequestForm:function(){var a=document.createElement("form");a.method="POST";var b=this.layer.params._OLSALT,b=(b?b+"_":"")+this.bounds.toBBOX();a.action=OMAP.Util.urlAppend(this.layer.url,b);a.target=this.id+"_iFrame";this.layer.getImageSize();var b=OMAP.Util.getParameters(this.url),c,d;for(d in b)c=document.createElement("input"),c.type="hidden",c.name=d,c.value=b[d],a.appendChild(c);return a},setImgSrc:function(a){if(!0===this.useIFrame)if(a){var b=this.createRequestForm();this.frame.appendChild(b);b.submit();this.frame.removeChild(b)}else this.imgDiv.parentNode===this.frame&&(this.frame.removeChild(this.imgDiv),this.imgDiv=null);else OMAP.Tile.Image.prototype.setImgSrc.apply(this,arguments)},onImageLoad:function(){OMAP.Tile.Image.prototype.onImageLoad.apply(this,arguments);!0===this.useIFrame&&(this.imgDiv.style.opacity=1,this.frame.style.opacity=this.layer.opacity)},createBackBuffer:function(){var a;!1===this.useIFrame&&(a=OMAP.Tile.Image.prototype.createBackBuffer.call(this));return a}};OMAP.Format.SOSCapabilities=OMAP.Class(OMAP.Format.XML.VersionedOGC,{defaultVersion:"1.0.0",CLASS_NAME:"OMAP.Format.SOSCapabilities"});OMAP.Format.SOSCapabilities.v1_0_0=OMAP.Class(OMAP.Format.SOSCapabilities,{namespaces:{ows:"http://www.opengis.net/ows/1.1",sos:"http://www.opengis.net/sos/1.0",gml:"http://www.opengis.net/gml",xlink:"http://www.w3.org/1999/xlink"},regExes:{trimSpace:/^\s*|\s*$/g,removeSpace:/\s*/g,splitSpace:/\s+/,trimComma:/\s*,\s*/g},initialize:function(a){OMAP.Format.XML.prototype.initialize.apply(this,[a]);this.options=a},read:function(a){"string"==typeof a&&(a=OMAP.Format.XML.prototype.read.apply(this,[a]));a&&9==a.nodeType&&(a=a.documentElement);var b={};this.readNode(a,b);return b},readers:{gml:OMAP.Util.applyDefaults({name:function(a,b){b.name=this.getChildValue(a)},TimePeriod:function(a,b){b.timePeriod={};this.readChildNodes(a,b.timePeriod)},beginPosition:function(a,b){b.beginPosition=this.getChildValue(a)},endPosition:function(a,b){b.endPosition=this.getChildValue(a)}},OMAP.Format.GML.v3.prototype.readers.gml),sos:{Capabilities:function(a,b){this.readChildNodes(a,b)},Contents:function(a,b){b.contents={};this.readChildNodes(a,b.contents)},ObservationOfferingList:function(a,b){b.offeringList={};this.readChildNodes(a,b.offeringList)},ObservationOffering:function(a,b){var c=this.getAttributeNS(a,this.namespaces.gml,"id");b[c]={procedures:[],observedProperties:[],featureOfInterestIds:[],responseFormats:[],resultModels:[],responseModes:[]};this.readChildNodes(a,b[c])},time:function(a,b){b.time={};this.readChildNodes(a,b.time)},procedure:function(a,b){b.procedures.push(this.getAttributeNS(a,this.namespaces.xlink,"href"))},observedProperty:function(a,b){b.observedProperties.push(this.getAttributeNS(a,this.namespaces.xlink,"href"))},featureOfInterest:function(a,b){b.featureOfInterestIds.push(this.getAttributeNS(a,this.namespaces.xlink,"href"))},responseFormat:function(a,b){b.responseFormats.push(this.getChildValue(a))},resultModel:function(a,b){b.resultModels.push(this.getChildValue(a))},responseMode:function(a,b){b.responseModes.push(this.getChildValue(a))}},ows:OMAP.Format.OWSCommon.v1_1_0.prototype.readers.ows},CLASS_NAME:"OMAP.Format.SOSCapabilities.v1_0_0"});OMAP.Handler.Pinch=OMAP.Class(OMAP.Handler,{started:!1,stopDown:!1,pinching:!1,last:null,start:null,touchstart:function(a){var b=!0;this.pinching=!1;if(OMAP.Event.isMultiTouch(a))this.started=!0,this.last=this.start={distance:this.getDistance(a.touches),delta:0,scale:1},this.callback("start",[a,this.start]),b=!this.stopDown;else{if(this.started)return!1;this.started=!1;this.last=this.start=null}OMAP.Event.preventDefault(a);return b},touchmove:function(a){if(this.started&&OMAP.Event.isMultiTouch(a)){this.pinching=!0;var b=this.getPinchData(a);this.callback("move",[a,b]);this.last=b;OMAP.Event.stop(a)}else if(this.started)return!1;return!0},touchend:function(a){return this.started&&!OMAP.Event.isMultiTouch(a)?(this.pinching=this.started=!1,this.callback("done",[a,this.start,this.last]),this.last=this.start=null,!1):!0},activate:function(){var a=!1;OMAP.Handler.prototype.activate.apply(this,arguments)&&(this.pinching=!1,a=!0);return a},deactivate:function(){var a=!1;OMAP.Handler.prototype.deactivate.apply(this,arguments)&&(this.pinching=this.started=!1,this.last=this.start=null,a=!0);return a},getDistance:function(a){var b=a[0];a=a[1];return Math.sqrt(Math.pow(b.olClientX-a.olClientX,2)+Math.pow(b.olClientY-a.olClientY,2))},getPinchData:function(a){a=this.getDistance(a.touches);return{distance:a,delta:this.last.distance-a,scale:a/this.start.distance}},CLASS_NAME:"OMAP.Handler.Pinch"});OMAP.Control.NavToolbar=OMAP.Class(OMAP.Control.Panel,{initialize:function(a){OMAP.Control.Panel.prototype.initialize.apply(this,[a]);this.addControls([new OMAP.Control.Navigation,new OMAP.Control.ZoomBox])},draw:function(){var a=OMAP.Control.Panel.prototype.draw.apply(this,arguments);null===this.defaultControl&&(this.defaultControl=this.controls[0]);return a},CLASS_NAME:"OMAP.Control.NavToolbar"});OMAP.Strategy.Refresh=OMAP.Class(OMAP.Strategy,{force:!1,interval:0,timer:null,activate:function(){var a=OMAP.Strategy.prototype.activate.call(this);a&&(!0===this.layer.visibility&&this.start(),this.layer.events.on({visibilitychanged:this.reset,scope:this}));return a},deactivate:function(){var a=OMAP.Strategy.prototype.deactivate.call(this);a&&(this.stop(),this.layer.events.un({visibilitychanged:this.reset,scope:this}));return a},reset:function(){!0===this.layer.visibility?this.start():this.stop()},start:function(){this.interval&&"number"===typeof this.interval&&0this.granularity||Math.abs(a.xy.y-this.lastXy.y)>this.granularity)this.lastXy=a.xy;else if(b=this.map.getLonLatFromPixel(a.xy))this.displayProjection&&b.transform(this.map.getProjectionObject(),this.displayProjection),this.lastXy=a.xy,a=this.formatOutput(b),a!=this.element.innerHTML&&(this.element.innerHTML=a)},reset:function(a){null!=this.emptyString&&(this.element.innerHTML=this.emptyString)},formatOutput:function(a){var b=parseInt(this.numDigits);return this.prefix+a.lon.toFixed(b)+this.separator+a.lat.toFixed(b)+this.suffix},CLASS_NAME:"OMAP.Control.MousePosition"});OMAP.Control.Geolocate=OMAP.Class(OMAP.Control,{geolocation:null,available:"geolocation"in navigator,bind:!0,watch:!1,geolocationOptions:null,destroy:function(){this.deactivate();OMAP.Control.prototype.destroy.apply(this,arguments)},activate:function(){this.available&&!this.geolocation&&(this.geolocation=navigator.geolocation);return this.geolocation?OMAP.Control.prototype.activate.apply(this,arguments)?(this.watch?this.watchId=this.geolocation.watchPosition(OMAP.Function.bind(this.geolocate,this),OMAP.Function.bind(this.failure,this),this.geolocationOptions):this.getCurrentLocation(),!0):!1:(this.events.triggerEvent("locationuncapable"),!1)},deactivate:function(){this.active&&null!==this.watchId&&this.geolocation.clearWatch(this.watchId);return OMAP.Control.prototype.deactivate.apply(this,arguments)},geolocate:function(a){var b=(new OMAP.LonLat(a.coords.longitude,a.coords.latitude)).transform(new OMAP.Projection("EPSG:4326"),this.map.getProjectionObject());this.bind&&this.map.setCenter(b);this.events.triggerEvent("locationupdated",{position:a,point:new OMAP.Geometry.Point(b.lon,b.lat)})},getCurrentLocation:function(){if(!this.active||this.watch)return!1;this.geolocation.getCurrentPosition(OMAP.Function.bind(this.geolocate,this),OMAP.Function.bind(this.failure,this),this.geolocationOptions);return!0},failure:function(a){this.events.triggerEvent("locationfailed",{error:a})},CLASS_NAME:"OMAP.Control.Geolocate"});OMAP.Tile.UTFGrid=OMAP.Class(OMAP.Tile,{url:null,utfgridResolution:2,json:null,format:null,destroy:function(){this.clear();OMAP.Tile.prototype.destroy.apply(this,arguments)},draw:function(){var a=OMAP.Tile.prototype.draw.apply(this,arguments);if(a)if(this.isLoading?(this.abortLoading(),this.events.triggerEvent("reload")):(this.isLoading=!0,this.events.triggerEvent("loadstart")),this.url=this.layer.getURL(this.bounds),this.layer.useJSONP){var b=new OMAP.Protocol.Script({url:this.url,callback:function(a){this.isLoading=!1;this.events.triggerEvent("loadend");this.json=a.data},scope:this});b.read();this.request=b}else this.request=OMAP.Request.GET({url:this.url,callback:function(a){this.isLoading=!1;this.events.triggerEvent("loadend");200===a.status&&this.parseData(a.responseText)},scope:this});else this.unload();return a},abortLoading:function(){this.request&&(this.request.abort(),delete this.request);this.isLoading=!1},getFeatureInfo:function(a,b){var c=null;if(this.json){var d=this.getFeatureId(a,b);null!==d&&(c={id:d,data:this.json.data[d]})}return c},getFeatureId:function(a,b){var c=null;if(this.json){var d=this.utfgridResolution,d=this.json.grid[Math.floor(b/d)].charCodeAt(Math.floor(a/d)),d=this.indexFromCharCode(d),e=this.json.keys;!isNaN(d)&&d in e&&(c=e[d])}return c},indexFromCharCode:function(a){93<=a&&a--;35<=a&&a--;return a-32},parseData:function(a){this.format||(this.format=new OMAP.Format.JSON);this.json=this.format.read(a)},clear:function(){this.json=null},CLASS_NAME:"OMAP.Tile.UTFGrid"});OMAP.Protocol.HTTP=OMAP.Class(OMAP.Protocol,{url:null,headers:null,params:null,callback:null,scope:null,readWithPOST:!1,updateWithPOST:!1,deleteWithPOST:!1,wildcarded:!1,srsInBBOX:!1,initialize:function(a){a=a||{};this.params={};this.headers={};OMAP.Protocol.prototype.initialize.apply(this,arguments);if(!this.filterToParams&&OMAP.Format.QueryStringFilter){var b=new OMAP.Format.QueryStringFilter({wildcarded:this.wildcarded,srsInBBOX:this.srsInBBOX});this.filterToParams=function(a,d){return b.write(a,d)}}},destroy:function(){this.headers=this.params=null;OMAP.Protocol.prototype.destroy.apply(this)},read:function(a){OMAP.Protocol.prototype.read.apply(this,arguments);a=a||{};a.params=OMAP.Util.applyDefaults(a.params,this.options.params);a=OMAP.Util.applyDefaults(a,this.options);a.filter&&this.filterToParams&&(a.params=this.filterToParams(a.filter,a.params));var b=void 0!==a.readWithPOST?a.readWithPOST:this.readWithPOST,c=new OMAP.Protocol.Response({requestType:"read"});b?(b=a.headers||{},b["Content-Type"]="application/x-www-form-urlencoded",c.priv=OMAP.Request.POST({url:a.url,callback:this.createCallback(this.handleRead,c,a),data:OMAP.Util.getParameterString(a.params),headers:b})):c.priv=OMAP.Request.GET({url:a.url,callback:this.createCallback(this.handleRead,c,a),params:a.params,headers:a.headers});return c},handleRead:function(a,b){this.handleResponse(a,b)},create:function(a,b){b=OMAP.Util.applyDefaults(b,this.options);var c=new OMAP.Protocol.Response({reqFeatures:a,requestType:"create"});c.priv=OMAP.Request.POST({url:b.url,callback:this.createCallback(this.handleCreate,c,b),headers:b.headers,data:this.format.write(a)});return c},handleCreate:function(a,b){this.handleResponse(a,b)},update:function(a,b){b=b||{};var c=b.url||a.url||this.options.url+"/"+a.fid;b=OMAP.Util.applyDefaults(b,this.options);var d=new OMAP.Protocol.Response({reqFeatures:a,requestType:"update"});d.priv=OMAP.Request[this.updateWithPOST?"POST":"PUT"]({url:c,callback:this.createCallback(this.handleUpdate,d,b),headers:b.headers,data:this.format.write(a)});return d},handleUpdate:function(a,b){this.handleResponse(a,b)},"delete":function(a,b){b=b||{};var c=b.url||a.url||this.options.url+"/"+a.fid;b=OMAP.Util.applyDefaults(b,this.options);var d=new OMAP.Protocol.Response({reqFeatures:a,requestType:"delete"}),e=this.deleteWithPOST?"POST":"DELETE",c={url:c,callback:this.createCallback(this.handleDelete,d,b),headers:b.headers};this.deleteWithPOST&&(c.data=this.format.write(a));d.priv=OMAP.Request[e](c);return d},handleDelete:function(a,b){this.handleResponse(a,b)},handleResponse:function(a,b){var c=a.priv;b.callback&&(200<=c.status&&300>c.status?("delete"!=a.requestType&&(a.features=this.parseFeatures(c)),a.code=OMAP.Protocol.Response.SUCCESS):a.code=OMAP.Protocol.Response.FAILURE,b.callback.call(b.scope,a))},parseFeatures:function(a){var b=a.responseXML;b&&b.documentElement||(b=a.responseText);return!b||0>=b.length?null:this.format.read(b)},commit:function(a,b){function c(a){for(var b=a.features?a.features.length:0,c=Array(b),e=0;e=p&&b.callback&&(r.code=q?OMAP.Protocol.Response.SUCCESS:OMAP.Protocol.Response.FAILURE,b.callback.apply(b.scope,[r]))}b=OMAP.Util.applyDefaults(b,this.options);var e=[],f=0,g={};g[OMAP.State.INSERT]=[];g[OMAP.State.UPDATE]=[];g[OMAP.State.DELETE]=[];for(var h,k,l=[],m=0,n=a.length;mc;c++)a+=b.charAt(c)+b.charAt(c)}0==a.indexOf("#")&&(a=a.substring(1));b=a.substring(0,2);c=a.substring(2,4);a=a.substring(4,6);return new OMAP.Rico.Color(parseInt(b,16),parseInt(c,16),parseInt(a,16))};OMAP.Rico.Color.createColorFromBackground=function(a){var b=OMAP.Element.getStyle(OMAP.Util.getElement(a),"backgroundColor");return"transparent"==b&&a.parentNode?OMAP.Rico.Color.createColorFromBackground(a.parentNode):null==b?new OMAP.Rico.Color(255,255,255):0==b.indexOf("rgb(")?(a=b.substring(4,b.length-1).split(","),new OMAP.Rico.Color(parseInt(a[0]),parseInt(a[1]),parseInt(a[2]))):0==b.indexOf("#")?OMAP.Rico.Color.createFromHex(b):new OMAP.Rico.Color(255,255,255)};OMAP.Rico.Color.HSBtoRGB=function(a,b,c){var d=0,e=0,f=0;if(0==b)f=e=d=parseInt(255*c+.5);else{a=6*(a-Math.floor(a));var g=a-Math.floor(a),h=c*(1-b),k=c*(1-b*g);b=c*(1-b*(1-g));switch(parseInt(a)){case 0:d=255*c+.5;e=255*b+.5;f=255*h+.5;break;case 1:d=255*k+.5;e=255*c+.5;f=255*h+.5;break;case 2:d=255*h+.5;e=255*c+.5;f=255*b+.5;break;case 3:d=255*h+.5;e=255*k+.5;f=255*c+.5;break;case 4:d=255*b+.5;e=255*h+.5;f=255*c+.5;break;case 5:d=255*c+.5,e=255*h+.5,f=255*k+.5}}return{r:parseInt(d),g:parseInt(e),b:parseInt(f)}};OMAP.Rico.Color.RGBtoHSB=function(a,b,c){var d,e=a>b?a:b;c>e&&(e=c);var f=aa&&(a+=1)}return{h:a,s:d,b:e/255}};OMAP.Style2=OMAP.Class({id:null,name:null,title:null,description:null,layerName:null,isDefault:!1,rules:null,initialize:function(a){OMAP.Util.extend(this,a);this.id=OMAP.Util.createUniqueID(this.CLASS_NAME+"_")},destroy:function(){for(var a=0,b=this.rules.length;athis.standardTileSize||b.h>this.standardTileSize;)b=new OMAP.Size(Math.floor(b.w/2),Math.floor(b.h/2)),a=new OMAP.Size(Math.ceil(b.w/this.standardTileSize),Math.ceil(b.h/this.standardTileSize)),this.tierSizeInTiles.push(a),this.tierImageSize.push(b);this.tierSizeInTiles.reverse();this.tierImageSize.reverse();this.numberOfTiers=this.tierSizeInTiles.length;b=[1];this.tileCountUpToTier=[0];for(a=1;a=2*a[1]?"longdash":1==a[0]||1==a[1]?"dot":"dash":4==a.length?1*a[0]>=2*a[1]?"longdashdot":"dashdot":"solid"}},createNode:function(a,b){var c=document.createElement(a);b&&(c.id=b);c.unselectable="on";c.onselectstart=OMAP.Function.False;return c},nodeTypeCompare:function(a,b){var c=b,d=c.indexOf(":");-1!=d&&(c=c.substr(d+1));var e=a.nodeName,d=e.indexOf(":");-1!=d&&(e=e.substr(d+1));return c==e},createRenderRoot:function(){return this.nodeFactory(this.container.id+"_vmlRoot","div")},createRoot:function(a){return this.nodeFactory(this.container.id+a,"olv:group")},drawPoint:function(a,b){return this.drawCircle(a,b,1)},drawCircle:function(a,b,c){if(!isNaN(b.x)&&!isNaN(b.y)){var d=this.getResolution();a.style.left=((b.x-this.featureDx)/d-this.offset.x|0)-c+"px";a.style.top=(b.y/d-this.offset.y|0)-c+"px";b=2*c;a.style.width=b+"px";a.style.height=b+"px";return a}return!1},drawLineString:function(a,b){return this.drawLine(a,b,!1)},drawLinearRing:function(a,b){return this.drawLine(a,b,!0)},drawLine:function(a,b,c){this.setNodeDimension(a,b);for(var d=this.getResolution(),e=b.components.length,f=Array(e),g,h,k=0;k=this.pending&&(OMAP.Element.removeClass(this.map.viewPortDiv,"olCursorWait"),this.pending=0),this.hoverRequest.abort(),this.hoverRequest=null)},findLayers:function(){for(var a=this.layers||this.map.layers,b=[],c,d=a.length-1;0<=d&&(c=a[d],!(c instanceof OMAP.Layer.WMTS)||c.requestEncoding!==this.requestEncoding||this.queryVisible&&!c.getVisibility()||(b.push(c),this.drillDown&&!this.hover));--d);return b},buildRequestOptions:function(a,b){var c=this.map.getLonLatFromPixel(b),d=a.getURL(new OMAP.Bounds(c.lon,c.lat,c.lon,c.lat)),d=OMAP.Util.getParameters(d),c=a.getTileInfo(c);OMAP.Util.extend(d,{service:"WMTS",version:a.version,request:"GetFeatureInfo",infoFormat:this.infoFormat,i:c.i,j:c.j});OMAP.Util.applyDefaults(d,this.vendorParams);return{url:OMAP.Util.isArray(a.url)?a.url[0]:a.url,params:OMAP.Util.upperCaseObject(d),callback:function(c){this.handleResponse(b,c,a)},scope:this}},request:function(a,b){b=b||{};var c=this.findLayers();if(0=this.pending&&(OMAP.Element.removeClass(this.map.viewPortDiv,"olCursorWait"),this.pending=0);if(b.status&&(200>b.status||300<=b.status))this.events.triggerEvent("exception",{xy:a,request:b,layer:c});else{var d=b.responseXML;d&&d.documentElement||(d=b.responseText);var e,f;try{e=this.format.read(d)}catch(g){f=!0,this.events.triggerEvent("exception",{xy:a,request:b,error:g,layer:c})}f||this.events.triggerEvent("getfeatureinfo",{text:b.responseText,features:e,request:b,xy:a,layer:c})}},CLASS_NAME:"OMAP.Control.WMTSGetFeatureInfo"});OMAP.Protocol.CSW.v2_0_2=OMAP.Class(OMAP.Protocol,{formatOptions:null,initialize:function(a){OMAP.Protocol.prototype.initialize.apply(this,[a]);a.format||(this.format=new OMAP.Format.CSWGetRecords.v2_0_2(OMAP.Util.extend({},this.formatOptions)))},destroy:function(){this.options&&!this.options.format&&this.format.destroy();this.format=null;OMAP.Protocol.prototype.destroy.apply(this)},read:function(a){a=OMAP.Util.extend({},a);OMAP.Util.applyDefaults(a,this.options||{});var b=new OMAP.Protocol.Response({requestType:"read"}),c=this.format.write(a.params||a);b.priv=OMAP.Request.POST({url:a.url,callback:this.createCallback(this.handleRead,b,a),params:a.params,headers:a.headers,data:c});return b},handleRead:function(a,b){if(b.callback){var c=a.priv;200<=c.status&&300>c.status?(a.data=this.parseData(c),a.code=OMAP.Protocol.Response.SUCCESS):a.code=OMAP.Protocol.Response.FAILURE;b.callback.call(b.scope,a)}},parseData:function(a){var b=a.responseXML;b&&b.documentElement||(b=a.responseText);return!b||0>=b.length?null:this.format.read(b)},CLASS_NAME:"OMAP.Protocol.CSW.v2_0_2"});OMAP.Format.WCSCapabilities.v1_1_0=OMAP.Class(OMAP.Format.WCSCapabilities.v1,{namespaces:{wcs:"http://www.opengis.net/wcs/1.1",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance",ows:"http://www.opengis.net/ows/1.1"},errorProperty:"operationsMetadata",readers:{wcs:OMAP.Util.applyDefaults({Capabilities:function(a,b){this.readChildNodes(a,b)},Contents:function(a,b){b.contentMetadata=[];this.readChildNodes(a,b.contentMetadata)},CoverageSummary:function(a,b){var c={};this.readChildNodes(a,c);b.push(c)},Identifier:function(a,b){b.identifier=this.getChildValue(a)},Title:function(a,b){b.title=this.getChildValue(a)},Abstract:function(a,b){b["abstract"]=this.getChildValue(a)},SupportedCRS:function(a,b){var c=this.getChildValue(a);c&&(b.supportedCRS||(b.supportedCRS=[]),b.supportedCRS.push(c))},SupportedFormat:function(a,b){var c=this.getChildValue(a);c&&(b.supportedFormat||(b.supportedFormat=[]),b.supportedFormat.push(c))}},OMAP.Format.WCSCapabilities.v1.prototype.readers.wcs),ows:OMAP.Format.OWSCommon.v1_1_0.prototype.readers.ows},CLASS_NAME:"OMAP.Format.WCSCapabilities.v1_1_0"});OMAP.Control.Graticule=OMAP.Class(OMAP.Control,{autoActivate:!0,intervals:[45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001],displayInLayerSwitcher:!0,visible:!0,numPoints:50,targetSize:200,layerName:null,labelled:!0,labelFormat:"dm",lineSymbolizer:{strokeColor:"#333",strokeWidth:1,strokeOpacity:.5},labelSymbolizer:{},gratLayer:null,initialize:function(a){a=a||{};a.layerName=a.layerName||OMAP.i18n("Graticule");OMAP.Control.prototype.initialize.apply(this,[a]);this.labelSymbolizer.stroke=!1;this.labelSymbolizer.fill=!1;this.labelSymbolizer.label="${label}";this.labelSymbolizer.labelAlign="${labelAlign}";this.labelSymbolizer.labelXOffset="${xOffset}";this.labelSymbolizer.labelYOffset="${yOffset}"},destroy:function(){this.deactivate();OMAP.Control.prototype.destroy.apply(this,arguments);this.gratLayer&&(this.gratLayer.destroy(),this.gratLayer=null)},draw:function(){OMAP.Control.prototype.draw.apply(this,arguments);if(!this.gratLayer){var a=new OMAP.Style({},{rules:[new OMAP.Rule({symbolizer:{Point:this.labelSymbolizer,Line:this.lineSymbolizer}})]});this.gratLayer=new OMAP.Layer.Vector(this.layerName,{styleMap:new OMAP.StyleMap({"default":a}),visibility:this.visible,displayInLayerSwitcher:this.displayInLayerSwitcher})}return this.div},activate:function(){return OMAP.Control.prototype.activate.apply(this,arguments)?(this.map.addLayer(this.gratLayer),this.map.events.register("moveend",this,this.update),this.update(),!0):!1},deactivate:function(){return OMAP.Control.prototype.deactivate.apply(this,arguments)?(this.map.events.unregister("moveend",this,this.update),this.map.removeLayer(this.gratLayer),!0):!1},update:function(){var a=this.map.getExtent();if(a){this.gratLayer.destroyFeatures();var b=new OMAP.Projection("EPSG:4326"),c=this.map.getProjectionObject(),d=this.map.getResolution();c.proj&&"longlat"==c.proj.projName&&(this.numPoints=1);var e=this.map.getCenter(),f=new OMAP.Pixel(e.lon,e.lat);OMAP.Projection.transform(f,c,b);for(var e=this.targetSize*d,e=e*e,g,d=0;d++d);h=f.clone();do h=h.offset({x:0,y:-g}),l=OMAP.Projection.transform(h.clone(),b,c),e.push(h);while(a.containsPixel(l)&&1E3>++d);d=0;k=[f.clone()];h=f.clone();do h=h.offset({x:-g,y:0}),l=OMAP.Projection.transform(h.clone(),b,c),k.unshift(h);while(a.containsPixel(l)&&1E3>++d);h=f.clone();do h=h.offset({x:g,y:0}),l=OMAP.Projection.transform(h.clone(),b,c),k.push(h);while(a.containsPixel(l)&&1E3>++d);g=[];for(d=0;d=a.bottom&&!m&&(m=q)}this.labelled&&(m=new OMAP.Geometry.Point(m.x,a.bottom),l={value:l,label:this.labelled?OMAP.Util.getFormattedLonLat(l,"lon",this.labelFormat):"",labelAlign:"cb",xOffset:0,yOffset:2},this.gratLayer.addFeatures(new OMAP.Feature.Vector(m,l)));f=new OMAP.Geometry.LineString(f);g.push(new OMAP.Feature.Vector(f))}for(h=0;hn||90this.limit+1&&this.previousStack.pop();0=this.cacheSize&&(delete this.tileCache[this.tileCacheIndex[0]],this.tileCacheIndex.shift()),this.tileCache[a.url]=a.imgDiv,this.tileCacheIndex.push(a.url))},clearTileQueue:function(a){a=a.object;for(var b=this.tileQueue[a.map.id],c=b.length-1;0<=c;--c)b[c].layer===a&&b.splice(c,1)},destroy:function(){for(var a=this.maps.length-1;0<=a;--a)this.removeMap(this.maps[a]);this.tileCacheIndex=this.tileCache=this.tileQueueId=this.tileQueue=this.maps=null;this._destroyed=!0}});OMAP.Layer.ArcGISCache=OMAP.Class(OMAP.Layer.XYZ,{defaultImage:"/api/img/nopic.jpg",startHoverLevel:5,url:null,tileOrigin:null,tileSize:new OMAP.Size(256,256),useArcGISServer:!0,type:"png",useScales:!1,overrideDPI:!1,initialize:function(a,b,c){var d=this;this.defaultImage=c.defaultImage||this.defaultImage;c.onImageLoadError||(this.onImageLoadError=function(a){a.src=d.defaultImage;a.style.opacity=0});OMAP.Layer.XYZ.prototype.initialize.apply(this,arguments);this.resolutions&&(this.serverResolutions=this.resolutions,this.maxExtent=this.getMaxExtentForResolution(this.resolutions[0]));if(this.layerInfo){var e=this.layerInfo,f=new OMAP.Bounds(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);this.projection="EPSG:"+e.spatialReference.wkid;this.sphericalMercator=102100==e.spatialReference.wkid;this.units="esriFeet"==e.units?"ft":"m";if(e.tileInfo){this.tileSize=new OMAP.Size(e.tileInfo.width||e.tileInfo.cols,e.tileInfo.height||e.tileInfo.rows);this.tileOrigin=new OMAP.LonLat(e.tileInfo.origin.x,e.tileInfo.origin.y);var g=new OMAP.Geometry.Point(f.left,f.top),f=new OMAP.Geometry.Point(f.right,f.bottom);this.useScales?this.scales=[]:this.resolutions=[];this.lods=[];for(var h in e.tileInfo.lods)if(e.tileInfo.lods.hasOwnProperty(h)){var k=e.tileInfo.lods[h];this.useScales?this.scales.push(k.scale):this.resolutions.push(k.resolution);var l=this.getContainingTileCoords(g,k.resolution);k.startTileCol=l.x;k.startTileRow=l.y;l=this.getContainingTileCoords(f,k.resolution);k.endTileCol=l.x;k.endTileRow=l.y;this.lods.push(k)}this.maxExtent=this.calculateMaxExtentWithLOD(this.lods[0]);this.serverResolutions=this.resolutions;this.overrideDPI&&e.tileInfo.dpi&&(OMAP.DOTS_PER_INCH=e.tileInfo.dpi)}}},setMap:function(){OMAP.Layer.XYZ.prototype.setMap.apply(this,arguments);this.loadHotspot&&(this.hotspot=new OMAP.Hotspot(arguments[0],this,{startHoverLevel:this.startHoverLevel}))},getContainingTileCoords:function(a,b){return new OMAP.Pixel(Math.max(Math.floor((a.x-this.tileOrigin.lon)/(this.tileSize.w*b)),0),Math.max(Math.floor((this.tileOrigin.lat-a.y)/(this.tileSize.h*b)),0))},calculateMaxExtentWithLOD:function(a){var b=this.tileOrigin.lon+a.startTileCol*this.tileSize.w*a.resolution,c=this.tileOrigin.lat-a.startTileRow*this.tileSize.h*a.resolution;return new OMAP.Bounds(b,c-(a.endTileRow-a.startTileRow+1)*this.tileSize.h*a.resolution,b+(a.endTileCol-a.startTileCol+1)*this.tileSize.w*a.resolution,c)},calculateMaxExtentWithExtent:function(a,b){var c=new OMAP.Geometry.Point(a.left,a.top),d=new OMAP.Geometry.Point(a.right,a.bottom),c=this.getContainingTileCoords(c,b),d=this.getContainingTileCoords(d,b);return this.calculateMaxExtentWithLOD({resolution:b,startTileCol:c.x,startTileRow:c.y,endTileCol:d.x,endTileRow:d.y})},getUpperLeftTileCoord:function(a){var b=new OMAP.Geometry.Point(this.maxExtent.left,this.maxExtent.top);return this.getContainingTileCoords(b,a)},getLowerRightTileCoord:function(a){var b=new OMAP.Geometry.Point(this.maxExtent.right,this.maxExtent.bottom);return this.getContainingTileCoords(b,a)},getMaxExtentForResolution:function(a){var b=this.getUpperLeftTileCoord(a),c=this.getLowerRightTileCoord(a),d=this.tileOrigin.lon+b.x*this.tileSize.w*a,e=this.tileOrigin.lat-b.y*this.tileSize.h*a;return new OMAP.Bounds(d,e-(c.y-b.y+1)*this.tileSize.h*a,d+(c.x-b.x+1)*this.tileSize.w*a,e)},clone:function(a){null==a&&(a=new OMAP.Layer.ArcGISCache(this.name,this.url,this.options));return OMAP.Layer.XYZ.prototype.clone.apply(this,[a])},initGriddedTiles:function(a){delete this._tileOrigin;OMAP.Layer.XYZ.prototype.initGriddedTiles.apply(this,arguments)},getMaxExtent:function(){var a=this.map.getResolution();return this.maxExtent=this.getMaxExtentForResolution(a)},getTileOrigin:function(){if(!this._tileOrigin){var a=this.getMaxExtent();this._tileOrigin=new OMAP.LonLat(a.left,a.bottom)}return this._tileOrigin},getURL:function(a){var b=this.getResolution(),c=this.tileOrigin.lon+b*this.tileSize.w/2,d=this.tileOrigin.lat-b*this.tileSize.h/2;a=a.getCenterLonLat();var e=Math.floor((a.lon-this.tileOrigin.lon)/(b*this.tileSize.w)),f=Math.floor((this.tileOrigin.lat-a.lat)/(b*this.tileSize.h)),c=Math.round(Math.abs((a.lon-c)/(b*this.tileSize.w))),d=Math.round(Math.abs((d-a.lat)/(b*this.tileSize.h)));a=this.map.getZoom();if(this.lods){if(b=this.lods[this.map.getZoom()],cb.endTileCol||db.endTileRow)return null}else{var g=this.getUpperLeftTileCoord(b),b=this.getLowerRightTileCoord(b);if(c=b.x||d=b.y)return null}b=this.url;g=""+c+d+a;OMAP.Util.isArray(b)&&(b=this.selectUrl(g,b));this.useArcGISServer?b+="/tile/${z}/${y}/${x}":(c="C"+OMAP.Number.zeroPad(c,8,16),d="R"+OMAP.Number.zeroPad(d,8,16),a="L"+OMAP.Number.zeroPad(a,2,10),b=b+"/${z}/${y}/${x}."+this.type);b=OMAP.String.format(b,{x:c,y:d,z:a});this.loadHotspot&&this.hotspot&&this.hotspot.loadGrid(e,f,this.startHoverLevel);return OMAP.Util.urlAppend(b,OMAP.Util.getParameterString(this.params))},CLASS_NAME:"OMAP.Layer.ArcGISCache"});OMAP.Control.WMSGetFeatureInfo=OMAP.Class(OMAP.Control,{hover:!1,drillDown:!1,maxFeatures:10,clickCallback:"click",output:"features",layers:null,queryVisible:!1,url:null,layerUrls:null,infoFormat:"text/html",vendorParams:{},format:null,formatOptions:null,handler:null,hoverRequest:null,initialize:function(a){a=a||{};a.handlerOptions=a.handlerOptions||{};OMAP.Control.prototype.initialize.apply(this,[a]);this.format||(this.format=new OMAP.Format.WMSGetFeatureInfo(a.formatOptions));!0===this.drillDown&&(this.hover=!1);this.hover?this.handler=new OMAP.Handler.Hover(this,{move:this.cancelHover,pause:this.getInfoForHover},OMAP.Util.extend(this.handlerOptions.hover||{},{delay:250})):(a={},a[this.clickCallback]=this.getInfoForClick,this.handler=new OMAP.Handler.Click(this,a,this.handlerOptions.click||{}))},getInfoForClick:function(a){this.events.triggerEvent("beforegetfeatureinfo",{xy:a.xy});OMAP.Element.addClass(this.map.viewPortDiv,"olCursorWait");this.request(a.xy,{})},getInfoForHover:function(a){this.events.triggerEvent("beforegetfeatureinfo",{xy:a.xy});this.request(a.xy,{hover:!0})},cancelHover:function(){this.hoverRequest&&(this.hoverRequest.abort(),this.hoverRequest=null)},findLayers:function(){for(var a=this.layers||this.map.layers,b=[],c,d,e=a.length-1;0<=e;--e)c=a[e],c instanceof OMAP.Layer.WMS&&(!this.queryVisible||c.getVisibility())&&(d=OMAP.Util.isArray(c.url)?c.url[0]:c.url,!1!==this.drillDown||this.url||(this.url=d),(!0===this.drillDown||this.urlMatches(d))&&b.push(c));return b},urlMatches:function(a){var b=OMAP.Util.isEquivalentUrl(this.url,a);if(!b&&this.layerUrls)for(var c=0,d=this.layerUrls.length;c|<=|<|>=|>|LIKE)/i,IS_NULL:/^IS NULL/i,COMMA:/^,/,LOGICAL:/^(AND|OR)/i,VALUE:/^('([^']|'')*'|\d+(\.\d*)?|\.\d+)/,LPAREN:/^\(/,RPAREN:/^\)/,SPATIAL:/^(BBOX|INTERSECTS|DWITHIN|WITHIN|CONTAINS)/i,NOT:/^NOT/i,BETWEEN:/^BETWEEN/i,GEOMETRY:function(a){var b=/^(POINT|LINESTRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)/.exec(a);if(b){var c=a.length,b=a.indexOf("(",b[0].length);if(-1c.status?(a.features=this.parseFeatures(c),a.code=OMAP.Protocol.Response.SUCCESS):a.code=OMAP.Protocol.Response.FAILURE;b.callback.call(b.scope,a)}},parseFeatures:function(a){var b=a.responseXML;b&&b.documentElement||(b=a.responseText);return!b||0>=b.length?null:this.format.read(b)},CLASS_NAME:"OMAP.Protocol.SOS.v1_0_0"});OMAP.Layer.KaMapCache=OMAP.Class(OMAP.Layer.KaMap,{IMAGE_EXTENSIONS:{jpeg:"jpg",gif:"gif",png:"png",png8:"png",png24:"png",dithered:"png"},DEFAULT_FORMAT:"jpeg",initialize:function(a,b,c,d){OMAP.Layer.KaMap.prototype.initialize.apply(this,arguments);this.extension=this.IMAGE_EXTENSIONS[this.params.i.toLowerCase()||this.DEFAULT_FORMAT]},getURL:function(a){a=this.adjustBounds(a);var b=this.map.getResolution(),c=Math.round(1E4*this.map.getScale())/1E4,d=Math.round(a.left/b);a=-Math.round(a.top/b);var b=Math.floor(d/this.tileSize.w/this.params.metaTileSize.w)*this.tileSize.w*this.params.metaTileSize.w,e=Math.floor(a/this.tileSize.h/this.params.metaTileSize.h)*this.tileSize.h*this.params.metaTileSize.h,c=["/",this.params.map,"/",c,"/",this.params.g.replace(/\s/g,"_"),"/def/t",e,"/l",b,"/t",a,"l",d,".",this.extension],d=this.url;OMAP.Util.isArray(d)&&(d=this.selectUrl(c.join(""),d));return d+c.join("")},CLASS_NAME:"OMAP.Layer.KaMapCache"});OMAP.Protocol.WFS.v1_1_0=OMAP.Class(OMAP.Protocol.WFS.v1,{version:"1.1.0",initialize:function(a){OMAP.Protocol.WFS.v1.prototype.initialize.apply(this,arguments);this.outputFormat&&!this.readFormat&&("gml2"==this.outputFormat.toLowerCase()?this.readFormat=new OMAP.Format.GML.v2({featureType:this.featureType,featureNS:this.featureNS,geometryName:this.geometryName}):"json"==this.outputFormat.toLowerCase()&&(this.readFormat=new OMAP.Format.GeoJSON))},CLASS_NAME:"OMAP.Protocol.WFS.v1_1_0"});OMAP.Format.WMSCapabilities.v1_1_1=OMAP.Class(OMAP.Format.WMSCapabilities.v1_1,{version:"1.1.1",readers:{wms:OMAP.Util.applyDefaults({SRS:function(a,b){b.srs[this.getChildValue(a)]=!0}},OMAP.Format.WMSCapabilities.v1_1.prototype.readers.wms)},CLASS_NAME:"OMAP.Format.WMSCapabilities.v1_1_1"});OMAP.Format.WMSCapabilities.v1_1_1_WMSC=OMAP.Class(OMAP.Format.WMSCapabilities.v1_1_1,{version:"1.1.1",profile:"WMSC",readers:{wms:OMAP.Util.applyDefaults({VendorSpecificCapabilities:function(a,b){b.vendorSpecific={tileSets:[]};this.readChildNodes(a,b.vendorSpecific)},TileSet:function(a,b){var c={srs:{},bbox:{},resolutions:[]};this.readChildNodes(a,c);b.tileSets.push(c)},Resolutions:function(a,b){for(var c=this.getChildValue(a).split(" "),d=0,e=c.length;dthis.minRatio&&b<=this.maxRatio&&this.ovmap.getExtent().containsBounds(a)},updateOverview:function(){var a=this.map.getResolution(),b=this.ovmap.getResolution(),c=b/a;c>this.maxRatio?b=this.minRatio*a:c<=this.minRatio&&(b=this.maxRatio*a);this.ovmap.getProjection()!=this.map.getProjection()?(a=this.map.center.clone(),a.transform(this.map.getProjectionObject(),this.ovmap.getProjectionObject())):a=this.map.center;this.ovmap.setCenter(a,this.ovmap.getZoomForResolution(b*this.resolutionFactor));this.updateRectToMap()},createMap:function(){OMAP.Util.extend({controls:[],maxResolution:"auto",fallThrough:!1},this.mapOptions);this.ovmap=new OMAP.Map(this.mapDiv,this.mapOptions);this.ovmap.viewPortDiv.appendChild(this.extentRectangle);OMAP.Event.stopObserving(window,"unload",this.ovmap.unloadDestroy);this.ovmap.zoomToMaxExtent();this.wComp=(this.wComp=parseInt(OMAP.Element.getStyle(this.extentRectangle,"border-left-width"))+parseInt(OMAP.Element.getStyle(this.extentRectangle,"border-right-width")))?this.wComp:2;this.hComp=(this.hComp=parseInt(OMAP.Element.getStyle(this.extentRectangle,"border-top-width"))+parseInt(OMAP.Element.getStyle(this.extentRectangle,"border-bottom-width")))?this.hComp:2;this.handlers.drag=new OMAP.Handler.Drag(this,{move:this.rectDrag,done:this.updateMapToRect},{map:this.ovmap});this.handlers.click=new OMAP.Handler.Click(this,{click:this.mapDivClick},{single:!0,"double":!1,stopSingle:!0,stopDouble:!0,pixelTolerance:1,map:this.ovmap});this.handlers.click.activate();this.rectEvents=new OMAP.Events(this,this.extentRectangle,null,!0);this.rectEvents.register("mouseover",this,function(a){this.handlers.drag.active||this.map.dragging||this.handlers.drag.activate()});this.rectEvents.register("mouseout",this,function(a){this.handlers.drag.dragging||this.handlers.drag.deactivate()});if(this.ovmap.getProjection()!=this.map.getProjection()){var a=this.map.getProjectionObject().getUnits()||this.map.units||this.map.baseLayer.units,b=this.ovmap.getProjectionObject().getUnits()||this.ovmap.units||this.ovmap.baseLayer.units;this.resolutionFactor=a&&b?OMAP.INCHES_PER_UNIT[a]/OMAP.INCHES_PER_UNIT[b]:1}},updateRectToMap:function(){var a;a=this.ovmap.getProjection()!=this.map.getProjection()?this.map.getExtent().transform(this.map.getProjectionObject(),this.ovmap.getProjectionObject()):this.map.getExtent();(a=this.getRectBoundsFromMapBounds(a))&&this.setRectPxBounds(a)},updateMapToRect:function(){var a=this.getMapBoundsFromRectBounds(this.rectPxBounds);this.ovmap.getProjection()!=this.map.getProjection()&&(a=a.transform(this.ovmap.getProjectionObject(),this.map.getProjectionObject()));this.map.panTo(a.getCenterLonLat())},setRectPxBounds:function(a){var b=Math.max(a.top,0),c=Math.max(a.left,0),d=Math.min(a.top+Math.abs(a.getHeight()),this.ovmap.size.h-this.hComp);a=Math.min(a.left+a.getWidth(),this.ovmap.size.w-this.wComp);var e=Math.max(a-c,0),f=Math.max(d-b,0);ed&&(d="M"+-d);0>a&&(a="M"+-a);return url=this.url.replace("{n}",c).replace("{x}",d).replace("{y}",a).replace("{z}",b)},mergeNewParams:function(a){if("KVP"===this.requestEncoding.toUpperCase())return OMAP.Layer.Grid.prototype.mergeNewParams.apply(this,[OMAP.Util.upperCaseObject(a)])},CLASS_NAME:"OMAP.Layer.BaiduLayer"});OMAP.Layer.OGISLayer=OMAP.Class(OMAP.Layer.Grid,{isBaseLayer:!0,version:"1.0.0",requestEncoding:"KVP",url:null,layer:null,matrixSet:null,style:null,format:"image/jpeg",tileOrigin:null,tileFullExtent:null,formatSuffix:null,matrixIds:null,dimensions:null,params:null,zoomOffset:0,serverResolutions:null,formatSuffixMap:{"image/png":"png","image/png8":"png","image/png24":"png","image/png32":"png",png:"png","image/jpeg":"jpg","image/jpg":"jpg",jpeg:"jpg",jpg:"jpg"},matrix:null,loadHotspot:!1,startHoverLevel:0,defaultImage:"/api/img/nopic.jpg",hotspot:null,levels:[6,5,4,3,2,1],initialize:function(a){this.tileOrigin=new OMAP.LonLat(0,5E5);var b={url:!0},c;for(c in b)if(!(c in a))throw Error("Missing property '"+c+"' in layer configuration.");var d=this;this.defaultImage=a.defaultImage||this.defaultImage;a.onImageLoadError||(this.onImageLoadError=function(a){a.src=d.defaultImage});a.params=OMAP.Util.upperCaseObject(a.params);OMAP.Layer.Grid.prototype.initialize.apply(this,[a.name,a.url,a.params,a]);this.formatSuffix||(this.formatSuffix=this.formatSuffixMap[this.format]||this.format.split("/").pop());if(this.matrixIds&&(a=this.matrixIds.length)&&"string"===typeof this.matrixIds[0])for(b=this.matrixIds,this.matrixIds=Array(a),c=0;cc-this.startLevel)){a=b.row;var d=b.col,b=this.url+"/lv"+(6-(c-this.startLevel))+"/"+b.col+","+b.row+"."+this.format;this.loadHotspot&&this.hotspot&&this.hotspot.loadGrid(a,d,this.startLevel);return b}}},mergeNewParams:function(a){if("KVP"===this.requestEncoding.toUpperCase())return OMAP.Layer.Grid.prototype.mergeNewParams.apply(this,[OMAP.Util.upperCaseObject(a)])},CLASS_NAME:"OMAP.Layer.OGISLayer"});OMAP.Layer.OGISFeatureLayer=OMAP.Class(OMAP.Layer,{isBaseLayer:!1,isFixed:!1,features:null,filter:null,selectedFeatures:null,unrenderedFeatures:null,reportError:!0,style:null,styleMap:null,strategies:null,protocol:null,renderers:["SVG","VML","Canvas"],renderer:null,rendererOptions:null,geometryType:null,drawn:!1,ratio:1,initialize:function(a,b){if(null==b||null==b.url)throw Error("Missing property url in layer configuration.");OMAP.Layer.prototype.initialize.apply(this,arguments);this.renderer&&this.renderer.supported()||this.assignRenderer();this.renderer&&this.renderer.supported()||(this.renderer=null,this.displayError());this.styleMap||(this.styleMap=new OMAP.StyleMap);this.features=[];this.selectedFeatures=[];this.unrenderedFeatures={};if(this.strategies)for(var c=0,d=this.strategies.length;cthis.map.div.offsetWidth-b-10?this.map.div.offsetWidth-b-10:a.x;this.hotTooltip.style.top=(a.y>this.map.div.offsetHeight-20?this.map.div.offsetHieght-20:a.y)+c/2.5+"px";this.hotTooltip.style.left=d-b/2+"px"};OMAP.Hotspot.prototype.showDefaultDetial=function(a,b){var c=this.map.popups;if(null!=c&&0e||m.gridRowd||m.gridCol=this.map.config.hotFileLevel){var d=parseInt(a/Math.pow(2,c)),e=parseInt(b/Math.pow(2,c));this.renderGrid(d,e)}else for(var c=parseInt(Math.pow(2,d)),f=a*parseInt(Math.pow(2,d)),g=b*parseInt(Math.pow(2,d)),h=0;ha.length)return 0;for(var b=0,c=0;ca.w-this.map.paddingForPopups.right&&(c.x=a.w-this.map.paddingForPopups.right-this.size.w);b.ya.h-this.map.paddingForPopups.bottom&&(c.y=a.h-this.map.paddingForPopups.bottom-this.size.h);this.map.pan(b.x-c.x,b.y-c.y)},registerEvents:function(){this.events=new OMAP.Events(this,this.div,null,!0);this.events.on({mousedown:this.onmousedown,mousemove:this.onmousemove,mouseup:this.onmouseup,click:this.onclick,mouseout:this.onmouseout,dblclick:this.ondblclick,touchstart:function(a){OMAP.Event.stop(a,!0)},scope:this})},onmousedown:function(a){this.mousedown=!0;OMAP.Event.stop(a,!0)},onmousemove:function(a){this.mousedown&&OMAP.Event.stop(a,!0)},onmouseup:function(a){this.mousedown&&(this.mousedown=!1,OMAP.Event.stop(a,!0))},onclick:function(a){OMAP.Event.stop(a,!0)},onmouseout:function(a){this.mousedown=!1},ondblclick:function(a){OMAP.Event.stop(a,!0)},CLASS_NAME:"OMAP.OPopup"});OMAP.Popup.OAnchored=OMAP.Class(OMAP.OPopup,{relativePosition:null,keepInMap:!0,anchor:null,initialize:function(a,b,c,d,e,f,g,h){OMAP.OPopup.prototype.initialize.apply(this,[a,b,c,d,e,g,h]);this.anchor=null!=f?f:{size:new OMAP.Size(0,0),offset:new OMAP.Pixel(0,0)}},destroy:function(){this.relativePosition=this.anchor=null;OMAP.OPopup.prototype.destroy.apply(this,arguments)},show:function(){this.updatePosition();OMAP.OPopup.prototype.show.apply(this,arguments)},moveTo:function(a){var b=this.relativePosition;this.relativePosition=this.calculateRelativePosition(a);OMAP.OPopup.prototype.moveTo.call(this,this.calculateNewPx(a));this.relativePosition!=b&&this.updateRelativePosition()},setSize:function(a){OMAP.OPopup.prototype.setSize.apply(this,arguments);if(this.lonlat&&this.map){var b=this.map.getLayerPxFromLonLat(this.lonlat);this.moveTo(b)}},calculateRelativePosition:function(a){a=this.map.getLonLatFromLayerPx(a);a=this.map.getExtent().determineQuadrant(a);return OMAP.Bounds.oppositeQuadrant(a)},updateRelativePosition:function(){},calculateNewPx:function(a){a=a.offset(this.anchor.offset);var b=this.size||this.contentSize,c="t"==this.relativePosition.charAt(0);a.y+=c?-b.h:this.anchor.size.h;c="l"==this.relativePosition.charAt(1);a.x+=c?-b.w:this.anchor.size.w;return a},CLASS_NAME:"OMAP.Popup.OAnchored"});OMAP.Popup.OFramed=OMAP.Class(OMAP.Popup.OAnchored,{imageSrc:null,imageSize:null,isAlphaImage:!1,positionBlocks:null,blocks:null,fixedRelativePosition:!1,initialize:function(a,b,c,d,e,f,g,h){OMAP.Popup.OAnchored.prototype.initialize.apply(this,arguments);this.fixedRelativePosition&&(this.updateRelativePosition(),this.calculateRelativePosition=function(a){return this.relativePosition});this.contentDiv.style.position="absolute";this.contentDiv.style.zIndex=1;this.contentDiv.onmousemove=OMAP.Util.stopPropagation;g&&(this.closeDiv.style.zIndex=1);this.groupDiv.style.position="absolute";this.groupDiv.style.top="0px";this.groupDiv.style.left="0px";this.groupDiv.style.height="100%";this.groupDiv.style.width="100%";this.groupDiv.onmousemove=OMAP.Util.stopPropagation},destroy:function(){this.isAlphaImage=this.imageSize=this.imageSrc=null;this.fixedRelativePosition=!1;this.positionBlocks=null;for(var a=0;ak?0:k)+"px";d.div.style.height=(0>l?0:l)+"px";d.div.style.left=null!=e?e+"px":"";d.div.style.bottom=null!=f?f+"px":"";d.div.style.right=null!=g?g+"px":"";d.div.style.top=null!=h?h+"px":"";d.image.style.left=c.position.x+"px";d.image.style.top=c.position.y+"px"}this.titleDiv.style.left=this.padding.left+"px";this.titleDiv.style.top=this.padding.top+"px";this.titleDiv.style.zIndex=10;this.titleDiv.onmousemove=OMAP.Util.stopPropagation;this.contentDiv.style.left=this.padding.left+"px";this.contentDiv.style.top=this.padding.top+28+"px";this.contentDiv.onmousemove=OMAP.Util.stopPropagation}},CLASS_NAME:"OMAP.Popup.OFramed"});OMAP.Popup.OFramedCloud=OMAP.Class(OMAP.Popup.OFramed,{contentDisplayClass:"olFramedCloudPopupContent",autoSize:!0,panMapIfOutOfView:!0,imageSize:new OMAP.Size(1276,736),isAlphaImage:!1,fixedRelativePosition:!1,positionBlocks:{tl:{offset:new OMAP.Pixel(44,0),padding:new OMAP.Bounds(0,40,0,0),blocks:[{size:new OMAP.Size("auto","auto"),anchor:new OMAP.Bounds(0,51,22,0),position:new OMAP.Pixel(0,0)},{size:new OMAP.Size(22,"auto"),anchor:new OMAP.Bounds(null,50,0,0),position:new OMAP.Pixel(-1238,0)},{size:new OMAP.Size("auto",19),anchor:new OMAP.Bounds(0,32,22,null),position:new OMAP.Pixel(0,-631)},{size:new OMAP.Size(22,18),anchor:new OMAP.Bounds(null,32,0,null),position:new OMAP.Pixel(-1238,-632)},{size:new OMAP.Size(81,35),anchor:new OMAP.Bounds(null,0,0,null),position:new OMAP.Pixel(0,-688)}]},tr:{offset:new OMAP.Pixel(-45,0),padding:new OMAP.Bounds(0,40,0,0),blocks:[{size:new OMAP.Size("auto","auto"),anchor:new OMAP.Bounds(0,51,22,0),position:new OMAP.Pixel(0,0)},{size:new OMAP.Size(22,"auto"),anchor:new OMAP.Bounds(null,50,0,0),position:new OMAP.Pixel(-1238,0)},{size:new OMAP.Size("auto",19),anchor:new OMAP.Bounds(0,32,22,null),position:new OMAP.Pixel(0,-631)},{size:new OMAP.Size(22,19),anchor:new OMAP.Bounds(null,32,0,null),position:new OMAP.Pixel(-1238,-631)},{size:new OMAP.Size(81,35),anchor:new OMAP.Bounds(0,0,null,null),position:new OMAP.Pixel(-215,-687)}]},bl:{offset:new OMAP.Pixel(45,0),padding:new OMAP.Bounds(0,0,0,32),blocks:[{size:new OMAP.Size("auto","auto"),anchor:new OMAP.Bounds(0,21,22,32),position:new OMAP.Pixel(0,0)},{size:new OMAP.Size(22,"auto"),anchor:new OMAP.Bounds(null,21,0,32),position:new OMAP.Pixel(-1238,0)},{size:new OMAP.Size("auto",21),anchor:new OMAP.Bounds(0,0,22,null),position:new OMAP.Pixel(0,-629)},{size:new OMAP.Size(22,21),anchor:new OMAP.Bounds(null,0,0,null),position:new OMAP.Pixel(-1238,-629)},{size:new OMAP.Size(81,33),anchor:new OMAP.Bounds(null,null,0,0),position:new OMAP.Pixel(-101,-674)}]},br:{offset:new OMAP.Pixel(-44,0),padding:new OMAP.Bounds(0,0,0,32),blocks:[{size:new OMAP.Size("auto","auto"),anchor:new OMAP.Bounds(0,21,22,32),position:new OMAP.Pixel(0,0)},{size:new OMAP.Size(22,"auto"),anchor:new OMAP.Bounds(null,21,0,32),position:new OMAP.Pixel(-1238,0)},{size:new OMAP.Size("auto",21),anchor:new OMAP.Bounds(0,0,22,null),position:new OMAP.Pixel(0,-629)},{size:new OMAP.Size(22,21),anchor:new OMAP.Bounds(null,0,0,null),position:new OMAP.Pixel(-1238,-629)},{size:new OMAP.Size(81,33),anchor:new OMAP.Bounds(0,null,null,0),position:new OMAP.Pixel(-311,-674)}]}},minSize:new OMAP.Size(105,10),maxSize:new OMAP.Size(1200,660),initialize:function(a,b,c,d,e,f,g,h){this.imageSrc=OMAP.Util.getImageLocation("cloud-popup-relative.png");OMAP.Popup.OFramed.prototype.initialize.apply(this,arguments);this.contentDiv.className=this.contentDisplayClass;this.contentDiv.onmousemove=OMAP.Util.stopPropagation},clone:function(){return new OMAP.Popup.OFramedCloud(this.id,this.titleNameDiv.innerHTML,this.lonlat,null,this.contentHTML,null,!0)},CLASS_NAME:"OMAP.Popup.OFramedCloud"});OMAP.Layer.TDTLayer=OMAP.Class(OMAP.Layer.Grid,{mapType:null,mirrorUrls:null,topLevel:null,bottomLevel:null,topLevelIndex:0,bottomLevelIndex:20,topTileFromX:-180,topTileFromY:90,topTileToX:180,topTileToY:-270,isBaseLayer:!0,defaultImage:"/api/img/nopic.jpg",initialize:function(a,b,c){this.defaultImage=c.defaultImage||this.defaultImage;var d=this;c.onImageLoadError||(this.onImageLoadError=function(a){a.src=d.defaultImage});c.topLevel=c.topLevel?c.topLevel:this.topLevelIndex;c.bottomLevel=c.bottomLevel?c.bottomLevel:this.bottomLevelIndex;c.maxResolution=this.getResolutionForLevel(c.topLevel);c.minResolution=this.getResolutionForLevel(c.bottomLevel);OMAP.Layer.Grid.prototype.initialize.apply(this,[a,b,{},c])},clone:function(a){null==a&&(a=new OMAP.Layer.TDTLayer(this.name,this.url,this.options));return a=OMAP.Layer.Grid.prototype.clone.apply(this,[a])},getURL:function(a){var b=this.getLevelForResolution(this.map.getResolution()),c=360/Math.pow(2,b),d=this.topTileFromXa)return 0;for(var b=0;1<=a/2;)b++,a/=2;return b},getResolutionForLevel:function(a){return 1.40625/Math.pow(2,a)},getMaxResolution:function(){return this.getResolutionForLevel(this.topLevelIndex)},getMinResolution:function(){return this.getResolutionForLevel(this.bottomLevelIndex)},addTile:function(a,b){var c=this.getURL(a);return new OMAP.Tile.Image(this,b,a,c,this.tileSize)},CLASS_NAME:"OMAP.Layer.TDTLayer"});OMAP.Layer.NOGISLayer=OMAP.Class(OMAP.Layer.TMS,{type:"png",hotspot:null,loadHotspot:!0,startHoverLevel:11,maxExtent:new OMAP.Bounds(-5.6255400354765005E7,-5.6255400354765005E7,5.6255400354765005E7,5.6255400354765005E7),defaultImage:"/api/img/nopic.png",tileOrigin:new OMAP.LonLat(-5.6255400354765005E7,-5.6255400354765005E7),initialize:function(a,b,c){c=c||{};this.defaultImage=c.defaultImage||this.defaultImage;var d=this;c.onImageLoadError||(this.onImageLoadError=function(a){a.src=d.defaultImage;a.style.opacity=0});OMAP.Layer.TMS.prototype.initialize.apply(this,[a,b,c])},clone:function(a){null==a&&(a=new OMAP.Layer.NOGISLayer(this.name,this.url,this.getOptions()));return OMAP.Layer.Grid.prototype.clone.apply(this,[a])},setMap:function(){OMAP.Layer.TMS.prototype.setMap.apply(this,arguments);this.loadHotspot&&(this.hotspot=new OMAP.Hotspot(arguments[0],this,{startHoverLevel:this.startHoverLevel}))},getTileInfo:function(a,b,c){c=this.map.getResolutionForZoom(c);return{row:Math.round((a-this.tileOrigin.lon)/(c*this.tileSize.w)),col:Math.round((b-this.tileOrigin.lat)/(c*this.tileSize.h))}},getURL:function(a){var b=this.map.getResolution(),c=this.tileSize,d=Math.round((a.left-this.tileOrigin.lon)/(b*c.w));a=Math.round((a.bottom-this.tileOrigin.lat)/(b*c.h));var b=parseInt(d/10),c=parseInt(a/10),e=d%10,f=a%10,b=this.url+"/"+(this.map.getZoom()+5)+"/"+b+"/"+c+"/"+e+"_"+f+"."+this.type;this.loadHotspot&&this.hotspot&&this.hotspot.loadGrid(d,a,this.startHoverLevel);return b},CLASS_NAME:"OMAP.Layer.NOGISLayer"});OMAP.Layer.XYTDTLayer=OMAP.Class(OMAP.Layer.TMS,{tileOriginCorner:"tl",type:"png",tileOrigin:new OMAP.LonLat(-180,90),initialize:function(a,b,c){OMAP.Layer.TMS.prototype.initialize.apply(this,[a,b,c])},clone:function(a){null==a&&(a=new OMAP.Layer.XYTDTLayer(this.name,this.url,this.getOptions()));return OMAP.Layer.Grid.prototype.clone.apply(this,[a])},getURL:function(a){var b=this.map.getResolution(),c=parseInt((a.getCenterLonLat().lon-this.tileOrigin.lon)/(256*b));a=parseInt((this.tileOrigin.lat-a.getCenterLonLat().lat)/(256*b));b=this.map.getZoom();if(OMAP.Util.isArray(this.url)){var d=parseInt(Math.random(0,this.url.length));return this.url[d]+"\x26z\x3d"+b+"\x26y\x3d"+a+"\x26x\x3d"+c}return this.url+"/tile/"+b+"/"+a+"/"+c},CLASS_NAME:"OMAP.Layer.XYTDTLayer"});