@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 3.99 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as t}from"../chunks/tslib.es6.js";import e from"../core/Accessor.js";import r from"../core/JSONSupport.js";import{clone as i}from"../core/lang.js";import{getMetersPerUnitForSR as s,getUnitString as o}from"../core/unitUtils.js";import{Integer as n}from"../core/accessorSupport/ensureType.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import{writer as p}from"../core/accessorSupport/decorators/writer.js";import{isWGS84 as u,isWebMercator as c,isGeographic as d,isWrappable as m,wgs84 as h,webMercator as w,equals as y,plateCarree as k}from"./support/spatialReferenceUtils.js";var S;let f=class extends r{static{S=this}static{this.GCS_NAD_1927=null}static{this.WGS84=null}static{this.WebMercator=null}static{this.PlateCarree=null}static fromJSON(t){if(!t)return null;if(102100===t?.wkid)return S.WebMercator;if(4326===t?.wkid)return S.WGS84;const e=new S;return e.read(t),e}constructor(t){super(t),this.latestWkid=null,this.wkid=null,this.wkt=null,this.wkt2=null,this.vcsWkid=null,this.latestVcsWkid=null,this.imageCoordinateSystem=null}normalizeCtorArgs(t){if(t&&"object"==typeof t)return t;const e="string"==typeof t?"wkt":"wkid";return{[e]:t}}get isWGS84(){return u(this)}get isWebMercator(){return c(this)}get isGeographic(){return d(this)}get isWrappable(){return m(this)}get metersPerUnit(){return s(this)}get unit(){return o(this)||(this.isGeographic?"degrees":null)}writeWkt(t,e){this.wkid||(e.wkt=t)}clone(){if(this===S.WGS84)return new S(h);if(this===S.WebMercator)return new S(w);const t=new S;return null!=this.wkid?(t.wkid=this.wkid,null!=this.latestWkid&&(t.latestWkid=this.latestWkid),null!=this.vcsWkid&&(t.vcsWkid=this.vcsWkid),null!=this.latestVcsWkid&&(t.latestVcsWkid=this.latestVcsWkid)):(null!=this.wkt&&(t.wkt=this.wkt),null!=this.wkt2&&(t.wkt2=this.wkt2)),this.imageCoordinateSystem&&(t.imageCoordinateSystem=i(this.imageCoordinateSystem)),t}equals(t){if(null==t)return!1;if(this.imageCoordinateSystem||t.imageCoordinateSystem){if(null==this.imageCoordinateSystem||null==t.imageCoordinateSystem)return!1;const{id:e,referenceServiceName:r}=t.imageCoordinateSystem,{geodataXform:i}=t.imageCoordinateSystem,s=this.imageCoordinateSystem;return null==e||i?JSON.stringify(s)===JSON.stringify(t.imageCoordinateSystem):r?s.id===e&&s.referenceServiceName===r:s.id===e}return y(this,t)}toJSON(t){return this.write(void 0,t)}};t([l({readOnly:!0})],f.prototype,"isWGS84",null),t([l({readOnly:!0})],f.prototype,"isWebMercator",null),t([l({readOnly:!0})],f.prototype,"isGeographic",null),t([l({readOnly:!0})],f.prototype,"isWrappable",null),t([l({type:n,json:{write:!0}})],f.prototype,"latestWkid",void 0),t([l({readOnly:!0})],f.prototype,"metersPerUnit",null),t([l({readOnly:!0})],f.prototype,"unit",null),t([l({type:n,json:{write:!0,origins:{"web-scene":{write:{overridePolicy(){return{isRequired:null==this.wkt}}}}}}})],f.prototype,"wkid",void 0),t([l({type:String,json:{origins:{"web-scene":{write:{overridePolicy(){return{isRequired:null==this.wkid}}}}}}})],f.prototype,"wkt",void 0),t([p("wkt"),p("web-scene","wkt")],f.prototype,"writeWkt",null),t([l({type:String,json:{write:!1}})],f.prototype,"wkt2",void 0),t([l({type:n,json:{write:!0}})],f.prototype,"vcsWkid",void 0),t([l({type:n,json:{write:!0}})],f.prototype,"latestVcsWkid",void 0),t([l()],f.prototype,"imageCoordinateSystem",void 0),f=S=t([a("esri.geometry.SpatialReference")],f),f.prototype.toJSON.isDefaultToJSON=!0,f.GCS_NAD_1927=e.freeze(new f({wkid:4267,wkt:'GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]'})),f.WGS84=e.freeze(new f(h)),f.WebMercator=e.freeze(new f(w)),f.PlateCarree=e.freeze(new f(k));export{f as default};