881 lines
415 KiB
JavaScript
881 lines
415 KiB
JavaScript
var COMPILED=!0,goog=goog||{};goog.NODE_JS=!1;goog.global=goog.NODE_JS?eval("global"):this;goog.DEBUG=!1;goog.LOCALE="en";goog.provide=function(a){if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a];for(var b=a;(b=b.substring(0,b.lastIndexOf(".")))&&!goog.getObjectByName(b);)goog.implicitNamespaces_[b]=!0}goog.exportPath_(a)};
|
|
goog.setTestOnly=function(a){if(COMPILED&&!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};COMPILED||(goog.isProvided_=function(a){return!goog.implicitNamespaces_[a]&&!!goog.getObjectByName(a)},goog.implicitNamespaces_={});goog.isExistingGlobalVariable_=function(a){return"undefined"!==String(eval("typeof "+a))};
|
|
goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;!(a[0]in c)&&c.execScript&&c.execScript("var "+a[0]);goog.NODE_JS&&c===goog.global&&goog.isExistingGlobalVariable_(a[0])&&(c=eval(a[0]),a.shift());for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]?c[d]:c[d]={}};
|
|
goog.getObjectByName=function(a,b){var c=a.split("."),d=b||goog.global;goog.NODE_JS&&d===goog.global&&goog.isExistingGlobalVariable_(c[0])&&(d=eval(c[0]),c.shift());for(var e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};
|
|
goog.addDependency=function(a,b,c){if(!COMPILED){for(var d,a=a.replace(/\\/g,"/"),e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.ENABLE_DEBUG_LOADER=!0;
|
|
goog.require=function(a){if(!COMPILED&&!goog.isProvided_(a)){if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b){goog.included_[b]=!0;goog.writeScripts_();return}}a="goog.require could not find: "+a;goog.global.console&&goog.global.console.error(a);throw Error(a);}};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a};goog.abstractMethod=function(){throw Error("unimplemented abstract method");};
|
|
goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];
|
|
!COMPILED&&goog.ENABLE_DEBUG_LOADER&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document.getElementsByTagName("script"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?"),d=
|
|
-1==d?c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){return goog.inHtmlDocument_()?(goog.global.document.write('<script type="text/javascript" src="'+a+'"><\/script>'),!0):!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=
|
|
!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input");},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),
|
|
goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js"));
|
|
goog.typeOf=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
|
|
else if("function"==b&&"undefined"==typeof a.call)return"object";return b};goog.isDef=function(a){return void 0!==a};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return"array"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isString=function(a){return"string"==typeof a};
|
|
goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};goog.isFunction=function(a){return"function"==goog.typeOf(a)};goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.removeUid=function(a){"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};
|
|
goog.UID_PROPERTY_="closure_uid_"+Math.floor(2147483648*Math.random()).toString(36);goog.uidCounter_=0;goog.getHashCode=goog.getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
|
|
goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){goog.bind=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bindNative_:goog.bindJs_;return goog.bind.apply(null,arguments)};
|
|
goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=Array.prototype.slice.call(arguments);b.unshift.apply(b,c);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=Date.now||function(){return+new Date};
|
|
goog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else if(goog.global.eval)if(null==goog.evalWorksForGlobals_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement("script");c.type="text/javascript";c.defer=!1;c.appendChild(b.createTextNode(a));b.body.appendChild(c);
|
|
b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){for(var a=a.split("-"),b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join("-")},d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(a){return a};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};
|
|
!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);goog.getMsg=function(a,b){var c=b||{},d;for(d in c)var e=(""+c[d]).replace(/\$/g,"$$$$"),a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e);return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a};
|
|
goog.base=function(a,b,c){var d=arguments.callee.caller;if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name");};
|
|
goog.scope=function(a){a.call(goog.global)};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};
|
|
goog.string.subs=function(a,b){for(var c=1;c<arguments.length;c++)var d=String(arguments[c]).replace(/\$/g,"$$$$"),a=a.replace(/\%s/,d);return a};goog.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};goog.string.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))};goog.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};
|
|
goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return" "==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};
|
|
goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};
|
|
goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g;
|
|
goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};
|
|
goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")};
|
|
goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&").replace(goog.string.ltRe_,"<").replace(goog.string.gtRe_,">").replace(goog.string.quotRe_,""");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"<"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,">"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"""));return a};
|
|
goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};
|
|
goog.string.unescapeEntitiesUsingDom_=function(a){var b={"&":"&","<":"<",">":">",""":'"'},c=document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,e){var f=b[a];if(f)return f;if("#"==e.charAt(0)){var g=Number("0"+e.substr(1));isNaN(g)||(f=String.fromCharCode(g))}f||(c.innerHTML=a+" ",f=c.firstChild.nodeValue.slice(0,-1));return b[a]=f})};
|
|
goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if("#"==c.charAt(0)){var d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}return a}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g,"  "),b)};
|
|
goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};
|
|
goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d,a=a.substring(0,b-d)+"..."+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+"..."+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"};
|
|
goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();for(var b=['"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join("")};
|
|
goog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b};
|
|
goog.string.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&(b<a.length&&0<c)&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")};
|
|
goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(c)?a.toFixed(c):String(a);c=a.indexOf(".");-1==c&&(c=a.length);return goog.string.repeat("0",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?"":String(a)};goog.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};
|
|
goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)};
|
|
goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.trim(String(b)).split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||"",i=e[g]||"",l=RegExp("(\\d*)(\\D*)","g"),j=RegExp("(\\d*)(\\D*)","g");do{var k=l.exec(h)||["","",""],m=j.exec(i)||["","",""];if(0==k[0].length&&0==m[0].length)break;var c=0==k[1].length?0:parseInt(k[1],10),n=0==m[1].length?0:parseInt(m[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==
|
|
k[2].length,0==m[2].length)||goog.string.compareElements_(k[2],m[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
|
|
goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmpty(a)?NaN:b};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};goog.string.toTitleCase=function(a,b){var c=goog.isString(b)?goog.string.regExpEscape(b):"\\s";return a.replace(RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(a,b,c){return b+c.toUpperCase()})};
|
|
goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift();this.messagePattern=a};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);};
|
|
goog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_("",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};
|
|
goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(a)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isString(a)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
|
|
goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
|
|
goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(a)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
|
|
goog.asserts.assertInstanceof=function(a,b,c,d){goog.asserts.ENABLE_ASSERTS&&!(a instanceof b)&&goog.asserts.doAssertFailure_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=!0;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype;
|
|
goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(goog.isString(a))return!goog.isString(b)||1!=b.length?-1:a.indexOf(b,c);for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};
|
|
goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,null==c?a.length-1:c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return!goog.isString(b)||1!=b.length?-1:a.lastIndexOf(b,c);for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
|
|
goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)};
|
|
goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var i=g[h];b.call(c,i,h,a)&&(e[f++]=i)}return e};
|
|
goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};goog.array.reduce=function(a,b,c,d){if(a.reduce)return d?a.reduce(goog.bind(b,d),c):a.reduce(b,c);var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
|
|
goog.array.reduceRight=function(a,b,c,d){if(a.reduceRight)return d?a.reduceRight(goog.bind(b,d),c):a.reduceRight(b,c);var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
|
|
goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};
|
|
goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};
|
|
goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};
|
|
goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};
|
|
goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){var c=goog.array.indexOf(a,b),d;(d=0<=c)&&goog.array.removeAt(a,c);return d};goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};
|
|
goog.array.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;
|
|
goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&d.hasOwnProperty("callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.splice.apply(a,goog.array.slice(arguments,1))};
|
|
goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b){for(var c=b||a,d={},e=0,f=0;f<a.length;){var g=a[f++],h=goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g;Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,c[e++]=g)}c.length=e};
|
|
goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};goog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var i=f+g>>1,l;l=c?b.call(e,a[i],i,a):b(d,a[i]);0<l?f=i+1:(g=i,h=!l)}return h?f:~f};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)};
|
|
goog.array.stableSort=function(a,b){for(var c=0;c<a.length;c++)a[c]={index:c,value:a[c]};var d=b||goog.array.defaultCompare;goog.array.sort(a,function(a,b){return d(a.value,b.value)||a.index-b.index});for(c=0;c<a.length;c++)a[c]=a[c].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})};
|
|
goog.array.isSorted=function(a,b,c){for(var b=b||goog.array.defaultCompare,d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;for(var d=a.length,c=c||goog.array.defaultCompareEquality,e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare=function(a,b,c){return goog.array.equals(a,b,c)};
|
|
goog.array.compare3=function(a,b,c){for(var c=c||goog.array.defaultCompare,d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};
|
|
goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};goog.array.bucket=function(a,b){for(var c={},d=0;d<a.length;d++){var e=a[d],f=b(e,d,a);goog.isDef(f)&&(c[f]||(c[f]=[])).push(e)}return c};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};
|
|
goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b};goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.ARRAY_PROTOTYPE_.push.apply(a,a.splice(0,-b)));return a};
|
|
goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};goog.array.shuffle=function(a,b){for(var c=b||Math.random,d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};goog.object={};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};goog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};
|
|
goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};goog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};
|
|
goog.object.getValueByKeys=function(a,b){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&!(a=a[d[c]],!goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};goog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};
|
|
goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(b in a)throw Error('The object already contains the key "'+b+'"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return b in a?a[b]:c};goog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};
|
|
goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};goog.object.unsafeClone=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
|
|
goog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};
|
|
goog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};
|
|
goog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};goog.structs={};goog.structs.getCount=function(a){return"function"==typeof a.getCount?a.getCount():goog.isArrayLike(a)||goog.isString(a)?a.length:goog.object.getCount(a)};goog.structs.getValues=function(a){if("function"==typeof a.getValues)return a.getValues();if(goog.isString(a))return a.split("");if(goog.isArrayLike(a)){for(var b=[],c=a.length,d=0;d<c;d++)b.push(a[d]);return b}return goog.object.getValues(a)};
|
|
goog.structs.getKeys=function(a){if("function"==typeof a.getKeys)return a.getKeys();if("function"!=typeof a.getValues){if(goog.isArrayLike(a)||goog.isString(a)){for(var b=[],a=a.length,c=0;c<a;c++)b.push(c);return b}return goog.object.getKeys(a)}};goog.structs.contains=function(a,b){return"function"==typeof a.contains?a.contains(b):"function"==typeof a.containsValue?a.containsValue(b):goog.isArrayLike(a)||goog.isString(a)?goog.array.contains(a,b):goog.object.containsValue(a,b)};
|
|
goog.structs.isEmpty=function(a){return"function"==typeof a.isEmpty?a.isEmpty():goog.isArrayLike(a)||goog.isString(a)?goog.array.isEmpty(a):goog.object.isEmpty(a)};goog.structs.clear=function(a){"function"==typeof a.clear?a.clear():goog.isArrayLike(a)?goog.array.clear(a):goog.object.clear(a)};
|
|
goog.structs.forEach=function(a,b,c){if("function"==typeof a.forEach)a.forEach(b,c);else if(goog.isArrayLike(a)||goog.isString(a))goog.array.forEach(a,b,c);else for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)b.call(c,e[g],d&&d[g],a)};
|
|
goog.structs.filter=function(a,b,c){if("function"==typeof a.filter)return a.filter(b,c);if(goog.isArrayLike(a)||goog.isString(a))return goog.array.filter(a,b,c);var d,e=goog.structs.getKeys(a),f=goog.structs.getValues(a),g=f.length;if(e){d={};for(var h=0;h<g;h++)b.call(c,f[h],e[h],a)&&(d[e[h]]=f[h])}else{d=[];for(h=0;h<g;h++)b.call(c,f[h],void 0,a)&&d.push(f[h])}return d};
|
|
goog.structs.map=function(a,b,c){if("function"==typeof a.map)return a.map(b,c);if(goog.isArrayLike(a)||goog.isString(a))return goog.array.map(a,b,c);var d,e=goog.structs.getKeys(a),f=goog.structs.getValues(a),g=f.length;if(e){d={};for(var h=0;h<g;h++)d[e[h]]=b.call(c,f[h],e[h],a)}else{d=[];for(h=0;h<g;h++)d[h]=b.call(c,f[h],void 0,a)}return d};
|
|
goog.structs.some=function(a,b,c){if("function"==typeof a.some)return a.some(b,c);if(goog.isArrayLike(a)||goog.isString(a))return goog.array.some(a,b,c);for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)if(b.call(c,e[g],d&&d[g],a))return!0;return!1};
|
|
goog.structs.every=function(a,b,c){if("function"==typeof a.every)return a.every(b,c);if(goog.isArrayLike(a)||goog.isString(a))return goog.array.every(a,b,c);for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)if(!b.call(c,e[g],d&&d[g],a))return!1;return!0};goog.structs.Collection=function(){};goog.iter={};goog.iter.StopIteration="StopIteration"in goog.global?goog.global.StopIteration:Error("StopIteration");goog.iter.Iterator=function(){};goog.iter.Iterator.prototype.next=function(){throw goog.iter.StopIteration;};goog.iter.Iterator.prototype.__iterator__=function(){return this};
|
|
goog.iter.toIterator=function(a){if(a instanceof goog.iter.Iterator)return a;if("function"==typeof a.__iterator__)return a.__iterator__(!1);if(goog.isArrayLike(a)){var b=0,c=new goog.iter.Iterator;c.next=function(){for(;;){if(b>=a.length)throw goog.iter.StopIteration;if(b in a)return a[b++];b++}};return c}throw Error("Not implemented");};
|
|
goog.iter.forEach=function(a,b,c){if(goog.isArrayLike(a))try{goog.array.forEach(a,b,c)}catch(d){if(d!==goog.iter.StopIteration)throw d;}else{a=goog.iter.toIterator(a);try{for(;;)b.call(c,a.next(),void 0,a)}catch(e){if(e!==goog.iter.StopIteration)throw e;}}};goog.iter.filter=function(a,b,c){var d=goog.iter.toIterator(a),a=new goog.iter.Iterator;a.next=function(){for(;;){var a=d.next();if(b.call(c,a,void 0,d))return a}};return a};
|
|
goog.iter.range=function(a,b,c){var d=0,e=a,f=c||1;1<arguments.length&&(d=a,e=b);if(0==f)throw Error("Range step argument must not be zero");var g=new goog.iter.Iterator;g.next=function(){if(0<f&&d>=e||0>f&&d<=e)throw goog.iter.StopIteration;var a=d;d+=f;return a};return g};goog.iter.join=function(a,b){return goog.iter.toArray(a).join(b)};goog.iter.map=function(a,b,c){var d=goog.iter.toIterator(a),a=new goog.iter.Iterator;a.next=function(){for(;;){var a=d.next();return b.call(c,a,void 0,d)}};return a};
|
|
goog.iter.reduce=function(a,b,c,d){var e=c;goog.iter.forEach(a,function(a){e=b.call(d,e,a)});return e};goog.iter.some=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(b.call(c,a.next(),void 0,a))return!0}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!1};goog.iter.every=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(!b.call(c,a.next(),void 0,a))return!1}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!0};
|
|
goog.iter.chain=function(a){var b=arguments,c=b.length,d=0,e=new goog.iter.Iterator;e.next=function(){try{if(d>=c)throw goog.iter.StopIteration;return goog.iter.toIterator(b[d]).next()}catch(a){if(a!==goog.iter.StopIteration||d>=c)throw a;d++;return this.next()}};return e};goog.iter.dropWhile=function(a,b,c){var d=goog.iter.toIterator(a),a=new goog.iter.Iterator,e=!0;a.next=function(){for(;;){var a=d.next();if(!e||!b.call(c,a,void 0,d))return e=!1,a}};return a};
|
|
goog.iter.takeWhile=function(a,b,c){var d=goog.iter.toIterator(a),a=new goog.iter.Iterator,e=!0;a.next=function(){for(;;)if(e){var a=d.next();if(b.call(c,a,void 0,d))return a;e=!1}else throw goog.iter.StopIteration;};return a};goog.iter.toArray=function(a){if(goog.isArrayLike(a))return goog.array.toArray(a);var a=goog.iter.toIterator(a),b=[];goog.iter.forEach(a,function(a){b.push(a)});return b};
|
|
goog.iter.equals=function(a,b){var a=goog.iter.toIterator(a),b=goog.iter.toIterator(b),c,d;try{for(;;){c=d=!1;var e=a.next();c=!0;var f=b.next();d=!0;if(e!=f)break}}catch(g){if(g!==goog.iter.StopIteration)throw g;if(c&&!d)return!1;if(!d)try{b.next()}catch(h){if(h!==goog.iter.StopIteration)throw h;return!0}}return!1};goog.iter.nextOrValue=function(a,b){try{return goog.iter.toIterator(a).next()}catch(c){if(c!=goog.iter.StopIteration)throw c;return b}};
|
|
goog.iter.product=function(a){if(goog.array.some(arguments,function(a){return!a.length})||!arguments.length)return new goog.iter.Iterator;var b=new goog.iter.Iterator,c=arguments,d=goog.array.repeat(0,c.length);b.next=function(){if(d){for(var a=goog.array.map(d,function(a,b){return c[b][a]}),b=d.length-1;0<=b;b--){goog.asserts.assert(d);if(d[b]<c[b].length-1){d[b]++;break}if(0==b){d=null;break}d[b]=0}return a}throw goog.iter.StopIteration;};return b};
|
|
goog.iter.cycle=function(a){var b=goog.iter.toIterator(a),c=[],d=0,a=new goog.iter.Iterator,e=!1;a.next=function(){var a=null;if(!e)try{return a=b.next(),c.push(a),a}catch(g){if(g!=goog.iter.StopIteration||goog.array.isEmpty(c))throw g;e=!0}a=c[d];d=(d+1)%c.length;return a};return a};goog.structs.Map=function(a,b){this.map_={};this.keys_=[];var c=arguments.length;if(1<c){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else a&&this.addAll(a)};goog.structs.Map.prototype.count_=0;goog.structs.Map.prototype.version_=0;goog.structs.Map.prototype.getCount=function(){return this.count_};
|
|
goog.structs.Map.prototype.getValues=function(){this.cleanupKeysArray_();for(var a=[],b=0;b<this.keys_.length;b++)a.push(this.map_[this.keys_[b]]);return a};goog.structs.Map.prototype.getKeys=function(){this.cleanupKeysArray_();return this.keys_.concat()};goog.structs.Map.prototype.containsKey=function(a){return goog.structs.Map.hasKey_(this.map_,a)};
|
|
goog.structs.Map.prototype.containsValue=function(a){for(var b=0;b<this.keys_.length;b++){var c=this.keys_[b];if(goog.structs.Map.hasKey_(this.map_,c)&&this.map_[c]==a)return!0}return!1};goog.structs.Map.prototype.equals=function(a,b){if(this===a)return!0;if(this.count_!=a.getCount())return!1;var c=b||goog.structs.Map.defaultEquals;this.cleanupKeysArray_();for(var d,e=0;d=this.keys_[e];e++)if(!c(this.get(d),a.get(d)))return!1;return!0};goog.structs.Map.defaultEquals=function(a,b){return a===b};
|
|
goog.structs.Map.prototype.isEmpty=function(){return 0==this.count_};goog.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};goog.structs.Map.prototype.remove=function(a){return goog.structs.Map.hasKey_(this.map_,a)?(delete this.map_[a],this.count_--,this.version_++,this.keys_.length>2*this.count_&&this.cleanupKeysArray_(),!0):!1};
|
|
goog.structs.Map.prototype.cleanupKeysArray_=function(){if(this.count_!=this.keys_.length){for(var a=0,b=0;a<this.keys_.length;){var c=this.keys_[a];goog.structs.Map.hasKey_(this.map_,c)&&(this.keys_[b++]=c);a++}this.keys_.length=b}if(this.count_!=this.keys_.length){for(var d={},b=a=0;a<this.keys_.length;)c=this.keys_[a],goog.structs.Map.hasKey_(d,c)||(this.keys_[b++]=c,d[c]=1),a++;this.keys_.length=b}};
|
|
goog.structs.Map.prototype.get=function(a,b){return goog.structs.Map.hasKey_(this.map_,a)?this.map_[a]:b};goog.structs.Map.prototype.set=function(a,b){goog.structs.Map.hasKey_(this.map_,a)||(this.count_++,this.keys_.push(a),this.version_++);this.map_[a]=b};goog.structs.Map.prototype.addAll=function(a){var b;a instanceof goog.structs.Map?(b=a.getKeys(),a=a.getValues()):(b=goog.object.getKeys(a),a=goog.object.getValues(a));for(var c=0;c<b.length;c++)this.set(b[c],a[c])};
|
|
goog.structs.Map.prototype.clone=function(){return new goog.structs.Map(this)};goog.structs.Map.prototype.transpose=function(){for(var a=new goog.structs.Map,b=0;b<this.keys_.length;b++){var c=this.keys_[b];a.set(this.map_[c],c)}return a};goog.structs.Map.prototype.toObject=function(){this.cleanupKeysArray_();for(var a={},b=0;b<this.keys_.length;b++){var c=this.keys_[b];a[c]=this.map_[c]}return a};goog.structs.Map.prototype.getKeyIterator=function(){return this.__iterator__(!0)};
|
|
goog.structs.Map.prototype.getValueIterator=function(){return this.__iterator__(!1)};goog.structs.Map.prototype.__iterator__=function(a){this.cleanupKeysArray_();var b=0,c=this.keys_,d=this.map_,e=this.version_,f=this,g=new goog.iter.Iterator;g.next=function(){for(;;){if(e!=f.version_)throw Error("The map has changed since the iterator was created");if(b>=c.length)throw goog.iter.StopIteration;var g=c[b++];return a?g:d[g]}};return g};
|
|
goog.structs.Map.hasKey_=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};goog.structs.Set=function(a){this.map_=new goog.structs.Map;a&&this.addAll(a)};goog.structs.Set.getKey_=function(a){var b=typeof a;return"object"==b&&a||"function"==b?"o"+goog.getUid(a):b.substr(0,1)+a};goog.structs.Set.prototype.getCount=function(){return this.map_.getCount()};goog.structs.Set.prototype.add=function(a){this.map_.set(goog.structs.Set.getKey_(a),a)};goog.structs.Set.prototype.addAll=function(a){for(var a=goog.structs.getValues(a),b=a.length,c=0;c<b;c++)this.add(a[c])};
|
|
goog.structs.Set.prototype.removeAll=function(a){for(var a=goog.structs.getValues(a),b=a.length,c=0;c<b;c++)this.remove(a[c])};goog.structs.Set.prototype.remove=function(a){return this.map_.remove(goog.structs.Set.getKey_(a))};goog.structs.Set.prototype.clear=function(){this.map_.clear()};goog.structs.Set.prototype.isEmpty=function(){return this.map_.isEmpty()};goog.structs.Set.prototype.contains=function(a){return this.map_.containsKey(goog.structs.Set.getKey_(a))};
|
|
goog.structs.Set.prototype.containsAll=function(a){return goog.structs.every(a,this.contains,this)};goog.structs.Set.prototype.intersection=function(a){for(var b=new goog.structs.Set,a=goog.structs.getValues(a),c=0;c<a.length;c++){var d=a[c];this.contains(d)&&b.add(d)}return b};goog.structs.Set.prototype.difference=function(a){var b=this.clone();b.removeAll(a);return b};goog.structs.Set.prototype.getValues=function(){return this.map_.getValues()};goog.structs.Set.prototype.clone=function(){return new goog.structs.Set(this)};
|
|
goog.structs.Set.prototype.equals=function(a){return this.getCount()==goog.structs.getCount(a)&&this.isSubsetOf(a)};goog.structs.Set.prototype.isSubsetOf=function(a){var b=goog.structs.getCount(a);if(this.getCount()>b)return!1;!(a instanceof goog.structs.Set)&&5<b&&(a=new goog.structs.Set(a));return goog.structs.every(this,function(b){return goog.structs.contains(a,b)})};goog.structs.Set.prototype.__iterator__=function(){return this.map_.__iterator__(!1)};goog.userAgent={};goog.userAgent.ASSUME_IE=!1;goog.userAgent.ASSUME_GECKO=!1;goog.userAgent.ASSUME_WEBKIT=!1;goog.userAgent.ASSUME_MOBILE_WEBKIT=!1;goog.userAgent.ASSUME_OPERA=!1;goog.userAgent.ASSUME_ANY_VERSION=!1;goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA;
|
|
goog.userAgent.getUserAgentString=function(){return goog.global.navigator?goog.global.navigator.userAgent:null};goog.userAgent.getNavigator=function(){return goog.global.navigator};
|
|
goog.userAgent.init_=function(){goog.userAgent.detectedOpera_=!1;goog.userAgent.detectedIe_=!1;goog.userAgent.detectedWebkit_=!1;goog.userAgent.detectedMobile_=!1;goog.userAgent.detectedGecko_=!1;var a;if(!goog.userAgent.BROWSER_KNOWN_&&(a=goog.userAgent.getUserAgentString())){var b=goog.userAgent.getNavigator();goog.userAgent.detectedOpera_=0==a.indexOf("Opera");goog.userAgent.detectedIe_=!goog.userAgent.detectedOpera_&&-1!=a.indexOf("MSIE");goog.userAgent.detectedWebkit_=!goog.userAgent.detectedOpera_&&
|
|
-1!=a.indexOf("WebKit");goog.userAgent.detectedMobile_=goog.userAgent.detectedWebkit_&&-1!=a.indexOf("Mobile");goog.userAgent.detectedGecko_=!goog.userAgent.detectedOpera_&&!goog.userAgent.detectedWebkit_&&"Gecko"==b.product}};goog.userAgent.BROWSER_KNOWN_||goog.userAgent.init_();goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.userAgent.detectedOpera_;goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.userAgent.detectedIe_;
|
|
goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.userAgent.detectedGecko_;goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.userAgent.detectedWebkit_;goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.detectedMobile_;goog.userAgent.SAFARI=goog.userAgent.WEBKIT;goog.userAgent.determinePlatform_=function(){var a=goog.userAgent.getNavigator();return a&&a.platform||""};
|
|
goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_();goog.userAgent.ASSUME_MAC=!1;goog.userAgent.ASSUME_WINDOWS=!1;goog.userAgent.ASSUME_LINUX=!1;goog.userAgent.ASSUME_X11=!1;goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11;
|
|
goog.userAgent.initPlatform_=function(){goog.userAgent.detectedMac_=goog.string.contains(goog.userAgent.PLATFORM,"Mac");goog.userAgent.detectedWindows_=goog.string.contains(goog.userAgent.PLATFORM,"Win");goog.userAgent.detectedLinux_=goog.string.contains(goog.userAgent.PLATFORM,"Linux");goog.userAgent.detectedX11_=!!goog.userAgent.getNavigator()&&goog.string.contains(goog.userAgent.getNavigator().appVersion||"","X11")};goog.userAgent.PLATFORM_KNOWN_||goog.userAgent.initPlatform_();
|
|
goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.userAgent.detectedMac_;goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.userAgent.detectedWindows_;goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.detectedLinux_;goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.detectedX11_;
|
|
goog.userAgent.determineVersion_=function(){var a="",b;goog.userAgent.OPERA&&goog.global.opera?(a=goog.global.opera.version,a="function"==typeof a?a():a):(goog.userAgent.GECKO?b=/rv\:([^\);]+)(\)|;)/:goog.userAgent.IE?b=/MSIE\s+([^\);]+)(\)|;)/:goog.userAgent.WEBKIT&&(b=/WebKit\/(\S+)/),b&&(a=(a=b.exec(goog.userAgent.getUserAgentString()))?a[1]:""));return goog.userAgent.IE&&(b=goog.userAgent.getDocumentMode_(),b>parseFloat(a))?String(b):a};
|
|
goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionCache_={};goog.userAgent.isVersion=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.userAgent.isVersionCache_[a]||(goog.userAgent.isVersionCache_[a]=0<=goog.string.compareVersions(goog.userAgent.VERSION,a))};
|
|
goog.userAgent.isDocumentModeCache_={};goog.userAgent.isDocumentMode=function(a){return goog.userAgent.isDocumentModeCache_[a]||(goog.userAgent.isDocumentModeCache_[a]=goog.userAgent.IE&&!!document.documentMode&&document.documentMode>=a)};goog.debug.catchErrors=function(a,b,c){var c=c||goog.global,d=c.onerror,e=!!b;goog.userAgent.WEBKIT&&!goog.userAgent.isVersion("535.3")&&(e=!e);c.onerror=function(b,c,h){d&&d(b,c,h);a({message:b,fileName:c,line:h});return e}};goog.debug.expose=function(a,b){if("undefined"==typeof a)return"undefined";if(null==a)return"NULL";var c=[],d;for(d in a)if(b||!goog.isFunction(a[d])){var e=d+" = ";try{e+=a[d]}catch(f){e+="*** "+f+" ***"}c.push(e)}return c.join("\n")};
|
|
goog.debug.deepExpose=function(a,b){var c=new goog.structs.Set,d=[],e=function(a,g){var h=g+" ";try{if(goog.isDef(a))if(goog.isNull(a))d.push("NULL");else if(goog.isString(a))d.push('"'+a.replace(/\n/g,"\n"+g)+'"');else if(goog.isFunction(a))d.push(String(a).replace(/\n/g,"\n"+g));else if(goog.isObject(a))if(c.contains(a))d.push("*** reference loop detected ***");else{c.add(a);d.push("{");for(var i in a)if(b||!goog.isFunction(a[i]))d.push("\n"),d.push(h),d.push(i+" = "),e(a[i],h);d.push("\n"+g+"}")}else d.push(a);
|
|
else d.push("undefined")}catch(l){d.push("*** "+l+" ***")}};e(a,"");return d.join("")};goog.debug.exposeArray=function(a){for(var b=[],c=0;c<a.length;c++)goog.isArray(a[c])?b.push(goog.debug.exposeArray(a[c])):b.push(a[c]);return"[ "+b.join(", ")+" ]"};
|
|
goog.debug.exposeException=function(a,b){try{var c=goog.debug.normalizeErrorObject(a);return"Message: "+goog.string.htmlEscape(c.message)+'\nUrl: <a href="view-source:'+c.fileName+'" target="_new">'+c.fileName+"</a>\nLine: "+c.lineNumber+"\n\nBrowser stack:\n"+goog.string.htmlEscape(c.stack+"-> ")+"[end]\n\nJS stack traversal:\n"+goog.string.htmlEscape(goog.debug.getStacktrace(b)+"-> ")}catch(d){return"Exception trying to expose exception! You win, we lose. "+d}};
|
|
goog.debug.normalizeErrorObject=function(a){var b=goog.getObjectByName("window.location.href");if(goog.isString(a))return{message:a,name:"Unknown error",lineNumber:"Not available",fileName:b,stack:"Not available"};var c,d,e=!1;try{c=a.lineNumber||a.line||"Not available"}catch(f){c="Not available",e=!0}try{d=a.fileName||a.filename||a.sourceURL||b}catch(g){d="Not available",e=!0}return e||!a.lineNumber||!a.fileName||!a.stack?{message:a.message,name:a.name,lineNumber:c,fileName:d,stack:a.stack||"Not available"}:
|
|
a};goog.debug.enhanceError=function(a,b){var c="string"==typeof a?Error(a):a;c.stack||(c.stack=goog.debug.getStacktrace(arguments.callee.caller));if(b){for(var d=0;c["message"+d];)++d;c["message"+d]=String(b)}return c};
|
|
goog.debug.getStacktraceSimple=function(a){for(var b=[],c=arguments.callee.caller,d=0;c&&(!a||d<a);){b.push(goog.debug.getFunctionName(c));b.push("()\n");try{c=c.caller}catch(e){b.push("[exception trying to get caller]\n");break}d++;if(d>=goog.debug.MAX_STACK_DEPTH){b.push("[...long stack...]");break}}a&&d>=a?b.push("[...reached max depth limit...]"):b.push("[end]");return b.join("")};goog.debug.MAX_STACK_DEPTH=50;
|
|
goog.debug.getStacktrace=function(a){return goog.debug.getStacktraceHelper_(a||arguments.callee.caller,[])};
|
|
goog.debug.getStacktraceHelper_=function(a,b){var c=[];if(goog.array.contains(b,a))c.push("[...circular reference...]");else if(a&&b.length<goog.debug.MAX_STACK_DEPTH){c.push(goog.debug.getFunctionName(a)+"(");for(var d=a.arguments,e=0;e<d.length;e++){0<e&&c.push(", ");var f;f=d[e];switch(typeof f){case "object":f=f?"object":"null";break;case "string":break;case "number":f=String(f);break;case "boolean":f=f?"true":"false";break;case "function":f=(f=goog.debug.getFunctionName(f))?f:"[fn]";break;default:f=
|
|
typeof f}40<f.length&&(f=f.substr(0,40)+"...");c.push(f)}b.push(a);c.push(")\n");try{c.push(goog.debug.getStacktraceHelper_(a.caller,b))}catch(g){c.push("[exception trying to get caller]\n")}}else a?c.push("[...long stack...]"):c.push("[end]");return c.join("")};goog.debug.setFunctionResolver=function(a){goog.debug.fnNameResolver_=a};
|
|
goog.debug.getFunctionName=function(a){if(goog.debug.fnNameCache_[a])return goog.debug.fnNameCache_[a];if(goog.debug.fnNameResolver_){var b=goog.debug.fnNameResolver_(a);if(b)return goog.debug.fnNameCache_[a]=b}a=String(a);goog.debug.fnNameCache_[a]||(b=/function ([^\(]+)/.exec(a),goog.debug.fnNameCache_[a]=b?b[1]:"[Anonymous]");return goog.debug.fnNameCache_[a]};
|
|
goog.debug.makeWhitespaceVisible=function(a){return a.replace(/ /g,"[_]").replace(/\f/g,"[f]").replace(/\n/g,"[n]\n").replace(/\r/g,"[r]").replace(/\t/g,"[t]")};goog.debug.fnNameCache_={};goog.debug.LogRecord=function(a,b,c,d,e){this.reset(a,b,c,d,e)};goog.debug.LogRecord.prototype.sequenceNumber_=0;goog.debug.LogRecord.prototype.exception_=null;goog.debug.LogRecord.prototype.exceptionText_=null;goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0;goog.debug.LogRecord.nextSequenceNumber_=0;
|
|
goog.debug.LogRecord.prototype.reset=function(a,b,c,d,e){goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&(this.sequenceNumber_="number"==typeof e?e:goog.debug.LogRecord.nextSequenceNumber_++);this.time_=d||goog.now();this.level_=a;this.msg_=b;this.loggerName_=c;delete this.exception_;delete this.exceptionText_};goog.debug.LogRecord.prototype.getLoggerName=function(){return this.loggerName_};goog.debug.LogRecord.prototype.getException=function(){return this.exception_};
|
|
goog.debug.LogRecord.prototype.setException=function(a){this.exception_=a};goog.debug.LogRecord.prototype.getExceptionText=function(){return this.exceptionText_};goog.debug.LogRecord.prototype.setExceptionText=function(a){this.exceptionText_=a};goog.debug.LogRecord.prototype.setLoggerName=function(a){this.loggerName_=a};goog.debug.LogRecord.prototype.getLevel=function(){return this.level_};goog.debug.LogRecord.prototype.setLevel=function(a){this.level_=a};
|
|
goog.debug.LogRecord.prototype.getMessage=function(){return this.msg_};goog.debug.LogRecord.prototype.setMessage=function(a){this.msg_=a};goog.debug.LogRecord.prototype.getMillis=function(){return this.time_};goog.debug.LogRecord.prototype.setMillis=function(a){this.time_=a};goog.debug.LogRecord.prototype.getSequenceNumber=function(){return this.sequenceNumber_};goog.debug.LogBuffer=function(){goog.asserts.assert(goog.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY.");this.clear()};goog.debug.LogBuffer.getInstance=function(){goog.debug.LogBuffer.instance_||(goog.debug.LogBuffer.instance_=new goog.debug.LogBuffer);return goog.debug.LogBuffer.instance_};goog.debug.LogBuffer.CAPACITY=0;
|
|
goog.debug.LogBuffer.prototype.addRecord=function(a,b,c){var d=(this.curIndex_+1)%goog.debug.LogBuffer.CAPACITY;this.curIndex_=d;if(this.isFull_)return d=this.buffer_[d],d.reset(a,b,c),d;this.isFull_=d==goog.debug.LogBuffer.CAPACITY-1;return this.buffer_[d]=new goog.debug.LogRecord(a,b,c)};goog.debug.LogBuffer.isBufferingEnabled=function(){return 0<goog.debug.LogBuffer.CAPACITY};
|
|
goog.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(goog.debug.LogBuffer.CAPACITY);this.curIndex_=-1;this.isFull_=!1};goog.debug.LogBuffer.prototype.forEachRecord=function(a){var b=this.buffer_;if(b[0]){var c=this.curIndex_,d=this.isFull_?c:-1;do d=(d+1)%goog.debug.LogBuffer.CAPACITY,a(b[d]);while(d!=c)}};goog.debug.Logger=function(a){this.name_=a};goog.debug.Logger.prototype.parent_=null;goog.debug.Logger.prototype.level_=null;goog.debug.Logger.prototype.children_=null;goog.debug.Logger.prototype.handlers_=null;goog.debug.Logger.ENABLE_HIERARCHY=!0;goog.debug.Logger.ENABLE_HIERARCHY||(goog.debug.Logger.rootHandlers_=[]);goog.debug.Logger.Level=function(a,b){this.name=a;this.value=b};goog.debug.Logger.Level.prototype.toString=function(){return this.name};
|
|
goog.debug.Logger.Level.OFF=new goog.debug.Logger.Level("OFF",Infinity);goog.debug.Logger.Level.SHOUT=new goog.debug.Logger.Level("SHOUT",1200);goog.debug.Logger.Level.SEVERE=new goog.debug.Logger.Level("SEVERE",1E3);goog.debug.Logger.Level.WARNING=new goog.debug.Logger.Level("WARNING",900);goog.debug.Logger.Level.INFO=new goog.debug.Logger.Level("INFO",800);goog.debug.Logger.Level.CONFIG=new goog.debug.Logger.Level("CONFIG",700);goog.debug.Logger.Level.FINE=new goog.debug.Logger.Level("FINE",500);
|
|
goog.debug.Logger.Level.FINER=new goog.debug.Logger.Level("FINER",400);goog.debug.Logger.Level.FINEST=new goog.debug.Logger.Level("FINEST",300);goog.debug.Logger.Level.ALL=new goog.debug.Logger.Level("ALL",0);
|
|
goog.debug.Logger.Level.PREDEFINED_LEVELS=[goog.debug.Logger.Level.OFF,goog.debug.Logger.Level.SHOUT,goog.debug.Logger.Level.SEVERE,goog.debug.Logger.Level.WARNING,goog.debug.Logger.Level.INFO,goog.debug.Logger.Level.CONFIG,goog.debug.Logger.Level.FINE,goog.debug.Logger.Level.FINER,goog.debug.Logger.Level.FINEST,goog.debug.Logger.Level.ALL];goog.debug.Logger.Level.predefinedLevelsCache_=null;
|
|
goog.debug.Logger.Level.createPredefinedLevelsCache_=function(){goog.debug.Logger.Level.predefinedLevelsCache_={};for(var a=0,b;b=goog.debug.Logger.Level.PREDEFINED_LEVELS[a];a++)goog.debug.Logger.Level.predefinedLevelsCache_[b.value]=b,goog.debug.Logger.Level.predefinedLevelsCache_[b.name]=b};
|
|
goog.debug.Logger.Level.getPredefinedLevel=function(a){goog.debug.Logger.Level.predefinedLevelsCache_||goog.debug.Logger.Level.createPredefinedLevelsCache_();return goog.debug.Logger.Level.predefinedLevelsCache_[a]||null};
|
|
goog.debug.Logger.Level.getPredefinedLevelByValue=function(a){goog.debug.Logger.Level.predefinedLevelsCache_||goog.debug.Logger.Level.createPredefinedLevelsCache_();if(a in goog.debug.Logger.Level.predefinedLevelsCache_)return goog.debug.Logger.Level.predefinedLevelsCache_[a];for(var b=0;b<goog.debug.Logger.Level.PREDEFINED_LEVELS.length;++b){var c=goog.debug.Logger.Level.PREDEFINED_LEVELS[b];if(c.value<=a)return c}return null};goog.debug.Logger.getLogger=function(a){return goog.debug.LogManager.getLogger(a)};
|
|
goog.debug.Logger.logToProfilers=function(a){goog.global.console&&(goog.global.console.timeStamp?goog.global.console.timeStamp(a):goog.global.console.markTimeline&&goog.global.console.markTimeline(a));goog.global.msWriteProfilerMark&&goog.global.msWriteProfilerMark(a)};goog.debug.Logger.prototype.getName=function(){return this.name_};
|
|
goog.debug.Logger.prototype.addHandler=function(a){goog.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(a)):(goog.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),goog.debug.Logger.rootHandlers_.push(a))};goog.debug.Logger.prototype.removeHandler=function(a){var b=goog.debug.Logger.ENABLE_HIERARCHY?this.handlers_:goog.debug.Logger.rootHandlers_;return!!b&&goog.array.remove(b,a)};
|
|
goog.debug.Logger.prototype.getParent=function(){return this.parent_};goog.debug.Logger.prototype.getChildren=function(){this.children_||(this.children_={});return this.children_};goog.debug.Logger.prototype.setLevel=function(a){goog.debug.Logger.ENABLE_HIERARCHY?this.level_=a:(goog.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),goog.debug.Logger.rootLevel_=a)};goog.debug.Logger.prototype.getLevel=function(){return this.level_};
|
|
goog.debug.Logger.prototype.getEffectiveLevel=function(){if(!goog.debug.Logger.ENABLE_HIERARCHY)return goog.debug.Logger.rootLevel_;if(this.level_)return this.level_;if(this.parent_)return this.parent_.getEffectiveLevel();goog.asserts.fail("Root logger has no level set.");return null};goog.debug.Logger.prototype.isLoggable=function(a){return a.value>=this.getEffectiveLevel().value};goog.debug.Logger.prototype.log=function(a,b,c){this.isLoggable(a)&&this.doLogRecord_(this.getLogRecord(a,b,c))};
|
|
goog.debug.Logger.prototype.getLogRecord=function(a,b,c){var d=goog.debug.LogBuffer.isBufferingEnabled()?goog.debug.LogBuffer.getInstance().addRecord(a,b,this.name_):new goog.debug.LogRecord(a,String(b),this.name_);c&&(d.setException(c),d.setExceptionText(goog.debug.exposeException(c,arguments.callee.caller)));return d};goog.debug.Logger.prototype.shout=function(a,b){this.log(goog.debug.Logger.Level.SHOUT,a,b)};
|
|
goog.debug.Logger.prototype.severe=function(a,b){this.log(goog.debug.Logger.Level.SEVERE,a,b)};goog.debug.Logger.prototype.warning=function(a,b){this.log(goog.debug.Logger.Level.WARNING,a,b)};goog.debug.Logger.prototype.info=function(a,b){this.log(goog.debug.Logger.Level.INFO,a,b)};goog.debug.Logger.prototype.config=function(a,b){this.log(goog.debug.Logger.Level.CONFIG,a,b)};goog.debug.Logger.prototype.fine=function(a,b){this.log(goog.debug.Logger.Level.FINE,a,b)};
|
|
goog.debug.Logger.prototype.finer=function(a,b){this.log(goog.debug.Logger.Level.FINER,a,b)};goog.debug.Logger.prototype.finest=function(a,b){this.log(goog.debug.Logger.Level.FINEST,a,b)};goog.debug.Logger.prototype.logRecord=function(a){this.isLoggable(a.getLevel())&&this.doLogRecord_(a)};
|
|
goog.debug.Logger.prototype.doLogRecord_=function(a){goog.debug.Logger.logToProfilers("log:"+a.getMessage());if(goog.debug.Logger.ENABLE_HIERARCHY)for(var b=this;b;)b.callPublish_(a),b=b.getParent();else for(var b=0,c;c=goog.debug.Logger.rootHandlers_[b++];)c(a)};goog.debug.Logger.prototype.callPublish_=function(a){if(this.handlers_)for(var b=0,c;c=this.handlers_[b];b++)c(a)};goog.debug.Logger.prototype.setParent_=function(a){this.parent_=a};
|
|
goog.debug.Logger.prototype.addChild_=function(a,b){this.getChildren()[a]=b};goog.debug.LogManager={};goog.debug.LogManager.loggers_={};goog.debug.LogManager.rootLogger_=null;goog.debug.LogManager.initialize=function(){goog.debug.LogManager.rootLogger_||(goog.debug.LogManager.rootLogger_=new goog.debug.Logger(""),goog.debug.LogManager.loggers_[""]=goog.debug.LogManager.rootLogger_,goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG))};goog.debug.LogManager.getLoggers=function(){return goog.debug.LogManager.loggers_};
|
|
goog.debug.LogManager.getRoot=function(){goog.debug.LogManager.initialize();return goog.debug.LogManager.rootLogger_};goog.debug.LogManager.getLogger=function(a){goog.debug.LogManager.initialize();return goog.debug.LogManager.loggers_[a]||goog.debug.LogManager.createLogger_(a)};goog.debug.LogManager.createFunctionForCatchErrors=function(a){return function(b){(a||goog.debug.LogManager.getRoot()).severe("Error: "+b.message+" ("+b.fileName+" @ Line: "+b.line+")")}};
|
|
goog.debug.LogManager.createLogger_=function(a){var b=new goog.debug.Logger(a);if(goog.debug.Logger.ENABLE_HIERARCHY){var c=a.lastIndexOf("."),d=a.substr(0,c),c=a.substr(c+1),d=goog.debug.LogManager.getLogger(d);d.addChild_(c,b);b.setParent_(d)}return goog.debug.LogManager.loggers_[a]=b};var ol={};if(goog.DEBUG){var logger=goog.debug.Logger.getLogger("ol");logger.setLevel(goog.debug.Logger.Level.FINEST)};goog.dom={};goog.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE||goog.userAgent.isDocumentMode(9),CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO&&!goog.userAgent.IE||goog.userAgent.IE&&goog.userAgent.isDocumentMode(9)||goog.userAgent.GECKO&&goog.userAgent.isVersion("1.9.1"),CAN_USE_INNER_TEXT:goog.userAgent.IE&&!goog.userAgent.isVersion("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE||goog.userAgent.OPERA||goog.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE};goog.dom.TagName={A:"A",ABBR:"ABBR",ACRONYM:"ACRONYM",ADDRESS:"ADDRESS",APPLET:"APPLET",AREA:"AREA",ARTICLE:"ARTICLE",ASIDE:"ASIDE",AUDIO:"AUDIO",B:"B",BASE:"BASE",BASEFONT:"BASEFONT",BDI:"BDI",BDO:"BDO",BIG:"BIG",BLOCKQUOTE:"BLOCKQUOTE",BODY:"BODY",BR:"BR",BUTTON:"BUTTON",CANVAS:"CANVAS",CAPTION:"CAPTION",CENTER:"CENTER",CITE:"CITE",CODE:"CODE",COL:"COL",COLGROUP:"COLGROUP",COMMAND:"COMMAND",DATA:"DATA",DATALIST:"DATALIST",DD:"DD",DEL:"DEL",DETAILS:"DETAILS",DFN:"DFN",DIALOG:"DIALOG",DIR:"DIR",DIV:"DIV",
|
|
DL:"DL",DT:"DT",EM:"EM",EMBED:"EMBED",FIELDSET:"FIELDSET",FIGCAPTION:"FIGCAPTION",FIGURE:"FIGURE",FONT:"FONT",FOOTER:"FOOTER",FORM:"FORM",FRAME:"FRAME",FRAMESET:"FRAMESET",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",HEAD:"HEAD",HEADER:"HEADER",HGROUP:"HGROUP",HR:"HR",HTML:"HTML",I:"I",IFRAME:"IFRAME",IMG:"IMG",INPUT:"INPUT",INS:"INS",ISINDEX:"ISINDEX",KBD:"KBD",KEYGEN:"KEYGEN",LABEL:"LABEL",LEGEND:"LEGEND",LI:"LI",LINK:"LINK",MAP:"MAP",MARK:"MARK",MATH:"MATH",MENU:"MENU",META:"META",METER:"METER",
|
|
NAV:"NAV",NOFRAMES:"NOFRAMES",NOSCRIPT:"NOSCRIPT",OBJECT:"OBJECT",OL:"OL",OPTGROUP:"OPTGROUP",OPTION:"OPTION",OUTPUT:"OUTPUT",P:"P",PARAM:"PARAM",PRE:"PRE",PROGRESS:"PROGRESS",Q:"Q",RP:"RP",RT:"RT",RUBY:"RUBY",S:"S",SAMP:"SAMP",SCRIPT:"SCRIPT",SECTION:"SECTION",SELECT:"SELECT",SMALL:"SMALL",SOURCE:"SOURCE",SPAN:"SPAN",STRIKE:"STRIKE",STRONG:"STRONG",STYLE:"STYLE",SUB:"SUB",SUMMARY:"SUMMARY",SUP:"SUP",SVG:"SVG",TABLE:"TABLE",TBODY:"TBODY",TD:"TD",TEXTAREA:"TEXTAREA",TFOOT:"TFOOT",TH:"TH",THEAD:"THEAD",
|
|
TIME:"TIME",TITLE:"TITLE",TR:"TR",TRACK:"TRACK",TT:"TT",U:"U",UL:"UL",VAR:"VAR",VIDEO:"VIDEO",WBR:"WBR"};goog.dom.classes={};goog.dom.classes.set=function(a,b){a.className=b};goog.dom.classes.get=function(a){a=a.className;return goog.isString(a)&&a.match(/\S+/g)||[]};goog.dom.classes.add=function(a,b){var c=goog.dom.classes.get(a),d=goog.array.slice(arguments,1),e=c.length+d.length;goog.dom.classes.add_(c,d);a.className=c.join(" ");return c.length==e};
|
|
goog.dom.classes.remove=function(a,b){var c=goog.dom.classes.get(a),d=goog.array.slice(arguments,1),e=goog.dom.classes.getDifference_(c,d);a.className=e.join(" ");return e.length==c.length-d.length};goog.dom.classes.add_=function(a,b){for(var c=0;c<b.length;c++)goog.array.contains(a,b[c])||a.push(b[c])};goog.dom.classes.getDifference_=function(a,b){return goog.array.filter(a,function(a){return!goog.array.contains(b,a)})};
|
|
goog.dom.classes.swap=function(a,b,c){for(var d=goog.dom.classes.get(a),e=!1,f=0;f<d.length;f++)d[f]==b&&(goog.array.splice(d,f--,1),e=!0);e&&(d.push(c),a.className=d.join(" "));return e};goog.dom.classes.addRemove=function(a,b,c){var d=goog.dom.classes.get(a);goog.isString(b)?goog.array.remove(d,b):goog.isArray(b)&&(d=goog.dom.classes.getDifference_(d,b));goog.isString(c)&&!goog.array.contains(d,c)?d.push(c):goog.isArray(c)&&goog.dom.classes.add_(d,c);a.className=d.join(" ")};
|
|
goog.dom.classes.has=function(a,b){return goog.array.contains(goog.dom.classes.get(a),b)};goog.dom.classes.enable=function(a,b,c){c?goog.dom.classes.add(a,b):goog.dom.classes.remove(a,b)};goog.dom.classes.toggle=function(a,b){var c=!goog.dom.classes.has(a,b);goog.dom.classes.enable(a,b,c);return c};goog.math={};goog.math.randomInt=function(a){return Math.floor(Math.random()*a)};goog.math.uniformRandom=function(a,b){return a+Math.random()*(b-a)};goog.math.clamp=function(a,b,c){return Math.min(Math.max(a,b),c)};goog.math.modulo=function(a,b){var c=a%b;return 0>c*b?c+b:c};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
|
|
goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};goog.math.angleDifference=function(a,b){var c=goog.math.standardAngle(b)-goog.math.standardAngle(a);180<c?c-=360:-180>=c&&(c=360+c);return c};
|
|
goog.math.sign=function(a){return 0==a?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){for(var c=c||function(a,b){return a==b},d=d||function(b){return a[b]},e=a.length,f=b.length,g=[],h=0;h<e+1;h++)g[h]=[],g[h][0]=0;for(var i=0;i<f+1;i++)g[0][i]=0;for(h=1;h<=e;h++)for(i=1;i<=e;i++)g[h][i]=c(a[h-1],b[i-1])?g[h-1][i-1]+1:Math.max(g[h-1][i],g[h][i-1]);for(var l=[],h=e,i=f;0<h&&0<i;)c(a[h-1],b[i-1])?(l.unshift(d(h-1,i-1)),h--,i--):g[h-1][i]>g[h][i-1]?h--:i--;return l};
|
|
goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.standardDeviation=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments),b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1);return Math.sqrt(b)};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};
|
|
goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.Coordinate=function(a,b){this.x=goog.isDef(a)?a:0;this.y=goog.isDef(b)?b:0};goog.math.Coordinate.prototype.clone=function(){return new goog.math.Coordinate(this.x,this.y)};goog.DEBUG&&(goog.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"});goog.math.Coordinate.equals=function(a,b){return a==b?!0:!a||!b?!1:a.x==b.x&&a.y==b.y};goog.math.Coordinate.distance=function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)};
|
|
goog.math.Coordinate.magnitude=function(a){return Math.sqrt(a.x*a.x+a.y*a.y)};goog.math.Coordinate.azimuth=function(a){return goog.math.angle(0,0,a.x,a.y)};goog.math.Coordinate.squaredDistance=function(a,b){var c=a.x-b.x,d=a.y-b.y;return c*c+d*d};goog.math.Coordinate.difference=function(a,b){return new goog.math.Coordinate(a.x-b.x,a.y-b.y)};goog.math.Coordinate.sum=function(a,b){return new goog.math.Coordinate(a.x+b.x,a.y+b.y)};goog.math.Size=function(a,b){this.width=a;this.height=b};goog.math.Size.equals=function(a,b){return a==b?!0:!a||!b?!1:a.width==b.width&&a.height==b.height};goog.math.Size.prototype.clone=function(){return new goog.math.Size(this.width,this.height)};goog.DEBUG&&(goog.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"});goog.math.Size.prototype.getLongest=function(){return Math.max(this.width,this.height)};
|
|
goog.math.Size.prototype.getShortest=function(){return Math.min(this.width,this.height)};goog.math.Size.prototype.area=function(){return this.width*this.height};goog.math.Size.prototype.perimeter=function(){return 2*(this.width+this.height)};goog.math.Size.prototype.aspectRatio=function(){return this.width/this.height};goog.math.Size.prototype.isEmpty=function(){return!this.area()};goog.math.Size.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};
|
|
goog.math.Size.prototype.fitsInside=function(a){return this.width<=a.width&&this.height<=a.height};goog.math.Size.prototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};goog.math.Size.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};goog.math.Size.prototype.scale=function(a){this.width*=a;this.height*=a;return this};
|
|
goog.math.Size.prototype.scaleToFit=function(a){a=this.aspectRatio()>a.aspectRatio()?a.width/this.width:a.height/this.height;return this.scale(a)};goog.dom.ASSUME_QUIRKS_MODE=!1;goog.dom.ASSUME_STANDARDS_MODE=!0;goog.dom.COMPAT_MODE_KNOWN_=goog.dom.ASSUME_QUIRKS_MODE||goog.dom.ASSUME_STANDARDS_MODE;goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.dom.getDomHelper=function(a){return a?new goog.dom.DomHelper(goog.dom.getOwnerDocument(a)):goog.dom.defaultDomHelper_||(goog.dom.defaultDomHelper_=new goog.dom.DomHelper)};
|
|
goog.dom.getDocument=function(){return document};goog.dom.getElement=function(a){return goog.isString(a)?document.getElementById(a):a};goog.dom.$=goog.dom.getElement;goog.dom.getElementsByTagNameAndClass=function(a,b,c){return goog.dom.getElementsByTagNameAndClass_(document,a,b,c)};
|
|
goog.dom.getElementsByClass=function(a,b){var c=b||document;return goog.dom.canUseQuerySelector_(c)?c.querySelectorAll("."+a):c.getElementsByClassName?c.getElementsByClassName(a):goog.dom.getElementsByTagNameAndClass_(document,"*",a,b)};goog.dom.getElementByClass=function(a,b){var c=b||document,d=null;return(d=goog.dom.canUseQuerySelector_(c)?c.querySelector("."+a):goog.dom.getElementsByClass(a,b)[0])||null};goog.dom.canUseQuerySelector_=function(a){return!(!a.querySelectorAll||!a.querySelector)};
|
|
goog.dom.getElementsByTagNameAndClass_=function(a,b,c,d){a=d||a;b=b&&"*"!=b?b.toUpperCase():"";if(goog.dom.canUseQuerySelector_(a)&&(b||c))return a.querySelectorAll(b+(c?"."+c:""));if(c&&a.getElementsByClassName){a=a.getElementsByClassName(c);if(b){for(var d={},e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;return d}return a}a=a.getElementsByTagName(b||"*");if(c){d={};for(f=e=0;g=a[f];f++)b=g.className,"function"==typeof b.split&&goog.array.contains(b.split(/\s+/),c)&&(d[e++]=g);d.length=
|
|
e;return d}return a};goog.dom.$$=goog.dom.getElementsByTagNameAndClass;goog.dom.setProperties=function(a,b){goog.object.forEach(b,function(b,d){"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:d in goog.dom.DIRECT_ATTRIBUTE_MAP_?a.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[d],b):goog.string.startsWith(d,"aria-")||goog.string.startsWith(d,"data-")?a.setAttribute(d,b):a[d]=b})};
|
|
goog.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};goog.dom.getViewportSize=function(a){return goog.dom.getViewportSize_(a||window)};goog.dom.getViewportSize_=function(a){a=a.document;a=goog.dom.isCss1CompatMode_(a)?a.documentElement:a.body;return new goog.math.Size(a.clientWidth,a.clientHeight)};
|
|
goog.dom.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(window)};goog.dom.getDocumentHeight_=function(a){var b=a.document,c=0;if(b){var a=goog.dom.getViewportSize_(a).height,c=b.body,d=b.documentElement;if(goog.dom.isCss1CompatMode_(b)&&d.scrollHeight)c=d.scrollHeight!=a?d.scrollHeight:d.offsetHeight;else{var b=d.scrollHeight,e=d.offsetHeight;d.clientHeight!=e&&(b=c.scrollHeight,e=c.offsetHeight);c=b>a?b>e?b:e:b<e?b:e}}return c};
|
|
goog.dom.getPageScroll=function(a){return goog.dom.getDomHelper((a||goog.global||window).document).getDocumentScroll()};goog.dom.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(document)};goog.dom.getDocumentScroll_=function(a){var b=goog.dom.getDocumentScrollElement_(a),a=goog.dom.getWindow_(a);return new goog.math.Coordinate(a.pageXOffset||b.scrollLeft,a.pageYOffset||b.scrollTop)};goog.dom.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(document)};
|
|
goog.dom.getDocumentScrollElement_=function(a){return!goog.userAgent.WEBKIT&&goog.dom.isCss1CompatMode_(a)?a.documentElement:a.body};goog.dom.getWindow=function(a){return a?goog.dom.getWindow_(a):window};goog.dom.getWindow_=function(a){return a.parentWindow||a.defaultView};goog.dom.createDom=function(a,b,c){return goog.dom.createDom_(document,arguments)};
|
|
goog.dom.createDom_=function(a,b){var c=b[0],d=b[1];if(!goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES&&d&&(d.name||d.type)){c=["<",c];d.name&&c.push(' name="',goog.string.htmlEscape(d.name),'"');if(d.type){c.push(' type="',goog.string.htmlEscape(d.type),'"');var e={};goog.object.extend(e,d);delete e.type;d=e}c.push(">");c=c.join("")}c=a.createElement(c);d&&(goog.isString(d)?c.className=d:goog.isArray(d)?goog.dom.classes.add.apply(null,[c].concat(d)):goog.dom.setProperties(c,d));2<b.length&&
|
|
goog.dom.append_(a,c,b,2);return c};goog.dom.append_=function(a,b,c,d){function e(c){c&&b.appendChild(goog.isString(c)?a.createTextNode(c):c)}for(;d<c.length;d++){var f=c[d];goog.isArrayLike(f)&&!goog.dom.isNodeLike(f)?goog.array.forEach(goog.dom.isNodeList(f)?goog.array.toArray(f):f,e):e(f)}};goog.dom.$dom=goog.dom.createDom;goog.dom.createElement=function(a){return document.createElement(a)};goog.dom.createTextNode=function(a){return document.createTextNode(a)};
|
|
goog.dom.createTable=function(a,b,c){return goog.dom.createTable_(document,a,b,!!c)};goog.dom.createTable_=function(a,b,c,d){for(var e=["<tr>"],f=0;f<c;f++)e.push(d?"<td> </td>":"<td></td>");e.push("</tr>");e=e.join("");c=["<table>"];for(f=0;f<b;f++)c.push(e);c.push("</table>");a=a.createElement(goog.dom.TagName.DIV);a.innerHTML=c.join("");return a.removeChild(a.firstChild)};goog.dom.htmlToDocumentFragment=function(a){return goog.dom.htmlToDocumentFragment_(document,a)};
|
|
goog.dom.htmlToDocumentFragment_=function(a,b){var c=a.createElement("div");goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT?(c.innerHTML="<br>"+b,c.removeChild(c.firstChild)):c.innerHTML=b;if(1==c.childNodes.length)return c.removeChild(c.firstChild);for(var d=a.createDocumentFragment();c.firstChild;)d.appendChild(c.firstChild);return d};goog.dom.getCompatMode=function(){return goog.dom.isCss1CompatMode()?"CSS1Compat":"BackCompat"};goog.dom.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(document)};
|
|
goog.dom.isCss1CompatMode_=function(a){return goog.dom.COMPAT_MODE_KNOWN_?goog.dom.ASSUME_STANDARDS_MODE:"CSS1Compat"==a.compatMode};goog.dom.canHaveChildren=function(a){if(a.nodeType!=goog.dom.NodeType.ELEMENT)return!1;switch(a.tagName){case goog.dom.TagName.APPLET:case goog.dom.TagName.AREA:case goog.dom.TagName.BASE:case goog.dom.TagName.BR:case goog.dom.TagName.COL:case goog.dom.TagName.COMMAND:case goog.dom.TagName.EMBED:case goog.dom.TagName.FRAME:case goog.dom.TagName.HR:case goog.dom.TagName.IMG:case goog.dom.TagName.INPUT:case goog.dom.TagName.IFRAME:case goog.dom.TagName.ISINDEX:case goog.dom.TagName.KEYGEN:case goog.dom.TagName.LINK:case goog.dom.TagName.NOFRAMES:case goog.dom.TagName.NOSCRIPT:case goog.dom.TagName.META:case goog.dom.TagName.OBJECT:case goog.dom.TagName.PARAM:case goog.dom.TagName.SCRIPT:case goog.dom.TagName.SOURCE:case goog.dom.TagName.STYLE:case goog.dom.TagName.TRACK:case goog.dom.TagName.WBR:return!1}return!0};
|
|
goog.dom.appendChild=function(a,b){a.appendChild(b)};goog.dom.append=function(a,b){goog.dom.append_(goog.dom.getOwnerDocument(a),a,arguments,1)};goog.dom.removeChildren=function(a){for(var b;b=a.firstChild;)a.removeChild(b)};goog.dom.insertSiblingBefore=function(a,b){b.parentNode&&b.parentNode.insertBefore(a,b)};goog.dom.insertSiblingAfter=function(a,b){b.parentNode&&b.parentNode.insertBefore(a,b.nextSibling)};goog.dom.insertChildAt=function(a,b,c){a.insertBefore(b,a.childNodes[c]||null)};
|
|
goog.dom.removeNode=function(a){return a&&a.parentNode?a.parentNode.removeChild(a):null};goog.dom.replaceNode=function(a,b){var c=b.parentNode;c&&c.replaceChild(a,b)};goog.dom.flattenElement=function(a){var b,c=a.parentNode;if(c&&c.nodeType!=goog.dom.NodeType.DOCUMENT_FRAGMENT){if(a.removeNode)return a.removeNode(!1);for(;b=a.firstChild;)c.insertBefore(b,a);return goog.dom.removeNode(a)}};
|
|
goog.dom.getChildren=function(a){return goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE&&void 0!=a.children?a.children:goog.array.filter(a.childNodes,function(a){return a.nodeType==goog.dom.NodeType.ELEMENT})};goog.dom.getFirstElementChild=function(a){return void 0!=a.firstElementChild?a.firstElementChild:goog.dom.getNextElementNode_(a.firstChild,!0)};goog.dom.getLastElementChild=function(a){return void 0!=a.lastElementChild?a.lastElementChild:goog.dom.getNextElementNode_(a.lastChild,!1)};
|
|
goog.dom.getNextElementSibling=function(a){return void 0!=a.nextElementSibling?a.nextElementSibling:goog.dom.getNextElementNode_(a.nextSibling,!0)};goog.dom.getPreviousElementSibling=function(a){return void 0!=a.previousElementSibling?a.previousElementSibling:goog.dom.getNextElementNode_(a.previousSibling,!1)};goog.dom.getNextElementNode_=function(a,b){for(;a&&a.nodeType!=goog.dom.NodeType.ELEMENT;)a=b?a.nextSibling:a.previousSibling;return a};
|
|
goog.dom.getNextNode=function(a){if(!a)return null;if(a.firstChild)return a.firstChild;for(;a&&!a.nextSibling;)a=a.parentNode;return a?a.nextSibling:null};goog.dom.getPreviousNode=function(a){if(!a)return null;if(!a.previousSibling)return a.parentNode;for(a=a.previousSibling;a&&a.lastChild;)a=a.lastChild;return a};goog.dom.isNodeLike=function(a){return goog.isObject(a)&&0<a.nodeType};goog.dom.isElement=function(a){return goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT};
|
|
goog.dom.isWindow=function(a){return goog.isObject(a)&&a.window==a};goog.dom.getParentElement=function(a){if(goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY)return a.parentElement;a=a.parentNode;return goog.dom.isElement(a)?a:null};goog.dom.contains=function(a,b){if(a.contains&&b.nodeType==goog.dom.NodeType.ELEMENT)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a};
|
|
goog.dom.compareNodeOrder=function(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if((a.nodeType==goog.dom.NodeType.DOCUMENT||b.nodeType==goog.dom.NodeType.DOCUMENT)&&goog.userAgent.IE&&!goog.userAgent.isVersion(9)){if(a.nodeType==goog.dom.NodeType.DOCUMENT)return-1;if(b.nodeType==goog.dom.NodeType.DOCUMENT)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=a.nodeType==goog.dom.NodeType.ELEMENT,d=b.nodeType==goog.dom.NodeType.ELEMENT;
|
|
if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?goog.dom.compareSiblingOrder_(a,b):!c&&goog.dom.contains(e,b)?-1*goog.dom.compareParentsDescendantNodeIe_(a,b):!d&&goog.dom.contains(f,a)?goog.dom.compareParentsDescendantNodeIe_(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=goog.dom.getOwnerDocument(a);c=d.createRange();c.selectNode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBoundaryPoints(goog.global.Range.START_TO_END,
|
|
d)};goog.dom.compareParentsDescendantNodeIe_=function(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return goog.dom.compareSiblingOrder_(d,a)};goog.dom.compareSiblingOrder_=function(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};
|
|
goog.dom.findCommonAncestor=function(a){var b,c=arguments.length;if(c){if(1==c)return arguments[0]}else return null;var d=[],e=Infinity;for(b=0;b<c;b++){for(var f=[],g=arguments[b];g;)f.unshift(g),g=g.parentNode;d.push(f);e=Math.min(e,f.length)}f=null;for(b=0;b<e;b++){for(var g=d[0][b],h=1;h<c;h++)if(g!=d[h][b])return f;f=g}return f};goog.dom.getOwnerDocument=function(a){return a.nodeType==goog.dom.NodeType.DOCUMENT?a:a.ownerDocument||a.document};
|
|
goog.dom.getFrameContentDocument=function(a){return a.contentDocument||a.contentWindow.document};goog.dom.getFrameContentWindow=function(a){return a.contentWindow||goog.dom.getWindow_(goog.dom.getFrameContentDocument(a))};
|
|
goog.dom.setTextContent=function(a,b){if("textContent"in a)a.textContent=b;else if(a.firstChild&&a.firstChild.nodeType==goog.dom.NodeType.TEXT){for(;a.lastChild!=a.firstChild;)a.removeChild(a.lastChild);a.firstChild.data=b}else{goog.dom.removeChildren(a);var c=goog.dom.getOwnerDocument(a);a.appendChild(c.createTextNode(b))}};goog.dom.getOuterHtml=function(a){if("outerHTML"in a)return a.outerHTML;var b=goog.dom.getOwnerDocument(a).createElement("div");b.appendChild(a.cloneNode(!0));return b.innerHTML};
|
|
goog.dom.findNode=function(a,b){var c=[];return goog.dom.findNodes_(a,b,c,!0)?c[0]:void 0};goog.dom.findNodes=function(a,b){var c=[];goog.dom.findNodes_(a,b,c,!1);return c};goog.dom.findNodes_=function(a,b,c,d){if(null!=a)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d)||goog.dom.findNodes_(a,b,c,d))return!0;a=a.nextSibling}return!1};goog.dom.TAGS_TO_IGNORE_={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};goog.dom.PREDEFINED_TAG_VALUES_={IMG:" ",BR:"\n"};
|
|
goog.dom.isFocusableTabIndex=function(a){var b=a.getAttributeNode("tabindex");return b&&b.specified?(a=a.tabIndex,goog.isNumber(a)&&0<=a&&32768>a):!1};goog.dom.setFocusableTabIndex=function(a,b){b?a.tabIndex=0:(a.tabIndex=-1,a.removeAttribute("tabIndex"))};
|
|
goog.dom.getTextContent=function(a){if(goog.dom.BrowserFeature.CAN_USE_INNER_TEXT&&"innerText"in a)a=goog.string.canonicalizeNewlines(a.innerText);else{var b=[];goog.dom.getTextContent_(a,b,!0);a=b.join("")}a=a.replace(/ \xAD /g," ").replace(/\xAD/g,"");a=a.replace(/\u200B/g,"");goog.dom.BrowserFeature.CAN_USE_INNER_TEXT||(a=a.replace(/ +/g," "));" "!=a&&(a=a.replace(/^\s*/,""));return a};goog.dom.getRawTextContent=function(a){var b=[];goog.dom.getTextContent_(a,b,!1);return b.join("")};
|
|
goog.dom.getTextContent_=function(a,b,c){if(!(a.nodeName in goog.dom.TAGS_TO_IGNORE_))if(a.nodeType==goog.dom.NodeType.TEXT)c?b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):b.push(a.nodeValue);else if(a.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)b.push(goog.dom.PREDEFINED_TAG_VALUES_[a.nodeName]);else for(a=a.firstChild;a;)goog.dom.getTextContent_(a,b,c),a=a.nextSibling};goog.dom.getNodeTextLength=function(a){return goog.dom.getTextContent(a).length};
|
|
goog.dom.getNodeTextOffset=function(a,b){for(var c=b||goog.dom.getOwnerDocument(a).body,d=[];a&&a!=c;){for(var e=a;e=e.previousSibling;)d.unshift(goog.dom.getTextContent(e));a=a.parentNode}return goog.string.trimLeft(d.join("")).replace(/ +/g," ").length};
|
|
goog.dom.getNodeAtOffset=function(a,b,c){for(var a=[a],d=0,e;0<a.length&&d<b;)if(e=a.pop(),!(e.nodeName in goog.dom.TAGS_TO_IGNORE_))if(e.nodeType==goog.dom.NodeType.TEXT)var f=e.nodeValue.replace(/(\r\n|\r|\n)/g,"").replace(/ +/g," "),d=d+f.length;else if(e.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)d+=goog.dom.PREDEFINED_TAG_VALUES_[e.nodeName].length;else for(f=e.childNodes.length-1;0<=f;f--)a.push(e.childNodes[f]);goog.isObject(c)&&(c.remainder=e?e.nodeValue.length+b-d-1:0,c.node=e);return e};
|
|
goog.dom.isNodeList=function(a){if(a&&"number"==typeof a.length){if(goog.isObject(a))return"function"==typeof a.item||"string"==typeof a.item;if(goog.isFunction(a))return"function"==typeof a.item}return!1};goog.dom.getAncestorByTagNameAndClass=function(a,b,c){if(!b&&!c)return null;var d=b?b.toUpperCase():null;return goog.dom.getAncestor(a,function(a){return(!d||a.nodeName==d)&&(!c||goog.dom.classes.has(a,c))},!0)};
|
|
goog.dom.getAncestorByClass=function(a,b){return goog.dom.getAncestorByTagNameAndClass(a,null,b)};goog.dom.getAncestor=function(a,b,c,d){c||(a=a.parentNode);for(var c=null==d,e=0;a&&(c||e<=d);){if(b(a))return a;a=a.parentNode;e++}return null};goog.dom.getActiveElement=function(a){try{return a&&a.activeElement}catch(b){}return null};goog.dom.DomHelper=function(a){this.document_=a||goog.global.document||document};goog.dom.DomHelper.prototype.getDomHelper=goog.dom.getDomHelper;
|
|
goog.dom.DomHelper.prototype.setDocument=function(a){this.document_=a};goog.dom.DomHelper.prototype.getDocument=function(){return this.document_};goog.dom.DomHelper.prototype.getElement=function(a){return goog.isString(a)?this.document_.getElementById(a):a};goog.dom.DomHelper.prototype.$=goog.dom.DomHelper.prototype.getElement;goog.dom.DomHelper.prototype.getElementsByTagNameAndClass=function(a,b,c){return goog.dom.getElementsByTagNameAndClass_(this.document_,a,b,c)};
|
|
goog.dom.DomHelper.prototype.getElementsByClass=function(a,b){return goog.dom.getElementsByClass(a,b||this.document_)};goog.dom.DomHelper.prototype.getElementByClass=function(a,b){return goog.dom.getElementByClass(a,b||this.document_)};goog.dom.DomHelper.prototype.$$=goog.dom.DomHelper.prototype.getElementsByTagNameAndClass;goog.dom.DomHelper.prototype.setProperties=goog.dom.setProperties;goog.dom.DomHelper.prototype.getViewportSize=function(a){return goog.dom.getViewportSize(a||this.getWindow())};
|
|
goog.dom.DomHelper.prototype.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(this.getWindow())};goog.dom.DomHelper.prototype.createDom=function(a,b,c){return goog.dom.createDom_(this.document_,arguments)};goog.dom.DomHelper.prototype.$dom=goog.dom.DomHelper.prototype.createDom;goog.dom.DomHelper.prototype.createElement=function(a){return this.document_.createElement(a)};goog.dom.DomHelper.prototype.createTextNode=function(a){return this.document_.createTextNode(a)};
|
|
goog.dom.DomHelper.prototype.createTable=function(a,b,c){return goog.dom.createTable_(this.document_,a,b,!!c)};goog.dom.DomHelper.prototype.htmlToDocumentFragment=function(a){return goog.dom.htmlToDocumentFragment_(this.document_,a)};goog.dom.DomHelper.prototype.getCompatMode=function(){return this.isCss1CompatMode()?"CSS1Compat":"BackCompat"};goog.dom.DomHelper.prototype.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(this.document_)};goog.dom.DomHelper.prototype.getWindow=function(){return goog.dom.getWindow_(this.document_)};
|
|
goog.dom.DomHelper.prototype.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(this.document_)};goog.dom.DomHelper.prototype.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(this.document_)};goog.dom.DomHelper.prototype.getActiveElement=function(a){return goog.dom.getActiveElement(a||this.document_)};goog.dom.DomHelper.prototype.appendChild=goog.dom.appendChild;goog.dom.DomHelper.prototype.append=goog.dom.append;
|
|
goog.dom.DomHelper.prototype.canHaveChildren=goog.dom.canHaveChildren;goog.dom.DomHelper.prototype.removeChildren=goog.dom.removeChildren;goog.dom.DomHelper.prototype.insertSiblingBefore=goog.dom.insertSiblingBefore;goog.dom.DomHelper.prototype.insertSiblingAfter=goog.dom.insertSiblingAfter;goog.dom.DomHelper.prototype.insertChildAt=goog.dom.insertChildAt;goog.dom.DomHelper.prototype.removeNode=goog.dom.removeNode;goog.dom.DomHelper.prototype.replaceNode=goog.dom.replaceNode;
|
|
goog.dom.DomHelper.prototype.flattenElement=goog.dom.flattenElement;goog.dom.DomHelper.prototype.getChildren=goog.dom.getChildren;goog.dom.DomHelper.prototype.getFirstElementChild=goog.dom.getFirstElementChild;goog.dom.DomHelper.prototype.getLastElementChild=goog.dom.getLastElementChild;goog.dom.DomHelper.prototype.getNextElementSibling=goog.dom.getNextElementSibling;goog.dom.DomHelper.prototype.getPreviousElementSibling=goog.dom.getPreviousElementSibling;
|
|
goog.dom.DomHelper.prototype.getNextNode=goog.dom.getNextNode;goog.dom.DomHelper.prototype.getPreviousNode=goog.dom.getPreviousNode;goog.dom.DomHelper.prototype.isNodeLike=goog.dom.isNodeLike;goog.dom.DomHelper.prototype.isElement=goog.dom.isElement;goog.dom.DomHelper.prototype.isWindow=goog.dom.isWindow;goog.dom.DomHelper.prototype.getParentElement=goog.dom.getParentElement;goog.dom.DomHelper.prototype.contains=goog.dom.contains;goog.dom.DomHelper.prototype.compareNodeOrder=goog.dom.compareNodeOrder;
|
|
goog.dom.DomHelper.prototype.findCommonAncestor=goog.dom.findCommonAncestor;goog.dom.DomHelper.prototype.getOwnerDocument=goog.dom.getOwnerDocument;goog.dom.DomHelper.prototype.getFrameContentDocument=goog.dom.getFrameContentDocument;goog.dom.DomHelper.prototype.getFrameContentWindow=goog.dom.getFrameContentWindow;goog.dom.DomHelper.prototype.setTextContent=goog.dom.setTextContent;goog.dom.DomHelper.prototype.getOuterHtml=goog.dom.getOuterHtml;goog.dom.DomHelper.prototype.findNode=goog.dom.findNode;
|
|
goog.dom.DomHelper.prototype.findNodes=goog.dom.findNodes;goog.dom.DomHelper.prototype.isFocusableTabIndex=goog.dom.isFocusableTabIndex;goog.dom.DomHelper.prototype.setFocusableTabIndex=goog.dom.setFocusableTabIndex;goog.dom.DomHelper.prototype.getTextContent=goog.dom.getTextContent;goog.dom.DomHelper.prototype.getNodeTextLength=goog.dom.getNodeTextLength;goog.dom.DomHelper.prototype.getNodeTextOffset=goog.dom.getNodeTextOffset;goog.dom.DomHelper.prototype.getNodeAtOffset=goog.dom.getNodeAtOffset;
|
|
goog.dom.DomHelper.prototype.isNodeList=goog.dom.isNodeList;goog.dom.DomHelper.prototype.getAncestorByTagNameAndClass=goog.dom.getAncestorByTagNameAndClass;goog.dom.DomHelper.prototype.getAncestorByClass=goog.dom.getAncestorByClass;goog.dom.DomHelper.prototype.getAncestor=goog.dom.getAncestor;goog.debug.entryPointRegistry={};goog.debug.EntryPointMonitor=function(){};goog.debug.entryPointRegistry.refList_=[];goog.debug.entryPointRegistry.monitors_=[];goog.debug.entryPointRegistry.monitorsMayExist_=!1;goog.debug.entryPointRegistry.register=function(a){goog.debug.entryPointRegistry.refList_[goog.debug.entryPointRegistry.refList_.length]=a;if(goog.debug.entryPointRegistry.monitorsMayExist_)for(var b=goog.debug.entryPointRegistry.monitors_,c=0;c<b.length;c++)a(goog.bind(b[c].wrap,b[c]))};
|
|
goog.debug.entryPointRegistry.monitorAll=function(a){goog.debug.entryPointRegistry.monitorsMayExist_=!0;for(var b=goog.bind(a.wrap,a),c=0;c<goog.debug.entryPointRegistry.refList_.length;c++)goog.debug.entryPointRegistry.refList_[c](b);goog.debug.entryPointRegistry.monitors_.push(a)};
|
|
goog.debug.entryPointRegistry.unmonitorAllIfPossible=function(a){var b=goog.debug.entryPointRegistry.monitors_;goog.asserts.assert(a==b[b.length-1],"Only the most recent monitor can be unwrapped.");for(var a=goog.bind(a.unwrap,a),c=0;c<goog.debug.entryPointRegistry.refList_.length;c++)goog.debug.entryPointRegistry.refList_[c](a);b.length--};goog.debug.errorHandlerWeakDep={protectEntryPoint:function(a){return a}};goog.events={};
|
|
goog.events.BrowserFeature={HAS_W3C_BUTTON:!goog.userAgent.IE||goog.userAgent.isDocumentMode(9),HAS_W3C_EVENT_SUPPORT:!goog.userAgent.IE||goog.userAgent.isDocumentMode(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:goog.userAgent.IE&&!goog.userAgent.isVersion("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!goog.userAgent.WEBKIT||goog.userAgent.isVersion("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:goog.userAgent.GECKO&&goog.userAgent.isVersion("1.9b")||goog.userAgent.IE&&goog.userAgent.isVersion("8")||goog.userAgent.OPERA&&goog.userAgent.isVersion("9.5")||
|
|
goog.userAgent.WEBKIT&&goog.userAgent.isVersion("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:goog.userAgent.GECKO&&!goog.userAgent.isVersion("8")||goog.userAgent.IE&&!goog.userAgent.isVersion("9")};goog.disposable={};goog.disposable.IDisposable=function(){};goog.Disposable=function(){goog.Disposable.MONITORING_MODE!=goog.Disposable.MonitoringMode.OFF&&(this.creationStack=Error().stack,goog.Disposable.instances_[goog.getUid(this)]=this)};goog.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2};goog.Disposable.MONITORING_MODE=0;goog.Disposable.instances_={};goog.Disposable.getUndisposedObjects=function(){var a=[],b;for(b in goog.Disposable.instances_)goog.Disposable.instances_.hasOwnProperty(b)&&a.push(goog.Disposable.instances_[Number(b)]);return a};
|
|
goog.Disposable.clearUndisposedObjects=function(){goog.Disposable.instances_={}};goog.Disposable.prototype.disposed_=!1;goog.Disposable.prototype.isDisposed=function(){return this.disposed_};goog.Disposable.prototype.getDisposed=goog.Disposable.prototype.isDisposed;
|
|
goog.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),goog.Disposable.MONITORING_MODE!=goog.Disposable.MonitoringMode.OFF)){var a=goog.getUid(this);if(goog.Disposable.MONITORING_MODE==goog.Disposable.MonitoringMode.PERMANENT&&!goog.Disposable.instances_.hasOwnProperty(a))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");delete goog.Disposable.instances_[a]}};
|
|
goog.Disposable.prototype.registerDisposable=function(a){this.dependentDisposables_||(this.dependentDisposables_=[]);this.dependentDisposables_.push(a)};goog.Disposable.prototype.addOnDisposeCallback=function(a,b){this.onDisposeCallbacks_||(this.onDisposeCallbacks_=[]);this.onDisposeCallbacks_.push(goog.bind(a,b))};goog.Disposable.prototype.disposeInternal=function(){this.dependentDisposables_&&goog.disposeAll.apply(null,this.dependentDisposables_);if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()};
|
|
goog.Disposable.isDisposed=function(a){return a&&"function"==typeof a.isDisposed?a.isDisposed():!1};goog.dispose=function(a){a&&"function"==typeof a.dispose&&a.dispose()};goog.disposeAll=function(a){for(var b=0,c=arguments.length;b<c;++b){var d=arguments[b];goog.isArrayLike(d)?goog.disposeAll.apply(null,d):goog.dispose(d)}};goog.events.Event=function(a,b){this.type=a;this.currentTarget=this.target=b};goog.events.Event.prototype.disposeInternal=function(){};goog.events.Event.prototype.dispose=function(){};goog.events.Event.prototype.propagationStopped_=!1;goog.events.Event.prototype.defaultPrevented=!1;goog.events.Event.prototype.returnValue_=!0;goog.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0};
|
|
goog.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0;this.returnValue_=!1};goog.events.Event.stopPropagation=function(a){a.stopPropagation()};goog.events.Event.preventDefault=function(a){a.preventDefault()};goog.events.EventType={CLICK:"click",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",SELECTSTART:"selectstart",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:goog.userAgent.IE?"focusin":"DOMFocusIn",FOCUSOUT:goog.userAgent.IE?"focusout":"DOMFocusOut",CHANGE:"change",SELECT:"select",SUBMIT:"submit",INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",
|
|
DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",CONTEXTMENU:"contextmenu",ERROR:"error",HELP:"help",LOAD:"load",LOSECAPTURE:"losecapture",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",
|
|
BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",TRANSITIONEND:goog.userAgent.WEBKIT?"webkitTransitionEnd":goog.userAgent.OPERA?"oTransitionEnd":"transitionend"};goog.reflect={};goog.reflect.object=function(a,b){return b};goog.reflect.sinkValue=function(a){goog.reflect.sinkValue[" "](a);return a};goog.reflect.sinkValue[" "]=goog.nullFunction;goog.reflect.canAccessProperty=function(a,b){try{return goog.reflect.sinkValue(a[b]),!0}catch(c){}return!1};goog.events.BrowserEvent=function(a,b){a&&this.init(a,b)};goog.inherits(goog.events.BrowserEvent,goog.events.Event);goog.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};goog.events.BrowserEvent.IEButtonMap=[1,4,2];goog.events.BrowserEvent.prototype.target=null;goog.events.BrowserEvent.prototype.relatedTarget=null;goog.events.BrowserEvent.prototype.offsetX=0;goog.events.BrowserEvent.prototype.offsetY=0;goog.events.BrowserEvent.prototype.clientX=0;
|
|
goog.events.BrowserEvent.prototype.clientY=0;goog.events.BrowserEvent.prototype.screenX=0;goog.events.BrowserEvent.prototype.screenY=0;goog.events.BrowserEvent.prototype.button=0;goog.events.BrowserEvent.prototype.keyCode=0;goog.events.BrowserEvent.prototype.charCode=0;goog.events.BrowserEvent.prototype.ctrlKey=!1;goog.events.BrowserEvent.prototype.altKey=!1;goog.events.BrowserEvent.prototype.shiftKey=!1;goog.events.BrowserEvent.prototype.metaKey=!1;
|
|
goog.events.BrowserEvent.prototype.platformModifierKey=!1;goog.events.BrowserEvent.prototype.event_=null;
|
|
goog.events.BrowserEvent.prototype.init=function(a,b){var c=this.type=a.type;goog.events.Event.call(this,c);this.target=a.target||a.srcElement;this.currentTarget=b;var d=a.relatedTarget;d?goog.userAgent.GECKO&&(goog.reflect.canAccessProperty(d,"nodeName")||(d=null)):c==goog.events.EventType.MOUSEOVER?d=a.fromElement:c==goog.events.EventType.MOUSEOUT&&(d=a.toElement);this.relatedTarget=d;this.offsetX=goog.userAgent.WEBKIT||void 0!==a.offsetX?a.offsetX:a.layerX;this.offsetY=goog.userAgent.WEBKIT||void 0!==
|
|
a.offsetY?a.offsetY:a.layerY;this.clientX=void 0!==a.clientX?a.clientX:a.pageX;this.clientY=void 0!==a.clientY?a.clientY:a.pageY;this.screenX=a.screenX||0;this.screenY=a.screenY||0;this.button=a.button;this.keyCode=a.keyCode||0;this.charCode=a.charCode||("keypress"==c?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.platformModifierKey=goog.userAgent.MAC?a.metaKey:a.ctrlKey;this.state=a.state;this.event_=a;a.defaultPrevented&&this.preventDefault();
|
|
delete this.propagationStopped_};goog.events.BrowserEvent.prototype.isButton=function(a){return goog.events.BrowserFeature.HAS_W3C_BUTTON?this.event_.button==a:"click"==this.type?a==goog.events.BrowserEvent.MouseButton.LEFT:!!(this.event_.button&goog.events.BrowserEvent.IEButtonMap[a])};goog.events.BrowserEvent.prototype.isMouseActionButton=function(){return this.isButton(goog.events.BrowserEvent.MouseButton.LEFT)&&!(goog.userAgent.WEBKIT&&goog.userAgent.MAC&&this.ctrlKey)};
|
|
goog.events.BrowserEvent.prototype.stopPropagation=function(){goog.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0};
|
|
goog.events.BrowserEvent.prototype.preventDefault=function(){goog.events.BrowserEvent.superClass_.preventDefault.call(this);var a=this.event_;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,goog.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};goog.events.BrowserEvent.prototype.getBrowserEvent=function(){return this.event_};goog.events.BrowserEvent.prototype.disposeInternal=function(){};goog.events.EventWrapper=function(){};goog.events.EventWrapper.prototype.listen=function(){};goog.events.EventWrapper.prototype.unlisten=function(){};goog.events.Listener=function(){goog.events.Listener.ENABLE_MONITORING&&(this.creationStack=Error().stack)};goog.events.Listener.counter_=0;goog.events.Listener.ENABLE_MONITORING=!1;goog.events.Listener.prototype.key=0;goog.events.Listener.prototype.removed=!1;goog.events.Listener.prototype.callOnce=!1;
|
|
goog.events.Listener.prototype.init=function(a,b,c,d,e,f){if(goog.isFunction(a))this.isFunctionListener_=!0;else if(a&&a.handleEvent&&goog.isFunction(a.handleEvent))this.isFunctionListener_=!1;else throw Error("Invalid listener argument");this.listener=a;this.proxy=b;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.callOnce=!1;this.key=++goog.events.Listener.counter_;this.removed=!1};
|
|
goog.events.Listener.prototype.handleEvent=function(a){return this.isFunctionListener_?this.listener.call(this.handler||this.src,a):this.listener.handleEvent.call(this.listener,a)};goog.events.listeners_={};goog.events.listenerTree_={};goog.events.sources_={};goog.events.onString_="on";goog.events.onStringMap_={};goog.events.keySeparator_="_";
|
|
goog.events.listen=function(a,b,c,d,e){if(b){if(goog.isArray(b)){for(var f=0;f<b.length;f++)goog.events.listen(a,b[f],c,d,e);return null}var d=!!d,g=goog.events.listenerTree_;b in g||(g[b]={count_:0,remaining_:0});g=g[b];d in g||(g[d]={count_:0,remaining_:0},g.count_++);var g=g[d],h=goog.getUid(a),i;g.remaining_++;if(g[h]){i=g[h];for(f=0;f<i.length;f++)if(g=i[f],g.listener==c&&g.handler==e){if(g.removed)break;return i[f].key}}else i=g[h]=[],g.count_++;f=goog.events.getProxy();f.src=a;g=new goog.events.Listener;
|
|
g.init(c,f,a,b,d,e);c=g.key;f.key=c;i.push(g);goog.events.listeners_[c]=g;goog.events.sources_[h]||(goog.events.sources_[h]=[]);goog.events.sources_[h].push(g);a.addEventListener?(a==goog.global||!a.customEvent_)&&a.addEventListener(b,f,d):a.attachEvent(goog.events.getOnString_(b),f);return c}throw Error("Invalid event type");};
|
|
goog.events.getProxy=function(){var a=goog.events.handleBrowserEvent_,b=goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(c){return a.call(b.src,b.key,c)}:function(c){c=a.call(b.src,b.key,c);if(!c)return c};return b};goog.events.listenOnce=function(a,b,c,d,e){if(goog.isArray(b)){for(var f=0;f<b.length;f++)goog.events.listenOnce(a,b[f],c,d,e);return null}a=goog.events.listen(a,b,c,d,e);goog.events.listeners_[a].callOnce=!0;return a};
|
|
goog.events.listenWithWrapper=function(a,b,c,d,e){b.listen(a,c,d,e)};goog.events.unlisten=function(a,b,c,d,e){if(goog.isArray(b)){for(var f=0;f<b.length;f++)goog.events.unlisten(a,b[f],c,d,e);return null}d=!!d;a=goog.events.getListeners_(a,b,d);if(!a)return!1;for(f=0;f<a.length;f++)if(a[f].listener==c&&a[f].capture==d&&a[f].handler==e)return goog.events.unlistenByKey(a[f].key);return!1};
|
|
goog.events.unlistenByKey=function(a){if(!goog.events.listeners_[a])return!1;var b=goog.events.listeners_[a];if(b.removed)return!1;var c=b.src,d=b.type,e=b.proxy,f=b.capture;c.removeEventListener?(c==goog.global||!c.customEvent_)&&c.removeEventListener(d,e,f):c.detachEvent&&c.detachEvent(goog.events.getOnString_(d),e);c=goog.getUid(c);goog.events.sources_[c]&&(e=goog.events.sources_[c],goog.array.remove(e,b),0==e.length&&delete goog.events.sources_[c]);b.removed=!0;if(b=goog.events.listenerTree_[d][f][c])b.needsCleanup_=
|
|
!0,goog.events.cleanUp_(d,f,c,b);delete goog.events.listeners_[a];return!0};goog.events.unlistenWithWrapper=function(a,b,c,d,e){b.unlisten(a,c,d,e)};
|
|
goog.events.cleanUp_=function(a,b,c,d){if(!d.locked_&&d.needsCleanup_){for(var e=0,f=0;e<d.length;e++)d[e].removed?d[e].proxy.src=null:(e!=f&&(d[f]=d[e]),f++);d.length=f;d.needsCleanup_=!1;0==f&&(delete goog.events.listenerTree_[a][b][c],goog.events.listenerTree_[a][b].count_--,0==goog.events.listenerTree_[a][b].count_&&(delete goog.events.listenerTree_[a][b],goog.events.listenerTree_[a].count_--),0==goog.events.listenerTree_[a].count_&&delete goog.events.listenerTree_[a])}};
|
|
goog.events.removeAll=function(a,b,c){var d=0,e=null==b,f=null==c,c=!!c;if(null==a)goog.object.forEach(goog.events.sources_,function(a){for(var g=a.length-1;0<=g;g--){var h=a[g];if((e||b==h.type)&&(f||c==h.capture))goog.events.unlistenByKey(h.key),d++}});else if(a=goog.getUid(a),goog.events.sources_[a])for(var a=goog.events.sources_[a],g=a.length-1;0<=g;g--){var h=a[g];if((e||b==h.type)&&(f||c==h.capture))goog.events.unlistenByKey(h.key),d++}return d};
|
|
goog.events.getListeners=function(a,b,c){return goog.events.getListeners_(a,b,c)||[]};goog.events.getListeners_=function(a,b,c){var d=goog.events.listenerTree_;return b in d&&(d=d[b],c in d&&(d=d[c],a=goog.getUid(a),d[a]))?d[a]:null};goog.events.getListener=function(a,b,c,d,e){d=!!d;if(a=goog.events.getListeners_(a,b,d))for(b=0;b<a.length;b++)if(!a[b].removed&&a[b].listener==c&&a[b].capture==d&&a[b].handler==e)return a[b];return null};
|
|
goog.events.hasListener=function(a,b,c){var a=goog.getUid(a),d=goog.events.sources_[a];if(d){var e=goog.isDef(b),f=goog.isDef(c);return e&&f?(d=goog.events.listenerTree_[b],!!d&&!!d[c]&&a in d[c]):!e&&!f?!0:goog.array.some(d,function(a){return e&&a.type==b||f&&a.capture==c})}return!1};goog.events.expose=function(a){var b=[],c;for(c in a)a[c]&&a[c].id?b.push(c+" = "+a[c]+" ("+a[c].id+")"):b.push(c+" = "+a[c]);return b.join("\n")};
|
|
goog.events.getOnString_=function(a){return a in goog.events.onStringMap_?goog.events.onStringMap_[a]:goog.events.onStringMap_[a]=goog.events.onString_+a};goog.events.fireListeners=function(a,b,c,d){var e=goog.events.listenerTree_;return b in e&&(e=e[b],c in e)?goog.events.fireListeners_(e[c],a,b,c,d):!0};
|
|
goog.events.fireListeners_=function(a,b,c,d,e){var f=1,b=goog.getUid(b);if(a[b]){a.remaining_--;a=a[b];a.locked_?a.locked_++:a.locked_=1;try{for(var g=a.length,h=0;h<g;h++){var i=a[h];i&&!i.removed&&(f&=!1!==goog.events.fireListener(i,e))}}finally{a.locked_--,goog.events.cleanUp_(c,d,b,a)}}return Boolean(f)};goog.events.fireListener=function(a,b){a.callOnce&&goog.events.unlistenByKey(a.key);return a.handleEvent(b)};goog.events.getTotalListenerCount=function(){return goog.object.getCount(goog.events.listeners_)};
|
|
goog.events.dispatchEvent=function(a,b){var c=b.type||b,d=goog.events.listenerTree_;if(!(c in d))return!0;if(goog.isString(b))b=new goog.events.Event(b,a);else if(b instanceof goog.events.Event)b.target=b.target||a;else{var e=b,b=new goog.events.Event(c,a);goog.object.extend(b,e)}var e=1,f,d=d[c],c=!0 in d,g;if(c){f=[];for(g=a;g;g=g.getParentEventTarget())f.push(g);g=d[!0];g.remaining_=g.count_;for(var h=f.length-1;!b.propagationStopped_&&0<=h&&g.remaining_;h--)b.currentTarget=f[h],e&=goog.events.fireListeners_(g,
|
|
f[h],b.type,!0,b)&&!1!=b.returnValue_}if(!1 in d)if(g=d[!1],g.remaining_=g.count_,c)for(h=0;!b.propagationStopped_&&h<f.length&&g.remaining_;h++)b.currentTarget=f[h],e&=goog.events.fireListeners_(g,f[h],b.type,!1,b)&&!1!=b.returnValue_;else for(d=a;!b.propagationStopped_&&d&&g.remaining_;d=d.getParentEventTarget())b.currentTarget=d,e&=goog.events.fireListeners_(g,d,b.type,!1,b)&&!1!=b.returnValue_;return Boolean(e)};
|
|
goog.events.protectBrowserEventEntryPoint=function(a){goog.events.handleBrowserEvent_=a.protectEntryPoint(goog.events.handleBrowserEvent_)};
|
|
goog.events.handleBrowserEvent_=function(a,b){if(!goog.events.listeners_[a])return!0;var c=goog.events.listeners_[a],d=c.type,e=goog.events.listenerTree_;if(!(d in e))return!0;var e=e[d],f,g;if(!goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){f=b||goog.getObjectByName("window.event");var h=!0 in e,i=!1 in e;if(h){if(goog.events.isMarkedIeEvent_(f))return!0;goog.events.markIeEvent_(f)}var l=new goog.events.BrowserEvent;l.init(f,this);f=!0;try{if(h){for(var j=[],k=l.currentTarget;k;k=k.parentNode)j.push(k);
|
|
g=e[!0];g.remaining_=g.count_;for(var m=j.length-1;!l.propagationStopped_&&0<=m&&g.remaining_;m--)l.currentTarget=j[m],f&=goog.events.fireListeners_(g,j[m],d,!0,l);if(i){g=e[!1];g.remaining_=g.count_;for(m=0;!l.propagationStopped_&&m<j.length&&g.remaining_;m++)l.currentTarget=j[m],f&=goog.events.fireListeners_(g,j[m],d,!1,l)}}else f=goog.events.fireListener(c,l)}finally{j&&(j.length=0)}return f}d=new goog.events.BrowserEvent(b,this);return f=goog.events.fireListener(c,d)};
|
|
goog.events.markIeEvent_=function(a){var b=!1;if(0==a.keyCode)try{a.keyCode=-1;return}catch(c){b=!0}if(b||void 0==a.returnValue)a.returnValue=!0};goog.events.isMarkedIeEvent_=function(a){return 0>a.keyCode||void 0!=a.returnValue};goog.events.uniqueIdCounter_=0;goog.events.getUniqueId=function(a){return a+"_"+goog.events.uniqueIdCounter_++};goog.debug.entryPointRegistry.register(function(a){goog.events.handleBrowserEvent_=a(goog.events.handleBrowserEvent_)});goog.math.Box=function(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d};goog.math.Box.boundingBox=function(a){for(var b=new goog.math.Box(arguments[0].y,arguments[0].x,arguments[0].y,arguments[0].x),c=1;c<arguments.length;c++){var d=arguments[c];b.top=Math.min(b.top,d.y);b.right=Math.max(b.right,d.x);b.bottom=Math.max(b.bottom,d.y);b.left=Math.min(b.left,d.x)}return b};goog.math.Box.prototype.clone=function(){return new goog.math.Box(this.top,this.right,this.bottom,this.left)};
|
|
goog.DEBUG&&(goog.math.Box.prototype.toString=function(){return"("+this.top+"t, "+this.right+"r, "+this.bottom+"b, "+this.left+"l)"});goog.math.Box.prototype.contains=function(a){return goog.math.Box.contains(this,a)};goog.math.Box.prototype.expand=function(a,b,c,d){goog.isObject(a)?(this.top-=a.top,this.right+=a.right,this.bottom+=a.bottom,this.left-=a.left):(this.top-=a,this.right+=b,this.bottom+=c,this.left-=d);return this};
|
|
goog.math.Box.prototype.expandToInclude=function(a){this.left=Math.min(this.left,a.left);this.top=Math.min(this.top,a.top);this.right=Math.max(this.right,a.right);this.bottom=Math.max(this.bottom,a.bottom)};goog.math.Box.equals=function(a,b){return a==b?!0:!a||!b?!1:a.top==b.top&&a.right==b.right&&a.bottom==b.bottom&&a.left==b.left};
|
|
goog.math.Box.contains=function(a,b){return!a||!b?!1:b instanceof goog.math.Box?b.left>=a.left&&b.right<=a.right&&b.top>=a.top&&b.bottom<=a.bottom:b.x>=a.left&&b.x<=a.right&&b.y>=a.top&&b.y<=a.bottom};goog.math.Box.relativePositionX=function(a,b){return b.x<a.left?b.x-a.left:b.x>a.right?b.x-a.right:0};goog.math.Box.relativePositionY=function(a,b){return b.y<a.top?b.y-a.top:b.y>a.bottom?b.y-a.bottom:0};
|
|
goog.math.Box.distance=function(a,b){var c=goog.math.Box.relativePositionX(a,b),d=goog.math.Box.relativePositionY(a,b);return Math.sqrt(c*c+d*d)};goog.math.Box.intersects=function(a,b){return a.left<=b.right&&b.left<=a.right&&a.top<=b.bottom&&b.top<=a.bottom};goog.math.Box.intersectsWithPadding=function(a,b,c){return a.left<=b.right+c&&b.left<=a.right+c&&a.top<=b.bottom+c&&b.top<=a.bottom+c};goog.math.Rect=function(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d};goog.math.Rect.prototype.clone=function(){return new goog.math.Rect(this.left,this.top,this.width,this.height)};goog.math.Rect.prototype.toBox=function(){return new goog.math.Box(this.top,this.left+this.width,this.top+this.height,this.left)};goog.math.Rect.createFromBox=function(a){return new goog.math.Rect(a.left,a.top,a.right-a.left,a.bottom-a.top)};
|
|
goog.DEBUG&&(goog.math.Rect.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"});goog.math.Rect.equals=function(a,b){return a==b?!0:!a||!b?!1:a.left==b.left&&a.width==b.width&&a.top==b.top&&a.height==b.height};
|
|
goog.math.Rect.prototype.intersection=function(a){var b=Math.max(this.left,a.left),c=Math.min(this.left+this.width,a.left+a.width);if(b<=c){var d=Math.max(this.top,a.top),a=Math.min(this.top+this.height,a.top+a.height);if(d<=a)return this.left=b,this.top=d,this.width=c-b,this.height=a-d,!0}return!1};
|
|
goog.math.Rect.intersection=function(a,b){var c=Math.max(a.left,b.left),d=Math.min(a.left+a.width,b.left+b.width);if(c<=d){var e=Math.max(a.top,b.top),f=Math.min(a.top+a.height,b.top+b.height);if(e<=f)return new goog.math.Rect(c,e,d-c,f-e)}return null};goog.math.Rect.intersects=function(a,b){return a.left<=b.left+b.width&&b.left<=a.left+a.width&&a.top<=b.top+b.height&&b.top<=a.top+a.height};goog.math.Rect.prototype.intersects=function(a){return goog.math.Rect.intersects(this,a)};
|
|
goog.math.Rect.difference=function(a,b){var c=goog.math.Rect.intersection(a,b);if(!c||!c.height||!c.width)return[a.clone()];var c=[],d=a.top,e=a.height,f=a.left+a.width,g=a.top+a.height,h=b.left+b.width,i=b.top+b.height;b.top>a.top&&(c.push(new goog.math.Rect(a.left,a.top,a.width,b.top-a.top)),d=b.top,e-=b.top-a.top);i<g&&(c.push(new goog.math.Rect(a.left,i,a.width,g-i)),e=i-d);b.left>a.left&&c.push(new goog.math.Rect(a.left,d,b.left-a.left,e));h<f&&c.push(new goog.math.Rect(h,d,f-h,e));return c};
|
|
goog.math.Rect.prototype.difference=function(a){return goog.math.Rect.difference(this,a)};goog.math.Rect.prototype.boundingRect=function(a){var b=Math.max(this.left+this.width,a.left+a.width),c=Math.max(this.top+this.height,a.top+a.height);this.left=Math.min(this.left,a.left);this.top=Math.min(this.top,a.top);this.width=b-this.left;this.height=c-this.top};goog.math.Rect.boundingRect=function(a,b){if(!a||!b)return null;var c=a.clone();c.boundingRect(b);return c};
|
|
goog.math.Rect.prototype.contains=function(a){return a instanceof goog.math.Rect?this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};goog.math.Rect.prototype.getSize=function(){return new goog.math.Size(this.width,this.height)};goog.style={};goog.style.setStyle=function(a,b,c){goog.isString(b)?goog.style.setStyle_(a,c,b):goog.object.forEach(b,goog.partial(goog.style.setStyle_,a))};goog.style.setStyle_=function(a,b,c){a.style[goog.string.toCamelCase(c)]=b};goog.style.getStyle=function(a,b){return a.style[goog.string.toCamelCase(b)]||""};
|
|
goog.style.getComputedStyle=function(a,b){var c=goog.dom.getOwnerDocument(a);return c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(a,null))?c[b]||c.getPropertyValue(b)||"":""};goog.style.getCascadedStyle=function(a,b){return a.currentStyle?a.currentStyle[b]:null};goog.style.getStyle_=function(a,b){return goog.style.getComputedStyle(a,b)||goog.style.getCascadedStyle(a,b)||a.style&&a.style[b]};
|
|
goog.style.getComputedPosition=function(a){return goog.style.getStyle_(a,"position")};goog.style.getBackgroundColor=function(a){return goog.style.getStyle_(a,"backgroundColor")};goog.style.getComputedOverflowX=function(a){return goog.style.getStyle_(a,"overflowX")};goog.style.getComputedOverflowY=function(a){return goog.style.getStyle_(a,"overflowY")};goog.style.getComputedZIndex=function(a){return goog.style.getStyle_(a,"zIndex")};
|
|
goog.style.getComputedTextAlign=function(a){return goog.style.getStyle_(a,"textAlign")};goog.style.getComputedCursor=function(a){return goog.style.getStyle_(a,"cursor")};goog.style.setPosition=function(a,b,c){var d,e=goog.userAgent.GECKO&&(goog.userAgent.MAC||goog.userAgent.X11)&&goog.userAgent.isVersion("1.9");b instanceof goog.math.Coordinate?(d=b.x,b=b.y):(d=b,b=c);a.style.left=goog.style.getPixelStyleValue_(d,e);a.style.top=goog.style.getPixelStyleValue_(b,e)};
|
|
goog.style.getPosition=function(a){return new goog.math.Coordinate(a.offsetLeft,a.offsetTop)};goog.style.getClientViewportElement=function(a){a=a?goog.dom.getOwnerDocument(a):goog.dom.getDocument();return goog.userAgent.IE&&!goog.userAgent.isDocumentMode(9)&&!goog.dom.getDomHelper(a).isCss1CompatMode()?a.body:a.documentElement};goog.style.getViewportPageOffset=function(a){var b=a.body,a=a.documentElement;return new goog.math.Coordinate(b.scrollLeft||a.scrollLeft,b.scrollTop||a.scrollTop)};
|
|
goog.style.getBoundingClientRect_=function(a){var b=a.getBoundingClientRect();goog.userAgent.IE&&(a=a.ownerDocument,b.left-=a.documentElement.clientLeft+a.body.clientLeft,b.top-=a.documentElement.clientTop+a.body.clientTop);return b};
|
|
goog.style.getOffsetParent=function(a){if(goog.userAgent.IE&&!goog.userAgent.isDocumentMode(8))return a.offsetParent;for(var b=goog.dom.getOwnerDocument(a),c=goog.style.getStyle_(a,"position"),d="fixed"==c||"absolute"==c,a=a.parentNode;a&&a!=b;a=a.parentNode)if(c=goog.style.getStyle_(a,"position"),d=d&&"static"==c&&a!=b.documentElement&&a!=b.body,!d&&(a.scrollWidth>a.clientWidth||a.scrollHeight>a.clientHeight||"fixed"==c||"absolute"==c||"relative"==c))return a;return null};
|
|
goog.style.getVisibleRectForElement=function(a){for(var b=new goog.math.Box(0,Infinity,Infinity,0),c=goog.dom.getDomHelper(a),d=c.getDocument().body,e=c.getDocument().documentElement,f=c.getDocumentScrollElement();a=goog.style.getOffsetParent(a);)if((!goog.userAgent.IE||0!=a.clientWidth)&&(!goog.userAgent.WEBKIT||0!=a.clientHeight||a!=d)&&a!=d&&a!=e&&"visible"!=goog.style.getStyle_(a,"overflow")){var g=goog.style.getPageOffset(a),h=goog.style.getClientLeftTop(a);g.x+=h.x;g.y+=h.y;b.top=Math.max(b.top,
|
|
g.y);b.right=Math.min(b.right,g.x+a.clientWidth);b.bottom=Math.min(b.bottom,g.y+a.clientHeight);b.left=Math.max(b.left,g.x)}d=f.scrollLeft;f=f.scrollTop;b.left=Math.max(b.left,d);b.top=Math.max(b.top,f);c=c.getViewportSize();b.right=Math.min(b.right,d+c.width);b.bottom=Math.min(b.bottom,f+c.height);return 0<=b.top&&0<=b.left&&b.bottom>b.top&&b.right>b.left?b:null};
|
|
goog.style.getContainerOffsetToScrollInto=function(a,b,c){var d=goog.style.getPageOffset(a),e=goog.style.getPageOffset(b),f=goog.style.getBorderBox(b),g=d.x-e.x-f.left,d=d.y-e.y-f.top,e=b.clientWidth-a.offsetWidth,a=b.clientHeight-a.offsetHeight,f=b.scrollLeft,b=b.scrollTop;c?(f+=g-e/2,b+=d-a/2):(f+=Math.min(g,Math.max(g-e,0)),b+=Math.min(d,Math.max(d-a,0)));return new goog.math.Coordinate(f,b)};
|
|
goog.style.scrollIntoContainerView=function(a,b,c){a=goog.style.getContainerOffsetToScrollInto(a,b,c);b.scrollLeft=a.x;b.scrollTop=a.y};
|
|
goog.style.getClientLeftTop=function(a){if(goog.userAgent.GECKO&&!goog.userAgent.isVersion("1.9")){var b=parseFloat(goog.style.getComputedStyle(a,"borderLeftWidth"));if(goog.style.isRightToLeft(a))var c=a.offsetWidth-a.clientWidth-b-parseFloat(goog.style.getComputedStyle(a,"borderRightWidth")),b=b+c;return new goog.math.Coordinate(b,parseFloat(goog.style.getComputedStyle(a,"borderTopWidth")))}return new goog.math.Coordinate(a.clientLeft,a.clientTop)};
|
|
goog.style.getPageOffset=function(a){var b,c=goog.dom.getOwnerDocument(a),d=goog.style.getStyle_(a,"position");goog.asserts.assertObject(a,"Parameter is required");var e=goog.userAgent.GECKO&&c.getBoxObjectFor&&!a.getBoundingClientRect&&"absolute"==d&&(b=c.getBoxObjectFor(a))&&(0>b.screenX||0>b.screenY),f=new goog.math.Coordinate(0,0),g=goog.style.getClientViewportElement(c);if(a==g)return f;if(a.getBoundingClientRect)b=goog.style.getBoundingClientRect_(a),a=goog.dom.getDomHelper(c).getDocumentScroll(),
|
|
f.x=b.left+a.x,f.y=b.top+a.y;else if(c.getBoxObjectFor&&!e)b=c.getBoxObjectFor(a),a=c.getBoxObjectFor(g),f.x=b.screenX-a.screenX,f.y=b.screenY-a.screenY;else{b=a;do{f.x+=b.offsetLeft;f.y+=b.offsetTop;b!=a&&(f.x+=b.clientLeft||0,f.y+=b.clientTop||0);if(goog.userAgent.WEBKIT&&"fixed"==goog.style.getComputedPosition(b)){f.x+=c.body.scrollLeft;f.y+=c.body.scrollTop;break}b=b.offsetParent}while(b&&b!=a);if(goog.userAgent.OPERA||goog.userAgent.WEBKIT&&"absolute"==d)f.y-=c.body.offsetTop;for(b=a;(b=goog.style.getOffsetParent(b))&&
|
|
b!=c.body&&b!=g;)if(f.x-=b.scrollLeft,!goog.userAgent.OPERA||"TR"!=b.tagName)f.y-=b.scrollTop}return f};goog.style.getPageOffsetLeft=function(a){return goog.style.getPageOffset(a).x};goog.style.getPageOffsetTop=function(a){return goog.style.getPageOffset(a).y};
|
|
goog.style.getFramedPageOffset=function(a,b){var c=new goog.math.Coordinate(0,0),d=goog.dom.getWindow(goog.dom.getOwnerDocument(a)),e=a;do{var f=d==b?goog.style.getPageOffset(e):goog.style.getClientPosition(e);c.x+=f.x;c.y+=f.y}while(d&&d!=b&&(e=d.frameElement)&&(d=d.parent));return c};
|
|
goog.style.translateRectForAnotherFrame=function(a,b,c){if(b.getDocument()!=c.getDocument()){var d=b.getDocument().body,c=goog.style.getFramedPageOffset(d,c.getWindow()),c=goog.math.Coordinate.difference(c,goog.style.getPageOffset(d));goog.userAgent.IE&&!b.isCss1CompatMode()&&(c=goog.math.Coordinate.difference(c,b.getDocumentScroll()));a.left+=c.x;a.top+=c.y}};
|
|
goog.style.getRelativePosition=function(a,b){var c=goog.style.getClientPosition(a),d=goog.style.getClientPosition(b);return new goog.math.Coordinate(c.x-d.x,c.y-d.y)};
|
|
goog.style.getClientPosition=function(a){var b=new goog.math.Coordinate;if(a.nodeType==goog.dom.NodeType.ELEMENT){if(a.getBoundingClientRect){var c=goog.style.getBoundingClientRect_(a);b.x=c.left;b.y=c.top}else{var c=goog.dom.getDomHelper(a).getDocumentScroll(),d=goog.style.getPageOffset(a);b.x=d.x-c.x;b.y=d.y-c.y}goog.userAgent.GECKO&&!goog.userAgent.isVersion(12)&&(b=goog.math.Coordinate.sum(b,goog.style.getCssTranslation(a)))}else c=goog.isFunction(a.getBrowserEvent),d=a,a.targetTouches?d=a.targetTouches[0]:
|
|
c&&a.getBrowserEvent().targetTouches&&(d=a.getBrowserEvent().targetTouches[0]),b.x=d.clientX,b.y=d.clientY;return b};goog.style.setPageOffset=function(a,b,c){var d=goog.style.getPageOffset(a);b instanceof goog.math.Coordinate&&(c=b.y,b=b.x);goog.style.setPosition(a,a.offsetLeft+(b-d.x),a.offsetTop+(c-d.y))};
|
|
goog.style.setSize=function(a,b,c){if(b instanceof goog.math.Size)c=b.height,b=b.width;else if(void 0==c)throw Error("missing height argument");goog.style.setWidth(a,b);goog.style.setHeight(a,c)};goog.style.getPixelStyleValue_=function(a,b){"number"==typeof a&&(a=(b?Math.round(a):a)+"px");return a};goog.style.setHeight=function(a,b){a.style.height=goog.style.getPixelStyleValue_(b,!0)};goog.style.setWidth=function(a,b){a.style.width=goog.style.getPixelStyleValue_(b,!0)};
|
|
goog.style.getSize=function(a){if("none"!=goog.style.getStyle_(a,"display"))return goog.style.getSizeWithDisplay_(a);var b=a.style,c=b.display,d=b.visibility,e=b.position;b.visibility="hidden";b.position="absolute";b.display="inline";a=goog.style.getSizeWithDisplay_(a);b.display=c;b.position=e;b.visibility=d;return a};
|
|
goog.style.getSizeWithDisplay_=function(a){var b=a.offsetWidth,c=a.offsetHeight,d=goog.userAgent.WEBKIT&&!b&&!c;return(!goog.isDef(b)||d)&&a.getBoundingClientRect?(a=goog.style.getBoundingClientRect_(a),new goog.math.Size(a.right-a.left,a.bottom-a.top)):new goog.math.Size(b,c)};goog.style.getBounds=function(a){var b=goog.style.getPageOffset(a),a=goog.style.getSize(a);return new goog.math.Rect(b.x,b.y,a.width,a.height)};goog.style.toCamelCase=function(a){return goog.string.toCamelCase(String(a))};
|
|
goog.style.toSelectorCase=function(a){return goog.string.toSelectorCase(a)};goog.style.getOpacity=function(a){var b=a.style,a="";"opacity"in b?a=b.opacity:"MozOpacity"in b?a=b.MozOpacity:"filter"in b&&(b=b.filter.match(/alpha\(opacity=([\d.]+)\)/))&&(a=String(b[1]/100));return""==a?a:Number(a)};goog.style.setOpacity=function(a,b){var c=a.style;"opacity"in c?c.opacity=b:"MozOpacity"in c?c.MozOpacity=b:"filter"in c&&(c.filter=""===b?"":"alpha(opacity="+100*b+")")};
|
|
goog.style.setTransparentBackgroundImage=function(a,b){var c=a.style;goog.userAgent.IE&&!goog.userAgent.isVersion("8")?c.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+b+'", sizingMethod="crop")':(c.backgroundImage="url("+b+")",c.backgroundPosition="top left",c.backgroundRepeat="no-repeat")};goog.style.clearTransparentBackgroundImage=function(a){a=a.style;"filter"in a?a.filter="":a.backgroundImage="none"};goog.style.showElement=function(a,b){a.style.display=b?"":"none"};
|
|
goog.style.isElementShown=function(a){return"none"!=a.style.display};goog.style.installStyles=function(a,b){var c=goog.dom.getDomHelper(b),d=null;if(goog.userAgent.IE)d=c.getDocument().createStyleSheet(),goog.style.setStyles(d,a);else{var e=c.getElementsByTagNameAndClass("head")[0];e||(d=c.getElementsByTagNameAndClass("body")[0],e=c.createDom("head"),d.parentNode.insertBefore(e,d));d=c.createDom("style");goog.style.setStyles(d,a);c.appendChild(e,d)}return d};
|
|
goog.style.uninstallStyles=function(a){goog.dom.removeNode(a.ownerNode||a.owningElement||a)};goog.style.setStyles=function(a,b){goog.userAgent.IE?a.cssText=b:a.innerHTML=b};goog.style.setPreWrap=function(a){a=a.style;goog.userAgent.IE&&!goog.userAgent.isVersion("8")?(a.whiteSpace="pre",a.wordWrap="break-word"):a.whiteSpace=goog.userAgent.GECKO?"-moz-pre-wrap":"pre-wrap"};
|
|
goog.style.setInlineBlock=function(a){a=a.style;a.position="relative";goog.userAgent.IE&&!goog.userAgent.isVersion("8")?(a.zoom="1",a.display="inline"):a.display=goog.userAgent.GECKO?goog.userAgent.isVersion("1.9a")?"inline-block":"-moz-inline-box":"inline-block"};goog.style.isRightToLeft=function(a){return"rtl"==goog.style.getStyle_(a,"direction")};goog.style.unselectableStyle_=goog.userAgent.GECKO?"MozUserSelect":goog.userAgent.WEBKIT?"WebkitUserSelect":null;
|
|
goog.style.isUnselectable=function(a){return goog.style.unselectableStyle_?"none"==a.style[goog.style.unselectableStyle_].toLowerCase():goog.userAgent.IE||goog.userAgent.OPERA?"on"==a.getAttribute("unselectable"):!1};
|
|
goog.style.setUnselectable=function(a,b,c){var c=!c?a.getElementsByTagName("*"):null,d=goog.style.unselectableStyle_;if(d){if(b=b?"none":"",a.style[d]=b,c)for(var a=0,e;e=c[a];a++)e.style[d]=b}else if(goog.userAgent.IE||goog.userAgent.OPERA)if(b=b?"on":"",a.setAttribute("unselectable",b),c)for(a=0;e=c[a];a++)e.setAttribute("unselectable",b)};goog.style.getBorderBoxSize=function(a){return new goog.math.Size(a.offsetWidth,a.offsetHeight)};
|
|
goog.style.setBorderBoxSize=function(a,b){var c=goog.dom.getOwnerDocument(a),d=goog.dom.getDomHelper(c).isCss1CompatMode();if(goog.userAgent.IE&&(!d||!goog.userAgent.isVersion("8")))if(c=a.style,d){var d=goog.style.getPaddingBox(a),e=goog.style.getBorderBox(a);c.pixelWidth=b.width-e.left-d.left-d.right-e.right;c.pixelHeight=b.height-e.top-d.top-d.bottom-e.bottom}else c.pixelWidth=b.width,c.pixelHeight=b.height;else goog.style.setBoxSizingSize_(a,b,"border-box")};
|
|
goog.style.getContentBoxSize=function(a){var b=goog.dom.getOwnerDocument(a),c=goog.userAgent.IE&&a.currentStyle;if(c&&goog.dom.getDomHelper(b).isCss1CompatMode()&&"auto"!=c.width&&"auto"!=c.height&&!c.boxSizing)return b=goog.style.getIePixelValue_(a,c.width,"width","pixelWidth"),a=goog.style.getIePixelValue_(a,c.height,"height","pixelHeight"),new goog.math.Size(b,a);c=goog.style.getBorderBoxSize(a);b=goog.style.getPaddingBox(a);a=goog.style.getBorderBox(a);return new goog.math.Size(c.width-a.left-
|
|
b.left-b.right-a.right,c.height-a.top-b.top-b.bottom-a.bottom)};
|
|
goog.style.setContentBoxSize=function(a,b){var c=goog.dom.getOwnerDocument(a),d=goog.dom.getDomHelper(c).isCss1CompatMode();if(goog.userAgent.IE&&(!d||!goog.userAgent.isVersion("8")))if(c=a.style,d)c.pixelWidth=b.width,c.pixelHeight=b.height;else{var d=goog.style.getPaddingBox(a),e=goog.style.getBorderBox(a);c.pixelWidth=b.width+e.left+d.left+d.right+e.right;c.pixelHeight=b.height+e.top+d.top+d.bottom+e.bottom}else goog.style.setBoxSizingSize_(a,b,"content-box")};
|
|
goog.style.setBoxSizingSize_=function(a,b,c){a=a.style;goog.userAgent.GECKO?a.MozBoxSizing=c:goog.userAgent.WEBKIT?a.WebkitBoxSizing=c:a.boxSizing=c;a.width=Math.max(b.width,0)+"px";a.height=Math.max(b.height,0)+"px"};goog.style.getIePixelValue_=function(a,b,c,d){if(/^\d+px?$/.test(b))return parseInt(b,10);var e=a.style[c],f=a.runtimeStyle[c];a.runtimeStyle[c]=a.currentStyle[c];a.style[c]=b;b=a.style[d];a.style[c]=e;a.runtimeStyle[c]=f;return b};
|
|
goog.style.getIePixelDistance_=function(a,b){return goog.style.getIePixelValue_(a,goog.style.getCascadedStyle(a,b),"left","pixelLeft")};
|
|
goog.style.getBox_=function(a,b){if(goog.userAgent.IE){var c=goog.style.getIePixelDistance_(a,b+"Left"),d=goog.style.getIePixelDistance_(a,b+"Right"),e=goog.style.getIePixelDistance_(a,b+"Top"),f=goog.style.getIePixelDistance_(a,b+"Bottom");return new goog.math.Box(e,d,f,c)}c=goog.style.getComputedStyle(a,b+"Left");d=goog.style.getComputedStyle(a,b+"Right");e=goog.style.getComputedStyle(a,b+"Top");f=goog.style.getComputedStyle(a,b+"Bottom");return new goog.math.Box(parseFloat(e),parseFloat(d),parseFloat(f),
|
|
parseFloat(c))};goog.style.getPaddingBox=function(a){return goog.style.getBox_(a,"padding")};goog.style.getMarginBox=function(a){return goog.style.getBox_(a,"margin")};goog.style.ieBorderWidthKeywords_={thin:2,medium:4,thick:6};
|
|
goog.style.getIePixelBorder_=function(a,b){if("none"==goog.style.getCascadedStyle(a,b+"Style"))return 0;var c=goog.style.getCascadedStyle(a,b+"Width");return c in goog.style.ieBorderWidthKeywords_?goog.style.ieBorderWidthKeywords_[c]:goog.style.getIePixelValue_(a,c,"left","pixelLeft")};
|
|
goog.style.getBorderBox=function(a){if(goog.userAgent.IE){var b=goog.style.getIePixelBorder_(a,"borderLeft"),c=goog.style.getIePixelBorder_(a,"borderRight"),d=goog.style.getIePixelBorder_(a,"borderTop"),a=goog.style.getIePixelBorder_(a,"borderBottom");return new goog.math.Box(d,c,a,b)}b=goog.style.getComputedStyle(a,"borderLeftWidth");c=goog.style.getComputedStyle(a,"borderRightWidth");d=goog.style.getComputedStyle(a,"borderTopWidth");a=goog.style.getComputedStyle(a,"borderBottomWidth");return new goog.math.Box(parseFloat(d),
|
|
parseFloat(c),parseFloat(a),parseFloat(b))};goog.style.getFontFamily=function(a){var b=goog.dom.getOwnerDocument(a),c="";if(b.body.createTextRange){b=b.body.createTextRange();b.moveToElementText(a);try{c=b.queryCommandValue("FontName")}catch(d){c=""}}c||(c=goog.style.getStyle_(a,"fontFamily"));a=c.split(",");1<a.length&&(c=a[0]);return goog.string.stripQuotes(c,"\"'")};goog.style.lengthUnitRegex_=/[^\d]+$/;
|
|
goog.style.getLengthUnits=function(a){return(a=a.match(goog.style.lengthUnitRegex_))&&a[0]||null};goog.style.ABSOLUTE_CSS_LENGTH_UNITS_={cm:1,"in":1,mm:1,pc:1,pt:1};goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_={em:1,ex:1};
|
|
goog.style.getFontSize=function(a){var b=goog.style.getStyle_(a,"fontSize"),c=goog.style.getLengthUnits(b);if(b&&"px"==c)return parseInt(b,10);if(goog.userAgent.IE){if(c in goog.style.ABSOLUTE_CSS_LENGTH_UNITS_)return goog.style.getIePixelValue_(a,b,"left","pixelLeft");if(a.parentNode&&a.parentNode.nodeType==goog.dom.NodeType.ELEMENT&&c in goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_)return a=a.parentNode,c=goog.style.getStyle_(a,"fontSize"),goog.style.getIePixelValue_(a,b==c?"1em":b,"left","pixelLeft")}c=
|
|
goog.dom.createDom("span",{style:"visibility:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;height:1em;"});goog.dom.appendChild(a,c);b=c.offsetHeight;goog.dom.removeNode(c);return b};goog.style.parseStyleAttribute=function(a){var b={};goog.array.forEach(a.split(/\s*;\s*/),function(a){a=a.split(/\s*:\s*/);2==a.length&&(b[goog.string.toCamelCase(a[0].toLowerCase())]=a[1])});return b};
|
|
goog.style.toStyleAttribute=function(a){var b=[];goog.object.forEach(a,function(a,d){b.push(goog.string.toSelectorCase(d),":",a,";")});return b.join("")};goog.style.setFloat=function(a,b){a.style[goog.userAgent.IE?"styleFloat":"cssFloat"]=b};goog.style.getFloat=function(a){return a.style[goog.userAgent.IE?"styleFloat":"cssFloat"]||""};
|
|
goog.style.getScrollbarWidth=function(a){var b=goog.dom.createElement("div");a&&(b.className=a);b.style.cssText="overflow:auto;position:absolute;top:0;width:100px;height:100px";a=goog.dom.createElement("div");goog.style.setSize(a,"200px","200px");b.appendChild(a);goog.dom.appendChild(goog.dom.getDocument().body,b);a=b.offsetWidth-b.clientWidth;goog.dom.removeNode(b);return a};goog.style.MATRIX_TRANSLATION_REGEX_=/matrix\([0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, ([0-9\.\-]+)p?x?, ([0-9\.\-]+)p?x?\)/;
|
|
goog.style.getCssTranslation=function(a){var b;goog.userAgent.IE?b="-ms-transform":goog.userAgent.WEBKIT?b="-webkit-transform":goog.userAgent.OPERA?b="-o-transform":goog.userAgent.GECKO&&(b="-moz-transform");var c;b&&(c=goog.style.getStyle_(a,b));c||(c=goog.style.getStyle_(a,"transform"));if(!c)return new goog.math.Coordinate(0,0);a=c.match(goog.style.MATRIX_TRANSLATION_REGEX_);return!a?new goog.math.Coordinate(0,0):new goog.math.Coordinate(parseFloat(a[1]),parseFloat(a[2]))};goog.math.Vec2=function(a,b){this.x=a;this.y=b};goog.inherits(goog.math.Vec2,goog.math.Coordinate);goog.math.Vec2.randomUnit=function(){var a=2*Math.random()*Math.PI;return new goog.math.Vec2(Math.cos(a),Math.sin(a))};goog.math.Vec2.random=function(){var a=Math.sqrt(Math.random()),b=2*Math.random()*Math.PI;return new goog.math.Vec2(Math.cos(b)*a,Math.sin(b)*a)};goog.math.Vec2.fromCoordinate=function(a){return new goog.math.Vec2(a.x,a.y)};
|
|
goog.math.Vec2.prototype.clone=function(){return new goog.math.Vec2(this.x,this.y)};goog.math.Vec2.prototype.magnitude=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};goog.math.Vec2.prototype.squaredMagnitude=function(){return this.x*this.x+this.y*this.y};goog.math.Vec2.prototype.scale=function(a){this.x*=a;this.y*=a;return this};goog.math.Vec2.prototype.invert=function(){this.x=-this.x;this.y=-this.y;return this};goog.math.Vec2.prototype.normalize=function(){return this.scale(1/this.magnitude())};
|
|
goog.math.Vec2.prototype.add=function(a){this.x+=a.x;this.y+=a.y;return this};goog.math.Vec2.prototype.subtract=function(a){this.x-=a.x;this.y-=a.y;return this};goog.math.Vec2.prototype.rotate=function(a){var b=Math.cos(a),a=Math.sin(a),c=this.y*b+this.x*a;this.x=this.x*b-this.y*a;this.y=c;return this};goog.math.Vec2.rotateAroundPoint=function(a,b,c){return a.clone().subtract(b).rotate(c).add(b)};goog.math.Vec2.prototype.equals=function(a){return this==a||!!a&&this.x==a.x&&this.y==a.y};
|
|
goog.math.Vec2.distance=goog.math.Coordinate.distance;goog.math.Vec2.squaredDistance=goog.math.Coordinate.squaredDistance;goog.math.Vec2.equals=goog.math.Coordinate.equals;goog.math.Vec2.sum=function(a,b){return new goog.math.Vec2(a.x+b.x,a.y+b.y)};goog.math.Vec2.difference=function(a,b){return new goog.math.Vec2(a.x-b.x,a.y-b.y)};goog.math.Vec2.dot=function(a,b){return a.x*b.x+a.y*b.y};
|
|
goog.math.Vec2.lerp=function(a,b,c){return new goog.math.Vec2(goog.math.lerp(a.x,b.x,c),goog.math.lerp(a.y,b.y,c))};ol.Coordinate=function(a,b){goog.math.Vec2.call(this,a,b)};goog.inherits(ol.Coordinate,goog.math.Vec2);ol.Coordinate.ZERO=new ol.Coordinate(0,0);ol.Coordinate.createStringXY=function(a){return function(b){return ol.Coordinate.toStringXY(b,a)}};ol.Coordinate.degreesToStringHDMS_=function(a,b){var c=goog.math.modulo(a+180,360)-180,d=Math.abs(Math.round(3600*c));return Math.floor(d/3600)+"\u00b0 "+Math.floor(d/60%60)+"\u2032 "+Math.floor(d%60)+"\u2033 "+b.charAt(0>c?1:0)};
|
|
ol.Coordinate.toStringHDMS=function(a){return goog.isDef(a)?ol.Coordinate.degreesToStringHDMS_(a.y,"NS")+" "+ol.Coordinate.degreesToStringHDMS_(a.x,"EW"):""};ol.Coordinate.toStringXY=function(a,b){if(goog.isDef(a)){var c=b||0;return a.x.toFixed(c)+", "+a.y.toFixed(c)}return""};ol.Coordinate.fromProjectedArray=function(a,b){var c=b.charAt(0);return"n"===c||"s"===c?new ol.Coordinate(a[1],a[0]):new ol.Coordinate(a[0],a[1])};goog.uri={};goog.uri.utils={};goog.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};goog.uri.utils.buildFromEncodedParts=function(a,b,c,d,e,f,g){var h="";a&&(h+=a+":");c&&(h+="//",b&&(h+=b+"@"),h+=c,d&&(h+=":"+d));e&&(h+=e);f&&(h+="?"+f);g&&(h+="#"+g);return h};goog.uri.utils.splitRe_=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$");
|
|
goog.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};goog.uri.utils.split=function(a){return a.match(goog.uri.utils.splitRe_)};goog.uri.utils.decodeIfPossible_=function(a){return a&&decodeURIComponent(a)};goog.uri.utils.getComponentByIndex_=function(a,b){return goog.uri.utils.split(b)[a]||null};goog.uri.utils.getScheme=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME,a)};
|
|
goog.uri.utils.getEffectiveScheme=function(a){a=goog.uri.utils.getScheme(a);!a&&self.location&&(a=self.location.protocol,a=a.substr(0,a.length-1));return a?a.toLowerCase():""};goog.uri.utils.getUserInfoEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO,a)};goog.uri.utils.getUserInfo=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(a))};
|
|
goog.uri.utils.getDomainEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN,a)};goog.uri.utils.getDomain=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(a))};goog.uri.utils.getPort=function(a){return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT,a))||null};goog.uri.utils.getPathEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH,a)};
|
|
goog.uri.utils.getPath=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(a))};goog.uri.utils.getQueryData=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA,a)};goog.uri.utils.getFragmentEncoded=function(a){var b=a.indexOf("#");return 0>b?null:a.substr(b+1)};goog.uri.utils.setFragmentEncoded=function(a,b){return goog.uri.utils.removeFragment(a)+(b?"#"+b:"")};goog.uri.utils.getFragment=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(a))};
|
|
goog.uri.utils.getHost=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};goog.uri.utils.getPathAndAfter=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(null,null,null,null,a[goog.uri.utils.ComponentIndex.PATH],a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};
|
|
goog.uri.utils.removeFragment=function(a){var b=a.indexOf("#");return 0>b?a:a.substr(0,b)};goog.uri.utils.haveSameDomain=function(a,b){var c=goog.uri.utils.split(a),d=goog.uri.utils.split(b);return c[goog.uri.utils.ComponentIndex.DOMAIN]==d[goog.uri.utils.ComponentIndex.DOMAIN]&&c[goog.uri.utils.ComponentIndex.SCHEME]==d[goog.uri.utils.ComponentIndex.SCHEME]&&c[goog.uri.utils.ComponentIndex.PORT]==d[goog.uri.utils.ComponentIndex.PORT]};
|
|
goog.uri.utils.assertNoFragmentsOrQueries_=function(a){if(goog.DEBUG&&(0<=a.indexOf("#")||0<=a.indexOf("?")))throw Error("goog.uri.utils: Fragment or query identifiers are not supported: ["+a+"]");};goog.uri.utils.appendQueryData_=function(a){if(a[1]){var b=a[0],c=b.indexOf("#");0<=c&&(a.push(b.substr(c)),a[0]=b=b.substr(0,c));c=b.indexOf("?");0>c?a[1]="?":c==b.length-1&&(a[1]=void 0)}return a.join("")};
|
|
goog.uri.utils.appendKeyValuePairs_=function(a,b,c){if(goog.isArray(b)){goog.asserts.assertArray(b);for(var d=0;d<b.length;d++)goog.uri.utils.appendKeyValuePairs_(a,String(b[d]),c)}else null!=b&&c.push("&",a,""===b?"":"=",goog.string.urlEncode(b))};goog.uri.utils.buildQueryDataBuffer_=function(a,b,c){goog.asserts.assert(0==Math.max(b.length-(c||0),0)%2,"goog.uri.utils: Key/value lists must be even in length.");for(c=c||0;c<b.length;c+=2)goog.uri.utils.appendKeyValuePairs_(b[c],b[c+1],a);return a};
|
|
goog.uri.utils.buildQueryData=function(a,b){var c=goog.uri.utils.buildQueryDataBuffer_([],a,b);c[0]="";return c.join("")};goog.uri.utils.buildQueryDataBufferFromMap_=function(a,b){for(var c in b)goog.uri.utils.appendKeyValuePairs_(c,b[c],a);return a};goog.uri.utils.buildQueryDataFromMap=function(a){a=goog.uri.utils.buildQueryDataBufferFromMap_([],a);a[0]="";return a.join("")};
|
|
goog.uri.utils.appendParams=function(a,b){return goog.uri.utils.appendQueryData_(2==arguments.length?goog.uri.utils.buildQueryDataBuffer_([a],arguments[1],0):goog.uri.utils.buildQueryDataBuffer_([a],arguments,1))};goog.uri.utils.appendParamsFromMap=function(a,b){return goog.uri.utils.appendQueryData_(goog.uri.utils.buildQueryDataBufferFromMap_([a],b))};goog.uri.utils.appendParam=function(a,b,c){return goog.uri.utils.appendQueryData_([a,"&",b,"=",goog.string.urlEncode(c)])};
|
|
goog.uri.utils.findParam_=function(a,b,c,d){for(var e=c.length;0<=(b=a.indexOf(c,b))&&b<d;){var f=a.charCodeAt(b-1);if(f==goog.uri.utils.CharCode_.AMPERSAND||f==goog.uri.utils.CharCode_.QUESTION)if(f=a.charCodeAt(b+e),!f||f==goog.uri.utils.CharCode_.EQUAL||f==goog.uri.utils.CharCode_.AMPERSAND||f==goog.uri.utils.CharCode_.HASH)return b;b+=e+1}return-1};goog.uri.utils.hashOrEndRe_=/#|$/;goog.uri.utils.hasParam=function(a,b){return 0<=goog.uri.utils.findParam_(a,0,b,a.search(goog.uri.utils.hashOrEndRe_))};
|
|
goog.uri.utils.getParamValue=function(a,b){var c=a.search(goog.uri.utils.hashOrEndRe_),d=goog.uri.utils.findParam_(a,0,b,c);if(0>d)return null;var e=a.indexOf("&",d);if(0>e||e>c)e=c;d+=b.length+1;return goog.string.urlDecode(a.substr(d,e-d))};goog.uri.utils.getParamValues=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));){d=a.indexOf("&",e);if(0>d||d>c)d=c;e+=b.length+1;f.push(goog.string.urlDecode(a.substr(e,d-e)))}return f};
|
|
goog.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;goog.uri.utils.removeParam=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));)f.push(a.substring(d,e)),d=Math.min(a.indexOf("&",e)+1||c,c);f.push(a.substr(d));return f.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_,"$1")};goog.uri.utils.setParam=function(a,b,c){return goog.uri.utils.appendParam(goog.uri.utils.removeParam(a,b),b,c)};
|
|
goog.uri.utils.appendPath=function(a,b){goog.uri.utils.assertNoFragmentsOrQueries_(a);goog.string.endsWith(a,"/")&&(a=a.substr(0,a.length-1));goog.string.startsWith(b,"/")&&(b=b.substr(1));return goog.string.buildString(a,"/",b)};goog.uri.utils.StandardQueryParam={RANDOM:"zx"};goog.uri.utils.makeUnique=function(a){return goog.uri.utils.setParam(a,goog.uri.utils.StandardQueryParam.RANDOM,goog.string.getRandomString())};goog.Uri=function(a,b){var c;a instanceof goog.Uri?(this.ignoreCase_=goog.isDef(b)?b:a.getIgnoreCase(),this.setScheme(a.getScheme()),this.setUserInfo(a.getUserInfo()),this.setDomain(a.getDomain()),this.setPort(a.getPort()),this.setPath(a.getPath()),this.setQueryData(a.getQueryData().clone()),this.setFragment(a.getFragment())):a&&(c=goog.uri.utils.split(String(a)))?(this.ignoreCase_=!!b,this.setScheme(c[goog.uri.utils.ComponentIndex.SCHEME]||"",!0),this.setUserInfo(c[goog.uri.utils.ComponentIndex.USER_INFO]||
|
|
"",!0),this.setDomain(c[goog.uri.utils.ComponentIndex.DOMAIN]||"",!0),this.setPort(c[goog.uri.utils.ComponentIndex.PORT]),this.setPath(c[goog.uri.utils.ComponentIndex.PATH]||"",!0),this.setQueryData(c[goog.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),this.setFragment(c[goog.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!b,this.queryData_=new goog.Uri.QueryData(null,null,this.ignoreCase_))};goog.Uri.preserveParameterTypesCompatibilityFlag=!1;goog.Uri.RANDOM_PARAM=goog.uri.utils.StandardQueryParam.RANDOM;
|
|
goog.Uri.prototype.scheme_="";goog.Uri.prototype.userInfo_="";goog.Uri.prototype.domain_="";goog.Uri.prototype.port_=null;goog.Uri.prototype.path_="";goog.Uri.prototype.fragment_="";goog.Uri.prototype.isReadOnly_=!1;goog.Uri.prototype.ignoreCase_=!1;
|
|
goog.Uri.prototype.toString=function(){var a=[],b=this.getScheme();b&&a.push(goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInSchemeOrUserInfo_),":");if(b=this.getDomain()){a.push("//");var c=this.getUserInfo();c&&a.push(goog.Uri.encodeSpecialChars_(c,goog.Uri.reDisallowedInSchemeOrUserInfo_),"@");a.push(goog.string.urlEncode(b));b=this.getPort();null!=b&&a.push(":",String(b))}if(b=this.getPath())this.hasDomain()&&"/"!=b.charAt(0)&&a.push("/"),a.push(goog.Uri.encodeSpecialChars_(b,"/"==b.charAt(0)?
|
|
goog.Uri.reDisallowedInAbsolutePath_:goog.Uri.reDisallowedInRelativePath_));(b=this.getEncodedQuery())&&a.push("?",b);(b=this.getFragment())&&a.push("#",goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInFragment_));return a.join("")};
|
|
goog.Uri.prototype.resolve=function(a){var b=this.clone(),c=a.hasScheme();c?b.setScheme(a.getScheme()):c=a.hasUserInfo();c?b.setUserInfo(a.getUserInfo()):c=a.hasDomain();c?b.setDomain(a.getDomain()):c=a.hasPort();var d=a.getPath();if(c)b.setPort(a.getPort());else if(c=a.hasPath()){if("/"!=d.charAt(0))if(this.hasDomain()&&!this.hasPath())d="/"+d;else{var e=b.getPath().lastIndexOf("/");-1!=e&&(d=b.getPath().substr(0,e+1)+d)}d=goog.Uri.removeDotSegments(d)}c?b.setPath(d):c=a.hasQuery();c?b.setQueryData(a.getDecodedQuery()):
|
|
c=a.hasFragment();c&&b.setFragment(a.getFragment());return b};goog.Uri.prototype.clone=function(){return new goog.Uri(this)};goog.Uri.prototype.getScheme=function(){return this.scheme_};goog.Uri.prototype.setScheme=function(a,b){this.enforceReadOnly();if(this.scheme_=b?goog.Uri.decodeOrEmpty_(a):a)this.scheme_=this.scheme_.replace(/:$/,"");return this};goog.Uri.prototype.hasScheme=function(){return!!this.scheme_};goog.Uri.prototype.getUserInfo=function(){return this.userInfo_};
|
|
goog.Uri.prototype.setUserInfo=function(a,b){this.enforceReadOnly();this.userInfo_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasUserInfo=function(){return!!this.userInfo_};goog.Uri.prototype.getDomain=function(){return this.domain_};goog.Uri.prototype.setDomain=function(a,b){this.enforceReadOnly();this.domain_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasDomain=function(){return!!this.domain_};goog.Uri.prototype.getPort=function(){return this.port_};
|
|
goog.Uri.prototype.setPort=function(a){this.enforceReadOnly();if(a){a=Number(a);if(isNaN(a)||0>a)throw Error("Bad port number "+a);this.port_=a}else this.port_=null;return this};goog.Uri.prototype.hasPort=function(){return null!=this.port_};goog.Uri.prototype.getPath=function(){return this.path_};goog.Uri.prototype.setPath=function(a,b){this.enforceReadOnly();this.path_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasPath=function(){return!!this.path_};
|
|
goog.Uri.prototype.hasQuery=function(){return""!==this.queryData_.toString()};goog.Uri.prototype.setQueryData=function(a,b){this.enforceReadOnly();a instanceof goog.Uri.QueryData?(this.queryData_=a,this.queryData_.setIgnoreCase(this.ignoreCase_)):(b||(a=goog.Uri.encodeSpecialChars_(a,goog.Uri.reDisallowedInQuery_)),this.queryData_=new goog.Uri.QueryData(a,null,this.ignoreCase_));return this};goog.Uri.prototype.setQuery=function(a,b){return this.setQueryData(a,b)};
|
|
goog.Uri.prototype.getEncodedQuery=function(){return this.queryData_.toString()};goog.Uri.prototype.getDecodedQuery=function(){return this.queryData_.toDecodedString()};goog.Uri.prototype.getQueryData=function(){return this.queryData_};goog.Uri.prototype.getQuery=function(){return this.getEncodedQuery()};goog.Uri.prototype.setParameterValue=function(a,b){this.enforceReadOnly();this.queryData_.set(a,b);return this};
|
|
goog.Uri.prototype.setParameterValues=function(a,b){this.enforceReadOnly();goog.isArray(b)||(b=[String(b)]);this.queryData_.setValues(a,b);return this};goog.Uri.prototype.getParameterValues=function(a){return this.queryData_.getValues(a)};goog.Uri.prototype.getParameterValue=function(a){return this.queryData_.get(a)};goog.Uri.prototype.getFragment=function(){return this.fragment_};goog.Uri.prototype.setFragment=function(a,b){this.enforceReadOnly();this.fragment_=b?goog.Uri.decodeOrEmpty_(a):a;return this};
|
|
goog.Uri.prototype.hasFragment=function(){return!!this.fragment_};goog.Uri.prototype.hasSameDomainAs=function(a){return(!this.hasDomain()&&!a.hasDomain()||this.getDomain()==a.getDomain())&&(!this.hasPort()&&!a.hasPort()||this.getPort()==a.getPort())};goog.Uri.prototype.makeUnique=function(){this.enforceReadOnly();this.setParameterValue(goog.Uri.RANDOM_PARAM,goog.string.getRandomString());return this};goog.Uri.prototype.removeParameter=function(a){this.enforceReadOnly();this.queryData_.remove(a);return this};
|
|
goog.Uri.prototype.setReadOnly=function(a){this.isReadOnly_=a;return this};goog.Uri.prototype.isReadOnly=function(){return this.isReadOnly_};goog.Uri.prototype.enforceReadOnly=function(){if(this.isReadOnly_)throw Error("Tried to modify a read-only Uri");};goog.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a);return this};goog.Uri.prototype.getIgnoreCase=function(){return this.ignoreCase_};
|
|
goog.Uri.parse=function(a,b){return a instanceof goog.Uri?a.clone():new goog.Uri(a,b)};goog.Uri.create=function(a,b,c,d,e,f,g,h){h=new goog.Uri(null,h);a&&h.setScheme(a);b&&h.setUserInfo(b);c&&h.setDomain(c);d&&h.setPort(d);e&&h.setPath(e);f&&h.setQueryData(f);g&&h.setFragment(g);return h};goog.Uri.resolve=function(a,b){a instanceof goog.Uri||(a=goog.Uri.parse(a));b instanceof goog.Uri||(b=goog.Uri.parse(b));return a.resolve(b)};
|
|
goog.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(!goog.string.contains(a,"./")&&!goog.string.contains(a,"/."))return a;for(var b=goog.string.startsWith(a,"/"),a=a.split("/"),c=[],d=0;d<a.length;){var e=a[d++];"."==e?b&&d==a.length&&c.push(""):".."==e?((1<c.length||1==c.length&&""!=c[0])&&c.pop(),b&&d==a.length&&c.push("")):(c.push(e),b=!0)}return c.join("/")};goog.Uri.decodeOrEmpty_=function(a){return a?decodeURIComponent(a):""};
|
|
goog.Uri.encodeSpecialChars_=function(a,b){return goog.isString(a)?encodeURI(a).replace(b,goog.Uri.encodeChar_):null};goog.Uri.encodeChar_=function(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)};goog.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;goog.Uri.reDisallowedInRelativePath_=/[\#\?:]/g;goog.Uri.reDisallowedInAbsolutePath_=/[\#\?]/g;goog.Uri.reDisallowedInQuery_=/[\#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g;
|
|
goog.Uri.haveSameDomain=function(a,b){var c=goog.uri.utils.split(a),d=goog.uri.utils.split(b);return c[goog.uri.utils.ComponentIndex.DOMAIN]==d[goog.uri.utils.ComponentIndex.DOMAIN]&&c[goog.uri.utils.ComponentIndex.PORT]==d[goog.uri.utils.ComponentIndex.PORT]};goog.Uri.QueryData=function(a,b,c){this.encodedQuery_=a||null;this.ignoreCase_=!!c};
|
|
goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_=new goog.structs.Map,this.count_=0,this.encodedQuery_))for(var a=this.encodedQuery_.split("&"),b=0;b<a.length;b++){var c=a[b].indexOf("="),d=null,e=null;0<=c?(d=a[b].substring(0,c),e=a[b].substring(c+1)):d=a[b];d=goog.string.urlDecode(d);d=this.getKeyName_(d);this.add(d,e?goog.string.urlDecode(e):"")}};
|
|
goog.Uri.QueryData.createFromMap=function(a,b,c){b=goog.structs.getKeys(a);if("undefined"==typeof b)throw Error("Keys are undefined");for(var c=new goog.Uri.QueryData(null,null,c),a=goog.structs.getValues(a),d=0;d<b.length;d++){var e=b[d],f=a[d];goog.isArray(f)?c.setValues(e,f):c.add(e,f)}return c};
|
|
goog.Uri.QueryData.createFromKeysValues=function(a,b,c,d){if(a.length!=b.length)throw Error("Mismatched lengths for keys/values");c=new goog.Uri.QueryData(null,null,d);for(d=0;d<a.length;d++)c.add(a[d],b[d]);return c};goog.Uri.QueryData.prototype.keyMap_=null;goog.Uri.QueryData.prototype.count_=null;goog.Uri.QueryData.prototype.getCount=function(){this.ensureKeyMapInitialized_();return this.count_};
|
|
goog.Uri.QueryData.prototype.add=function(a,b){this.ensureKeyMapInitialized_();this.invalidateCache_();var a=this.getKeyName_(a),c=this.keyMap_.get(a);c||this.keyMap_.set(a,c=[]);c.push(b);this.count_++;return this};goog.Uri.QueryData.prototype.remove=function(a){this.ensureKeyMapInitialized_();a=this.getKeyName_(a);return this.keyMap_.containsKey(a)?(this.invalidateCache_(),this.count_-=this.keyMap_.get(a).length,this.keyMap_.remove(a)):!1};
|
|
goog.Uri.QueryData.prototype.clear=function(){this.invalidateCache_();this.keyMap_=null;this.count_=0};goog.Uri.QueryData.prototype.isEmpty=function(){this.ensureKeyMapInitialized_();return 0==this.count_};goog.Uri.QueryData.prototype.containsKey=function(a){this.ensureKeyMapInitialized_();a=this.getKeyName_(a);return this.keyMap_.containsKey(a)};goog.Uri.QueryData.prototype.containsValue=function(a){var b=this.getValues();return goog.array.contains(b,a)};
|
|
goog.Uri.QueryData.prototype.getKeys=function(){this.ensureKeyMapInitialized_();for(var a=this.keyMap_.getValues(),b=this.keyMap_.getKeys(),c=[],d=0;d<b.length;d++)for(var e=a[d],f=0;f<e.length;f++)c.push(b[d]);return c};goog.Uri.QueryData.prototype.getValues=function(a){this.ensureKeyMapInitialized_();var b=[];if(a)this.containsKey(a)&&(b=goog.array.concat(b,this.keyMap_.get(this.getKeyName_(a))));else for(var a=this.keyMap_.getValues(),c=0;c<a.length;c++)b=goog.array.concat(b,a[c]);return b};
|
|
goog.Uri.QueryData.prototype.set=function(a,b){this.ensureKeyMapInitialized_();this.invalidateCache_();a=this.getKeyName_(a);this.containsKey(a)&&(this.count_-=this.keyMap_.get(a).length);this.keyMap_.set(a,[b]);this.count_++;return this};goog.Uri.QueryData.prototype.get=function(a,b){var c=a?this.getValues(a):[];return goog.Uri.preserveParameterTypesCompatibilityFlag?0<c.length?c[0]:b:0<c.length?String(c[0]):b};
|
|
goog.Uri.QueryData.prototype.setValues=function(a,b){this.remove(a);0<b.length&&(this.invalidateCache_(),this.keyMap_.set(this.getKeyName_(a),goog.array.clone(b)),this.count_+=b.length)};
|
|
goog.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var a=[],b=this.keyMap_.getKeys(),c=0;c<b.length;c++)for(var d=b[c],e=goog.string.urlEncode(d),d=this.getValues(d),f=0;f<d.length;f++){var g=e;""!==d[f]&&(g+="="+goog.string.urlEncode(d[f]));a.push(g)}return this.encodedQuery_=a.join("&")};goog.Uri.QueryData.prototype.toDecodedString=function(){return goog.Uri.decodeOrEmpty_(this.toString())};
|
|
goog.Uri.QueryData.prototype.invalidateCache_=function(){this.encodedQuery_=null};goog.Uri.QueryData.prototype.filterKeys=function(a){this.ensureKeyMapInitialized_();goog.structs.forEach(this.keyMap_,function(b,c){goog.array.contains(a,c)||this.remove(c)},this);return this};goog.Uri.QueryData.prototype.clone=function(){var a=new goog.Uri.QueryData;a.encodedQuery_=this.encodedQuery_;this.keyMap_&&(a.keyMap_=this.keyMap_.clone());return a};
|
|
goog.Uri.QueryData.prototype.getKeyName_=function(a){a=String(a);this.ignoreCase_&&(a=a.toLowerCase());return a};goog.Uri.QueryData.prototype.setIgnoreCase=function(a){a&&!this.ignoreCase_&&(this.ensureKeyMapInitialized_(),this.invalidateCache_(),goog.structs.forEach(this.keyMap_,function(a,c){var d=c.toLowerCase();c!=d&&(this.remove(c),this.setValues(d,a))},this));this.ignoreCase_=a};
|
|
goog.Uri.QueryData.prototype.extend=function(a){for(var b=0;b<arguments.length;b++)goog.structs.forEach(arguments[b],function(a,b){this.add(b,a)},this)};goog.events.EventTarget=function(){goog.Disposable.call(this)};goog.inherits(goog.events.EventTarget,goog.Disposable);goog.events.EventTarget.prototype.customEvent_=!0;goog.events.EventTarget.prototype.parentEventTarget_=null;goog.events.EventTarget.prototype.getParentEventTarget=function(){return this.parentEventTarget_};goog.events.EventTarget.prototype.setParentEventTarget=function(a){this.parentEventTarget_=a};
|
|
goog.events.EventTarget.prototype.addEventListener=function(a,b,c,d){goog.events.listen(this,a,b,c,d)};goog.events.EventTarget.prototype.removeEventListener=function(a,b,c,d){goog.events.unlisten(this,a,b,c,d)};goog.events.EventTarget.prototype.dispatchEvent=function(a){return goog.events.dispatchEvent(this,a)};goog.events.EventTarget.prototype.disposeInternal=function(){goog.events.EventTarget.superClass_.disposeInternal.call(this);goog.events.removeAll(this);this.parentEventTarget_=null};goog.Timer=function(a,b){goog.events.EventTarget.call(this);this.interval_=a||1;this.timerObject_=b||goog.Timer.defaultTimerObject;this.boundTick_=goog.bind(this.tick_,this);this.last_=goog.now()};goog.inherits(goog.Timer,goog.events.EventTarget);goog.Timer.MAX_TIMEOUT_=2147483647;goog.Timer.prototype.enabled=!1;goog.Timer.defaultTimerObject=goog.global.window;goog.Timer.intervalScale=0.8;goog.Timer.prototype.timer_=null;goog.Timer.prototype.getInterval=function(){return this.interval_};
|
|
goog.Timer.prototype.setInterval=function(a){this.interval_=a;this.timer_&&this.enabled?(this.stop(),this.start()):this.timer_&&this.stop()};goog.Timer.prototype.tick_=function(){if(this.enabled){var a=goog.now()-this.last_;0<a&&a<this.interval_*goog.Timer.intervalScale?this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-a):(this.dispatchTick(),this.enabled&&(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=goog.now()))}};
|
|
goog.Timer.prototype.dispatchTick=function(){this.dispatchEvent(goog.Timer.TICK)};goog.Timer.prototype.start=function(){this.enabled=!0;this.timer_||(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=goog.now())};goog.Timer.prototype.stop=function(){this.enabled=!1;this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null)};goog.Timer.prototype.disposeInternal=function(){goog.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};
|
|
goog.Timer.TICK="tick";goog.Timer.callOnce=function(a,b,c){if(goog.isFunction(a))c&&(a=goog.bind(a,c));else if(a&&"function"==typeof a.handleEvent)a=goog.bind(a.handleEvent,a);else throw Error("Invalid listener argument");return b>goog.Timer.MAX_TIMEOUT_?-1:goog.Timer.defaultTimerObject.setTimeout(a,b||0)};goog.Timer.clear=function(a){goog.Timer.defaultTimerObject.clearTimeout(a)};goog.async={};goog.async.Delay=function(a,b,c){goog.Disposable.call(this);this.listener_=a;this.interval_=b||0;this.handler_=c;this.callback_=goog.bind(this.doAction_,this)};goog.inherits(goog.async.Delay,goog.Disposable);goog.Delay=goog.async.Delay;goog.async.Delay.prototype.id_=0;goog.async.Delay.prototype.disposeInternal=function(){goog.async.Delay.superClass_.disposeInternal.call(this);this.stop();delete this.listener_;delete this.handler_};
|
|
goog.async.Delay.prototype.start=function(a){this.stop();this.id_=goog.Timer.callOnce(this.callback_,goog.isDef(a)?a:this.interval_)};goog.async.Delay.prototype.stop=function(){this.isActive()&&goog.Timer.clear(this.id_);this.id_=0};goog.async.Delay.prototype.fire=function(){this.stop();this.doAction_()};goog.async.Delay.prototype.fireIfActive=function(){this.isActive()&&this.fire()};goog.async.Delay.prototype.isActive=function(){return 0!=this.id_};
|
|
goog.async.Delay.prototype.doAction_=function(){this.id_=0;this.listener_&&this.listener_.call(this.handler_)};goog.functions={};goog.functions.constant=function(a){return function(){return a}};goog.functions.FALSE=goog.functions.constant(!1);goog.functions.TRUE=goog.functions.constant(!0);goog.functions.NULL=goog.functions.constant(null);goog.functions.identity=function(a){return a};goog.functions.error=function(a){return function(){throw Error(a);}};goog.functions.lock=function(a,b){b=b||0;return function(){return a.apply(this,Array.prototype.slice.call(arguments,0,b))}};
|
|
goog.functions.withReturnValue=function(a,b){return goog.functions.sequence(a,goog.functions.constant(b))};goog.functions.compose=function(a){var b=arguments,c=b.length;return function(){var a;c&&(a=b[c-1].apply(this,arguments));for(var e=c-2;0<=e;e--)a=b[e].call(this,a);return a}};goog.functions.sequence=function(a){var b=arguments,c=b.length;return function(){for(var a,e=0;e<c;e++)a=b[e].apply(this,arguments);return a}};
|
|
goog.functions.and=function(a){var b=arguments,c=b.length;return function(){for(var a=0;a<c;a++)if(!b[a].apply(this,arguments))return!1;return!0}};goog.functions.or=function(a){var b=arguments,c=b.length;return function(){for(var a=0;a<c;a++)if(b[a].apply(this,arguments))return!0;return!1}};goog.functions.not=function(a){return function(){return!a.apply(this,arguments)}};
|
|
goog.functions.create=function(a,b){var c=function(){};c.prototype=a.prototype;c=new c;a.apply(c,Array.prototype.slice.call(arguments,1));return c};goog.async.AnimationDelay=function(a,b,c){goog.Disposable.call(this);this.listener_=a;this.handler_=c;this.win_=b||window;this.callback_=goog.bind(this.doAction_,this)};goog.inherits(goog.async.AnimationDelay,goog.Disposable);goog.async.AnimationDelay.prototype.id_=null;goog.async.AnimationDelay.prototype.usingListeners_=!1;goog.async.AnimationDelay.TIMEOUT=20;goog.async.AnimationDelay.MOZ_BEFORE_PAINT_EVENT_="MozBeforePaint";
|
|
goog.async.AnimationDelay.prototype.start=function(){this.stop();this.usingListeners_=!1;var a=this.getRaf_(),b=this.getCancelRaf_();a&&!b&&this.win_.mozRequestAnimationFrame?(this.id_=goog.events.listen(this.win_,goog.async.AnimationDelay.MOZ_BEFORE_PAINT_EVENT_,this.callback_),this.win_.mozRequestAnimationFrame(null),this.usingListeners_=!0):this.id_=a&&b?a.call(this.win_,this.callback_):this.win_.setTimeout(goog.functions.lock(this.callback_),goog.async.AnimationDelay.TIMEOUT)};
|
|
goog.async.AnimationDelay.prototype.stop=function(){if(this.isActive()){var a=this.getRaf_(),b=this.getCancelRaf_();a&&!b&&this.win_.mozRequestAnimationFrame?goog.events.unlistenByKey(this.id_):a&&b?b.call(this.win_,this.id_):this.win_.clearTimeout(this.id_)}this.id_=null};goog.async.AnimationDelay.prototype.fire=function(){this.stop();this.doAction_()};goog.async.AnimationDelay.prototype.fireIfActive=function(){this.isActive()&&this.fire()};
|
|
goog.async.AnimationDelay.prototype.isActive=function(){return null!=this.id_};goog.async.AnimationDelay.prototype.doAction_=function(){this.usingListeners_&&this.id_&&goog.events.unlistenByKey(this.id_);this.id_=null;this.listener_.call(this.handler_,goog.now())};goog.async.AnimationDelay.prototype.disposeInternal=function(){this.stop();goog.async.AnimationDelay.superClass_.disposeInternal.call(this)};
|
|
goog.async.AnimationDelay.prototype.getRaf_=function(){var a=this.win_;return a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||null};goog.async.AnimationDelay.prototype.getCancelRaf_=function(){var a=this.win_;return a.cancelRequestAnimationFrame||a.webkitCancelRequestAnimationFrame||a.mozCancelRequestAnimationFrame||a.oCancelRequestAnimationFrame||a.msCancelRequestAnimationFrame||null};goog.dom.ViewportSizeMonitor=function(a){goog.events.EventTarget.call(this);this.window_=a||window;this.listenerKey_=goog.events.listen(this.window_,goog.events.EventType.RESIZE,this.handleResize_,!1,this);this.size_=goog.dom.getViewportSize(this.window_);this.isPollingRequired_()&&(this.windowSizePollInterval_=window.setInterval(goog.bind(this.checkForSizeChange_,this),goog.dom.ViewportSizeMonitor.WINDOW_SIZE_POLL_RATE))};goog.inherits(goog.dom.ViewportSizeMonitor,goog.events.EventTarget);
|
|
goog.dom.ViewportSizeMonitor.getInstanceForWindow=function(a){var a=a||window,b=goog.getUid(a);return goog.dom.ViewportSizeMonitor.windowInstanceMap_[b]=goog.dom.ViewportSizeMonitor.windowInstanceMap_[b]||new goog.dom.ViewportSizeMonitor(a)};goog.dom.ViewportSizeMonitor.removeInstanceForWindow=function(a){a=goog.getUid(a||window);goog.dispose(goog.dom.ViewportSizeMonitor.windowInstanceMap_[a]);delete goog.dom.ViewportSizeMonitor.windowInstanceMap_[a]};
|
|
goog.dom.ViewportSizeMonitor.windowInstanceMap_={};goog.dom.ViewportSizeMonitor.WINDOW_SIZE_POLL_RATE=500;goog.dom.ViewportSizeMonitor.prototype.listenerKey_=null;goog.dom.ViewportSizeMonitor.prototype.window_=null;goog.dom.ViewportSizeMonitor.prototype.size_=null;goog.dom.ViewportSizeMonitor.prototype.windowSizePollInterval_=null;goog.dom.ViewportSizeMonitor.prototype.isPollingRequired_=function(){return goog.userAgent.WEBKIT&&goog.userAgent.WINDOWS||goog.userAgent.OPERA&&this.window_.self!=this.window_.top};
|
|
goog.dom.ViewportSizeMonitor.prototype.getSize=function(){return this.size_?this.size_.clone():null};goog.dom.ViewportSizeMonitor.prototype.disposeInternal=function(){goog.dom.ViewportSizeMonitor.superClass_.disposeInternal.call(this);this.listenerKey_&&(goog.events.unlistenByKey(this.listenerKey_),this.listenerKey_=null);this.windowSizePollInterval_&&(window.clearInterval(this.windowSizePollInterval_),this.windowSizePollInterval_=null);this.size_=this.window_=null};
|
|
goog.dom.ViewportSizeMonitor.prototype.handleResize_=function(){this.checkForSizeChange_()};goog.dom.ViewportSizeMonitor.prototype.checkForSizeChange_=function(){var a=goog.dom.getViewportSize(this.window_);goog.math.Size.equals(a,this.size_)||(this.size_=a,this.dispatchEvent(goog.events.EventType.RESIZE))};goog.events.KeyCodes={WIN_KEY_FF_LINUX:0,MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,FF_SEMICOLON:59,FF_EQUALS:61,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,
|
|
X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SCROLL_LOCK:145,FIRST_MEDIA_KEY:166,LAST_MEDIA_KEY:183,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,TILDE:192,
|
|
SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,PHANTOM:255};
|
|
goog.events.KeyCodes.isTextModifyingKeyEvent=function(a){if(a.altKey&&!a.ctrlKey||a.metaKey||a.keyCode>=goog.events.KeyCodes.F1&&a.keyCode<=goog.events.KeyCodes.F12)return!1;switch(a.keyCode){case goog.events.KeyCodes.ALT:case goog.events.KeyCodes.CAPS_LOCK:case goog.events.KeyCodes.CONTEXT_MENU:case goog.events.KeyCodes.CTRL:case goog.events.KeyCodes.DOWN:case goog.events.KeyCodes.END:case goog.events.KeyCodes.ESC:case goog.events.KeyCodes.HOME:case goog.events.KeyCodes.INSERT:case goog.events.KeyCodes.LEFT:case goog.events.KeyCodes.MAC_FF_META:case goog.events.KeyCodes.META:case goog.events.KeyCodes.NUMLOCK:case goog.events.KeyCodes.NUM_CENTER:case goog.events.KeyCodes.PAGE_DOWN:case goog.events.KeyCodes.PAGE_UP:case goog.events.KeyCodes.PAUSE:case goog.events.KeyCodes.PHANTOM:case goog.events.KeyCodes.PRINT_SCREEN:case goog.events.KeyCodes.RIGHT:case goog.events.KeyCodes.SCROLL_LOCK:case goog.events.KeyCodes.SHIFT:case goog.events.KeyCodes.UP:case goog.events.KeyCodes.WIN_KEY:case goog.events.KeyCodes.WIN_KEY_RIGHT:return!1;case goog.events.KeyCodes.WIN_KEY_FF_LINUX:return!goog.userAgent.GECKO;
|
|
default:return a.keyCode<goog.events.KeyCodes.FIRST_MEDIA_KEY||a.keyCode>goog.events.KeyCodes.LAST_MEDIA_KEY}};
|
|
goog.events.KeyCodes.firesKeyPressEvent=function(a,b,c,d,e){if(!goog.userAgent.IE&&(!goog.userAgent.WEBKIT||!goog.userAgent.isVersion("525")))return!0;if(goog.userAgent.MAC&&e)return goog.events.KeyCodes.isCharacterKey(a);if(e&&!d||!c&&(b==goog.events.KeyCodes.CTRL||b==goog.events.KeyCodes.ALT)||goog.userAgent.IE&&d&&b==a)return!1;switch(a){case goog.events.KeyCodes.ENTER:return!(goog.userAgent.IE&&goog.userAgent.isDocumentMode(9));case goog.events.KeyCodes.ESC:return!goog.userAgent.WEBKIT}return goog.events.KeyCodes.isCharacterKey(a)};
|
|
goog.events.KeyCodes.isCharacterKey=function(a){if(a>=goog.events.KeyCodes.ZERO&&a<=goog.events.KeyCodes.NINE||a>=goog.events.KeyCodes.NUM_ZERO&&a<=goog.events.KeyCodes.NUM_MULTIPLY||a>=goog.events.KeyCodes.A&&a<=goog.events.KeyCodes.Z||goog.userAgent.WEBKIT&&0==a)return!0;switch(a){case goog.events.KeyCodes.SPACE:case goog.events.KeyCodes.QUESTION_MARK:case goog.events.KeyCodes.NUM_PLUS:case goog.events.KeyCodes.NUM_MINUS:case goog.events.KeyCodes.NUM_PERIOD:case goog.events.KeyCodes.NUM_DIVISION:case goog.events.KeyCodes.SEMICOLON:case goog.events.KeyCodes.FF_SEMICOLON:case goog.events.KeyCodes.DASH:case goog.events.KeyCodes.EQUALS:case goog.events.KeyCodes.FF_EQUALS:case goog.events.KeyCodes.COMMA:case goog.events.KeyCodes.PERIOD:case goog.events.KeyCodes.SLASH:case goog.events.KeyCodes.APOSTROPHE:case goog.events.KeyCodes.SINGLE_QUOTE:case goog.events.KeyCodes.OPEN_SQUARE_BRACKET:case goog.events.KeyCodes.BACKSLASH:case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET:return!0;
|
|
default:return!1}};goog.events.KeyCodes.normalizeGeckoKeyCode=function(a){switch(a){case goog.events.KeyCodes.FF_EQUALS:return goog.events.KeyCodes.EQUALS;case goog.events.KeyCodes.FF_SEMICOLON:return goog.events.KeyCodes.SEMICOLON;case goog.events.KeyCodes.MAC_FF_META:return goog.events.KeyCodes.META;case goog.events.KeyCodes.WIN_KEY_FF_LINUX:return goog.events.KeyCodes.WIN_KEY;default:return a}};goog.events.KeyHandler=function(a,b){goog.events.EventTarget.call(this);a&&this.attach(a,b)};goog.inherits(goog.events.KeyHandler,goog.events.EventTarget);goog.events.KeyHandler.prototype.element_=null;goog.events.KeyHandler.prototype.keyPressKey_=null;goog.events.KeyHandler.prototype.keyDownKey_=null;goog.events.KeyHandler.prototype.keyUpKey_=null;goog.events.KeyHandler.prototype.lastKey_=-1;goog.events.KeyHandler.prototype.keyCode_=-1;goog.events.KeyHandler.prototype.altKey_=!1;
|
|
goog.events.KeyHandler.EventType={KEY:"key"};
|
|
goog.events.KeyHandler.safariKey_={3:goog.events.KeyCodes.ENTER,12:goog.events.KeyCodes.NUMLOCK,63232:goog.events.KeyCodes.UP,63233:goog.events.KeyCodes.DOWN,63234:goog.events.KeyCodes.LEFT,63235:goog.events.KeyCodes.RIGHT,63236:goog.events.KeyCodes.F1,63237:goog.events.KeyCodes.F2,63238:goog.events.KeyCodes.F3,63239:goog.events.KeyCodes.F4,63240:goog.events.KeyCodes.F5,63241:goog.events.KeyCodes.F6,63242:goog.events.KeyCodes.F7,63243:goog.events.KeyCodes.F8,63244:goog.events.KeyCodes.F9,63245:goog.events.KeyCodes.F10,
|
|
63246:goog.events.KeyCodes.F11,63247:goog.events.KeyCodes.F12,63248:goog.events.KeyCodes.PRINT_SCREEN,63272:goog.events.KeyCodes.DELETE,63273:goog.events.KeyCodes.HOME,63275:goog.events.KeyCodes.END,63276:goog.events.KeyCodes.PAGE_UP,63277:goog.events.KeyCodes.PAGE_DOWN,63289:goog.events.KeyCodes.NUMLOCK,63302:goog.events.KeyCodes.INSERT};
|
|
goog.events.KeyHandler.keyIdentifier_={Up:goog.events.KeyCodes.UP,Down:goog.events.KeyCodes.DOWN,Left:goog.events.KeyCodes.LEFT,Right:goog.events.KeyCodes.RIGHT,Enter:goog.events.KeyCodes.ENTER,F1:goog.events.KeyCodes.F1,F2:goog.events.KeyCodes.F2,F3:goog.events.KeyCodes.F3,F4:goog.events.KeyCodes.F4,F5:goog.events.KeyCodes.F5,F6:goog.events.KeyCodes.F6,F7:goog.events.KeyCodes.F7,F8:goog.events.KeyCodes.F8,F9:goog.events.KeyCodes.F9,F10:goog.events.KeyCodes.F10,F11:goog.events.KeyCodes.F11,F12:goog.events.KeyCodes.F12,
|
|
"U+007F":goog.events.KeyCodes.DELETE,Home:goog.events.KeyCodes.HOME,End:goog.events.KeyCodes.END,PageUp:goog.events.KeyCodes.PAGE_UP,PageDown:goog.events.KeyCodes.PAGE_DOWN,Insert:goog.events.KeyCodes.INSERT};goog.events.KeyHandler.USES_KEYDOWN_=goog.userAgent.IE||goog.userAgent.WEBKIT&&goog.userAgent.isVersion("525");goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_=goog.userAgent.MAC&&goog.userAgent.GECKO;
|
|
goog.events.KeyHandler.prototype.handleKeyDown_=function(a){if(goog.userAgent.WEBKIT&&(this.lastKey_==goog.events.KeyCodes.CTRL&&!a.ctrlKey||this.lastKey_==goog.events.KeyCodes.ALT&&!a.altKey))this.keyCode_=this.lastKey_=-1;goog.events.KeyHandler.USES_KEYDOWN_&&!goog.events.KeyCodes.firesKeyPressEvent(a.keyCode,this.lastKey_,a.shiftKey,a.ctrlKey,a.altKey)?this.handleEvent(a):(this.keyCode_=goog.userAgent.GECKO?goog.events.KeyCodes.normalizeGeckoKeyCode(a.keyCode):a.keyCode,goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_&&
|
|
(this.altKey_=a.altKey))};goog.events.KeyHandler.prototype.handleKeyup_=function(a){this.keyCode_=this.lastKey_=-1;this.altKey_=a.altKey};
|
|
goog.events.KeyHandler.prototype.handleEvent=function(a){var b=a.getBrowserEvent(),c,d,e=b.altKey;goog.userAgent.IE&&a.type==goog.events.EventType.KEYPRESS?(c=this.keyCode_,d=c!=goog.events.KeyCodes.ENTER&&c!=goog.events.KeyCodes.ESC?b.keyCode:0):goog.userAgent.WEBKIT&&a.type==goog.events.EventType.KEYPRESS?(c=this.keyCode_,d=0<=b.charCode&&63232>b.charCode&&goog.events.KeyCodes.isCharacterKey(c)?b.charCode:0):goog.userAgent.OPERA?(c=this.keyCode_,d=goog.events.KeyCodes.isCharacterKey(c)?b.keyCode:
|
|
0):(c=b.keyCode||this.keyCode_,d=b.charCode||0,goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_&&(e=this.altKey_),goog.userAgent.MAC&&(d==goog.events.KeyCodes.QUESTION_MARK&&c==goog.events.KeyCodes.WIN_KEY)&&(c=goog.events.KeyCodes.SLASH));var f=c,g=b.keyIdentifier;c?63232<=c&&c in goog.events.KeyHandler.safariKey_?f=goog.events.KeyHandler.safariKey_[c]:25==c&&a.shiftKey&&(f=9):g&&g in goog.events.KeyHandler.keyIdentifier_&&(f=goog.events.KeyHandler.keyIdentifier_[g]);a=f==this.lastKey_;this.lastKey_=
|
|
f;b=new goog.events.KeyEvent(f,d,a,b);b.altKey=e;this.dispatchEvent(b)};goog.events.KeyHandler.prototype.getElement=function(){return this.element_};
|
|
goog.events.KeyHandler.prototype.attach=function(a,b){this.keyUpKey_&&this.detach();this.element_=a;this.keyPressKey_=goog.events.listen(this.element_,goog.events.EventType.KEYPRESS,this,b);this.keyDownKey_=goog.events.listen(this.element_,goog.events.EventType.KEYDOWN,this.handleKeyDown_,b,this);this.keyUpKey_=goog.events.listen(this.element_,goog.events.EventType.KEYUP,this.handleKeyup_,b,this)};
|
|
goog.events.KeyHandler.prototype.detach=function(){this.keyPressKey_&&(goog.events.unlistenByKey(this.keyPressKey_),goog.events.unlistenByKey(this.keyDownKey_),goog.events.unlistenByKey(this.keyUpKey_),this.keyUpKey_=this.keyDownKey_=this.keyPressKey_=null);this.element_=null;this.keyCode_=this.lastKey_=-1};goog.events.KeyHandler.prototype.disposeInternal=function(){goog.events.KeyHandler.superClass_.disposeInternal.call(this);this.detach()};
|
|
goog.events.KeyEvent=function(a,b,c,d){goog.events.BrowserEvent.call(this,d);this.type=goog.events.KeyHandler.EventType.KEY;this.keyCode=a;this.charCode=b;this.repeat=c};goog.inherits(goog.events.KeyEvent,goog.events.BrowserEvent);goog.events.MouseWheelHandler=function(a){goog.events.EventTarget.call(this);this.element_=a;a=goog.dom.isElement(this.element_)?this.element_:this.element_?this.element_.body:null;this.isRtl_=!!a&&goog.style.isRightToLeft(a);this.listenKey_=goog.events.listen(this.element_,goog.userAgent.GECKO?"DOMMouseScroll":"mousewheel",this)};goog.inherits(goog.events.MouseWheelHandler,goog.events.EventTarget);goog.events.MouseWheelHandler.EventType={MOUSEWHEEL:"mousewheel"};
|
|
goog.events.MouseWheelHandler.prototype.setMaxDeltaX=function(a){this.maxDeltaX_=a};goog.events.MouseWheelHandler.prototype.setMaxDeltaY=function(a){this.maxDeltaY_=a};
|
|
goog.events.MouseWheelHandler.prototype.handleEvent=function(a){var b=0,c=0,d=0,a=a.getBrowserEvent();if("mousewheel"==a.type){c=1;if(goog.userAgent.IE||goog.userAgent.WEBKIT&&(goog.userAgent.WINDOWS||goog.userAgent.isVersion("532.0")))c=40;d=goog.events.MouseWheelHandler.smartScale_(-a.wheelDelta,c);goog.isDef(a.wheelDeltaX)?(b=goog.events.MouseWheelHandler.smartScale_(-a.wheelDeltaX,c),c=goog.events.MouseWheelHandler.smartScale_(-a.wheelDeltaY,c)):c=d}else d=a.detail,100<d?d=3:-100>d&&(d=-3),goog.isDef(a.axis)&&
|
|
a.axis===a.HORIZONTAL_AXIS?b=d:c=d;goog.isNumber(this.maxDeltaX_)&&(b=goog.math.clamp(b,-this.maxDeltaX_,this.maxDeltaX_));goog.isNumber(this.maxDeltaY_)&&(c=goog.math.clamp(c,-this.maxDeltaY_,this.maxDeltaY_));this.isRtl_&&(b=-b);b=new goog.events.MouseWheelEvent(d,a,b,c);this.dispatchEvent(b)};goog.events.MouseWheelHandler.smartScale_=function(a,b){return goog.userAgent.WEBKIT&&(goog.userAgent.MAC||goog.userAgent.LINUX)&&0!=a%b?a:a/b};
|
|
goog.events.MouseWheelHandler.prototype.disposeInternal=function(){goog.events.MouseWheelHandler.superClass_.disposeInternal.call(this);goog.events.unlistenByKey(this.listenKey_);delete this.listenKey_};goog.events.MouseWheelEvent=function(a,b,c,d){goog.events.BrowserEvent.call(this,b);this.type=goog.events.MouseWheelHandler.EventType.MOUSEWHEEL;this.detail=a;this.deltaX=c;this.deltaY=d};goog.inherits(goog.events.MouseWheelEvent,goog.events.BrowserEvent);ol.ASSUME_TOUCH=!1;ol.BrowserFeature={HAS_TOUCH:ol.ASSUME_TOUCH||document&&"ontouchstart"in document.documentElement||!!window.navigator.msPointerEnabled};ol.ObjectEventType={CHANGED:"changed"};ol.ObjectProperty={ACCESSORS:"ol_accessors_",BINDINGS:"ol_bindings_"};ol.Object=function(a){goog.events.EventTarget.call(this);this.values_={};goog.isDef(a)&&this.setValues(a)};goog.inherits(ol.Object,goog.events.EventTarget);ol.Object.changedEventTypeCache_={};ol.Object.getterNameCache_={};ol.Object.setterNameCache_={};ol.Object.capitalize=function(a){return a.substr(0,1).toUpperCase()+a.substr(1)};
|
|
ol.Object.getAccessors=function(a){return a[ol.ObjectProperty.ACCESSORS]||(a[ol.ObjectProperty.ACCESSORS]={})};ol.Object.getChangedEventType=function(a){return ol.Object.changedEventTypeCache_.hasOwnProperty(a)?ol.Object.changedEventTypeCache_[a]:ol.Object.changedEventTypeCache_[a]=a.toLowerCase()+"_changed"};ol.Object.getGetterName=function(a){return ol.Object.getterNameCache_.hasOwnProperty(a)?ol.Object.getterNameCache_[a]:ol.Object.getterNameCache_[a]="get"+ol.Object.capitalize(a)};
|
|
ol.Object.getListeners=function(a){return a[ol.ObjectProperty.BINDINGS]||(a[ol.ObjectProperty.BINDINGS]={})};ol.Object.getSetterName=function(a){return ol.Object.setterNameCache_.hasOwnProperty(a)?ol.Object.setterNameCache_[a]:ol.Object.setterNameCache_[a]="set"+ol.Object.capitalize(a)};
|
|
ol.Object.prototype.bindTo=function(a,b,c,d){c=c||a;this.unbind(a);var e=ol.Object.getChangedEventType(c);ol.Object.getListeners(this)[a]=goog.events.listen(b,e,function(){this.notifyInternal_(a)},void 0,this);ol.Object.getAccessors(this)[a]={target:b,key:c};d||this.notifyInternal_(a)};ol.Object.prototype.changed=goog.nullFunction;
|
|
ol.Object.prototype.get=function(a){var b,c=ol.Object.getAccessors(this);c.hasOwnProperty(a)?(b=c[a],a=b.target,b=b.key,c=ol.Object.getGetterName(b),b=a[c]?a[c]():a.get(b)):this.values_.hasOwnProperty(a)&&(b=this.values_[a]);return b};ol.Object.prototype.getKeys=function(){var a=goog.object.getKeys(ol.Object.getAccessors(this)).concat(goog.object.getKeys(this.values_));goog.array.removeDuplicates(a);return a};
|
|
ol.Object.prototype.notify=function(a){var b=ol.Object.getAccessors(this);b.hasOwnProperty(a)?(a=b[a],a.target.notify(a.key)):this.notifyInternal_(a)};ol.Object.prototype.notifyInternal_=function(a){a=ol.Object.getChangedEventType(a);this.dispatchEvent(a);this.dispatchEvent(ol.ObjectEventType.CHANGED)};
|
|
ol.Object.prototype.set=function(a,b){var c=ol.Object.getAccessors(this);if(c.hasOwnProperty(a)){var d=c[a],c=d.target,d=d.key,e=ol.Object.getSetterName(d);if(c[e])c[e](b);else c.set(d,b)}else this.values_[a]=b,this.notifyInternal_(a)};ol.Object.prototype.setOptions=function(a){var b,c,d;for(b in a)if(c=a[b],d=ol.Object.getSetterName(b),this[d])this[d](c);else this.set(b,c)};ol.Object.prototype.setValues=ol.Object.prototype.setOptions;
|
|
ol.Object.prototype.unbind=function(a){var b=ol.Object.getListeners(this),c=b[a];c&&(delete b[a],goog.events.unlistenByKey(c),b=this.get(a),delete ol.Object.getAccessors(this)[a],this.values_[a]=b)};ol.Object.prototype.unbindAll=function(){for(var a in ol.Object.getListeners(this))this.unbind(a)};ol.CollectionEventType={ADD:"add",INSERT_AT:"insert_at",REMOVE:"remove",REMOVE_AT:"remove_at",SET_AT:"set_at"};ol.CollectionEvent=function(a,b,c,d,e){goog.events.Event.call(this,a,e);this.elem=b;this.index=c;this.prev=d};goog.inherits(ol.CollectionEvent,goog.events.Event);ol.CollectionProperty={LENGTH:"length"};ol.Collection=function(a){ol.Object.call(this);this.array_=a||[];this.updateLength_()};goog.inherits(ol.Collection,ol.Object);ol.Collection.prototype.clear=function(){for(;0<this.getLength();)this.pop()};
|
|
ol.Collection.prototype.forEach=function(a,b){goog.array.forEach(this.array_,a,b)};ol.Collection.prototype.getArray=function(){return this.array_};ol.Collection.prototype.getAt=function(a){return this.array_[a]};ol.Collection.prototype.getLength=function(){return this.get(ol.CollectionProperty.LENGTH)};
|
|
ol.Collection.prototype.insertAt=function(a,b){goog.array.insertAt(this.array_,b,a);this.updateLength_();this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.ADD,b,void 0,void 0,this));this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.INSERT_AT,b,a,void 0,this))};ol.Collection.prototype.pop=function(){return this.removeAt(this.getLength()-1)};ol.Collection.prototype.push=function(a){var b=this.array_.length;this.insertAt(b,a);return b};
|
|
ol.Collection.prototype.removeAt=function(a){var b=this.array_[a];goog.array.removeAt(this.array_,a);this.updateLength_();this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.REMOVE,b,void 0,void 0,this));this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.REMOVE_AT,void 0,a,b,this));return b};
|
|
ol.Collection.prototype.setAt=function(a,b){var c=this.getLength();if(a<c)c=this.array_[a],this.array_[a]=b,this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.SET_AT,b,a,c,this)),this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.REMOVE,c,void 0,void 0,this)),this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.ADD,b,void 0,void 0,this));else{for(;c<a;++c)this.insertAt(c,void 0);this.insertAt(a,b)}};
|
|
ol.Collection.prototype.updateLength_=function(){this.set(ol.CollectionProperty.LENGTH,this.array_.length)};goog.color={};
|
|
goog.color.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",
|
|
darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",
|
|
ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",
|
|
lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",
|
|
moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",
|
|
seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};goog.color.parse=function(a){var b={},a=String(a),c=goog.color.prependHashIfNecessaryHelper(a);if(goog.color.isValidHexColor_(c))return b.hex=goog.color.normalizeHex(c),b.type="hex",b;c=goog.color.isValidRgbColor_(a);if(c.length)return b.hex=goog.color.rgbArrayToHex(c),b.type="rgb",b;if(goog.color.names&&(c=goog.color.names[a.toLowerCase()]))return b.hex=c,b.type="named",b;throw Error(a+" is not a valid color string");};
|
|
goog.color.isValidColor=function(a){var b=goog.color.prependHashIfNecessaryHelper(a);return!(!goog.color.isValidHexColor_(b)&&!(goog.color.isValidRgbColor_(a).length||goog.color.names&&goog.color.names[a.toLowerCase()]))};goog.color.parseRgb=function(a){var b=goog.color.isValidRgbColor_(a);if(!b.length)throw Error(a+" is not a valid RGB color");return b};goog.color.hexToRgbStyle=function(a){return goog.color.rgbStyle_(goog.color.hexToRgb(a))};goog.color.hexTripletRe_=/#(.)(.)(.)/;
|
|
goog.color.normalizeHex=function(a){if(!goog.color.isValidHexColor_(a))throw Error("'"+a+"' is not a valid hex color");4==a.length&&(a=a.replace(goog.color.hexTripletRe_,"#$1$1$2$2$3$3"));return a.toLowerCase()};goog.color.hexToRgb=function(a){var a=goog.color.normalizeHex(a),b=parseInt(a.substr(1,2),16),c=parseInt(a.substr(3,2),16),a=parseInt(a.substr(5,2),16);return[b,c,a]};
|
|
goog.color.rgbToHex=function(a,b,c){a=Number(a);b=Number(b);c=Number(c);if(isNaN(a)||0>a||255<a||isNaN(b)||0>b||255<b||isNaN(c)||0>c||255<c)throw Error('"('+a+","+b+","+c+'") is not a valid RGB color');a=goog.color.prependZeroIfNecessaryHelper(a.toString(16));b=goog.color.prependZeroIfNecessaryHelper(b.toString(16));c=goog.color.prependZeroIfNecessaryHelper(c.toString(16));return"#"+a+b+c};goog.color.rgbArrayToHex=function(a){return goog.color.rgbToHex(a[0],a[1],a[2])};
|
|
goog.color.rgbToHsl=function(a,b,c){var a=a/255,b=b/255,c=c/255,d=Math.max(a,b,c),e=Math.min(a,b,c),f=0,g=0,h=0.5*(d+e);d!=e&&(d==a?f=60*(b-c)/(d-e):d==b?f=60*(c-a)/(d-e)+120:d==c&&(f=60*(a-b)/(d-e)+240),g=0<h&&0.5>=h?(d-e)/(2*h):(d-e)/(2-2*h));return[Math.round(f+360)%360,g,h]};goog.color.rgbArrayToHsl=function(a){return goog.color.rgbToHsl(a[0],a[1],a[2])};goog.color.hueToRgb_=function(a,b,c){0>c?c+=1:1<c&&(c-=1);return 1>6*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a};
|
|
goog.color.hslToRgb=function(a,b,c){var d=0,e=0,f=0,a=a/360;if(0==b)d=e=f=255*c;else var g=f=0,g=0.5>c?c*(1+b):c+b-b*c,f=2*c-g,d=255*goog.color.hueToRgb_(f,g,a+1/3),e=255*goog.color.hueToRgb_(f,g,a),f=255*goog.color.hueToRgb_(f,g,a-1/3);return[Math.round(d),Math.round(e),Math.round(f)]};goog.color.hslArrayToRgb=function(a){return goog.color.hslToRgb(a[0],a[1],a[2])};goog.color.validHexColorRe_=/^#(?:[0-9a-f]{3}){1,2}$/i;goog.color.isValidHexColor_=function(a){return goog.color.validHexColorRe_.test(a)};
|
|
goog.color.normalizedHexColorRe_=/^#[0-9a-f]{6}$/;goog.color.isNormalizedHexColor_=function(a){return goog.color.normalizedHexColorRe_.test(a)};goog.color.rgbColorRe_=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;goog.color.isValidRgbColor_=function(a){var b=a.match(goog.color.rgbColorRe_);if(b){var a=Number(b[1]),c=Number(b[2]),b=Number(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]};
|
|
goog.color.prependZeroIfNecessaryHelper=function(a){return 1==a.length?"0"+a:a};goog.color.prependHashIfNecessaryHelper=function(a){return"#"==a.charAt(0)?a:"#"+a};goog.color.rgbStyle_=function(a){return"rgb("+a.join(",")+")"};
|
|
goog.color.hsvToRgb=function(a,b,c){var d=0,e=0,f=0;if(0==b)f=e=d=c;else{var g=Math.floor(a/60),h=a/60-g,a=c*(1-b),i=c*(1-b*h),b=c*(1-b*(1-h));switch(g){case 1:d=i;e=c;f=a;break;case 2:d=a;e=c;f=b;break;case 3:d=a;e=i;f=c;break;case 4:d=b;e=a;f=c;break;case 5:d=c;e=a;f=i;break;case 6:case 0:d=c,e=b,f=a}}return[Math.floor(d),Math.floor(e),Math.floor(f)]};
|
|
goog.color.rgbToHsv=function(a,b,c){var d=Math.max(Math.max(a,b),c),e=Math.min(Math.min(a,b),c);if(e==d)e=a=0;else{var f=d-e,e=f/d,a=60*(a==d?(b-c)/f:b==d?2+(c-a)/f:4+(a-b)/f);0>a&&(a+=360);360<a&&(a-=360)}return[a,e,d]};goog.color.rgbArrayToHsv=function(a){return goog.color.rgbToHsv(a[0],a[1],a[2])};goog.color.hsvArrayToRgb=function(a){return goog.color.hsvToRgb(a[0],a[1],a[2])};goog.color.hexToHsl=function(a){a=goog.color.hexToRgb(a);return goog.color.rgbToHsl(a[0],a[1],a[2])};
|
|
goog.color.hslToHex=function(a,b,c){return goog.color.rgbArrayToHex(goog.color.hslToRgb(a,b,c))};goog.color.hslArrayToHex=function(a){return goog.color.rgbArrayToHex(goog.color.hslToRgb(a[0],a[1],a[2]))};goog.color.hexToHsv=function(a){return goog.color.rgbArrayToHsv(goog.color.hexToRgb(a))};goog.color.hsvToHex=function(a,b,c){return goog.color.rgbArrayToHex(goog.color.hsvToRgb(a,b,c))};goog.color.hsvArrayToHex=function(a){return goog.color.hsvToHex(a[0],a[1],a[2])};
|
|
goog.color.hslDistance=function(a,b){var c,d;c=0.5>=a[2]?a[1]*a[2]:a[1]*(1-a[2]);d=0.5>=b[2]?b[1]*b[2]:b[1]*(1-b[2]);return(a[2]-b[2])*(a[2]-b[2])+c*c+d*d-2*c*d*Math.cos(2*(a[0]/360-b[0]/360)*Math.PI)};goog.color.blend=function(a,b,c){c=goog.math.clamp(c,0,1);return[Math.round(c*a[0]+(1-c)*b[0]),Math.round(c*a[1]+(1-c)*b[1]),Math.round(c*a[2]+(1-c)*b[2])]};goog.color.darken=function(a,b){return goog.color.blend([0,0,0],a,b)};
|
|
goog.color.lighten=function(a,b){return goog.color.blend([255,255,255],a,b)};goog.color.highContrast=function(a,b){for(var c=[],d=0;d<b.length;d++)c.push({color:b[d],diff:goog.color.yiqBrightnessDiff_(b[d],a)+goog.color.colorDiff_(b[d],a)});c.sort(function(a,b){return b.diff-a.diff});return c[0].color};goog.color.yiqBrightness_=function(a){return Math.round((299*a[0]+587*a[1]+114*a[2])/1E3)};goog.color.yiqBrightnessDiff_=function(a,b){return Math.abs(goog.color.yiqBrightness_(a)-goog.color.yiqBrightness_(b))};
|
|
goog.color.colorDiff_=function(a,b){return Math.abs(a[0]-b[0])+Math.abs(a[1]-b[1])+Math.abs(a[2]-b[2])};ol.Color=function(a,b,c,d){this.r=goog.math.clamp(a,0,255);this.g=goog.math.clamp(b,0,255);this.b=goog.math.clamp(c,0,255);this.a=goog.math.clamp(d,0,1)};ol.Color.createFromString=function(a,b){var c=goog.color.hexToRgb(goog.color.parse(a).hex);return new ol.Color(c[0],c[1],c[2],b||255)};ol.Color.equals=function(a,b){return a.r==b.r&&a.g==b.g&&a.b==b.b&&a.a==b.a};ol.Size=function(a,b){goog.math.Size.call(this,a,b)};goog.inherits(ol.Size,goog.math.Size);ol.Size.prototype.equals=function(a){return this.width==a.width&&this.height==a.height};ol.Rectangle=function(a,b,c,d){goog.asserts.assert(a<=c);goog.asserts.assert(b<=d);this.minX=a;this.minY=b;this.maxX=c;this.maxY=d};ol.Rectangle.prototype.equals=function(a){return this.minX==a.minX&&this.minY==a.minY&&this.maxX==a.maxX&&this.maxY==a.maxY};ol.Rectangle.prototype.extend=function(a){this.minX=Math.min(this.minX,a.minX);this.minY=Math.min(this.minY,a.minY);this.maxX=Math.max(this.maxX,a.maxX);this.maxY=Math.max(this.maxY,a.maxY)};
|
|
ol.Rectangle.prototype.getCenter=function(){return new ol.Coordinate((this.minX+this.maxX)/2,(this.minY+this.maxY)/2)};ol.Rectangle.prototype.getHeight=function(){return this.maxY-this.minY};ol.Rectangle.prototype.getSize=function(){return new ol.Size(this.getWidth(),this.getHeight())};ol.Rectangle.prototype.getWidth=function(){return this.maxX-this.minX};ol.Rectangle.prototype.intersects=function(a){return this.minX<=a.maxX&&this.maxX>=a.minX&&this.minY<=a.maxY&&this.maxY>=a.minY};
|
|
ol.Rectangle.prototype.normalize=function(a){return new ol.Coordinate((a.x-this.minX)/this.getWidth(),(a.y-this.minY)/this.getHeight())};ol.Rectangle.prototype.toString=function(){return"("+[this.minX,this.minY,this.maxX,this.maxY].join(", ")+")"};ol.Rectangle.prototype.scaleFromCenter=function(a){var b=this.getWidth()/2*(a-1),a=this.getHeight()/2*(a-1);this.minX-=b;this.minY-=a;this.maxX+=b;this.maxY+=a};ol.Extent=function(a,b,c,d){ol.Rectangle.call(this,a,b,c,d)};goog.inherits(ol.Extent,ol.Rectangle);ol.Extent.boundingExtent=function(a){var b=arguments[0],b=new ol.Extent(b.x,b.y,b.x,b.y),c;for(c=1;c<arguments.length;++c){var d=arguments[c];b.minX=Math.min(b.minX,d.x);b.minY=Math.min(b.minY,d.y);b.maxX=Math.max(b.maxX,d.x);b.maxY=Math.max(b.maxY,d.y)}return b};ol.Extent.prototype.containsCoordinate=function(a){return this.minX<=a.x&&a.x<=this.maxX&&this.minY<=a.y&&a.y<=this.maxY};
|
|
ol.Extent.prototype.containsExtent=function(a){return this.minX<=a.minX&&a.maxX<=this.maxX&&this.minY<=a.minY&&a.maxY<=this.maxY};ol.Extent.prototype.getBottomLeft=function(){return new ol.Coordinate(this.minX,this.minY)};ol.Extent.prototype.getBottomRight=function(){return new ol.Coordinate(this.maxX,this.minY)};ol.Extent.prototype.getTopLeft=function(){return new ol.Coordinate(this.minX,this.maxY)};ol.Extent.prototype.getTopRight=function(){return new ol.Coordinate(this.maxX,this.maxY)};
|
|
ol.Extent.prototype.transform=function(a){var b=[this.minX,this.minY,this.maxX,this.maxY],b=a(b,b,2);return new ol.Extent(Math.min(b[0],b[2]),Math.min(b[1],b[3]),Math.max(b[0],b[2]),Math.max(b[1],b[3]))};goog.vec={};goog.vec.Float32Array=function(a){this.length=a.length||a;for(var b=0;b<this.length;b++)this[b]=a[b]||0};goog.vec.Float32Array.BYTES_PER_ELEMENT=4;goog.vec.Float32Array.prototype.BYTES_PER_ELEMENT=4;goog.vec.Float32Array.prototype.set=function(a,b){for(var b=b||0,c=0;c<a.length&&b+c<this.length;c++)this[b+c]=a[c]};goog.vec.Float32Array.prototype.toString=Array.prototype.join;
|
|
"undefined"==typeof Float32Array&&(goog.exportProperty(goog.vec.Float32Array,"BYTES_PER_ELEMENT",goog.vec.Float32Array.BYTES_PER_ELEMENT),goog.exportProperty(goog.vec.Float32Array.prototype,"BYTES_PER_ELEMENT",goog.vec.Float32Array.prototype.BYTES_PER_ELEMENT),goog.exportProperty(goog.vec.Float32Array.prototype,"set",goog.vec.Float32Array.prototype.set),goog.exportProperty(goog.vec.Float32Array.prototype,"toString",goog.vec.Float32Array.prototype.toString),goog.exportSymbol("Float32Array",goog.vec.Float32Array));goog.vec.Float64Array=function(a){this.length=a.length||a;for(var b=0;b<this.length;b++)this[b]=a[b]||0};goog.vec.Float64Array.BYTES_PER_ELEMENT=8;goog.vec.Float64Array.prototype.BYTES_PER_ELEMENT=8;goog.vec.Float64Array.prototype.set=function(a,b){for(var b=b||0,c=0;c<a.length&&b+c<this.length;c++)this[b+c]=a[c]};goog.vec.Float64Array.prototype.toString=Array.prototype.join;
|
|
"undefined"==typeof Float64Array&&(goog.exportProperty(goog.vec.Float64Array,"BYTES_PER_ELEMENT",goog.vec.Float64Array.BYTES_PER_ELEMENT),goog.exportProperty(goog.vec.Float64Array.prototype,"BYTES_PER_ELEMENT",goog.vec.Float64Array.prototype.BYTES_PER_ELEMENT),goog.exportProperty(goog.vec.Float64Array.prototype,"set",goog.vec.Float64Array.prototype.set),goog.exportProperty(goog.vec.Float64Array.prototype,"toString",goog.vec.Float64Array.prototype.toString),goog.exportSymbol("Float64Array",goog.vec.Float64Array));goog.vec.EPSILON=1E-6;goog.vec.Vec3={};goog.vec.Vec3.createFloat32=function(){return new Float32Array(3)};goog.vec.Vec3.createFloat64=function(){return new Float64Array(3)};goog.vec.Vec3.createNumber=function(){var a=Array(3);goog.vec.Vec3.setFromValues(a,0,0,0);return a};goog.vec.Vec3.create=function(){return new Float32Array(3)};goog.vec.Vec3.createFloat32FromArray=function(a){var b=goog.vec.Vec3.createFloat32();goog.vec.Vec3.setFromArray(b,a);return b};
|
|
goog.vec.Vec3.createFloat32FromValues=function(a,b,c){var d=goog.vec.Vec3.createFloat32();goog.vec.Vec3.setFromValues(d,a,b,c);return d};goog.vec.Vec3.cloneFloat32=goog.vec.Vec3.createFloat32FromArray;goog.vec.Vec3.createFloat64FromArray=function(a){var b=goog.vec.Vec3.createFloat64();goog.vec.Vec3.setFromArray(b,a);return b};goog.vec.Vec3.createFloat64FromValues=function(a,b,c){var d=goog.vec.Vec3.createFloat64();goog.vec.Vec3.setFromValues(d,a,b,c);return d};goog.vec.Vec3.cloneFloat64=goog.vec.Vec3.createFloat64FromArray;
|
|
goog.vec.Vec3.createFromArray=function(a){var b=goog.vec.Vec3.create();goog.vec.Vec3.setFromArray(b,a);return b};goog.vec.Vec3.createFromValues=function(a,b,c){var d=goog.vec.Vec3.create();goog.vec.Vec3.setFromValues(d,a,b,c);return d};goog.vec.Vec3.clone=function(a){var b=goog.vec.Vec3.create();goog.vec.Vec3.setFromArray(b,a);return b};goog.vec.Vec3.setFromValues=function(a,b,c,d){a[0]=b;a[1]=c;a[2]=d;return a};goog.vec.Vec3.setFromArray=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];return a};
|
|
goog.vec.Vec3.add=function(a,b,c){c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];return c};goog.vec.Vec3.subtract=function(a,b,c){c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];return c};goog.vec.Vec3.negate=function(a,b){b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];return b};goog.vec.Vec3.scale=function(a,b,c){c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;return c};goog.vec.Vec3.magnitudeSquared=function(a){var b=a[0],c=a[1],a=a[2];return b*b+c*c+a*a};
|
|
goog.vec.Vec3.magnitude=function(a){var b=a[0],c=a[1],a=a[2];return Math.sqrt(b*b+c*c+a*a)};goog.vec.Vec3.normalize=function(a,b){var c=1/goog.vec.Vec3.magnitude(a);b[0]=a[0]*c;b[1]=a[1]*c;b[2]=a[2]*c;return b};goog.vec.Vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]};goog.vec.Vec3.cross=function(a,b,c){var d=a[0],e=a[1],a=a[2],f=b[0],g=b[1],b=b[2];c[0]=e*b-a*g;c[1]=a*f-d*b;c[2]=d*g-e*f;return c};
|
|
goog.vec.Vec3.distanceSquared=function(a,b){var c=a[0]-b[0],d=a[1]-b[1],e=a[2]-b[2];return c*c+d*d+e*e};goog.vec.Vec3.distance=function(a,b){return Math.sqrt(goog.vec.Vec3.distanceSquared(a,b))};goog.vec.Vec3.direction=function(a,b,c){var d=b[0]-a[0],e=b[1]-a[1],a=b[2]-a[2];(b=Math.sqrt(d*d+e*e+a*a))?(b=1/b,c[0]=d*b,c[1]=e*b,c[2]=a*b):c[0]=c[1]=c[2]=0;return c};goog.vec.Vec3.lerp=function(a,b,c,d){var e=a[0],f=a[1],a=a[2];d[0]=(b[0]-e)*c+e;d[1]=(b[1]-f)*c+f;d[2]=(b[2]-a)*c+a;return d};
|
|
goog.vec.Vec3.equals=function(a,b){return a.length==b.length&&a[0]==b[0]&&a[1]==b[1]&&a[2]==b[2]};goog.vec.Vec4={};goog.vec.Vec4.createFloat32=function(){return new Float32Array(4)};goog.vec.Vec4.createFloat64=function(){return new Float64Array(4)};goog.vec.Vec4.createNumber=function(){var a=Array(4);goog.vec.Vec4.setFromValues(a,0,0,0,0);return a};goog.vec.Vec4.create=function(){return new Float32Array(4)};goog.vec.Vec4.createFromArray=function(a){var b=goog.vec.Vec4.create();goog.vec.Vec4.setFromArray(b,a);return b};
|
|
goog.vec.Vec4.createFloat32FromArray=function(a){var b=goog.vec.Vec4.createFloat32();goog.vec.Vec4.setFromArray(b,a);return b};goog.vec.Vec4.createFloat32FromValues=function(a,b,c,d){var e=goog.vec.Vec4.createFloat32();goog.vec.Vec4.setFromValues(e,a,b,c,d);return e};goog.vec.Vec4.cloneFloat32=goog.vec.Vec4.createFloat32FromArray;goog.vec.Vec4.createFloat64FromArray=function(a){var b=goog.vec.Vec4.createFloat64();goog.vec.Vec4.setFromArray(b,a);return b};
|
|
goog.vec.Vec4.createFloat64FromValues=function(a,b,c,d){var e=goog.vec.Vec4.createFloat64();goog.vec.Vec4.setFromValues(e,a,b,c,d);return e};goog.vec.Vec4.cloneFloat64=goog.vec.Vec4.createFloat64FromArray;goog.vec.Vec4.createFromValues=function(a,b,c,d){var e=goog.vec.Vec4.create();goog.vec.Vec4.setFromValues(e,a,b,c,d);return e};goog.vec.Vec4.clone=goog.vec.Vec4.createFromArray;goog.vec.Vec4.setFromValues=function(a,b,c,d,e){a[0]=b;a[1]=c;a[2]=d;a[3]=e;return a};
|
|
goog.vec.Vec4.setFromArray=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];return a};goog.vec.Vec4.add=function(a,b,c){c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];return c};goog.vec.Vec4.subtract=function(a,b,c){c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];c[3]=a[3]-b[3];return c};goog.vec.Vec4.negate=function(a,b){b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=-a[3];return b};goog.vec.Vec4.scale=function(a,b,c){c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;return c};
|
|
goog.vec.Vec4.magnitudeSquared=function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return b*b+c*c+d*d+a*a};goog.vec.Vec4.magnitude=function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)};goog.vec.Vec4.normalize=function(a,b){var c=1/goog.vec.Vec4.magnitude(a);b[0]=a[0]*c;b[1]=a[1]*c;b[2]=a[2]*c;b[3]=a[3]*c;return b};goog.vec.Vec4.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};
|
|
goog.vec.Vec4.lerp=function(a,b,c,d){var e=a[0],f=a[1],g=a[2],a=a[3];d[0]=(b[0]-e)*c+e;d[1]=(b[1]-f)*c+f;d[2]=(b[2]-g)*c+g;d[3]=(b[3]-a)*c+a;return d};goog.vec.Vec4.equals=function(a,b){return a.length==b.length&&a[0]==b[0]&&a[1]==b[1]&&a[2]==b[2]&&a[3]==b[3]};goog.vec.Mat4={};goog.vec.Mat4.createFloat32=function(){return new Float32Array(16)};goog.vec.Mat4.createFloat64=function(){return new Float64Array(16)};goog.vec.Mat4.createNumber=function(){var a=Array(16);goog.vec.Mat4.setFromValues(a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);return a};goog.vec.Mat4.create=function(){return goog.vec.Mat4.createFloat32()};goog.vec.Mat4.createFloat32Identity=function(){var a=goog.vec.Mat4.createFloat32();a[0]=a[5]=a[10]=a[15]=1;return a};
|
|
goog.vec.Mat4.createFloat64Identity=function(){var a=goog.vec.Mat4.createFloat64();a[0]=a[5]=a[10]=a[15]=1;return a};goog.vec.Mat4.createNumberIdentity=function(){var a=Array(16);goog.vec.Mat4.setFromValues(a,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return a};goog.vec.Mat4.createIdentity=function(){return goog.vec.Mat4.createFloat32Identity()};goog.vec.Mat4.createFloat32FromArray=function(a){var b=goog.vec.Mat4.createFloat32();goog.vec.Mat4.setFromArray(b,a);return b};
|
|
goog.vec.Mat4.createFloat32FromValues=function(a,b,c,d,e,f,g,h,i,l,j,k,m,n,p,q){var r=goog.vec.Mat4.createFloat32();goog.vec.Mat4.setFromValues(r,a,b,c,d,e,f,g,h,i,l,j,k,m,n,p,q);return r};goog.vec.Mat4.cloneFloat32=goog.vec.Mat4.createFloat32FromArray;goog.vec.Mat4.createFloat64FromArray=function(a){var b=goog.vec.Mat4.createFloat64();goog.vec.Mat4.setFromArray(b,a);return b};
|
|
goog.vec.Mat4.createFloat64FromValues=function(a,b,c,d,e,f,g,h,i,l,j,k,m,n,p,q){var r=goog.vec.Mat4.createFloat64();goog.vec.Mat4.setFromValues(r,a,b,c,d,e,f,g,h,i,l,j,k,m,n,p,q);return r};goog.vec.Mat4.cloneFloat64=goog.vec.Mat4.createFloat64FromArray;goog.vec.Mat4.createFromArray=function(a){var b=goog.vec.Mat4.createFloat32();goog.vec.Mat4.setFromArray(b,a);return b};
|
|
goog.vec.Mat4.createFromValues=function(a,b,c,d,e,f,g,h,i,l,j,k,m,n,p,q){return goog.vec.Mat4.createFloat32FromValues(a,b,c,d,e,f,g,h,i,l,j,k,m,n,p,q)};goog.vec.Mat4.clone=goog.vec.Mat4.createFromArray;goog.vec.Mat4.getElement=function(a,b,c){return a[b+4*c]};goog.vec.Mat4.setElement=function(a,b,c,d){a[b+4*c]=d;return a};
|
|
goog.vec.Mat4.setFromValues=function(a,b,c,d,e,f,g,h,i,l,j,k,m,n,p,q,r){a[0]=b;a[1]=c;a[2]=d;a[3]=e;a[4]=f;a[5]=g;a[6]=h;a[7]=i;a[8]=l;a[9]=j;a[10]=k;a[11]=m;a[12]=n;a[13]=p;a[14]=q;a[15]=r;return a};goog.vec.Mat4.setFromArray=function(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];a[6]=b[6];a[7]=b[7];a[8]=b[8];a[9]=b[9];a[10]=b[10];a[11]=b[11];a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15];return a};
|
|
goog.vec.Mat4.setFromRowMajorArray=function(a,b){a[0]=b[0];a[1]=b[4];a[2]=b[8];a[3]=b[12];a[4]=b[1];a[5]=b[5];a[6]=b[9];a[7]=b[13];a[8]=b[2];a[9]=b[6];a[10]=b[10];a[11]=b[14];a[12]=b[3];a[13]=b[7];a[14]=b[11];a[15]=b[15];return a};goog.vec.Mat4.setDiagonalValues=function(a,b,c,d,e){a[0]=b;a[5]=c;a[10]=d;a[15]=e;return a};goog.vec.Mat4.setDiagonal=function(a,b){a[0]=b[0];a[5]=b[1];a[10]=b[2];a[15]=b[3];return a};
|
|
goog.vec.Mat4.getDiagonal=function(a,b,c){if(c)for(var d=0<c?4*c:-c,e=0;e<4-Math.abs(c);e++)b[e]=a[d+5*e];else b[0]=a[0],b[1]=a[5],b[2]=a[10],b[3]=a[15];return b};goog.vec.Mat4.setColumnValues=function(a,b,c,d,e,f){b*=4;a[b]=c;a[b+1]=d;a[b+2]=e;a[b+3]=f;return a};goog.vec.Mat4.setColumn=function(a,b,c){b*=4;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];return a};goog.vec.Mat4.getColumn=function(a,b,c){b*=4;c[0]=a[b];c[1]=a[b+1];c[2]=a[b+2];c[3]=a[b+3];return c};
|
|
goog.vec.Mat4.setColumns=function(a,b,c,d,e){goog.vec.Mat4.setColumn(a,0,b);goog.vec.Mat4.setColumn(a,1,c);goog.vec.Mat4.setColumn(a,2,d);goog.vec.Mat4.setColumn(a,3,e);return a};goog.vec.Mat4.getColumns=function(a,b,c,d,e){goog.vec.Mat4.getColumn(a,0,b);goog.vec.Mat4.getColumn(a,1,c);goog.vec.Mat4.getColumn(a,2,d);goog.vec.Mat4.getColumn(a,3,e)};goog.vec.Mat4.setRowValues=function(a,b,c,d,e,f){a[b]=c;a[b+4]=d;a[b+8]=e;a[b+12]=f;return a};
|
|
goog.vec.Mat4.setRow=function(a,b,c){a[b]=c[0];a[b+4]=c[1];a[b+8]=c[2];a[b+12]=c[3];return a};goog.vec.Mat4.getRow=function(a,b,c){c[0]=a[b];c[1]=a[b+4];c[2]=a[b+8];c[3]=a[b+12];return c};goog.vec.Mat4.setRows=function(a,b,c,d,e){goog.vec.Mat4.setRow(a,0,b);goog.vec.Mat4.setRow(a,1,c);goog.vec.Mat4.setRow(a,2,d);goog.vec.Mat4.setRow(a,3,e);return a};
|
|
goog.vec.Mat4.getRows=function(a,b,c,d,e){goog.vec.Mat4.getRow(a,0,b);goog.vec.Mat4.getRow(a,1,c);goog.vec.Mat4.getRow(a,2,d);goog.vec.Mat4.getRow(a,3,e)};goog.vec.Mat4.makeZero=function(a){a[0]=0;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=0;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=0;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=0;return a};goog.vec.Mat4.makeIdentity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};
|
|
goog.vec.Mat4.addMat=function(a,b,c){c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];c[4]=a[4]+b[4];c[5]=a[5]+b[5];c[6]=a[6]+b[6];c[7]=a[7]+b[7];c[8]=a[8]+b[8];c[9]=a[9]+b[9];c[10]=a[10]+b[10];c[11]=a[11]+b[11];c[12]=a[12]+b[12];c[13]=a[13]+b[13];c[14]=a[14]+b[14];c[15]=a[15]+b[15];return c};
|
|
goog.vec.Mat4.subMat=function(a,b,c){c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];c[3]=a[3]-b[3];c[4]=a[4]-b[4];c[5]=a[5]-b[5];c[6]=a[6]-b[6];c[7]=a[7]-b[7];c[8]=a[8]-b[8];c[9]=a[9]-b[9];c[10]=a[10]-b[10];c[11]=a[11]-b[11];c[12]=a[12]-b[12];c[13]=a[13]-b[13];c[14]=a[14]-b[14];c[15]=a[15]-b[15];return c};
|
|
goog.vec.Mat4.multScalar=function(a,b,c){c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;c[4]=a[4]*b;c[5]=a[5]*b;c[6]=a[6]*b;c[7]=a[7]*b;c[8]=a[8]*b;c[9]=a[9]*b;c[10]=a[10]*b;c[11]=a[11]*b;c[12]=a[12]*b;c[13]=a[13]*b;c[14]=a[14]*b;c[15]=a[15]*b;return c};
|
|
goog.vec.Mat4.multMat=function(a,b,c){var d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],i=a[5],l=a[6],j=a[7],k=a[8],m=a[9],n=a[10],p=a[11],q=a[12],r=a[13],s=a[14],a=a[15],z=b[0],w=b[1],t=b[2],v=b[3],u=b[4],x=b[5],A=b[6],B=b[7],C=b[8],D=b[9],E=b[10],F=b[11],y=b[12],G=b[13],H=b[14],b=b[15];c[0]=d*z+h*w+k*t+q*v;c[1]=e*z+i*w+m*t+r*v;c[2]=f*z+l*w+n*t+s*v;c[3]=g*z+j*w+p*t+a*v;c[4]=d*u+h*x+k*A+q*B;c[5]=e*u+i*x+m*A+r*B;c[6]=f*u+l*x+n*A+s*B;c[7]=g*u+j*x+p*A+a*B;c[8]=d*C+h*D+k*E+q*F;c[9]=e*C+i*D+m*E+r*F;c[10]=f*C+l*D+
|
|
n*E+s*F;c[11]=g*C+j*D+p*E+a*F;c[12]=d*y+h*G+k*H+q*b;c[13]=e*y+i*G+m*H+r*b;c[14]=f*y+l*G+n*H+s*b;c[15]=g*y+j*G+p*H+a*b;return c};
|
|
goog.vec.Mat4.transpose=function(a,b){if(b==a){var c=a[1],d=a[2],e=a[3],f=a[6],g=a[7],h=a[11];b[1]=a[4];b[2]=a[8];b[3]=a[12];b[4]=c;b[6]=a[9];b[7]=a[13];b[8]=d;b[9]=f;b[11]=a[14];b[12]=e;b[13]=g;b[14]=h}else b[0]=a[0],b[1]=a[4],b[2]=a[8],b[3]=a[12],b[4]=a[1],b[5]=a[5],b[6]=a[9],b[7]=a[13],b[8]=a[2],b[9]=a[6],b[10]=a[10],b[11]=a[14],b[12]=a[3],b[13]=a[7],b[14]=a[11],b[15]=a[15];return b};
|
|
goog.vec.Mat4.determinant=function(a){var b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],i=a[7],l=a[8],j=a[9],k=a[10],m=a[11],n=a[12],p=a[13],q=a[14],a=a[15];return(b*g-c*f)*(k*a-m*q)-(b*h-d*f)*(j*a-m*p)+(b*i-e*f)*(j*q-k*p)+(c*h-d*g)*(l*a-m*n)-(c*i-e*g)*(l*q-k*n)+(d*i-e*h)*(l*p-j*n)};
|
|
goog.vec.Mat4.invert=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],i=a[6],l=a[7],j=a[8],k=a[9],m=a[10],n=a[11],p=a[12],q=a[13],r=a[14],s=a[15],z=c*h-d*g,w=c*i-e*g,t=c*l-f*g,v=d*i-e*h,u=d*l-f*h,x=e*l-f*i,A=j*q-k*p,B=j*r-m*p,C=j*s-n*p,D=k*r-m*q,E=k*s-n*q,F=m*s-n*r,y=z*F-w*E+t*D+v*C-u*B+x*A;if(0==y)return!1;y=1/y;b[0]=(h*F-i*E+l*D)*y;b[1]=(-d*F+e*E-f*D)*y;b[2]=(q*x-r*u+s*v)*y;b[3]=(-k*x+m*u-n*v)*y;b[4]=(-g*F+i*C-l*B)*y;b[5]=(c*F-e*C+f*B)*y;b[6]=(-p*x+r*t-s*w)*y;b[7]=(j*x-m*t+n*w)*y;b[8]=
|
|
(g*E-h*C+l*A)*y;b[9]=(-c*E+d*C-f*A)*y;b[10]=(p*u-q*t+s*z)*y;b[11]=(-j*u+k*t-n*z)*y;b[12]=(-g*D+h*B-i*A)*y;b[13]=(c*D-d*B+e*A)*y;b[14]=(-p*v+q*w-r*z)*y;b[15]=(j*v-k*w+m*z)*y;return!0};goog.vec.Mat4.equals=function(a,b){return a.length==b.length&&a[0]==b[0]&&a[1]==b[1]&&a[2]==b[2]&&a[3]==b[3]&&a[4]==b[4]&&a[5]==b[5]&&a[6]==b[6]&&a[7]==b[7]&&a[8]==b[8]&&a[9]==b[9]&&a[10]==b[10]&&a[11]==b[11]&&a[12]==b[12]&&a[13]==b[13]&&a[14]==b[14]&&a[15]==b[15]};
|
|
goog.vec.Mat4.multVec3=function(a,b,c){var d=b[0],e=b[1],b=b[2];c[0]=d*a[0]+e*a[4]+b*a[8]+a[12];c[1]=d*a[1]+e*a[5]+b*a[9]+a[13];c[2]=d*a[2]+e*a[6]+b*a[10]+a[14];return c};goog.vec.Mat4.multVec3NoTranslate=function(a,b,c){var d=b[0],e=b[1],b=b[2];c[0]=d*a[0]+e*a[4]+b*a[8];c[1]=d*a[1]+e*a[5]+b*a[9];c[2]=d*a[2]+e*a[6]+b*a[10];return c};
|
|
goog.vec.Mat4.multVec3Projective=function(a,b,c){var d=b[0],e=b[1],b=b[2],f=1/(d*a[3]+e*a[7]+b*a[11]+a[15]);c[0]=(d*a[0]+e*a[4]+b*a[8]+a[12])*f;c[1]=(d*a[1]+e*a[5]+b*a[9]+a[13])*f;c[2]=(d*a[2]+e*a[6]+b*a[10]+a[14])*f;return c};goog.vec.Mat4.multVec4=function(a,b,c){var d=b[0],e=b[1],f=b[2],b=b[3];c[0]=d*a[0]+e*a[4]+f*a[8]+b*a[12];c[1]=d*a[1]+e*a[5]+f*a[9]+b*a[13];c[2]=d*a[2]+e*a[6]+f*a[10]+b*a[14];c[3]=d*a[3]+e*a[7]+f*a[11]+b*a[15];return c};
|
|
goog.vec.Mat4.makeTranslate=function(a,b,c,d){goog.vec.Mat4.makeIdentity(a);return goog.vec.Mat4.setColumnValues(a,3,b,c,d,1)};goog.vec.Mat4.makeScale=function(a,b,c,d){goog.vec.Mat4.makeIdentity(a);return goog.vec.Mat4.setDiagonalValues(a,b,c,d,1)};goog.vec.Mat4.makeRotate=function(a,b,c,d,e){var f=Math.cos(b),g=1-f,b=Math.sin(b);return goog.vec.Mat4.setFromValues(a,c*c*g+f,c*d*g+e*b,c*e*g-d*b,0,c*d*g-e*b,d*d*g+f,d*e*g+c*b,0,c*e*g+d*b,d*e*g-c*b,e*e*g+f,0,0,0,0,1)};
|
|
goog.vec.Mat4.makeRotateX=function(a,b){var c=Math.cos(b),d=Math.sin(b);return goog.vec.Mat4.setFromValues(a,1,0,0,0,0,c,d,0,0,-d,c,0,0,0,0,1)};goog.vec.Mat4.makeRotateY=function(a,b){var c=Math.cos(b),d=Math.sin(b);return goog.vec.Mat4.setFromValues(a,c,0,-d,0,0,1,0,0,d,0,c,0,0,0,0,1)};goog.vec.Mat4.makeRotateZ=function(a,b){var c=Math.cos(b),d=Math.sin(b);return goog.vec.Mat4.setFromValues(a,c,d,0,0,-d,c,0,0,0,0,1,0,0,0,0,1)};
|
|
goog.vec.Mat4.makeFrustum=function(a,b,c,d,e,f,g){return goog.vec.Mat4.setFromValues(a,2*f/(c-b),0,0,0,0,2*f/(e-d),0,0,(c+b)/(c-b),(e+d)/(e-d),-(g+f)/(g-f),-1,0,0,-(2*g*f)/(g-f),0)};goog.vec.Mat4.makePerspective=function(a,b,c,d,e){var f=b/2,b=e-d,g=Math.sin(f);if(0==b||0==g||0==c)return a;f=Math.cos(f)/g;return goog.vec.Mat4.setFromValues(a,f/c,0,0,0,0,f,0,0,0,0,-(e+d)/b,-1,0,0,-(2*d*e)/b,0)};
|
|
goog.vec.Mat4.makeOrtho=function(a,b,c,d,e,f,g){return goog.vec.Mat4.setFromValues(a,2/(c-b),0,0,0,0,2/(e-d),0,0,0,0,-2/(g-f),0,-(c+b)/(c-b),-(e+d)/(e-d),-(g+f)/(g-f),1)};
|
|
goog.vec.Mat4.makeLookAt=function(a,b,c,d){var e=goog.vec.Mat4.tmpVec4_[0];goog.vec.Vec3.subtract(c,b,e);goog.vec.Vec3.normalize(e,e);e[3]=0;c=goog.vec.Mat4.tmpVec4_[1];goog.vec.Vec3.cross(e,d,c);goog.vec.Vec3.normalize(c,c);c[3]=0;d=goog.vec.Mat4.tmpVec4_[2];goog.vec.Vec3.cross(c,e,d);goog.vec.Vec3.normalize(d,d);d[3]=0;goog.vec.Vec3.negate(e,e);goog.vec.Mat4.setRow(a,0,c);goog.vec.Mat4.setRow(a,1,d);goog.vec.Mat4.setRow(a,2,e);goog.vec.Mat4.setRowValues(a,3,0,0,0,1);goog.vec.Mat4.translate(a,-b[0],
|
|
-b[1],-b[2]);return a};goog.vec.Mat4.toLookAt=function(a,b,c,d){var e=goog.vec.Mat4.tmpMat4_[0];if(!goog.vec.Mat4.invert(a,e))return!1;b&&(b[0]=e[12],b[1]=e[13],b[2]=e[14]);if(c||d)c||(c=goog.vec.Mat4.tmpVec3_[0]),c[0]=-a[2],c[1]=-a[6],c[2]=-a[10],goog.vec.Vec3.normalize(c,c);d&&(b=goog.vec.Mat4.tmpVec3_[1],b[0]=a[0],b[1]=a[4],b[2]=a[8],goog.vec.Vec3.cross(b,c,d),goog.vec.Vec3.normalize(d,d));return!0};
|
|
goog.vec.Mat4.makeEulerZXZ=function(a,b,c,d){var e=Math.cos(b),b=Math.sin(b),f=Math.cos(c),c=Math.sin(c),g=Math.cos(d),d=Math.sin(d);a[0]=e*g-f*b*d;a[1]=f*e*d+g*b;a[2]=d*c;a[3]=0;a[4]=-e*d-g*f*b;a[5]=e*f*g-b*d;a[6]=g*c;a[7]=0;a[8]=c*b;a[9]=-e*c;a[10]=f;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};
|
|
goog.vec.Mat4.toEulerZXZ=function(a,b,c){var d=Math.sqrt(a[2]*a[2]+a[6]*a[6]),c=c?-1:1;d>goog.vec.EPSILON?(b[2]=Math.atan2(a[2]*c,a[6]*c),b[1]=Math.atan2(d*c,a[10]),b[0]=Math.atan2(a[8]*c,-a[9]*c)):(b[0]=0,b[1]=Math.atan2(d*c,a[10]),b[2]=Math.atan2(a[1],a[0]));b[0]=(b[0]+2*Math.PI)%(2*Math.PI);b[2]=(b[2]+2*Math.PI)%(2*Math.PI);b[1]=(b[1]*c+2*Math.PI)%(2*Math.PI)*c;return b};
|
|
goog.vec.Mat4.translate=function(a,b,c,d){return goog.vec.Mat4.setColumnValues(a,3,a[0]*b+a[4]*c+a[8]*d+a[12],a[1]*b+a[5]*c+a[9]*d+a[13],a[2]*b+a[6]*c+a[10]*d+a[14],a[3]*b+a[7]*c+a[11]*d+a[15])};goog.vec.Mat4.scale=function(a,b,c,d){return goog.vec.Mat4.setFromValues(a,a[0]*b,a[1]*b,a[2]*b,a[3]*b,a[4]*c,a[5]*c,a[6]*c,a[7]*c,a[8]*d,a[9]*d,a[10]*d,a[11]*d,a[12],a[13],a[14],a[15])};
|
|
goog.vec.Mat4.rotate=function(a,b,c,d,e){var f=a[0],g=a[1],h=a[2],i=a[3],l=a[4],j=a[5],k=a[6],m=a[7],n=a[8],p=a[9],q=a[10],r=a[11],s=a[12],z=a[13],w=a[14],t=a[15],v=Math.cos(b),u=Math.sin(b),x=1-v,b=c*c*x+v,A=c*d*x+e*u,B=c*e*x-d*u,C=c*d*x-e*u,D=d*d*x+v,E=d*e*x+c*u,F=c*e*x+d*u,c=d*e*x-c*u,e=e*e*x+v;return goog.vec.Mat4.setFromValues(a,f*b+l*A+n*B,g*b+j*A+p*B,h*b+k*A+q*B,i*b+m*A+r*B,f*C+l*D+n*E,g*C+j*D+p*E,h*C+k*D+q*E,i*C+m*D+r*E,f*F+l*c+n*e,g*F+j*c+p*e,h*F+k*c+q*e,i*F+m*c+r*e,s,z,w,t)};
|
|
goog.vec.Mat4.rotateX=function(a,b){var c=a[4],d=a[5],e=a[6],f=a[7],g=a[8],h=a[9],i=a[10],l=a[11],j=Math.cos(b),k=Math.sin(b);a[4]=c*j+g*k;a[5]=d*j+h*k;a[6]=e*j+i*k;a[7]=f*j+l*k;a[8]=c*-k+g*j;a[9]=d*-k+h*j;a[10]=e*-k+i*j;a[11]=f*-k+l*j;return a};goog.vec.Mat4.rotateY=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[8],h=a[9],i=a[10],l=a[11],j=Math.cos(b),k=Math.sin(b);a[0]=c*j+g*-k;a[1]=d*j+h*-k;a[2]=e*j+i*-k;a[3]=f*j+l*-k;a[8]=c*k+g*j;a[9]=d*k+h*j;a[10]=e*k+i*j;a[11]=f*k+l*j;return a};
|
|
goog.vec.Mat4.rotateZ=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],i=a[6],l=a[7],j=Math.cos(b),k=Math.sin(b);a[0]=c*j+g*k;a[1]=d*j+h*k;a[2]=e*j+i*k;a[3]=f*j+l*k;a[4]=c*-k+g*j;a[5]=d*-k+h*j;a[6]=e*-k+i*j;a[7]=f*-k+l*j;return a};goog.vec.Mat4.getTranslation=function(a,b){b[0]=a[12];b[1]=a[13];b[2]=a[14];return b};goog.vec.Mat4.tmpVec3_=[goog.vec.Vec3.createFloat64(),goog.vec.Vec3.createFloat64()];goog.vec.Mat4.tmpVec4_=[goog.vec.Vec4.createFloat64(),goog.vec.Vec4.createFloat64(),goog.vec.Vec4.createFloat64()];
|
|
goog.vec.Mat4.tmpMat4_=[goog.vec.Mat4.createFloat64()];ol.QuadKeyCharCode={ZERO:48,ONE:49,TWO:50,THREE:51};ol.TileCoord=function(a,b,c){ol.Coordinate.call(this,b,c);this.z=a};goog.inherits(ol.TileCoord,ol.Coordinate);ol.TileCoord.createFromQuadKey=function(a){var b=a.length,c=0,d=0,e=1<<b-1,f;for(f=0;f<b;++f){switch(a.charCodeAt(f)){case ol.QuadKeyCharCode.ONE:c+=e;break;case ol.QuadKeyCharCode.TWO:d+=e;break;case ol.QuadKeyCharCode.THREE:c+=e,d+=e}e>>=1}return new ol.TileCoord(b,c,d)};
|
|
ol.TileCoord.createFromString=function(a){a=a.split("/");a=goog.array.map(a,function(a){return parseInt(a,10)});return new ol.TileCoord(a[0],a[1],a[2])};ol.TileCoord.prototype.hash=function(){return(this.x<<this.z)+this.y};ol.TileCoord.prototype.quadKey=function(){var a=Array(this.z),b=1<<this.z-1,c,d;for(c=0;c<this.z;++c)d=ol.QuadKeyCharCode.ZERO,this.x&b&&(d+=1),this.y&b&&(d+=2),a[c]=String.fromCharCode(d),b>>=1;return a.join("")};
|
|
ol.TileCoord.prototype.toString=function(){return[this.z,this.x,this.y].join("/")};ol.TileRange=function(a,b,c,d){this.minX=a;this.minY=b;this.maxX=c;this.maxY=d};goog.inherits(ol.TileRange,ol.Rectangle);ol.TileRange.boundingTileRange=function(a){var b=arguments[0],c=new ol.TileRange(b.x,b.y,b.x,b.y),d,e;for(d=1;d<arguments.length;++d)e=arguments[d],goog.asserts.assert(e.z==b.z),c.minX=Math.min(c.minX,e.x),c.minY=Math.min(c.minY,e.y),c.maxX=Math.max(c.maxX,e.x),c.maxY=Math.max(c.maxY,e.y);return c};
|
|
ol.TileRange.prototype.contains=function(a){return this.minX<=a.x&&a.x<=this.maxX&&this.minY<=a.y&&a.y<=this.maxY};ol.TileRange.prototype.containsTileRange=function(a){return this.minX<=a.minX&&a.maxX<=this.maxX&&this.minY<=a.minY&&a.minY<=this.maxY};ol.TileRange.prototype.getHeight=function(){return this.maxY-this.minY+1};ol.TileRange.prototype.getWidth=function(){return this.maxX-this.minX+1};ol.Attribution=function(a,b){this.html_=a;this.tileRanges_=b||null};ol.Attribution.prototype.getHTML=function(){return this.html_};ol.Attribution.prototype.intersectsAnyTileRange=function(a){if(goog.isNull(this.tileRanges_))return!0;var b,c,d;for(d in a)if(d in this.tileRanges_){c=a[d];for(b=0;b<this.tileRanges_[d].length;++b)if(this.tileRanges_[d][b].intersects(c))return!0}return!1};ol.TileState={IDLE:0,LOADING:1,LOADED:2,ERROR:3};ol.Tile=function(a){goog.events.EventTarget.call(this);this.tileCoord=a;this.state=ol.TileState.IDLE};goog.inherits(ol.Tile,goog.events.EventTarget);ol.Tile.prototype.dispatchChangeEvent=function(){this.dispatchEvent(goog.events.EventType.CHANGE)};ol.Tile.prototype.getKey=function(){return goog.getUid(this).toString()};ol.Tile.prototype.getState=function(){return this.state};ol.TileQueue=function(a){this.tilePriorityFunction_=a;this.maxTilesLoading_=8;this.tilesLoading_=0;this.heap_=[];this.queuedTileKeys_={}};ol.TileQueue.DROP=Infinity;ol.TileQueue.prototype.dequeue_=function(){var a=this.heap_;goog.asserts.assert(0<a.length);var b=a[0][1];1==a.length?a.length=0:(a[0]=a.pop(),this.siftUp_(0));a=b.getKey();delete this.queuedTileKeys_[a];return b};
|
|
ol.TileQueue.prototype.enqueue=function(a,b,c){if(a.getState()==ol.TileState.IDLE){var d=a.getKey();if(!(d in this.queuedTileKeys_)){var e=this.tilePriorityFunction_(a,b,c);e!=ol.TileQueue.DROP&&(this.heap_.push([e,a,b,c]),this.queuedTileKeys_[d]=!0,this.siftDown_(0,this.heap_.length-1))}}};ol.TileQueue.prototype.handleTileChange=function(){--this.tilesLoading_};ol.TileQueue.prototype.getLeftChildIndex_=function(a){return 2*a+1};ol.TileQueue.prototype.getRightChildIndex_=function(a){return 2*a+2};
|
|
ol.TileQueue.prototype.getParentIndex_=function(a){return a-1>>1};ol.TileQueue.prototype.heapify_=function(){for(var a=(this.heap_.length>>1)-1;0<=a;a--)this.siftUp_(a)};ol.TileQueue.prototype.loadMoreTiles=function(){for(var a;0<this.heap_.length&&this.tilesLoading_<this.maxTilesLoading_;)a=this.dequeue_(),goog.events.listenOnce(a,goog.events.EventType.CHANGE,this.handleTileChange,!1,this),a.load(),++this.tilesLoading_};
|
|
ol.TileQueue.prototype.siftUp_=function(a){for(var b=this.heap_,c=b.length,d=b[a],e=a;a<c>>1;){var f=this.getLeftChildIndex_(a),g=this.getRightChildIndex_(a),f=g<c&&b[g][0]<b[f][0]?g:f;b[a]=b[f];a=f}b[a]=d;this.siftDown_(e,a)};ol.TileQueue.prototype.siftDown_=function(a,b){for(var c=this.heap_,d=c[b];b>a;){var e=this.getParentIndex_(b);if(c[e][0]>d[0])c[b]=c[e],b=e;else break}c[b]=d};
|
|
ol.TileQueue.prototype.reprioritize=function(){var a=this.heap_,b,c=0,d,e,f,g;for(b=0;b<a.length;++b)d=a[b],f=d[1],g=d[2],e=d[3],e=this.tilePriorityFunction_(f,g,e),e==ol.TileQueue.DROP?(d=f.getKey(),delete this.queuedTileKeys_[d]):(d[0]=e,a[c++]=d);a.length=c;this.heapify_()};/*
|
|
|
|
Latitude/longitude spherical geodesy formulae taken from
|
|
http://www.movable-type.co.uk/scripts/latlong.html
|
|
Licenced under CC-BY-3.0.
|
|
*/
|
|
ol.Sphere=function(a){this.radius=a};ol.Sphere.prototype.cosineDistance=function(a,b){var c=goog.math.toRadians(a.y),d=goog.math.toRadians(b.y),e=goog.math.toRadians(b.x-a.x);return this.radius*Math.acos(Math.sin(c)*Math.sin(d)+Math.cos(c)*Math.cos(d)*Math.cos(e))};
|
|
ol.Sphere.prototype.crossTrackDistance=function(a,b,c){this.cosineDistance(a,b);var d=this.cosineDistance(a,b),b=goog.math.toRadians(this.initialBearing(a,b)),a=goog.math.toRadians(this.initialBearing(a,c));return this.radius*Math.asin(Math.sin(d/this.radius)*Math.sin(a-b))};ol.Sphere.prototype.equirectangularDistance=function(a,b){var c=goog.math.toRadians(a.y),d=goog.math.toRadians(b.y),e=goog.math.toRadians(b.x-a.x)*Math.cos((c+d)/2),c=d-c;return this.radius*Math.sqrt(e*e+c*c)};
|
|
ol.Sphere.prototype.finalBearing=function(a,b){return(this.initialBearing(b,a)+180)%360};ol.Sphere.prototype.haversineDistance=function(a,b){var c=goog.math.toRadians(a.y),d=goog.math.toRadians(b.y),e=(d-c)/2,f=goog.math.toRadians(b.x-a.x)/2,c=Math.sin(e)*Math.sin(e)+Math.sin(f)*Math.sin(f)*Math.cos(c)*Math.cos(d);return 2*this.radius*Math.atan2(Math.sqrt(c),Math.sqrt(1-c))};
|
|
ol.Sphere.prototype.initialBearing=function(a,b){var c=goog.math.toRadians(a.y),d=goog.math.toRadians(b.y),e=goog.math.toRadians(b.x-a.x),f=Math.sin(e)*Math.cos(d),c=Math.cos(c)*Math.sin(d)-Math.sin(c)*Math.cos(d)*Math.cos(e);return goog.math.toDegrees(Math.atan2(f,c))};ol.Sphere.prototype.maximumLatitude=function(a,b){return Math.cos(Math.abs(Math.sin(goog.math.toRadians(a))*Math.cos(goog.math.toRadians(b))))};
|
|
ol.Sphere.prototype.midpoint=function(a,b){var c=goog.math.toRadians(a.y),d=goog.math.toRadians(b.y),e=goog.math.toRadians(a.x),f=goog.math.toRadians(b.x-a.x),g=Math.cos(d)*Math.cos(f),f=Math.cos(d)*Math.sin(f),g=Math.cos(c)+g,c=Math.atan2(Math.sin(c)+Math.sin(d),Math.sqrt(g*g+f*f)),e=e+Math.atan2(f,g);return new ol.Coordinate(goog.math.toDegrees(e),goog.math.toDegrees(c))};
|
|
ol.Sphere.prototype.offset=function(a,b,c){var d=goog.math.toRadians(a.y),a=goog.math.toRadians(a.x),e=b/this.radius,b=Math.asin(Math.sin(d)*Math.cos(e)+Math.cos(d)*Math.sin(e)*Math.cos(c)),c=a+Math.atan2(Math.sin(c)*Math.sin(e)*Math.cos(d),Math.cos(e)-Math.sin(d)*Math.sin(b));return new ol.Coordinate(goog.math.toDegrees(c),goog.math.toDegrees(b))};ol.sphere={};ol.sphere.NORMAL=new ol.Sphere(6370997);ol.projection={};ol.ENABLE_PROJ4JS=!0;ol.HAVE_PROJ4JS=ol.ENABLE_PROJ4JS&&"object"==typeof Proj4js;ol.ProjectionUnits={DEGREES:"degrees",METERS:"m"};ol.Projection=function(a,b,c,d){this.code_=a;this.units_=b;this.extent_=c;this.axisOrientation_=goog.isDef(d)?d:"enu";this.defaultTileGrid_=null};ol.Projection.prototype.getCode=function(){return this.code_};ol.Projection.prototype.getExtent=function(){return this.extent_};ol.Projection.prototype.getUnits=function(){return this.units_};
|
|
ol.Projection.prototype.getAxisOrientation=function(){return this.axisOrientation_};ol.Projection.prototype.getDefaultTileGrid=function(){return this.defaultTileGrid_};ol.Projection.prototype.setDefaultTileGrid=function(a){this.defaultTileGrid_=a};ol.Proj4jsProjection_=function(a,b){ol.Projection.call(this,a,b.units,null,b.axis);this.proj4jsProj_=b;this.toEPSG4326_=null};goog.inherits(ol.Proj4jsProjection_,ol.Projection);
|
|
ol.Proj4jsProjection_.prototype.getPointResolution=function(a,b){if(this.getUnits()==ol.ProjectionUnits.DEGREES)return a;goog.isNull(this.toEPSG4326_)&&(this.toEPSG4326_=ol.projection.getTransform(this,ol.projection.getProj4jsProjectionFromCode_("EPSG:4326")));var c=[b.x-a/2,b.y,b.x+a/2,b.y,b.x,b.y-a/2,b.x,b.y+a/2],c=this.toEPSG4326_(c,c,2),d=ol.sphere.NORMAL.haversineDistance(new ol.Coordinate(c[0],c[1]),new ol.Coordinate(c[2],c[3])),c=ol.sphere.NORMAL.haversineDistance(new ol.Coordinate(c[4],c[5]),
|
|
new ol.Coordinate(c[6],c[7]));return(d+c)/2};ol.Proj4jsProjection_.prototype.getProj4jsProj=function(){return this.proj4jsProj_};ol.projection.proj4jsProjections_={};ol.projection.projections_={};ol.projection.transforms_={};ol.projection.addEquivalentProjections=function(a){ol.projection.addProjections(a);goog.array.forEach(a,function(b){goog.array.forEach(a,function(a){b!==a&&ol.projection.addTransform(b,a,ol.projection.cloneTransform)})})};
|
|
ol.projection.addEquivalentTransforms=function(a,b,c,d){goog.array.forEach(a,function(a){goog.array.forEach(b,function(b){ol.projection.addTransform(a,b,c);ol.projection.addTransform(b,a,d)})})};ol.projection.addProj4jsProjection_=function(a){var b=ol.projection.proj4jsProjections_,c=a.getCode();goog.asserts.assert(!goog.object.containsKey(b,c));b[c]=a};
|
|
ol.projection.addProjection=function(a){var b=ol.projection.projections_,c=a.getCode();goog.asserts.assert(!goog.object.containsKey(b,c));b[c]=a;ol.projection.addTransform(a,a,ol.projection.cloneTransform)};ol.projection.addProjections=function(a){goog.array.forEach(a,function(a){ol.projection.addProjection(a)})};ol.projection.clearAllProjections=function(){ol.ENABLE_PROJ4JS&&(ol.projection.proj4jsProjections_={});ol.projection.projections_={};ol.projection.transforms_={}};
|
|
ol.projection.createProjection=function(a,b){if(goog.isDefAndNotNull(a)){if(goog.isString(a))return ol.projection.getFromCode(a);goog.asserts.assert(a instanceof ol.Projection);return a}return ol.projection.getFromCode(b)};ol.projection.addTransform=function(a,b,c){var a=a.getCode(),b=b.getCode(),d=ol.projection.transforms_;goog.object.containsKey(d,a)||(d[a]={});goog.asserts.assert(!goog.object.containsKey(d[a],b));d[a][b]=c};
|
|
ol.projection.removeTransform=function(a,b){var c=a.getCode(),d=b.getCode(),e=ol.projection.transforms_;goog.asserts.assert(c in e);goog.asserts.assert(d in e[c]);var f=e[c][d];delete e[c][d];0==goog.object.getKeys(e[c]).length&&delete e[c];return f};ol.projection.getFromCode=function(a){var b=ol.projection.projections_[a];ol.HAVE_PROJ4JS&&!goog.isDef(b)&&(b=ol.projection.getProj4jsProjectionFromCode_(a));goog.isDef(b)||(goog.asserts.assert(goog.isDef(b)),b=null);return b};
|
|
ol.projection.getProj4jsProjectionFromCode_=function(a){var b=ol.projection.proj4jsProjections_,c=b[a];goog.isDef(c)||(c=new Proj4js.Proj(a),c=new ol.Proj4jsProjection_(a,c),b[a]=c);return c};ol.projection.equivalent=function(a,b){return a===b?!0:a.getUnits()!=b.getUnits()?!1:ol.projection.getTransform(a,b)===ol.projection.cloneTransform};
|
|
ol.projection.getTransform=function(a,b){var c=ol.projection.transforms_,d=a.getCode(),e=b.getCode(),f;goog.object.containsKey(c,d)&&goog.object.containsKey(c[d],e)&&(f=c[d][e]);if(ol.HAVE_PROJ4JS&&!goog.isDef(f)){var g=(a instanceof ol.Proj4jsProjection_?a:ol.projection.getProj4jsProjectionFromCode_(a.getCode())).getProj4jsProj(),h=(b instanceof ol.Proj4jsProjection_?b:ol.projection.getProj4jsProjectionFromCode_(b.getCode())).getProj4jsProj();f=function(a,b,c){var d=a.length,c=1<c?c:2;goog.isDef(b)||
|
|
(b=2<c?a.slice():Array(d));goog.asserts.assert(0===b.length%c);for(var e,f=0;f<d;f+=c)e=new Proj4js.Point(a[f],a[f+1]),e=Proj4js.transform(g,h,e),b[f]=e.x,b[f+1]=e.y;return b};ol.projection.addTransform(a,b,f)}goog.isDef(f)||(goog.asserts.assert(goog.isDef(f)),f=ol.projection.identityTransform);return f};ol.projection.getTransformFromCodes=function(a,b){var c=ol.projection.getFromCode(a),d=ol.projection.getFromCode(b);return ol.projection.getTransform(c,d)};
|
|
ol.projection.identityTransform=function(a,b){if(goog.isDef(b)&&a!==b){goog.asserts.assert(!1,"This should not be used internally.");for(var c=0,d=a.length;c<d;++c)b[c]=a[c];a=b}return a};ol.projection.cloneTransform=function(a,b){var c;if(goog.isDef(b)){c=0;for(var d=a.length;c<d;++c)b[c]=a[c];c=b}else c=a.slice();return c};ol.projection.transform=function(a,b,c){b=ol.projection.getTransform(b,c);a=[a.x,a.y];a=b(a,a,2);return new ol.Coordinate(a[0],a[1])};
|
|
ol.projection.transformWithCodes=function(a,b,c){b=ol.projection.getTransformFromCodes(b,c);a=[a.x,a.y];a=b(a,a,2);return new ol.Coordinate(a[0],a[1])};ol.IView2D=function(){};ol.IView2D.prototype.getCenter=function(){};ol.IView2D.prototype.getProjection=function(){};ol.IView2D.prototype.getResolution=function(){};ol.IView2D.prototype.getRotation=function(){};ol.IView2D.prototype.getView2DState=function(){};ol.source={};ol.source.Source=function(a){goog.events.EventTarget.call(this);this.projection_=goog.isDef(a.projection)?a.projection:null;this.extent_=goog.isDef(a.extent)?a.extent:goog.isDef(a.projection)?a.projection.getExtent():null;this.attributions_=goog.isDef(a.attributions)?a.attributions:null};goog.inherits(ol.source.Source,goog.events.EventTarget);ol.source.Source.prototype.dispatchLoadEvent=function(){this.dispatchEvent(goog.events.EventType.LOAD)};
|
|
ol.source.Source.prototype.getAttributions=function(){return this.attributions_};ol.source.Source.prototype.getExtent=function(){return this.extent_};ol.source.Source.prototype.getProjection=function(){return this.projection_};ol.source.Source.prototype.isReady=goog.functions.TRUE;ol.source.Source.prototype.setAttributions=function(a){this.attributions_=a};ol.source.Source.prototype.setExtent=function(a){this.extent_=a};ol.source.Source.prototype.setProjection=function(a){this.projection_=a};ol.layer={};ol.layer.LayerProperty={BRIGHTNESS:"brightness",CONTRAST:"contrast",HUE:"hue",OPACITY:"opacity",SATURATION:"saturation",VISIBLE:"visible"};
|
|
ol.layer.Layer=function(a){ol.Object.call(this);this.source_=a.source;this.setBrightness(goog.isDef(a.brightness)?a.brightness:0);this.setContrast(goog.isDef(a.contrast)?a.contrast:1);this.setHue(goog.isDef(a.hue)?a.hue:0);this.setOpacity(goog.isDef(a.opacity)?a.opacity:1);this.setSaturation(goog.isDef(a.saturation)?a.saturation:1);this.setVisible(goog.isDef(a.visible)?a.visible:!0);this.source_.isReady()||goog.events.listenOnce(this.source_,goog.events.EventType.LOAD,this.handleSourceLoad_,!1,this)};
|
|
goog.inherits(ol.layer.Layer,ol.Object);ol.layer.Layer.prototype.dispatchLoadEvent_=function(){this.dispatchEvent(goog.events.EventType.LOAD)};ol.layer.Layer.prototype.getBrightness=function(){return this.get(ol.layer.LayerProperty.BRIGHTNESS)};goog.exportProperty(ol.layer.Layer.prototype,"getBrightness",ol.layer.Layer.prototype.getBrightness);ol.layer.Layer.prototype.getContrast=function(){return this.get(ol.layer.LayerProperty.CONTRAST)};
|
|
goog.exportProperty(ol.layer.Layer.prototype,"getContrast",ol.layer.Layer.prototype.getContrast);ol.layer.Layer.prototype.getHue=function(){return this.get(ol.layer.LayerProperty.HUE)};goog.exportProperty(ol.layer.Layer.prototype,"getHue",ol.layer.Layer.prototype.getHue);
|
|
ol.layer.Layer.prototype.getLayerState=function(){var a=this.getBrightness(),b=this.getContrast(),c=this.getHue(),d=this.getOpacity(),e=this.isReady(),f=this.getSaturation(),g=this.getVisible();return{brightness:goog.isDef(a)?a:0,contrast:goog.isDef(b)?b:1,hue:goog.isDef(c)?c:0,opacity:goog.isDef(d)?d:1,ready:e,saturation:goog.isDef(f)?f:1,visible:goog.isDef(g)?g:!0}};ol.layer.Layer.prototype.getOpacity=function(){return this.get(ol.layer.LayerProperty.OPACITY)};
|
|
goog.exportProperty(ol.layer.Layer.prototype,"getOpacity",ol.layer.Layer.prototype.getOpacity);ol.layer.Layer.prototype.getSaturation=function(){return this.get(ol.layer.LayerProperty.SATURATION)};goog.exportProperty(ol.layer.Layer.prototype,"getSaturation",ol.layer.Layer.prototype.getSaturation);ol.layer.Layer.prototype.getSource=function(){return this.source_};ol.layer.Layer.prototype.getVisible=function(){return this.get(ol.layer.LayerProperty.VISIBLE)};
|
|
goog.exportProperty(ol.layer.Layer.prototype,"getVisible",ol.layer.Layer.prototype.getVisible);ol.layer.Layer.prototype.handleSourceLoad_=function(){this.dispatchLoadEvent_()};ol.layer.Layer.prototype.isReady=function(){return this.getSource().isReady()};ol.layer.Layer.prototype.setBrightness=function(a){a=goog.math.clamp(a,-1,1);a!=this.getBrightness()&&this.set(ol.layer.LayerProperty.BRIGHTNESS,a)};goog.exportProperty(ol.layer.Layer.prototype,"setBrightness",ol.layer.Layer.prototype.setBrightness);
|
|
ol.layer.Layer.prototype.setContrast=function(a){a=Math.max(0,a);a!=this.getContrast()&&this.set(ol.layer.LayerProperty.CONTRAST,a)};goog.exportProperty(ol.layer.Layer.prototype,"setContrast",ol.layer.Layer.prototype.setContrast);ol.layer.Layer.prototype.setHue=function(a){a!=this.getHue()&&this.set(ol.layer.LayerProperty.HUE,a)};goog.exportProperty(ol.layer.Layer.prototype,"setHue",ol.layer.Layer.prototype.setHue);
|
|
ol.layer.Layer.prototype.setOpacity=function(a){a=goog.math.clamp(a,0,1);a!=this.getOpacity()&&this.set(ol.layer.LayerProperty.OPACITY,a)};goog.exportProperty(ol.layer.Layer.prototype,"setOpacity",ol.layer.Layer.prototype.setOpacity);ol.layer.Layer.prototype.setSaturation=function(a){a=Math.max(0,a);a!=this.getSaturation()&&this.set(ol.layer.LayerProperty.SATURATION,a)};goog.exportProperty(ol.layer.Layer.prototype,"setSaturation",ol.layer.Layer.prototype.setSaturation);
|
|
ol.layer.Layer.prototype.setVisible=function(a){a=!!a;a!=this.getVisible()&&this.set(ol.layer.LayerProperty.VISIBLE,a)};goog.exportProperty(ol.layer.Layer.prototype,"setVisible",ol.layer.Layer.prototype.setVisible);ol.IView3D=function(){};ol.IView=function(){};ol.IView.prototype.getView2D=function(){};ol.IView.prototype.getView3D=function(){};goog.fx={};goog.fx.easing={};goog.fx.easing.easeIn=function(a){return a*a*a};goog.fx.easing.easeOut=function(a){return 1-Math.pow(1-a,3)};goog.fx.easing.inAndOut=function(a){return 3*a*a-2*a*a*a};ol.ViewHint={ANIMATING:0,INTERACTING:1};ol.View=function(){ol.Object.call(this);this.hints_=[0,0]};goog.inherits(ol.View,ol.Object);ol.View.prototype.getHints=function(){return goog.array.clone(this.hints_)};ol.View.prototype.setHint=function(a,b){goog.asserts.assert(0<=a&&a<this.hints_.length);this.hints_[a]+=b;goog.asserts.assert(0<=this.hints_[a])};ol.easing={};ol.easing.linear=function(a){return a};ol.easing.upAndDown=function(a){return 0.5>a?goog.fx.easing.inAndOut(2*a):1-goog.fx.easing.inAndOut(2*(a-0.5))};ol.easing.elastic=function(a){return Math.pow(2,-10*a)*Math.sin((a-0.075)*2*Math.PI/0.3)+1};ol.easing.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};ol.animation={};ol.animation.bounce=function(a){var b=a.resolution,c=goog.isDef(a.start)?a.start:goog.now(),d=goog.isDef(a.duration)?a.duration:1E3,e=goog.isDef(a.easing)?a.easing:ol.easing.upAndDown;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[ol.ViewHint.ANIMATING]+=1,!0;if(g.time<c+d){var h=e((g.time-c)/d),i=b-g.view2DState.resolution;g.animate=!0;g.view2DState.resolution+=h*i;g.viewHints[ol.ViewHint.ANIMATING]+=1;return!0}return!1}};
|
|
ol.animation.pan=function(a){var b=a.source,c=goog.isDef(a.start)?a.start:goog.now(),d=b.x,e=b.y,f=goog.isDef(a.duration)?a.duration:1E3,g=goog.isDef(a.easing)?a.easing:goog.fx.easing.inAndOut;return function(a,b){if(b.time<c)return b.animate=!0,b.viewHints[ol.ViewHint.ANIMATING]+=1,!0;if(b.time<c+f){var l=1-g((b.time-c)/f),j=d-b.view2DState.center.x,k=e-b.view2DState.center.y;b.animate=!0;b.view2DState.center.x+=l*j;b.view2DState.center.y+=l*k;b.viewHints[ol.ViewHint.ANIMATING]+=1;return!0}return!1}};
|
|
ol.animation.rotate=function(a){var b=a.rotation,c=goog.isDef(a.start)?a.start:goog.now(),d=goog.isDef(a.duration)?a.duration:1E3,e=goog.isDef(a.easing)?a.easing:goog.fx.easing.inAndOut;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[ol.ViewHint.ANIMATING]+=1,!0;if(g.time<c+d){var h=1-e((g.time-c)/d),i=b-g.view2DState.rotation;g.animate=!0;g.view2DState.rotation+=h*i;g.viewHints[ol.ViewHint.ANIMATING]+=1;return!0}return!1}};
|
|
ol.animation.zoom=function(a){var b=a.resolution,c=goog.isDef(a.start)?a.start:goog.now(),d=goog.isDef(a.duration)?a.duration:1E3,e=goog.isDef(a.easing)?a.easing:ol.easing.linear;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[ol.ViewHint.ANIMATING]+=1,!0;if(g.time<c+d){var h=1-e((g.time-c)/d),i=b-g.view2DState.resolution;g.animate=!0;g.view2DState.resolution+=h*i;g.viewHints[ol.ViewHint.ANIMATING]+=1;return!0}return!1}};ol.Kinetic=function(a,b,c){this.decay_=a;this.minVelocity_=b;this.delay_=c;this.points_=[];this.initialVelocity_=this.angle_=0};ol.Kinetic.prototype.begin=function(){this.initialVelocity_=this.angle_=this.points_.length=0};ol.Kinetic.prototype.update=function(a,b){this.points_.push({x:a,y:b,t:goog.now()})};
|
|
ol.Kinetic.prototype.end=function(){for(var a=goog.now(),b=this.points_.length-1,c=b-1;0<=c&&this.points_[c].t>a-this.delay_;)c--;if(0<=c){var a=this.points_[c],b=this.points_[b],c=b.x-a.x,d=b.y-a.y;this.angle_=Math.atan2(d,c);this.initialVelocity_=Math.sqrt(c*c+d*d)/(b.t-a.t);return this.initialVelocity_>this.minVelocity_}return!1};
|
|
ol.Kinetic.prototype.pan=function(a){var b=this.decay_,c=this.initialVelocity_,d=this.minVelocity_,e=this.getDuration_();return ol.animation.pan({source:a,duration:e,easing:function(a){return c*(Math.exp(b*a*e)-1)/(d-c)}})};ol.Kinetic.prototype.getDuration_=function(){return Math.log(this.minVelocity_/this.initialVelocity_)/this.decay_};ol.Kinetic.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_};ol.Kinetic.prototype.getAngle=function(){return this.angle_};ol.MapEventType={POSTRENDER:"postrender"};ol.MapEvent=function(a,b,c){goog.events.Event.call(this,a);this.map=b;this.defaultPrevented=!1;this.frameState=goog.isDef(c)?c:null};goog.inherits(ol.MapEvent,goog.events.Event);ol.MapEvent.prototype.preventDefault=function(){ol.MapEvent.superClass_.preventDefault.call(this);this.defaultPrevented=!0};ol.Pixel=function(a,b){goog.math.Coordinate.call(this,a,b)};goog.inherits(ol.Pixel,goog.math.Coordinate);ol.MapBrowserEvent=function(a,b,c,d){ol.MapEvent.call(this,a,b,d);this.browserEvent=c;this.pixel_=this.coordinate_=null};goog.inherits(ol.MapBrowserEvent,ol.MapEvent);ol.MapBrowserEvent.IEEventType={MSPOINTERDOWN:"MSPointerDown",MSPOINTERMOVE:"MSPointerMove",MSPOINTERUP:"MSPointerUp"};ol.MapBrowserEvent.prototype.getCoordinate=function(){goog.isNull(this.coordinate_)&&(this.coordinate_=this.map.getCoordinateFromPixel(this.getPixel()));return this.coordinate_};
|
|
ol.MapBrowserEvent.prototype.getPixel=function(){if(goog.isNull(this.pixel_)){var a=goog.style.getRelativePosition(this.browserEvent,this.map.getViewport());this.pixel_=new ol.Pixel(a.x,a.y)}return this.pixel_};ol.MapBrowserEvent.prototype.isMouseActionButton=function(){return ol.BrowserFeature.HAS_TOUCH||this.browserEvent.isMouseActionButton()};
|
|
ol.MapBrowserEventHandler=function(a){this.map_=a;this.previous_=null;this.dragged_=!1;this.down_=this.touchListenerKeys_=this.dragListenerKeys_=this.downListenerKey_=this.clickListenerKey_=this.timestamp_=null;a=this.map_.getViewport();this.clickListenerKey_=goog.events.listen(a,[goog.events.EventType.CLICK,goog.events.EventType.DBLCLICK],this.click_,!1,this);this.downListenerKey_=goog.events.listen(a,goog.events.EventType.MOUSEDOWN,this.handleMouseDown_,!1,this);this.touchListenerKeys_=[goog.events.listen(a,
|
|
[goog.events.EventType.TOUCHSTART,ol.MapBrowserEvent.IEEventType.MSPOINTERDOWN],this.handleTouchStart_,!1,this),goog.events.listen(a,[goog.events.EventType.TOUCHMOVE,ol.MapBrowserEvent.IEEventType.MSPOINTERMOVE],this.handleTouchMove_,!1,this),goog.events.listen(a,[goog.events.EventType.TOUCHEND,ol.MapBrowserEvent.IEEventType.MSPOINTERUP],this.handleTouchEnd_,!1,this)]};goog.inherits(ol.MapBrowserEventHandler,goog.events.EventTarget);
|
|
ol.MapBrowserEventHandler.prototype.click_=function(a){if(!this.dragged_){var b=a.type,a=0==this.timestamp_||b==goog.events.EventType.DBLCLICK?new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DBLCLICK,this.map_,a):new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.CLICK,this.map_,a);this.dispatchEvent(a)}};
|
|
ol.MapBrowserEventHandler.prototype.handleMouseUp_=function(a){this.previous_&&(this.down_=null,goog.array.forEach(this.dragListenerKeys_,goog.events.unlistenByKey),this.previous_=this.dragListenerKeys_=null,this.dragged_&&(a=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAGEND,this.map_,a),this.dispatchEvent(a)))};
|
|
ol.MapBrowserEventHandler.prototype.handleMouseDown_=function(a){var b=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DOWN,this.map_,a);this.dispatchEvent(b);this.previous_||(this.down_=a,this.previous_={clientX:a.clientX,clientY:a.clientY},this.dragged_=!1,this.dragListenerKeys_=[goog.events.listen(document,goog.events.EventType.MOUSEMOVE,this.handleMouseMove_,!1,this),goog.events.listen(document,goog.events.EventType.MOUSEUP,this.handleMouseUp_,!1,this)],a.preventDefault())};
|
|
ol.MapBrowserEventHandler.prototype.handleMouseMove_=function(a){var b;this.dragged_||(this.dragged_=!0,b=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAGSTART,this.map_,this.down_),this.dispatchEvent(b));this.previous_={clientX:a.clientX,clientY:a.clientY};b=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAG,this.map_,a);this.dispatchEvent(b)};
|
|
ol.MapBrowserEventHandler.prototype.handleTouchStart_=function(a){a.preventDefault();this.down_=a;this.dragged_=!1;a=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHSTART,this.map_,a);this.dispatchEvent(a)};ol.MapBrowserEventHandler.prototype.handleTouchMove_=function(a){this.dragged_=!0;a=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHMOVE,this.map_,a);this.dispatchEvent(a)};
|
|
ol.MapBrowserEventHandler.prototype.handleTouchEnd_=function(a){a=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHEND,this.map_,a);this.dispatchEvent(a);this.dragged_||(a=goog.now(),this.timestamp_=!this.timestamp_||250<a-this.timestamp_?a:0,this.click_(this.down_));this.down_=null};
|
|
ol.MapBrowserEventHandler.prototype.disposeInternal=function(){goog.events.unlistenByKey(this.clickListenerKey_);goog.events.unlistenByKey(this.downListenerKey_);goog.isNull(this.dragListenerKeys_)||(goog.array.forEach(this.dragListenerKeys_,goog.events.unlistenByKey),this.dragListenerKeys_=null);goog.isNull(this.touchListenerKeys_)||(goog.array.forEach(this.touchListenerKeys_,goog.events.unlistenByKey),this.touchListenerKeys_=null);ol.MapBrowserEventHandler.superClass_.disposeInternal.call(this)};
|
|
ol.MapBrowserEvent.EventType={CLICK:goog.events.EventType.CLICK,DBLCLICK:goog.events.EventType.DBLCLICK,DOWN:"down",DRAGSTART:"dragstart",DRAG:"drag",DRAGEND:"dragend",TOUCHSTART:goog.events.EventType.TOUCHSTART,TOUCHMOVE:goog.events.EventType.TOUCHMOVE,TOUCHEND:goog.events.EventType.TOUCHEND};ol.array={};ol.array.binaryFindNearest=function(a,b){var c=goog.array.binarySearch(a,b,function(a,b){return b-a});if(0<=c)return c;if(-1==c)return 0;if(c==-a.length-1)return a.length-1;var d=-c-2,c=-c-1;return a[d]-b<b-a[c]?d:c};ol.array.linearFindNearest=function(a,b){var c=a.length;if(a[0]<=b)return 0;if(!(b<=a[c-1])){var d;for(d=1;d<c;++d){if(a[d]==b)return d;if(a[d]<b)return a[d-1]-b<b-a[d]?d-1:d}}return c-1};ol.ResolutionConstraint={};ol.ResolutionConstraint.createContinuous=function(a,b,c){var d=c||0;return function(c,f){if(goog.isDef(c))return c/=Math.pow(a,f),goog.math.clamp(c,d,b)}};ol.ResolutionConstraint.createSnapToResolutions=function(a){return function(b,c){if(goog.isDef(b)){var d=ol.array.linearFindNearest(a,b),d=goog.math.clamp(d+c,0,a.length-1);return a[d]}}};
|
|
ol.ResolutionConstraint.createSnapToPower=function(a,b,c){return function(d,e){if(goog.isDef(d)){var f=Math.floor(Math.log(b/d)/Math.log(a)+0.5),f=Math.max(f+e,0);goog.isDef(c)&&(f=Math.min(f,c));return b/Math.pow(a,f)}}};ol.RotationConstraint={};ol.RotationConstraint.none=function(a,b){if(goog.isDef(a))return a+b};ol.RotationConstraint.createSnapToN=function(a){var b=2*Math.PI/a;return function(a,d){if(goog.isDef(a))return a=Math.floor((a+d)/b+0.5)*b}};ol.Constraints=function(a,b){this.resolution=a;this.rotation=b};ol.View2DProperty={CENTER:"center",PROJECTION:"projection",RESOLUTION:"resolution",ROTATION:"rotation"};
|
|
ol.View2D=function(a){ol.View.call(this);var a=a||{},b={};b[ol.View2DProperty.CENTER]=goog.isDef(a.center)?a.center:null;b[ol.View2DProperty.PROJECTION]=ol.projection.createProjection(a.projection,"EPSG:3857");if(goog.isDef(a.resolution))b[ol.View2DProperty.RESOLUTION]=a.resolution;else if(goog.isDef(a.zoom)){var c=b[ol.View2DProperty.PROJECTION].getExtent(),c=Math.max(c.maxX-c.minX,c.maxY-c.minY);b[ol.View2DProperty.RESOLUTION]=c/(ol.DEFAULT_TILE_SIZE*Math.pow(2,a.zoom))}b[ol.View2DProperty.ROTATION]=
|
|
a.rotation;this.setValues(b);this.constraints_=ol.View2D.createConstraints_(a)};goog.inherits(ol.View2D,ol.View);ol.View2D.prototype.getCenter=function(){return this.get(ol.View2DProperty.CENTER)};goog.exportProperty(ol.View2D.prototype,"getCenter",ol.View2D.prototype.getCenter);ol.View2D.prototype.getExtent=function(a){goog.asserts.assert(this.isDef());var b=this.getCenter(),c=this.getResolution();return new ol.Extent(b.x-c*a.width/2,b.y-c*a.height/2,b.x+c*a.width/2,b.y+c*a.height/2)};
|
|
ol.View2D.prototype.getProjection=function(){return this.get(ol.View2DProperty.PROJECTION)};goog.exportProperty(ol.View2D.prototype,"getProjection",ol.View2D.prototype.getProjection);ol.View2D.prototype.getResolution=function(){return this.get(ol.View2DProperty.RESOLUTION)};goog.exportProperty(ol.View2D.prototype,"getResolution",ol.View2D.prototype.getResolution);ol.View2D.prototype.getResolutionForExtent=function(a,b){return Math.max((a.maxX-a.minX)/b.width,(a.maxY-a.minY)/b.height)};
|
|
ol.View2D.prototype.getRotation=function(){return this.get(ol.View2DProperty.ROTATION)||0};goog.exportProperty(ol.View2D.prototype,"getRotation",ol.View2D.prototype.getRotation);ol.View2D.prototype.getView2D=function(){return this};ol.View2D.prototype.getView2DState=function(){goog.asserts.assert(this.isDef());var a=this.getCenter(),b=this.getProjection(),c=this.getResolution(),d=this.getRotation();return{center:new ol.Coordinate(a.x,a.y),projection:b,resolution:c,rotation:d}};
|
|
ol.View2D.prototype.getView3D=function(){};ol.View2D.prototype.fitExtent=function(a,b){this.setCenter(a.getCenter());var c=this.getResolutionForExtent(a,b),c=this.constraints_.resolution(c,0);this.setResolution(c)};ol.View2D.prototype.isDef=function(){return goog.isDefAndNotNull(this.getCenter())&&goog.isDef(this.getResolution())};ol.View2D.prototype.setCenter=function(a){this.set(ol.View2DProperty.CENTER,a)};goog.exportProperty(ol.View2D.prototype,"setCenter",ol.View2D.prototype.setCenter);
|
|
ol.View2D.prototype.setProjection=function(a){this.set(ol.View2DProperty.PROJECTION,a)};goog.exportProperty(ol.View2D.prototype,"setProjection",ol.View2D.prototype.setProjection);ol.View2D.prototype.setResolution=function(a){this.set(ol.View2DProperty.RESOLUTION,a)};goog.exportProperty(ol.View2D.prototype,"setResolution",ol.View2D.prototype.setResolution);ol.View2D.prototype.setRotation=function(a){this.set(ol.View2DProperty.ROTATION,a)};goog.exportProperty(ol.View2D.prototype,"setRotation",ol.View2D.prototype.setRotation);
|
|
ol.View2D.prototype.rotate=function(a,b,c){b=this.constraints_.rotation(b,0);if(goog.isDefAndNotNull(c)){var d=this.getCenter(),e=new ol.Coordinate(d.x-c.x,d.y-c.y);e.rotate(b-this.getRotation());e.x+=c.x;e.y+=c.y;a.withFrozenRendering(function(){this.setCenter(e);this.setRotation(b)},this)}else this.setRotation(b)};
|
|
ol.View2D.prototype.zoom_=function(a,b,c){if(goog.isDefAndNotNull(b)&&goog.isDefAndNotNull(c)){var d=this.getCenter(),e=this.getResolution(),f=new ol.Coordinate(c.x-b*(c.x-d.x)/e,c.y-b*(c.y-d.y)/e);a.withFrozenRendering(function(){this.setCenter(f);this.setResolution(b)},this)}else this.setResolution(b)};
|
|
ol.View2D.prototype.zoom=function(a,b,c,d){var e=this.getResolution();goog.isDef(e)&&goog.isDef(d)&&(a.requestRenderFrame(),a.addPreRenderFunction(ol.animation.zoom({resolution:e,duration:d})));b=this.constraints_.resolution(e,b);this.zoom_(a,b,c)};ol.View2D.prototype.zoomToResolution=function(a,b,c){b=this.constraints_.resolution(b,0);this.zoom_(a,b,c)};
|
|
ol.View2D.createConstraints_=function(a){var b;if(goog.isDef(a.resolutions))b=ol.ResolutionConstraint.createSnapToResolutions(a.resolutions);else{var c;goog.isDef(a.maxResolution)&&goog.isDef(a.numZoomLevels)&&goog.isDef(a.zoomFactor)?(b=a.maxResolution,c=a.numZoomLevels,a=a.zoomFactor):(b=ol.projection.createProjection(a.projection,"EPSG:3857").getExtent(),b=Math.max(b.maxX-b.minX,b.maxY-b.minY)/ol.DEFAULT_TILE_SIZE,c=116,a=Math.exp(Math.log(2)/4));b=ol.ResolutionConstraint.createSnapToPower(a,b,
|
|
c-1)}return new ol.Constraints(b,ol.RotationConstraint.none)};ol.control={};ol.control.Control=function(a){goog.Disposable.call(this);this.element=goog.isDef(a.element)?a.element:null;this.target_=a.target;this.map_=null;goog.isDef(a.map)&&this.setMap(a.map)};goog.inherits(ol.control.Control,goog.Disposable);ol.control.Control.prototype.disposeInternal=function(){goog.dom.removeNode(this.element);ol.control.Control.superClass_.disposeInternal.call(this)};ol.control.Control.prototype.getMap=function(){return this.map_};
|
|
ol.control.Control.prototype.setMap=function(a){goog.isNull(this.map_)||goog.dom.removeNode(this.element);this.map_=a;goog.isNull(this.map_)||(a=goog.isDef(this.target_)?this.target_:a.getOverlayContainer(),goog.dom.appendChild(a,this.element))};ol.control.Attribution=function(a){this.ulElement_=goog.dom.createElement(goog.dom.TagName.UL);var b=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-attribution ol-unselectable"},this.ulElement_);ol.control.Control.call(this,{element:b,map:a.map,target:a.target});this.renderedVisible_=!0;this.attributionElements_={};this.attributionElementRenderedVisible_={};this.listenerKeys_=null};goog.inherits(ol.control.Attribution,ol.control.Control);
|
|
ol.control.Attribution.prototype.getTileSourceAttributions=function(a,b){var c={},d,e,f,g,h,i;for(i in a)if(goog.asserts.assert(i in b),d=b[i],h=d.getAttributions(),!goog.isNull(h)){e=a[i];for(d=0;d<h.length;++d)f=h[d],g=goog.getUid(f).toString(),g in c||f.intersectsAnyTileRange(e)&&(c[g]=f)}return c};ol.control.Attribution.prototype.handleMapPostrender=function(a){this.updateElement_(a.frameState)};
|
|
ol.control.Attribution.prototype.setMap=function(a){goog.isNull(this.listenerKeys_)||(goog.array.forEach(this.listenerKeys_,goog.events.unlistenByKey),this.listenerKeys_=null);ol.control.Attribution.superClass_.setMap.call(this,a);goog.isNull(a)||(this.listenerKeys_=[goog.events.listen(a,ol.MapEventType.POSTRENDER,this.handleMapPostrender,!1,this)])};
|
|
ol.control.Attribution.prototype.updateElement_=function(a){if(goog.isNull(a))this.renderedVisible_&&(goog.style.showElement(this.element,!1),this.renderedVisible_=!1);else{var b={},c={},d=this.getMap().getLayers();goog.isDef(d)&&d.forEach(function(a){a=a.getSource();c[goog.getUid(a).toString()]=a;a=a.getAttributions();if(!goog.isNull(a)){var d,e;for(e=0;e<a.length;++e)d=a[e],g=goog.getUid(d).toString(),b[g]=!0}});d=goog.object.clone(a.attributions);a=this.getTileSourceAttributions(a.usedTiles,c);
|
|
goog.object.extend(d,a);a=goog.array.map(goog.object.getKeys(d),Number);goog.array.sort(a);var e,f,g;for(e=0;e<a.length;++e)g=a[e].toString(),g in this.attributionElements_?this.attributionElementRenderedVisible_[g]||(goog.style.showElement(this.attributionElements_[g],!0),this.attributionElementRenderedVisible_[g]=!0):(f=goog.dom.createElement(goog.dom.TagName.LI),f.innerHTML=d[g].getHTML(),goog.dom.appendChild(this.ulElement_,f),this.attributionElements_[g]=f,this.attributionElementRenderedVisible_[g]=
|
|
!0),delete b[g];for(g in b)goog.dom.removeNode(this.attributionElements_[g]),delete this.attributionElements_[g],delete this.attributionElementRenderedVisible_[g];d=!goog.array.isEmpty(a);this.renderedVisible_!=d&&(goog.style.showElement(this.element,d),this.renderedVisible_=d)}};ol.control.ScaleLineUnits={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"};
|
|
ol.control.ScaleLine=function(a){a=a||{};this.innerElement_=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-scale-line-inner"});this.element_=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-scale-line ol-unselectable"},this.innerElement_);this.minWidth_=goog.isDef(a.minWidth)?a.minWidth:64;this.units_=goog.isDef(a.units)?a.units:ol.control.ScaleLineUnits.METRIC;this.listenerKeys_=null;this.renderedVisible_=!1;this.renderedHTML_="";this.toEPSG4326_=null;ol.control.Control.call(this,{element:this.element_,
|
|
map:a.map,target:a.target})};goog.inherits(ol.control.ScaleLine,ol.control.Control);ol.control.ScaleLine.LEADING_DIGITS=[1,2,5];ol.control.ScaleLine.prototype.handleMapPostrender=function(a){this.updateElement_(a.frameState)};
|
|
ol.control.ScaleLine.prototype.setMap=function(a){goog.isNull(this.listenerKeys_)||(goog.array.forEach(this.listenerKeys_,goog.events.unlistenByKey),this.listenerKeys_=null);ol.control.ScaleLine.superClass_.setMap.call(this,a);goog.isNull(a)||(this.listenerKeys_=[goog.events.listen(a,ol.MapEventType.POSTRENDER,this.handleMapPostrender,!1,this)])};
|
|
ol.control.ScaleLine.prototype.updateElement_=function(a){if(goog.isNull(a))this.renderedVisible_&&(goog.style.showElement(this.element_,!1),this.renderedVisible_=!1);else{var a=a.view2DState,b=a.center,c=a.projection,a=c.getPointResolution(a.resolution,b),d=c.getUnits();d==ol.ProjectionUnits.DEGREES&&(this.units_==ol.control.ScaleLineUnits.METRIC||this.units_==ol.control.ScaleLineUnits.IMPERIAL)?(this.toEPSG4326_=null,b=Math.cos(goog.math.toRadians(b.y)),a*=Math.PI*b*ol.sphere.NORMAL.radius/180):
|
|
d==ol.ProjectionUnits.METERS&&this.units_==ol.control.ScaleLineUnits.DEGREES?(goog.isNull(this.toEPSG4326_)&&(this.toEPSG4326_=ol.projection.getTransform(c,ol.projection.getFromCode("EPSG:4326"))),b=[b.x,b.y],b=this.toEPSG4326_(b,b,2),b=Math.cos(goog.math.toRadians(b[1])),a*=180/(Math.PI*b*ol.sphere.NORMAL.radius)):(this.toEPSG4326_=null,goog.asserts.assert((this.units_==ol.control.ScaleLineUnits.METRIC||this.units_==ol.control.ScaleLineUnits.IMPERIAL)&&d==ol.ProjectionUnits.METERS||this.units_==
|
|
ol.control.ScaleLineUnits.DEGREES&&d==ol.ProjectionUnits.DEGREES));c=this.minWidth_*a;b="";this.units_==ol.control.ScaleLineUnits.DEGREES?c<1/60?(b="\u2033",a*=3600):1>c?(b="\u2032",a*=60):b="\u00b0":this.units_==ol.control.ScaleLineUnits.IMPERIAL?0.9144>c?(b="in",a/=0.0254):1609.344>c?(b="ft",a/=0.3048):(b="mi",a/=1609.344):this.units_==ol.control.ScaleLineUnits.NAUTICAL?(a/=1852,b="nm"):this.units_==ol.control.ScaleLineUnits.METRIC?1>c?(b="mm",a*=1E3):1E3>c?b="m":(b="km",a/=1E3):this.units_==ol.control.ScaleLineUnits.US?
|
|
0.9144>c?(b="in",a*=39.37):1609.344>c?(b="ft",a/=0.30480061):(b="mi",a/=1609.3472):goog.asserts.assert(!1);for(var c=3*Math.floor(Math.log(this.minWidth_*a)/Math.log(10)),e,f;;){e=ol.control.ScaleLine.LEADING_DIGITS[c%3]*Math.pow(10,Math.floor(c/3));f=Math.round(e/a);if(f>=this.minWidth_)break;++c}e+=b;this.renderedHTML_!=e&&(this.renderedHTML_=this.innerElement_.innerHTML=e);this.renderedWidth_!=f&&(this.innerElement_.style.width=f+"px",this.renderedWidth_=f);this.renderedVisible_||(goog.style.showElement(this.element_,
|
|
!0),this.renderedVisible_=!0)}};ol.control.ZOOM_DURATION=250;
|
|
ol.control.Zoom=function(a){var b=goog.dom.createDom(goog.dom.TagName.A,{href:"#zoomIn","class":"ol-zoom-in"});goog.events.listen(b,[goog.events.EventType.TOUCHEND,goog.events.EventType.CLICK],this.handleIn_,!1,this);var c=goog.dom.createDom(goog.dom.TagName.A,{href:"#zoomOut","class":"ol-zoom-out"});goog.events.listen(c,[goog.events.EventType.TOUCHEND,goog.events.EventType.CLICK],this.handleOut_,!1,this);b=goog.dom.createDom(goog.dom.TagName.DIV,"ol-zoom ol-unselectable",b,c);ol.control.Control.call(this,
|
|
{element:b,map:a.map,target:a.target});this.delta_=goog.isDef(a.delta)?a.delta:1};goog.inherits(ol.control.Zoom,ol.control.Control);ol.control.Zoom.prototype.handleIn_=function(a){a.preventDefault();a=this.getMap();a.requestRenderFrame();a.getView().zoom(a,this.delta_,void 0,ol.control.ZOOM_DURATION)};ol.control.Zoom.prototype.handleOut_=function(a){a.preventDefault();a=this.getMap();a.requestRenderFrame();a.getView().zoom(a,-this.delta_,void 0,ol.control.ZOOM_DURATION)};ol.interaction={};ol.interaction.Interaction=function(){};ol.interaction.DblClickZoom=function(a){this.delta_=a;ol.interaction.Interaction.call(this)};goog.inherits(ol.interaction.DblClickZoom,ol.interaction.Interaction);
|
|
ol.interaction.DblClickZoom.prototype.handleMapBrowserEvent=function(a){var b=a.browserEvent;if(a.type==ol.MapBrowserEvent.EventType.DBLCLICK&&a.isMouseActionButton()){var c=a.map,d=a.getCoordinate(),e=a.browserEvent.shiftKey?-this.delta_:this.delta_,f=c.getView();goog.asserts.assert(f instanceof ol.View2D);f.zoom(c,e,d);a.preventDefault();b.preventDefault()}};ol.interaction.condition={};ol.interaction.condition.altKeyOnly=function(a){return a.altKey&&!a.platformModifierKey&&!a.shiftKey};ol.interaction.condition.altShiftKeysOnly=function(a){return a.altKey&&!a.platformModifierKey&&a.shiftKey};ol.interaction.condition.noModifierKeys=function(a){return!a.altKey&&!a.platformModifierKey&&!a.shiftKey};ol.interaction.condition.platformModifierKeyOnly=function(a){return!a.altKey&&a.platformModifierKey&&!a.shiftKey};
|
|
ol.interaction.condition.shiftKeyOnly=function(a){return!a.altKey&&!a.platformModifierKey&&a.shiftKey};ol.interaction.Drag=function(){ol.interaction.Interaction.call(this);this.dragging_=!1;this.offsetY=this.offsetX=this.startY=this.startX=0;this.startCoordinate=this.startCenter=null};goog.inherits(ol.interaction.Drag,ol.interaction.Interaction);ol.interaction.Drag.prototype.handleDrag=goog.nullFunction;ol.interaction.Drag.prototype.handleDragEnd=goog.nullFunction;ol.interaction.Drag.prototype.handleDragStart=goog.functions.FALSE;ol.interaction.Drag.prototype.handleDown=goog.nullFunction;
|
|
ol.interaction.Drag.prototype.handleMapBrowserEvent=function(a){var b=a.map;if(b.isDef()){var b=b.getView(),c=a.browserEvent;a.type==ol.MapBrowserEvent.EventType.DOWN&&(goog.asserts.assert(c instanceof goog.events.BrowserEvent),this.handleDown(a));this.dragging_?a.type==ol.MapBrowserEvent.EventType.DRAG?(goog.asserts.assert(c instanceof goog.events.BrowserEvent),this.deltaX=c.clientX-this.startX,this.deltaY=c.clientY-this.startY,this.handleDrag(a)):a.type==ol.MapBrowserEvent.EventType.DRAGEND&&(goog.asserts.assert(c instanceof
|
|
goog.events.BrowserEvent),this.deltaX=c.clientX-this.startX,this.deltaY=c.clientY-this.startY,this.handleDragEnd(a),this.dragging_=!1):a.type==ol.MapBrowserEvent.EventType.DRAGSTART&&(goog.asserts.assert(c instanceof goog.events.BrowserEvent),this.startX=c.clientX,this.startY=c.clientY,this.deltaY=this.deltaX=0,this.startCenter=b.getCenter(),this.startCoordinate=a.getCoordinate(),this.handleDragStart(a)&&(this.dragging_=!0,a.preventDefault()))}};ol.interaction.DragPan=function(a,b){ol.interaction.Drag.call(this);this.condition_=a;this.kinetic_=b;this.kineticPreRenderFn_=null};goog.inherits(ol.interaction.DragPan,ol.interaction.Drag);
|
|
ol.interaction.DragPan.prototype.handleDrag=function(a){this.kinetic_&&this.kinetic_.update(a.browserEvent.clientX,a.browserEvent.clientY);var a=a.map,b=a.getView();goog.asserts.assert(b instanceof ol.View2D);var c=b.getResolution(),d=b.getRotation(),c=new ol.Coordinate(-c*this.deltaX,c*this.deltaY);c.rotate(d);d=new ol.Coordinate(this.startCenter.x+c.x,this.startCenter.y+c.y);a.requestRenderFrame();b.setCenter(d)};
|
|
ol.interaction.DragPan.prototype.handleDragEnd=function(a){var b=a.map,a=b.getView();a.setHint(ol.ViewHint.INTERACTING,-1);if(this.kinetic_&&this.kinetic_.end()){var c=this.kinetic_.getDistance(),d=this.kinetic_.getAngle(),e=a.getCenter();this.kineticPreRenderFn_=this.kinetic_.pan(e);b.addPreRenderFunction(this.kineticPreRenderFn_);e=b.getPixelFromCoordinate(e);c=new ol.Pixel(e.x-c*Math.cos(d),e.y-c*Math.sin(d));b=b.getCoordinateFromPixel(c);a.setCenter(b)}};
|
|
ol.interaction.DragPan.prototype.handleDragStart=function(a){var b=a.browserEvent;return this.condition_(b)?(this.kinetic_&&(this.kinetic_.begin(),this.kinetic_.update(b.clientX,b.clientY)),a=a.map,a.requestRenderFrame(),a.getView().setHint(ol.ViewHint.INTERACTING,1),!0):!1};
|
|
ol.interaction.DragPan.prototype.handleDown=function(a){var b=a.map,c=b.getView();goog.asserts.assert(c instanceof ol.View2D);goog.asserts.assert(!goog.isNull(a.frameState));!goog.isNull(this.kineticPreRenderFn_)&&b.removePreRenderFunction(this.kineticPreRenderFn_)&&(b.requestRenderFrame(),c.setCenter(a.frameState.view2DState.center),this.kineticPreRenderFn_=null)};ol.interaction.DragRotate=function(a){ol.interaction.Drag.call(this);this.condition_=a};goog.inherits(ol.interaction.DragRotate,ol.interaction.Drag);ol.interaction.DragRotate.prototype.handleDrag=function(a){var b=a.map,c=b.getSize(),a=a.getPixel(),c=Math.atan2(c.height/2-a.y,a.x-c.width/2);if(goog.isDef(this.lastAngle_)){var a=c-this.lastAngle_,d=b.getView();goog.asserts.assert(d instanceof ol.View2D);b.requestRenderFrame();d.rotate(b,d.getRotation()-a)}this.lastAngle_=c};
|
|
ol.interaction.DragRotate.prototype.handleDragStart=function(a){var b=a.browserEvent;return b.isMouseActionButton()&&this.condition_(b)?(a=a.map,b=a.getView(),goog.asserts.assert(b instanceof ol.View2D),a.requestRenderFrame(),this.lastAngle_=void 0,!0):!1};ol.control.DragBox=function(a){var b=goog.dom.createDom(goog.dom.TagName.DIV,"ol-dragbox");this.startPixel_=null;this.startCoordinate_=a.startCoordinate;this.dragListenKey_=null;ol.control.Control.call(this,{element:b,map:a.map})};goog.inherits(ol.control.DragBox,ol.control.Control);
|
|
ol.control.DragBox.prototype.setMap=function(a){goog.isNull(this.dragListenKey_)||(goog.events.unlistenByKey(this.dragListenKey_),this.dragListenKey_=null);goog.isNull(a)||(this.startPixel_=a.getPixelFromCoordinate(this.startCoordinate_),goog.asserts.assert(goog.isDef(this.startPixel_)),goog.style.setPosition(this.element,this.startPixel_),goog.style.setBorderBoxSize(this.element,new ol.Size(0,0)),this.dragListenKey_=goog.events.listen(a,ol.MapBrowserEvent.EventType.DRAG,this.updateBox_,!1,this));
|
|
ol.control.DragBox.superClass_.setMap.call(this,a)};ol.control.DragBox.prototype.updateBox_=function(a){var b=this.getMap(),a=a.getCoordinate();goog.asserts.assert(goog.isDef(a));b=b.getPixelFromCoordinate(a);goog.style.setPosition(this.element,new ol.Pixel(Math.min(b.x,this.startPixel_.x),Math.min(b.y,this.startPixel_.y)));goog.style.setBorderBoxSize(this.element,new ol.Size(Math.abs(b.x-this.startPixel_.x),Math.abs(b.y-this.startPixel_.y)))};ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS=8;ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED=ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS*ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS;ol.interaction.DragZoom=function(a){ol.interaction.Drag.call(this);this.condition_=a;this.dragBox_=null};goog.inherits(ol.interaction.DragZoom,ol.interaction.Drag);
|
|
ol.interaction.DragZoom.prototype.handleDragEnd=function(a){this.dragBox_.setMap(null);this.dragBox_=null;if(this.deltaX*this.deltaX+this.deltaY*this.deltaY>=ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED){var b=a.map,c=ol.Extent.boundingExtent(this.startCoordinate,a.getCoordinate());b.withFrozenRendering(function(){var a=b.getView();goog.asserts.assert(a instanceof ol.View2D);var e=b.getSize();a.fitExtent(c,e);a.setRotation(0)})}};
|
|
ol.interaction.DragZoom.prototype.handleDragStart=function(a){var b=a.browserEvent;return b.isMouseActionButton()&&this.condition_(b)?(this.dragBox_=new ol.control.DragBox({map:a.map,startCoordinate:this.startCoordinate}),!0):!1};ol.interaction.KeyboardPan=function(a){ol.interaction.Interaction.call(this);this.pixelDelta_=a};goog.inherits(ol.interaction.KeyboardPan,ol.interaction.Interaction);
|
|
ol.interaction.KeyboardPan.prototype.handleMapBrowserEvent=function(a){if(a.type==goog.events.KeyHandler.EventType.KEY){var b=a.browserEvent,c=b.keyCode;if(c==goog.events.KeyCodes.DOWN||c==goog.events.KeyCodes.LEFT||c==goog.events.KeyCodes.RIGHT||c==goog.events.KeyCodes.UP){var d=a.map.getView();goog.asserts.assert(d instanceof ol.View2D);var e=d.getResolution()*this.pixelDelta_;c==goog.events.KeyCodes.DOWN?c=new ol.Coordinate(0,-e):c==goog.events.KeyCodes.LEFT?c=new ol.Coordinate(-e,0):c==goog.events.KeyCodes.RIGHT?
|
|
c=new ol.Coordinate(e,0):(goog.asserts.assert(c==goog.events.KeyCodes.UP),c=new ol.Coordinate(0,e));e=d.getCenter();c=new ol.Coordinate(e.x+c.x,e.y+c.y);d.setCenter(c);b.preventDefault();a.preventDefault()}}};ol.interaction.KEYBOARD_ZOOM_DURATION=100;ol.interaction.KeyboardZoom=function(){ol.interaction.Interaction.call(this)};goog.inherits(ol.interaction.KeyboardZoom,ol.interaction.Interaction);
|
|
ol.interaction.KeyboardZoom.prototype.handleMapBrowserEvent=function(a){if(a.type==goog.events.KeyHandler.EventType.KEY){var b=a.browserEvent,c=b.charCode;if(43==c||45==c){var d=a.map,c=43==c?4:-4;d.requestRenderFrame();var e=d.getView();goog.asserts.assert(e instanceof ol.View2D);e.zoom(d,c,void 0,ol.interaction.KEYBOARD_ZOOM_DURATION);b.preventDefault();a.preventDefault()}}};ol.interaction.MouseWheelZoom=function(a){this.delta_=a;ol.interaction.Interaction.call(this)};goog.inherits(ol.interaction.MouseWheelZoom,ol.interaction.Interaction);
|
|
ol.interaction.MouseWheelZoom.prototype.handleMapBrowserEvent=function(a){if(a.type==goog.events.MouseWheelHandler.EventType.MOUSEWHEEL){var b=a.map,c=a.browserEvent;goog.asserts.assert(c instanceof goog.events.MouseWheelEvent);var d=a.getCoordinate(),e=0>c.deltaY?this.delta_:-this.delta_,f=b.getView();goog.asserts.assert(f instanceof ol.View2D);b.requestRenderFrame();f.zoom(b,e,d);a.preventDefault();c.preventDefault()}};ol.interaction.Touch=function(){ol.interaction.Interaction.call(this);this.handled_=!1;this.trackedTouches_={};this.targetTouches=[]};goog.inherits(ol.interaction.Touch,ol.interaction.Interaction);ol.interaction.Touch.centroid=function(a){for(var b=a.length,c=0,d=0,e=0;e<b;e++)c+=a[e].clientX,d+=a[e].clientY;return new ol.Pixel(c/b,d/b)};
|
|
ol.interaction.Touch.prototype.updateTrackedTouches_=function(a){var b=a.browserEvent.getBrowserEvent();goog.isDef(b.targetTouches)?this.targetTouches=b.targetTouches:(a.type==ol.MapBrowserEvent.EventType.TOUCHEND?delete this.trackedTouches_[b.pointerId]:this.trackedTouches_[b.pointerId]=b,this.targetTouches=goog.object.getValues(this.trackedTouches_))};ol.interaction.Touch.prototype.handleTouchMove=goog.nullFunction;ol.interaction.Touch.prototype.handleTouchEnd=goog.functions.FALSE;
|
|
ol.interaction.Touch.prototype.handleTouchStart=goog.functions.FALSE;ol.interaction.Touch.prototype.handleMapBrowserEvent=function(a){a.browserEvent.getBrowserEvent();this.updateTrackedTouches_(a);this.handled_&&(a.type==ol.MapBrowserEvent.EventType.TOUCHMOVE?this.handleTouchMove(a):a.type==ol.MapBrowserEvent.EventType.TOUCHEND&&(this.handled_=this.handleTouchEnd(a)));a.type==ol.MapBrowserEvent.EventType.TOUCHSTART&&(this.handled_=this.handleTouchStart(a))};ol.interaction.TouchPan=function(a){ol.interaction.Touch.call(this);this.kinetic_=a;this.lastCentroid=this.kineticPreRenderFn_=null};goog.inherits(ol.interaction.TouchPan,ol.interaction.Touch);
|
|
ol.interaction.TouchPan.prototype.handleTouchMove=function(a){goog.asserts.assert(1<=this.targetTouches.length);var b=ol.interaction.Touch.centroid(this.targetTouches);if(!goog.isNull(this.lastCentroid)){this.kinetic_&&this.kinetic_.update(b.x,b.y);var c=this.lastCentroid.x-b.x,d=b.y-this.lastCentroid.y,a=a.map.getView(),c=(new ol.Coordinate(c,d)).scale(a.getResolution()).rotate(a.getRotation()).add(a.getCenter());a.setCenter(c)}this.lastCentroid=b};
|
|
ol.interaction.TouchPan.prototype.handleTouchEnd=function(a){var b=a.map,a=b.getView();if(0==this.targetTouches.length){a.setHint(ol.ViewHint.INTERACTING,-1);if(this.kinetic_&&this.kinetic_.end()){var c=this.kinetic_.getDistance(),d=this.kinetic_.getAngle(),e=a.getCenter();this.kineticPreRenderFn_=this.kinetic_.pan(e);b.addPreRenderFunction(this.kineticPreRenderFn_);e=b.getPixelFromCoordinate(e);c=new ol.Pixel(e.x-c*Math.cos(d),e.y-c*Math.sin(d));b=b.getCoordinateFromPixel(c);a.setCenter(b)}return!1}this.lastCentroid=
|
|
null;return!0};ol.interaction.TouchPan.prototype.handleTouchStart=function(a){if(1<=this.targetTouches.length){var b=a.map,c=b.getView();this.lastCentroid=null;!goog.isNull(this.kineticPreRenderFn_)&&b.removePreRenderFunction(this.kineticPreRenderFn_)&&(b.requestRenderFrame(),c.setCenter(a.frameState.view2DState.center),this.kineticPreRenderFn_=null);this.kinetic_&&this.kinetic_.begin();c.setHint(ol.ViewHint.INTERACTING,1);return!0}return!1};ol.interaction.TouchRotate=function(a){ol.interaction.Touch.call(this);this.rotating_=!1;this.rotationDelta_=0;this.threshold_=goog.isDef(a)?a:0.3};goog.inherits(ol.interaction.TouchRotate,ol.interaction.Touch);
|
|
ol.interaction.TouchRotate.prototype.handleTouchMove=function(a){goog.asserts.assert(2<=this.targetTouches.length);var b=0,c=this.targetTouches[0],d=this.targetTouches[1],c=Math.atan2(d.clientY-c.clientY,d.clientX-c.clientX);goog.isDef(this.lastAngle_)&&(b=c-this.lastAngle_,this.rotationDelta_+=b,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0));this.lastAngle_=c;var a=a.map,c=a.getView(),d=goog.style.getClientPosition(a.getViewport()),e=ol.interaction.Touch.centroid(this.targetTouches);
|
|
e.x-=d.x;e.y-=d.y;d=a.getCoordinateFromPixel(e);this.rotating_&&c.rotate(a,c.getRotation()+b,d)};ol.interaction.TouchRotate.prototype.handleTouchEnd=function(a){return 2>this.targetTouches.length?(a.map.getView().setHint(ol.ViewHint.INTERACTING,-1),!1):!0};ol.interaction.TouchRotate.prototype.handleTouchStart=function(a){return 2<=this.targetTouches.length?(a=a.map.getView(),this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,a.setHint(ol.ViewHint.INTERACTING,1),!0):!1};ol.interaction.TouchZoom=function(){ol.interaction.Touch.call(this)};goog.inherits(ol.interaction.TouchZoom,ol.interaction.Touch);
|
|
ol.interaction.TouchZoom.prototype.handleTouchMove=function(a){goog.asserts.assert(2<=this.targetTouches.length);var b=1,c=this.targetTouches[0],d=this.targetTouches[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);goog.isDef(this.lastDistance_)&&(b=this.lastDistance_/e);this.lastDistance_=e;a=a.map;e=a.getView();c=goog.style.getClientPosition(a.getViewport());d=ol.interaction.Touch.centroid(this.targetTouches);d.x-=c.x;d.y-=c.y;c=a.getCoordinateFromPixel(d);e.zoom_(a,e.getResolution()*
|
|
b,c)};ol.interaction.TouchZoom.prototype.handleTouchEnd=function(a){if(2>this.targetTouches.length){var a=a.map,b=a.getView();b.zoomToResolution(a,b.getResolution());b.setHint(ol.ViewHint.INTERACTING,-1);return!1}return!0};ol.interaction.TouchZoom.prototype.handleTouchStart=function(a){return 2<=this.targetTouches.length?(a=a.map.getView(),this.lastDistance_=void 0,a.setHint(ol.ViewHint.INTERACTING,1),!0):!1};ol.math={};ol.math.cosh=function(a){return(Math.exp(a)+Math.exp(-a))/2};ol.math.coth=function(a){a=Math.exp(-2*a);return(1+a)/(1-a)};ol.math.csch=function(a){return 2/(Math.exp(a)-Math.exp(-a))};ol.math.sech=function(a){return 2/(Math.exp(a)+Math.exp(-a))};ol.math.sinh=function(a){return(Math.exp(a)-Math.exp(-a))/2};ol.math.tanh=function(a){a=Math.exp(-2*a);return(1-a)/(1+a)};ol.projection.EPSG3857=function(a){ol.Projection.call(this,a,ol.ProjectionUnits.METERS,ol.projection.EPSG3857.EXTENT)};goog.inherits(ol.projection.EPSG3857,ol.Projection);ol.projection.EPSG3857.RADIUS=6378137;ol.projection.EPSG3857.HALF_SIZE=Math.PI*ol.projection.EPSG3857.RADIUS;ol.projection.EPSG3857.EXTENT=new ol.Extent(-ol.projection.EPSG3857.HALF_SIZE,-ol.projection.EPSG3857.HALF_SIZE,ol.projection.EPSG3857.HALF_SIZE,ol.projection.EPSG3857.HALF_SIZE);
|
|
ol.projection.EPSG3857.CODES=["EPSG:3857","EPSG:102100","EPSG:102113","EPSG:900913"];ol.projection.EPSG3857.PROJECTIONS=goog.array.map(ol.projection.EPSG3857.CODES,function(a){return new ol.projection.EPSG3857(a)});
|
|
ol.projection.EPSG3857.fromEPSG4326=function(a,b,c){var d=a.length,c=1<c?c:2;goog.isDef(b)||(b=2<c?a.slice():Array(d));goog.asserts.assert(0===b.length%c);for(var e=0;e<d;e+=c)b[e]=ol.projection.EPSG3857.RADIUS*Math.PI*a[e]/180,b[e+1]=ol.projection.EPSG3857.RADIUS*Math.log(Math.tan(Math.PI*(a[e+1]+90)/360));return b};
|
|
ol.projection.EPSG3857.toEPSG4326=function(a,b,c){var d=a.length,c=1<c?c:2;goog.isDef(b)||(b=2<c?a.slice():Array(d));goog.asserts.assert(0===b.length%c);for(var e=0;e<d;e+=c)b[e]=180*a[e]/(ol.projection.EPSG3857.RADIUS*Math.PI),b[e+1]=360*Math.atan(Math.exp(a[e+1]/ol.projection.EPSG3857.RADIUS))/Math.PI-90;return b};ol.projection.EPSG3857.prototype.getPointResolution=function(a,b){return a/ol.math.cosh(b.y/ol.projection.EPSG3857.RADIUS)};ol.projection.EPSG4326=function(a,b){ol.Projection.call(this,a,ol.ProjectionUnits.DEGREES,ol.projection.EPSG4326.EXTENT,b)};goog.inherits(ol.projection.EPSG4326,ol.Projection);ol.projection.EPSG4326.EXTENT=new ol.Extent(-180,-90,180,90);ol.projection.EPSG4326.PROJECTIONS=[new ol.projection.EPSG4326("CRS:84"),new ol.projection.EPSG4326("EPSG:4326","neu"),new ol.projection.EPSG4326("urn:ogc:def:crs:EPSG:6.6:4326","neu"),new ol.projection.EPSG4326("urn:ogc:def:crs:OGC:1.3:CRS84")];
|
|
ol.projection.EPSG4326.prototype.getPointResolution=function(a){return a};ol.projection.addCommonProjections=function(){ol.projection.addEquivalentProjections(ol.projection.EPSG3857.PROJECTIONS);ol.projection.addEquivalentProjections(ol.projection.EPSG4326.PROJECTIONS);ol.projection.addEquivalentTransforms(ol.projection.EPSG4326.PROJECTIONS,ol.projection.EPSG3857.PROJECTIONS,ol.projection.EPSG3857.fromEPSG4326,ol.projection.EPSG3857.toEPSG4326)};ol.ImageState={IDLE:0,LOADING:1,LOADED:2,ERROR:3};ol.Image=function(a,b,c,d,e){this.attributions_=e;this.extent_=a;this.src_=c;this.resolution_=b;this.image_=new Image;goog.isNull(d)||(this.image_.crossOrigin=d);this.imageByContext_={};this.imageListenerKeys_=null;this.state=ol.ImageState.IDLE};goog.inherits(ol.Image,goog.events.EventTarget);ol.Image.prototype.dispatchChangeEvent=function(){this.dispatchEvent(goog.events.EventType.CHANGE)};ol.Image.prototype.getAttributions=function(){return this.attributions_};
|
|
ol.Image.prototype.getExtent=function(){return this.extent_};ol.Image.prototype.getImageElement=function(a){if(goog.isDef(a)){var b=goog.getUid(a);if(b in this.imageByContext_)return this.imageByContext_[b];a=goog.object.isEmpty(this.imageByContext_)?this.image_:this.image_.cloneNode(!1);return this.imageByContext_[b]=a}return this.image_};ol.Image.prototype.getResolution=function(){return this.resolution_};ol.Image.prototype.getState=function(){return this.state};
|
|
ol.Image.prototype.handleImageError_=function(){this.state=ol.ImageState.ERROR;this.unlistenImage_();this.dispatchChangeEvent()};ol.Image.prototype.handleImageLoad_=function(){this.state=ol.ImageState.LOADED;this.unlistenImage_();this.dispatchChangeEvent()};
|
|
ol.Image.prototype.load=function(){this.state==ol.ImageState.IDLE&&(this.state=ol.ImageState.LOADING,goog.asserts.assert(goog.isNull(this.imageListenerKeys_)),this.imageListenerKeys_=[goog.events.listenOnce(this.image_,goog.events.EventType.ERROR,this.handleImageError_,!1,this),goog.events.listenOnce(this.image_,goog.events.EventType.LOAD,this.handleImageLoad_,!1,this)],this.image_.src=this.src_)};
|
|
ol.Image.prototype.unlistenImage_=function(){goog.asserts.assert(!goog.isNull(this.imageListenerKeys_));goog.array.forEach(this.imageListenerKeys_,goog.events.unlistenByKey);this.imageListenerKeys_=null};ol.PixelBounds=function(a,b,c,d){ol.Rectangle.call(this,a,b,c,d)};goog.inherits(ol.PixelBounds,ol.Rectangle);ol.tilegrid={};ol.DEFAULT_TILE_SIZE=256;ol.DEFAULT_MAX_ZOOM=42;
|
|
ol.tilegrid.TileGrid=function(a){this.resolutions_=a.resolutions;goog.asserts.assert(goog.array.isSorted(this.resolutions_,function(a,c){return c-a},!0));this.numResolutions_=this.resolutions_.length;this.origin_=goog.isDef(a.origin)?a.origin:null;this.origins_=null;goog.isDef(a.origins)&&(this.origins_=a.origins,goog.asserts.assert(this.origins_.length==this.resolutions_.length));goog.asserts.assert(goog.isNull(this.origin_)&&!goog.isNull(this.origins_)||!goog.isNull(this.origin_)&&goog.isNull(this.origins_));
|
|
this.tileSizes_=null;goog.isDef(a.tileSizes)&&(this.tileSizes_=a.tileSizes,goog.asserts.assert(this.tileSizes_.length==this.resolutions_.length));this.tileSize_=goog.isDef(a.tileSize)?a.tileSize:goog.isNull(this.tileSizes_)?new ol.Size(ol.DEFAULT_TILE_SIZE,ol.DEFAULT_TILE_SIZE):null;goog.asserts.assert(goog.isNull(this.tileSize_)&&!goog.isNull(this.tileSizes_)||!goog.isNull(this.tileSize_)&&goog.isNull(this.tileSizes_))};
|
|
ol.tilegrid.TileGrid.prototype.forEachTileCoordParentTileRange=function(a,b,c){for(var d=this.getTileCoordExtent(a),a=a.z-1;0<=a&&!b.call(c,a,this.getTileRangeForExtentAndZ(d,a));)--a};ol.tilegrid.TileGrid.prototype.getOrigin=function(a){return goog.isNull(this.origin_)?(goog.asserts.assert(!goog.isNull(this.origins_)),goog.asserts.assert(0<=a&&a<this.origins_.length),this.origins_[a]):this.origin_};
|
|
ol.tilegrid.TileGrid.prototype.getPixelBoundsForTileCoordAndResolution=function(a,b){var c=b/this.getResolution(a.z),d=this.getTileSize(a.z),d=new ol.Size(d.width/c,d.height/c),e,f,c=Math.round(a.x*d.width);e=Math.round((a.x+1)*d.width);f=Math.round(a.y*d.height);d=Math.round((a.y+1)*d.height);return new ol.PixelBounds(c,f,e,d)};ol.tilegrid.TileGrid.prototype.getResolution=function(a){goog.asserts.assert(0<=a&&a<this.numResolutions_);return this.resolutions_[a]};
|
|
ol.tilegrid.TileGrid.prototype.getResolutions=function(){return this.resolutions_};ol.tilegrid.TileGrid.prototype.getTileRangeExtent=function(a,b){var c=this.getOrigin(a),d=this.getResolution(a),e=this.getTileSize(a);return new ol.Extent(c.x+b.minX*e.width*d,c.y+b.minY*e.height*d,c.x+(b.maxX+1)*e.width*d,c.y+(b.maxY+1)*e.height*d)};
|
|
ol.tilegrid.TileGrid.prototype.getTileRangeForExtentAndResolution=function(a,b){var c=this.getTileCoordForCoordAndResolution_(new ol.Coordinate(a.minX,a.minY),b),d=this.getTileCoordForCoordAndResolution_(new ol.Coordinate(a.maxX,a.maxY),b,!0);return new ol.TileRange(c.x,c.y,d.x,d.y)};ol.tilegrid.TileGrid.prototype.getTileRangeForExtentAndZ=function(a,b){var c=this.getResolution(b);return this.getTileRangeForExtentAndResolution(a,c)};
|
|
ol.tilegrid.TileGrid.prototype.getTileCoordCenter=function(a){var b=this.getOrigin(a.z),c=this.getResolution(a.z),d=this.getTileSize(a.z);return new ol.Coordinate(b.x+(a.x+0.5)*d.width*c,b.y+(a.y+0.5)*d.height*c)};ol.tilegrid.TileGrid.prototype.getTileCoordExtent=function(a){var b=this.getOrigin(a.z),c=this.getResolution(a.z),d=this.getTileSize(a.z),e=b.x+a.x*d.width*c,a=b.y+a.y*d.height*c;return new ol.Extent(e,a,e+d.width*c,a+d.height*c)};
|
|
ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndResolution=function(a,b){return this.getTileCoordForCoordAndResolution_(a,b)};ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndResolution_=function(a,b,c){var d=this.getZForResolution(b),e=b/this.getResolution(d),f=this.getOrigin(d),g=this.getTileSize(d),h=e*(a.x-f.x)/(b*g.width),a=e*(a.y-f.y)/(b*g.height);c?(h=Math.ceil(h)-1,a=Math.ceil(a)-1):(h=Math.floor(h),a=Math.floor(a));return new ol.TileCoord(d,h,a)};
|
|
ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndZ=function(a,b){var c=this.getResolution(b);return this.getTileCoordForCoordAndResolution_(a,c)};ol.tilegrid.TileGrid.prototype.getTileCoordResolution=function(a){goog.asserts.assert(0<=a.z&&a.z<this.numResolutions_);return this.resolutions_[a.z]};
|
|
ol.tilegrid.TileGrid.prototype.getTileSize=function(a){return goog.isNull(this.tileSize_)?(goog.asserts.assert(!goog.isNull(this.tileSizes_)),goog.asserts.assert(0<=a&&a<this.tileSizes_.length),this.tileSizes_[a]):this.tileSize_};ol.tilegrid.TileGrid.prototype.getZForResolution=function(a){return ol.array.linearFindNearest(this.resolutions_,a)};ol.tilegrid.getForProjection=function(a){var b=a.getDefaultTileGrid();goog.isNull(b)&&(b=ol.tilegrid.createForProjection(a),a.setDefaultTileGrid(b));return b};
|
|
ol.tilegrid.createForProjection=function(a,b,c){var a=a.getExtent(),d=Math.max(a.maxX-a.minX,a.maxY-a.minY),b=goog.isDef(b)?b:ol.DEFAULT_MAX_ZOOM,c=goog.isDef(c)?c:new ol.Size(ol.DEFAULT_TILE_SIZE,ol.DEFAULT_TILE_SIZE),b=Array(b+1);goog.asserts.assert(c.width==c.height);for(var d=d/c.width,e=0,f=b.length;e<f;++e)b[e]=d/Math.pow(2,e);return new ol.tilegrid.TileGrid({origin:a.getTopLeft(),resolutions:b,tileSize:c})};ol.source.TileSource=function(a){ol.source.Source.call(this,{attributions:a.attributions,extent:a.extent,projection:a.projection});this.opaque_=goog.isDef(a.opaque)?a.opaque:!1;this.tileGrid=goog.isDef(a.tileGrid)?a.tileGrid:null};goog.inherits(ol.source.TileSource,ol.source.Source);ol.source.TileSource.prototype.canExpireCache=goog.functions.FALSE;
|
|
ol.source.TileSource.prototype.findLoadedTiles=function(a,b,c,d){var e=!0,f,g,h,i;for(h=d.minX;h<=d.maxX;++h)for(i=d.minY;i<=d.maxY;++i)if(f=new ol.TileCoord(c,h,i),g=f.toString(),!a[c]||!a[c][g])f=b(f),goog.isNull(f)?e=!1:(a[c]||(a[c]={}),a[c][g]=f);return e};ol.source.TileSource.prototype.getOpaque=function(){return this.opaque_};ol.source.TileSource.prototype.getResolutions=function(){return this.tileGrid.getResolutions()};ol.source.TileSource.prototype.getTileGrid=function(){return this.tileGrid};
|
|
ol.source.TileSource.prototype.useLowResolutionTiles=function(a,b,c){for(var d,e,f;0<=a;--a){d=c.getTileRangeForExtentAndZ(b,a);for(e=d.minX;e<=d.maxX;++e)for(f=d.minY;f<=d.maxY;++f)this.useTile(a+"/"+e+"/"+f)}};ol.source.TileSource.prototype.useTile=goog.nullFunction;ol.renderer={};
|
|
ol.renderer.Layer=function(a,b){ol.Object.call(this);this.mapRenderer_=a;this.layer_=b;goog.events.listen(this.layer_,ol.Object.getChangedEventType(ol.layer.LayerProperty.BRIGHTNESS),this.handleLayerBrightnessChange,!1,this);goog.events.listen(this.layer_,ol.Object.getChangedEventType(ol.layer.LayerProperty.CONTRAST),this.handleLayerContrastChange,!1,this);goog.events.listen(this.layer_,ol.Object.getChangedEventType(ol.layer.LayerProperty.HUE),this.handleLayerHueChange,!1,this);goog.events.listen(this.layer_,goog.events.EventType.LOAD,
|
|
this.handleLayerLoad,!1,this);goog.events.listen(this.layer_,ol.Object.getChangedEventType(ol.layer.LayerProperty.OPACITY),this.handleLayerOpacityChange,!1,this);goog.events.listen(this.layer_,ol.Object.getChangedEventType(ol.layer.LayerProperty.SATURATION),this.handleLayerSaturationChange,!1,this);goog.events.listen(this.layer_,ol.Object.getChangedEventType(ol.layer.LayerProperty.VISIBLE),this.handleLayerVisibleChange,!1,this)};goog.inherits(ol.renderer.Layer,ol.Object);
|
|
ol.renderer.Layer.prototype.dispatchChangeEvent=function(){this.dispatchEvent(goog.events.EventType.CHANGE)};ol.renderer.Layer.prototype.getLayer=function(){return this.layer_};ol.renderer.Layer.prototype.getMap=function(){return this.mapRenderer_.getMap()};ol.renderer.Layer.prototype.getMapRenderer=function(){return this.mapRenderer_};ol.renderer.Layer.prototype.handleLayerBrightnessChange=goog.nullFunction;ol.renderer.Layer.prototype.handleLayerContrastChange=goog.nullFunction;
|
|
ol.renderer.Layer.prototype.handleLayerHueChange=goog.nullFunction;ol.renderer.Layer.prototype.handleImageChange=function(a){a.target.getState()===ol.ImageState.LOADED&&this.getMap().requestRenderFrame()};ol.renderer.Layer.prototype.handleLayerLoad=function(){this.dispatchChangeEvent()};ol.renderer.Layer.prototype.handleLayerOpacityChange=function(){this.dispatchChangeEvent()};ol.renderer.Layer.prototype.handleLayerSaturationChange=goog.nullFunction;
|
|
ol.renderer.Layer.prototype.handleLayerVisibleChange=function(){this.dispatchChangeEvent()};ol.renderer.Layer.prototype.handleTileChange=function(a){a.target.getState()===ol.TileState.LOADED&&this.getMap().requestRenderFrame()};ol.renderer.Layer.prototype.scheduleExpireCache=function(a,b){b.canExpireCache()&&a.postRenderFunctions.push(goog.partial(function(a,b,e){b=goog.getUid(a).toString();a.expireCache(e.usedTiles[b])},b))};
|
|
ol.renderer.Layer.prototype.updateAttributions=function(a,b){var c,d;for(c=0;c<b.length;++c)d=b[c],a[goog.getUid(d).toString()]=d};ol.renderer.Layer.prototype.updateUsedTiles=function(a,b,c,d){b=goog.getUid(b).toString();c=c.toString();b in a?c in a[b]?a[b][c].extend(d):a[b][c]=d:(a[b]={},a[b][c]=d)};ol.renderer.Layer.prototype.updateWantedTiles=function(a,b,c){b=goog.getUid(b).toString();c=c.toString();b in a||(a[b]={});a[b][c]=!0};
|
|
ol.renderer.Layer.prototype.createGetTileIfLoadedFunction=function(a,b,c,d){return function(e){e=b.getTile(e,c,d);return a(e)?e:null}};ol.renderer.Map=function(a,b){goog.Disposable.call(this);this.container_=a;this.map=b;this.layerRenderers={};this.mapLayersChangedListenerKey_=goog.events.listen(b,ol.Object.getChangedEventType(ol.MapProperty.LAYERS),this.handleLayersChanged,!1,this);this.layersListenerKeys_=null;this.layerRendererChangeListenKeys_={}};goog.inherits(ol.renderer.Map,goog.Disposable);ol.renderer.Map.prototype.addLayer=function(a){var b=this.createLayerRenderer(a);this.setLayerRenderer(a,b)};
|
|
ol.renderer.Map.prototype.calculateMatrices2D=function(a){var b=a.view2DState,c=a.coordinateToPixelMatrix;goog.vec.Mat4.makeIdentity(c);goog.vec.Mat4.translate(c,a.size.width/2,a.size.height/2,0);goog.vec.Mat4.scale(c,1/b.resolution,-1/b.resolution,1);goog.vec.Mat4.rotateZ(c,-b.rotation);goog.vec.Mat4.translate(c,-b.center.x,-b.center.y,0);a=goog.vec.Mat4.invert(c,a.pixelToCoordinateMatrix);goog.asserts.assert(a)};
|
|
ol.renderer.Map.prototype.createLayerRenderer=function(a){return new ol.renderer.Layer(this,a)};ol.renderer.Map.prototype.disposeInternal=function(){goog.object.forEach(this.layerRenderers,function(a){goog.dispose(a)});goog.events.unlistenByKey(this.mapLayersChangedListenerKey_);goog.isNull(this.layersListenerKeys_)||goog.array.forEach(this.layersListenerKeys_,goog.events.unlistenByKey);ol.renderer.Map.superClass_.disposeInternal.call(this)};ol.renderer.Map.prototype.getCanvas=goog.functions.NULL;
|
|
ol.renderer.Map.prototype.getLayerRenderer=function(a){a=goog.getUid(a);a=this.layerRenderers[a];goog.asserts.assert(goog.isDef(a));return a};ol.renderer.Map.prototype.getMap=function(){return this.map};ol.renderer.Map.prototype.handleLayerRendererChange=function(){this.getMap().render()};ol.renderer.Map.prototype.handleLayersAdd=function(a){this.addLayer(a.elem)};
|
|
ol.renderer.Map.prototype.handleLayersChanged=function(){goog.disposeAll(goog.object.getValues(this.layerRenderers));this.layerRenderers={};goog.isNull(this.layersListenerKeys_)||(goog.array.forEach(this.layersListenerKeys_,goog.events.unlistenByKey),this.layersListenerKeys_=null);var a=this.map.getLayers();goog.isDefAndNotNull(a)&&(a.forEach(this.addLayer,this),this.layersListenerKeys_=[goog.events.listen(a,ol.CollectionEventType.ADD,this.handleLayersAdd,!1,this),goog.events.listen(a,ol.CollectionEventType.REMOVE,
|
|
this.handleLayersRemove,!1,this)])};ol.renderer.Map.prototype.handleLayersRemove=function(a){this.removeLayer(a.elem)};ol.renderer.Map.prototype.removeLayer=function(a){goog.dispose(this.removeLayerRenderer(a))};ol.renderer.Map.prototype.removeLayerRenderer=function(a){a=goog.getUid(a);if(a in this.layerRenderers){var b=this.layerRenderers[a];delete this.layerRenderers[a];goog.events.unlistenByKey(this.layerRendererChangeListenKeys_[a]);delete this.layerRendererChangeListenKeys_[a];return b}return null};
|
|
ol.renderer.Map.prototype.renderFrame=goog.nullFunction;ol.renderer.Map.prototype.setLayerRenderer=function(a,b){var c=goog.getUid(a);goog.asserts.assert(!(c in this.layerRenderers));this.layerRenderers[c]=b;goog.asserts.assert(!(c in this.layerRendererChangeListenKeys_));this.layerRendererChangeListenKeys_[c]=goog.events.listen(b,goog.events.EventType.CHANGE,this.handleLayerRendererChange,!1,this)};ol.source.wms={};ol.source.wms.getUrl=function(a,b,c,d,e,f){var g=goog.isDef(f)?f:"1.3.0",f="1.3"<=g,h=e.getAxisOrientation(),c=f&&"ne"==h.substr(0,2)?[c.minY,c.minX,c.maxY,c.maxX]:[c.minX,c.minY,c.maxX,c.maxY],d={SERVICE:"WMS",VERSION:g,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0,WIDTH:d.width,HEIGHT:d.height,BBOX:c.join(",")};goog.object.extend(d,b);d[f?"CRS":"SRS"]=e.getCode();d.STYLES=b.STYLES||new String("");return goog.uri.utils.appendParamsFromMap(a,d)};ol.ImageUrlFunction={};ol.ImageUrlFunction.createWMSParams=function(a,b,c){return function(d,e,f){return ol.source.wms.getUrl(a,b,d,e,f,c)}};ol.ImageUrlFunction.nullImageUrlFunction=function(){};ol.source.ImageSource=function(a){ol.source.Source.call(this,{attributions:a.attributions,extent:a.extent,projection:a.projection});this.imageUrlFunction=goog.isDef(a.imageUrlFunction)?a.imageUrlFunction:ol.ImageUrlFunction.nullImageUrlFunction;this.crossOrigin_=goog.isDef(a.crossOrigin)?a.crossOrigin:"anonymous";this.resolutions_=goog.isDef(a.resolutions)?a.resolutions:null;goog.asserts.assert(goog.isNull(this.resolutions_)||goog.array.isSorted(this.resolutions_,function(a,c){return c-a},!0))};
|
|
goog.inherits(ol.source.ImageSource,ol.source.Source);ol.source.ImageSource.prototype.createImage=function(a,b,c,d){var e=null,c=this.imageUrlFunction(a,c,d);goog.isDef(c)&&(e=new ol.Image(a,b,c,this.crossOrigin_,this.getAttributions()));return e};ol.source.ImageSource.prototype.findNearestResolution=function(a){goog.isNull(this.resolutions_)||(a=ol.array.linearFindNearest(this.resolutions_,a),a=this.resolutions_[a]);return a};ol.layer.ImageLayer=function(a){ol.layer.Layer.call(this,a)};goog.inherits(ol.layer.ImageLayer,ol.layer.Layer);ol.layer.ImageLayer.prototype.getImageSource=function(){return this.getSource()};ol.layer.TileLayer=function(a){ol.layer.Layer.call(this,a)};goog.inherits(ol.layer.TileLayer,ol.layer.Layer);ol.layer.TileLayer.prototype.getTileSource=function(){return this.getSource()};ol.renderer.canvas={};ol.renderer.canvas.Layer=function(a,b){ol.renderer.Layer.call(this,a,b)};goog.inherits(ol.renderer.canvas.Layer,ol.renderer.Layer);ol.renderer.canvas.ImageLayer=function(a,b){ol.renderer.canvas.Layer.call(this,a,b);this.image_=null;this.transform_=goog.vec.Mat4.createNumber()};goog.inherits(ol.renderer.canvas.ImageLayer,ol.renderer.canvas.Layer);ol.renderer.canvas.ImageLayer.prototype.getImage=function(){return goog.isNull(this.image_)?null:this.image_.getImageElement(this)};ol.renderer.canvas.ImageLayer.prototype.getImageLayer=function(){return this.getLayer()};ol.renderer.canvas.ImageLayer.prototype.getTransform=function(){return this.transform_};
|
|
ol.renderer.canvas.ImageLayer.prototype.renderFrame=function(a){var b=a.view2DState,c=b.center,d=b.resolution,e=b.rotation,f=this.getImageLayer().getImageSource(),g=a.viewHints;!g[ol.ViewHint.ANIMATING]&&!g[ol.ViewHint.INTERACTING]&&(b=f.getImage(a.extent,d,b.projection),goog.isNull(b)||(f=b.getState(),f==ol.ImageState.IDLE?(goog.events.listenOnce(b,goog.events.EventType.CHANGE,this.handleImageChange,!1,this),b.load()):f==ol.ImageState.LOADED&&(this.image_=b)));if(!goog.isNull(this.image_)){var b=
|
|
this.image_,f=b.getExtent(),g=b.getResolution(),h=this.transform_;goog.vec.Mat4.makeIdentity(h);goog.vec.Mat4.translate(h,a.size.width/2,a.size.height/2,0);goog.vec.Mat4.rotateZ(h,e);goog.vec.Mat4.scale(h,g/d,g/d,1);goog.vec.Mat4.translate(h,(f.minX-c.x)/g,(c.y-f.maxY)/g,0);this.updateAttributions(a.attributions,b.getAttributions())}};ol.renderer.canvas.TileLayer=function(a,b){ol.renderer.canvas.Layer.call(this,a,b);this.context_=this.canvasSize_=this.canvas_=null;this.transform_=goog.vec.Mat4.createNumber();this.renderedTiles_=null};goog.inherits(ol.renderer.canvas.TileLayer,ol.renderer.canvas.Layer);ol.renderer.canvas.TileLayer.prototype.getImage=function(){return this.canvas_};ol.renderer.canvas.TileLayer.prototype.getTileLayer=function(){return this.getLayer()};ol.renderer.canvas.TileLayer.prototype.getTransform=function(){return this.transform_};
|
|
ol.renderer.canvas.TileLayer.prototype.renderFrame=function(a){var b=a.view2DState,c=b.projection,d=this.getTileLayer().getTileSource(),e=goog.getUid(d).toString(),f=d.getTileGrid();goog.isNull(f)&&(f=ol.tilegrid.getForProjection(c));var g=f.getZForResolution(b.resolution),h=f.getTileSize(g),i=f.getResolution(g),l=f.getTileRangeForExtentAndResolution(a.extent,i),j=l.getWidth(),k=l.getHeight(),h=new ol.Size(h.width*j,h.height*k),m,n;goog.isNull(this.canvas_)?(m=goog.dom.createElement(goog.dom.TagName.CANVAS),
|
|
m.width=h.width,m.height=h.height,n=m.getContext("2d"),this.canvas_=m,this.canvasSize_=h,this.context_=n,this.renderedTiles_=Array(j*k)):(m=this.canvas_,n=this.context_,this.canvasSize_.equals(h)||(m.width=h.width,m.height=h.height,this.canvasSize_=h,this.renderedTiles_=Array(j*k)));k={};k[g]={};var h=this.createGetTileIfLoadedFunction(function(a){return!goog.isNull(a)&&a.getState()==ol.TileState.LOADED},d,f,c),h=goog.bind(d.findLoadedTiles,d,k,h),p,q,r,s;for(r=l.minX;r<=l.maxX;++r)for(s=l.minY;s<=
|
|
l.maxY;++s)if(q=new ol.TileCoord(g,r,s),p=d.getTile(q,f,c),!goog.isNull(p)){m=p.getState();if(m==ol.TileState.IDLE)goog.events.listenOnce(p,goog.events.EventType.CHANGE,this.handleTileChange,!1,this),this.updateWantedTiles(a.wantedTiles,d,q),m=f.getTileCoordCenter(q),a.tileQueue.enqueue(p,e,m);else if(m==ol.TileState.LOADED){k[g][q.toString()]=p;continue}else if(m==ol.TileState.ERROR)continue;f.forEachTileCoordParentTileRange(q,h)}e=goog.array.map(goog.object.getKeys(k),Number);goog.array.sort(e);
|
|
m=d.getOpaque();var c=f.getTileCoordExtent(new ol.TileCoord(g,l.minX,l.maxY)).getTopLeft(),z,w,t,v,u,x;for(z=0;z<e.length;++z)if(p=e[z],h=f.getTileSize(p),v=k[p],p==g)for(w in v)p=v[w],q=p.tileCoord,q=(q.y-l.minY)*j+(q.x-l.minX),this.renderedTiles_[q]!=p&&(r=h.width*(p.tileCoord.x-l.minX),s=h.height*(l.maxY-p.tileCoord.y),m||n.clearRect(r,s,h.width,h.height),n.drawImage(p.getImage(),r,s),this.renderedTiles_[q]=p);else for(w in q=f.getResolution(p)/i,v){p=v[w];t=f.getTileCoordExtent(p.tileCoord);r=
|
|
(t.minX-c.x)/i;s=(c.y-t.maxY)/i;x=q*h.width;u=q*h.height;m||n.clearRect(r,s,x,u);n.drawImage(p.getImage(),r,s,x,u);s=f.getTileRangeForExtentAndZ(t,g);t=Math.max(s.minX,l.minX);p=Math.min(s.maxX,l.maxX);r=Math.max(s.minY,l.minY);for(s=Math.min(s.maxY,l.maxY);t<=p;++t)for(u=r;u<=s;++u)this.renderedTiles_[(u-l.minY)*j+(t-l.minX)]=void 0}this.updateUsedTiles(a.usedTiles,d,g,l);d.useLowResolutionTiles(g,a.extent,f);this.scheduleExpireCache(a,d);d=this.transform_;goog.vec.Mat4.makeIdentity(d);goog.vec.Mat4.translate(d,
|
|
a.size.width/2,a.size.height/2,0);goog.vec.Mat4.rotateZ(d,b.rotation);goog.vec.Mat4.scale(d,i/b.resolution,i/b.resolution,1);goog.vec.Mat4.translate(d,(c.x-b.center.x)/i,(b.center.y-c.y)/i,0)};ol.renderer.canvas.Map=function(a,b){ol.renderer.Map.call(this,a,b);this.canvasSize_=new ol.Size(a.clientHeight,a.clientWidth);this.canvas_=goog.dom.createElement(goog.dom.TagName.CANVAS);this.canvas_.height=this.canvasSize_.height;this.canvas_.width=this.canvasSize_.width;this.canvas_.className="ol-unselectable";goog.dom.insertChildAt(a,this.canvas_,0);this.renderedVisible_=!0;this.context_=this.canvas_.getContext("2d")};goog.inherits(ol.renderer.canvas.Map,ol.renderer.Map);
|
|
ol.renderer.canvas.Map.prototype.createLayerRenderer=function(a){if(a instanceof ol.layer.ImageLayer)return new ol.renderer.canvas.ImageLayer(this,a);if(a instanceof ol.layer.TileLayer)return new ol.renderer.canvas.TileLayer(this,a);goog.asserts.assert(!1);return null};ol.renderer.canvas.Map.prototype.getCanvas=function(){return this.canvas_};
|
|
ol.renderer.canvas.Map.prototype.renderFrame=function(a){if(goog.isNull(a))this.renderedVisible_&&(goog.style.showElement(this.canvas_,!1),this.renderedVisible_=!1);else{var b=a.size;this.canvasSize_.equals(b)||(this.canvas_.width=b.width,this.canvas_.height=b.height,this.canvasSize_=b);var c=this.context_;c.setTransform(1,0,0,1,0,0);var d=a.backgroundColor;c.fillStyle="rgb("+d.r.toFixed(0)+","+d.g.toFixed(0)+","+d.b.toFixed(0)+")";c.globalAlpha=1;c.fillRect(0,0,b.width,b.height);goog.array.forEach(a.layersArray,
|
|
function(b){var d=a.layerStates[goog.getUid(b)];if(d.visible)if(d.ready){var g=this.getLayerRenderer(b);g.renderFrame(a,d);b=g.getImage();goog.isNull(b)||(g=g.getTransform(),c.setTransform(goog.vec.Mat4.getElement(g,0,0),goog.vec.Mat4.getElement(g,1,0),goog.vec.Mat4.getElement(g,0,1),goog.vec.Mat4.getElement(g,1,1),goog.vec.Mat4.getElement(g,0,3),goog.vec.Mat4.getElement(g,1,3)),c.globalAlpha=d.opacity,c.drawImage(b,0,0))}else a.animate=!0},this);this.renderedVisible_||(goog.style.showElement(this.canvas_,
|
|
!0),this.renderedVisible_=!0);this.calculateMatrices2D(a)}};ol.canvas={};ol.canvas.SUPPORTED=function(){if(!("HTMLCanvasElement"in goog.global))return!1;try{var a=goog.dom.createElement(goog.dom.TagName.CANVAS);return!goog.isNull(a.getContext("2d"))}catch(b){return!1}}();ol.renderer.canvas.SUPPORTED=ol.canvas.SUPPORTED;ol.dom={};ol.dom.BrowserFeature={CAN_USE_CSS_TRANSFORM:!1,CAN_USE_CSS_TRANSFORM3D:!0,CAN_USE_MATRIX_FILTER:!1};ol.dom.setTransform=function(a,b){var c=a.style;c.WebkitTransform=b;c.MozTransform=b;c.OTransform=b;c.transform=b};
|
|
ol.dom.transformElement2D=function(a,b,c){var d;if(ol.dom.BrowserFeature.CAN_USE_CSS_TRANSFORM3D){if(goog.isDef(c)){var e=Array(16);for(d=0;16>d;++d)e[d]=b[d].toFixed(c);c=e.join(",")}else c=b.join(",");ol.dom.setTransform(a,"matrix3d("+c+")")}else if(ol.dom.BrowserFeature.CAN_USE_CSS_TRANSFORM){b=[goog.vec.Mat4.getElement(b,0,0),goog.vec.Mat4.getElement(b,1,0),goog.vec.Mat4.getElement(b,0,1),goog.vec.Mat4.getElement(b,1,1),goog.vec.Mat4.getElement(b,0,3),goog.vec.Mat4.getElement(b,1,3)];if(goog.isDef(c)){e=
|
|
Array(6);for(d=0;6>d;++d)e[d]=b[d].toFixed(c);c=e.join(",")}else c=b.join(",");ol.dom.setTransform(a,"matrix("+c+")")}else ol.dom.BrowserFeature.CAN_USE_MATRIX_FILTER?goog.asserts.assert(!1):(a=a.style,a.left=Math.round(goog.vec.Mat4.getElement(b,0,3))+"px",a.top=Math.round(goog.vec.Mat4.getElement(b,1,3))+"px")};ol.renderer.dom={};ol.renderer.dom.Layer=function(a,b,c){ol.renderer.Layer.call(this,a,b);this.target=c};goog.inherits(ol.renderer.dom.Layer,ol.renderer.Layer);ol.renderer.dom.Layer.prototype.disposeInternal=function(){goog.dom.removeNode(this.target);ol.renderer.dom.Layer.superClass_.disposeInternal.call(this)};ol.renderer.dom.Layer.prototype.getTarget=function(){return this.target};ol.renderer.dom.ImageLayer=function(a,b){var c=goog.dom.createElement(goog.dom.TagName.DIV);c.className="ol-layer-image";c.style.position="absolute";ol.renderer.dom.Layer.call(this,a,b,c);this.image_=null;this.transform_=goog.vec.Mat4.createNumberIdentity()};goog.inherits(ol.renderer.dom.ImageLayer,ol.renderer.dom.Layer);ol.renderer.dom.ImageLayer.prototype.getImageLayer=function(){return this.getLayer()};
|
|
ol.renderer.dom.ImageLayer.prototype.renderFrame=function(a){var b=a.view2DState,c=b.center,d=b.resolution,e=b.rotation,f=this.image_,g=this.getImageLayer().getImageSource(),h=a.viewHints;!h[ol.ViewHint.ANIMATING]&&!h[ol.ViewHint.INTERACTING]&&(b=g.getImage(a.extent,d,b.projection),goog.isNull(b)||(g=b.getState(),g==ol.ImageState.IDLE?(goog.events.listenOnce(b,goog.events.EventType.CHANGE,this.handleImageChange,!1,this),b.load()):g==ol.ImageState.LOADED&&(f=b)));goog.isNull(f)||(g=f.getExtent(),h=
|
|
f.getResolution(),b=goog.vec.Mat4.createNumber(),goog.vec.Mat4.makeIdentity(b),goog.vec.Mat4.translate(b,a.size.width/2,a.size.height/2,0),goog.vec.Mat4.rotateZ(b,e),goog.vec.Mat4.scale(b,h/d,h/d,1),goog.vec.Mat4.translate(b,(g.minX-c.x)/h,(c.y-g.maxY)/h,0),f!=this.image_&&(c=f.getImageElement(this),c.style.position="absolute",goog.dom.removeChildren(this.target),goog.dom.appendChild(this.target,c),this.image_=f),this.setTransform(b),this.updateAttributions(a.attributions,f.getAttributions()))};
|
|
ol.renderer.dom.ImageLayer.prototype.setTransform=function(a){goog.vec.Mat4.equals(a,this.transform_)||(ol.dom.transformElement2D(this.target,a,6),goog.vec.Mat4.setFromArray(this.transform_,a))};ol.renderer.dom.TileLayer=function(a,b){var c=goog.dom.createElement(goog.dom.TagName.DIV);c.className="ol-layer-tile";c.style.position="absolute";ol.renderer.dom.Layer.call(this,a,b,c);this.renderedVisible_=!0;this.renderedOpacity_=1;this.tileLayerZs_={}};goog.inherits(ol.renderer.dom.TileLayer,ol.renderer.dom.Layer);ol.renderer.dom.TileLayer.prototype.getTileLayer=function(){return this.getLayer()};
|
|
ol.renderer.dom.TileLayer.prototype.renderFrame=function(a,b){if(b.visible){var c=a.view2DState,d=c.projection,e=this.getTileLayer().getTileSource(),f=goog.getUid(e).toString(),g=e.getTileGrid();goog.isNull(g)&&(g=ol.tilegrid.getForProjection(d));var h=g.getZForResolution(c.resolution),i=g.getResolution(h),i=g.getTileRangeForExtentAndResolution(a.extent,i),l={};l[h]={};var j=this.createGetTileIfLoadedFunction(function(a){return!goog.isNull(a)&&a.getState()==ol.TileState.LOADED},e,g,d),j=goog.bind(e.findLoadedTiles,
|
|
e,l,j),k,m,n,p,q;for(p=i.minX;p<=i.maxX;++p)for(q=i.minY;q<=i.maxY;++q)if(n=new ol.TileCoord(h,p,q),k=e.getTile(n,g,d),!goog.isNull(k)){m=k.getState();if(m==ol.TileState.IDLE)goog.events.listenOnce(k,goog.events.EventType.CHANGE,this.handleTileChange,!1,this),this.updateWantedTiles(a.wantedTiles,e,n),m=g.getTileCoordCenter(n),a.tileQueue.enqueue(k,f,m);else if(m==ol.TileState.LOADED){l[h][n.toString()]=k;continue}else if(m==ol.TileState.ERROR)continue;g.forEachTileCoordParentTileRange(n,j)}k=goog.array.map(goog.object.getKeys(l),
|
|
Number);goog.array.sort(k);var d={},r;for(n=0;n<k.length;++n){j=k[n];j in this.tileLayerZs_?f=this.tileLayerZs_[j]:(f=g.getTileCoordForCoordAndZ(c.center,j),f=new ol.renderer.dom.TileLayerZ_(g,f),d[j]=!0,this.tileLayerZs_[j]=f);j=l[j];for(r in j)f.addTile(j[r]);f.finalizeAddTiles()}r=goog.array.map(goog.object.getKeys(this.tileLayerZs_),Number);goog.array.sort(r);n=goog.vec.Mat4.createNumber();for(k=0;k<r.length;++k)if(j=r[k],f=this.tileLayerZs_[j],j in l)if(q=f.getResolution(),p=f.getOrigin(),goog.vec.Mat4.makeIdentity(n),
|
|
goog.vec.Mat4.translate(n,a.size.width/2,a.size.height/2,0),goog.vec.Mat4.rotateZ(n,c.rotation),goog.vec.Mat4.scale(n,q/c.resolution,q/c.resolution,1),goog.vec.Mat4.translate(n,(p.x-c.center.x)/q,(c.center.y-p.y)/q,0),f.setTransform(n),j in d){for(j-=1;0<=j;--j)if(j in this.tileLayerZs_){goog.dom.insertSiblingAfter(f.target,this.tileLayerZs_[j].target);break}0>j&&goog.dom.insertChildAt(this.target,f.target,0)}else!a.viewHints[ol.ViewHint.ANIMATING]&&!a.viewHints[ol.ViewHint.INTERACTING]&&f.removeTilesOutsideExtent(a.extent);
|
|
else goog.dom.removeNode(f.target),delete this.tileLayerZs_[j];b.opacity!=this.renderedOpacity_&&(goog.style.setOpacity(this.target,b.opacity),this.renderedOpacity_=b.opacity);b.visible&&!this.renderedVisible_&&(goog.style.showElement(this.target,!0),this.renderedVisible_=!0);this.updateUsedTiles(a.usedTiles,e,h,i);e.useLowResolutionTiles(h,a.extent,g);this.scheduleExpireCache(a,e)}else this.renderedVisible_&&(goog.style.showElement(this.target,!1),this.renderedVisible_=!1)};
|
|
ol.renderer.dom.TileLayerZ_=function(a,b){this.target=goog.dom.createElement(goog.dom.TagName.DIV);this.target.style.position="absolute";this.tileGrid_=a;this.tileCoordOrigin_=b;this.origin_=a.getTileCoordExtent(b).getTopLeft();this.resolution_=a.getResolution(b.z);this.tiles_={};this.documentFragment_=null;this.transform_=goog.vec.Mat4.createNumberIdentity()};
|
|
ol.renderer.dom.TileLayerZ_.prototype.addTile=function(a){var b=a.tileCoord;goog.asserts.assert(b.z==this.tileCoordOrigin_.z);var c=b.toString();if(!(c in this.tiles_)){var d=this.tileGrid_.getTileSize(b.z),e=a.getImage(this),f=e.style;f.position="absolute";f.left=(b.x-this.tileCoordOrigin_.x)*d.width+"px";f.top=(this.tileCoordOrigin_.y-b.y)*d.height+"px";goog.isNull(this.documentFragment_)&&(this.documentFragment_=document.createDocumentFragment());goog.dom.appendChild(this.documentFragment_,e);
|
|
this.tiles_[c]=a}};ol.renderer.dom.TileLayerZ_.prototype.finalizeAddTiles=function(){goog.isNull(this.documentFragment_)||(goog.dom.appendChild(this.target,this.documentFragment_),this.documentFragment_=null)};ol.renderer.dom.TileLayerZ_.prototype.getOrigin=function(){return this.origin_};ol.renderer.dom.TileLayerZ_.prototype.getResolution=function(){return this.resolution_};
|
|
ol.renderer.dom.TileLayerZ_.prototype.removeTilesOutsideExtent=function(a){var b=this.tileGrid_.getTileRangeForExtentAndZ(a,this.tileCoordOrigin_.z),a=[],c,d;for(d in this.tiles_)c=this.tiles_[d],b.contains(c.tileCoord)||a.push(c);for(b=0;b<a.length;++b)c=a[b],d=c.tileCoord.toString(),goog.dom.removeNode(c.getImage(this)),delete this.tiles_[d]};
|
|
ol.renderer.dom.TileLayerZ_.prototype.setTransform=function(a){goog.vec.Mat4.equals(a,this.transform_)||(ol.dom.transformElement2D(this.target,a,6),goog.vec.Mat4.setFromArray(this.transform_,a))};ol.renderer.dom.Map=function(a,b){ol.renderer.Map.call(this,a,b);this.layersPane_=goog.dom.createElement(goog.dom.TagName.DIV);this.layersPane_.className="ol-layers ol-unselectable";var c=this.layersPane_.style;c.position="absolute";c.width="100%";c.height="100%";goog.dom.insertChildAt(a,this.layersPane_,0);this.renderedVisible_=!0};goog.inherits(ol.renderer.dom.Map,ol.renderer.Map);ol.renderer.dom.Map.prototype.addLayer=function(a){ol.renderer.dom.Map.superClass_.addLayer.call(this,a);this.getMap().render()};
|
|
ol.renderer.dom.Map.prototype.createLayerRenderer=function(a){var b;a instanceof ol.layer.TileLayer?b=new ol.renderer.dom.TileLayer(this,a):a instanceof ol.layer.ImageLayer&&(b=new ol.renderer.dom.ImageLayer(this,a));goog.asserts.assert(goog.isDef(b));goog.dom.appendChild(this.layersPane_,b.getTarget());return b};
|
|
ol.renderer.dom.Map.prototype.renderFrame=function(a){goog.isNull(a)?this.renderedVisible_&&(goog.style.showElement(this.layersPane_,!1),this.renderedVisible_=!1):(goog.array.forEach(a.layersArray,function(b){var c=a.layerStates[goog.getUid(b)];c.ready&&this.getLayerRenderer(b).renderFrame(a,c)},this),this.renderedVisible_||(goog.style.showElement(this.layersPane_,!0),this.renderedVisible_=!0),this.calculateMatrices2D(a))};ol.renderer.dom.SUPPORTED=!0;goog.webgl={};goog.webgl.DEPTH_BUFFER_BIT=256;goog.webgl.STENCIL_BUFFER_BIT=1024;goog.webgl.COLOR_BUFFER_BIT=16384;goog.webgl.POINTS=0;goog.webgl.LINES=1;goog.webgl.LINE_LOOP=2;goog.webgl.LINE_STRIP=3;goog.webgl.TRIANGLES=4;goog.webgl.TRIANGLE_STRIP=5;goog.webgl.TRIANGLE_FAN=6;goog.webgl.ZERO=0;goog.webgl.ONE=1;goog.webgl.SRC_COLOR=768;goog.webgl.ONE_MINUS_SRC_COLOR=769;goog.webgl.SRC_ALPHA=770;goog.webgl.ONE_MINUS_SRC_ALPHA=771;goog.webgl.DST_ALPHA=772;goog.webgl.ONE_MINUS_DST_ALPHA=773;
|
|
goog.webgl.DST_COLOR=774;goog.webgl.ONE_MINUS_DST_COLOR=775;goog.webgl.SRC_ALPHA_SATURATE=776;goog.webgl.FUNC_ADD=32774;goog.webgl.BLEND_EQUATION=32777;goog.webgl.BLEND_EQUATION_RGB=32777;goog.webgl.BLEND_EQUATION_ALPHA=34877;goog.webgl.FUNC_SUBTRACT=32778;goog.webgl.FUNC_REVERSE_SUBTRACT=32779;goog.webgl.BLEND_DST_RGB=32968;goog.webgl.BLEND_SRC_RGB=32969;goog.webgl.BLEND_DST_ALPHA=32970;goog.webgl.BLEND_SRC_ALPHA=32971;goog.webgl.CONSTANT_COLOR=32769;goog.webgl.ONE_MINUS_CONSTANT_COLOR=32770;
|
|
goog.webgl.CONSTANT_ALPHA=32771;goog.webgl.ONE_MINUS_CONSTANT_ALPHA=32772;goog.webgl.BLEND_COLOR=32773;goog.webgl.ARRAY_BUFFER=34962;goog.webgl.ELEMENT_ARRAY_BUFFER=34963;goog.webgl.ARRAY_BUFFER_BINDING=34964;goog.webgl.ELEMENT_ARRAY_BUFFER_BINDING=34965;goog.webgl.STREAM_DRAW=35040;goog.webgl.STATIC_DRAW=35044;goog.webgl.DYNAMIC_DRAW=35048;goog.webgl.BUFFER_SIZE=34660;goog.webgl.BUFFER_USAGE=34661;goog.webgl.CURRENT_VERTEX_ATTRIB=34342;goog.webgl.FRONT=1028;goog.webgl.BACK=1029;
|
|
goog.webgl.FRONT_AND_BACK=1032;goog.webgl.CULL_FACE=2884;goog.webgl.BLEND=3042;goog.webgl.DITHER=3024;goog.webgl.STENCIL_TEST=2960;goog.webgl.DEPTH_TEST=2929;goog.webgl.SCISSOR_TEST=3089;goog.webgl.POLYGON_OFFSET_FILL=32823;goog.webgl.SAMPLE_ALPHA_TO_COVERAGE=32926;goog.webgl.SAMPLE_COVERAGE=32928;goog.webgl.NO_ERROR=0;goog.webgl.INVALID_ENUM=1280;goog.webgl.INVALID_VALUE=1281;goog.webgl.INVALID_OPERATION=1282;goog.webgl.OUT_OF_MEMORY=1285;goog.webgl.CW=2304;goog.webgl.CCW=2305;
|
|
goog.webgl.LINE_WIDTH=2849;goog.webgl.ALIASED_POINT_SIZE_RANGE=33901;goog.webgl.ALIASED_LINE_WIDTH_RANGE=33902;goog.webgl.CULL_FACE_MODE=2885;goog.webgl.FRONT_FACE=2886;goog.webgl.DEPTH_RANGE=2928;goog.webgl.DEPTH_WRITEMASK=2930;goog.webgl.DEPTH_CLEAR_VALUE=2931;goog.webgl.DEPTH_FUNC=2932;goog.webgl.STENCIL_CLEAR_VALUE=2961;goog.webgl.STENCIL_FUNC=2962;goog.webgl.STENCIL_FAIL=2964;goog.webgl.STENCIL_PASS_DEPTH_FAIL=2965;goog.webgl.STENCIL_PASS_DEPTH_PASS=2966;goog.webgl.STENCIL_REF=2967;
|
|
goog.webgl.STENCIL_VALUE_MASK=2963;goog.webgl.STENCIL_WRITEMASK=2968;goog.webgl.STENCIL_BACK_FUNC=34816;goog.webgl.STENCIL_BACK_FAIL=34817;goog.webgl.STENCIL_BACK_PASS_DEPTH_FAIL=34818;goog.webgl.STENCIL_BACK_PASS_DEPTH_PASS=34819;goog.webgl.STENCIL_BACK_REF=36003;goog.webgl.STENCIL_BACK_VALUE_MASK=36004;goog.webgl.STENCIL_BACK_WRITEMASK=36005;goog.webgl.VIEWPORT=2978;goog.webgl.SCISSOR_BOX=3088;goog.webgl.COLOR_CLEAR_VALUE=3106;goog.webgl.COLOR_WRITEMASK=3107;goog.webgl.UNPACK_ALIGNMENT=3317;
|
|
goog.webgl.PACK_ALIGNMENT=3333;goog.webgl.MAX_TEXTURE_SIZE=3379;goog.webgl.MAX_VIEWPORT_DIMS=3386;goog.webgl.SUBPIXEL_BITS=3408;goog.webgl.RED_BITS=3410;goog.webgl.GREEN_BITS=3411;goog.webgl.BLUE_BITS=3412;goog.webgl.ALPHA_BITS=3413;goog.webgl.DEPTH_BITS=3414;goog.webgl.STENCIL_BITS=3415;goog.webgl.POLYGON_OFFSET_UNITS=10752;goog.webgl.POLYGON_OFFSET_FACTOR=32824;goog.webgl.TEXTURE_BINDING_2D=32873;goog.webgl.SAMPLE_BUFFERS=32936;goog.webgl.SAMPLES=32937;goog.webgl.SAMPLE_COVERAGE_VALUE=32938;
|
|
goog.webgl.SAMPLE_COVERAGE_INVERT=32939;goog.webgl.COMPRESSED_TEXTURE_FORMATS=34467;goog.webgl.DONT_CARE=4352;goog.webgl.FASTEST=4353;goog.webgl.NICEST=4354;goog.webgl.GENERATE_MIPMAP_HINT=33170;goog.webgl.BYTE=5120;goog.webgl.UNSIGNED_BYTE=5121;goog.webgl.SHORT=5122;goog.webgl.UNSIGNED_SHORT=5123;goog.webgl.INT=5124;goog.webgl.UNSIGNED_INT=5125;goog.webgl.FLOAT=5126;goog.webgl.DEPTH_COMPONENT=6402;goog.webgl.ALPHA=6406;goog.webgl.RGB=6407;goog.webgl.RGBA=6408;goog.webgl.LUMINANCE=6409;
|
|
goog.webgl.LUMINANCE_ALPHA=6410;goog.webgl.UNSIGNED_SHORT_4_4_4_4=32819;goog.webgl.UNSIGNED_SHORT_5_5_5_1=32820;goog.webgl.UNSIGNED_SHORT_5_6_5=33635;goog.webgl.FRAGMENT_SHADER=35632;goog.webgl.VERTEX_SHADER=35633;goog.webgl.MAX_VERTEX_ATTRIBS=34921;goog.webgl.MAX_VERTEX_UNIFORM_VECTORS=36347;goog.webgl.MAX_VARYING_VECTORS=36348;goog.webgl.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661;goog.webgl.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660;goog.webgl.MAX_TEXTURE_IMAGE_UNITS=34930;
|
|
goog.webgl.MAX_FRAGMENT_UNIFORM_VECTORS=36349;goog.webgl.SHADER_TYPE=35663;goog.webgl.DELETE_STATUS=35712;goog.webgl.LINK_STATUS=35714;goog.webgl.VALIDATE_STATUS=35715;goog.webgl.ATTACHED_SHADERS=35717;goog.webgl.ACTIVE_UNIFORMS=35718;goog.webgl.ACTIVE_ATTRIBUTES=35721;goog.webgl.SHADING_LANGUAGE_VERSION=35724;goog.webgl.CURRENT_PROGRAM=35725;goog.webgl.NEVER=512;goog.webgl.LESS=513;goog.webgl.EQUAL=514;goog.webgl.LEQUAL=515;goog.webgl.GREATER=516;goog.webgl.NOTEQUAL=517;goog.webgl.GEQUAL=518;
|
|
goog.webgl.ALWAYS=519;goog.webgl.KEEP=7680;goog.webgl.REPLACE=7681;goog.webgl.INCR=7682;goog.webgl.DECR=7683;goog.webgl.INVERT=5386;goog.webgl.INCR_WRAP=34055;goog.webgl.DECR_WRAP=34056;goog.webgl.VENDOR=7936;goog.webgl.RENDERER=7937;goog.webgl.VERSION=7938;goog.webgl.NEAREST=9728;goog.webgl.LINEAR=9729;goog.webgl.NEAREST_MIPMAP_NEAREST=9984;goog.webgl.LINEAR_MIPMAP_NEAREST=9985;goog.webgl.NEAREST_MIPMAP_LINEAR=9986;goog.webgl.LINEAR_MIPMAP_LINEAR=9987;goog.webgl.TEXTURE_MAG_FILTER=10240;
|
|
goog.webgl.TEXTURE_MIN_FILTER=10241;goog.webgl.TEXTURE_WRAP_S=10242;goog.webgl.TEXTURE_WRAP_T=10243;goog.webgl.TEXTURE_2D=3553;goog.webgl.TEXTURE=5890;goog.webgl.TEXTURE_CUBE_MAP=34067;goog.webgl.TEXTURE_BINDING_CUBE_MAP=34068;goog.webgl.TEXTURE_CUBE_MAP_POSITIVE_X=34069;goog.webgl.TEXTURE_CUBE_MAP_NEGATIVE_X=34070;goog.webgl.TEXTURE_CUBE_MAP_POSITIVE_Y=34071;goog.webgl.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072;goog.webgl.TEXTURE_CUBE_MAP_POSITIVE_Z=34073;goog.webgl.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074;
|
|
goog.webgl.MAX_CUBE_MAP_TEXTURE_SIZE=34076;goog.webgl.TEXTURE0=33984;goog.webgl.TEXTURE1=33985;goog.webgl.TEXTURE2=33986;goog.webgl.TEXTURE3=33987;goog.webgl.TEXTURE4=33988;goog.webgl.TEXTURE5=33989;goog.webgl.TEXTURE6=33990;goog.webgl.TEXTURE7=33991;goog.webgl.TEXTURE8=33992;goog.webgl.TEXTURE9=33993;goog.webgl.TEXTURE10=33994;goog.webgl.TEXTURE11=33995;goog.webgl.TEXTURE12=33996;goog.webgl.TEXTURE13=33997;goog.webgl.TEXTURE14=33998;goog.webgl.TEXTURE15=33999;goog.webgl.TEXTURE16=34E3;
|
|
goog.webgl.TEXTURE17=34001;goog.webgl.TEXTURE18=34002;goog.webgl.TEXTURE19=34003;goog.webgl.TEXTURE20=34004;goog.webgl.TEXTURE21=34005;goog.webgl.TEXTURE22=34006;goog.webgl.TEXTURE23=34007;goog.webgl.TEXTURE24=34008;goog.webgl.TEXTURE25=34009;goog.webgl.TEXTURE26=34010;goog.webgl.TEXTURE27=34011;goog.webgl.TEXTURE28=34012;goog.webgl.TEXTURE29=34013;goog.webgl.TEXTURE30=34014;goog.webgl.TEXTURE31=34015;goog.webgl.ACTIVE_TEXTURE=34016;goog.webgl.REPEAT=10497;goog.webgl.CLAMP_TO_EDGE=33071;
|
|
goog.webgl.MIRRORED_REPEAT=33648;goog.webgl.FLOAT_VEC2=35664;goog.webgl.FLOAT_VEC3=35665;goog.webgl.FLOAT_VEC4=35666;goog.webgl.INT_VEC2=35667;goog.webgl.INT_VEC3=35668;goog.webgl.INT_VEC4=35669;goog.webgl.BOOL=35670;goog.webgl.BOOL_VEC2=35671;goog.webgl.BOOL_VEC3=35672;goog.webgl.BOOL_VEC4=35673;goog.webgl.FLOAT_MAT2=35674;goog.webgl.FLOAT_MAT3=35675;goog.webgl.FLOAT_MAT4=35676;goog.webgl.SAMPLER_2D=35678;goog.webgl.SAMPLER_CUBE=35680;goog.webgl.VERTEX_ATTRIB_ARRAY_ENABLED=34338;
|
|
goog.webgl.VERTEX_ATTRIB_ARRAY_SIZE=34339;goog.webgl.VERTEX_ATTRIB_ARRAY_STRIDE=34340;goog.webgl.VERTEX_ATTRIB_ARRAY_TYPE=34341;goog.webgl.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922;goog.webgl.VERTEX_ATTRIB_ARRAY_POINTER=34373;goog.webgl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975;goog.webgl.COMPILE_STATUS=35713;goog.webgl.LOW_FLOAT=36336;goog.webgl.MEDIUM_FLOAT=36337;goog.webgl.HIGH_FLOAT=36338;goog.webgl.LOW_INT=36339;goog.webgl.MEDIUM_INT=36340;goog.webgl.HIGH_INT=36341;goog.webgl.FRAMEBUFFER=36160;
|
|
goog.webgl.RENDERBUFFER=36161;goog.webgl.RGBA4=32854;goog.webgl.RGB5_A1=32855;goog.webgl.RGB565=36194;goog.webgl.DEPTH_COMPONENT16=33189;goog.webgl.STENCIL_INDEX=6401;goog.webgl.STENCIL_INDEX8=36168;goog.webgl.DEPTH_STENCIL=34041;goog.webgl.RENDERBUFFER_WIDTH=36162;goog.webgl.RENDERBUFFER_HEIGHT=36163;goog.webgl.RENDERBUFFER_INTERNAL_FORMAT=36164;goog.webgl.RENDERBUFFER_RED_SIZE=36176;goog.webgl.RENDERBUFFER_GREEN_SIZE=36177;goog.webgl.RENDERBUFFER_BLUE_SIZE=36178;
|
|
goog.webgl.RENDERBUFFER_ALPHA_SIZE=36179;goog.webgl.RENDERBUFFER_DEPTH_SIZE=36180;goog.webgl.RENDERBUFFER_STENCIL_SIZE=36181;goog.webgl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048;goog.webgl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049;goog.webgl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050;goog.webgl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051;goog.webgl.COLOR_ATTACHMENT0=36064;goog.webgl.DEPTH_ATTACHMENT=36096;goog.webgl.STENCIL_ATTACHMENT=36128;goog.webgl.DEPTH_STENCIL_ATTACHMENT=33306;
|
|
goog.webgl.NONE=0;goog.webgl.FRAMEBUFFER_COMPLETE=36053;goog.webgl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054;goog.webgl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055;goog.webgl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057;goog.webgl.FRAMEBUFFER_UNSUPPORTED=36061;goog.webgl.FRAMEBUFFER_BINDING=36006;goog.webgl.RENDERBUFFER_BINDING=36007;goog.webgl.MAX_RENDERBUFFER_SIZE=34024;goog.webgl.INVALID_FRAMEBUFFER_OPERATION=1286;goog.webgl.UNPACK_FLIP_Y_WEBGL=37440;goog.webgl.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441;
|
|
goog.webgl.CONTEXT_LOST_WEBGL=37442;goog.webgl.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443;goog.webgl.BROWSER_DEFAULT_WEBGL=37444;goog.webgl.HALF_FLOAT_OES=36193;goog.webgl.FRAGMENT_SHADER_DERIVATIVE_HINT_OES=35723;goog.webgl.VERTEX_ARRAY_BINDING_OES=34229;goog.webgl.UNMASKED_VENDOR_WEBGL=37445;goog.webgl.UNMASKED_RENDERER_WEBGL=37446;goog.webgl.COMPRESSED_RGB_S3TC_DXT1_EXT=33776;goog.webgl.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777;goog.webgl.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778;
|
|
goog.webgl.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779;goog.webgl.TEXTURE_MAX_ANISOTROPY_EXT=34046;goog.webgl.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047;ol.renderer.webgl={};ol.renderer.webgl.Shader=function(a){this.source_=a};ol.renderer.webgl.Shader.prototype.getSource=function(){return this.source_};ol.renderer.webgl.Shader.prototype.isAnimated=goog.functions.FALSE;ol.renderer.webgl.FragmentShader=function(a){ol.renderer.webgl.Shader.call(this,a)};goog.inherits(ol.renderer.webgl.FragmentShader,ol.renderer.webgl.Shader);ol.renderer.webgl.FragmentShader.prototype.getType=function(){return goog.webgl.FRAGMENT_SHADER};
|
|
ol.renderer.webgl.VertexShader=function(a){ol.renderer.webgl.Shader.call(this,a)};goog.inherits(ol.renderer.webgl.VertexShader,ol.renderer.webgl.Shader);ol.renderer.webgl.VertexShader.prototype.getType=function(){return goog.webgl.VERTEX_SHADER};ol.vec={};ol.vec.Mat4={};ol.vec.Mat4.makeBrightness=function(a,b){goog.vec.Mat4.makeTranslate(a,b,b,b);return a};ol.vec.Mat4.makeContrast=function(a,b){goog.vec.Mat4.makeScale(a,b,b,b);var c=-0.5*b+0.5;goog.vec.Mat4.setColumnValues(a,3,c,c,c,1);return a};
|
|
ol.vec.Mat4.makeHue=function(a,b){var c=Math.cos(b),d=Math.sin(b);goog.vec.Mat4.setFromValues(a,0.213+0.787*c-0.213*d,0.213-0.213*c+0.143*d,0.213-0.213*c-0.787*d,0,0.715-0.715*c-0.715*d,0.715+0.285*c+0.14*d,0.715-0.715*c+0.715*d,0,0.072-0.072*c+0.928*d,0.072-0.072*c-0.283*d,0.072+0.928*c+0.072*d,0,0,0,0,1);return a};
|
|
ol.vec.Mat4.makeSaturation=function(a,b){goog.vec.Mat4.setFromValues(a,0.213+0.787*b,0.213-0.213*b,0.213-0.213*b,0,0.715-0.715*b,0.715+0.285*b,0.715-0.715*b,0,0.072-0.072*b,0.072-0.072*b,0.072+0.928*b,0,0,0,0,1);return a};ol.renderer.webgl.Layer=function(a,b){ol.renderer.Layer.call(this,a,b);this.brightnessMatrix_=goog.vec.Mat4.createFloat32();this.contrastMatrix_=goog.vec.Mat4.createFloat32();this.hueMatrix_=goog.vec.Mat4.createFloat32();this.saturationMatrix_=goog.vec.Mat4.createFloat32();this.colorMatrix_=goog.vec.Mat4.createFloat32();this.colorMatrixDirty_=!0;this.handleLayerBrightnessChange();this.handleLayerContrastChange();this.handleLayerHueChange();this.handleLayerSaturationChange()};
|
|
goog.inherits(ol.renderer.webgl.Layer,ol.renderer.Layer);ol.renderer.webgl.Layer.prototype.getColorMatrix=function(){this.colorMatrixDirty_&&this.updateColorMatrix_();return this.colorMatrix_};ol.renderer.webgl.Layer.prototype.getMapRenderer=function(){return ol.renderer.webgl.Layer.superClass_.getMapRenderer.call(this)};
|
|
ol.renderer.webgl.Layer.prototype.handleLayerBrightnessChange=function(){var a=this.getLayer().getBrightness();ol.vec.Mat4.makeBrightness(this.brightnessMatrix_,a);this.colorMatrixDirty_=!0;this.dispatchChangeEvent()};ol.renderer.webgl.Layer.prototype.handleLayerContrastChange=function(){var a=this.getLayer().getContrast();ol.vec.Mat4.makeContrast(this.contrastMatrix_,a);this.colorMatrixDirty_=!0;this.dispatchChangeEvent()};
|
|
ol.renderer.webgl.Layer.prototype.handleLayerHueChange=function(){var a=this.getLayer().getHue();ol.vec.Mat4.makeHue(this.hueMatrix_,a);this.colorMatrixDirty_=!0;this.dispatchChangeEvent()};ol.renderer.webgl.Layer.prototype.handleLayerSaturationChange=function(){var a=this.getLayer().getSaturation();ol.vec.Mat4.makeSaturation(this.saturationMatrix_,a);this.colorMatrixDirty_=!0;this.dispatchChangeEvent()};ol.renderer.webgl.Layer.prototype.handleWebGLContextLost=goog.nullFunction;
|
|
ol.renderer.webgl.Layer.prototype.updateColorMatrix_=function(){var a=this.colorMatrix_;goog.vec.Mat4.makeIdentity(a);goog.vec.Mat4.multMat(a,this.contrastMatrix_,a);goog.vec.Mat4.multMat(a,this.brightnessMatrix_,a);goog.vec.Mat4.multMat(a,this.saturationMatrix_,a);goog.vec.Mat4.multMat(a,this.hueMatrix_,a);this.colorMatrixDirty_=!1};ol.renderer.webgl.ImageLayer=function(a,b){ol.renderer.webgl.Layer.call(this,a,b);this.texture_=this.image_=null;this.texCoordMatrix_=goog.vec.Mat4.createNumberIdentity();this.projectionMatrix_=goog.vec.Mat4.createNumber()};goog.inherits(ol.renderer.webgl.ImageLayer,ol.renderer.webgl.Layer);
|
|
ol.renderer.webgl.ImageLayer.prototype.createTexture_=function(a){var a=a.getImageElement(this),b=this.getMapRenderer().getGL(),c=b.createTexture();b.bindTexture(goog.webgl.TEXTURE_2D,c);b.texImage2D(goog.webgl.TEXTURE_2D,0,goog.webgl.RGBA,goog.webgl.RGBA,goog.webgl.UNSIGNED_BYTE,a);b.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_WRAP_S,goog.webgl.CLAMP_TO_EDGE);b.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_WRAP_T,goog.webgl.CLAMP_TO_EDGE);b.texParameteri(goog.webgl.TEXTURE_2D,
|
|
goog.webgl.TEXTURE_MIN_FILTER,goog.webgl.LINEAR);b.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MAG_FILTER,goog.webgl.LINEAR);return c};ol.renderer.webgl.ImageLayer.prototype.disposeInternal=function(){var a=this.getMapRenderer().getGL();a.isContextLost()||a.deleteTexture(this.texture_);ol.renderer.webgl.ImageLayer.superClass_.disposeInternal.call(this)};ol.renderer.webgl.ImageLayer.prototype.getTexCoordMatrix=function(){return this.texCoordMatrix_};
|
|
ol.renderer.webgl.ImageLayer.prototype.getTexture=function(){return this.texture_};ol.renderer.webgl.ImageLayer.prototype.getProjectionMatrix=function(){return this.projectionMatrix_};ol.renderer.webgl.ImageLayer.prototype.getImageLayer=function(){return this.getLayer()};ol.renderer.webgl.ImageLayer.prototype.handleWebGLContextLost=function(){this.texture_=null};
|
|
ol.renderer.webgl.ImageLayer.prototype.renderFrame=function(a){var b=this.getMapRenderer().getGL(),c=a.view2DState,d=c.center,e=c.resolution,f=c.rotation,g=this.image_,h=this.texture_,i=this.getImageLayer().getImageSource(),l=a.viewHints;!l[ol.ViewHint.ANIMATING]&&!l[ol.ViewHint.INTERACTING]&&(c=i.getImage(a.extent,e,c.projection),goog.isNull(c)||(i=c.getState(),i==ol.ImageState.IDLE?(goog.events.listenOnce(c,goog.events.EventType.CHANGE,this.handleImageChange,!1,this),c.load()):i==ol.ImageState.LOADED&&
|
|
(g=c,h=this.createTexture_(c),goog.isNull(this.texture_)||a.postRenderFunctions.push(goog.partial(function(a,b){a.isContextLost()||a.deleteTexture(b)},b,this.texture_)))));goog.isNull(g)||(goog.asserts.assert(!goog.isNull(h)),b=this.getMapRenderer().getCanvas(),this.updateProjectionMatrix_(b.width,b.height,d,e,f,g.getExtent()),d=this.texCoordMatrix_,goog.vec.Mat4.makeIdentity(d),goog.vec.Mat4.scale(d,1,-1,1),goog.vec.Mat4.translate(d,0,-1,0),this.image_=g,this.texture_=h,this.updateAttributions(a.attributions,
|
|
g.getAttributions()))};ol.renderer.webgl.ImageLayer.prototype.updateProjectionMatrix_=function(a,b,c,d,e,f){a*=d;b*=d;d=this.projectionMatrix_;goog.vec.Mat4.makeIdentity(d);goog.vec.Mat4.scale(d,2/a,2/b,1);goog.vec.Mat4.rotateZ(d,-e);goog.vec.Mat4.translate(d,f.minX-c.x,f.minY-c.y,0);goog.vec.Mat4.scale(d,f.getWidth()/2,f.getHeight()/2,1);goog.vec.Mat4.translate(d,1,1,0)};goog.structs.Node=function(a,b){this.key_=a;this.value_=b};goog.structs.Node.prototype.getKey=function(){return this.key_};goog.structs.Node.prototype.getValue=function(){return this.value_};goog.structs.Node.prototype.clone=function(){return new goog.structs.Node(this.key_,this.value_)};goog.structs.Heap=function(a){this.nodes_=[];a&&this.insertAll(a)};goog.structs.Heap.prototype.insert=function(a,b){var c=new goog.structs.Node(a,b),d=this.nodes_;d.push(c);this.moveUp_(d.length-1)};
|
|
goog.structs.Heap.prototype.insertAll=function(a){var b,c;if(a instanceof goog.structs.Heap){if(b=a.getKeys(),c=a.getValues(),0>=a.getCount()){for(var a=this.nodes_,d=0;d<b.length;d++)a.push(new goog.structs.Node(b[d],c[d]));return}}else b=goog.object.getKeys(a),c=goog.object.getValues(a);for(d=0;d<b.length;d++)this.insert(b[d],c[d])};goog.structs.Heap.prototype.remove=function(){var a=this.nodes_,b=a.length,c=a[0];if(!(0>=b))return 1==b?goog.array.clear(a):(a[0]=a.pop(),this.moveDown_(0)),c.getValue()};
|
|
goog.structs.Heap.prototype.peek=function(){var a=this.nodes_;return 0==a.length?void 0:a[0].getValue()};goog.structs.Heap.prototype.peekKey=function(){return this.nodes_[0]&&this.nodes_[0].getKey()};goog.structs.Heap.prototype.moveDown_=function(a){for(var b=this.nodes_,c=b.length,d=b[a];a<c>>1;){var e=this.getLeftChildIndex_(a),f=this.getRightChildIndex_(a),e=f<c&&b[f].getKey()<b[e].getKey()?f:e;if(b[e].getKey()>d.getKey())break;b[a]=b[e];a=e}b[a]=d};
|
|
goog.structs.Heap.prototype.moveUp_=function(a){for(var b=this.nodes_,c=b[a];0<a;){var d=this.getParentIndex_(a);if(b[d].getKey()>c.getKey())b[a]=b[d],a=d;else break}b[a]=c};goog.structs.Heap.prototype.getLeftChildIndex_=function(a){return 2*a+1};goog.structs.Heap.prototype.getRightChildIndex_=function(a){return 2*a+2};goog.structs.Heap.prototype.getParentIndex_=function(a){return a-1>>1};
|
|
goog.structs.Heap.prototype.getValues=function(){for(var a=this.nodes_,b=[],c=a.length,d=0;d<c;d++)b.push(a[d].getValue());return b};goog.structs.Heap.prototype.getKeys=function(){for(var a=this.nodes_,b=[],c=a.length,d=0;d<c;d++)b.push(a[d].getKey());return b};goog.structs.Heap.prototype.containsValue=function(a){return goog.array.some(this.nodes_,function(b){return b.getValue()==a})};
|
|
goog.structs.Heap.prototype.containsKey=function(a){return goog.array.some(this.nodes_,function(b){return b.getKey()==a})};goog.structs.Heap.prototype.clone=function(){return new goog.structs.Heap(this)};goog.structs.Heap.prototype.getCount=function(){return this.nodes_.length};goog.structs.Heap.prototype.isEmpty=function(){return goog.array.isEmpty(this.nodes_)};goog.structs.Heap.prototype.clear=function(){goog.array.clear(this.nodes_)};goog.structs.PriorityQueue=function(){goog.structs.Heap.call(this)};goog.inherits(goog.structs.PriorityQueue,goog.structs.Heap);goog.structs.PriorityQueue.prototype.enqueue=function(a,b){this.insert(a,b)};goog.structs.PriorityQueue.prototype.dequeue=function(){return this.remove()};ol.renderer.webgl.tilelayerrenderer={};ol.renderer.webgl.tilelayerrenderer.shader={};ol.renderer.webgl.tilelayerrenderer.shader.Fragment=function(){ol.renderer.webgl.FragmentShader.call(this,"precision mediump float;\n\nuniform sampler2D uTexture;\n\nvarying vec2 vTexCoord;\n\nvoid main(void) {\n gl_FragColor = texture2D(uTexture, vTexCoord);\n}")};goog.inherits(ol.renderer.webgl.tilelayerrenderer.shader.Fragment,ol.renderer.webgl.FragmentShader);goog.addSingletonGetter(ol.renderer.webgl.tilelayerrenderer.shader.Fragment);
|
|
ol.renderer.webgl.tilelayerrenderer.shader.Vertex=function(){ol.renderer.webgl.VertexShader.call(this,"attribute vec2 aPosition;\nattribute vec2 aTexCoord;\n\nvarying vec2 vTexCoord;\n\nuniform vec4 uTileOffset;\n\nvoid main(void) {\n gl_Position.xy = aPosition * uTileOffset.xy + uTileOffset.zw;\n gl_Position.z = 0.;\n gl_Position.w = 1.;\n vTexCoord = aTexCoord;\n}")};goog.inherits(ol.renderer.webgl.tilelayerrenderer.shader.Vertex,ol.renderer.webgl.VertexShader);goog.addSingletonGetter(ol.renderer.webgl.tilelayerrenderer.shader.Vertex);
|
|
ol.renderer.webgl.TileLayer=function(a,b){ol.renderer.webgl.Layer.call(this,a,b);this.fragmentShader_=ol.renderer.webgl.tilelayerrenderer.shader.Fragment.getInstance();this.vertexShader_=ol.renderer.webgl.tilelayerrenderer.shader.Vertex.getInstance();this.framebuffer_=this.texture_=this.arrayBuffer_=this.locations_=null;this.framebufferDimension_=void 0;this.texCoordMatrix_=goog.vec.Mat4.createNumber();this.projectionMatrix_=goog.vec.Mat4.createNumberIdentity();this.renderedFramebufferExtent_=this.renderedTileRange_=
|
|
null};goog.inherits(ol.renderer.webgl.TileLayer,ol.renderer.webgl.Layer);
|
|
ol.renderer.webgl.TileLayer.prototype.bindFramebuffer_=function(a,b){var c=this.getMapRenderer().getGL();if(!goog.isDef(this.framebufferDimension_)||this.framebufferDimension_!=b){this.getMap();a.postRenderFunctions.push(goog.partial(function(a,b,c){a.isContextLost()||(a.deleteFramebuffer(b),a.deleteTexture(c))},c,this.framebuffer_,this.texture_));var d=c.createTexture();c.bindTexture(goog.webgl.TEXTURE_2D,d);c.texImage2D(goog.webgl.TEXTURE_2D,0,goog.webgl.RGBA,b,b,0,goog.webgl.RGBA,goog.webgl.UNSIGNED_BYTE,
|
|
null);c.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MAG_FILTER,goog.webgl.LINEAR);c.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MIN_FILTER,goog.webgl.LINEAR);var e=c.createFramebuffer();c.bindFramebuffer(goog.webgl.FRAMEBUFFER,e);c.framebufferTexture2D(goog.webgl.FRAMEBUFFER,goog.webgl.COLOR_ATTACHMENT0,goog.webgl.TEXTURE_2D,d,0);this.texture_=d;this.framebuffer_=e;this.framebufferDimension_=b}else c.bindFramebuffer(goog.webgl.FRAMEBUFFER,this.framebuffer_)};
|
|
ol.renderer.webgl.TileLayer.prototype.disposeInternal=function(){var a=this.getMapRenderer().getGL();a.isContextLost()||(a.deleteBuffer(this.arrayBuffer_),a.deleteFramebuffer(this.framebuffer_),a.deleteTexture(this.texture_));ol.renderer.webgl.TileLayer.superClass_.disposeInternal.call(this)};ol.renderer.webgl.TileLayer.prototype.getTexCoordMatrix=function(){return this.texCoordMatrix_};ol.renderer.webgl.TileLayer.prototype.getTexture=function(){return this.texture_};
|
|
ol.renderer.webgl.TileLayer.prototype.getProjectionMatrix=function(){return this.projectionMatrix_};ol.renderer.webgl.TileLayer.prototype.getTileLayer=function(){return this.getLayer()};ol.renderer.webgl.TileLayer.prototype.handleWebGLContextLost=function(){this.framebuffer_=this.texture_=this.arrayBuffer_=this.locations_=null;this.framebufferDimension_=void 0};
|
|
ol.renderer.webgl.TileLayer.prototype.renderFrame=function(a){var b=this.getMapRenderer(),c=b.getGL(),d=a.view2DState,e=d.projection,f=d.center,g=this.getTileLayer().getTileSource(),h=goog.getUid(g).toString(),i=g.getTileGrid();goog.isNull(i)&&(i=ol.tilegrid.getForProjection(e));var l=i.getZForResolution(d.resolution),j=i.getResolution(l),k=i.getTileRangeForExtentAndResolution(a.extent,j),m;if(!goog.isNull(this.renderedTileRange_)&&this.renderedTileRange_.equals(k))m=this.renderedFramebufferExtent_;
|
|
else{var n=k.getSize(),p=i.getTileSize(l),n=Math.max(n.width*p.width,n.height*p.height),n=Math.pow(2,Math.ceil(Math.log(n)/Math.log(2))),q=new ol.Size(j*n,j*n),r=i.getOrigin(l),s=r.x+k.minX*p.width*j,j=r.y+k.minY*p.height*j;m=new ol.Extent(s,j,s+q.width,j+q.height);this.bindFramebuffer_(a,n);c.viewport(0,0,n,n);c.clearColor(0,0,0,0);c.clear(goog.webgl.COLOR_BUFFER_BIT);c.disable(goog.webgl.BLEND);j=b.getProgram(this.fragmentShader_,this.vertexShader_);c.useProgram(j);goog.isNull(this.locations_)&&
|
|
(this.locations_={aPosition:c.getAttribLocation(j,"aPosition"),aTexCoord:c.getAttribLocation(j,"aTexCoord"),uTileOffset:c.getUniformLocation(j,"uTileOffset"),uTexture:c.getUniformLocation(j,"uTexture")});goog.isNull(this.arrayBuffer_)?(j=c.createBuffer(),c.bindBuffer(goog.webgl.ARRAY_BUFFER,j),c.bufferData(goog.webgl.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]),goog.webgl.STATIC_DRAW),this.arrayBuffer_=j):c.bindBuffer(goog.webgl.ARRAY_BUFFER,this.arrayBuffer_);c.enableVertexAttribArray(this.locations_.aPosition);
|
|
c.vertexAttribPointer(this.locations_.aPosition,2,goog.webgl.FLOAT,!1,16,0);c.enableVertexAttribArray(this.locations_.aTexCoord);c.vertexAttribPointer(this.locations_.aTexCoord,2,goog.webgl.FLOAT,!1,16,8);c.uniform1i(this.locations_.uTexture,0);var z={};z[l]={};for(var j=this.createGetTileIfLoadedFunction(function(a){return!goog.isNull(a)&&a.getState()==ol.TileState.LOADED&&b.isTileTextureLoaded(a)},g,i,e),p=goog.bind(g.findLoadedTiles,g,z,j),j=new goog.structs.PriorityQueue,w=!0,t,v,r=k.minX;r<=
|
|
k.maxX;++r)for(v=k.minY;v<=k.maxY;++v)if(s=new ol.TileCoord(l,r,v),n=g.getTile(s,i,e),!goog.isNull(n)){t=n.getState();if(t==ol.TileState.IDLE)goog.events.listenOnce(n,goog.events.EventType.CHANGE,this.handleTileChange,!1,this),this.updateWantedTiles(a.wantedTiles,g,s),t=i.getTileCoordCenter(s),a.tileQueue.enqueue(n,h,t);else if(t==ol.TileState.LOADED)if(b.isTileTextureLoaded(n)){z[l][s.toString()]=n;continue}else t=i.getTileCoordCenter(s),w=t.x-f.x,t=t.y-f.y,w=Math.sqrt(w*w+t*t),j.enqueue(w,n);else if(t==
|
|
ol.TileState.ERROR)continue;w=!1;i.forEachTileCoordParentTileRange(s,p)}e=goog.array.map(goog.object.getKeys(z),Number);goog.array.sort(e);var u=goog.vec.Vec4.createFloat32();goog.array.forEach(e,function(a){goog.object.forEach(z[a],function(a){var d=i.getTileCoordExtent(a.tileCoord),e=2*d.getWidth()/q.width,f=2*d.getHeight()/q.height;goog.vec.Vec4.setFromValues(u,e,f,2*(d.minX-m.minX)/q.width-1,2*(d.minY-m.minY)/q.height-1);c.uniform4fv(this.locations_.uTileOffset,u);b.bindTileTexture(a,goog.webgl.LINEAR,
|
|
goog.webgl.LINEAR);c.drawArrays(goog.webgl.TRIANGLE_STRIP,0,4)},this)},this);j.isEmpty()||a.postRenderFunctions.push(goog.partial(function(a,b){var c,d;for(c=0;!b.isEmpty()&&4>c;++c)d=b.remove(),a.bindTileTexture(d,goog.webgl.LINEAR,goog.webgl.LINEAR)},b,j));w?(this.renderedTileRange_=k,this.renderedFramebufferExtent_=m):(this.renderedFramebufferExtent_=this.renderedTileRange_=null,a.animate=!0)}this.updateUsedTiles(a.usedTiles,g,l,k);g.useLowResolutionTiles(l,a.extent,i);this.scheduleExpireCache(a,
|
|
g);goog.vec.Mat4.makeIdentity(this.texCoordMatrix_);goog.vec.Mat4.translate(this.texCoordMatrix_,(d.center.x-m.minX)/(m.maxX-m.minX),(d.center.y-m.minY)/(m.maxY-m.minY),0);goog.vec.Mat4.rotateZ(this.texCoordMatrix_,d.rotation);goog.vec.Mat4.scale(this.texCoordMatrix_,a.size.width*d.resolution/(m.maxX-m.minX),a.size.height*d.resolution/(m.maxY-m.minY),1);goog.vec.Mat4.translate(this.texCoordMatrix_,-0.5,-0.5,0)};ol.structs={};ol.structs.LRUCache=function(){this.count_=0;this.entries_={};this.newest_=this.oldest_=null};
|
|
ol.structs.LRUCache.prototype.assertValid=function(){if(0===this.count_)goog.asserts.assert(goog.object.isEmpty(this.entries_)),goog.asserts.assert(goog.isNull(this.oldest_)),goog.asserts.assert(goog.isNull(this.newest_));else{goog.asserts.assert(goog.object.getCount(this.entries_)==this.count_);goog.asserts.assert(!goog.isNull(this.oldest_));goog.asserts.assert(goog.isNull(this.oldest_.older));goog.asserts.assert(!goog.isNull(this.newest_));goog.asserts.assert(goog.isNull(this.newest_.newer));var a,
|
|
b,c=null;a=0;for(b=this.oldest_;!goog.isNull(b);b=b.newer)goog.asserts.assert(b.older===c),c=b,++a;goog.asserts.assert(a==this.count_);c=null;a=0;for(b=this.newest_;!goog.isNull(b);b=b.older)goog.asserts.assert(b.newer===c),c=b,++a;goog.asserts.assert(a==this.count_)}};ol.structs.LRUCache.prototype.clear=function(){this.count_=0;this.entries_={};this.newest_=this.oldest_=null};ol.structs.LRUCache.prototype.containsKey=function(a){return this.entries_.hasOwnProperty(a)};
|
|
ol.structs.LRUCache.prototype.forEach=function(a,b){for(var c=this.oldest_;!goog.isNull(c);)a.call(b,c.value_,c.key_,this),c=c.newer};ol.structs.LRUCache.prototype.get=function(a){a=this.entries_[a];goog.asserts.assert(goog.isDef(a));if(a===this.newest_)return a.value_;a===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(a.newer.older=a.older,a.older.newer=a.newer);a.newer=null;a.older=this.newest_;this.newest_=this.newest_.newer=a;return a.value_};
|
|
ol.structs.LRUCache.prototype.getCount=function(){return this.count_};ol.structs.LRUCache.prototype.getKeys=function(){var a=Array(this.count_),b=0,c;for(c=this.newest_;!goog.isNull(c);c=c.older)a[b++]=c.key_;goog.asserts.assert(b==this.count_);return a};ol.structs.LRUCache.prototype.getValues=function(){var a=Array(this.count_),b=0,c;for(c=this.newest_;!goog.isNull(c);c=c.older)a[b++]=c.value_;goog.asserts.assert(b==this.count_);return a};
|
|
ol.structs.LRUCache.prototype.peekLast=function(){goog.asserts.assert(!goog.isNull(this.oldest_));return this.oldest_.value_};ol.structs.LRUCache.prototype.peekLastKey=function(){goog.asserts.assert(!goog.isNull(this.oldest_));return this.oldest_.key_};
|
|
ol.structs.LRUCache.prototype.pop=function(){goog.asserts.assert(!goog.isNull(this.oldest_));goog.asserts.assert(!goog.isNull(this.newest_));var a=this.oldest_;goog.asserts.assert(a.key_ in this.entries_);delete this.entries_[a.key_];goog.isNull(a.newer)||(a.newer.older=null);this.oldest_=a.newer;goog.isNull(this.oldest_)&&(this.newest_=null);--this.count_;return a.value_};
|
|
ol.structs.LRUCache.prototype.set=function(a,b){goog.asserts.assert(!(a in{}));goog.asserts.assert(!(a in this.entries_));var c={key_:a,newer:null,older:this.newest_,value_:b};goog.isNull(this.newest_)?this.oldest_=c:this.newest_.newer=c;this.newest_=c;this.entries_[a]=c;++this.count_};ol.webgl={};ol.webgl.CONTEXT_IDS_=["webgl","webgl-experimental","webkit-3d","moz-webgl"];ol.webgl.WebGLContextEventType={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};ol.webgl.getContext=function(a,b){var c,d,e=ol.webgl.CONTEXT_IDS_.length;for(d=0;d<e;++d)try{if(c=a.getContext(ol.webgl.CONTEXT_IDS_[d],b),!goog.isNull(c))return c}catch(f){}return null};
|
|
ol.webgl.SUPPORTED=function(){if(!("WebGLRenderingContext"in goog.global))return!1;try{var a=goog.dom.createElement(goog.dom.TagName.CANVAS);return!goog.isNull(ol.webgl.getContext(a))}catch(b){return!1}}();ol.renderer.webgl.map={};ol.renderer.webgl.map.shader={};ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK=1024;ol.renderer.webgl.map.shader.Fragment=function(){ol.renderer.webgl.FragmentShader.call(this,"precision mediump float;\n\nuniform mat4 u_colorMatrix;\nuniform float u_opacity;\nuniform sampler2D u_texture;\n\nvarying vec2 v_texCoord;\n\nvoid main(void) {\n\n vec4 texColor = texture2D(u_texture, v_texCoord);\n vec4 color = u_colorMatrix * vec4(texColor.rgb, 1.);\n color.a = texColor.a * u_opacity;\n\n gl_FragColor = color;\n\n}")};
|
|
goog.inherits(ol.renderer.webgl.map.shader.Fragment,ol.renderer.webgl.FragmentShader);goog.addSingletonGetter(ol.renderer.webgl.map.shader.Fragment);ol.renderer.webgl.map.shader.Vertex=function(){ol.renderer.webgl.VertexShader.call(this,"attribute vec2 a_position;\nattribute vec2 a_texCoord;\n\nuniform mat4 u_texCoordMatrix;\nuniform mat4 u_projectionMatrix;\n\nvarying vec2 v_texCoord;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0., 1.);\n v_texCoord = (u_texCoordMatrix * vec4(a_texCoord, 0., 1.)).st;\n}")};
|
|
goog.inherits(ol.renderer.webgl.map.shader.Vertex,ol.renderer.webgl.VertexShader);goog.addSingletonGetter(ol.renderer.webgl.map.shader.Vertex);
|
|
ol.renderer.webgl.Map=function(a,b){ol.renderer.Map.call(this,a,b);goog.DEBUG&&(this.logger=goog.debug.Logger.getLogger("ol.renderer.webgl.maprenderer."+goog.getUid(this)));this.canvas_=goog.dom.createElement(goog.dom.TagName.CANVAS);this.canvas_.height=a.clientHeight;this.canvas_.width=a.clientWidth;this.canvas_.className="ol-unselectable";goog.dom.insertChildAt(a,this.canvas_,0);this.renderedVisible_=!0;this.canvasSize_=new ol.Size(a.clientHeight,a.clientWidth);this.gl_=ol.webgl.getContext(this.canvas_,
|
|
{alpha:!1,antialias:!0,depth:!1,preserveDrawingBuffer:!1,stencil:!1});goog.asserts.assert(!goog.isNull(this.gl_));goog.events.listen(this.canvas_,ol.webgl.WebGLContextEventType.LOST,this.handleWebGLContextLost,!1,this);goog.events.listen(this.canvas_,ol.webgl.WebGLContextEventType.RESTORED,this.handleWebGLContextResourced,!1,this);this.arrayBuffer_=this.locations_=null;this.shaderCache_={};this.programCache_={};this.textureCache_=new ol.structs.LRUCache;this.textureCacheFrameMarkerCount_=0;this.fragmentShader_=
|
|
ol.renderer.webgl.map.shader.Fragment.getInstance();this.vertexShader_=ol.renderer.webgl.map.shader.Vertex.getInstance();this.initializeGL_()};goog.inherits(ol.renderer.webgl.Map,ol.renderer.Map);ol.renderer.webgl.Map.prototype.addLayer=function(a){ol.renderer.webgl.Map.superClass_.addLayer.call(this,a);a.getVisible()&&this.getMap().render()};
|
|
ol.renderer.webgl.Map.prototype.bindTileTexture=function(a,b,c){var d=this.getGL(),e=a.getKey();if(this.textureCache_.containsKey(e))a=this.textureCache_.get(e),d.bindTexture(goog.webgl.TEXTURE_2D,a.texture),a.magFilter!=b&&(d.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MAG_FILTER,b),a.magFilter=b),a.minFilter!=c&&(d.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MAG_FILTER,c),a.minFilter=c);else{var f=d.createTexture();d.bindTexture(goog.webgl.TEXTURE_2D,f);d.texImage2D(goog.webgl.TEXTURE_2D,
|
|
0,goog.webgl.RGBA,goog.webgl.RGBA,goog.webgl.UNSIGNED_BYTE,a.getImage());d.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MAG_FILTER,b);d.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_MIN_FILTER,c);d.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_WRAP_S,goog.webgl.CLAMP_TO_EDGE);d.texParameteri(goog.webgl.TEXTURE_2D,goog.webgl.TEXTURE_WRAP_T,goog.webgl.CLAMP_TO_EDGE);this.textureCache_.set(e,{texture:f,magFilter:b,minFilter:c})}};
|
|
ol.renderer.webgl.Map.prototype.createLayerRenderer=function(a){var b=null;a instanceof ol.layer.TileLayer?b=new ol.renderer.webgl.TileLayer(this,a):a instanceof ol.layer.ImageLayer?b=new ol.renderer.webgl.ImageLayer(this,a):goog.asserts.assert(!1);return b};
|
|
ol.renderer.webgl.Map.prototype.disposeInternal=function(){var a=this.getGL();a.isContextLost()||(goog.object.forEach(this.programCache_,function(b){a.deleteProgram(b)}),goog.object.forEach(this.shaderCache_,function(b){a.deleteShader(b)}),this.textureCache_.forEach(function(b){goog.isNull(b)||a.deleteTexture(b.texture)}));ol.renderer.webgl.Map.superClass_.disposeInternal.call(this)};
|
|
ol.renderer.webgl.Map.prototype.expireCache_=function(a,b){for(var c=this.getGL(),d;this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK;){d=this.textureCache_.peekLast();if(goog.isNull(d))if(+this.textureCache_.peekLastKey()==b.time)break;else--this.textureCacheFrameMarkerCount_;else c.deleteTexture(d.texture);this.textureCache_.pop()}};ol.renderer.webgl.Map.prototype.getCanvas=function(){return this.canvas_};
|
|
ol.renderer.webgl.Map.prototype.getGL=function(){return this.gl_};
|
|
ol.renderer.webgl.Map.prototype.getProgram=function(a,b){var c=goog.getUid(a)+"/"+goog.getUid(b);if(c in this.programCache_)return this.programCache_[c];var d=this.getGL(),e=d.createProgram();d.attachShader(e,this.getShader(a));d.attachShader(e,this.getShader(b));d.linkProgram(e);goog.DEBUG&&(!d.getProgramParameter(e,goog.webgl.LINK_STATUS)&&!d.isContextLost())&&(this.logger.severe(d.getProgramInfoLog(e)),goog.asserts.assert(d.getProgramParameter(e,goog.webgl.LINK_STATUS)));return this.programCache_[c]=
|
|
e};ol.renderer.webgl.Map.prototype.getShader=function(a){var b=goog.getUid(a);if(b in this.shaderCache_)return this.shaderCache_[b];var c=this.getGL(),d=c.createShader(a.getType());c.shaderSource(d,a.getSource());c.compileShader(d);goog.DEBUG&&(!c.getShaderParameter(d,goog.webgl.COMPILE_STATUS)&&!c.isContextLost())&&(this.logger.severe(c.getShaderInfoLog(d)),goog.asserts.assert(c.getShaderParameter(d,goog.webgl.COMPILE_STATUS)));return this.shaderCache_[b]=d};
|
|
ol.renderer.webgl.Map.prototype.handleWebGLContextLost=function(a){goog.DEBUG&&this.logger.info("WebGLContextLost");a.preventDefault();this.arrayBuffer_=this.locations_=null;this.shaderCache_={};this.programCache_={};this.textureCache_.clear();this.textureCacheFrameMarkerCount_=0;goog.object.forEach(this.layerRenderers,function(a){a.handleWebGLContextLost()})};
|
|
ol.renderer.webgl.Map.prototype.handleWebGLContextResourced=function(){goog.DEBUG&&this.logger.info("WebGLContextResourced");this.initializeGL_();this.getMap().render()};ol.renderer.webgl.Map.prototype.initializeGL_=function(){var a=this.gl_;a.activeTexture(goog.webgl.TEXTURE0);a.blendFunc(goog.webgl.SRC_ALPHA,goog.webgl.ONE_MINUS_SRC_ALPHA);a.disable(goog.webgl.CULL_FACE);a.disable(goog.webgl.DEPTH_TEST);a.disable(goog.webgl.SCISSOR_TEST)};ol.renderer.webgl.Map.prototype.isTileTextureLoaded=function(a){return this.textureCache_.containsKey(a.getKey())};
|
|
ol.renderer.webgl.Map.prototype.removeLayer=function(a){ol.renderer.webgl.Map.superClass_.removeLayer.call(this,a);a.getVisible()&&this.getMap().render()};
|
|
ol.renderer.webgl.Map.prototype.renderFrame=function(a){var b=this.getGL();if(goog.isNull(a))return this.renderedVisible_&&(goog.style.showElement(this.canvas_,!1),this.renderedVisible_=!1),!1;this.textureCache_.set(a.time.toString(),null);++this.textureCacheFrameMarkerCount_;goog.array.forEach(a.layersArray,function(b){var c=a.layerStates[goog.getUid(b)];c.visible&&c.ready&&this.getLayerRenderer(b).renderFrame(a,c)},this);var c=a.size;this.canvasSize_.equals(c)||(this.canvas_.width=c.width,this.canvas_.height=
|
|
c.height,this.canvasSize_=c);b.bindFramebuffer(goog.webgl.FRAMEBUFFER,null);var d=a.backgroundColor;b.clearColor(d.r/255,d.g/255,d.b/255,d.a);b.clear(goog.webgl.COLOR_BUFFER_BIT);b.enable(goog.webgl.BLEND);b.viewport(0,0,c.width,c.height);c=this.getProgram(this.fragmentShader_,this.vertexShader_);b.useProgram(c);goog.isNull(this.locations_)&&(this.locations_={a_position:b.getAttribLocation(c,"a_position"),a_texCoord:b.getAttribLocation(c,"a_texCoord"),u_colorMatrix:b.getUniformLocation(c,"u_colorMatrix"),
|
|
u_texCoordMatrix:b.getUniformLocation(c,"u_texCoordMatrix"),u_projectionMatrix:b.getUniformLocation(c,"u_projectionMatrix"),u_opacity:b.getUniformLocation(c,"u_opacity"),u_texture:b.getUniformLocation(c,"u_texture")});goog.isNull(this.arrayBuffer_)?(c=b.createBuffer(),b.bindBuffer(goog.webgl.ARRAY_BUFFER,c),b.bufferData(goog.webgl.ARRAY_BUFFER,new Float32Array([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]),goog.webgl.STATIC_DRAW),this.arrayBuffer_=c):b.bindBuffer(goog.webgl.ARRAY_BUFFER,this.arrayBuffer_);
|
|
b.enableVertexAttribArray(this.locations_.a_position);b.vertexAttribPointer(this.locations_.a_position,2,goog.webgl.FLOAT,!1,16,0);b.enableVertexAttribArray(this.locations_.a_texCoord);b.vertexAttribPointer(this.locations_.a_texCoord,2,goog.webgl.FLOAT,!1,16,8);b.uniform1i(this.locations_.u_texture,0);goog.array.forEach(a.layersArray,function(c){var d=a.layerStates[goog.getUid(c)];d.visible&&d.ready&&(d=this.getLayerRenderer(c),b.uniformMatrix4fv(this.locations_.u_texCoordMatrix,!1,d.getTexCoordMatrix()),
|
|
b.uniformMatrix4fv(this.locations_.u_projectionMatrix,!1,d.getProjectionMatrix()),b.uniformMatrix4fv(this.locations_.u_colorMatrix,!1,d.getColorMatrix()),b.uniform1f(this.locations_.u_opacity,c.getOpacity()),b.bindTexture(goog.webgl.TEXTURE_2D,d.getTexture()),b.drawArrays(goog.webgl.TRIANGLE_STRIP,0,4))},this);this.renderedVisible_||(goog.style.showElement(this.canvas_,!0),this.renderedVisible_=!0);this.calculateMatrices2D(a);this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK&&
|
|
a.postRenderFunctions.push(goog.bind(this.expireCache_,this))};ol.renderer.webgl.SUPPORTED=ol.webgl.SUPPORTED;ol.RendererHints={};ol.ENABLE_CANVAS=!0;ol.ENABLE_DOM=!0;ol.ENABLE_WEBGL=!0;ol.RendererHint={CANVAS:"canvas",DOM:"dom",WEBGL:"webgl"};ol.DEFAULT_RENDERER_HINTS=[ol.RendererHint.WEBGL,ol.RendererHint.CANVAS,ol.RendererHint.DOM];ol.MapProperty={BACKGROUND_COLOR:"backgroundColor",LAYERS:"layers",SIZE:"size",VIEW:"view"};
|
|
ol.Map=function(a){ol.Object.call(this);goog.DEBUG&&(this.logger=goog.debug.Logger.getLogger("ol.map."+goog.getUid(this)));a=ol.Map.createOptionsInternal(a);this.animationDelay_=new goog.async.AnimationDelay(this.renderFrame_,void 0,this);this.registerDisposable(this.animationDelay_);this.coordinateToPixelMatrix_=goog.vec.Mat4.createNumber();this.pixelToCoordinateMatrix_=goog.vec.Mat4.createNumber();this.frameState_=null;this.freezeRenderingCount_=0;this.dirty_=!1;this.target_=a.target;this.viewPropertyListenerKey_=
|
|
null;this.viewport_=goog.dom.createDom(goog.dom.TagName.DIV,"ol-viewport");this.viewport_.style.position="relative";this.viewport_.style.overflow="hidden";this.viewport_.style.width="100%";this.viewport_.style.height="100%";this.viewport_.style.msTouchAction="none";goog.dom.appendChild(this.target_,this.viewport_);this.overlayContainer_=goog.dom.createDom(goog.dom.TagName.DIV,"ol-overlaycontainer");goog.events.listen(this.overlayContainer_,[goog.events.EventType.CLICK,ol.BrowserFeature.HAS_TOUCH?
|
|
goog.events.EventType.TOUCHSTART:goog.events.EventType.MOUSEDOWN],goog.events.Event.stopPropagation);goog.dom.appendChild(this.viewport_,this.overlayContainer_);var b=new ol.MapBrowserEventHandler(this);goog.events.listen(b,goog.object.getValues(ol.MapBrowserEvent.EventType),this.handleMapBrowserEvent,!1,this);this.registerDisposable(b);b=new goog.events.KeyHandler(document);goog.events.listen(b,goog.events.KeyHandler.EventType.KEY,this.handleBrowserEvent,!1,this);this.registerDisposable(b);b=new goog.events.MouseWheelHandler(this.viewport_);
|
|
goog.events.listen(b,goog.events.MouseWheelHandler.EventType.MOUSEWHEEL,this.handleBrowserEvent,!1,this);this.registerDisposable(b);this.interactions_=a.interactions;this.renderer_=new a.rendererConstructor(this.viewport_,this);this.registerDisposable(this.renderer_);this.viewportSizeMonitor_=new goog.dom.ViewportSizeMonitor;goog.events.listen(this.viewportSizeMonitor_,goog.events.EventType.RESIZE,this.handleBrowserWindowResize,!1,this);this.preRenderFunctions_=[];this.postRenderFunctions_=[];this.handlePostRender_=
|
|
goog.bind(this.handlePostRender,this);this.tileQueue_=new ol.TileQueue(goog.bind(this.getTilePriority,this));goog.events.listen(this,ol.Object.getChangedEventType(ol.MapProperty.VIEW),this.handleViewChanged_,!1,this);goog.events.listen(this,ol.Object.getChangedEventType(ol.MapProperty.SIZE),this.handleSizeChanged_,!1,this);goog.events.listen(this,ol.Object.getChangedEventType(ol.MapProperty.BACKGROUND_COLOR),this.handleBackgroundColorChanged_,!1,this);this.setValues(a.values);this.handleBrowserWindowResize();
|
|
goog.array.forEach(a.controls,function(a){a.setMap(this)},this)};goog.inherits(ol.Map,ol.Object);ol.Map.prototype.addPreRenderFunction=function(a){this.requestRenderFrame();this.preRenderFunctions_.push(a)};ol.Map.prototype.addPreRenderFunctions=function(a){this.requestRenderFrame();Array.prototype.push.apply(this.preRenderFunctions_,a)};ol.Map.prototype.removePreRenderFunction=function(a){return goog.array.remove(this.preRenderFunctions_,a)};
|
|
ol.Map.prototype.disposeInternal=function(){goog.dom.removeNode(this.viewport_);ol.Map.superClass_.disposeInternal.call(this)};ol.Map.prototype.freezeRendering=function(){++this.freezeRenderingCount_};ol.Map.prototype.getBackgroundColor=function(){return this.get(ol.MapProperty.BACKGROUND_COLOR)};goog.exportProperty(ol.Map.prototype,"getBackgroundColor",ol.Map.prototype.getBackgroundColor);ol.Map.prototype.getRenderer=function(){return this.renderer_};ol.Map.prototype.getTarget=function(){return this.target_};
|
|
ol.Map.prototype.getCoordinateFromPixel=function(a){var b=this.frameState_;if(goog.isNull(b))return null;a=[a.x,a.y,0];goog.vec.Mat4.multVec3(b.pixelToCoordinateMatrix,a,a);return new ol.Coordinate(a[0],a[1])};ol.Map.prototype.getInteractions=function(){return this.interactions_};ol.Map.prototype.getLayers=function(){return this.get(ol.MapProperty.LAYERS)};goog.exportProperty(ol.Map.prototype,"getLayers",ol.Map.prototype.getLayers);
|
|
ol.Map.prototype.getPixelFromCoordinate=function(a){var b=this.frameState_;if(goog.isNull(b))return null;a=[a.x,a.y,0];goog.vec.Mat4.multVec3(b.coordinateToPixelMatrix,a,a);return new ol.Pixel(a[0],a[1])};ol.Map.prototype.getSize=function(){return this.get(ol.MapProperty.SIZE)};goog.exportProperty(ol.Map.prototype,"getSize",ol.Map.prototype.getSize);ol.Map.prototype.getView=function(){return this.get(ol.MapProperty.VIEW)};goog.exportProperty(ol.Map.prototype,"getView",ol.Map.prototype.getView);
|
|
ol.Map.prototype.getViewport=function(){return this.viewport_};ol.Map.prototype.getOverlayContainer=function(){return this.overlayContainer_};ol.Map.prototype.getTilePriority=function(a,b,c){var d=this.frameState_;if(goog.isNull(d)||!(b in d.wantedTiles)||!d.wantedTiles[b][a.tileCoord.toString()])return ol.TileQueue.DROP;b=d.view2DState.center;a=c.x-b.x;c=c.y-b.y;return a*a+c*c};ol.Map.prototype.handleBrowserEvent=function(a,b){var c=new ol.MapBrowserEvent(b||a.type,this,a);this.handleMapBrowserEvent(c)};
|
|
ol.Map.prototype.handleMapBrowserEvent=function(a){a.frameState=this.frameState_;var b=this.getInteractions().getArray();if(!1!==this.dispatchEvent(a))for(var c=b.length-1;0<=c&&!(b[c].handleMapBrowserEvent(a),a.defaultPrevented);c--);};ol.Map.prototype.handlePostRender=function(){this.tileQueue_.reprioritize();this.tileQueue_.loadMoreTiles();var a=this.postRenderFunctions_,b;for(b=0;b<a.length;++b)a[b](this,this.frameState_);a.length=0};ol.Map.prototype.handleBackgroundColorChanged_=function(){this.render()};
|
|
ol.Map.prototype.handleBrowserWindowResize=function(){var a=new ol.Size(this.target_.clientWidth,this.target_.clientHeight);this.setSize(a)};ol.Map.prototype.handleSizeChanged_=function(){this.render()};ol.Map.prototype.handleViewPropertyChanged_=function(){this.render()};
|
|
ol.Map.prototype.handleViewChanged_=function(){goog.isNull(this.viewPropertyListenerKey_)||(goog.events.unlistenByKey(this.viewPropertyListenerKey_),this.viewPropertyListenerKey_=null);var a=this.getView();goog.isDefAndNotNull(a)&&(this.viewPropertyListenerKey_=goog.events.listen(a,ol.ObjectEventType.CHANGED,this.handleViewPropertyChanged_,!1,this));this.render()};ol.Map.prototype.isDef=function(){var a=this.getView();return goog.isDef(a)&&a.isDef()&&goog.isDefAndNotNull(this.getSize())};
|
|
ol.Map.prototype.render=function(){this.animationDelay_.isActive()||(0===this.freezeRenderingCount_?this.animationDelay_.fire():this.dirty_=!0)};ol.Map.prototype.requestRenderFrame=function(){0===this.freezeRenderingCount_?this.animationDelay_.isActive()||this.animationDelay_.start():this.dirty_=!0};
|
|
ol.Map.prototype.renderFrame_=function(a){var b;if(0==this.freezeRenderingCount_){goog.DEBUG&&this.logger.info("renderFrame_");var c=this.getSize();b=this.getLayers();var d=goog.isDef(b)?b.getArray():void 0;b=this.getView();var e=goog.isDef(b)?this.getView().getView2D():void 0,f=null;if(goog.isDef(d)&&goog.isDef(c)&&goog.isDef(e)&&e.isDef()){var f=this.getBackgroundColor(),g=b.getHints(),h={},i;for(b=0;b<d.length;++b)i=d[b],h[goog.getUid(i)]=i.getLayerState();i=e.getView2DState();f={animate:!1,attributions:{},
|
|
backgroundColor:goog.isDef(f)?f:new ol.Color(255,255,255,1),coordinateToPixelMatrix:this.coordinateToPixelMatrix_,extent:null,layersArray:d,layerStates:h,pixelToCoordinateMatrix:this.pixelToCoordinateMatrix_,postRenderFunctions:[],size:c,tileQueue:this.tileQueue_,time:a,usedTiles:{},view2DState:i,viewHints:g,wantedTiles:{}}}a=this.preRenderFunctions_;for(b=d=0;b<a.length;++b)e=a[b],e(this,f)&&(a[d++]=e);a.length=d;if(!goog.isNull(f)){a=i.center;b=i.resolution;i=i.rotation;d=b*c.width/2;c=b*c.height/
|
|
2;c=[new ol.Coordinate(-d,-c),new ol.Coordinate(-d,c),new ol.Coordinate(d,-c),new ol.Coordinate(d,c)];for(b=0;4>b;++b)d=c[b],d.rotate(i),d.add(a);f.extent=ol.Extent.boundingExtent.apply(null,c)}this.frameState_=f;this.renderer_.renderFrame(f);this.dirty_=!1;goog.isNull(f)||(f.animate&&this.requestRenderFrame(),Array.prototype.push.apply(this.postRenderFunctions_,f.postRenderFunctions));this.dispatchEvent(new ol.MapEvent(ol.MapEventType.POSTRENDER,this,f));goog.global.setTimeout(this.handlePostRender_,
|
|
0)}};ol.Map.prototype.setBackgroundColor=function(a){this.set(ol.MapProperty.BACKGROUND_COLOR,a)};goog.exportProperty(ol.Map.prototype,"setBackgroundColor",ol.Map.prototype.setBackgroundColor);ol.Map.prototype.setLayers=function(a){this.set(ol.MapProperty.LAYERS,a)};goog.exportProperty(ol.Map.prototype,"setLayers",ol.Map.prototype.setLayers);ol.Map.prototype.setSize=function(a){this.set(ol.MapProperty.SIZE,a)};goog.exportProperty(ol.Map.prototype,"setSize",ol.Map.prototype.setSize);
|
|
ol.Map.prototype.setView=function(a){this.set(ol.MapProperty.VIEW,a)};goog.exportProperty(ol.Map.prototype,"setView",ol.Map.prototype.setView);ol.Map.prototype.unfreezeRendering=function(){goog.asserts.assert(0<this.freezeRenderingCount_);0===--this.freezeRenderingCount_&&this.dirty_&&this.animationDelay_.fire()};ol.Map.prototype.withFrozenRendering=function(a,b){this.freezeRendering();try{a.call(b)}finally{this.unfreezeRendering()}};
|
|
ol.Map.createOptionsInternal=function(a){var b={};b[ol.MapProperty.LAYERS]=goog.isDef(a.layers)?a.layers:new ol.Collection;b[ol.MapProperty.VIEW]=goog.isDef(a.view)?a.view:new ol.View2D;var c=ol.renderer.Map,d;d=goog.isDef(a.renderers)?a.renderers:goog.isDef(a.renderer)?[a.renderer]:ol.DEFAULT_RENDERER_HINTS;var e,f;for(e=0;e<d.length;++e)if(f=d[e],f==ol.RendererHint.CANVAS){if(ol.ENABLE_CANVAS&&ol.renderer.canvas.SUPPORTED){c=ol.renderer.canvas.Map;break}}else if(f==ol.RendererHint.DOM){if(ol.ENABLE_DOM&&
|
|
ol.renderer.dom.SUPPORTED){c=ol.renderer.dom.Map;break}}else if(f==ol.RendererHint.WEBGL&&ol.ENABLE_WEBGL&&ol.renderer.webgl.SUPPORTED){c=ol.renderer.webgl.Map;break}d=ol.Map.createControls_(a);e=goog.isDef(a.interactions)?a.interactions:ol.Map.createInteractions_(a);a=goog.dom.getElement(a.target);return{controls:d,interactions:e,rendererConstructor:c,target:a,values:b}};
|
|
ol.Map.createControls_=function(a){var b=[];(goog.isDef(a.attributionControl)?a.attributionControl:1)&&b.push(new ol.control.Attribution({}));if(goog.isDef(a.scaleLineControl)&&a.scaleLineControl){var c=goog.isDef(a.scaleLineUnits)?a.scaleLineUnits:void 0;b.push(new ol.control.ScaleLine({units:c}))}if(goog.isDef(a.zoomControl)?a.zoomControl:1)a=goog.isDef(a.zoomDelta)?a.zoomDelta:4,b.push(new ol.control.Zoom({delta:a}));return b};
|
|
ol.Map.createInteractions_=function(a){var b=new ol.Collection;(goog.isDef(a.rotate)?a.rotate:1)&&b.push(new ol.interaction.DragRotate(ol.interaction.condition.altShiftKeysOnly));if(goog.isDef(a.doubleClickZoom)?a.doubleClickZoom:1){var c=goog.isDef(a.zoomDelta)?a.zoomDelta:4;b.push(new ol.interaction.DblClickZoom(c))}(goog.isDef(a.touchPan)?a.touchPan:1)&&b.push(new ol.interaction.TouchPan(new ol.Kinetic(-0.005,0.05,100)));(goog.isDef(a.touchRotate)?a.touchRotate:1)&&b.push(new ol.interaction.TouchRotate);
|
|
(goog.isDef(a.touchZoom)?a.touchZoom:1)&&b.push(new ol.interaction.TouchZoom);(goog.isDef(a.dragPan)?a.dragPan:1)&&b.push(new ol.interaction.DragPan(ol.interaction.condition.noModifierKeys,new ol.Kinetic(-0.005,0.05,100)));var c=goog.isDef(a.keyboard)?a.keyboard:!0,d=goog.isDef(a.keyboardPanOffset)?a.keyboardPanOffset:80;c&&(b.push(new ol.interaction.KeyboardPan(d)),b.push(new ol.interaction.KeyboardZoom));if(goog.isDef(a.mouseWheelZoom)?a.mouseWheelZoom:1)c=goog.isDef(a.mouseWheelZoomDelta)?a.mouseWheelZoomDelta:
|
|
1,b.push(new ol.interaction.MouseWheelZoom(c));(goog.isDef(a.shiftDragZoom)?a.shiftDragZoom:1)&&b.push(new ol.interaction.DragZoom(ol.interaction.condition.shiftKeyOnly));return b};ol.RendererHints.createFromQueryData=function(a){var b=goog.global.location.search.substring(1),a=goog.isDef(a)?a:new goog.Uri.QueryData(b);return a.containsKey("renderers")?a.get("renderers").split(","):a.containsKey("renderer")?[a.get("renderer")]:ol.DEFAULT_RENDERER_HINTS};ol.projection.addCommonProjections();ol.AnchoredElementProperty={ELEMENT:"element",MAP:"map",POSITION:"position",POSITIONING:"positioning"};ol.AnchoredElementPositioning={BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",TOP_LEFT:"top-left",TOP_RIGHT:"top-right"};
|
|
ol.AnchoredElement=function(a){ol.Object.call(this);this.element_=goog.dom.createElement(goog.dom.TagName.DIV);this.element_.style.position="absolute";this.rendered_={bottom_:"",left_:"",right_:"",top_:"",visible:!0};goog.events.listen(this,ol.Object.getChangedEventType(ol.AnchoredElementProperty.ELEMENT),this.handleElementChanged,!1,this);goog.events.listen(this,ol.Object.getChangedEventType(ol.AnchoredElementProperty.MAP),this.handleMapChanged,!1,this);goog.events.listen(this,ol.Object.getChangedEventType(ol.AnchoredElementProperty.POSITION),
|
|
this.handlePositionChanged,!1,this);goog.events.listen(this,ol.Object.getChangedEventType(ol.AnchoredElementProperty.POSITIONING),this.handlePositioningChanged,!1,this);goog.isDef(a.element)&&this.setElement(a.element);goog.isDef(a.position)&&this.setPosition(a.position);goog.isDef(a.positioning)&&this.setPositioning(a.positioning);goog.isDef(a.map)&&this.setMap(a.map)};goog.inherits(ol.AnchoredElement,ol.Object);ol.AnchoredElement.prototype.getElement=function(){return this.get(ol.AnchoredElementProperty.ELEMENT)};
|
|
goog.exportProperty(ol.AnchoredElement.prototype,"getElement",ol.AnchoredElement.prototype.getElement);ol.AnchoredElement.prototype.getMap=function(){return this.get(ol.AnchoredElementProperty.MAP)};goog.exportProperty(ol.AnchoredElement.prototype,"getMap",ol.AnchoredElement.prototype.getMap);ol.AnchoredElement.prototype.getPosition=function(){return this.get(ol.AnchoredElementProperty.POSITION)};goog.exportProperty(ol.AnchoredElement.prototype,"getPosition",ol.AnchoredElement.prototype.getPosition);
|
|
ol.AnchoredElement.prototype.getPositioning=function(){return this.get(ol.AnchoredElementProperty.POSITIONING)};goog.exportProperty(ol.AnchoredElement.prototype,"getPositioning",ol.AnchoredElement.prototype.getPositioning);ol.AnchoredElement.prototype.handleElementChanged=function(){goog.dom.removeChildren(this.element_);var a=this.getElement();goog.isDefAndNotNull(a)&&goog.dom.append(this.element_,a)};
|
|
ol.AnchoredElement.prototype.handleMapChanged=function(){goog.isNull(this.mapPostrenderListenerKey_)||(goog.dom.removeNode(this.element_),goog.events.unlistenByKey(this.mapPostrenderListenerKey_),this.mapPostrenderListenerKey_=null);var a=this.getMap();goog.isDefAndNotNull(a)&&(this.mapPostrenderListenerKey_=goog.events.listen(a,ol.MapEventType.POSTRENDER,this.handleMapPostrender,!1,this),this.updatePixelPosition_(),goog.dom.append(a.getOverlayContainer(),this.element_))};
|
|
ol.AnchoredElement.prototype.handleMapPostrender=function(){this.updatePixelPosition_()};ol.AnchoredElement.prototype.handlePositionChanged=function(){this.updatePixelPosition_()};ol.AnchoredElement.prototype.handlePositioningChanged=function(){this.updatePixelPosition_()};ol.AnchoredElement.prototype.setElement=function(a){this.set(ol.AnchoredElementProperty.ELEMENT,a)};goog.exportProperty(ol.AnchoredElement.prototype,"setElement",ol.AnchoredElement.prototype.setElement);
|
|
ol.AnchoredElement.prototype.setMap=function(a){this.set(ol.AnchoredElementProperty.MAP,a)};goog.exportProperty(ol.AnchoredElement.prototype,"setMap",ol.AnchoredElement.prototype.setMap);ol.AnchoredElement.prototype.setPosition=function(a){this.set(ol.AnchoredElementProperty.POSITION,a)};goog.exportProperty(ol.AnchoredElement.prototype,"setPosition",ol.AnchoredElement.prototype.setPosition);ol.AnchoredElement.prototype.setPositioning=function(a){this.set(ol.AnchoredElementProperty.POSITIONING,a)};
|
|
ol.AnchoredElement.prototype.updatePixelPosition_=function(){var a=this.getMap(),b=this.getPosition();if(!goog.isDef(a)||!a.isDef()||!goog.isDef(b))this.rendered_.visible&&(goog.style.showElement(this.element_,!1),this.rendered_.visible=!1);else{var b=a.getPixelFromCoordinate(b),c=a.getSize();goog.asserts.assert(goog.isDef(c));var a=this.element_.style,d=this.getPositioning();if(d==ol.AnchoredElementPositioning.BOTTOM_RIGHT||d==ol.AnchoredElementPositioning.TOP_RIGHT){""!==this.rendered_.left_&&(this.rendered_.left_=
|
|
a.left="");var e=Math.round(c.width-b.x)+"px";this.rendered_.right_!=e&&(this.rendered_.right_=a.right=e)}else""!==this.rendered_.right_&&(this.rendered_.right_=a.right=""),e=Math.round(b.x)+"px",this.rendered_.left_!=e&&(this.rendered_.left_=a.left=e);d==ol.AnchoredElementPositioning.TOP_LEFT||d==ol.AnchoredElementPositioning.TOP_RIGHT?(""!==this.rendered_.bottom_&&(this.rendered_.bottom_=a.bottom=""),b=Math.round(b.y)+"px",this.rendered_.top_!=b&&(this.rendered_.top_=a.top=b)):(""!==this.rendered_.top_&&
|
|
(this.rendered_.top_=a.top=""),b=Math.round(c.height-b.y)+"px",this.rendered_.bottom_!=b&&(this.rendered_.bottom_=a.bottom=b));this.rendered_.visible||(goog.style.showElement(this.element_,!0),this.rendered_.visible=!0)}};ol.Ellipsoid=function(a,b){this.a=a;this.flattening=b;this.b=this.a*(1-this.flattening)};
|
|
ol.Ellipsoid.prototype.vincenty=function(a,b,c,d){var c=goog.isDef(c)?c:1E-12,e=goog.isDef(d)?d:100,f=this.flattening,g=goog.math.toRadians(a.y),d=goog.math.toRadians(b.y),h=goog.math.toRadians(b.x-a.x),b=Math.atan((1-f)*Math.tan(g)),a=Math.cos(b),b=Math.sin(b),g=Math.atan((1-f)*Math.tan(d)),d=Math.cos(g),g=Math.sin(g),i=h,l,j,k;j=Infinity;for(var m,n,p;0<e;--e){k=Math.cos(i);m=Math.sin(i);n=d*m;p=a*g-b*d*k;p=Math.sqrt(n*n+p*p);if(0===p)return{distance:0,initialBearing:0,finalBearing:0};k=b*g+a*d*
|
|
k;n=Math.atan2(p,k);j=a*d*m/p;l=1-j*j;m=k-2*b*g/l;isNaN(m)&&(m=0);var q=f/16*l*(4+f*(4-3*l)),q=h+(1-q)*f*j*(n+q*p*(m+q*k*(2*m*m-1)));j=Math.abs(q-i);i=q;if(j<c)break}if(0===e)return{distance:NaN,finalBearing:NaN,initialBearing:NaN};c=this.b*this.b;f=l*(this.a*this.a-c)/c;c=1+f/16384*(4096+f*(f*(320-175*f)-768));f=f/1024*(256+f*(f*(74-47*f)-128));p=f*p*(m+f/4*(k*(2*m*m-1)-f/6*m*(4*p*p-3)*(4*m*m-3)));k=Math.cos(i);m=Math.sin(i);f=Math.atan2(d*m,a*g-b*d*k);a=Math.atan2(a*m,a*g*k-b*d);return{distance:this.b*
|
|
c*(n-p),initialBearing:goog.math.toDegrees(f),finalBearing:goog.math.toDegrees(a)}};ol.Ellipsoid.prototype.vincentyDistance=function(a,b,c,d){return this.vincenty(a,b,c,d).distance};ol.Ellipsoid.prototype.vincentyFinalBearing=function(a,b,c,d){return this.vincenty(a,b,c,d).finalBearing};ol.Ellipsoid.prototype.vincentyInitialBearing=function(a,b,c,d){return this.vincenty(a,b,c,d).initialBearing};ol.GeolocationProperty={ACCURACY:"accuracy",ALTITUDE:"altitude",ALTITUDE_ACCURACY:"altitudeAccuracy",HEADING:"heading",POSITION:"position",PROJECTION:"projection",SPEED:"speed"};
|
|
ol.Geolocation=function(a){ol.Object.call(this);this.position_=null;ol.Geolocation.SUPPORTED&&(goog.events.listen(this,ol.Object.getChangedEventType(ol.GeolocationProperty.PROJECTION),this.handleProjectionChanged_,!1,this),this.watchId_=navigator.geolocation.watchPosition(goog.bind(this.positionChange_,this),goog.bind(this.positionError_,this),a))};goog.inherits(ol.Geolocation,ol.Object);ol.Geolocation.prototype.disposeInternal=function(){navigator.geolocation.clearWatch(this.watchId_);ol.Geolocation.superClass_.disposeInternal.call(this)};
|
|
ol.Geolocation.prototype.handleProjectionChanged_=function(){var a=this.getProjection();goog.isDefAndNotNull(a)&&(this.transformFn_=ol.projection.getTransform(ol.projection.getFromCode("EPSG:4326"),a),goog.isNull(this.position_)||(a=[this.position_.x,this.position_.y],a=this.transformFn_(a,a,2),this.set(ol.GeolocationProperty.POSITION,new ol.Coordinate(a[0],a[1]))))};ol.Geolocation.SUPPORTED="geolocation"in navigator;
|
|
ol.Geolocation.prototype.positionChange_=function(a){a=a.coords;this.set(ol.GeolocationProperty.ACCURACY,a.accuracy);this.set(ol.GeolocationProperty.ALTITUDE,goog.isNull(a.altitude)?void 0:a.altitude);this.set(ol.GeolocationProperty.ALTITUDE_ACCURACY,goog.isNull(a.altitudeAccuracy)?void 0:a.altitudeAccuracy);this.set(ol.GeolocationProperty.HEADING,goog.isNull(a.heading)?void 0:goog.math.toRadians(a.heading));this.position_=new ol.Coordinate(a.longitude,a.latitude);var b=[a.longitude,a.latitude],b=
|
|
this.transformFn_(b,b,2);this.set(ol.GeolocationProperty.POSITION,new ol.Coordinate(b[0],b[1]));this.set(ol.GeolocationProperty.SPEED,goog.isNull(a.speed)?void 0:a.speed)};ol.Geolocation.prototype.positionError_=function(){};ol.Geolocation.prototype.getAccuracy=function(){return this.get(ol.GeolocationProperty.ACCURACY)};goog.exportProperty(ol.Geolocation.prototype,"getAccuracy",ol.Geolocation.prototype.getAccuracy);ol.Geolocation.prototype.getAltitude=function(){return this.get(ol.GeolocationProperty.ALTITUDE)};
|
|
goog.exportProperty(ol.Geolocation.prototype,"getAltitude",ol.Geolocation.prototype.getAltitude);ol.Geolocation.prototype.getAltitudeAccuracy=function(){return this.get(ol.GeolocationProperty.ALTITUDE_ACCURACY)};goog.exportProperty(ol.Geolocation.prototype,"getAltitudeAccuracy",ol.Geolocation.prototype.getAltitudeAccuracy);ol.Geolocation.prototype.getHeading=function(){return this.get(ol.GeolocationProperty.HEADING)};goog.exportProperty(ol.Geolocation.prototype,"getHeading",ol.Geolocation.prototype.getHeading);
|
|
ol.Geolocation.prototype.getPosition=function(){return this.get(ol.GeolocationProperty.POSITION)};goog.exportProperty(ol.Geolocation.prototype,"getPosition",ol.Geolocation.prototype.getPosition);ol.Geolocation.prototype.getProjection=function(){return this.get(ol.GeolocationProperty.PROJECTION)};goog.exportProperty(ol.Geolocation.prototype,"getProjection",ol.Geolocation.prototype.getProjection);ol.Geolocation.prototype.getSpeed=function(){return this.get(ol.GeolocationProperty.SPEED)};
|
|
goog.exportProperty(ol.Geolocation.prototype,"getSpeed",ol.Geolocation.prototype.getSpeed);ol.Geolocation.prototype.setProjection=function(a){this.set(ol.GeolocationProperty.PROJECTION,a)};goog.exportProperty(ol.Geolocation.prototype,"setProjection",ol.Geolocation.prototype.setProjection);ol.Geolocation.prototype.transformFn_=goog.functions.identity;ol.ImageTile=function(a,b,c){ol.Tile.call(this,a);this.src_=b;this.image_=new Image;goog.isNull(c)||(this.image_.crossOrigin=c);this.imageByContext_={};this.imageListenerKeys_=null};goog.inherits(ol.ImageTile,ol.Tile);ol.ImageTile.prototype.getImage=function(a){if(goog.isDef(a)){var b=goog.getUid(a);if(b in this.imageByContext_)return this.imageByContext_[b];a=goog.object.isEmpty(this.imageByContext_)?this.image_:this.image_.cloneNode(!1);return this.imageByContext_[b]=a}return this.image_};
|
|
ol.ImageTile.prototype.getKey=function(){return this.src_};ol.ImageTile.prototype.handleImageError_=function(){this.state=ol.TileState.ERROR;this.unlistenImage_();this.dispatchChangeEvent()};ol.ImageTile.prototype.handleImageLoad_=function(){this.state=ol.TileState.LOADED;this.unlistenImage_();this.dispatchChangeEvent()};
|
|
ol.ImageTile.prototype.load=function(){this.state==ol.TileState.IDLE&&(this.state=ol.TileState.LOADING,goog.asserts.assert(goog.isNull(this.imageListenerKeys_)),this.imageListenerKeys_=[goog.events.listenOnce(this.image_,goog.events.EventType.ERROR,this.handleImageError_,!1,this),goog.events.listenOnce(this.image_,goog.events.EventType.LOAD,this.handleImageLoad_,!1,this)],this.image_.src=this.src_)};
|
|
ol.ImageTile.prototype.unlistenImage_=function(){goog.asserts.assert(!goog.isNull(this.imageListenerKeys_));goog.array.forEach(this.imageListenerKeys_,goog.events.unlistenByKey);this.imageListenerKeys_=null};ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK=512;ol.TileCache=function(a){ol.structs.LRUCache.call(this);this.highWaterMark_=goog.isDef(a)?a:ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK};goog.inherits(ol.TileCache,ol.structs.LRUCache);ol.TileCache.prototype.canExpireCache=function(){return this.getCount()>this.highWaterMark_};ol.TileCache.prototype.expireCache=function(a){for(var b,c;this.canExpireCache()&&!(b=this.peekLast(),c=b.tileCoord.z.toString(),c in a&&a[c].contains(b.tileCoord));)this.pop()};ol.TileUrlFunction={};ol.TileUrlFunction.createFromTemplate=function(a){var b=/\{(\d)-(\d)\}/.exec(a)||/\{([a-z])-([a-z])\}/.exec(a);if(b){for(var c=[],d=b[1].charCodeAt(0),e=b[2].charCodeAt(0);d<=e;++d)c.push(a.replace(b[0],String.fromCharCode(d)));return ol.TileUrlFunction.createFromTemplates(c)}return function(b){return goog.isNull(b)?void 0:a.replace("{z}",b.z).replace("{x}",b.x).replace("{y}",b.y)}};
|
|
ol.TileUrlFunction.createFromTemplates=function(a){return ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(a,ol.TileUrlFunction.createFromTemplate))};ol.TileUrlFunction.createFromTileUrlFunctions=function(a){return function(b,c,d){if(!goog.isNull(b)){var e=goog.math.modulo(b.hash(),a.length);return a[e](b,c,d)}}};
|
|
ol.TileUrlFunction.createWMSParams=function(a,b,c){return function(d,e,f){if(!goog.isNull(d)){var g=e.getTileSize(d.z),d=e.getTileCoordExtent(d);return ol.source.wms.getUrl(a,b,d,g,f,c)}}};ol.TileUrlFunction.nullTileUrlFunction=function(){};ol.TileUrlFunction.withTileCoordTransform=function(a,b){return function(c,d,e){return goog.isNull(c)?void 0:b(a(c,d,e),d,e)}};ol.control.MousePosition=function(a){var b=goog.dom.createDom(goog.dom.TagName.DIV,{"class":"ol-mouse-position"});ol.control.Control.call(this,{element:b,map:a.map,target:a.target});this.projection_=a.projection;this.coordinateFormat_=a.coordinateFormat;this.undefinedHTML_=goog.isDef(a.undefinedHTML)?a.undefinedHTML:"";this.renderedHTML_=b.innerHTML;this.mapProjection_=null;this.transform_=ol.projection.identityTransform;this.listenerKeys_=this.lastMouseMovePixel_=this.renderedProjection_=null};
|
|
goog.inherits(ol.control.MousePosition,ol.control.Control);ol.control.MousePosition.prototype.handleMapPostrender=function(a){a=a.frameState;this.mapProjection_=goog.isNull(a)?null:a.view2DState.projection;this.updateHTML_(this.lastMouseMovePixel_)};ol.control.MousePosition.prototype.handleMouseMove=function(a){var b=this.getMap(),a=goog.style.getRelativePosition(a,b.getViewport()),a=new ol.Pixel(a.x,a.y);this.updateHTML_(a);this.lastMouseMovePixel_=a};
|
|
ol.control.MousePosition.prototype.handleMouseOut=function(){this.updateHTML_(null);this.lastMouseMovePixel_=null};
|
|
ol.control.MousePosition.prototype.setMap=function(a){goog.isNull(this.listenerKeys_)||(goog.array.forEach(this.listenerKeys_,goog.events.unlistenByKey),this.listenerKeys_=null);ol.control.MousePosition.superClass_.setMap.call(this,a);if(!goog.isNull(a)){var b=a.getViewport();this.listenerKeys_=[goog.events.listen(b,goog.events.EventType.MOUSEMOVE,this.handleMouseMove,!1,this),goog.events.listen(b,goog.events.EventType.MOUSEOUT,this.handleMouseOut,!1,this),goog.events.listen(a,ol.MapEventType.POSTRENDER,
|
|
this.handleMapPostrender,!1,this)]}};
|
|
ol.control.MousePosition.prototype.updateHTML_=function(a){var b=this.undefinedHTML_;goog.isNull(a)||(this.renderedProjection_!=this.mapProjection_&&(this.transform_=goog.isDef(this.projection_)?ol.projection.getTransform(this.mapProjection_,this.projection_):ol.projection.identityTransform,this.renderedProjection_=this.mapProjection_),a=this.getMap().getCoordinateFromPixel(a),goog.isNull(a)||(b=[a.x,a.y],b=this.transform_(b,b),a=new ol.Coordinate(b[0],b[1]),b=goog.isDef(this.coordinateFormat_)?this.coordinateFormat_(a):
|
|
a.toString()));if(!goog.isDef(this.renderedHTML_)||b!=this.renderedHTML_)this.renderedHTML_=this.element.innerHTML=b};ol.ellipsoid={};ol.ellipsoid.WGS84=new ol.Ellipsoid(6378137,1/298.257223563);ol.interaction.DragRotateAndZoom=function(a){ol.interaction.Drag.call(this);this.condition_=a};goog.inherits(ol.interaction.DragRotateAndZoom,ol.interaction.Drag);
|
|
ol.interaction.DragRotateAndZoom.prototype.handleDrag=function(a){var b=a.browserEvent,a=a.map,c=a.getSize(),c=new goog.math.Vec2(b.offsetX-c.width/2,c.height/2-b.offsetY),b=Math.atan2(c.y,c.x),c=c.magnitude(),d=a.getView();goog.asserts.assert(d instanceof ol.View2D);a.requestRenderFrame();if(goog.isDef(this.lastAngle_)){var e=b-this.lastAngle_;d.rotate(a,d.getRotation()-e)}this.lastAngle_=b;goog.isDef(this.lastMagnitude_)&&(b=this.lastMagnitude_*(d.getResolution()/c),d.zoomToResolution(a,b));this.lastMagnitude_=
|
|
c};ol.interaction.DragRotateAndZoom.prototype.handleDragStart=function(a){return this.condition_(a.browserEvent)?(this.lastMagnitude_=this.lastAngle_=void 0,!0):!1};ol.interaction.Keyboard=function(){ol.interaction.Interaction.call(this);this.charCodeCallbacks_={}};goog.inherits(ol.interaction.Keyboard,ol.interaction.Interaction);ol.interaction.Keyboard.prototype.addCallback=function(a,b){var c;for(c=0;c<a.length;++c)this.charCodeCallbacks_[a.charCodeAt(c)]=b};ol.interaction.Keyboard.prototype.handleMapBrowserEvent=function(a){if(a.type==goog.events.KeyHandler.EventType.KEY){var b=this.charCodeCallbacks_[a.browserEvent.charCode];b&&(b(),a.preventDefault())}};ol.parser={};ol.parser.XML=function(){this.regExes={trimSpace:/^\s*|\s*$/g,removeSpace:/\s*/g,splitSpace:/\s+/,trimComma:/\s*,\s*/g}};ol.parser.XML.prototype.readNode=function(a,b){b||(b={});var c=this.readers[a.namespaceURI]||this.readers[this.defaultNamespaceURI];if(c){var d=a.localName||a.nodeName.split(":").pop();(c=c[d]||c["*"])&&c.apply(this,[a,b])}return b};
|
|
ol.parser.XML.prototype.readChildNodes=function(a,b){b||(b={});for(var c=a.childNodes,d,e=0,f=c.length;e<f;++e)d=c[e],1==d.nodeType&&this.readNode(d,b);return b};ol.parser.XML.prototype.getChildValue=function(a,b){var c=b||"";if(a)for(var d=a.firstChild;d;d=d.nextSibling)switch(d.nodeType){case 3:case 4:c+=d.nodeValue}return c};
|
|
ol.parser.XML.prototype.getAttributeNodeNS=function(a,b,c){var d=null;if(a.getAttributeNodeNS)d=a.getAttributeNodeNS(b,c);else for(var a=a.attributes,e,f,g=0,h=a.length;g<h;++g)if(e=a[g],e.namespaceURI==b&&(f=e.prefix?e.prefix+":"+c:c,f==e.nodeName)){d=e;break}return d};ol.parser.XML.prototype.getAttributeNS=function(a,b,c){var d="";if(a.getAttributeNS)d=a.getAttributeNS(b,c)||"";else if(a=this.getAttributeNodeNS(a,b,c))d=a.nodeValue;return d};goog.dom.xml={};goog.dom.xml.MAX_XML_SIZE_KB=2048;goog.dom.xml.MAX_ELEMENT_DEPTH=256;
|
|
goog.dom.xml.createDocument=function(a,b){if(b&&!a)throw Error("Can't create document with namespace and no root tag");if(document.implementation&&document.implementation.createDocument)return document.implementation.createDocument(b||"",a||"",null);if("undefined"!=typeof ActiveXObject){var c=goog.dom.xml.createMsXmlDocument_();if(c)return a&&c.appendChild(c.createNode(goog.dom.NodeType.ELEMENT,a,b||"")),c}throw Error("Your browser does not support creating new documents");};
|
|
goog.dom.xml.loadXml=function(a){if("undefined"!=typeof DOMParser)return(new DOMParser).parseFromString(a,"application/xml");if("undefined"!=typeof ActiveXObject){var b=goog.dom.xml.createMsXmlDocument_();b.loadXML(a);return b}throw Error("Your browser does not support loading xml documents");};
|
|
goog.dom.xml.serialize=function(a){if("undefined"!=typeof XMLSerializer)return(new XMLSerializer).serializeToString(a);if(a=a.xml)return a;throw Error("Your browser does not support serializing XML documents");};
|
|
goog.dom.xml.selectSingleNode=function(a,b){if("undefined"!=typeof a.selectSingleNode){var c=goog.dom.getOwnerDocument(a);"undefined"!=typeof c.setProperty&&c.setProperty("SelectionLanguage","XPath");return a.selectSingleNode(b)}if(document.implementation.hasFeature("XPath","3.0")){var c=goog.dom.getOwnerDocument(a),d=c.createNSResolver(c.documentElement);return c.evaluate(b,a,d,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}return null};
|
|
goog.dom.xml.selectNodes=function(a,b){if("undefined"!=typeof a.selectNodes){var c=goog.dom.getOwnerDocument(a);"undefined"!=typeof c.setProperty&&c.setProperty("SelectionLanguage","XPath");return a.selectNodes(b)}if(document.implementation.hasFeature("XPath","3.0")){for(var c=goog.dom.getOwnerDocument(a),d=c.createNSResolver(c.documentElement),c=c.evaluate(b,a,d,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),d=[],e=c.snapshotLength,f=0;f<e;f++)d.push(c.snapshotItem(f));return d}return[]};
|
|
goog.dom.xml.setAttributes=function(a,b){for(var c in b)b.hasOwnProperty(c)&&a.setAttribute(c,b[c])};goog.dom.xml.createMsXmlDocument_=function(){var a=new ActiveXObject("MSXML2.DOMDocument");if(a){a.resolveExternals=!1;a.validateOnParse=!1;try{a.setProperty("ProhibitDTD",!0),a.setProperty("MaxXMLSize",goog.dom.xml.MAX_XML_SIZE_KB),a.setProperty("MaxElementDepth",goog.dom.xml.MAX_ELEMENT_DEPTH)}catch(b){}}return a};ol.parser.ogc={};
|
|
ol.parser.ogc.ExceptionReport=function(){var a=function(a,b){var e={code:a.getAttribute("exceptionCode"),locator:a.getAttribute("locator"),texts:[]};b.exceptions.push(e);this.readChildNodes(a,e)},b=function(a,b){var e=this.getChildValue(a);b.texts.push(e)};this.readers={"http://www.opengis.net/ogc":{ServiceExceptionReport:function(a,b){b.exceptionReport={};b.exceptionReport.exceptions=[];this.readChildNodes(a,b.exceptionReport)},ServiceException:function(a,b){var e={};e.code=a.getAttribute("code");e.locator=
|
|
a.getAttribute("locator");e.text=this.getChildValue(a);b.exceptions.push(e)}},"http://www.opengis.net/ows":{ExceptionReport:function(a,b){b.success=!1;b.exceptionReport={version:a.getAttribute("version"),language:a.getAttribute("language"),exceptions:[]};this.readChildNodes(a,b.exceptionReport)},Exception:function(b,d){a.apply(this,arguments)},ExceptionText:function(a,d){b.apply(this,arguments)}},"http://www.opengis.net/ows/1.1":{ExceptionReport:function(a,b){b.exceptionReport={version:a.getAttribute("version"),
|
|
language:a.getAttribute("xml:lang"),exceptions:[]};this.readChildNodes(a,b.exceptionReport)},Exception:function(b,d){a.apply(this,arguments)},ExceptionText:function(a,d){b.apply(this,arguments)}}};ol.parser.XML.call(this)};goog.inherits(ol.parser.ogc.ExceptionReport,ol.parser.XML);ol.parser.ogc.ExceptionReport.prototype.read=function(a){"string"==typeof a&&(a=goog.dom.xml.loadXml(a));var b={exceptionReport:null};a&&this.readChildNodes(a,b);return b};ol.parser.ogc.OWSCommon_v1=function(){this.readers={"http://www.opengis.net/ows":{ServiceIdentification:function(a,b){b.serviceIdentification={};this.readChildNodes(a,b.serviceIdentification)},Title:function(a,b){b.title=this.getChildValue(a)},Abstract:function(a,b){b["abstract"]=this.getChildValue(a)},Keywords:function(a,b){b.keywords={};this.readChildNodes(a,b.keywords)},Keyword:function(a,b){b[this.getChildValue(a)]=!0},ServiceType:function(a,b){b.serviceType={codeSpace:a.getAttribute("codeSpace"),
|
|
value:this.getChildValue(a)}},ServiceTypeVersion:function(a,b){b.serviceTypeVersion=this.getChildValue(a)},Fees:function(a,b){b.fees=this.getChildValue(a)},AccessConstraints:function(a,b){b.accessConstraints=this.getChildValue(a)},ServiceProvider:function(a,b){b.serviceProvider={};this.readChildNodes(a,b.serviceProvider)},ProviderName:function(a,b){b.providerName=this.getChildValue(a)},ProviderSite:function(a,b){b.providerSite=this.getAttributeNS(a,"http://www.w3.org/1999/xlink","href")},ServiceContact:function(a,
|
|
b){b.serviceContact={};this.readChildNodes(a,b.serviceContact)},IndividualName:function(a,b){b.individualName=this.getChildValue(a)},PositionName:function(a,b){b.positionName=this.getChildValue(a)},ContactInfo:function(a,b){b.contactInfo={};this.readChildNodes(a,b.contactInfo)},Phone:function(a,b){b.phone={};this.readChildNodes(a,b.phone)},Voice:function(a,b){b.voice=this.getChildValue(a)},Address:function(a,b){b.address={};this.readChildNodes(a,b.address)},DeliveryPoint:function(a,b){b.deliveryPoint=
|
|
this.getChildValue(a)},City:function(a,b){b.city=this.getChildValue(a)},AdministrativeArea:function(a,b){b.administrativeArea=this.getChildValue(a)},PostalCode:function(a,b){b.postalCode=this.getChildValue(a)},Country:function(a,b){b.country=this.getChildValue(a)},ElectronicMailAddress:function(a,b){b.electronicMailAddress=this.getChildValue(a)},Role:function(a,b){b.role=this.getChildValue(a)},OperationsMetadata:function(a,b){b.operationsMetadata={};this.readChildNodes(a,b.operationsMetadata)},Operation:function(a,
|
|
b){var c=a.getAttribute("name");b[c]={};this.readChildNodes(a,b[c])},DCP:function(a,b){b.dcp={};this.readChildNodes(a,b.dcp)},HTTP:function(a,b){b.http={};this.readChildNodes(a,b.http)},Get:function(a,b){b.get||(b.get=[]);var c={url:this.getAttributeNS(a,"http://www.w3.org/1999/xlink","href")};this.readChildNodes(a,c);b.get.push(c)},Post:function(a,b){b.post||(b.post=[]);var c={url:this.getAttributeNS(a,"http://www.w3.org/1999/xlink","href")};this.readChildNodes(a,c);b.post.push(c)},Parameter:function(a,
|
|
b){b.parameters||(b.parameters={});var c=a.getAttribute("name");b.parameters[c]={};this.readChildNodes(a,b.parameters[c])},Constraint:function(a,b){b.constraints||(b.constraints={});var c=a.getAttribute("name");b.constraints[c]={};this.readChildNodes(a,b.constraints[c])},Value:function(a,b){b[this.getChildValue(a)]=!0},OutputFormat:function(a,b){b.formats.push({value:this.getChildValue(a)});this.readChildNodes(a,b)},WGS84BoundingBox:function(a,b){var c={};c.crs=a.getAttribute("crs");b.BoundingBox?
|
|
b.BoundingBox.push(c):(b.projection=c.crs,c=b);this.readChildNodes(a,c)},BoundingBox:function(a,b){this.readers["http://www.opengis.net/ows"].WGS84BoundingBox.apply(this,[a,b])},LowerCorner:function(a,b){var c=this.getChildValue(a).replace(this.regExes.trimSpace,""),c=c.replace(this.regExes.trimComma,","),c=c.split(this.regExes.splitSpace);b.left=c[0];b.bottom=c[1]},UpperCorner:function(a,b){var c=this.getChildValue(a).replace(this.regExes.trimSpace,""),c=c.replace(this.regExes.trimComma,","),c=c.split(this.regExes.splitSpace);
|
|
b.right=c[0];b.top=c[1];b.bounds=new ol.Extent(parseFloat(b.left),parseFloat(b.bottom),parseFloat(b.right),parseFloat(b.top));delete b.left;delete b.bottom;delete b.right;delete b.top},Language:function(a,b){b.language=this.getChildValue(a)}}};ol.parser.XML.call(this)};goog.inherits(ol.parser.ogc.OWSCommon_v1,ol.parser.XML);ol.parser.ogc.OWSCommon_v1_1_0=function(){ol.parser.ogc.OWSCommon_v1.call(this);this.readers["http://www.opengis.net/ows/1.1"]=this.readers["http://www.opengis.net/ows"];goog.object.extend(this.readers["http://www.opengis.net/ows/1.1"],{AllowedValues:function(a,b){b.allowedValues={};this.readChildNodes(a,b.allowedValues)},AnyValue:function(a,b){b.anyValue=!0},DataType:function(a,b){b.dataType=this.getChildValue(a)},Range:function(a,b){b.range={};this.readChildNodes(a,b.range)},MinimumValue:function(a,
|
|
b){b.minValue=this.getChildValue(a)},MaximumValue:function(a,b){b.maxValue=this.getChildValue(a)},Identifier:function(a,b){b.identifier=this.getChildValue(a)},SupportedCRS:function(a,b){b.supportedCRS=this.getChildValue(a)}})};goog.inherits(ol.parser.ogc.OWSCommon_v1_1_0,ol.parser.ogc.OWSCommon_v1);ol.parser.ogc.Versioned=function(a){this.options=a=a||{};this.defaultVersion=a.defaultVersion||null;this.version=a.version;this.profile=a.profile;this.allowFallback=void 0!==a.allowFallback?a.allowFallback:!1;this.stringifyOutput=void 0!==a.stringifyOutput?a.stringifyOutput:!1};ol.parser.ogc.Versioned.prototype.getVersion=function(a,b){var c;a?(c=this.version,c||(c=a.getAttribute("version"),c||(c=this.defaultVersion))):c=b&&b.version||this.version||this.defaultVersion;return c};
|
|
ol.parser.ogc.Versioned.prototype.getParser=function(a){var a=a||this.defaultVersion,b=this.profile?"_"+this.profile:"";if(!this.parser||this.parser.VERSION!=a){var c=this.parsers["v"+a.replace(/\./g,"_")+b];if(!c&&(""!==b&&this.allowFallback&&(b="",c=this.parsers["v"+a.replace(/\./g,"_")+b]),!c))throw"Can't find a parser for version "+a+b;this.parser=new c(this.options)}return this.parser};
|
|
ol.parser.ogc.Versioned.prototype.write=function(a,b){var c=this.getVersion(null,b);this.parser=this.getParser(c);c=this.parser.write(a,b);return!1===this.stringifyOutput?c:goog.dom.xml.serialize(c)};
|
|
ol.parser.ogc.Versioned.prototype.read=function(a,b){"string"==typeof a&&(a=goog.dom.xml.loadXml(a));var c=this.getVersion(a.documentElement);this.parser=this.getParser(c);var d=this.parser.read(a,b),e=this.parser.errorProperty||null;null!==e&&void 0===d[e]&&(e=new ol.parser.ogc.ExceptionReport,d.error=e.read(a));d.version=c;return d};ol.parser.ogc.WMSCapabilities_v1=function(){this.defaultNamespaceURI="http://www.opengis.net/wms";this.errorProperty="service";this.readers={"http://www.opengis.net/wms":{Service:function(a,b){b.service={};this.readChildNodes(a,b.service)},Name:function(a,b){b.name=this.getChildValue(a)},Title:function(a,b){b.title=this.getChildValue(a)},Abstract:function(a,b){b["abstract"]=this.getChildValue(a)},BoundingBox:function(a){var b={};b.bbox=[parseFloat(a.getAttribute("minx")),parseFloat(a.getAttribute("miny")),
|
|
parseFloat(a.getAttribute("maxx")),parseFloat(a.getAttribute("maxy"))];a={x:parseFloat(a.getAttribute("resx")),y:parseFloat(a.getAttribute("resy"))};if(!isNaN(a.x)||!isNaN(a.y))b.res=a;return b},OnlineResource:function(a,b){b.href=this.getAttributeNS(a,"http://www.w3.org/1999/xlink","href")},ContactInformation:function(a,b){b.contactInformation={};this.readChildNodes(a,b.contactInformation)},ContactPersonPrimary:function(a,b){b.personPrimary={};this.readChildNodes(a,b.personPrimary)},ContactPerson:function(a,
|
|
b){b.person=this.getChildValue(a)},ContactOrganization:function(a,b){b.organization=this.getChildValue(a)},ContactPosition:function(a,b){b.position=this.getChildValue(a)},ContactAddress:function(a,b){b.contactAddress={};this.readChildNodes(a,b.contactAddress)},AddressType:function(a,b){b.type=this.getChildValue(a)},Address:function(a,b){b.address=this.getChildValue(a)},City:function(a,b){b.city=this.getChildValue(a)},StateOrProvince:function(a,b){b.stateOrProvince=this.getChildValue(a)},PostCode:function(a,
|
|
b){b.postcode=this.getChildValue(a)},Country:function(a,b){b.country=this.getChildValue(a)},ContactVoiceTelephone:function(a,b){b.phone=this.getChildValue(a)},ContactFacsimileTelephone:function(a,b){b.fax=this.getChildValue(a)},ContactElectronicMailAddress:function(a,b){b.email=this.getChildValue(a)},Fees:function(a,b){var c=this.getChildValue(a);c&&"none"!=c.toLowerCase()&&(b.fees=c)},AccessConstraints:function(a,b){var c=this.getChildValue(a);c&&"none"!=c.toLowerCase()&&(b.accessConstraints=c)},
|
|
Capability:function(a,b){b.capability={};b.capability.nestedLayers=[];b.capability.layers=[];this.readChildNodes(a,b.capability)},Request:function(a,b){b.request={};this.readChildNodes(a,b.request)},GetCapabilities:function(a,b){b.getcapabilities={};b.getcapabilities.formats=[];this.readChildNodes(a,b.getcapabilities)},Format:function(a,b){goog.isArray(b.formats)?b.formats.push(this.getChildValue(a)):b.format=this.getChildValue(a)},DCPType:function(a,b){this.readChildNodes(a,b)},HTTP:function(a,b){this.readChildNodes(a,
|
|
b)},Get:function(a,b){b.get={};this.readChildNodes(a,b.get)},Post:function(a,b){b.post={};this.readChildNodes(a,b.post)},GetMap:function(a,b){b.getmap={};b.getmap.formats=[];this.readChildNodes(a,b.getmap)},GetFeatureInfo:function(a,b){b.getfeatureinfo={};b.getfeatureinfo.formats=[];this.readChildNodes(a,b.getfeatureinfo)},Exception:function(a,b){b.exception={};b.exception.formats=[];this.readChildNodes(a,b.exception)},Layer:function(a,b){var c,d;b.capability?(d=b.capability,c=b):d=b;var e=a.getAttributeNode("queryable"),
|
|
f=e&&e.specified?a.getAttribute("queryable"):null,g=(e=a.getAttributeNode("cascaded"))&&e.specified?a.getAttribute("cascaded"):null,h=(e=a.getAttributeNode("opaque"))&&e.specified?a.getAttribute("opaque"):null,i=a.getAttribute("noSubsets"),l=a.getAttribute("fixedWidth"),j=a.getAttribute("fixedHeight"),e=c||{},f={nestedLayers:[],styles:c?[].concat(c.styles):[],srs:{},metadataURLs:[],bbox:{},llbbox:e.llbbox,dimensions:{},authorityURLs:{},identifiers:{},keywords:[],queryable:f&&""!==f?"1"===f||"true"===
|
|
f:e.queryable||!1,cascaded:null!==g?parseInt(g,10):e.cascaded||0,opaque:h?"1"===h||"true"===h:e.opaque||!1,noSubsets:null!==i?"1"===i||"true"===i:e.noSubsets||!1,fixedWidth:null!==l?parseInt(l,10):e.fixedWidth||0,fixedHeight:null!==j?parseInt(j,10):e.fixedHeight||0,minScale:e.minScale,maxScale:e.maxScale,attribution:e.attribution};c&&(goog.object.extend(f.srs,e.srs),goog.object.extend(f.bbox,e.bbox),goog.object.extend(f.dimensions,e.dimensions),goog.object.extend(f.authorityURLs,e.authorityURLs));
|
|
b.nestedLayers.push(f);f.capability=d;this.readChildNodes(a,f);delete f.capability;f.name&&(c=f.name.split(":"),g=d.request,e=g.getfeatureinfo,0<c.length&&(f.prefix=c[0]),d.layers.push(f),void 0===f.formats&&(f.formats=g.getmap.formats),void 0===f.infoFormats&&e&&(f.infoFormats=e.formats))},Attribution:function(a,b){b.attribution={};this.readChildNodes(a,b.attribution)},LogoURL:function(a,b){b.logo={width:a.getAttribute("width"),height:a.getAttribute("height")};this.readChildNodes(a,b.logo)},Style:function(a,
|
|
b){var c={};b.styles.push(c);this.readChildNodes(a,c)},LegendURL:function(a,b){var c={width:a.getAttribute("width"),height:a.getAttribute("height")};b.legend=c;this.readChildNodes(a,c)},MetadataURL:function(a,b){var c={type:a.getAttribute("type")};b.metadataURLs.push(c);this.readChildNodes(a,c)},DataURL:function(a,b){b.dataURL={};this.readChildNodes(a,b.dataURL)},FeatureListURL:function(a,b){b.featureListURL={};this.readChildNodes(a,b.featureListURL)},AuthorityURL:function(a,b){var c=a.getAttribute("name"),
|
|
d={};this.readChildNodes(a,d);b.authorityURLs[c]=d.href},Identifier:function(a,b){var c=a.getAttribute("authority");b.identifiers[c]=this.getChildValue(a)},KeywordList:function(a,b){this.readChildNodes(a,b)},SRS:function(a,b){b.srs[this.getChildValue(a)]=!0}}};ol.parser.XML.call(this)};goog.inherits(ol.parser.ogc.WMSCapabilities_v1,ol.parser.XML);
|
|
ol.parser.ogc.WMSCapabilities_v1.prototype.read=function(a){"string"==typeof a&&(a=goog.dom.xml.loadXml(a));a&&9==a.nodeType&&(a=a.documentElement);var b={};this.readNode(a,b);return b};ol.parser.ogc.WMSCapabilities_v1_1=function(){ol.parser.ogc.WMSCapabilities_v1.call(this);var a=this.readers["http://www.opengis.net/wms"].BoundingBox;goog.object.extend(this.readers["http://www.opengis.net/wms"],{WMT_MS_Capabilities:function(a,c){this.readChildNodes(a,c)},Keyword:function(a,c){c.keywords&&c.keywords.push({value:this.getChildValue(a)})},DescribeLayer:function(a,c){c.describelayer={formats:[]};this.readChildNodes(a,c.describelayer)},GetLegendGraphic:function(a,c){c.getlegendgraphic=
|
|
{formats:[]};this.readChildNodes(a,c.getlegendgraphic)},GetStyles:function(a,c){c.getstyles={formats:[]};this.readChildNodes(a,c.getstyles)},PutStyles:function(a,c){c.putstyles={formats:[]};this.readChildNodes(a,c.putstyles)},UserDefinedSymbolization:function(a,c){var d={supportSLD:1==parseInt(a.getAttribute("SupportSLD"),10),userLayer:1==parseInt(a.getAttribute("UserLayer"),10),userStyle:1==parseInt(a.getAttribute("UserStyle"),10),remoteWFS:1==parseInt(a.getAttribute("RemoteWFS"),10)};c.userSymbols=
|
|
d},LatLonBoundingBox:function(a,c){c.llbbox=[parseFloat(a.getAttribute("minx")),parseFloat(a.getAttribute("miny")),parseFloat(a.getAttribute("maxx")),parseFloat(a.getAttribute("maxy"))]},BoundingBox:function(b,c){var d=a.apply(this,arguments);d.srs=b.getAttribute("SRS");c.bbox[d.srs]=d},ScaleHint:function(a,c){var d=parseFloat(a.getAttribute("min")),e=parseFloat(a.getAttribute("max")),f=Math.pow(2,0.5),g=25.4/0.28;0!==d&&(c.maxScale=parseFloat(39.37*(d/f)*g));e!=Number.POSITIVE_INFINITY&&(c.minScale=
|
|
parseFloat(39.37*(e/f)*g))},Dimension:function(a,c){var d={name:a.getAttribute("name").toLowerCase(),units:a.getAttribute("units"),unitsymbol:a.getAttribute("unitSymbol")};c.dimensions[d.name]=d},Extent:function(a,c){var d=a.getAttribute("name").toLowerCase();if(d in c.dimensions){d=c.dimensions[d];d.nearestVal="1"===a.getAttribute("nearestValue");d.multipleVal="1"===a.getAttribute("multipleValues");d.current="1"===a.getAttribute("current");d["default"]=a.getAttribute("default")||"";var e=this.getChildValue(a);
|
|
d.values=e.split(",")}}})};goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1,ol.parser.ogc.WMSCapabilities_v1);ol.parser.ogc.WMSCapabilities_v1_1_0=function(){ol.parser.ogc.WMSCapabilities_v1_1.call(this);this.version="1.1.0";goog.object.extend(this.readers["http://www.opengis.net/wms"],{SRS:function(a,b){for(var c=this.getChildValue(a).split(/ +/),d=0,e=c.length;d<e;d++)b.srs[c[d]]=!0}})};goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_0,ol.parser.ogc.WMSCapabilities_v1_1);ol.parser.ogc.WMSCapabilities_v1_1_1=function(){ol.parser.ogc.WMSCapabilities_v1_1.call(this);this.version="1.1.1";goog.object.extend(this.readers["http://www.opengis.net/wms"],{SRS:function(a,b){b.srs[this.getChildValue(a)]=!0}})};goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_1,ol.parser.ogc.WMSCapabilities_v1_1);ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC=function(){ol.parser.ogc.WMSCapabilities_v1_1_1.call(this);this.profile="WMSC";goog.object.extend(this.readers["http://www.opengis.net/wms"],{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;d<e;d++)""!==c[d]&&
|
|
b.resolutions.push(parseFloat(c[d]))},Width:function(a,b){b.width=parseInt(this.getChildValue(a),10)},Height:function(a,b){b.height=parseInt(this.getChildValue(a),10)},Layers:function(a,b){b.layers=this.getChildValue(a)},Styles:function(a,b){b.styles=this.getChildValue(a)}})};goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC,ol.parser.ogc.WMSCapabilities_v1_1_1);ol.parser.ogc.WMSCapabilities_v1_3_0=function(){ol.parser.ogc.WMSCapabilities_v1.call(this);var a=this.readers["http://www.opengis.net/wms"].BoundingBox;goog.object.extend(this.readers["http://www.opengis.net/wms"],{WMS_Capabilities:function(a,c){this.readChildNodes(a,c)},LayerLimit:function(a,c){c.layerLimit=parseInt(this.getChildValue(a),10)},MaxWidth:function(a,c){c.maxWidth=parseInt(this.getChildValue(a),10)},MaxHeight:function(a,c){c.maxHeight=parseInt(this.getChildValue(a),10)},BoundingBox:function(b,
|
|
c){var d=a.apply(this,arguments);d.srs=b.getAttribute("CRS");c.bbox[d.srs]=d},CRS:function(a,c){this.readers["http://www.opengis.net/wms"].SRS.apply(this,arguments)},EX_GeographicBoundingBox:function(a,c){c.llbbox=[];this.readChildNodes(a,c.llbbox)},westBoundLongitude:function(a,c){c[0]=this.getChildValue(a)},eastBoundLongitude:function(a,c){c[2]=this.getChildValue(a)},southBoundLatitude:function(a,c){c[1]=this.getChildValue(a)},northBoundLatitude:function(a,c){c[3]=this.getChildValue(a)},MinScaleDenominator:function(a,
|
|
c){c.maxScale=parseFloat(this.getChildValue(a)).toPrecision(16)},MaxScaleDenominator:function(a,c){c.minScale=parseFloat(this.getChildValue(a)).toPrecision(16)},Dimension:function(a,c){var d={name:a.getAttribute("name").toLowerCase(),units:a.getAttribute("units"),unitsymbol:a.getAttribute("unitSymbol"),nearestVal:"1"===a.getAttribute("nearestValue"),multipleVal:"1"===a.getAttribute("multipleValues"),"default":a.getAttribute("default")||"",current:"1"===a.getAttribute("current"),values:this.getChildValue(a).split(",")};
|
|
c.dimensions[d.name]=d},Keyword:function(a,c){var d={value:this.getChildValue(a),vocabulary:a.getAttribute("vocabulary")};c.keywords&&c.keywords.push(d)}});this.readers.sld={UserDefinedSymbolization:function(a,c){this.readers["http://www.opengis.net/wms"].UserDefinedSymbolization.apply(this,arguments);var d=a.getAttribute("InlineFeature");c.userSymbols.inlineFeature=1==parseInt(d,10);d=a.getAttribute("RemoteWCS");c.userSymbols.remoteWCS=1==parseInt(d,10)},DescribeLayer:function(a,c){this.readers["http://www.opengis.net/wms"].DescribeLayer.apply(this,
|
|
arguments)},GetLegendGraphic:function(a,c){this.readers["http://www.opengis.net/wms"].GetLegendGraphic.apply(this,arguments)}}};goog.inherits(ol.parser.ogc.WMSCapabilities_v1_3_0,ol.parser.ogc.WMSCapabilities_v1);ol.ENABLE_WMSCAPS_1_1_0=!0;ol.ENABLE_WMSCAPS_1_1_1=!0;ol.ENABLE_WMSCAPS_1_3_0=!0;ol.ENABLE_WMSCAPS_1_1_1_WMSC=!0;
|
|
ol.parser.ogc.WMSCapabilities=function(a){a=a||{};a.defaultVersion="1.1.1";this.parsers={};ol.ENABLE_WMSCAPS_1_1_0&&(this.parsers.v1_1_0=ol.parser.ogc.WMSCapabilities_v1_1_0);ol.ENABLE_WMSCAPS_1_1_1&&(this.parsers.v1_1_1=ol.parser.ogc.WMSCapabilities_v1_1_1);ol.ENABLE_WMSCAPS_1_1_1_WMSC&&(this.parsers.v1_1_1_WMSC=ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC);ol.ENABLE_WMSCAPS_1_3_0&&(this.parsers.v1_3_0=ol.parser.ogc.WMSCapabilities_v1_3_0);ol.parser.ogc.Versioned.call(this,a)};
|
|
goog.inherits(ol.parser.ogc.WMSCapabilities,ol.parser.ogc.Versioned);ol.parser.ogc.WMTSCapabilities_v1_0_0=function(){this.readers={"http://www.opengis.net/wmts/1.0":{Capabilities:function(a,c){this.readChildNodes(a,c)},Contents:function(a,c){c.contents={};c.contents.layers=[];c.contents.tileMatrixSets={};this.readChildNodes(a,c.contents)},Layer:function(a,c){var d={styles:[],formats:[],dimensions:[],tileMatrixSetLinks:[],layers:[]};this.readChildNodes(a,d);c.layers.push(d)},Style:function(a,c){var d={};d.isDefault="true"===a.getAttribute("isDefault");this.readChildNodes(a,
|
|
d);c.styles.push(d)},Format:function(a,c){c.formats.push(this.getChildValue(a))},TileMatrixSetLink:function(a,c){var d={};this.readChildNodes(a,d);c.tileMatrixSetLinks.push(d)},TileMatrixSet:function(a,c){if(c.layers){var d={matrixIds:[]};this.readChildNodes(a,d);c.tileMatrixSets[d.identifier]=d}else c.tileMatrixSet=this.getChildValue(a)},TileMatrix:function(a,c){var d={supportedCRS:c.supportedCRS};this.readChildNodes(a,d);c.matrixIds.push(d)},ScaleDenominator:function(a,c){c.scaleDenominator=parseFloat(this.getChildValue(a))},
|
|
TopLeftCorner:function(a,c){var d=this.getChildValue(a).split(" "),e=ol.projection.getFromCode(c.supportedCRS).getAxisOrientation();c.topLeftCorner=ol.Coordinate.fromProjectedArray([parseFloat(d[0]),parseFloat(d[1])],e)},TileWidth:function(a,c){c.tileWidth=parseInt(this.getChildValue(a),10)},TileHeight:function(a,c){c.tileHeight=parseInt(this.getChildValue(a),10)},MatrixWidth:function(a,c){c.matrixWidth=parseInt(this.getChildValue(a),10)},MatrixHeight:function(a,c){c.matrixHeight=parseInt(this.getChildValue(a),
|
|
10)},ResourceURL:function(a,c){var d=a.getAttribute("resourceType"),e=a.getAttribute("format"),f=a.getAttribute("template");c.resourceUrls||(c.resourceUrls={});c.resourceUrls[d]||(c.resourceUrls[d]={});c.resourceUrls[d][e]||(c.resourceUrls[d][e]=[]);c.resourceUrls[d][e].push(f)},WSDL:function(a,c){c.wsdl={};c.wsdl.href=this.getAttributeNS(a,"http://www.w3.org/1999/xlink","href")},ServiceMetadataURL:function(a,c){c.serviceMetadataUrl={};c.serviceMetadataUrl.href=this.getAttributeNS(a,"http://www.w3.org/1999/xlink",
|
|
"href")},LegendURL:function(a,c){c.legend={};c.legend.href=this.getAttributeNS(a,"http://www.w3.org/1999/xlink","href");c.legend.format=a.getAttribute("format")},Dimension:function(a,c){var d={values:[]};this.readChildNodes(a,d);c.dimensions.push(d)},Default:function(a,c){c["default"]=this.getChildValue(a)},Value:function(a,c){c.values.push(this.getChildValue(a))}}};var a=new ol.parser.ogc.OWSCommon_v1_1_0;this.readers["http://www.opengis.net/ows/1.1"]=a.readers["http://www.opengis.net/ows/1.1"];
|
|
ol.parser.XML.call(this)};goog.inherits(ol.parser.ogc.WMTSCapabilities_v1_0_0,ol.parser.XML);ol.parser.ogc.WMTSCapabilities_v1_0_0.prototype.read=function(a){"string"==typeof a&&(a=goog.dom.xml.loadXml(a));a&&9==a.nodeType&&(a=a.documentElement);var b={};this.readNode(a,b);return b};ol.parser.ogc.WMTSCapabilities=function(a){a=a||{};a.defaultVersion="1.0.0";this.parsers={};this.parsers.v1_0_0=ol.parser.ogc.WMTSCapabilities_v1_0_0;ol.parser.ogc.Versioned.call(this,a)};goog.inherits(ol.parser.ogc.WMTSCapabilities,ol.parser.ogc.Versioned);/*
|
|
Portions of this code are from MochiKit, received by
|
|
The Closure Authors under the MIT license. All other code is Copyright
|
|
2005-2009 The Closure Authors. All Rights Reserved.
|
|
*/
|
|
goog.async.Deferred=function(a,b){this.chain_=[];this.canceller_=a;this.defaultScope_=b||null};goog.async.Deferred.prototype.fired_=!1;goog.async.Deferred.prototype.hadError_=!1;goog.async.Deferred.prototype.paused_=0;goog.async.Deferred.prototype.silentlyCancelled_=!1;goog.async.Deferred.prototype.chained_=!1;goog.async.Deferred.prototype.branches_=0;
|
|
goog.async.Deferred.prototype.cancel=function(a){if(this.hasFired())this.result_ instanceof goog.async.Deferred&&this.result_.cancel();else{if(this.parent_){var b=this.parent_;delete this.parent_;a?b.cancel(a):b.branchCancel_()}this.canceller_?this.canceller_.call(this.defaultScope_,this):this.silentlyCancelled_=!0;this.hasFired()||this.errback(new goog.async.Deferred.CancelledError(this))}};goog.async.Deferred.prototype.branchCancel_=function(){this.branches_--;0>=this.branches_&&this.cancel()};
|
|
goog.async.Deferred.prototype.pause_=function(){this.paused_++};goog.async.Deferred.prototype.unpause_=function(){this.paused_--;0==this.paused_&&this.hasFired()&&this.fire_()};goog.async.Deferred.prototype.continue_=function(a,b){this.resback_(a,b);this.unpause_()};goog.async.Deferred.prototype.resback_=function(a,b){this.fired_=!0;this.result_=b;this.hadError_=!a;this.fire_()};
|
|
goog.async.Deferred.prototype.check_=function(){if(this.hasFired()){if(!this.silentlyCancelled_)throw new goog.async.Deferred.AlreadyCalledError(this);this.silentlyCancelled_=!1}};goog.async.Deferred.prototype.callback=function(a){this.check_();this.assertNotDeferred_(a);this.resback_(!0,a)};goog.async.Deferred.prototype.errback=function(a){this.check_();this.assertNotDeferred_(a);this.resback_(!1,a)};
|
|
goog.async.Deferred.prototype.assertNotDeferred_=function(a){goog.asserts.assert(!(a instanceof goog.async.Deferred),"Deferred instances can only be chained if they are the result of a callback")};goog.async.Deferred.prototype.addCallback=function(a,b){return this.addCallbacks(a,null,b)};goog.async.Deferred.prototype.addErrback=function(a,b){return this.addCallbacks(null,a,b)};
|
|
goog.async.Deferred.prototype.addCallbacks=function(a,b,c){goog.asserts.assert(!this.chained_,"Chained Deferreds can not be re-used");this.chain_.push([a,b,c]);this.hasFired()&&this.fire_();return this};goog.async.Deferred.prototype.chainDeferred=function(a){this.addCallbacks(a.callback,a.errback,a);return this};goog.async.Deferred.prototype.awaitDeferred=function(a){return this.addCallback(goog.bind(a.branch,a))};
|
|
goog.async.Deferred.prototype.branch=function(a){var b=new goog.async.Deferred;this.chainDeferred(b);a&&(b.parent_=this,this.branches_++);return b};goog.async.Deferred.prototype.addBoth=function(a,b){return this.addCallbacks(a,a,b)};goog.async.Deferred.prototype.hasFired=function(){return this.fired_};goog.async.Deferred.prototype.isError=function(a){return a instanceof Error};goog.async.Deferred.prototype.hasErrback_=function(){return goog.array.some(this.chain_,function(a){return goog.isFunction(a[1])})};
|
|
goog.async.Deferred.prototype.fire_=function(){this.unhandledExceptionTimeoutId_&&(this.hasFired()&&this.hasErrback_())&&(goog.global.clearTimeout(this.unhandledExceptionTimeoutId_),delete this.unhandledExceptionTimeoutId_);this.parent_&&(this.parent_.branches_--,delete this.parent_);for(var a=this.result_,b=!1,c=!1;this.chain_.length&&0==this.paused_;){var d=this.chain_.shift(),e=d[0],f=d[1],d=d[2];if(e=this.hadError_?f:e)try{var g=e.call(d||this.defaultScope_,a);goog.isDef(g)&&(this.hadError_=this.hadError_&&
|
|
(g==a||this.isError(g)),this.result_=a=g);a instanceof goog.async.Deferred&&(c=!0,this.pause_())}catch(h){a=h,this.hadError_=!0,this.hasErrback_()||(b=!0)}}this.result_=a;c&&this.paused_&&(a.addCallbacks(goog.bind(this.continue_,this,!0),goog.bind(this.continue_,this,!1)),a.chained_=!0);b&&(this.unhandledExceptionTimeoutId_=goog.global.setTimeout(function(){throw a;},0))};goog.async.Deferred.succeed=function(a){var b=new goog.async.Deferred;b.callback(a);return b};
|
|
goog.async.Deferred.fail=function(a){var b=new goog.async.Deferred;b.errback(a);return b};goog.async.Deferred.cancelled=function(){var a=new goog.async.Deferred;a.cancel();return a};goog.async.Deferred.when=function(a,b,c){return a instanceof goog.async.Deferred?a.branch(!0).addCallback(b,c):goog.async.Deferred.succeed(a).addCallback(b,c)};goog.async.Deferred.AlreadyCalledError=function(a){goog.debug.Error.call(this);this.deferred=a};goog.inherits(goog.async.Deferred.AlreadyCalledError,goog.debug.Error);
|
|
goog.async.Deferred.AlreadyCalledError.prototype.message="Deferred has already fired";goog.async.Deferred.AlreadyCalledError.prototype.name="AlreadyCalledError";goog.async.Deferred.CancelledError=function(a){goog.debug.Error.call(this);this.deferred=a};goog.inherits(goog.async.Deferred.CancelledError,goog.debug.Error);goog.async.Deferred.CancelledError.prototype.message="Deferred was cancelled";goog.async.Deferred.CancelledError.prototype.name="CancelledError";goog.net={};goog.net.jsloader={};goog.net.jsloader.GLOBAL_VERIFY_OBJS_="closure_verification";goog.net.jsloader.DEFAULT_TIMEOUT=5E3;goog.net.jsloader.scriptsToLoad_=[];goog.net.jsloader.loadMany=function(a,b){if(a.length){var c=goog.net.jsloader.scriptsToLoad_.length;goog.array.extend(goog.net.jsloader.scriptsToLoad_,a);if(!c){var a=goog.net.jsloader.scriptsToLoad_,d=function(){var c=a.shift(),c=goog.net.jsloader.load(c,b);a.length&&c.addBoth(d)};d()}}};
|
|
goog.net.jsloader.load=function(a,b){var c=b||{},d=c.document||document,e=goog.dom.createElement(goog.dom.TagName.SCRIPT),f={script_:e,timeout_:void 0},g=new goog.async.Deferred(goog.net.jsloader.cancel_,f),h=null,i=goog.isDefAndNotNull(c.timeout)?c.timeout:goog.net.jsloader.DEFAULT_TIMEOUT;0<i&&(h=window.setTimeout(function(){goog.net.jsloader.cleanup_(e,!0);g.errback(new goog.net.jsloader.Error(goog.net.jsloader.ErrorCode.TIMEOUT,"Timeout reached for loading script "+a))},i),f.timeout_=h);e.onload=
|
|
e.onreadystatechange=function(){if(!e.readyState||"loaded"==e.readyState||"complete"==e.readyState)goog.net.jsloader.cleanup_(e,c.cleanupWhenDone||!1,h),g.callback(null)};e.onerror=function(){goog.net.jsloader.cleanup_(e,!0,h);g.errback(new goog.net.jsloader.Error(goog.net.jsloader.ErrorCode.LOAD_ERROR,"Error while loading script "+a))};goog.dom.setProperties(e,{type:"text/javascript",charset:"UTF-8",src:a});goog.net.jsloader.getScriptParentElement_(d).appendChild(e);return g};
|
|
goog.net.jsloader.loadAndVerify=function(a,b,c){goog.global[goog.net.jsloader.GLOBAL_VERIFY_OBJS_]||(goog.global[goog.net.jsloader.GLOBAL_VERIFY_OBJS_]={});var d=goog.global[goog.net.jsloader.GLOBAL_VERIFY_OBJS_];if(goog.isDef(d[b]))return goog.async.Deferred.fail(new goog.net.jsloader.Error(goog.net.jsloader.ErrorCode.VERIFY_OBJECT_ALREADY_EXISTS,"Verification object "+b+" already defined."));var c=goog.net.jsloader.load(a,c),e=new goog.async.Deferred(c.cancel);c.addCallback(function(){var c=d[b];
|
|
goog.isDef(c)?(e.callback(c),delete d[b]):e.errback(new goog.net.jsloader.Error(goog.net.jsloader.ErrorCode.VERIFY_ERROR,"Script "+a+" loaded, but verification object "+b+" was not defined."))});c.addErrback(function(a){goog.isDef(d[b])&&delete d[b];e.errback(a)});return e};goog.net.jsloader.getScriptParentElement_=function(a){var b=a.getElementsByTagName(goog.dom.TagName.HEAD);return!b||goog.array.isEmpty(b)?a.documentElement:b[0]};
|
|
goog.net.jsloader.cancel_=function(){if(this&&this.script_){var a=this.script_;a&&"SCRIPT"==a.tagName&&goog.net.jsloader.cleanup_(a,!0,this.timeout_)}};goog.net.jsloader.cleanup_=function(a,b,c){goog.isDefAndNotNull(c)&&goog.global.clearTimeout(c);a.onload=goog.nullFunction;a.onerror=goog.nullFunction;a.onreadystatechange=goog.nullFunction;b&&window.setTimeout(function(){goog.dom.removeNode(a)},0)};goog.net.jsloader.ErrorCode={LOAD_ERROR:0,TIMEOUT:1,VERIFY_ERROR:2,VERIFY_OBJECT_ALREADY_EXISTS:3};
|
|
goog.net.jsloader.Error=function(a,b){var c="Jsloader error (code #"+a+")";b&&(c+=": "+b);goog.debug.Error.call(this,c);this.code=a};goog.inherits(goog.net.jsloader.Error,goog.debug.Error);goog.net.Jsonp=function(a,b){this.uri_=new goog.Uri(a);this.callbackParamName_=b?b:"callback";this.timeout_=5E3};goog.net.Jsonp.CALLBACKS="_callbacks_";goog.net.Jsonp.scriptCounter_=0;goog.net.Jsonp.prototype.setRequestTimeout=function(a){this.timeout_=a};goog.net.Jsonp.prototype.getRequestTimeout=function(){return this.timeout_};
|
|
goog.net.Jsonp.prototype.send=function(a,b,c,d){a=a||null;d=d||"_"+(goog.net.Jsonp.scriptCounter_++).toString(36)+goog.now().toString(36);goog.global[goog.net.Jsonp.CALLBACKS]||(goog.global[goog.net.Jsonp.CALLBACKS]={});var e=this.uri_.clone();a&&goog.net.Jsonp.addPayloadToUri_(a,e);b&&(b=goog.net.Jsonp.newReplyHandler_(d,b),goog.global[goog.net.Jsonp.CALLBACKS][d]=b,e.setParameterValues(this.callbackParamName_,goog.net.Jsonp.CALLBACKS+"."+d));b=goog.net.jsloader.load(e.toString(),{timeout:this.timeout_,
|
|
cleanupWhenDone:!0});c=goog.net.Jsonp.newErrorHandler_(d,a,c);b.addErrback(c);return{id_:d,deferred_:b}};goog.net.Jsonp.prototype.cancel=function(a){a&&(a.deferred_&&a.deferred_.cancel(),a.id_&&goog.net.Jsonp.cleanup_(a.id_,!1))};goog.net.Jsonp.newErrorHandler_=function(a,b,c){return function(){goog.net.Jsonp.cleanup_(a,!1);c&&c(b)}};goog.net.Jsonp.newReplyHandler_=function(a,b){return function(c){goog.net.Jsonp.cleanup_(a,!0);b.apply(void 0,arguments)}};
|
|
goog.net.Jsonp.cleanup_=function(a,b){goog.global[goog.net.Jsonp.CALLBACKS][a]&&(b?delete goog.global[goog.net.Jsonp.CALLBACKS][a]:goog.global[goog.net.Jsonp.CALLBACKS][a]=goog.nullFunction)};goog.net.Jsonp.addPayloadToUri_=function(a,b){for(var c in a)(!a.hasOwnProperty||a.hasOwnProperty(c))&&b.setParameterValues(c,a[c]);return b};ol.source.ImageTileSource=function(a){ol.source.TileSource.call(this,{attributions:a.attributions,extent:a.extent,opaque:a.opaque,projection:a.projection,tileGrid:a.tileGrid});this.tileUrlFunction=goog.isDef(a.tileUrlFunction)?a.tileUrlFunction:ol.TileUrlFunction.nullTileUrlFunction;this.crossOrigin_=goog.isDef(a.crossOrigin)?a.crossOrigin:"anonymous";this.tileCache_=new ol.TileCache};goog.inherits(ol.source.ImageTileSource,ol.source.TileSource);
|
|
ol.source.ImageTileSource.prototype.canExpireCache=function(){return this.tileCache_.canExpireCache()};ol.source.ImageTileSource.prototype.expireCache=function(a){this.tileCache_.expireCache(a)};
|
|
ol.source.ImageTileSource.prototype.getTile=function(a,b,c){var d=a.toString();if(this.tileCache_.containsKey(d))return this.tileCache_.get(d);goog.asserts.assert(b);goog.asserts.assert(c);b=this.tileUrlFunction(a,b,c);goog.isDef(b)?(a=new ol.ImageTile(a,b,this.crossOrigin_),this.tileCache_.set(d,a)):a=null;return a};ol.source.ImageTileSource.prototype.useTile=function(a){a=a.toString();this.tileCache_.containsKey(a)&&this.tileCache_.get(a)};ol.tilegrid.XYZ=function(a){var b=Array(a.maxZoom+1),c,d=2*ol.projection.EPSG3857.HALF_SIZE/ol.DEFAULT_TILE_SIZE;for(c=0;c<=a.maxZoom;++c)b[c]=d/Math.pow(2,c);ol.tilegrid.TileGrid.call(this,{origin:new ol.Coordinate(-ol.projection.EPSG3857.HALF_SIZE,ol.projection.EPSG3857.HALF_SIZE),resolutions:b,tileSize:new ol.Size(ol.DEFAULT_TILE_SIZE,ol.DEFAULT_TILE_SIZE)})};goog.inherits(ol.tilegrid.XYZ,ol.tilegrid.TileGrid);
|
|
ol.tilegrid.XYZ.prototype.forEachTileCoordParentTileRange=function(a,b,c){for(var d=a.x,e=a.y,a=a.z,f;;){a-=1;if(0>a)break;d>>=1;e>>=1;f=new ol.TileRange(d,e,d,e);if(b.call(c,a,f))break}};ol.source.BingMaps=function(a){ol.source.ImageTileSource.call(this,{opaque:!0,projection:ol.projection.getFromCode("EPSG:3857")});this.culture_=goog.isDef(a.culture)?a.culture:"en-us";this.ready_=!1;var b=new goog.Uri("//dev.virtualearth.net/REST/v1/Imagery/Metadata/"+a.style);(new goog.net.Jsonp(b,"jsonp")).send({include:"ImageryProviders",key:a.key},goog.bind(this.handleImageryMetadataResponse,this))};goog.inherits(ol.source.BingMaps,ol.source.ImageTileSource);
|
|
ol.source.BingMaps.prototype.handleImageryMetadataResponse=function(a){goog.asserts.assert("ValidCredentials"==a.authenticationResultCode);goog.asserts.assert(200==a.statusCode);goog.asserts.assert("OK"==a.statusDescription);goog.asserts.assert(1==a.resourceSets.length);a=a.resourceSets[0];goog.asserts.assert(1==a.resources.length);var b=a.resources[0],c=b.zoomMin,d=b.zoomMax,a=new ol.Size(b.imageWidth,b.imageHeight),e=new ol.tilegrid.XYZ({maxZoom:d,tileSize:a});this.tileGrid=e;this.tileUrlFunction=
|
|
ol.TileUrlFunction.withTileCoordTransform(function(a){if(a.z<c||d<a.z)return null;var b=1<<a.z,e=-a.y-1;if(0>e||b<=e)return null;b=goog.math.modulo(a.x,b);return new ol.TileCoord(a.z,b,e)},ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(b.imageUrlSubdomains,function(a){var c=b.imageUrl.replace("{subdomain}",a).replace("{culture}",this.culture_);return function(a){return goog.isNull(a)?void 0:c.replace("{quadkey}",a.quadKey())}})));var f=ol.projection.getTransform(ol.projection.getFromCode("EPSG:4326"),
|
|
this.getProjection()),a=goog.array.map(b.imageryProviders,function(a){var b=a.attribution,c={};goog.array.forEach(a.coverageAreas,function(a){var b=a.zoomMin,d=a.zoomMax,a=a.bbox,a=(new ol.Extent(a[1],a[0],a[3],a[2])).transform(f),g,h;for(g=b;g<=d;++g)h=g.toString(),b=e.getTileRangeForExtentAndZ(a,g),h in c?c[h].push(b):c[h]=[b]});return new ol.Attribution(b,c)});this.setAttributions(a);this.ready_=!0;this.dispatchLoadEvent()};ol.source.BingMaps.prototype.isReady=function(){return this.ready_};ol.DebugTile_=function(a,b){ol.Tile.call(this,a);this.state=ol.TileState.LOADED;this.tileCoord_=a;this.tileSize_=b.getTileSize(a.z);this.canvasByContext_={}};goog.inherits(ol.DebugTile_,ol.Tile);
|
|
ol.DebugTile_.prototype.getImage=function(a){a=goog.isDef(a)?goog.getUid(a):-1;if(a in this.canvasByContext_)return this.canvasByContext_[a];var b=this.tileSize_,c=goog.dom.createElement(goog.dom.TagName.CANVAS);c.width=b.width;c.height=b.height;var d=c.getContext("2d");d.strokeStyle="black";d.strokeRect(0.5,0.5,b.width+0.5,b.height+0.5);d.fillStyle="black";d.textAlign="center";d.textBaseline="middle";d.font="24px sans-serif";d.fillText(this.tileCoord_.toString(),b.width/2,b.height/2);return this.canvasByContext_[a]=
|
|
c};ol.source.DebugTileSource=function(a){ol.source.TileSource.call(this,{extent:a.extent,opaque:!1,projection:a.projection,tileGrid:a.tileGrid});this.tileCache_=new ol.TileCache};goog.inherits(ol.source.DebugTileSource,ol.source.TileSource);ol.source.DebugTileSource.prototype.canExpireCache=function(){return this.tileCache_.canExpireCache()};ol.source.DebugTileSource.prototype.expireCache=function(a){this.tileCache_.expireCache(a)};
|
|
ol.source.DebugTileSource.prototype.getTile=function(a){var b=a.toString();if(this.tileCache_.containsKey(b))return this.tileCache_.get(b);a=new ol.DebugTile_(a,this.tileGrid);this.tileCache_.set(b,a);return a};ol.source.XYZ=function(a){var b=a.projection||ol.projection.getFromCode("EPSG:3857"),c=ol.TileUrlFunction.nullTileUrlFunction;goog.isDef(a.tileUrlFunction)?c=a.tileUrlFunction:goog.isDef(a.urls)?c=ol.TileUrlFunction.createFromTemplates(a.urls):goog.isDef(a.url)&&(c=ol.TileUrlFunction.createFromTemplate(a.url));var d=new ol.tilegrid.XYZ({maxZoom:a.maxZoom}),e=a.extent,c=goog.isDefAndNotNull(e)?ol.TileUrlFunction.withTileCoordTransform(function(b){if(a.maxZoom<b.z)return null;var c=1<<b.z,h=-b.y-1;
|
|
if(0>h||c<=h)return null;c=goog.math.modulo(b.x,c);return!d.getTileCoordExtent(new ol.TileCoord(b.z,c,b.y)).intersects(e)?null:new ol.TileCoord(b.z,c,h)},c):ol.TileUrlFunction.withTileCoordTransform(function(b){if(a.maxZoom<b.z)return null;var c=1<<b.z,d=-b.y-1;if(0>d||c<=d)return null;c=goog.math.modulo(b.x,c);return new ol.TileCoord(b.z,c,d)},c);ol.source.ImageTileSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:b,tileGrid:d,tileUrlFunction:c})};
|
|
goog.inherits(ol.source.XYZ,ol.source.ImageTileSource);ol.source.MapQuestOSM=function(){var a=[new ol.Attribution('Tiles Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">'),new ol.Attribution('Data © <a href="http://www.openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC BY-SA</a>')];ol.source.XYZ.call(this,{attributions:a,opaque:!0,maxZoom:28,url:"http://otile{1-4}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg"})};
|
|
goog.inherits(ol.source.MapQuestOSM,ol.source.XYZ);ol.source.MapQuestOpenAerial=function(){var a=[new ol.Attribution('Tiles Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">'),new ol.Attribution("Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency")];ol.source.XYZ.call(this,{attributions:a,maxZoom:18,opaque:!0,url:"http://oatile{1-4}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg"})};
|
|
goog.inherits(ol.source.MapQuestOpenAerial,ol.source.XYZ);ol.source.OpenStreetMap=function(){var a=new ol.Attribution('© <a href="http://www.openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC BY-SA</a>');ol.source.XYZ.call(this,{attributions:[a],opaque:!0,maxZoom:18,url:"http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"})};goog.inherits(ol.source.OpenStreetMap,ol.source.XYZ);ol.source.SingleImageWMS=function(a){var b=goog.isDef(a.url)?ol.ImageUrlFunction.createWMSParams(a.url,a.params,a.version):ol.ImageUrlFunction.nullImageUrlFunction;ol.source.ImageSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,resolutions:a.resolutions,imageUrlFunction:b});this.image_=null;this.ratio_=1.5};goog.inherits(ol.source.SingleImageWMS,ol.source.ImageSource);
|
|
ol.source.SingleImageWMS.prototype.getImage=function(a,b,c){var b=this.findNearestResolution(b),d=this.image_;if(!goog.isNull(d)&&d.getResolution()==b&&d.getExtent().containsExtent(a))return d;a=new ol.Extent(a.minX,a.minY,a.maxX,a.maxY);a.scaleFromCenter(this.ratio_);var d=a.getWidth()/b,e=a.getHeight()/b,d=new ol.Size(d,e);return this.image_=this.createImage(a,b,d,c)};ol.source.StamenFlavor={TERRAIN_BACKGROUND:"background",TERRAIN_LABELS:"labels",TERRAIN_LINES:"lines",TONER_2010:"2010",TONER_2011:"2011",TONER_2011_LABELS:"2011-labels",TONER_2011_LINES:"2011-lines",TONER_2011_LITE:"2011-lite",TONER_BACKGROUND:"background",TONER_HYBRID:"hybrid",TONER_LABELS:"labels",TONER_LINES:"lines",TONER_LITE:"lite"};ol.source.StamenProvider={TERRAIN:"terrain",TONER:"toner",WATERCOLOR:"watercolor"};ol.source.StamenProviderConfig={};
|
|
ol.source.StamenProviderConfig[ol.source.StamenProvider.TERRAIN]={type:"jpg",minZoom:4,maxZoom:18};ol.source.StamenProviderConfig[ol.source.StamenProvider.TONER]={type:"png",minZoom:0,maxZoom:20};ol.source.StamenProviderConfig[ol.source.StamenProvider.WATERCOLOR]={type:"jpg",minZoom:3,maxZoom:16};
|
|
ol.source.Stamen=function(a){var b=new ol.Attribution('Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.'),c=a.provider;goog.isDef(a.flavor)&&(c+="-"+a.flavor);a=ol.source.StamenProviderConfig[a.provider];ol.source.XYZ.call(this,{attributions:[b],maxZoom:a.maxZoom,opaque:!1,url:"http://{a-d}.tile.stamen.com/"+
|
|
c+"/{z}/{x}/{y}."+a.type})};goog.inherits(ol.source.Stamen,ol.source.XYZ);ol.source.StaticImage=function(a){var b=ol.source.StaticImage.createImageFunction(a.url),c=a.imageExtent,d=a.imageSize,e=c.getHeight()/d.height,f=goog.isDef(a.projection)?a.projection:null;ol.source.ImageSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,imageUrlFunction:b,resolutions:[e]});this.image_=this.createImage(c,e,d,f)};goog.inherits(ol.source.StaticImage,ol.source.ImageSource);
|
|
ol.source.StaticImage.prototype.getImage=function(a){return a.intersects(this.image_.getExtent())?this.image_:null};ol.source.StaticImage.createImageFunction=function(a){return function(){return a}};ol.tilejson={};ol.tilejson.grids_=[];var grid=function(a){ol.tilejson.grids_.push(a)};goog.exportSymbol("grid",grid);ol.source.TileJSON=function(a){ol.source.ImageTileSource.call(this,{projection:ol.projection.getFromCode("EPSG:3857")});this.ready_=!1;this.deferred_=goog.net.jsloader.load(a.uri,{cleanupWhenDone:!0});this.deferred_.addCallback(this.handleTileJSONResponse,this)};goog.inherits(ol.source.TileJSON,ol.source.ImageTileSource);
|
|
ol.source.TileJSON.prototype.handleTileJSONResponse=function(){var a=ol.tilejson.grids_.pop(),b=ol.projection.getFromCode("EPSG:4326"),c,d;goog.isDef(a.bounds)?(c=a.bounds,c=new ol.Extent(c[0],c[1],c[2],c[3]),d=c.transform(ol.projection.getTransform(b,this.getProjection())),this.setExtent(d)):d=c=null;goog.isDef(a.scheme);goog.isDef(a.scheme)&&goog.asserts.assert("xyz"==a.scheme);var e=a.minzoom||0;goog.asserts.assert(0===e);var f=a.maxzoom||22,g=new ol.tilegrid.XYZ({maxZoom:f});this.tileGrid=g;this.tileUrlFunction=
|
|
ol.TileUrlFunction.withTileCoordTransform(function(a){if(a.z<e||f<a.z)return null;var b=1<<a.z,c=-a.y-1;if(0>c||b<=c)return null;b=goog.math.modulo(a.x,b);return!goog.isNull(d)&&!g.getTileCoordExtent(new ol.TileCoord(a.z,b,a.y)).intersects(d)?null:new ol.TileCoord(a.z,b,c)},ol.TileUrlFunction.createFromTemplates(a.tiles));if(goog.isDef(a.attribution)){b=goog.isNull(d)?b.getExtent():d;c={};var h,i;for(h=e;h<=f;++h)i=h.toString(),c[i]=[g.getTileRangeForExtentAndZ(b,h)];this.setAttributions([new ol.Attribution(a.attribution,
|
|
c)])}this.ready_=!0;this.dispatchLoadEvent()};ol.source.TileJSON.prototype.isReady=function(){return this.ready_};ol.source.TiledWMS=function(a){goog.isDef(a.tileGrid);var b=a.version,c;a.urls?(c=goog.array.map(a.urls,function(c){return ol.TileUrlFunction.createWMSParams(c,a.params,b)}),c=ol.TileUrlFunction.createFromTileUrlFunctions(c)):c=a.url?ol.TileUrlFunction.createWMSParams(a.url,a.params,b):ol.TileUrlFunction.nullTileUrlFunction;var d=goog.isDef(a.transparent)?a.transparent:!0;ol.source.ImageTileSource.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,tileGrid:a.tileGrid,
|
|
opaque:!d,projection:a.projection,tileUrlFunction:ol.TileUrlFunction.withTileCoordTransform(function(b,c,d){if(c.getResolutions().length<=b.z)return null;var h=b.x,i=c.getTileCoordExtent(b),l=d.getExtent(),d=goog.isDef(a.extent)?a.extent:l;d.minX===l.minX&&d.maxX===l.maxX&&(i=Math.ceil((d.maxX-d.minX)/(i.maxX-i.minX)),h=goog.math.modulo(h,i),i=c.getTileCoordExtent(new ol.TileCoord(b.z,h,b.y)));return!i.intersects(d)?null:new ol.TileCoord(b.z,h,b.y)},c)})};goog.inherits(ol.source.TiledWMS,ol.source.ImageTileSource);ol.sphere.WGS84=new ol.Sphere(6378137);ol.AnchoredElementOptionsType={};ol.MapOptionsType={};ol.View2DOptionsType={};ol.animation.BounceOptionsType={};ol.animation.PanOptionsType={};ol.animation.RotateOptionsType={};ol.animation.ZoomOptionsType={};ol.control.AttributionOptionsType={};ol.control.MousePositionOptionsType={};ol.control.ScaleLineOptionsType={};ol.control.ZoomOptionsType={};ol.layer.LayerOptionsType={};ol.source.BingMapsOptionsType={};ol.source.DebugTileSourceOptionsType={};ol.source.SingleImageWMSOptionsType={};
|
|
ol.source.StamenOptionsType={};ol.source.StaticImageOptionsType={};ol.source.TiledWMSOptionsType={};ol.tilegrid.TileGridOptionsType={};ol.tilegrid.XYZOptionsType={};
|