projection.js 20 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.24/esri/copyright.txt for details.
  4. */
  5. import n from"../core/Error.js";import{clamp as e,deg2rad as t,rad2deg as r,asinClamped as l}from"../core/mathUtils.js";import{isSome as u,isNone as o,unwrap as s}from"../core/maybe.js";import{throwIfAborted as i,waitTick as a}from"../core/promiseUtils.js";import{getMetersPerUnitForSR as c}from"../core/unitUtils.js";import{trackAccess as E}from"../core/accessorSupport/tracking.js";import{SimpleObservable as C}from"../core/accessorSupport/tracking/SimpleObservable.js";import{f as R,i as A,t as f}from"../chunks/mat4.js";import{s as _,c as S,a as P,b as L,n as M,l as O}from"../chunks/vec3.js";import{c as p}from"../chunks/vec3f64.js";import N from"./Extent.js";import G from"./Multipoint.js";import{p as h,i as W,l as m}from"../chunks/pe.js";import T from"./Point.js";import F from"./Polygon.js";import I from"./Polyline.js";import{SphericalECEFSpatialReference as d,WGS84ECEFSpatialReference as H,SphericalPCPFMars as g,SphericalPCPFMoon as B}from"./projectionEllipsoid.js";import{copy as j}from"./support/aaBoundingRect.js";import{earth as y,moon as w,mars as U}from"./support/Ellipsoid.js";import{earthEllipsoidConstants as x}from"./support/geodesicConstants.js";import K from"./support/GeographicTransformation.js";import{equals as b,isValid as k,isWGS84 as z,isWebMercator as v,isPlateCarree as q,isMars as Z,isMoon as V}from"./support/spatialReferenceUtils.js";import{SupportedGCSWkids as X}from"./support/SupportedGCSWkids.js";import{getGeometryZScaler as D}from"./support/zscale.js";let J=null,Q=null,Y=null,$={};const nn=new C;function en(){return!!J&&W()}function tn(n){return o(Y)&&(Y=Promise.all([m(),import("../chunks/geometryEngineBase.js").then((n=>n.g)),import("./geometryAdapters/hydrated.js")])),Y.then((([,e,{hydratedAdapter:t}])=>{i(n),Q=t,J=e.default,J._enableProjection(h),nn.notify()}))}function rn(n,e,t=null,r=null){return Array.isArray(n)?0===n.length?[]:ln(Q,n,n[0].spatialReference,e,t,r):ln(Q,[n],n.spatialReference,e,t,r)[0]}function ln(n,e,t,r,l=null,i=null){if(o(t)||o(r))return e;if(An(t,r,l))return e.map((n=>s(Sn(n,t,r))));if(o(l)){const n=K.cacheKey(t,r);void 0!==$[n]?l=$[n]:(l=on(t,r,null),o(l)&&(l=new K),$[n]=l)}if(o(J))throw new an;return u(i)?J._project(n,e,t,r,l,i):J._project(n,e,t,r,l)}function un(n,e){return o(n)?{pending:null,geometry:null}:b(n.spatialReference,e)?{pending:null,geometry:n}:k(n.spatialReference)&&k(e)?An(n.spatialReference,e)||en()?{pending:null,geometry:Rn(n,e)}:(E(nn),{pending:tn(),geometry:null}):{pending:null,geometry:null}}function on(n,e,t=null){if(o(J))throw new an;if(o(n)||o(e))return null;const r=J._getTransformation(Q,n,e,t,t?.spatialReference);return null!==r?K.fromGE(r):null}function sn(n,e,t=null){if(o(J))throw new an;const r=J._getTransformationBySuitability(Q,n,e,t,t?.spatialReference);if(null!==r){const n=[];for(const e of r)n.push(K.fromGE(e));return n}return[]}class an extends n{constructor(){super("projection:not-loaded","projection engine not fully loaded yet, please call load()")}}var cn;function En(){J=null,Q=null,Y=null,$={}}!function(n){n[n.UNKNOWN=0]="UNKNOWN",n[n.SPHERICAL_ECEF=1]="SPHERICAL_ECEF",n[n.WGS84=2]="WGS84",n[n.WEB_MERCATOR=3]="WEB_MERCATOR",n[n.WGS84_ECEF=4]="WGS84_ECEF",n[n.CGCS2000=5]="CGCS2000",n[n.WGS84_COMPARABLE_LON_LAT=6]="WGS84_COMPARABLE_LON_LAT",n[n.SPHERICAL_MARS_PCPF=7]="SPHERICAL_MARS_PCPF",n[n.GCSMARS2000=8]="GCSMARS2000",n[n.SPHERICAL_MOON_PCPF=9]="SPHERICAL_MOON_PCPF",n[n.GCSMOON2000=10]="GCSMOON2000",n[n.LON_LAT=11]="LON_LAT",n[n.PLATE_CARREE=12]="PLATE_CARREE"}(cn||(cn={}));const Cn={get loadPromise(){return Y}};function Rn(n,e){try{const t=rn(n,e);if(null==t)return null;"xmin"in n&&"xmin"in t&&(t.zmin=n.zmin,t.zmax=n.zmax);const r=D(t.type,n.spatialReference,e);return u(r)&&r(t),t}catch(t){if(!(t instanceof an))throw t;return null}}function An(n,e,t){return!t&&(!!b(n,e)||k(n)&&k(e)&&!!Ie(n,e,je))}async function fn(n,e,t,r){if(en())return a(r);if(Array.isArray(n)){for(const{source:l,dest:u,geographicTransformation:o}of n)if(!An(l,u,o))return tn(r)}else if(!An(n,e,t))return tn(r);return a(r)}function _n(n,e){switch(Ie(n,e,je)){case Jn:return"copy3";case Se:return"wgs84ToSphericalECEF";case ee:return"wgs84ToWebMercator";case le:return"wgs84ToPlateCarree";case he:return"wgs84ToWGS84ECEF";case Qn:return"webMercatorToWGS84";case Yn:return"webMercatorToSphericalECEF";case $n:return"webMercatorToWGS84ECEF";case oe:return"webMercatorToPlateCarree";case We:return"wgs84ECEFToWGS84";case me:return"wgs84ECEFToSphericalECEF";case Te:return"wgs84ECEFToWebMercator";case Oe:return"sphericalECEFToWGS84";case pe:return"sphericalECEFToWebMercator";case Me:return"sphericalMarsPCPFToMars2000";case Le:return"sphericalMoonPCPFToMoon2000";case Ne:return"sphericalECEFToWGS84ECEF";case _e:return"mars2000ToSphericalPCPF";case fe:return"moon2000ToSphericalPCPF";default:return null}}function Sn(n,e,t){return n?"x"in n?Ln(n,e,new T,t,0):"xmin"in n?Fn(n,e,new N,t,0):"rings"in n?mn(n,e,new F,t,0):"paths"in n?Nn(n,e,new I,t,0):"points"in n?On(n,e,new G,t,0):null:null}function Pn(n,e,t=e.spatialReference,r=0){return!o(t)&&u(Ln(n,n.spatialReference,e,t,r))}function Ln(n,e,t,r,l){ke[0]=n.x,ke[1]=n.y;const u=n.z;return ke[2]=void 0!==u?u:l,Un(ke,e,0,ke,r,0,1)?(t.x=ke[0],t.y=ke[1],t.spatialReference=r,void 0===u?(t.z=void 0,t.hasZ=!1):(t.z=ke[2],t.hasZ=!0),void 0===n.m?(t.m=void 0,t.hasM=!1):(t.m=n.m,t.hasM=!0),t):null}function Mn(n,e,t=e.spatialReference,r=0){return!o(t)&&u(On(n,n.spatialReference,e,t,r))}function On(n,e,t,r,l){const{points:u,hasZ:o,hasM:s}=n,i=[],a=u.length,c=[];for(const E of u)c.push(E[0],E[1],o?E[2]:l);if(!Un(c,e,0,c,r,0,a))return null;for(let E=0;E<a;++E){const n=3*E,e=c[n],t=c[n+1];o&&s?i.push([e,t,c[n+2],u[E][3]]):o?i.push([e,t,c[n+2]]):s?i.push([e,t,u[E][2]]):i.push([e,t])}return t.points=i,t.spatialReference=r,t.hasZ=o,t.hasM=s,t}function pn(n,e,t=e.spatialReference,r=0){return u(t)&&u(Nn(n,n.spatialReference,e,t,r))}function Nn(n,e,t,r,l){const{paths:u,hasZ:o,hasM:s}=n,i=[];return Kn(u,o,s,e,i,r,l)?(t.paths=i,t.spatialReference=r,t.hasZ=o,t.hasM=s,t):null}function Gn({hasZ:n,spatialReference:e,paths:t},r,l=0){const u=Dn(e,ge),s=Fe[u][cn.WGS84_COMPARABLE_LON_LAT];if(o(s))return!1;const i=n?n=>n:n=>_(ke,n[0],n[1],l);for(const o of t){const n=[];for(const e of o){const t=[0,0,l];s(i(e),0,t,0),n.push(t)}r.push(n)}return!0}function hn({hasZ:n,spatialReference:e,rings:t},r,l=0){const u=Dn(e,ge),s=Fe[u][cn.WGS84_COMPARABLE_LON_LAT];if(o(s))return!1;const i=n?n=>n:n=>_(ke,n[0],n[1],l);for(const o of t){const n=[];for(const e of o){const t=[0,0,l];s(i(e),0,t,0),n.push(t)}r.push(n)}return!0}function Wn(n,e,t=e.spatialReference,r=0){return u(t)&&u(mn(n,n.spatialReference,e,t,r))}function mn(n,e,t,r,l){const{rings:u,hasZ:o,hasM:s}=n,i=[];return Kn(u,o,s,e,i,r,l)?(t.rings=i,t.spatialReference=r,t.hasZ=o,t.hasM=s,t):null}function Tn(n,e,t=e.spatialReference,r=0){return u(t)&&u(Fn(n,n.spatialReference,e,t,r))}function Fn(n,e,t,r,l){const{xmin:u,ymin:o,xmax:s,ymax:i,hasZ:a,hasM:c}=n;if(!gn(u,o,a?n.zmin:l,e,ke,r))return null;t.xmin=ke[0],t.ymin=ke[1],a&&(t.zmin=ke[2]);return gn(s,i,a?n.zmax:l,e,ke,r)?(t.xmax=ke[0],t.ymax=ke[1],a&&(t.zmax=ke[2]),c&&(t.mmin=n.mmin,t.mmax=n.mmax),t.spatialReference=r,t):null}function In(n,e,t){if(o(e)||o(t))return null;const r=new T({spatialReference:t});return Un(n,e,0,ke,t,0,1)?(r.x=ke[0],r.y=ke[1],r.z=ke[2],r):null}function dn(n,e,t){return Un(n,e,0,ke,t.spatialReference,0,1)?(t.x=ke[0],t.y=ke[1],t.z=ke[2],t):null}function Hn(n,e,t,r=0){ke[0]=n.x,ke[1]=n.y;const l=n.z;return ke[2]=void 0!==l?l:r,Un(ke,n.spatialReference,0,e,t,0,1)}function gn(n,e,t,r,l,u){return xe[0]=n,xe[1]=e,xe[2]=t,Un(xe,r,0,l,u,0,1)}function Bn(n,e,t,r){return!(o(e)||o(r)||n.length<2)&&(2===n.length&&(xe[0]=n[0],xe[1]=n[1],xe[2]=0,n=xe),Un(n,e,0,t,r,0,1))}function jn(n,e){ke[0]=n.x,ke[1]=n.y;const t=n.z;return ke[2]=void 0!==t?t:0,yn(ke,n.spatialReference,e)}function yn(n,e,t){return wn(n,e,t)}function wn(n,e,t){if(o(e))return!1;const r=Dn(e,ge),l=Fe[r][cn.WGS84_COMPARABLE_LON_LAT];return!o(l)&&(l(n,0,xe,0),t!==xe&&(t[0]=xe[0],t[1]=xe[1],t.length>2&&(t[2]=xe[2])),!0)}function Un(n,e,t,r,l,u,s=1){const i=Ie(e,l,je);if(o(i))return!1;if(i===Jn){if(n===r&&t===u)return!0;const e=t+3*s;for(let l=t,o=u;l<e;l++,o++)r[o]=n[l];return!0}const a=t+3*s;for(let o=t,c=u;o<a;o+=3,c+=3)i(n,o,r,c);return!0}function xn(n,e,t,r,l){S(ke,n),P(ze,n,e),Bn(ke,t,ke,l),Bn(ze,t,ze,l),L(r,ze,ke),M(r,r)}function Kn(n,e,t,r,l,u,o=0){const s=new Array;for(const a of n)for(const n of a)s.push(n[0],n[1],e?n[2]:o);if(!Un(s,r,0,s,u,0,s.length/3))return!1;let i=0;l.length=0;for(const a of n){const n=new Array;for(const r of a)e&&t?n.push([s[i++],s[i++],s[i++],r[3]]):e?n.push([s[i++],s[i++],s[i++]]):t?(n.push([s[i++],s[i++],r[2]]),i++):(n.push([s[i++],s[i++]]),i++);l.push(n)}return!0}function bn(n,e,t,r){if(o(e)||o(r))return!1;const l=de(e,r,ye);if(l.projector===Jn)return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],!0;if(o(l.projector))return!1;const{source:s,dest:i}=l;if(i.spatialReferenceId===cn.WEB_MERCATOR){const e=Fe[s.spatialReferenceId][cn.WGS84];return!o(e)&&(e(n,0,Ke,0),ee(Ke,0,t,0),t[3]=kn(Ke[1],n[2],n[3],y.radius),!0)}if(s.spatialReferenceId!==cn.WGS84&&s.spatialReferenceId!==cn.CGCS2000||i.spatialReferenceId!==cn.PLATE_CARREE)l.projector(n,0,t,0),t[3]=n[3]*s.metersPerUnit/i.metersPerUnit;else{const e=Fe[s.spatialReferenceId][cn.SPHERICAL_ECEF],r=Fe[cn.SPHERICAL_ECEF][cn.PLATE_CARREE];let o=n[3];u(e)&&u(r)&&(o=kn(n[1],n[2],n[3],y.radius)),l.projector(n,0,t,0),t[3]=o}return!0}function kn(n,e,t,r){const l=r+e;if(l<r/2||t>l)return Number.MAX_VALUE;const u=Math.abs(we*n)+Math.asin(t/l);return u>=Math.PI/2?Number.MAX_VALUE:t/Math.cos(u)}function zn(n,e,t,r){return null!=n&&(b(e,r)?(j(t,n),!0):(xe[0]=n[0],xe[1]=n[1],xe[2]=0,!!Un(xe,e,0,xe,r,0,1)&&(t[0]=xe[0],t[1]=xe[1],xe[0]=n[2],xe[1]=n[3],xe[2]=0,!!Un(xe,e,0,xe,r,0,1)&&(t[2]=xe[0],t[3]=xe[1],!0))))}function vn(n,e,t,r){if(o(e)||o(r))return!1;const l=Dn(e,ge),u=Dn(r,Be);if(l===u&&l!==cn.UNKNOWN||b(e,r))return t[0]=1,t[1]=1,t[2]=1,!0;if(l===cn.SPHERICAL_ECEF){const e=O(n),r=e/Math.sqrt(n[0]*n[0]+n[1]*n[1]),l=e/y.radius;if(u===cn.WEB_MERCATOR)return t[0]=r*l,t[1]=r*l,t[2]=1,!0;if(u===cn.WGS84||u===cn.CGCS2000){const n=re;return t[0]=n*r*l,t[1]=n*l,t[2]=1,!0}}else if(l===cn.PLATE_CARREE){if(u===cn.WGS84||u===cn.CGCS2000)return t[0]=re,t[1]=re,t[2]=1,!0;if(u===cn.WEB_MERCATOR){const e=n[1]/y.radius;return t[0]=1,t[1]=1/Math.cos(e),t[2]=1,!0}}return!1}function qn(n,e,t,r){if(o(n)||o(r))return!1;const l=Dn(n,ge),u=Dn(r,Be);if(l===u&&!Zn(u)&&(l!==cn.UNKNOWN||b(n,r)))return R(t,e),!0;if(Zn(u)){const n=Fe[l][cn.LON_LAT],r=Fe[cn.LON_LAT][u];return!o(n)&&!o(r)&&(n(e,0,Ke,0),r(Ke,0,be,0),Vn(we*Ke[0],we*Ke[1],t),t[12]=be[0],t[13]=be[1],t[14]=be[2],!0)}if((u===cn.WEB_MERCATOR||u===cn.PLATE_CARREE)&&(l===cn.WGS84||l===cn.CGCS2000&&u===cn.PLATE_CARREE||l===cn.SPHERICAL_ECEF||l===cn.WEB_MERCATOR)){const n=Fe[l][cn.LON_LAT],r=Fe[cn.LON_LAT][u];return!o(n)&&!o(r)&&(n(e,0,Ke,0),r(Ke,0,be,0),l===cn.SPHERICAL_ECEF?Xn(we*Ke[0],we*Ke[1],t):A(t),t[12]=be[0],t[13]=be[1],t[14]=be[2],!0)}return!1}function Zn(n){return n===cn.SPHERICAL_ECEF||n===cn.SPHERICAL_MARS_PCPF||n===cn.SPHERICAL_MOON_PCPF}function Vn(n,e,t){const r=Math.sin(n),l=Math.cos(n),u=Math.sin(e),o=Math.cos(e),s=t;return s[0]=-r,s[4]=-u*l,s[8]=o*l,s[12]=0,s[1]=l,s[5]=-u*r,s[9]=o*r,s[13]=0,s[2]=0,s[6]=o,s[10]=u,s[14]=0,s[3]=0,s[7]=0,s[11]=0,s[15]=1,s}function Xn(n,e,t){return Vn(n,e,t),f(t,t),t}function Dn(n,e){return e.spatialReference===n?e.spatialReferenceId:(e.spatialReference=n,"metersPerUnit"in e&&(e.metersPerUnit=c(n,1)),n.wkt===d.wkt?e.spatialReferenceId=cn.SPHERICAL_ECEF:z(n)?e.spatialReferenceId=cn.WGS84:v(n)?e.spatialReferenceId=cn.WEB_MERCATOR:q(n)?e.spatialReferenceId=cn.PLATE_CARREE:n.wkt===H.wkt?e.spatialReferenceId=cn.WGS84_ECEF:n.wkid===X.CGCS2000?e.spatialReferenceId=cn.CGCS2000:n.wkt===g.wkt?e.spatialReferenceId=cn.SPHERICAL_MARS_PCPF:n.wkt===B.wkt?e.spatialReferenceId=cn.SPHERICAL_MOON_PCPF:Z(n)?e.spatialReferenceId=cn.GCSMARS2000:V(n)?e.spatialReferenceId=cn.GCSMOON2000:e.spatialReferenceId=cn.UNKNOWN)}function Jn(n,e,t,r){n!==t&&(t[r++]=n[e++],t[r++]=n[e++],t[r]=n[e])}function Qn(n,e,t,r){t[r++]=Ue*(n[e++]/y.radius),t[r++]=Ue*(Math.PI/2-2*Math.atan(Math.exp(-n[e++]/y.radius))),t[r]=n[e]}function Yn(n,e,t,r){Qn(n,e,t,r),Se(t,r,t,r)}function $n(n,e,t,r){Qn(n,e,t,r),he(t,r,t,r)}function ne(n,t,r,l,u){const o=.4999999*Math.PI,s=e(we*n[t+1],-o,o),i=Math.sin(s);r[l++]=we*n[t]*u.radius,r[l++]=u.halfSemiMajorAxis*Math.log((1+i)/(1-i)),r[l]=n[t+2]}function ee(n,e,t,r){ne(n,e,t,r,y)}const te=y.radius*Math.PI/180,re=180/(y.radius*Math.PI);function le(n,e,t,r){t[r]=n[e]*te,t[r+1]=n[e+1]*te,t[r+2]=n[e+2]}function ue(n,e,t,r){t[r]=n[e]*re,t[r+1]=n[e+1]*re,t[r+2]=n[e+2]}function oe(n,e,t,r){Qn(n,e,t,r),le(t,r,t,r)}function se(n,e,t,r){We(n,e,t,r),le(t,r,t,r)}function ie(n,e,t,r){Oe(n,e,t,r),le(t,r,t,r)}function ae(n,e,t,r){ue(n,e,t,r),Se(t,r,t,r)}function ce(n,e,t,r){ue(n,e,t,r),ee(t,r,t,r)}function Ee(n,e,t,r){ue(n,e,t,r),he(t,r,t,r)}function Ce(n){if(o(n))return!1;const e=Dn(n,ge);return!!Fe[e][cn.WGS84_COMPARABLE_LON_LAT]}function Re(n,e,t,r){const l=Math.cos(t);n[0]=Math.cos(e)*l*r,n[1]=Math.sin(e)*l*r,n[2]=Math.sin(t)*r}function Ae(n,e,t,r,l){const u=l+n[e+2],o=we*n[e+1],s=we*n[e],i=Math.cos(o);t[r++]=Math.cos(s)*i*u,t[r++]=Math.sin(s)*i*u,t[r]=Math.sin(o)*u}function fe(n,e,t,r){Ae(n,e,t,r,w.radius)}function _e(n,e,t,r){Ae(n,e,t,r,U.radius)}function Se(n,e,t,r){Ae(n,e,t,r,y.radius)}function Pe(n,e,t,r,u){const o=n[e],s=n[e+1],i=n[e+2],a=Math.sqrt(o*o+s*s+i*i),c=l(i/(0===a?1:a)),E=Math.atan2(s,o);t[r++]=Ue*E,t[r++]=Ue*c,t[r]=a-u}function Le(n,e,t,r){Pe(n,e,t,r,w.radius)}function Me(n,e,t,r){Pe(n,e,t,r,U.radius)}function Oe(n,e,t,r){Pe(n,e,t,r,y.radius)}function pe(n,e,t,r){Oe(n,e,t,r),ee(t,r,t,r)}function Ne(n,e,t,r){Oe(n,e,t,r),he(t,r,t,r)}function Ge(n,e,t,r,l){const u=we*n[e],o=we*n[e+1],s=n[e+2],i=Math.sin(o),a=Math.cos(o),c=l.radius/Math.sqrt(1-l.eccentricitySquared*i*i);t[r++]=(c+s)*a*Math.cos(u),t[r++]=(c+s)*a*Math.sin(u),t[r++]=(c*(1-l.eccentricitySquared)+s)*i}function he(n,e,t,r){Ge(n,e,t,r,y)}function We(n,e,t,r){const l=x,u=n[e],o=n[e+1],s=n[e+2];let i,a,c,E,C,R,A,f,_,S,P,L,M,O,p,N,G,h,W,m,T;i=Math.abs(s),a=u*u+o*o,c=Math.sqrt(a),E=a+s*s,C=Math.sqrt(E),m=Math.atan2(o,u),R=s*s/E,A=a/E,O=l.a2/C,p=l.a3-l.a4/C,A>.3?(f=i/C*(1+A*(l.a1+O+R*p)/C),W=Math.asin(f),S=f*f,_=Math.sqrt(1-S)):(_=c/C*(1-R*(l.a5-O-A*p)/C),W=Math.acos(_),S=1-_*_,f=Math.sqrt(S)),P=1-y.eccentricitySquared*S,L=y.radius/Math.sqrt(P),M=l.a6*L,O=c-L*_,p=i-M*f,G=_*O+f*p,N=_*p-f*O,h=N/(M/P+G),W+=h,T=G+N*h/2,s<0&&(W=-W),t[r++]=Ue*m,t[r++]=Ue*W,t[r]=T}function me(n,e,t,r){We(n,e,t,r),Se(t,r,t,r)}function Te(n,e,t,r){We(n,e,t,r),ee(t,r,t,r)}const Fe={[cn.WGS84]:{[cn.CGCS2000]:null,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:null,[cn.LON_LAT]:Jn,[cn.WGS84_COMPARABLE_LON_LAT]:Jn,[cn.SPHERICAL_ECEF]:Se,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:ee,[cn.PLATE_CARREE]:le,[cn.WGS84]:Jn,[cn.WGS84_ECEF]:he},[cn.CGCS2000]:{[cn.CGCS2000]:Jn,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:null,[cn.LON_LAT]:Jn,[cn.WGS84_COMPARABLE_LON_LAT]:Jn,[cn.SPHERICAL_ECEF]:Se,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:null,[cn.PLATE_CARREE]:le,[cn.WGS84]:null,[cn.WGS84_ECEF]:he},[cn.GCSMARS2000]:{[cn.CGCS2000]:null,[cn.GCSMARS2000]:Jn,[cn.GCSMOON2000]:null,[cn.LON_LAT]:Jn,[cn.WGS84_COMPARABLE_LON_LAT]:null,[cn.SPHERICAL_ECEF]:null,[cn.SPHERICAL_MARS_PCPF]:_e,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:null,[cn.PLATE_CARREE]:null,[cn.WGS84]:null,[cn.WGS84_ECEF]:null},[cn.GCSMOON2000]:{[cn.CGCS2000]:null,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:Jn,[cn.LON_LAT]:Jn,[cn.WGS84_COMPARABLE_LON_LAT]:null,[cn.SPHERICAL_ECEF]:null,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:fe,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:null,[cn.PLATE_CARREE]:null,[cn.WGS84]:null,[cn.WGS84_ECEF]:null},[cn.WEB_MERCATOR]:{[cn.CGCS2000]:null,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:null,[cn.LON_LAT]:Qn,[cn.WGS84_COMPARABLE_LON_LAT]:Qn,[cn.SPHERICAL_ECEF]:Yn,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:Jn,[cn.PLATE_CARREE]:oe,[cn.WGS84]:Qn,[cn.WGS84_ECEF]:$n},[cn.WGS84_ECEF]:{[cn.CGCS2000]:We,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:null,[cn.LON_LAT]:We,[cn.WGS84_COMPARABLE_LON_LAT]:We,[cn.SPHERICAL_ECEF]:me,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:Te,[cn.PLATE_CARREE]:se,[cn.WGS84]:We,[cn.WGS84_ECEF]:Jn},[cn.SPHERICAL_ECEF]:{[cn.CGCS2000]:Oe,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:null,[cn.LON_LAT]:Oe,[cn.WGS84_COMPARABLE_LON_LAT]:Oe,[cn.SPHERICAL_ECEF]:Jn,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:pe,[cn.PLATE_CARREE]:ie,[cn.WGS84]:Oe,[cn.WGS84_ECEF]:Ne},[cn.SPHERICAL_MARS_PCPF]:{[cn.CGCS2000]:null,[cn.GCSMARS2000]:Me,[cn.GCSMOON2000]:null,[cn.LON_LAT]:Me,[cn.WGS84_COMPARABLE_LON_LAT]:null,[cn.SPHERICAL_ECEF]:null,[cn.SPHERICAL_MARS_PCPF]:Jn,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:null,[cn.PLATE_CARREE]:null,[cn.WGS84]:null,[cn.WGS84_ECEF]:null},[cn.SPHERICAL_MOON_PCPF]:{[cn.CGCS2000]:null,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:Le,[cn.LON_LAT]:Le,[cn.WGS84_COMPARABLE_LON_LAT]:null,[cn.SPHERICAL_ECEF]:null,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:Jn,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:null,[cn.PLATE_CARREE]:null,[cn.WGS84]:null,[cn.WGS84_ECEF]:null},[cn.UNKNOWN]:{[cn.CGCS2000]:null,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:null,[cn.LON_LAT]:null,[cn.WGS84_COMPARABLE_LON_LAT]:null,[cn.SPHERICAL_ECEF]:null,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:Jn,[cn.WEB_MERCATOR]:null,[cn.PLATE_CARREE]:null,[cn.WGS84]:null,[cn.WGS84_ECEF]:null},[cn.LON_LAT]:{[cn.CGCS2000]:Jn,[cn.GCSMARS2000]:Jn,[cn.GCSMOON2000]:Jn,[cn.LON_LAT]:Jn,[cn.WGS84_COMPARABLE_LON_LAT]:Jn,[cn.SPHERICAL_ECEF]:Se,[cn.SPHERICAL_MARS_PCPF]:_e,[cn.SPHERICAL_MOON_PCPF]:fe,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:ee,[cn.PLATE_CARREE]:le,[cn.WGS84]:Jn,[cn.WGS84_ECEF]:he},[cn.WGS84_COMPARABLE_LON_LAT]:{[cn.CGCS2000]:null,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:null,[cn.LON_LAT]:Jn,[cn.WGS84_COMPARABLE_LON_LAT]:Jn,[cn.SPHERICAL_ECEF]:Se,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:null,[cn.PLATE_CARREE]:le,[cn.WGS84]:Jn,[cn.WGS84_ECEF]:he},[cn.PLATE_CARREE]:{[cn.CGCS2000]:ue,[cn.GCSMARS2000]:null,[cn.GCSMOON2000]:null,[cn.LON_LAT]:ue,[cn.WGS84_COMPARABLE_LON_LAT]:ue,[cn.SPHERICAL_ECEF]:ae,[cn.SPHERICAL_MARS_PCPF]:null,[cn.SPHERICAL_MOON_PCPF]:null,[cn.UNKNOWN]:null,[cn.WEB_MERCATOR]:ce,[cn.PLATE_CARREE]:Jn,[cn.WGS84]:ue,[cn.WGS84_ECEF]:Ee}};function Ie(n,e,t=He()){return o(n)||o(e)?null:de(n,e,t).projector}function de(n,e,t){if(o(n)||o(e)||t.source.spatialReference===n&&t.dest.spatialReference===e)return t;const r=Dn(n,t.source),l=Dn(e,t.dest);return r===cn.UNKNOWN&&l===cn.UNKNOWN?b(n,e)?t.projector=Jn:t.projector=null:t.projector=Fe[r][l],t}function He(){return{source:{spatialReference:null,spatialReferenceId:cn.UNKNOWN,metersPerUnit:1},dest:{spatialReference:null,spatialReferenceId:cn.UNKNOWN,metersPerUnit:1},projector:Jn}}const ge={spatialReference:null,spatialReferenceId:cn.UNKNOWN},Be={spatialReference:null,spatialReferenceId:cn.UNKNOWN},je=He(),ye=He(),we=t(1),Ue=r(1),xe=p(),Ke=p(),be=p(),ke=p(),ze=p();export{Ce as canProjectToWGS84ComparableLonLat,An as canProjectWithoutEngine,Vn as computeENUToSphericalPCPFLocalRotation,Xn as computeSphericalPCPFToENULocalRotation,qn as computeTranslationToOriginAndRotation,_n as getProjectorName,on as getTransformation,sn as getTransformations,fn as initializeProjection,en as isLoaded,tn as load,vn as localLinearScaleFactors,Re as lonLatToSphericalPCPF,ne as lonLatToWebMercatorComparable,rn as project,zn as projectBoundingRect,bn as projectBoundingSphere,Un as projectBuffer,xn as projectDirection,Tn as projectExtent,ln as projectMany,Mn as projectMultipoint,un as projectOrLoad,Pn as projectPoint,Hn as projectPointToVector,jn as projectPointToWGS84ComparableLonLat,Wn as projectPolygon,hn as projectPolygonToWGS84ComparableLonLat,pn as projectPolyline,Gn as projectPolylineToWGS84ComparableLonLat,dn as projectVectorToDehydratedPoint,In as projectVectorToPoint,Bn as projectVectorToVector,yn as projectVectorToWGS84ComparableLonLat,Sn as projectWithoutEngine,gn as projectXYZToVector,Pe as sphericalPCPFtoLonLatElevation,Cn as test,Rn as tryProjectWithZConversion,En as unload};