Proj4js={defaultDatum:"WGS84",transform:function(e,b,a){if(!e.readyToUse||!b.readyToUse){this.reportError("Proj4js initialization for "+e.srsCode+" not yet complete");return a}if((e.srsProjNumber=="900913"&&b.datumCode!="WGS84")||(b.srsProjNumber=="900913"&&e.datumCode!="WGS84")){var d=Proj4js.WGS84;this.transform(e,d,a);e=d}if(e.projName=="longlat"){a.x*=Proj4js.common.D2R;a.y*=Proj4js.common.D2R}else{if(e.to_meter){a.x*=e.to_meter;a.y*=e.to_meter}e.inverse(a)}if(e.from_greenwich){a.x+=e.from_greenwich}a=this.datum_transform(e.datum,b.datum,a);if(b.from_greenwich){a.x-=b.from_greenwich}if(b.projName=="longlat"){a.x*=Proj4js.common.R2D;a.y*=Proj4js.common.R2D}else{b.forward(a);if(b.to_meter){a.x/=b.to_meter;a.y/=b.to_meter}}return a},datum_transform:function(d,b,a){if(d.compare_datums(b)){return a}if(d.datum_type==Proj4js.common.PJD_NODATUM||b.datum_type==Proj4js.common.PJD_NODATUM){return a}if(d.datum_type==Proj4js.common.PJD_GRIDSHIFT){alert("ERROR: Grid shift transformations are not implemented yet.")}if(b.datum_type==Proj4js.common.PJD_GRIDSHIFT){alert("ERROR: Grid shift transformations are not implemented yet.")}if(d.es!=b.es||d.a!=b.a||d.datum_type==Proj4js.common.PJD_3PARAM||d.datum_type==Proj4js.common.PJD_7PARAM||b.datum_type==Proj4js.common.PJD_3PARAM||b.datum_type==Proj4js.common.PJD_7PARAM){d.geodetic_to_geocentric(a);if(d.datum_type==Proj4js.common.PJD_3PARAM||d.datum_type==Proj4js.common.PJD_7PARAM){d.geocentric_to_wgs84(a)}if(b.datum_type==Proj4js.common.PJD_3PARAM||b.datum_type==Proj4js.common.PJD_7PARAM){b.geocentric_from_wgs84(a)}b.geocentric_to_geodetic(a)}if(b.datum_type==Proj4js.common.PJD_GRIDSHIFT){alert("ERROR: Grid shift transformations are not implemented yet.")}return a},reportError:function(a){},extend:function(a,e){a=a||{};if(e){for(var d in e){var b=e[d];if(b!==undefined){a[d]=b}}}return a},Class:function(){var b=function(){this.initialize.apply(this,arguments)};var a={};var e;for(var d=0;d<arguments.length;++d){if(typeof arguments[d]=="function"){e=arguments[d].prototype}else{e=arguments[d]}Proj4js.extend(a,e)}b.prototype=a;return b},bind:function(d,b){var a=Array.prototype.slice.apply(arguments,[2]);return function(){var e=a.concat(Array.prototype.slice.apply(arguments,[0]));return d.apply(b,e)}},scriptName:"proj4js-combined.js",defsLookupService:"http://spatialreference.org/ref",libPath:null,getScriptLocation:function(){if(this.libPath){return this.libPath}var f=this.scriptName;var e=f.length;var a=document.getElementsByTagName("script");for(var d=0;d<a.length;d++){var g=a[d].getAttribute("src");if(g){var b=g.lastIndexOf(f);if((b>-1)&&(b+e==g.length)){this.libPath=g.slice(0,-e);break}}}return this.libPath||""},loadScript:function(e,f,d,a){var b=document.createElement("script");b.defer=false;b.type="text/javascript";b.id=e;b.src=e;b.onload=f;b.onerror=d;b.loadCheck=a;if(/MSIE/.test(navigator.userAgent)){b.onreadystatechange=this.checkReadyState}document.getElementsByTagName("head")[0].appendChild(b)},checkReadyState:function(){if(this.readyState=="loaded"){if(!this.loadCheck()){this.onerror()}else{this.onload()}}}};Proj4js.Proj=Proj4js.Class({readyToUse:false,title:null,projName:null,units:null,datum:null,x0:0,y0:0,initialize:function(d){this.srsCodeInput=d;if(d.indexOf("urn:")==0){var a=d.split(":");if((a[1]=="ogc"||a[1]=="x-ogc")&&(a[2]=="def")&&(a[3]=="crs")){d=a[4]+":"+a[a.length-1]}}else{if(d.indexOf("http://")==0){var b=d.split("#");if(b[0].match(/epsg.org/)){d="EPSG:"+b[1]}else{if(b[0].match(/RIG.xml/)){d="IGNF:"+b[1]}}}}this.srsCode=d.toUpperCase();if(this.srsCode.indexOf("EPSG")==0){this.srsCode=this.srsCode;this.srsAuth="epsg";this.srsProjNumber=this.srsCode.substring(5)}else{if(this.srsCode.indexOf("IGNF")==0){this.srsCode=this.srsCode;this.srsAuth="IGNF";this.srsProjNumber=this.srsCode.substring(5)}else{if(this.srsCode.indexOf("CRS")==0){this.srsCode=this.srsCode;this.srsAuth="CRS";this.srsProjNumber=this.srsCode.substring(4)}else{this.srsAuth="";this.srsProjNumber=this.srsCode}}}this.loadProjDefinition()},loadProjDefinition:function(){if(Proj4js.defs[this.srsCode]){this.defsLoaded();return}var a=Proj4js.getScriptLocation()+"defs/"+this.srsAuth.toUpperCase()+this.srsProjNumber+".js";Proj4js.loadScript(a,Proj4js.bind(this.defsLoaded,this),Proj4js.bind(this.loadFromService,this),Proj4js.bind(this.checkDefsLoaded,this))},loadFromService:function(){var a=Proj4js.defsLookupService+"/"+this.srsAuth+"/"+this.srsProjNumber+"/proj4js/";Proj4js.loadScript(a,Proj4js.bind(this.defsLoaded,this),Proj4js.bind(this.defsFailed,this),Proj4js.bind(this.checkDefsLoaded,this))},defsLoaded:function(){this.parseDefs();this.loadProjCode(this.projName)},checkDefsLoaded:function(){if(Proj4js.defs[this.srsCode]){return true}else{return false}},defsFailed:function(){Proj4js.reportError("failed to load projection definition for: "+this.srsCode);Proj4js.defs[this.srsCode]=Proj4js.defs.WGS84;this.defsLoaded()},loadProjCode:function(b){if(Proj4js.Proj[b]){this.initTransforms();return}var a=Proj4js.getScriptLocation()+"projCode/"+b+".js";Proj4js.loadScript(a,Proj4js.bind(this.loadProjCodeSuccess,this,b),Proj4js.bind(this.loadProjCodeFailure,this,b),Proj4js.bind(this.checkCodeLoaded,this,b))},loadProjCodeSuccess:function(a){if(Proj4js.Proj[a].dependsOn){this.loadProjCode(Proj4js.Proj[a].dependsOn)}else{this.initTransforms()}},loadProjCodeFailure:function(a){Proj4js.reportError("failed to find projection file for: "+a)},checkCodeLoaded:function(a){if(Proj4js.Proj[a]){return true}else{return false}},initTransforms:function(){Proj4js.extend(this,Proj4js.Proj[this.projName]);this.init();this.readyToUse=true},parseDefs:function(){this.defData=Proj4js.defs[this.srsCode];var e,b;if(!this.defData){return}var a=this.defData.split("+");for(var f=0;f<a.length;f++){var d=a[f].split("=");e=d[0].toLowerCase();b=d[1];switch(e.replace(/\s/gi,"")){case"":break;case"title":this.title=b;break;case"proj":this.projName=b.replace(/\s/gi,"");break;case"units":this.units=b.replace(/\s/gi,"");break;case"datum":this.datumCode=b.replace(/\s/gi,"");break;case"nadgrids":this.nagrids=b.replace(/\s/gi,"");break;case"ellps":this.ellps=b.replace(/\s/gi,"");break;case"a":this.a=parseFloat(b);break;case"b":this.b=parseFloat(b);break;case"rf":this.rf=parseFloat(b);break;case"lat_0":this.lat0=b*Proj4js.common.D2R;break;case"lat_1":this.lat1=b*Proj4js.common.D2R;break;case"lat_2":this.lat2=b*Proj4js.common.D2R;break;case"lat_ts":this.lat_ts=b*Proj4js.common.D2R;break;case"lon_0":this.long0=b*Proj4js.common.D2R;break;case"alpha":this.alpha=parseFloat(b)*Proj4js.common.D2R;break;case"lonc":this.longc=b*Proj4js.common.D2R;break;case"x_0":this.x0=parseFloat(b);break;case"y_0":this.y0=parseFloat(b);break;case"k_0":this.k0=parseFloat(b);break;case"k":this.k0=parseFloat(b);break;case"r_a":this.R_A=true;break;case"zone":this.zone=parseInt(b);break;case"south":this.utmSouth=true;break;case"towgs84":this.datum_params=b.split(",");break;case"to_meter":this.to_meter=parseFloat(b);break;case"from_greenwich":this.from_greenwich=b*Proj4js.common.D2R;break;case"pm":b=b.replace(/\s/gi,"");this.from_greenwich=Proj4js.PrimeMeridian[b]?Proj4js.PrimeMeridian[b]:parseFloat(b);this.from_greenwich*=Proj4js.common.D2R;break;case"no_defs":break;default:}}this.deriveConstants()},deriveConstants:function(){if(this.nagrids=="@null"){this.datumCode="none"}if(this.datumCode&&this.datumCode!="none"){var a=Proj4js.Datum[this.datumCode];if(a){this.datum_params=a.towgs84?a.towgs84.split(","):null;this.ellps=a.ellipse;this.datumName=a.datumName?a.datumName:this.datumCode}}if(!this.a){var b=Proj4js.Ellipsoid[this.ellps]?Proj4js.Ellipsoid[this.ellps]:Proj4js.Ellipsoid.WGS84;Proj4js.extend(this,b)}if(this.rf&&!this.b){this.b=(1-1/this.rf)*this.a}if(Math.abs(this.a-this.b)<Proj4js.common.EPSLN){this.sphere=true;this.b=this.a}this.a2=this.a*this.a;this.b2=this.b*this.b;this.es=(this.a2-this.b2)/this.a2;this.e=Math.sqrt(this.es);if(this.R_A){this.a*=1-this.es*(Proj4js.common.SIXTH+this.es*(Proj4js.common.RA4+this.es*Proj4js.common.RA6));this.a2=this.a*this.a;this.b2=this.b*this.b;this.es=0}this.ep2=(this.a2-this.b2)/this.b2;if(!this.k0){this.k0=1}this.datum=new Proj4js.datum(this)}});Proj4js.Proj.longlat={init:function(){},forward:function(a){return a},inverse:function(a){return a}};Proj4js.defs={WGS84:"+title=long/lat:WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees","EPSG:4326":"+title=long/lat:WGS84 +proj=longlat +a=6378137.0 +b=6356752.31424518 +ellps=WGS84 +datum=WGS84 +units=degrees","EPSG:4269":"+title=long/lat:NAD83 +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees","EPSG:3785":"+title= Google Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"};Proj4js.defs.GOOGLE=Proj4js.defs["EPSG:3785"];Proj4js.defs["EPSG:900913"]=Proj4js.defs["EPSG:3785"];Proj4js.defs["EPSG:102113"]=Proj4js.defs["EPSG:3785"];Proj4js.common={PI:3.141592653589793,HALF_PI:1.5707963267948966,TWO_PI:6.283185307179586,FORTPI:0.7853981633974483,R2D:57.29577951308232,D2R:0.017453292519943295,SEC_TO_RAD:0.00000484813681109536,EPSLN:1e-10,MAX_ITER:20,COS_67P5:0.3826834323650898,AD_C:1.0026,PJD_UNKNOWN:0,PJD_3PARAM:1,PJD_7PARAM:2,PJD_GRIDSHIFT:3,PJD_WGS84:4,PJD_NODATUM:5,SRS_WGS84_SEMIMAJOR:6378137,SIXTH:0.16666666666666666,RA4:0.04722222222222222,RA6:0.022156084656084655,RV4:0.06944444444444445,RV6:0.04243827160493827,msfnz:function(d,b,e){var a=d*b;return e/(Math.sqrt(1-a*a))},tsfnz:function(f,e,d){var a=f*d;var b=0.5*f;a=Math.pow(((1-a)/(1+a)),b);return(Math.tan(0.5*(this.HALF_PI-e))/a)},phi2z:function(g,f){var e=0.5*g;var a,b;var d=this.HALF_PI-2*Math.atan(f);for(i=0;i<=15;i++){a=g*Math.sin(d);b=this.HALF_PI-2*Math.atan(f*(Math.pow(((1-a)/(1+a)),e)))-d;d+=b;if(Math.abs(b)<=1e-10){return d}}alert("phi2z has NoConvergence");return(-9999)},qsfnz:function(d,b){var a;if(d>1e-7){a=d*b;return((1-d*d)*(b/(1-a*a)-(0.5/d)*Math.log((1-a)/(1+a))))}else{return(2*b)}},asinz:function(a){if(Math.abs(a)>1){a=(a>1)?1:-1}return Math.asin(a)},e0fn:function(a){return(1-0.25*a*(1+a/16*(3+1.25*a)))},e1fn:function(a){return(0.375*a*(1+0.25*a*(1+0.46875*a)))},e2fn:function(a){return(0.05859375*a*a*(1+0.75*a))},e3fn:function(a){return(a*a*a*(35/3072))},mlfn:function(f,e,d,b,a){return(f*a-e*Math.sin(2*a)+d*Math.sin(4*a)-b*Math.sin(6*a))},srat:function(a,b){return(Math.pow((1-a)/(1+a),b))},sign:function(a){if(a<0){return(-1)}else{return(1)}},adjust_lon:function(a){a=(Math.abs(a)<this.PI)?a:(a-(this.sign(a)*this.TWO_PI));return a},adjust_lat:function(a){a=(Math.abs(a)<this.HALF_PI)?a:(a-(this.sign(a)*this.PI));return a},latiso:function(e,d,b){if(Math.abs(d)>this.HALF_PI){return +Number.NaN}if(d==this.HALF_PI){return Number.POSITIVE_INFINITY}if(d==-1*this.HALF_PI){return -1*Number.POSITIVE_INFINITY}var a=e*b;return Math.log(Math.tan((this.HALF_PI+d)/2))+e*Math.log((1-a)/(1+a))/2},fL:function(b,a){return 2*Math.atan(b*Math.exp(a))-this.HALF_PI},invlatiso:function(f,d){var b=this.fL(1,d);var e=0;var a=0;do{e=b;a=f*Math.sin(e);b=this.fL(Math.exp(f*Math.log((1+a)/(1-a))/2),d)}while(Math.abs(b-e)>1e-12);return b},sinh:function(a){var b=Math.exp(a);b=(b-1/b)/2;return b},cosh:function(a){var b=Math.exp(a);b=(b+1/b)/2;return b},tanh:function(a){var b=Math.exp(a);b=(b-1/b)/(b+1/b);return b},asinh:function(a){var b=(a>=0?1:-1);return b*(Math.log(Math.abs(a)+Math.sqrt(a*a+1)))},acosh:function(a){return 2*Math.log(Math.sqrt((a+1)/2)+Math.sqrt((a-1)/2))},atanh:function(a){return Math.log((a-1)/(a+1))/2},gN:function(b,g,f){var d=g*f;return b/Math.sqrt(1-d*d)}};Proj4js.datum=Proj4js.Class({initialize:function(b){this.datum_type=Proj4js.common.PJD_WGS84;if(b.datumCode&&b.datumCode=="none"){this.datum_type=Proj4js.common.PJD_NODATUM}if(b&&b.datum_params){for(var a=0;a<b.datum_params.length;a++){b.datum_params[a]=parseFloat(b.datum_params[a])}if(b.datum_params[0]!=0||b.datum_params[1]!=0||b.datum_params[2]!=0){this.datum_type=Proj4js.common.PJD_3PARAM}if(b.datum_params.length>3){if(b.datum_params[3]!=0||b.datum_params[4]!=0||b.datum_params[5]!=0||b.datum_params[6]!=0){this.datum_type=Proj4js.common.PJD_7PARAM;b.datum_params[3]*=Proj4js.common.SEC_TO_RAD;b.datum_params[4]*=Proj4js.common.SEC_TO_RAD;b.datum_params[5]*=Proj4js.common.SEC_TO_RAD;b.datum_params[6]=(b.datum_params[6]/1000000)+1}}}if(b){this.a=b.a;this.b=b.b;this.es=b.es;this.ep2=b.ep2;this.datum_params=b.datum_params}},compare_datums:function(a){if(this.datum_type!=a.datum_type){return false}else{if(this.a!=a.a||Math.abs(this.es-a.es)>5e-11){return false}else{if(this.datum_type==Proj4js.common.PJD_3PARAM){return(this.datum_params[0]==a.datum_params[0]&&this.datum_params[1]==a.datum_params[1]&&this.datum_params[2]==a.datum_params[2])}else{if(this.datum_type==Proj4js.common.PJD_7PARAM){return(this.datum_params[0]==a.datum_params[0]&&this.datum_params[1]==a.datum_params[1]&&this.datum_params[2]==a.datum_params[2]&&this.datum_params[3]==a.datum_params[3]&&this.datum_params[4]==a.datum_params[4]&&this.datum_params[5]==a.datum_params[5]&&this.datum_params[6]==a.datum_params[6])}else{if(this.datum_type==Proj4js.common.PJD_GRIDSHIFT){return strcmp(pj_param(this.params,"snadgrids").s,pj_param(a.params,"snadgrids").s)==0}else{return true}}}}}},geodetic_to_geocentric:function(d){var q=d.x;var j=d.y;var e=d.z?d.z:0;var f;var b;var a;var m=0;var o;var l;var h;var g;if(j<-Proj4js.common.HALF_PI&&j>-1.001*Proj4js.common.HALF_PI){j=-Proj4js.common.HALF_PI}else{if(j>Proj4js.common.HALF_PI&&j<1.001*Proj4js.common.HALF_PI){j=Proj4js.common.HALF_PI}else{if((j<-Proj4js.common.HALF_PI)||(j>Proj4js.common.HALF_PI)){Proj4js.reportError("geocent:lat out of range:"+j);return null}}}if(q>Proj4js.common.PI){q-=(2*Proj4js.common.PI)}l=Math.sin(j);g=Math.cos(j);h=l*l;o=this.a/(Math.sqrt(1-this.es*h));f=(o+e)*g*Math.cos(q);b=(o+e)*g*Math.sin(q);a=((o*(1-this.es))+e)*l;d.x=f;d.y=b;d.z=a;return m},geocentric_to_geodetic:function(C){var H=1e-12;var D=(H*H);var g=30;var q;var j;var a;var u;var b;var r;var o;var G;var F;var m;var z;var w;var f;var E;var h=C.x;var e=C.y;var d=C.z?C.z:0;var l;var B;var v;f=false;q=Math.sqrt(h*h+e*e);j=Math.sqrt(h*h+e*e+d*d);if(q/this.a<H){f=true;l=0;if(j/this.a<H){B=Proj4js.common.HALF_PI;v=-this.b;return}}else{l=Math.atan2(e,h)}a=d/j;u=q/j;b=1/Math.sqrt(1-this.es*(2-this.es)*u*u);G=u*(1-this.es)*b;F=a*b;E=0;do{E++;o=this.a/Math.sqrt(1-this.es*F*F);v=q*G+d*F-o*(1-this.es*F*F);r=this.es*o/(o+v);b=1/Math.sqrt(1-r*(2-r)*u*u);m=u*(1-r)*b;z=a*b;w=z*G-m*F;G=m;F=z}while(w*w>D&&E<g);B=Math.atan(z/Math.abs(m));C.x=l;C.y=B;C.z=v;return C},geocentric_to_geodetic_noniter:function(B){var e=B.x;var d=B.y;var a=B.z?B.z:0;var h;var z;var q;var f;var u;var w;var r;var m;var j;var l;var E;var g;var D;var C;var v;var o;var b;e=parseFloat(e);d=parseFloat(d);a=parseFloat(a);b=false;if(e!=0){h=Math.atan2(d,e)}else{if(d>0){h=Proj4js.common.HALF_PI}else{if(d<0){h=-Proj4js.common.HALF_PI}else{b=true;h=0;if(a>0){z=Proj4js.common.HALF_PI}else{if(a<0){z=-Proj4js.common.HALF_PI}else{z=Proj4js.common.HALF_PI;q=-this.b;return}}}}}u=e*e+d*d;f=Math.sqrt(u);w=a*Proj4js.common.AD_C;m=Math.sqrt(w*w+u);l=w/m;g=f/m;E=l*l*l;r=a+this.b*this.ep2*E;o=f-this.a*this.es*g*g*g;j=Math.sqrt(r*r+o*o);D=r/j;C=o/j;v=this.a/Math.sqrt(1-this.es*D*D);if(C>=Proj4js.common.COS_67P5){q=f/C-v}else{if(C<=-Proj4js.common.COS_67P5){q=f/-C-v}else{q=a/D+v*(this.es-1)}}if(b==false){z=Math.atan(D/C)}B.x=h;B.y=z;B.z=q;return B},geocentric_to_wgs84:function(b){if(this.datum_type==Proj4js.common.PJD_3PARAM){b.x+=this.datum_params[0];b.y+=this.datum_params[1];b.z+=this.datum_params[2]}else{if(this.datum_type==Proj4js.common.PJD_7PARAM){var g=this.datum_params[0];var e=this.datum_params[1];var l=this.datum_params[2];var f=this.datum_params[3];var m=this.datum_params[4];var j=this.datum_params[5];var h=this.datum_params[6];var d=h*(b.x-j*b.y+m*b.z)+g;var a=h*(j*b.x+b.y-f*b.z)+e;var o=h*(-m*b.x+f*b.y+b.z)+l;b.x=d;b.y=a;b.z=o}}},geocentric_from_wgs84:function(d){if(this.datum_type==Proj4js.common.PJD_3PARAM){d.x-=this.datum_params[0];d.y-=this.datum_params[1];d.z-=this.datum_params[2]}else{if(this.datum_type==Proj4js.common.PJD_7PARAM){var h=this.datum_params[0];var e=this.datum_params[1];var m=this.datum_params[2];var g=this.datum_params[3];var o=this.datum_params[4];var l=this.datum_params[5];var j=this.datum_params[6];var f=(d.x-h)/j;var b=(d.y-e)/j;var a=(d.z-m)/j;d.x=f+l*b-o*a;d.y=-l*f+b+g*a;d.z=o*f-g*b+a}}}});Proj4js.Point=Proj4js.Class({initialize:function(a,e,d){if(typeof a=="object"){this.x=a[0];this.y=a[1];this.z=a[2]||0}else{if(typeof a=="string"){var b=a.split(",");this.x=parseFloat(b[0]);this.y=parseFloat(b[1]);this.z=parseFloat(b[2])||0}else{this.x=a;this.y=e;this.z=d||0}}},clone:function(){return new Proj4js.Point(this.x,this.y,this.z)},toString:function(){return("x="+this.x+",y="+this.y)},toShortString:function(){return(this.x+", "+this.y)}});Proj4js.PrimeMeridian={greenwich:0,lisbon:-9.131906111111,paris:2.337229166667,bogota:-74.080916666667,madrid:-3.687938888889,rome:12.452333333333,bern:7.439583333333,jakarta:106.807719444444,ferro:-17.666666666667,brussels:4.367975,stockholm:18.058277777778,athens:23.7163375,oslo:10.722916666667};Proj4js.Ellipsoid={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},"APL4.":{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},CPM:{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS72:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};Proj4js.Datum={WGS84:{towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},GGRS87:{towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},NAD83:{towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},NAD27:{nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},potsdam:{towgs84:"606.0,23.0,413.0",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},carthage:{towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},hermannskogel:{towgs84:"653.0,-212.0,449.0",ellipse:"bessel",datumName:"Hermannskogel"},ire65:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},nzgd49:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},OSGB36:{towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"}};Proj4js.WGS84=new Proj4js.Proj("WGS84");Proj4js.Datum.OSB36=Proj4js.Datum.OSGB36;Proj4js.Proj.aea={init:function(){if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("aeaInitEqualLatitudes");return}this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e3=Math.sqrt(this.es);this.sin_po=Math.sin(this.lat1);this.cos_po=Math.cos(this.lat1);this.t1=this.sin_po;this.con=this.sin_po;this.ms1=Proj4js.common.msfnz(this.e3,this.sin_po,this.cos_po);this.qs1=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);this.sin_po=Math.sin(this.lat2);this.cos_po=Math.cos(this.lat2);this.t2=this.sin_po;this.ms2=Proj4js.common.msfnz(this.e3,this.sin_po,this.cos_po);this.qs2=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);this.sin_po=Math.sin(this.lat0);this.cos_po=Math.cos(this.lat0);this.t3=this.sin_po;this.qs0=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);if(Math.abs(this.lat1-this.lat2)>Proj4js.common.EPSLN){this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1)}else{this.ns0=this.con}this.c=this.ms1*this.ms1+this.ns0*this.qs1;this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0},forward:function(f){var g=f.x;var e=f.y;this.sin_phi=Math.sin(e);this.cos_phi=Math.cos(e);var b=Proj4js.common.qsfnz(this.e3,this.sin_phi,this.cos_phi);var j=this.a*Math.sqrt(this.c-this.ns0*b)/this.ns0;var d=this.ns0*Proj4js.common.adjust_lon(g-this.long0);var a=j*Math.sin(d)+this.x0;var h=this.rh-j*Math.cos(d)+this.y0;f.x=a;f.y=h;return f},inverse:function(f){var h,a,b,d,g,e;f.x-=this.x0;f.y=this.rh-f.y+this.y0;if(this.ns0>=0){h=Math.sqrt(f.x*f.x+f.y*f.y);b=1}else{h=-Math.sqrt(f.x*f.x+f.y*f.y);b=-1}d=0;if(h!=0){d=Math.atan2(b*f.x,b*f.y)}b=h*this.ns0/this.a;a=(this.c-b*b)/this.ns0;if(this.e3>=1e-10){b=1-0.5*(1-this.es)*Math.log((1-this.e3)/(1+this.e3))/this.e3;if(Math.abs(Math.abs(b)-Math.abs(a))>1e-10){e=this.phi1z(this.e3,a)}else{if(a>=0){e=0.5*PI}else{e=-0.5*PI}}}else{e=this.phi1z(e3,a)}g=Proj4js.common.adjust_lon(d/this.ns0+this.long0);f.x=g;f.y=e;return f},phi1z:function(j,a){var b,d,e;var h=Proj4js.common.asinz(0.5*a);if(j<Proj4js.common.EPSLN){return h}var g=j*j;for(var f=1;f<=25;f++){sinphi=Math.sin(h);cosphi=Math.cos(h);b=j*sinphi;d=1-b*b;e=0.5*d*d/cosphi*(a/(1-g)-sinphi/d+0.5/j*Math.log((1-b)/(1+b)));h=h+e;if(Math.abs(e)<=1e-7){return h}}Proj4js.reportError("aea:phi1z:Convergence error");return null}};Proj4js.Proj.sterea={dependsOn:"gauss",init:function(){Proj4js.Proj.gauss.init.apply(this);if(!this.rc){Proj4js.reportError("sterea:init:E_ERROR_0");return}this.sinc0=Math.sin(this.phic0);this.cosc0=Math.cos(this.phic0);this.R2=2*this.rc;if(!this.title){this.title="Oblique Stereographic Alternative"}},forward:function(a){a.x=Proj4js.common.adjust_lon(a.x-this.long0);Proj4js.Proj.gauss.forward.apply(this,[a]);sinc=Math.sin(a.y);cosc=Math.cos(a.y);cosl=Math.cos(a.x);k=this.k0*this.R2/(1+this.sinc0*sinc+this.cosc0*cosc*cosl);a.x=k*cosc*Math.sin(a.x);a.y=k*(this.cosc0*sinc-this.sinc0*cosc*cosl);a.x=this.a*a.x+this.x0;a.y=this.a*a.y+this.y0;return a},inverse:function(b){var d,a;b.x=(b.x-this.x0)/this.a;b.y=(b.y-this.y0)/this.a;b.x/=this.k0;b.y/=this.k0;if((rho=Math.sqrt(b.x*b.x+b.y*b.y))){c=2*Math.atan2(rho,this.R2);sinc=Math.sin(c);cosc=Math.cos(c);a=Math.asin(cosc*this.sinc0+b.y*sinc*this.cosc0/rho);d=Math.atan2(b.x*sinc,rho*this.cosc0*cosc-b.y*this.sinc0*sinc)}else{a=this.phic0;d=0}b.x=d;b.y=a;Proj4js.Proj.gauss.inverse.apply(this,[b]);b.x=Proj4js.common.adjust_lon(b.x+this.long0);return b}};function phi4z(e,l,j,h,g,D,C,B,f){var m,z,v,w,r,q,p,o,d,u;f=D;for(u=1;u<=15;u++){m=Math.sin(f);tanphi=Math.tan(f);B=tanphi*Math.sqrt(1-e*m*m);z=Math.sin(2*f);w=l*f-j*z+h*Math.sin(4*f)-g*Math.sin(6*f);r=l-2*j*Math.cos(2*f)+4*h*Math.cos(4*f)-6*g*Math.cos(6*f);q=2*w+B*(w*w+C)-2*D*(B*w+1);p=e*z*(w*w+C-2*D*w)/(2*B);o=2*(D-w)*(B*r-2/z)-2*r;d=q/(p+o);f+=d;if(Math.abs(d)<=1e-10){return(f)}}Proj4js.reportError("phi4z: No convergence");return null}function e4fn(a){var b,d;b=1+a;d=1-a;return(Math.sqrt((Math.pow(b,b))*(Math.pow(d,d))))}Proj4js.Proj.poly={init:function(){var a;if(this.lat0=0){this.lat0=90}this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.ml0=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(e){var a,g;var j;var m;var f,h;var d;var q,o;var b=e.x;var l=e.y;f=Proj4js.common.adjust_lon(b-this.long0);if(Math.abs(l)<=1e-7){q=this.x0+this.a*f;o=this.y0-this.a*this.ml0}else{a=Math.sin(l);g=Math.cos(l);h=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,l);d=Proj4js.common.msfnz(this.e,a,g);f=a;q=this.x0+this.a*d*Math.sin(f)/a;o=this.y0+this.a*(h-this.ml0+d*(1-Math.cos(f))/a)}e.x=q;e.y=o;return e},inverse:function(d){var o,h;var g;var q;var l;var e,f;var m;var a,j;d.x-=this.x0;d.y-=this.y0;g=this.ml0+d.y/this.a;m=0;if(Math.abs(g)<=1e-7){a=d.x/this.a+this.long0;j=0}else{q=g*g+(d.x/this.a)*(d.x/this.a);m=phi4z(this.es,this.e0,this.e1,this.e2,this.e3,this.al,q,l,j);if(m!=1){return(m)}a=Proj4js.common.adjust_lon((Proj4js.common.asinz(d.x*l/this.a)/Math.sin(j))+this.long0)}d.x=a;d.y=j;return d}};Proj4js.Proj.equi={init:function(){if(!this.x0){this.x0=0}if(!this.y0){this.y0=0}if(!this.lat0){this.lat0=0}if(!this.long0){this.long0=0}},forward:function(e){var f=e.x;var d=e.y;var b=Proj4js.common.adjust_lon(f-this.long0);var a=this.x0+this.a*b*Math.cos(this.lat0);var g=this.y0+this.a*d;this.t1=a;this.t2=Math.cos(this.lat0);e.x=a;e.y=g;return e},inverse:function(b){b.x-=this.x0;b.y-=this.y0;var a=b.y/this.a;if(Math.abs(a)>Proj4js.common.HALF_PI){Proj4js.reportError("equi:Inv:DataError")}var d=Proj4js.common.adjust_lon(this.long0+b.x/(this.a*Math.cos(this.lat0)));b.x=d;b.y=a}};Proj4js.Proj.merc={init:function(){if(this.lat_ts){if(this.sphere){this.k0=Math.cos(this.lat_ts)}else{this.k0=Proj4js.common.msfnz(this.es,Math.sin(this.lat_ts),Math.cos(this.lat_ts))}}},forward:function(f){var g=f.x;var e=f.y;if(e*Proj4js.common.R2D>90&&e*Proj4js.common.R2D<-90&&g*Proj4js.common.R2D>180&&g*Proj4js.common.R2D<-180){Proj4js.reportError("merc:forward: llInputOutOfRange: "+g+" : "+e);return null}var a,h;if(Math.abs(Math.abs(e)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN){Proj4js.reportError("merc:forward: ll2mAtPoles");return null}else{if(this.sphere){a=this.x0+this.a*this.k0*Proj4js.common.adjust_lon(g-this.long0);h=this.y0+this.a*this.k0*Math.log(Math.tan(Proj4js.common.FORTPI+0.5*e))}else{var d=Math.sin(e);var b=Proj4js.common.tsfnz(this.e,e,d);a=this.x0+this.a*this.k0*Proj4js.common.adjust_lon(g-this.long0);h=this.y0-this.a*this.k0*Math.log(b)}f.x=a;f.y=h;return f}},inverse:function(e){var a=e.x-this.x0;var g=e.y-this.y0;var f,d;if(this.sphere){d=Proj4js.common.HALF_PI-2*Math.atan(Math.exp(-g/this.a*this.k0))}else{var b=Math.exp(-g/(this.a*this.k0));d=Proj4js.common.phi2z(this.e,b);if(d==-9999){Proj4js.reportError("merc:inverse: lat = -9999");return null}}f=Proj4js.common.adjust_lon(this.long0+a/(this.a*this.k0));e.x=f;e.y=d;return e}};Proj4js.Proj.utm={dependsOn:"tmerc",init:function(){if(!this.zone){Proj4js.reportError("utm:init: zone must be specified for UTM");return}this.lat0=0;this.long0=((6*Math.abs(this.zone))-183)*Proj4js.common.D2R;this.x0=500000;this.y0=this.utmSouth?10000000:0;this.k0=0.9996;Proj4js.Proj.tmerc.init.apply(this);this.forward=Proj4js.Proj.tmerc.forward;this.inverse=Proj4js.Proj.tmerc.inverse}};Proj4js.Proj.eqdc={init:function(){if(!this.mode){this.mode=0}this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.sinphi=Math.sin(this.lat1);this.cosphi=Math.cos(this.lat1);this.ms1=Proj4js.common.msfnz(this.e,this.sinphi,this.cosphi);this.ml1=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat1);if(this.mode!=0){if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("eqdc:Init:EqualLatitudes")}this.sinphi=Math.sin(this.lat2);this.cosphi=Math.cos(this.lat2);this.ms2=Proj4js.common.msfnz(this.e,this.sinphi,this.cosphi);this.ml2=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat2);if(Math.abs(this.lat1-this.lat2)>=Proj4js.common.EPSLN){this.ns=(this.ms1-this.ms2)/(this.ml2-this.ml1)}else{this.ns=this.sinphi}}else{this.ns=this.sinphi}this.g=this.ml1+this.ms1/this.ns;this.ml0=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0);this.rh=this.a*(this.g-this.ml0)},forward:function(e){var f=e.x;var d=e.y;var j=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,d);var h=this.a*(this.g-j);var b=this.ns*Proj4js.common.adjust_lon(f-this.long0);var a=this.x0+h*Math.sin(b);var g=this.y0+this.rh-h*Math.cos(b);e.x=a;e.y=g;return e},inverse:function(e){e.x-=this.x0;e.y=this.rh-e.y+this.y0;var a,h;if(this.ns>=0){var h=Math.sqrt(e.x*e.x+e.y*e.y);var a=1}else{h=-Math.sqrt(e.x*e.x+e.y*e.y);a=-1}var b=0;if(h!=0){b=Math.atan2(a*e.x,a*e.y)}var g=this.g-h/this.a;var d=this.phi3z(this.ml,this.e0,this.e1,this.e2,this.e3);var f=Proj4js.common.adjust_lon(this.long0+b/this.ns);e.x=f;e.y=d;return e},phi3z:function(j,h,g,f,e){var d;var a;d=j;for(var b=0;b<15;b++){a=(j+g*Math.sin(2*d)-f*Math.sin(4*d)+e*Math.sin(6*d))/h-d;d+=a;if(Math.abs(a)<=1e-10){return d}}Proj4js.reportError("PHI3Z-CONV:Latitude failed to converge after 15 iterations");return null}};Proj4js.Proj.tmerc={init:function(){this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.ml0=this.a*Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(d){var a=d.x;var q=d.y;var g=Proj4js.common.adjust_lon(a-this.long0);var e;var z,v;var w=Math.sin(q);var m=Math.cos(q);if(this.sphere){var u=m*Math.sin(g);if((Math.abs(Math.abs(u)-1))<1e-10){Proj4js.reportError("tmerc:forward: Point projects into infinity");return(93)}else{z=0.5*this.a*this.k0*Math.log((1+u)/(1-u));e=Math.acos(m*Math.cos(g)/Math.sqrt(1-u*u));if(q<0){e=-e}v=this.a*this.k0*(e-this.lat0)}}else{var l=m*g;var j=Math.pow(l,2);var o=this.ep2*Math.pow(m,2);var r=Math.tan(q);var B=Math.pow(r,2);e=1-this.es*Math.pow(w,2);var f=this.a/Math.sqrt(e);var h=this.a*Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,q);z=this.k0*f*l*(1+j/6*(1-B+o+j/20*(5-18*B+Math.pow(B,2)+72*o-58*this.ep2)))+this.x0;v=this.k0*(h-this.ml0+f*r*(j*(0.5+j/24*(5-B+9*o+4*Math.pow(o,2)+j/30*(61-58*B+Math.pow(B,2)+600*o-330*this.ep2)))))+this.y0}d.x=z;d.y=v;return d},inverse:function(D){var l,e;var M;var F;var q=6;var o,j;if(this.sphere){var I=Math.exp(D.x/(this.a*this.k0));var H=0.5*(I-1/I);var K=this.lat0+D.y/(this.a*this.k0);var G=Math.cos(K);l=Math.sqrt((1-G*G)/(1+H*H));o=Proj4js.common.asinz(l);if(K<0){o=-o}if((H==0)&&(G==0)){j=this.long0}else{j=Proj4js.common.adjust_lon(Math.atan2(H,G)+this.long0)}}else{var v=D.x-this.x0;var u=D.y-this.y0;l=(this.ml0+u/this.k0)/this.a;e=l;for(F=0;true;F++){M=((l+this.e1*Math.sin(2*e)-this.e2*Math.sin(4*e)+this.e3*Math.sin(6*e))/this.e0)-e;e+=M;if(Math.abs(M)<=Proj4js.common.EPSLN){break}if(F>=q){Proj4js.reportError("tmerc:inverse: Latitude failed to converge");return(95)}}if(Math.abs(e)<Proj4js.common.HALF_PI){var b=Math.sin(e);var N=Math.cos(e);var w=Math.tan(e);var L=this.ep2*Math.pow(N,2);var m=Math.pow(L,2);var z=Math.pow(w,2);var a=Math.pow(z,2);l=1-this.es*Math.pow(b,2);var E=this.a/Math.sqrt(l);var B=E*(1-this.es)/l;var J=v/(E*this.k0);var C=Math.pow(J,2);o=e-(E*w*C/B)*(0.5-C/24*(5+3*z+10*L-4*m-9*this.ep2-C/30*(61+90*z+298*L+45*a-252*this.ep2-3*m)));j=Proj4js.common.adjust_lon(this.long0+(J*(1-C/6*(1+2*z+L-C/20*(5-2*L+28*z-3*m+8*this.ep2+24*a)))/N))}else{o=Proj4js.common.HALF_PI*Proj4js.common.sign(u);j=this.long0}}D.x=j;D.y=o;return D}};Proj4js.defs.GOOGLE="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";Proj4js.defs["EPSG:900913"]=Proj4js.defs.GOOGLE;Proj4js.Proj.gstmerc={init:function(){var a=this.b/this.a;this.e=Math.sqrt(1-a*a);this.lc=this.long0;this.rs=Math.sqrt(1+this.e*this.e*Math.pow(Math.cos(this.lat0),4)/(1-this.e*this.e));var d=Math.sin(this.lat0);var b=Math.asin(d/this.rs);var e=Math.sin(b);this.cp=Proj4js.common.latiso(0,b,e)-this.rs*Proj4js.common.latiso(this.e,this.lat0,d);this.n2=this.k0*this.a*Math.sqrt(1-this.e*this.e)/(1-this.e*this.e*d*d);this.xs=this.x0;this.ys=this.y0-this.n2*b;if(!this.title){this.title="Gauss Schreiber transverse mercator"}},forward:function(f){var h=f.x;var e=f.y;var a=this.rs*(h-this.lc);var b=this.cp+(this.rs*Proj4js.common.latiso(this.e,e,Math.sin(e)));var g=Math.asin(Math.sin(a)/Proj4js.common.cosh(b));var d=Proj4js.common.latiso(0,g,Math.sin(g));f.x=this.xs+(this.n2*d);f.y=this.ys+(this.n2*Math.atan(Proj4js.common.sinh(b)/Math.cos(a)));return f},inverse:function(e){var b=e.x;var g=e.y;var a=Math.atan(Proj4js.common.sinh((b-this.xs)/this.n2)/Math.cos((g-this.ys)/this.n2));var f=Math.asin(Math.sin((g-this.ys)/this.n2)/Proj4js.common.cosh((b-this.xs)/this.n2));var d=Proj4js.common.latiso(0,f,Math.sin(f));e.x=this.lc+a/this.rs;e.y=Proj4js.common.invlatiso(this.e,(d-this.cp)/this.rs);return e}};Proj4js.Proj.ortho={init:function(a){this.sin_p14=Math.sin(this.lat0);this.cos_p14=Math.cos(this.lat0)},forward:function(d){var a,e;var q;var o;var f;var h;var b=d.x;var j=d.y;q=Proj4js.common.adjust_lon(b-this.long0);a=Math.sin(j);e=Math.cos(j);o=Math.cos(q);h=this.sin_p14*a+this.cos_p14*e*o;f=1;if((h>0)||(Math.abs(h)<=Proj4js.common.EPSLN)){var m=this.a*f*e*Math.sin(q);var l=this.y0+this.a*f*(this.cos_p14*a-this.sin_p14*e*o)}else{Proj4js.reportError("orthoFwdPointError")}d.x=m;d.y=l;return d},inverse:function(b){var h;var g;var e,l;var j;var d;var a,f;b.x-=this.x0;b.y-=this.y0;h=Math.sqrt(b.x*b.x+b.y*b.y);if(h>this.a+1e-7){Proj4js.reportError("orthoInvDataError")}g=Proj4js.common.asinz(h/this.a);e=Math.sin(g);l=Math.cos(g);a=this.long0;if(Math.abs(h)<=Proj4js.common.EPSLN){f=this.lat0}f=Proj4js.common.asinz(l*this.sin_p14+(b.y*e*this.cos_p14)/h);d=Math.abs(lat0)-Proj4js.common.HALF_PI;if(Math.abs(d)<=Proj4js.common.EPSLN){if(this.lat0>=0){a=Proj4js.common.adjust_lon(this.long0+Math.atan2(b.x,-b.y))}else{a=Proj4js.common.adjust_lon(this.long0-Math.atan2(-b.x,b.y))}}d=l-this.sin_p14*Math.sin(f);if((Math.abs(d)>=Proj4js.common.EPSLN)||(Math.abs(x)>=Proj4js.common.EPSLN)){a=Proj4js.common.adjust_lon(this.long0+Math.atan2((b.x*e*this.cos_p14),(d*h)))}b.x=a;b.y=f;return b}};Proj4js.Proj.somerc={init:function(){var b=this.lat0;this.lambda0=this.long0;var a=Math.sin(b);var f=this.a;var d=this.rf;var g=1/d;var j=2*g-Math.pow(g,2);var h=this.e=Math.sqrt(j);this.R=f*Math.sqrt(1-j)/(1-j*Math.pow(a,2));this.alpha=Math.sqrt(1+j/(1-j)*Math.pow(Math.cos(b),4));this.b0=Math.asin(a/this.alpha);this.K=Math.log(Math.tan(Math.PI/4+this.b0/2))-this.alpha*Math.log(Math.tan(Math.PI/4+b/2))+this.alpha*h/2*Math.log((1+h*a)/(1-h*a))},forward:function(g){var l=Math.log(Math.tan(Math.PI/4-g.y/2));var h=this.e/2*Math.log((1+this.e*Math.sin(g.y))/(1-this.e*Math.sin(g.y)));var e=-this.alpha*(l+h)+this.K;var a=2*(Math.atan(Math.exp(e))-Math.PI/4);var d=this.alpha*(g.x-this.lambda0);var j=Math.atan(Math.sin(d)/(Math.sin(this.b0)*Math.tan(a)+Math.cos(this.b0)*Math.cos(d)));var f=Math.asin(Math.cos(this.b0)*Math.sin(a)-Math.sin(this.b0)*Math.cos(a)*Math.cos(d));g.y=this.R/2*Math.log((1+Math.sin(f))/(1-Math.sin(f)))+this.y0;g.x=this.R*j+this.x0;return g},inverse:function(e){var d=e.x-this.x0;var f=e.y-this.y0;var q=d/this.R;var g=2*(Math.atan(Math.exp(f/this.R))-Math.PI/4);var m=Math.asin(Math.cos(this.b0)*Math.sin(g)+Math.sin(this.b0)*Math.cos(g)*Math.cos(q));var o=Math.atan(Math.sin(q)/(Math.cos(this.b0)*Math.cos(q)-Math.sin(this.b0)*Math.tan(g)));var l=this.lambda0+o/this.alpha;var j=0;var r=m;var a=-1000;var h=0;while(Math.abs(r-a)>1e-7){if(++h>20){Proj4js.reportError("omercFwdInfinity");return}j=1/this.alpha*(Math.log(Math.tan(Math.PI/4+m/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(r))/2));a=r;r=2*Math.atan(Math.exp(j))-Math.PI/2}e.x=l;e.y=r;return e}};Proj4js.Proj.stere={ssfn_:function(a,d,b){d*=b;return(Math.tan(0.5*(Proj4js.common.HALF_PI+a))*Math.pow((1-d)/(1+d),0.5*b))},TOL:1e-8,NITER:8,CONV:1e-10,S_POLE:0,N_POLE:1,OBLIQ:2,EQUIT:3,init:function(){this.phits=this.lat_ts?this.lat_ts:Proj4js.common.HALF_PI;var a=Math.abs(this.lat0);if((Math.abs(a)-Proj4js.common.HALF_PI)<Proj4js.common.EPSLN){this.mode=this.lat0<0?this.S_POLE:this.N_POLE}else{this.mode=a>Proj4js.common.EPSLN?this.OBLIQ:this.EQUIT}this.phits=Math.abs(this.phits);if(this.es){var b;switch(this.mode){case this.N_POLE:case this.S_POLE:if(Math.abs(this.phits-Proj4js.common.HALF_PI)<Proj4js.common.EPSLN){this.akm1=2*this.k0/Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e))}else{a=Math.sin(this.phits);this.akm1=Math.cos(this.phits)/Proj4js.common.tsfnz(this.e,this.phits,a);a*=this.e;this.akm1/=Math.sqrt(1-a*a)}break;case this.EQUIT:this.akm1=2*this.k0;break;case this.OBLIQ:a=Math.sin(this.lat0);b=2*Math.atan(this.ssfn_(this.lat0,a,this.e))-Proj4js.common.HALF_PI;a*=this.e;this.akm1=2*this.k0*Math.cos(this.lat0)/Math.sqrt(1-a*a);this.sinX1=Math.sin(b);this.cosX1=Math.cos(b);break}}else{switch(this.mode){case this.OBLIQ:this.sinph0=Math.sin(this.lat0);this.cosph0=Math.cos(this.lat0);case this.EQUIT:this.akm1=2*this.k0;break;case this.S_POLE:case this.N_POLE:this.akm1=Math.abs(this.phits-Proj4js.common.HALF_PI)>=Proj4js.common.EPSLN?Math.cos(this.phits)/Math.tan(Proj4js.common.FORTPI-0.5*this.phits):2*this.k0;break}}},forward:function(d){var b=d.x;b=Proj4js.common.adjust_lon(b-this.long0);var g=d.y;var l,h;if(this.sphere){var a,e,j,f;a=Math.sin(g);e=Math.cos(g);j=Math.cos(b);f=Math.sin(b);switch(this.mode){case this.EQUIT:h=1+e*j;if(h<=Proj4js.common.EPSLN){F_ERROR}h=this.akm1/h;l=h*e*f;h*=a;break;case this.OBLIQ:h=1+this.sinph0*a+this.cosph0*e*j;if(h<=Proj4js.common.EPSLN){F_ERROR}h=this.akm1/h;l=h*e*f;h*=this.cosph0*a-this.sinph0*e*j;break;case this.N_POLE:j=-j;g=-g;case this.S_POLE:if(Math.abs(g-Proj4js.common.HALF_PI)<this.TOL){F_ERROR}h=this.akm1*Math.tan(Proj4js.common.FORTPI+0.5*g);l=f*h;h*=j;break}}else{j=Math.cos(b);f=Math.sin(b);a=Math.sin(g);if(this.mode==this.OBLIQ||this.mode==this.EQUIT){X=2*Math.atan(this.ssfn_(g,a,this.e));sinX=Math.sin(X-Proj4js.common.HALF_PI);cosX=Math.cos(X)}switch(this.mode){case this.OBLIQ:A=this.akm1/(this.cosX1*(1+this.sinX1*sinX+this.cosX1*cosX*j));h=A*(this.cosX1*sinX-this.sinX1*cosX*j);l=A*cosX;break;case this.EQUIT:A=2*this.akm1/(1+cosX*j);h=A*sinX;l=A*cosX;break;case this.S_POLE:g=-g;j=-j;a=-a;case this.N_POLE:l=this.akm1*Proj4js.common.tsfnz(this.e,g,a);h=-l*j;break}l=l*f}d.x=l*this.a+this.x0;d.y=h*this.a+this.y0;return d},inverse:function(d){var v=(d.x-this.x0)/this.a;var q=(d.y-this.y0)/this.a;var b,o;var h,a,u=0,e=0,r,g=0,l=0;var j;if(this.sphere){var m,w,f,z;w=Math.sqrt(v*v+q*q);m=2*Math.atan(w/this.akm1);f=Math.sin(m);z=Math.cos(m);b=0;switch(this.mode){case this.EQUIT:if(Math.abs(w)<=Proj4js.common.EPSLN){o=0}else{o=Math.asin(q*f/w)}if(z!=0||v!=0){b=Math.atan2(v*f,z*w)}break;case this.OBLIQ:if(Math.abs(w)<=Proj4js.common.EPSLN){o=this.phi0}else{o=Math.asin(z*sinph0+q*f*cosph0/w)}m=z-sinph0*Math.sin(o);if(m!=0||v!=0){b=Math.atan2(v*f*cosph0,m*w)}break;case this.N_POLE:q=-q;case this.S_POLE:if(Math.abs(w)<=Proj4js.common.EPSLN){o=this.phi0}else{o=Math.asin(this.mode==this.S_POLE?-z:z)}b=(v==0&&q==0)?0:Math.atan2(v,q);break}}else{r=Math.sqrt(v*v+q*q);switch(this.mode){case this.OBLIQ:case this.EQUIT:u=2*Math.atan2(r*this.cosX1,this.akm1);h=Math.cos(u);a=Math.sin(u);if(r==0){e=Math.asin(h*this.sinX1)}else{e=Math.asin(h*this.sinX1+(q*a*this.cosX1/r))}u=Math.tan(0.5*(Proj4js.common.HALF_PI+e));v*=a;q=r*this.cosX1*h-q*this.sinX1*a;l=Proj4js.common.HALF_PI;g=0.5*this.e;break;case this.N_POLE:q=-q;case this.S_POLE:u=-r/this.akm1;e=Proj4js.common.HALF_PI-2*Math.atan(u);l=-Proj4js.common.HALF_PI;g=-0.5*this.e;break}for(j=this.NITER;j--;e=o){a=this.e*Math.sin(e);o=2*Math.atan(u*Math.pow((1+a)/(1-a),g))-l;if(Math.abs(e-o)<this.CONV){if(this.mode==this.S_POLE){o=-o}b=(v==0&&q==0)?0:Math.atan2(v,q);d.x=Proj4js.common.adjust_lon(b+this.long0);d.y=o;return d}}}}};Proj4js.Proj.nzmg={iterations:1,init:function(){this.A=new Array();this.A[1]=+0.6399175073;this.A[2]=-0.1358797613;this.A[3]=+0.063294409;this.A[4]=-0.02526853;this.A[5]=+0.0117879;this.A[6]=-0.0055161;this.A[7]=+0.0026906;this.A[8]=-0.001333;this.A[9]=+0.00067;this.A[10]=-0.00034;this.B_re=new Array();this.B_im=new Array();this.B_re[1]=+0.7557853228;this.B_im[1]=0;this.B_re[2]=+0.249204646;this.B_im[2]=+0.003371507;this.B_re[3]=-0.001541739;this.B_im[3]=+0.04105856;this.B_re[4]=-0.10162907;this.B_im[4]=+0.01727609;this.B_re[5]=-0.26623489;this.B_im[5]=-0.36249218;this.B_re[6]=-0.6870983;this.B_im[6]=-1.1651967;this.C_re=new Array();this.C_im=new Array();this.C_re[1]=+1.3231270439;this.C_im[1]=0;this.C_re[2]=-0.577245789;this.C_im[2]=-0.007809598;this.C_re[3]=+0.508307513;this.C_im[3]=-0.112208952;this.C_re[4]=-0.15094762;this.C_im[4]=+0.18200602;this.C_re[5]=+1.01418179;this.C_im[5]=+1.64497696;this.C_re[6]=+1.9660549;this.C_im[6]=+2.5127645;this.D=new Array();this.D[1]=+1.5627014243;this.D[2]=+0.5185406398;this.D[3]=-0.03333098;this.D[4]=-0.1052906;this.D[5]=-0.0368594;this.D[6]=+0.007317;this.D[7]=+0.0122;this.D[8]=+0.00394;this.D[9]=-0.0013},forward:function(d){var b=d.x;var u=d.y;var z=u-this.lat0;var l=b-this.long0;var e=z/Proj4js.common.SEC_TO_RAD*0.00001;var a=l;var o=1;var j=0;for(n=1;n<=10;n++){o=o*e;j=j+this.A[n]*o}var m=j;var g=a;var q=1;var h=0;var w;var f;var v=0;var r=0;for(n=1;n<=6;n++){w=q*m-h*g;f=h*m+q*g;q=w;h=f;v=v+this.B_re[n]*q-this.B_im[n]*h;r=r+this.B_im[n]*q+this.B_re[n]*h}x=(r*this.a)+this.x0;y=(v*this.a)+this.y0;d.x=x;d.y=y;return d},inverse:function(B){var v=B.x;var u=B.y;var F=v-this.x0;var E=u-this.y0;var r=E/this.a;var f=F/this.a;var l=1;var L=0;var g;var I;var m=0;var a=0;for(n=1;n<=6;n++){g=l*r-L*f;I=L*r+l*f;l=g;L=I;m=m+this.C_re[n]*l-this.C_im[n]*L;a=a+this.C_im[n]*l+this.C_re[n]*L}for(i=0;i<this.iterations;i++){var w=m;var j=a;var D;var z;var d=r;var H=f;for(n=2;n<=6;n++){D=w*m-j*a;z=j*m+w*a;w=D;j=z;d=d+(n-1)*(this.B_re[n]*w-this.B_im[n]*j);H=H+(n-1)*(this.B_im[n]*w+this.B_re[n]*j)}w=1;j=0;var b=this.B_re[1];var G=this.B_im[1];for(n=2;n<=6;n++){D=w*m-j*a;z=j*m+w*a;w=D;j=z;b=b+n*(this.B_re[n]*w-this.B_im[n]*j);G=G+n*(this.B_im[n]*w+this.B_re[n]*j)}var e=b*b+G*G;m=(d*b+H*G)/e;a=(H*b-d*G)/e}var C=m;var q=a;var J=1;var K=0;for(n=1;n<=9;n++){J=J*C;K=K+this.D[n]*J}var o=this.lat0+(K*Proj4js.common.SEC_TO_RAD*100000);var h=this.long0+q;B.x=h;B.y=o;return B}};Proj4js.Proj.mill={init:function(){},forward:function(e){var f=e.x;var d=e.y;var b=Proj4js.common.adjust_lon(f-this.long0);var a=this.x0+this.a*b;var g=this.y0+this.a*Math.log(Math.tan((Proj4js.common.PI/4)+(d/2.5)))*1.25;e.x=a;e.y=g;return e},inverse:function(b){b.x-=this.x0;b.y-=this.y0;var d=Proj4js.common.adjust_lon(this.long0+b.x/this.a);var a=2.5*(Math.atan(Math.exp(0.8*b.y/this.a))-Proj4js.common.PI/4);b.x=d;b.y=a;return b}};Proj4js.Proj.gnom={init:function(a){this.sin_p14=Math.sin(this.lat0);this.cos_p14=Math.cos(this.lat0);this.infinity_dist=1000*this.a},forward:function(d){var a,e;var m;var l;var f;var h;var b=d.x;var j=d.y;m=Proj4js.common.adjust_lon(b-this.long0);a=Math.sin(j);e=Math.cos(j);l=Math.cos(m);h=this.sin_p14*a+this.cos_p14*e*l;f=1;if((h>0)||(Math.abs(h)<=Proj4js.common.EPSLN)){x=this.x0+this.a*f*e*Math.sin(m)/h;y=this.y0+this.a*f*(this.cos_p14*a-this.sin_p14*e*l)/h}else{Proj4js.reportError("orthoFwdPointError");x=this.x0+this.infinity_dist*e*Math.sin(m);y=this.y0+this.infinity_dist*(this.cos_p14*a-this.sin_p14*e*l)}d.x=x;d.y=y;return d},inverse:function(f){var a;var h;var b,d;var j;var g,e;f.x=(f.x-this.x0)/this.a;f.y=(f.y-this.y0)/this.a;f.x/=this.k0;f.y/=this.k0;if((a=Math.sqrt(f.x*f.x+f.y*f.y))){j=Math.atan2(a,this.rc);b=Math.sin(j);d=Math.cos(j);e=Proj4js.common.asinz(d*this.sin_p14+(f.y*b*this.cos_p14)/a);g=Math.atan2(f.x*b,a*this.cos_p14*d-f.y*this.sin_p14*b);g=Proj4js.common.adjust_lon(this.long0+g)}else{e=this.phic0;g=0}f.x=g;f.y=e;return f}};Proj4js.Proj.sinu={init:function(){this.R=6370997},forward:function(e){var a,g,b;var f=e.x;var d=e.y;b=Proj4js.common.adjust_lon(f-this.long0);a=this.R*b*Math.cos(d)+this.x0;g=this.R*d+this.y0;e.x=a;e.y=g;return e},inverse:function(d){var b,a,e;d.x-=this.x0;d.y-=this.y0;b=d.y/this.R;if(Math.abs(b)>Proj4js.common.HALF_PI){Proj4js.reportError("sinu:Inv:DataError")}a=Math.abs(b)-Proj4js.common.HALF_PI;if(Math.abs(a)>Proj4js.common.EPSLN){a=this.long0+d.x/(this.R*Math.cos(b));e=Proj4js.common.adjust_lon(a)}else{e=this.long0}d.x=e;d.y=b;return d}};Proj4js.Proj.vandg={init:function(){this.R=6370997},forward:function(d){var a=d.x;var u=d.y;var B=Proj4js.common.adjust_lon(a-this.long0);var z,v;if(Math.abs(u)<=Proj4js.common.EPSLN){z=this.x0+this.R*B;v=this.y0}var f=Proj4js.common.asinz(2*Math.abs(u/Proj4js.common.PI));if((Math.abs(B)<=Proj4js.common.EPSLN)||(Math.abs(Math.abs(u)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN)){z=this.x0;if(u>=0){v=this.y0+Proj4js.common.PI*this.R*Math.tan(0.5*f)}else{v=this.y0+Proj4js.common.PI*this.R*-Math.tan(0.5*f)}}var q=0.5*Math.abs((Proj4js.common.PI/B)-(B/Proj4js.common.PI));var e=q*q;var r=Math.sin(f);var o=Math.cos(f);var l=o/(r+o-1);var j=l*l;var h=l*(2/r-1);var w=h*h;var b=Proj4js.common.PI*this.R*(q*(l-w)+Math.sqrt(e*(l-w)*(l-w)-(w+e)*(j-w)))/(w+e);if(B<0){b=-b}z=this.x0+b;b=Math.abs(b/(Proj4js.common.PI*this.R));if(u>=0){v=this.y0+Proj4js.common.PI*this.R*Math.sqrt(1-b*b-2*q*b)}else{v=this.y0-Proj4js.common.PI*this.R*Math.sqrt(1-b*b-2*q*b)}d.x=z;d.y=v;return d},inverse:function(f){var w;var a,q,v,l,j,h;var m,g;var e;var u;var b;var r;var o;f.x-=this.x0;f.y-=this.y0;b=Proj4js.common.PI*this.R;a=f.x/b;q=f.y/b;v=a*a+q*q;l=-Math.abs(q)*(1+v);j=l-2*q*q+a*a;h=-2*l+1+2*q*q+v*v;o=q*q/h+(2*j*j*j/h/h/h-9*l*j/h/h)/27;e=(l-j*j/3/h)/h;u=2*Math.sqrt(-e/3);b=((3*o)/e)/u;if(Math.abs(b)>1){if(b>=0){b=1}else{b=-1}}r=Math.acos(b)/3;if(f.y>=0){lat=(-u*Math.cos(r+Proj4js.common.PI/3)-j/3/h)*Proj4js.common.PI}else{lat=-(-u*Math.cos(r+PI/3)-j/3/h)*Proj4js.common.PI}if(Math.abs(a)<Proj4js.common.EPSLN){lon=this.long0}lon=Proj4js.common.adjust_lon(this.long0+Proj4js.common.PI*(v-1+Math.sqrt(1+2*(a*a-q*q)+v*v))/2/a);f.x=lon;f.y=lat;return f}};Proj4js.Proj.cea={init:function(){},forward:function(d){var e=d.x;var b=d.y;dlon=Proj4js.common.adjust_lon(e-this.long0);var a=this.x0+this.a*dlon*Math.cos(this.lat_ts);var f=this.y0+this.a*Math.sin(b)/Math.cos(this.lat_ts);d.x=a;d.y=f;return d},inverse:function(b){b.x-=this.x0;b.y-=this.y0;var d=Proj4js.common.adjust_lon(this.long0+(b.x/this.a)/Math.cos(this.lat_ts));var a=Math.asin((b.y/this.a)*Math.cos(this.lat_ts));b.x=d;b.y=a;return b}};Proj4js.Proj.eqc={init:function(){if(!this.x0){this.x0=0}if(!this.y0){this.y0=0}if(!this.lat0){this.lat0=0}if(!this.long0){this.long0=0}if(!this.lat_ts){this.lat_ts=0}if(!this.title){this.title="Equidistant Cylindrical (Plate Carre)"}this.rc=Math.cos(this.lat_ts)},forward:function(e){var f=e.x;var d=e.y;var b=Proj4js.common.adjust_lon(f-this.long0);var a=Proj4js.common.adjust_lat(d-this.lat0);e.x=this.x0+(this.a*b*this.rc);e.y=this.y0+(this.a*a);return e},inverse:function(b){var a=b.x;var d=b.y;b.x=Proj4js.common.adjust_lon(this.long0+((a-this.x0)/(this.a*this.rc)));b.y=Proj4js.common.adjust_lat(this.lat0+((d-this.y0)/(this.a)));return b}};Proj4js.Proj.cass={init:function(){if(!this.sphere){this.en=this.pj_enfn(this.es);this.m0=this.pj_mlfn(this.lat0,Math.sin(this.lat0),Math.cos(this.lat0),this.en)}},C1:0.16666666666666666,C2:0.008333333333333333,C3:0.041666666666666664,C4:0.3333333333333333,C5:0.06666666666666667,forward:function(e){var a,f;var b=e.x;var d=e.y;b=Proj4js.common.adjust_lon(b-this.long0);if(this.sphere){a=Math.asin(Math.cos(d)*Math.sin(b));f=Math.atan2(Math.tan(d),Math.cos(b))-this.phi0}else{this.n=Math.sin(d);this.c=Math.cos(d);f=this.pj_mlfn(d,this.n,this.c,this.en);this.n=1/Math.sqrt(1-this.es*this.n*this.n);this.tn=Math.tan(d);this.t=this.tn*this.tn;this.a1=b*this.c;this.c*=this.es*this.c/(1-this.es);this.a2=this.a1*this.a1;a=this.n*this.a1*(1-this.a2*this.t*(this.C1-(8-this.t+8*this.c)*this.a2*this.C2));f-=this.m0-this.n*this.tn*this.a2*(0.5+(5-this.t+6*this.c)*this.a2*this.C3)}e.x=this.a*a+this.x0;e.y=this.a*f+this.y0;return e},inverse:function(b){b.x-=this.x0;b.y-=this.y0;var a=b.x/this.a;var d=b.y/this.a;if(this.sphere){this.dd=d+this.lat0;phi=Math.asin(Math.sin(this.dd)*Math.cos(a));lam=Math.atan2(Math.tan(a),Math.cos(this.dd))}else{ph1=this.pj_inv_mlfn(this.m0+d,this.es,this.en);this.tn=Math.tan(ph1);this.t=this.tn*this.tn;this.n=Math.sin(ph1);this.r=1/(1-this.es*this.n*this.n);this.n=Math.sqrt(this.r);this.r*=(1-this.es)*this.n;this.dd=a/this.n;this.d2=this.dd*this.dd;phi=ph1-(this.n*this.tn/this.r)*this.d2*(0.5-(1+3*this.t)*this.d2*this.C3);lam=this.dd*(1+this.t*this.d2*(-this.C4+(1+3*this.t)*this.d2*this.C5))/Math.cos(ph1)}b.x=Proj4js.common.adjust_lon(this.long0+lam);b.y=phi;return b},pj_enfn:function(b){en=new Array();en[0]=this.C00-b*(this.C02+b*(this.C04+b*(this.C06+b*this.C08)));en[1]=b*(this.C22-b*(this.C04+b*(this.C06+b*this.C08)));var a=b*b;en[2]=a*(this.C44-b*(this.C46+b*this.C48));a*=b;en[3]=a*(this.C66-b*this.C68);en[4]=a*b*this.C88;return en},pj_mlfn:function(e,a,d,b){d*=a;a*=a;return(b[0]*e-d*(b[1]+a*(b[2]+a*(b[3]+a*b[4]))))},pj_inv_mlfn:function(a,d,b){k=1/(1-d);phi=a;for(i=Proj4js.common.MAX_ITER;i;--i){s=Math.sin(phi);t=1-d*s*s;t=(this.pj_mlfn(phi,s,Math.cos(phi),b)-a)*(t*Math.sqrt(t))*k;phi-=t;if(Math.abs(t)<Proj4js.common.EPSLN){return phi}}Proj4js.reportError("cass:pj_inv_mlfn: Convergence error");return phi},C00:1,C02:0.25,C04:0.046875,C06:0.01953125,C08:0.01068115234375,C22:0.75,C44:0.46875,C46:0.013020833333333334,C48:0.007120768229166667,C66:0.3645833333333333,C68:0.005696614583333333,C88:0.3076171875};Proj4js.Proj.gauss={init:function(){sphi=Math.sin(this.lat0);cphi=Math.cos(this.lat0);cphi*=cphi;this.rc=Math.sqrt(1-this.es)/(1-this.es*sphi*sphi);this.C=Math.sqrt(1+this.es*cphi*cphi/(1-this.es));this.phic0=Math.asin(sphi/this.C);this.ratexp=0.5*this.C*this.e;this.K=Math.tan(0.5*this.phic0+Proj4js.common.FORTPI)/(Math.pow(Math.tan(0.5*this.lat0+Proj4js.common.FORTPI),this.C)*Proj4js.common.srat(this.e*sphi,this.ratexp))},forward:function(b){var d=b.x;var a=b.y;b.y=2*Math.atan(this.K*Math.pow(Math.tan(0.5*a+Proj4js.common.FORTPI),this.C)*Proj4js.common.srat(this.e*Math.sin(a),this.ratexp))-Proj4js.common.HALF_PI;b.x=this.C*d;return b},inverse:function(e){var d=1e-14;var f=e.x/this.C;var b=e.y;num=Math.pow(Math.tan(0.5*b+Proj4js.common.FORTPI)/this.K,1/this.C);for(var a=Proj4js.common.MAX_ITER;a>0;--a){b=2*Math.atan(num*Proj4js.common.srat(this.e*Math.sin(e.y),-0.5*this.e))-Proj4js.common.HALF_PI;if(Math.abs(b-e.y)<d){break}e.y=b}if(!a){Proj4js.reportError("gauss:inverse:convergence failed");return null}e.x=f;e.y=b;return e}};Proj4js.Proj.omerc={init:function(){if(!this.mode){this.mode=0}if(!this.lon1){this.lon1=0;this.mode=1}if(!this.lon2){this.lon2=0}if(!this.lat2){this.lat2=0}var a=this.b/this.a;var d=1-Math.pow(a,2);var b=Math.sqrt(d);this.sin_p20=Math.sin(this.lat0);this.cos_p20=Math.cos(this.lat0);this.con=1-this.es*this.sin_p20*this.sin_p20;this.com=Math.sqrt(1-d);this.bl=Math.sqrt(1+this.es*Math.pow(this.cos_p20,4)/(1-d));this.al=this.a*this.bl*this.k0*this.com/this.con;if(Math.abs(this.lat0)<Proj4js.common.EPSLN){this.ts=1;this.d=1;this.el=1}else{this.ts=Proj4js.common.tsfnz(this.e,this.lat0,this.sin_p20);this.con=Math.sqrt(this.con);this.d=this.bl*this.com/(this.cos_p20*this.con);if((this.d*this.d-1)>0){if(this.lat0>=0){this.f=this.d+Math.sqrt(this.d*this.d-1)}else{this.f=this.d-Math.sqrt(this.d*this.d-1)}}else{this.f=this.d}this.el=this.f*Math.pow(this.ts,this.bl)}if(this.mode!=0){this.g=0.5*(this.f-1/this.f);this.gama=Proj4js.common.asinz(Math.sin(this.alpha)/this.d);this.longc=this.longc-Proj4js.common.asinz(this.g*Math.tan(this.gama))/this.bl;this.con=Math.abs(this.lat0);if((this.con>Proj4js.common.EPSLN)&&(Math.abs(this.con-Proj4js.common.HALF_PI)>Proj4js.common.EPSLN)){this.singam=Math.sin(this.gama);this.cosgam=Math.cos(this.gama);this.sinaz=Math.sin(this.alpha);this.cosaz=Math.cos(this.alpha);if(this.lat0>=0){this.u=(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1)/this.cosaz)}else{this.u=-(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1)/this.cosaz)}}else{Proj4js.reportError("omerc:Init:DataError")}}else{this.sinphi=Math.sin(this.at1);this.ts1=Proj4js.common.tsfnz(this.e,this.lat1,this.sinphi);this.sinphi=Math.sin(this.lat2);this.ts2=Proj4js.common.tsfnz(this.e,this.lat2,this.sinphi);this.h=Math.pow(this.ts1,this.bl);this.l=Math.pow(this.ts2,this.bl);this.f=this.el/this.h;this.g=0.5*(this.f-1/this.f);this.j=(this.el*this.el-this.l*this.h)/(this.el*this.el+this.l*this.h);this.p=(this.l-this.h)/(this.l+this.h);this.dlon=this.lon1-this.lon2;if(this.dlon<-Proj4js.common.PI){this.lon2=this.lon2-2*Proj4js.common.PI}if(this.dlon>Proj4js.common.PI){this.lon2=this.lon2+2*Proj4js.common.PI}this.dlon=this.lon1-this.lon2;this.longc=0.5*(this.lon1+this.lon2)-Math.atan(this.j*Math.tan(0.5*this.bl*this.dlon)/this.p)/this.bl;this.dlon=Proj4js.common.adjust_lon(this.lon1-this.longc);this.gama=Math.atan(Math.sin(this.bl*this.dlon)/this.g);this.alpha=Proj4js.common.asinz(this.d*Math.sin(this.gama));if(Math.abs(this.lat1-this.lat2)<=Proj4js.common.EPSLN){Proj4js.reportError("omercInitDataError")}else{this.con=Math.abs(this.lat1)}if((this.con<=Proj4js.common.EPSLN)||(Math.abs(this.con-HALF_PI)<=Proj4js.common.EPSLN)){Proj4js.reportError("omercInitDataError")}else{if(Math.abs(Math.abs(this.lat0)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN){Proj4js.reportError("omercInitDataError")}}this.singam=Math.sin(this.gam);this.cosgam=Math.cos(this.gam);this.sinaz=Math.sin(this.alpha);this.cosaz=Math.cos(this.alpha);if(this.lat0>=0){this.u=(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1)/this.cosaz)}else{this.u=-(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1)/this.cosaz)}}},forward:function(B){var l;var e,I;var H;var G,u,d;var g,C,E;var z,m,F;var v,D;var w;var a;var h;var f=B.x;var j=B.y;e=Math.sin(j);a=Proj4js.common.adjust_lon(f-this.longc);F=Math.sin(this.bl*a);if(Math.abs(Math.abs(j)-Proj4js.common.HALF_PI)>Proj4js.common.EPSLN){h=Proj4js.common.tsfnz(this.e,j,e);z=this.el/(Math.pow(h,this.bl));w=0.5*(z-1/z);u=0.5*(z+1/z);v=(w*this.singam-F*this.cosgam)/u;g=Math.cos(this.bl*a);if(Math.abs(g)<1e-7){m=this.al*this.bl*a}else{m=this.al*Math.atan((w*this.cosgam+F*this.singam)/g)/this.bl;if(g<0){m=m+Proj4js.common.PI*this.al/this.bl}}}else{if(j>=0){v=this.singam}else{v=-this.singam}m=this.al*j/this.bl}if(Math.abs(Math.abs(v)-1)<=Proj4js.common.EPSLN){Proj4js.reportError("omercFwdInfinity")}D=0.5*this.al*Math.log((1-v)/(1+v))/this.bl;m=m-this.u;var r=this.x0+D*this.cosaz+m*this.sinaz;var o=this.y0+m*this.cosaz-D*this.sinaz;B.x=r;B.y=o;return B},inverse:function(v){var I;var j;var f;var e,H;var G;var E,o,d;var g,w,C;var z,l,u,r,h;var D,m,F;var a;var B;v.x-=this.x0;v.y-=this.y0;B=0;z=v.x*this.cosaz-v.y*this.sinaz;l=v.y*this.cosaz+v.x*this.sinaz;l=l+this.u;u=Math.exp(-this.bl*z/this.al);r=0.5*(u-1/u);o=0.5*(u+1/u);D=Math.sin(this.bl*l/this.al);m=(D*this.cosgam+r*this.singam)/o;if(Math.abs(Math.abs(m)-1)<=Proj4js.common.EPSLN){lon=this.longc;if(m>=0){lat=Proj4js.common.HALF_PI}else{lat=-Proj4js.common.HALF_PI}}else{g=1/this.bl;h=Math.pow((this.el/Math.sqrt((1+m)/(1-m))),g);lat=Proj4js.common.phi2z(this.e,h);j=this.longc-Math.atan2((r*this.cosgam-D*this.singam),g)/this.bl;lon=Proj4js.common.adjust_lon(j)}v.x=lon;v.y=lat;return v}};Proj4js.Proj.lcc={init:function(){if(!this.lat2){this.lat2=this.lat0}if(!this.k0){this.k0=1}if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("lcc:init: Equal Latitudes");return}var m=this.b/this.a;this.e=Math.sqrt(1-m*m);var h=Math.sin(this.lat1);var f=Math.cos(this.lat1);var l=Proj4js.common.msfnz(this.e,h,f);var b=Proj4js.common.tsfnz(this.e,this.lat1,h);var g=Math.sin(this.lat2);var e=Math.cos(this.lat2);var j=Proj4js.common.msfnz(this.e,g,e);var a=Proj4js.common.tsfnz(this.e,this.lat2,g);var d=Proj4js.common.tsfnz(this.e,this.lat0,Math.sin(this.lat0));if(Math.abs(this.lat1-this.lat2)>Proj4js.common.EPSLN){this.ns=Math.log(l/j)/Math.log(b/a)}else{this.ns=h}this.f0=l/(this.ns*Math.pow(b,this.ns));this.rh=this.a*this.f0*Math.pow(d,this.ns);if(!this.title){this.title="Lambert Conformal Conic"}},forward:function(f){var g=f.x;var e=f.y;if(e<=90&&e>=-90&&g<=180&&g>=-180){}else{Proj4js.reportError("lcc:forward: llInputOutOfRange: "+g+" : "+e);return null}var a=Math.abs(Math.abs(e)-Proj4js.common.HALF_PI);var d,h;if(a>Proj4js.common.EPSLN){d=Proj4js.common.tsfnz(this.e,e,Math.sin(e));h=this.a*this.f0*Math.pow(d,this.ns)}else{a=e*this.ns;if(a<=0){Proj4js.reportError("lcc:forward: No Projection");return null}h=0}var b=this.ns*Proj4js.common.adjust_lon(g-this.long0);f.x=this.k0*(h*Math.sin(b))+this.x0;f.y=this.k0*(this.rh-h*Math.cos(b))+this.y0;return f},inverse:function(f){var h,a,d;var e,g;x=(f.x-this.x0)/this.k0;y=(this.rh-(f.y-this.y0)/this.k0);if(this.ns>0){h=Math.sqrt(x*x+y*y);a=1}else{h=-Math.sqrt(x*x+y*y);a=-1}var b=0;if(h!=0){b=Math.atan2((a*x),(a*y))}if((h!=0)||(this.ns>0)){a=1/this.ns;d=Math.pow((h/(this.a*this.f0)),a);e=Proj4js.common.phi2z(this.e,d);if(e==-9999){return null}}else{e=-Proj4js.common.HALF_PI}g=Proj4js.common.adjust_lon(b/this.ns+this.long0);f.x=g;f.y=e;return f}};Proj4js.Proj.laea={S_POLE:1,N_POLE:2,EQUIT:3,OBLIQ:4,init:function(){var a=Math.abs(this.lat0);if(Math.abs(a-Proj4js.common.HALF_PI)<Proj4js.common.EPSLN){this.mode=this.lat0<0?this.S_POLE:this.N_POLE}else{if(Math.abs(a)<Proj4js.common.EPSLN){this.mode=this.EQUIT}else{this.mode=this.OBLIQ}}if(this.es>0){var b;this.qp=Proj4js.common.qsfnz(this.e,1);this.mmf=0.5/(1-this.es);this.apa=this.authset(this.es);switch(this.mode){case this.N_POLE:case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(0.5*this.qp);this.dd=1/this.rq;this.xmf=1;this.ymf=0.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(0.5*this.qp);b=Math.sin(this.lat0);this.sinb1=Proj4js.common.qsfnz(this.e,b)/this.qp;this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1);this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*b*b)*this.rq*this.cosb1);this.ymf=(this.xmf=this.rq)/this.dd;this.xmf*=this.dd;break}}else{if(this.mode==this.OBLIQ){this.sinph0=Math.sin(this.lat0);this.cosph0=Math.cos(this.lat0)}}},forward:function(f){var u,o;var v=f.x;var l=f.y;v=Proj4js.common.adjust_lon(v-this.long0);if(this.sphere){var r,h,d;d=Math.sin(l);h=Math.cos(l);r=Math.cos(v);switch(this.mode){case this.EQUIT:o=(this.mode==this.EQUIT)?1+h*r:1+this.sinph0*d+this.cosph0*h*r;if(o<=Proj4js.common.EPSLN){Proj4js.reportError("laea:fwd:y less than eps");return null}o=Math.sqrt(2/o);u=o*h*Math.sin(v);o*=(this.mode==this.EQUIT)?d:this.cosph0*d-this.sinph0*h*r;break;case this.N_POLE:r=-r;case this.S_POLE:if(Math.abs(l+this.phi0)<Proj4js.common.EPSLN){Proj4js.reportError("laea:fwd:phi < eps");return null}o=Proj4js.common.FORTPI-l*0.5;o=2*((this.mode==this.S_POLE)?Math.cos(o):Math.sin(o));u=o*Math.sin(v);o*=r;break}}else{var r,j,d,e,g=0,a=0,m=0;r=Math.cos(v);j=Math.sin(v);d=Math.sin(l);e=Proj4js.common.qsfnz(this.e,d);if(this.mode==this.OBLIQ||this.mode==this.EQUIT){g=e/this.qp;a=Math.sqrt(1-g*g)}switch(this.mode){case this.OBLIQ:m=1+this.sinb1*g+this.cosb1*a*r;break;case this.EQUIT:m=1+a*r;break;case this.N_POLE:m=Proj4js.common.HALF_PI+l;e=this.qp-e;break;case this.S_POLE:m=l-Proj4js.common.HALF_PI;e=this.qp+e;break}if(Math.abs(m)<Proj4js.common.EPSLN){Proj4js.reportError("laea:fwd:b < eps");return null}switch(this.mode){case this.OBLIQ:case this.EQUIT:m=Math.sqrt(2/m);if(this.mode==this.OBLIQ){o=this.ymf*m*(this.cosb1*g-this.sinb1*a*r)}else{o=(m=Math.sqrt(2/(1+a*r)))*g*this.ymf}u=this.xmf*m*a*j;break;case this.N_POLE:case this.S_POLE:if(e>=0){u=(m=Math.sqrt(e))*j;o=r*((this.mode==this.S_POLE)?m:-m)}else{u=o=0}break}}f.x=this.a*u+this.x0;f.y=this.a*o+this.y0;return f},inverse:function(b){b.x-=this.x0;b.y-=this.y0;var j=b.x/this.a;var g=b.y/this.a;if(this.sphere){var r=0,m,d=0;m=Math.sqrt(j*j+g*g);var f=m*0.5;if(f>1){Proj4js.reportError("laea:Inv:DataError");return null}f=2*Math.asin(f);if(this.mode==this.OBLIQ||this.mode==this.EQUIT){d=Math.sin(f);r=Math.cos(f)}switch(this.mode){case this.EQUIT:f=(Math.abs(m)<=Proj4js.common.EPSLN)?0:Math.asin(g*d/m);j*=d;g=r*m;break;case this.OBLIQ:f=(Math.abs(m)<=Proj4js.common.EPSLN)?this.phi0:Math.asin(r*sinph0+g*d*cosph0/m);j*=d*cosph0;g=(r-Math.sin(f)*sinph0)*m;break;case this.N_POLE:g=-g;f=Proj4js.common.HALF_PI-f;break;case this.S_POLE:f-=Proj4js.common.HALF_PI;break}lam=(g==0&&(this.mode==this.EQUIT||this.mode==this.OBLIQ))?0:Math.atan2(j,g)}else{var l,e,a,h,o=0;switch(this.mode){case this.EQUIT:case this.OBLIQ:j/=this.dd;g*=this.dd;h=Math.sqrt(j*j+g*g);if(h<Proj4js.common.EPSLN){b.x=0;b.y=this.phi0;return b}e=2*Math.asin(0.5*h/this.rq);l=Math.cos(e);j*=(e=Math.sin(e));if(this.mode==this.OBLIQ){o=l*this.sinb1+g*e*this.cosb1/h;a=this.qp*o;g=h*this.cosb1*l-g*this.sinb1*e}else{o=g*e/h;a=this.qp*o;g=h*l}break;case this.N_POLE:g=-g;case this.S_POLE:a=(j*j+g*g);if(!a){b.x=0;b.y=this.phi0;return b}o=1-a/this.qp;if(this.mode==this.S_POLE){o=-o}break}lam=Math.atan2(j,g);f=this.authlat(Math.asin(o),this.apa)}b.x=Proj4js.common.adjust_lon(this.long0+lam);b.y=f;return b},P00:0.3333333333333333,P01:0.17222222222222222,P02:0.10257936507936508,P10:0.06388888888888888,P11:0.0664021164021164,P20:0.016415012942191543,authset:function(b){var a;var d=new Array();d[0]=b*this.P00;a=b*b;d[0]+=a*this.P01;d[1]=a*this.P10;a*=b;d[0]+=a*this.P02;d[1]+=a*this.P11;d[2]=a*this.P20;return d},authlat:function(b,d){var a=b+b;return(b+d[0]*Math.sin(a)+d[1]*Math.sin(a+a)+d[2]*Math.sin(a+a+a))}};Proj4js.Proj.aeqd={init:function(){this.sin_p12=Math.sin(this.lat0);this.cos_p12=Math.cos(this.lat0)},forward:function(d){var b=d.x;var l=d.y;var f;var a=Math.sin(d.y);var e=Math.cos(d.y);var o=Proj4js.common.adjust_lon(b-this.long0);var m=Math.cos(o);var h=this.sin_p12*a+this.cos_p12*e*m;if(Math.abs(Math.abs(h)-1)<Proj4js.common.EPSLN){f=1;if(h<0){Proj4js.reportError("aeqd:Fwd:PointError");return}}else{var j=Math.acos(h);f=j/Math.sin(j)}d.x=this.x0+this.a*f*e*Math.sin(o);d.y=this.y0+this.a*f*(this.cos_p12*a-this.sin_p12*e*m);return d},inverse:function(b){b.x-=this.x0;b.y-=this.y0;var h=Math.sqrt(b.x*b.x+b.y*b.y);if(h>(2*Proj4js.common.HALF_PI*this.a)){Proj4js.reportError("aeqdInvDataError");return}var f=h/this.a;var e=Math.sin(f);var l=Math.cos(f);var a=this.long0;var g;if(Math.abs(h)<=Proj4js.common.EPSLN){g=this.lat0}else{g=Proj4js.common.asinz(l*this.sin_p12+(b.y*e*this.cos_p12)/h);var d=Math.abs(this.lat0)-Proj4js.common.HALF_PI;if(Math.abs(d)<=Proj4js.common.EPSLN){if(lat0>=0){a=Proj4js.common.adjust_lon(this.long0+Math.atan2(b.x,-b.y))}else{a=Proj4js.common.adjust_lon(this.long0-Math.atan2(-b.x,b.y))}}else{d=l-this.sin_p12*Math.sin(g);if((Math.abs(d)<Proj4js.common.EPSLN)&&(Math.abs(b.x)<Proj4js.common.EPSLN)){}else{var j=Math.atan2((b.x*e*this.cos_p12),(d*h));a=Proj4js.common.adjust_lon(this.long0+Math.atan2((b.x*e*this.cos_p12),(d*h)))}}}b.x=a;b.y=g;return b}};Proj4js.Proj.moll={init:function(){},forward:function(d){var a=d.x;var j=d.y;var g=Proj4js.common.adjust_lon(a-this.long0);var f=j;var e=Proj4js.common.PI*Math.sin(j);for(var h=0;true;h++){var b=-(f+Math.sin(f)-e)/(1+Math.cos(f));f+=b;if(Math.abs(b)<Proj4js.common.EPSLN){break}if(h>=50){Proj4js.reportError("moll:Fwd:IterationError")}}f/=2;if(Proj4js.common.PI/2-Math.abs(j)<Proj4js.common.EPSLN){g=0}var m=0.900316316158*this.a*g*Math.cos(f)+this.x0;var l=1.4142135623731*this.a*Math.sin(f)+this.y0;d.x=m;d.y=l;return d},inverse:function(e){var b;var a;e.x-=this.x0;var a=e.y/(1.4142135623731*this.a);if(Math.abs(a)>0.999999999999){a=0.999999999999}var b=Math.asin(a);var f=Proj4js.common.adjust_lon(this.long0+(e.x/(0.900316316158*this.a*Math.cos(b))));if(f<(-Proj4js.common.PI)){f=-Proj4js.common.PI}if(f>Proj4js.common.PI){f=Proj4js.common.PI}a=(2*b+Math.sin(2*b))/Proj4js.common.PI;if(Math.abs(a)>1){a=1}var d=Math.asin(a);e.x=f;e.y=d;return e}};Proj4js.defs["EPSG:3435"]="+title=NAD83 / Illinois State Plane East (ftUS) +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs";Proj4js.defs["EPSG:4326"]="+title=WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";Proj4js.defs["EPSG:26971"]="+title=NAD83 / Illinois State Plane East (m) +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs";Proj4js.defs["EPSG:900913"]="+title= Google Mercator EPSG:900913 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";
