@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 12.3 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{getAssetUrl as e}from"../assets.js";import has from"../core/has.js";let t,o=null;function r(){return!!o}function _(){return!!has("esri-wasm")}function P(){return t||(t=import("./pe-wasm.js").then(({default:t})=>t({locateFile:t=>e(`esri/geometry/support/${t}`)})).then(e=>{h(e)}),t)}const n={geogToProj(e,t,r){o.ensureCache.prepare();const _=I(r),P=r===_,n=o.ensureFloat64(_),s=o._pe_geog_to_proj(o.getPointer(e),t,n);return s&&U(r,t,n,P),s},projGeog(e,t,o,r){switch(r){case s.PE_TRANSFORM_P_TO_G:return n.projToGeog(e,t,o);case s.PE_TRANSFORM_G_TO_P:return n.geogToProj(e,t,o)}return 0},projToGeog:(e,t,o)=>n.projToGeogCenter(e,t,o,0),projToGeogCenter(e,t,r,_){o.ensureCache.prepare();const P=I(r),n=r===P,s=o.ensureFloat64(P),p=o._pe_proj_to_geog_center(o.getPointer(e),t,s,_);return p&&U(r,t,s,n),p}};class s{static init(){s.PE_BUFFER_MAX=o.PeDefs.prototype.PE_BUFFER_MAX,s.PE_NAME_MAX=o.PeDefs.prototype.PE_NAME_MAX,s.PE_MGRS_MAX=o.PeDefs.prototype.PE_MGRS_MAX,s.PE_USNG_MAX=o.PeDefs.prototype.PE_USNG_MAX,s.PE_DD_MAX=o.PeDefs.prototype.PE_DD_MAX,s.PE_DDM_MAX=o.PeDefs.prototype.PE_DDM_MAX,s.PE_DMS_MAX=o.PeDefs.prototype.PE_DMS_MAX,s.PE_UTM_MAX=o.PeDefs.prototype.PE_UTM_MAX,s.PE_PARM_MAX=o.PeDefs.prototype.PE_PARM_MAX,s.PE_TYPE_NONE=o.PeDefs.prototype.PE_TYPE_NONE,s.PE_TYPE_GEOGCS=o.PeDefs.prototype.PE_TYPE_GEOGCS,s.PE_TYPE_PROJCS=o.PeDefs.prototype.PE_TYPE_PROJCS,s.PE_TYPE_GEOGTRAN=o.PeDefs.prototype.PE_TYPE_GEOGTRAN,s.PE_TYPE_COORDSYS=o.PeDefs.prototype.PE_TYPE_COORDSYS,s.PE_TYPE_UNIT=o.PeDefs.prototype.PE_TYPE_UNIT,s.PE_TYPE_LINUNIT=o.PeDefs.prototype.PE_TYPE_LINUNIT,s.PE_STR_OPTS_NONE=o.PeDefs.prototype.PE_STR_OPTS_NONE,s.PE_STR_AUTH_NONE=o.PeDefs.prototype.PE_STR_AUTH_NONE,s.PE_STR_AUTH_TOP=o.PeDefs.prototype.PE_STR_AUTH_TOP,s.PE_STR_NAME_CANON=o.PeDefs.prototype.PE_STR_NAME_CANON,s.PE_STR_FMT_WKT=o.PeDefs.prototype.PE_STR_FMT_WKT,s.PE_STR_FMT_WKT2=o.PeDefs.prototype.PE_STR_FMT_WKT2,s.PE_PARM_X0=o.PeDefs.prototype.PE_PARM_X0,s.PE_PARM_ND=o.PeDefs.prototype.PE_PARM_ND,s.PE_TRANSFORM_1_TO_2=o.PeDefs.prototype.PE_TRANSFORM_1_TO_2,s.PE_TRANSFORM_2_TO_1=o.PeDefs.prototype.PE_TRANSFORM_2_TO_1,s.PE_TRANSFORM_P_TO_G=o.PeDefs.prototype.PE_TRANSFORM_P_TO_G,s.PE_TRANSFORM_G_TO_P=o.PeDefs.prototype.PE_TRANSFORM_G_TO_P,s.PE_HORIZON_RECT=o.PeDefs.prototype.PE_HORIZON_RECT,s.PE_HORIZON_POLY=o.PeDefs.prototype.PE_HORIZON_POLY,s.PE_HORIZON_LINE=o.PeDefs.prototype.PE_HORIZON_LINE,s.PE_HORIZON_DELTA=o.PeDefs.prototype.PE_HORIZON_DELTA}}let p=null;const a={},i={},E=e=>{const t=e.getType();switch(t){case s.PE_TYPE_GEOGCS:e=o.castObject(e,o.PeGeogcs);break;case s.PE_TYPE_PROJCS:e=o.castObject(e,o.PeProjcs);break;case s.PE_TYPE_GEOGTRAN:e=o.castObject(e,o.PeGeogtran);break;default:t&s.PE_TYPE_UNIT&&(e=o.castObject(e,o.PeUnit))}return e},c={initialize(){o.PeFactory.prototype.initialize(null)},coordsys:e=>c.factoryByType(s.PE_TYPE_COORDSYS,e),factoryByType(e,t){let r=null,_=a[e];if(_||(_={},a[e]=_),_.hasOwnProperty(String(t))&&(r=_[t],o.compare(r,o.NULL)&&(r=null)),!r){const P=o.PeFactory.prototype.factoryByType(e,t);o.compare(P,o.NULL)||(r=E(P),_[t]=r)}return r},fromString(e,t,r=!1){if(r)switch(e){case s.PE_TYPE_GEOGCS:case s.PE_TYPE_PROJCS:case s.PE_TYPE_COORDSYS:{const r=o.PeFactory.prototype.fromString(e,t);return o.compare(r,o.NULL)?null:E(r)}default:return null}let _=null,P=i[e];if(P||(P={},i[e]=P),P.hasOwnProperty(t)&&(_=P[t],o.compare(_,o.NULL)&&(_=null)),!_){const r=o.PeFactory.prototype.fromString(e,t);o.compare(r,o.NULL)||(_=E(r),P[t]=_)}return _},geogcs:e=>c.factoryByType(s.PE_TYPE_GEOGCS,e),geogtran:e=>c.factoryByType(s.PE_TYPE_GEOGTRAN,e),getCode:e=>o.PeFactory.prototype.getCode(e),projcs:e=>c.factoryByType(s.PE_TYPE_PROJCS,e),unit:e=>c.factoryByType(s.PE_TYPE_UNIT,e)};let T,g=null;const l={PE_GTLIST_OPTS_COMMON:0,init(){l.PE_GTLIST_OPTS_COMMON=o.PeGTlistExtended.prototype.PE_GTLIST_OPTS_COMMON,T=o._pe_getPeGTlistExtendedEntrySize()},getGTlist(e,t,r,_,P,n){let s=null;const p=new o.PeInteger(n);try{const a=o.PeGTlistExtended.prototype.getGTlist(e,t,r,_,P,p);if((n=p.val)&&(s=[a],n>1)){const e=o.getPointer(a);for(let t=1;t<n;t++)s.push(o.wrapPointer(e+T*t,o.PeGTlistExtendedEntry))}}finally{o.destroy(p)}return s}},y={destroy(e){if(e?.length){for(const t of e)m(t),t.getEntries().forEach(e=>{m(e);const t=e.getGeogtran();m(t),t.getParameters().forEach(m),[t.getGeogcs1(),t.getGeogcs2()].forEach(e=>{m(e);const t=e.getDatum();m(t),m(t.getSpheroid()),m(e.getPrimem()),m(e.getUnit())})});o.PeGTlistExtendedEntry.prototype.Delete(e[0])}}},u={geogToGeog(e,t,r,_,P){o.ensureCache.prepare();const n=I(r),s=r===n,p=o.ensureFloat64(n);let a=0;_&&(a=o.ensureFloat64(_));const i=o._pe_geog_to_geog(o.getPointer(e),t,p,a,P);return i&&U(r,t,p,s),i}},S={geodesicCoordinate(e,t,r,_,P,n,s,p){o.PeLineType.prototype.geodesic_coordinate(e,t,r,_,P,n,s,p)},geodeticCoordinate(e,t,r,_,P,n,s,p,a){o.PeLineType.prototype.geodetic_coordinate(e,t,r,_,P,n,s,p,a)},geodeticDistance(e,t,r,_,P,n,s,p,a,i){o.PeLineType.prototype.geodetic_distance(e,t,r,_,P,n,s,p,a,i)},greatEllipticDistance(e,t,r,_,P,n,s,p,a){o.PeLineType.prototype.great_elliptic_distance(e,t,r,_,P,n,s,p,a)}},O={phiToEta:(e,t)=>o.PeMath.prototype.phi_to_eta(e,t),etaToPhi:(e,t)=>o.PeMath.prototype.eta_to_phi(e,t),phiToPhig:(e,t)=>o.PeMath.prototype.phi_to_phig(e,t),q:(e,t,r)=>o.PeMath.prototype.q(e,t,r),q90:(e,t)=>o.PeMath.prototype.q90(e,t)},f=(e,t,r,_,P,n)=>{let p,a;switch(o.ensureCache.prepare(),e){case"dd":p=o._pe_geog_to_dd,a=s.PE_DD_MAX;break;case"ddm":p=o._pe_geog_to_ddm,a=s.PE_DDM_MAX;break;case"dms":p=o._pe_geog_to_dms,a=s.PE_DMS_MAX}let i=0;t&&(i=o.getPointer(t));const E=I(_),c=o.ensureFloat64(E),T=C(r,a),g=p(i,r,c,P,o.ensureInt32(T));if(g)for(let s=0;s<r;s++)n[s]=o.UTF8ToString(T[s]);return g},N=(e,t,r,_,P)=>{let n;switch(o.ensureCache.prepare(),e){case"dd":n=o._pe_dd_to_geog;break;case"ddm":n=o._pe_ddm_to_geog;break;case"dms":n=o._pe_dms_to_geog}let s=0;t&&(s=o.getPointer(t));const p=_.map(e=>o.ensureString(e)),a=o.ensureInt32(p),i=o.ensureFloat64(new Array(2*r)),E=n(s,r,a,i);return E&&U(P,r,i),E},d={geogToDms:(e,t,o,r,_)=>f("dms",e,t,o,r,_),dmsToGeog:(e,t,o,r)=>N("dms",e,t,o,r),geogToDdm:(e,t,o,r,_)=>f("ddm",e,t,o,r,_),ddmToGeog:(e,t,o,r)=>N("ddm",e,t,o,r),geogToDd:(e,t,o,r,_)=>f("dd",e,t,o,r,_),ddToGeog:(e,t,o,r)=>N("dd",e,t,o,r)};class M{static init(){M.PE_MGRS_STYLE_NEW=o.PeNotationMgrs.prototype.PE_MGRS_STYLE_NEW,M.PE_MGRS_STYLE_OLD=o.PeNotationMgrs.prototype.PE_MGRS_STYLE_OLD,M.PE_MGRS_STYLE_AUTO=o.PeNotationMgrs.prototype.PE_MGRS_STYLE_AUTO,M.PE_MGRS_180_ZONE_1_PLUS=o.PeNotationMgrs.prototype.PE_MGRS_180_ZONE_1_PLUS,M.PE_MGRS_ADD_SPACES=o.PeNotationMgrs.prototype.PE_MGRS_ADD_SPACES}static geogToMgrsExtended(e,t,r,_,P,n,p){o.ensureCache.prepare();let a=0;e&&(a=o.getPointer(e));const i=I(r),E=o.ensureFloat64(i),c=C(t,s.PE_MGRS_MAX),T=o.ensureInt32(c),g=o._pe_geog_to_mgrs_extended(a,t,E,_,P,n,T);if(g)for(let s=0;s<t;s++)p[s]=o.UTF8ToString(c[s]);return g}static mgrsToGeogExtended(e,t,r,_,P){o.ensureCache.prepare();let n=0;e&&(n=o.getPointer(e));const s=r.map(e=>o.ensureString(e)),p=o.ensureInt32(s),a=o.ensureFloat64(new Array(2*t)),i=o._pe_mgrs_to_geog_extended(n,t,p,_,a);return i&&U(P,t,a),i}}const A={geogToUsng(e,t,r,_,P,n,p){o.ensureCache.prepare();let a=0;e&&(a=o.getPointer(e));const i=I(r),E=o.ensureFloat64(i),c=C(t,s.PE_MGRS_MAX),T=o.ensureInt32(c),g=o._pe_geog_to_usng(a,t,E,_,P,n,T);if(g)for(let s=0;s<t;s++)p[s]=o.UTF8ToString(c[s]);return g},usngToGeog(e,t,r,_){o.ensureCache.prepare();let P=0;e&&(P=o.getPointer(e));const n=r.map(e=>o.ensureString(e)),s=o.ensureInt32(n),p=o.ensureFloat64(new Array(2*t)),a=o._pe_usng_to_geog(P,t,s,p);return a&&U(_,t,p),a}};class D{static init(){D.PE_UTM_OPTS_NONE=o.PeNotationUtm.prototype.PE_UTM_OPTS_NONE,D.PE_UTM_OPTS_ADD_SPACES=o.PeNotationUtm.prototype.PE_UTM_OPTS_ADD_SPACES,D.PE_UTM_OPTS_NS=o.PeNotationUtm.prototype.PE_UTM_OPTS_NS}static geogToUtm(e,t,r,_,P){o.ensureCache.prepare();let n=0;e&&(n=o.getPointer(e));const p=I(r),a=o.ensureFloat64(p),i=C(t,s.PE_UTM_MAX),E=o.ensureInt32(i),c=o._pe_geog_to_utm(n,t,a,_,E);if(c)for(let s=0;s<t;s++)P[s]=o.UTF8ToString(i[s]);return c}static utmToGeog(e,t,r,_,P){o.ensureCache.prepare();let n=0;e&&(n=o.getPointer(e));const s=r.map(e=>o.ensureString(e)),p=o.ensureInt32(s),a=o.ensureFloat64(new Array(2*t)),i=o._pe_utm_to_geog(n,t,p,_,a);return i&&U(P,t,a),i}}class R{static{this.cache=new Map}static init(){R.PE_PCSINFO_OPTION_NONE=o.PePCSInfo.prototype.PE_PCSINFO_OPTION_NONE,R.PE_PCSINFO_OPTION_DOMAIN=o.PePCSInfo.prototype.PE_PCSINFO_OPTION_DOMAIN,R.PE_POLE_OUTSIDE_BOUNDARY=o.PePCSInfo.prototype.PE_POLE_OUTSIDE_BOUNDARY,R.PE_POLE_POINT=o.PePCSInfo.prototype.PE_POLE_POINT}static generate(e,t=R.PE_PCSINFO_OPTION_DOMAIN){let r=null,_=null;return R.cache.has(e)&&(_=R.cache.get(e),_[t]&&(r=_[t])),r||(r=o.PePCSInfo.prototype.generate(e,t),_||(_=[],R.cache.set(e,_)),_[t]=r),r}}const G={versionString:()=>o.PeVersion.prototype.version_string()};function h(e){function t(e,t,o){e[t]=o(e[t])}o=e,s.init(),l.init(),M.init(),D.init(),R.init(),p=class extends o.PeDouble{constructor(e=NaN){super(e)}destroy(){o.destroy(this)}[Symbol.dispose](){this.destroy()}},g=class extends o.PeGCSExtent{destroy(){o.destroy(this)}[Symbol.dispose](){this.destroy()}};const r=[o.PeAngunit,o.PeDatum,o.PeGeogcs,o.PeGeogtran,o.PeObject,o.PeParameter,o.PePrimem,o.PeProjcs,o.PeSpheroid,o.PeUnit];for(const o of r)t(o.prototype,"getName",e=>function(){return e.call(this,new Array(s.PE_NAME_MAX))});for(const n of[o.PeGeogtran,o.PeProjcs])t(n.prototype,"getParameters",e=>function(){const t=new Array(s.PE_PARM_MAX);let r=e.call(this);for(let e=0;e<t.length;e++){const _=o.getValue(r,"*");t[e]=_?o.wrapPointer(_,o.PeParameter):null,r+=Int32Array.BYTES_PER_ELEMENT}return t});t(o.PeHorizon.prototype,"getCoord",e=>function(t=!1){const o=this.getSize();if(!o)return null;const r=[];return U(r,o,e.call(this),t),r}),t(o.PeGTlistExtendedEntry.prototype,"getEntries",e=>{const t=o._pe_getPeGTlistExtendedGTsSize();return function(){let r=null;const _=e.call(this);if(!o.compare(_,o.NULL)){r=[_];const e=this.getSteps();if(e>1){const P=o.getPointer(_);for(let _=1;_<e;_++)r.push(o.wrapPointer(P+t*_,o.PeGTlistExtendedGTs))}}return r}});const _=o._pe_getPeHorizonSize(),P=e=>function(){let t=this._cache;if(t||(t=new Map,this._cache=t),t.has(e))return t.get(e);let r=null;const P=e.call(this);if(!o.compare(P,o.NULL)){r=[P];const e=P.getNump();if(e>1){const t=o.getPointer(P);for(let P=1;P<e;P++)r.push(o.wrapPointer(t+_*P,o.PeHorizon))}}return t.set(e,r),r};t(o.PeProjcs.prototype,"horizonGcsGenerate",P),t(o.PeProjcs.prototype,"horizonPcsGenerate",P),o.PeObject.prototype.toString=function(e=s.PE_STR_OPTS_NONE){o.ensureCache.prepare();const t=o.getPointer(this),r=o.ensureInt8(new Array(s.PE_BUFFER_MAX));return o.UTF8ToString(o._pe_object_to_string_ext(t,e,r))},o.PeGeogcs.prototype.destroy=function(){this.Delete(),m(this),this.ptr=0},o.PeGeogcs.prototype[Symbol.dispose]=function(){this.destroy()},o.PeProjcs.prototype.destroy=function(){this.Delete(),m(this),this.ptr=0},o.PeProjcs.prototype[Symbol.dispose]=function(){this.destroy()}}function m(e){if(!e)return;const t=o.getClass(e);if(!t)return;const r=o.getCache(t);if(!r)return;const _=o.getPointer(e);_&&delete r[_]}function C(e,t){const r=[],_=new Array(t);for(let P=0;P<e;P++)r.push(o.ensureInt8(_));return r}function I(e){return ArrayBuffer.isView(e)?e:Array.isArray(e[0])?e.flat():e}function U(e,t,r,_=!1){if(_)for(let P=0;P<2*t;P++)e[P]=o.getValue(r+P*Float64Array.BYTES_PER_ELEMENT,"double");else{const _=0===e.length;for(let P=0;P<t;P++)_&&(e[P]=new Array(2)),e[P][0]=o.getValue(r,"double"),e[P][1]=o.getValue(r+Float64Array.BYTES_PER_ELEMENT,"double"),r+=2*Float64Array.BYTES_PER_ELEMENT}}const F=Object.freeze(Object.defineProperty({__proto__:null,PeCSTransformations:n,PeDefs:s,get PeDouble(){return p},PeFactory:c,get PeGCSExtent(){return g},PeGTTransformations:u,PeGTlistExtended:l,PeGTlistExtendedEntry:y,PeLineType:S,PeMath:O,PeNotationDms:d,PeNotationMgrs:M,PeNotationUsng:A,PeNotationUtm:D,PePCSInfo:R,PeVersion:G,_init:h,get _pe(){return o},isLoaded:r,isSupported:_,load:P},Symbol.toStringTag,{value:"Module"}));export{c as P,h as _,s as a,d as b,A as c,D as d,M as e,_ as f,R as g,n as h,r as i,u as j,p as k,P as l,g as m,l as n,y as o,F as p,S as q,O as r,G as s,o as t};