get-epsg-code
Version:
Gets EPSG Code for Various Inputs (incl. OGC WKT, ESRI WKT, GML, Mapfile, PROJ String, Proj4js String, XML)
6 lines • 121 kB
JavaScript
var oe=Object.defineProperty;var s=(A,e)=>oe(A,"name",{value:e,configurable:!0});var D=(A,e)=>()=>(e||A((e={exports:{}}).exports,e),e.exports);var sA=D((rt,P)=>{var B={};B.char2bits={0:"110100",1:"110101",2:"110110",3:"110111",4:"111000",5:"111001",6:"111010",7:"111011",8:"111100",9:"111101",A:"000000",Q:"010000",g:"100000",w:"110000",B:"000001",R:"010001",h:"100001",x:"110001",C:"000010",S:"010010",i:"100010",y:"110010",D:"000011",T:"010011",j:"100011",z:"110011",E:"000100",U:"010100",k:"100100",F:"000101",V:"010101",l:"100101",G:"000110",W:"010110",m:"100110",H:"000111",X:"010111",n:"100111",I:"001000",Y:"011000",o:"101000",J:"001001",Z:"011001",p:"101001",K:"001010",a:"011010",q:"101010",L:"001011",b:"011011",r:"101011",M:"001100",c:"011100",s:"101100",N:"001101",d:"011101",t:"101101",O:"001110",e:"011110",u:"101110","+":"111110",P:"001111",f:"011111",v:"101111","/":"111111"};B.toArrayBuffer=s(function(e){var t=B.char2bits,r=0;for(let f=e.length;f>=0;f--)e[f]==="="&&r++;for(var o=e.length-r,g=Math.floor(.75*o),n=new Uint8Array(g),C="",Q=0;Q<o;Q++){var i=e[Q];if(i==="=")break;C+=t[i],C.length>=8&&(n[Math.floor(.75*Q)]=parseInt(C.substring(0,8),2),C=C.substring(8))}return n.buffer},"toArrayBuffer");B.toBase64String=s(function(e){if(!B.bits2char){B.bits2char={};for(let Q in B.char2bits)B.bits2char[B.char2bits[Q]]=Q}for(var t=B.bits2char,r=new Uint8Array(e),o="",g="",n=0;n<r.length;n++){for(var C=r[n].toString(2);C.length<8;)C="0"+C;for(g+=C;g.length>=6;)o+=t[g.substring(0,6)],g=g.substring(6)}if(g.length>0){for(;g.length<6;)g+="0";o+=t[g]}for(;o.length%4!==0;)o+="=";return o},"toBase64String");typeof define=="function"&&define.amd&&define(function(){return B});typeof P=="object"&&(P.exports=B);typeof window=="object"&&(window.b64ab=B);typeof self=="object"&&(self.b64ab=B)});var nA=D((gt,L)=>{function QA(A,e,t){let o=new RegExp(e).exec(A.slice(t));return o?t+o.index:-1}s(QA,"indexOfMatch");L.exports=QA;L.exports.default=QA});var DA=D((st,T)=>{function iA(A,e,t){let o=new RegExp(e).exec(A.slice(t));return o?t+o.index+o[0].length-1:-1}s(iA,"indexOfMatchEnd");T.exports=iA;T.exports.default=iA});var aA=D((nt,K)=>{function fA(A,e){let t=new RegExp(e,"g"),r=A.match(t);return r?r.length:0}s(fA,"countSubstring");K.exports=fA;K.exports.default=fA});var U=D((Dt,y)=>{var ge=nA(),m=DA(),BA=aA();function EA(A,e,t){let r=t&&t.debug||!1,o=!(t&&typeof t.nested===!1),g=t&&t.startIndex||0;r&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let n=ge(A,`<${e}[
>/]`,g);if(r&&console.log("[xml-utils] start:",n),n===-1)return;let C=A.slice(n+e.length),Q=m(C,"^[^<]*[ /]>",0),i=Q!==-1&&C[Q-1]==="/";if(r&&console.log("[xml-utils] selfClosing:",i),i===!1)if(o){let J=0,oA=1,gA=0;for(;(Q=m(C,"[ /]"+e+">",J))!==-1;){let CA=C.substring(J,Q+1);if(oA+=BA(CA,"<"+e+`[
>]`),gA+=BA(CA,"</"+e+">"),gA>=oA)break;J=Q}}else Q=m(C,"[ /]"+e+">",0);let f=n+e.length+Q+1;if(r&&console.log("[xml-utils] end:",f),f===-1)return;let a=A.slice(n,f),l;return i?l=null:l=a.slice(a.indexOf(">")+1,a.lastIndexOf("<")),{inner:l,outer:a,start:n,end:f}}s(EA,"findTagByName");y.exports=EA;y.exports.default=EA});var lA=D((at,S)=>{var Ce=U();function cA(A,e,t){let r=[],o=t&&t.debug||!1,g=t&&typeof t.nested=="boolean"?t.nested:!0,n=t&&t.startIndex||0,C;for(;C=Ce(A,e,{debug:o,startIndex:n});)g?n=C.start+1+e.length:n=C.end,r.push(C);return o&&console.log("findTagsByName found",r.length,"tags"),r}s(cA,"findTagsByName");S.exports=cA;S.exports.default=cA});var uA=D((Et,V)=>{var wA=lA();function dA(A,e,t){let r=t&&t.debug||!1,o=t&&t.returnOnFirst||!1,g=wA(A,e.shift(),{debug:r,nested:!1});r&&console.log("first tags are:",g);for(let n=0;n<e.length;n++){let C=e[n];r&&console.log("tagName:",C);let Q=[];for(let i=0;i<g.length;i++){let f=g[i],a=wA(f.outer,C,{debug:r,startIndex:1});if(r&&console.log("subTags.length:",a.length),a.length>0){if(a.forEach(l=>{l.start+=f.start,l.end+=f.start}),o&&n===e.length-1)return[a[0]];Q=Q.concat(a)}}g=Q}return g}s(dA,"findTagsByPath");V.exports=dA;V.exports.default=dA});var GA=D((lt,k)=>{var se=uA();function IA(A,e,t){let r=t&&t.debug||!1,o=se(A,e,{debug:r,returnOnFirst:!0});if(Array.isArray(o)&&o.length===1)return o[0]}s(IA,"findTagByPath");k.exports=IA;k.exports.default=IA});var MA=D((dt,W)=>{function hA(A,e,t){let r=t&&t.debug||!1;r&&console.log("[xml-utils] getting "+e+" in "+A);let o=typeof A=="object"?A.outer:A,g=o.slice(0,o.indexOf(">")+1),n=['"',"'"];for(let C=0;C<n.length;C++){let Q=n[C],i=e+"\\="+Q+"([^"+Q+"]*)"+Q;r&&console.log("[xml-utils] pattern:",i);let a=new RegExp(i).exec(g);if(r&&console.log("[xml-utils] match:",a),a)return a[1]}}s(hA,"getAttribute");W.exports=hA;W.exports.default=hA});var FA=D((It,pA)=>{"use strict";var d=1,NA=2,RA=3,h=4,OA=5,Y=-1,Qe=/\s/,ne=/[A-Za-z]/,ie=/[A-Za-z84_]/,M=/[,\]]/,HA=/[\d\.E\-\+]/;function c(A){if(typeof A!="string")throw new Error("not a string");this.text=A.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=d}s(c,"Parser");c.prototype.readCharicter=function(){var A=this.text[this.place++];if(this.state!==h)for(;Qe.test(A);){if(this.place>=this.text.length)return;A=this.text[this.place++]}switch(this.state){case d:return this.neutral(A);case NA:return this.keyword(A);case h:return this.quoted(A);case OA:return this.afterquote(A);case RA:return this.number(A);case Y:return}};c.prototype.afterquote=function(A){if(A==='"'){this.word+='"',this.state=h;return}if(M.test(A)){this.word=this.word.trim(),this.afterItem(A);return}throw new Error(`havn't handled "`+A+'" in afterquote yet, index '+this.place)};c.prototype.afterItem=function(A){if(A===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=d;return}if(A==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=d,this.currentObject=this.stack.pop(),this.currentObject||(this.state=Y);return}};c.prototype.number=function(A){if(HA.test(A)){this.word+=A;return}if(M.test(A)){this.word=parseFloat(this.word),this.afterItem(A);return}throw new Error(`havn't handled "`+A+'" in number yet, index '+this.place)};c.prototype.quoted=function(A){if(A==='"'){this.state=OA;return}this.word+=A};c.prototype.keyword=function(A){if(ie.test(A)){this.word+=A;return}if(A==="["){var e=[];e.push(this.word),this.level++,this.root===null?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,this.state=d;return}if(M.test(A)){this.afterItem(A);return}throw new Error(`havn't handled "`+A+'" in keyword yet, index '+this.place)};c.prototype.neutral=function(A){if(ne.test(A)){this.word=A,this.state=NA;return}if(A==='"'){this.word="",this.state=h;return}if(HA.test(A)){this.word=A,this.state=RA;return}if(M.test(A)){this.afterItem(A);return}throw new Error(`havn't handled "`+A+'" in neutral yet, index '+this.place)};c.prototype.output=function(){for(;this.place<this.text.length;)this.readCharicter();if(this.state===Y)return this.root;throw new Error('unable to parse string "'+this.text+'". State is '+this.state)};function De(A){var e=new c(A);return e.output()}s(De,"parseString");function xA(A,e,t){Array.isArray(e)&&(t.unshift(e),e=null);var r=e?{}:A,o=t.reduce(function(g,n){return w(n,g),g},r);e&&(A[e]=o)}s(xA,"mapit");function w(A,e){if(!Array.isArray(A)){e[A]=!0;return}var t=A.shift();if(t==="PARAMETER"&&(t=A.shift()),A.length===1){if(Array.isArray(A[0])){e[t]={},w(A[0],e[t]);return}e[t]=A[0];return}if(!A.length){e[t]=!0;return}if(t==="TOWGS84"){e[t]=A;return}if(t==="AXIS"){t in e||(e[t]=[]),e[t].push(A);return}Array.isArray(t)||(e[t]={});var r;switch(t){case"UNIT":case"PRIMEM":case"VERT_DATUM":e[t]={name:A[0].toLowerCase(),convert:A[1]},A.length===3&&w(A[2],e[t]);return;case"SPHEROID":case"ELLIPSOID":e[t]={name:A[0],a:A[1],rf:A[2]},A.length===4&&w(A[3],e[t]);return;case"PROJECTEDCRS":case"PROJCRS":case"GEOGCS":case"GEOCCS":case"PROJCS":case"LOCAL_CS":case"GEODCRS":case"GEODETICCRS":case"GEODETICDATUM":case"EDATUM":case"ENGINEERINGDATUM":case"VERT_CS":case"VERTCRS":case"VERTICALCRS":case"COMPD_CS":case"COMPOUNDCRS":case"ENGINEERINGCRS":case"ENGCRS":case"FITTED_CS":case"LOCAL_DATUM":case"DATUM":A[0]=["name",A[0]],xA(e,t,A);return;default:for(r=-1;++r<A.length;)if(!Array.isArray(A[r]))return w(A,e[t]);return xA(e,t,A)}}s(w,"sExpr");var fe=.017453292519943295;function ae(A,e){var t=e[0],r=e[1];!(t in A)&&r in A&&(A[t]=A[r],e.length===3&&(A[t]=e[2](A[t])))}s(ae,"rename");function E(A){return A*fe}s(E,"d2r");function Be(A){if(A.type==="GEOGCS"?A.projName="longlat":A.type==="LOCAL_CS"?(A.projName="identity",A.local=!0):typeof A.PROJECTION=="object"?A.projName=Object.keys(A.PROJECTION)[0]:A.projName=A.PROJECTION,A.AXIS){for(var e="",t=0,r=A.AXIS.length;t<r;++t){var o=[A.AXIS[t][0].toLowerCase(),A.AXIS[t][1].toLowerCase()];o[0].indexOf("north")!==-1||(o[0]==="y"||o[0]==="lat")&&o[1]==="north"?e+="n":o[0].indexOf("south")!==-1||(o[0]==="y"||o[0]==="lat")&&o[1]==="south"?e+="s":o[0].indexOf("east")!==-1||(o[0]==="x"||o[0]==="lon")&&o[1]==="east"?e+="e":(o[0].indexOf("west")!==-1||(o[0]==="x"||o[0]==="lon")&&o[1]==="west")&&(e+="w")}e.length===2&&(e+="u"),e.length===3&&(A.axis=e)}A.UNIT&&(A.units=A.UNIT.name.toLowerCase(),A.units==="metre"&&(A.units="meter"),A.UNIT.convert&&(A.type==="GEOGCS"?A.DATUM&&A.DATUM.SPHEROID&&(A.to_meter=A.UNIT.convert*A.DATUM.SPHEROID.a):A.to_meter=A.UNIT.convert));var g=A.GEOGCS;A.type==="GEOGCS"&&(g=A),g&&(g.DATUM?A.datumCode=g.DATUM.name.toLowerCase():A.datumCode=g.name.toLowerCase(),A.datumCode.slice(0,2)==="d_"&&(A.datumCode=A.datumCode.slice(2)),(A.datumCode==="new_zealand_geodetic_datum_1949"||A.datumCode==="new_zealand_1949")&&(A.datumCode="nzgd49"),(A.datumCode==="wgs_1984"||A.datumCode==="world_geodetic_system_1984")&&(A.PROJECTION==="Mercator_Auxiliary_Sphere"&&(A.sphere=!0),A.datumCode="wgs84"),A.datumCode.slice(-6)==="_ferro"&&(A.datumCode=A.datumCode.slice(0,-6)),A.datumCode.slice(-8)==="_jakarta"&&(A.datumCode=A.datumCode.slice(0,-8)),~A.datumCode.indexOf("belge")&&(A.datumCode="rnb72"),g.DATUM&&g.DATUM.SPHEROID&&(A.ellps=g.DATUM.SPHEROID.name.replace("_19","").replace(/[Cc]larke\_18/,"clrk"),A.ellps.toLowerCase().slice(0,13)==="international"&&(A.ellps="intl"),A.a=g.DATUM.SPHEROID.a,A.rf=parseFloat(g.DATUM.SPHEROID.rf,10)),g.DATUM&&g.DATUM.TOWGS84&&(A.datum_params=g.DATUM.TOWGS84),~A.datumCode.indexOf("osgb_1936")&&(A.datumCode="osgb36"),~A.datumCode.indexOf("osni_1952")&&(A.datumCode="osni52"),(~A.datumCode.indexOf("tm65")||~A.datumCode.indexOf("geodetic_datum_of_1965"))&&(A.datumCode="ire65"),A.datumCode==="ch1903+"&&(A.datumCode="ch1903"),~A.datumCode.indexOf("israel")&&(A.datumCode="isr93")),A.b&&!isFinite(A.b)&&(A.b=A.a);function n(i){var f=A.to_meter||1;return i*f}s(n,"toMeter");var C=s(function(i){return ae(A,i)},"renamer"),Q=[["standard_parallel_1","Standard_Parallel_1"],["standard_parallel_1","Latitude of 1st standard parallel"],["standard_parallel_2","Standard_Parallel_2"],["standard_parallel_2","Latitude of 2nd standard parallel"],["false_easting","False_Easting"],["false_easting","False easting"],["false-easting","Easting at false origin"],["false_northing","False_Northing"],["false_northing","False northing"],["false_northing","Northing at false origin"],["central_meridian","Central_Meridian"],["central_meridian","Longitude of natural origin"],["central_meridian","Longitude of false origin"],["latitude_of_origin","Latitude_Of_Origin"],["latitude_of_origin","Central_Parallel"],["latitude_of_origin","Latitude of natural origin"],["latitude_of_origin","Latitude of false origin"],["scale_factor","Scale_Factor"],["k0","scale_factor"],["latitude_of_center","Latitude_Of_Center"],["latitude_of_center","Latitude_of_center"],["lat0","latitude_of_center",E],["longitude_of_center","Longitude_Of_Center"],["longitude_of_center","Longitude_of_center"],["longc","longitude_of_center",E],["x0","false_easting",n],["y0","false_northing",n],["long0","central_meridian",E],["lat0","latitude_of_origin",E],["lat0","standard_parallel_1",E],["lat1","standard_parallel_1",E],["lat2","standard_parallel_2",E],["azimuth","Azimuth"],["alpha","azimuth",E],["srsCode","name"]];Q.forEach(C),!A.long0&&A.longc&&(A.projName==="Albers_Conic_Equal_Area"||A.projName==="Lambert_Azimuthal_Equal_Area")&&(A.long0=A.longc),!A.lat_ts&&A.lat1&&(A.projName==="Stereographic_South_Pole"||A.projName==="Polar Stereographic (variant B)")?(A.lat0=E(A.lat1>0?90:-90),A.lat_ts=A.lat1):!A.lat_ts&&A.lat0&&A.projName==="Polar_Stereographic"&&(A.lat_ts=A.lat0,A.lat0=E(A.lat0>0?90:-90))}s(Be,"cleanWKT");var Ee=s(function(A){var e=De(A),t=e.shift(),r=e.shift();e.unshift(["name",r]),e.unshift(["type",t]);var o={};return w(e,o),Be(o),o},"index");pA.exports=Ee});var JA=D((ht,x)=>{function q(A){if(!A)return;let e=/PROJCS\[\"([^"]+)\"/.exec(A);if(!e)return;let t=e[1];if(t.match(/^WGS_1984_UTM_Zone_\d{1,2}(N|S)$/)){let r=t.split("_").pop(),o=r.substring(0,r.length-1),g=r.substring(r.length-1)=="N"?6:7;return Number.parseInt("32"+g+o)}else if(t.match(/^NAD_1983_UTM_Zone_\d{1,2}N$/)){let r=t.split("_").pop(),o=r.substring(0,r.length-1);return Number.parseInt("269"+o)}}s(q,"getCodeFromEsriWKT");typeof define=="function"&&define.amd&&define(function(){return q});typeof x=="object"&&(x.exports=q,x.exports.default=q)});var PA=D((xt,N)=>{function X(A){if(A.includes("+proj=utm")&&A.includes("+zone=")){let e=A.split(" "),t=e.find(g=>g.startsWith("+zone=")).split("=")[1],r=A.includes("+south"),o=e.find(g=>g.startsWith("+ellps="));if(o&&(o=o.split("=")[1]),o==="GRS80"&&r===!1)return Number.parseInt("269"+t);{let g=r?"7":"6";return Number.parseInt("32"+g+t)}}}s(X,"getCodeFromProjString");typeof define=="function"&&define.amd&&define(function(){return X});typeof N=="object"&&(N.exports=X,N.exports.default=X)});var TA=D((Rt,Z)=>{function LA(A){A=A.trim(),A=A.replace(/\n/g," "),A=A.replace(/\t/g," "),A=A.replace(/ +/g," ");let e=0,t,r;if(A.length===0)return e;let o=A.length;for(t=0;t<o;t++)r=A.charCodeAt(t),e=(e<<5)-e+r,e|=0;return e}s(LA,"hash32");Z.exports=LA;Z.exports.default=LA});var v=D((Ht,b)=>{function KA(A,{keywords:e}={}){let t=Object.keys(A).filter(r=>!/\d+/.test(r));if(!e){e=[];let r={};if(Array.isArray(A)){A.forEach(o=>{if(Array.isArray(o)&&o.length>=2&&typeof o[1]=="string"){let g=o[0];r[g]||(r[g]=0),r[g]++}});for(let o in r)r[o]>0&&e.push(o)}}return t.forEach(r=>{A[r]=KA(A[r])}),e.forEach(r=>{let o=[],g=[];A.forEach((n,C)=>{Array.isArray(n)&&n[0]===r&&(o.push(C),g.push(n))}),g.sort((n,C)=>(n=n[1].toString(),C=C[1].toString(),n<C?-1:n>C?1:0)),g.forEach((n,C)=>{A[o[C]]=n})}),A}s(KA,"sort");function ce(A,e){let t=typeof e=="object"&&e.raw===!0,r=typeof e=="object"&&e.debug===!0;r&&console.log(`[wktcrs] parse starting with
`,A),A=A.replace(/[A-Z][A-Z\d_]+\[/gi,function(C){return'["'+C.substr(0,C.length-1)+'",'}),A=A.replace(/, ?([A-Z][A-Z\d_]+[,\]])/gi,function(C,Q){let i=Q.substr(0,Q.length-1);return',"'+(t?"raw:":"")+i+'"'+Q[Q.length-1]}),typeof e=="object"&&e.raw===!0&&(A=A.replace(/, {0,2}(-?[\.\d]+)(?=,|\])/g,function(C,Q){return',"'+(t?"raw:":"")+Q+'"'})),r&&console.log("[wktcrs] json'd wkt: '"+A+"'");let o;try{o=JSON.parse(A)}catch(C){throw console.error(`[wktcrs] failed to parse '${A}'`),C}r&&console.log("[wktcrs] json parsed: '"+A+"'");function g(C,Q){let i=C[0];C.forEach(function(a){Array.isArray(a)&&g(a,C)});let f="MULTIPLE_"+i;return f in Q?Q[f].push(C):i in Q?(Q[f]=[Q[i],C],delete Q[i]):Q[i]=C,Q}s(g,"process");let n=g(o,[o]);return r&&console.log("[wktcrs] parse returning",n),{data:n}}s(ce,"parse");function mA(A,e){Array.isArray(A)&&A.length==1&&Array.isArray(A[0])&&(A=A[0]);let[t,...r]=A;return{data:t+"["+r.map(g=>{if(Array.isArray(g))return mA(g,e).data;if(typeof g=="number")return g.toString();if(typeof g=="string")return g.startsWith("raw:")?g.replace("raw:",""):'"'+g+'"';throw new Error('[wktcrs] unexpected attribute "'+g+'"')}).join(",")+"]"}}s(mA,"unparse");var R={parse:ce,unparse:mA,sort:KA};typeof define=="function"&&define(function(){return R});typeof b=="object"&&(b.exports=R);typeof window=="object"&&(window.wktcrs=R);typeof self=="object"&&(self.wktcrs=R)});var UA=D((Ft,z)=>{var j=v();function le(A){let{data:e}=j.parse(A,{raw:!0});return j.sort(e),j.unparse(e,{raw:!0}).data}s(le,"sort_wkt");function yA(A,{debug:e=!1}={debug:!1}){return A=A.trim(),A=A.replace(/\n/g," "),A=A.replace(/\t/g," "),A=A.replace(/ +/g," "),A=A.replace(/ /g,"_"),A=A.replace('GEOGCS["GCS_','GEOGCS["'),A=A.replace('DATUM["D_','DATUM["'),A=A.replace("Gauss_Kruger","GK"),A=A.replace(/\.\d{16,}/g,t=>t.substr(0,16)),A=A.replace(/\d+\.0[,"'\]]/g,t=>t.substring(0,t.indexOf("."))+t.charAt(t.length-1)),A=A.replace(/[_|"]1984[_|"]/g,t=>t.charAt(0)+"84"+t.charAt(t.length-1)),A=A.replace(/"[A-Za-z_\d]+"/g,t=>'"'+t.substring(1,t.length-1).toLowerCase()+'"'),A=le(A),e&&console.log('[get-epsg-code] wkt after cleaning: "'+A+'"'),A}s(yA,"normalize_wkt");z.exports=yA;z.exports.default=yA});var VA=D((Pt,_)=>{var we=UA();function SA(A,{debug:e=!1}={debug:!1}){return we(A,{debug:e})}s(SA,"normalize_esriwkt");_.exports=SA;_.exports.default=SA});var WA=D((Tt,$)=>{function kA(A,{debug:e=!1,remove_k1:t=!0,remove_no_defs:r=!0,remove_title:o=!0,remove_init:g=!0,remove_type:n=!0}={}){A=A.trim(),A=A.replace(/ +/g," ");let C=A.split(/ ?\+/g).filter(Q=>Q.trim()!=="").sort();return t&&(C=C.filter(Q=>Q!=="k=1")),r&&(C=C.filter(Q=>Q!=="no_defs")),n&&(C=C.filter(Q=>!Q.startsWith("type"))),g&&(C=C.filter(Q=>!Q.startsWith("init"))),o&&(C=C.filter(Q=>!Q.startsWith("title"))),A=C.map(Q=>"+"+Q).join(" "),e&&console.log(`normalized proj4 string
from "`+arguments[0]+`"
to "`+A+'"'),A}s(kA,"normalize_proj4");$.exports=kA;$.exports.default=kA});var qA=D((mt,O)=>{var YA=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS","PRIMEM","DATUM"];function u(A){if(A=A.trim(),A.startsWith("PROJCS[")||A.startsWith("PROJCRS[")||A.startsWith("GEOGCS[")||A.startsWith("GEOGCRS["))for(let e=0;e<YA.length;e++){let t=YA[e];if(A.includes(t+"["))return!0}else return!1}s(u,"isWKT");typeof define=="function"&&define.amd&&define(function(){return u});typeof O=="object"&&(O.exports=u,O.exports.default=u);typeof self=="object"&&(self.isWKT=u);typeof window=="object"&&(window.isWKT=u)});var AA=D((Ut,XA)=>{var de={ESRI_WKT:"esriwkt",GEOSERVER:"geoserver",MAPFILE:"mapfile",MAPNIK:"mapnik",OGC_GML:"gml",OGC_XML:"xml",OGC_WKT:"wkt",POSTGIS:"postgis",PROJ_4:"proj4",PROJ_4_JS:"js",PROJJSON:"PROJJSON",WKT_2:"wkt2"};XA.exports={FORMATS:de}});var bA=D((St,eA)=>{var ue=qA(),Ie=v(),{FORMATS:Ge}=AA(),{ESRI_WKT:he,GEOSERVER:Me,MAPFILE:xe,MAPNIK:Ne,OGC_GML:Re,OGC_XML:Oe,OGC_WKT:He,POSTGIS:pe,PROJ_4:Fe,PROJ_4_JS:Je,PROJJSON:Pe,WKT_2:Le}=Ge;function ZA(A,{debug:e=!1}={debug:!1}){if(A.startsWith("{")&&A.includes("projjson"))return Pe;if(ue(A)){let t=Ie.parse(A.toUpperCase()).data;return"AUTHORITY"in(t.PROJCS||t.PROJCRS||t.GEOGCS||t.GEOGCRS)?He:"ID"in t?Le:he}else return A.includes("gml:ProjectedCRS")||A.includes("gml:GeodeticCRS")||A.includes("gml:GeographicCRS")?A.includes("gml:srsID")?Oe:Re:A.startsWith("+")&&A.includes("+proj=")?Fe:A.startsWith("proj4.defs(")?Je:/^\d{1,6}\=(PROJCS|GEOGCS)/.test(A)?Me:A.startsWith("PROJECTION")&&A.endsWith("END")?xe:A.endsWith("</Map>")?Ne:A.startsWith("INSERT")?pe:(e&&console.log('get-proj-type could not identify "'+A+'"'),"SOMETHING ELSE")}s(ZA,"getProjType");eA.exports=ZA;eA.exports.default=ZA});var jA=D((kt,tA)=>{function vA(A,{debug:e=!1}={debug:!1}){let t=A.indexOf(":")+1,r=A.indexOf('"',t+2),o=A.substring(t,r);if(e&&console.log('parseProj4JS str: "'+o+'"'),o)return Number(o)}s(vA,"parseProj4JS");tA.exports=vA;tA.exports.default=vA});var zA=D((Yt,Te)=>{Te.exports={properties:{columns:["epsg_code","esriwkt","mapfile","proj4"],key:"epsg_code",dataType:"int32"},data:"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