@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 6.56 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 e}from"../chunks/tslib.es6.js";import t from"../PopupTemplate.js";import r from"../core/Clonable.js";import o from"../core/Collection.js";import i from"../core/Error.js";import s from"../core/Logger.js";import{MultiOriginJSONMixin as a}from"../core/MultiOriginJSONSupport.js";import{property as p}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import l from"../geometry/SpatialReference.js";import m from"./Layer.js";import{ParquetSource as d}from"./graphics/sources/ParquetSource.js";import{createCapabilities as u}from"./graphics/sources/support/clientSideDefaults.js";import{BlendLayer as c}from"./mixins/BlendLayer.js";import{CustomParametersMixin as f}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as y}from"./mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as g}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as h}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as j}from"./mixins/OperationalLayer.js";import{OrderedLayer as b}from"./mixins/OrderedLayer.js";import{PortalLayer as w}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as I}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as v}from"./mixins/TemporalLayer.js";import{labelsVisible as F}from"./support/commonProperties.js";import q from"./support/FeatureTemplate.js";import x from"./support/Field.js";import{defineFieldProperties as P}from"./support/fieldProperties.js";import{fixRendererFields as T,fixTimeInfoFields as S}from"./support/fieldUtils.js";import R from"./support/LabelClass.js";import{reader as L}from"./support/labelingInfo.js";import{ParquetEncodingBase as O}from"./support/ParquetEncodingBase.js";import U from"./support/ParquetEncodingLocation.js";import D from"./support/ParquetEncodingWkb.js";import{completeParquetLayerInfo as G,parquetGeometryTypeKebabDict as W}from"./support/parquetUtils.js";import{rendererTypes as _}from"../renderers/support/typeUtils.js";import C from"../rest/support/Query.js";import{createPopupTemplate as E}from"../support/popupUtils.js";const M=P(),k={types:{key:"type",base:O,typeMap:{wkb:D,location:U}}};let B=class extends(y(h(g(c(b(v(I(j(w(a(f(r.ClonableMixin(m))))))))))))){constructor(e){super(e),this.capabilities=u(!1,!1),this.copyright=null,this.fields=null,this.fieldsIndex=null,this.encoding=null,this.geometryType=null,this.labelsVisible=!0,this.labelingInfo=null,this.objectIdField=null,this.outFields=null,this.popupTemplate=null,this.source=null,this.spatialReference=l.WGS84,this.templates=null,this.title="Parquet",this.type="parquet",this.urls=new o}async load(e){return this.addResolvingPromise(this._load(e)),this}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){T(e,this.fieldsIndex),this._set("renderer",e)}createPopupTemplate(e){return E(this,e)}createQuery(){const e=new C;return e.returnGeometry=!0,e.outFields=["*"],e}async createSource(e){const t=await G({urls:this.urls,fields:this.fields,objectIdField:this.objectIdField,encoding:this.encoding,geometryType:this.geometryType,spatialReference:this.spatialReference,metadata:this.metadata},{customParameters:this.customParameters});let{fields:r,geometryType:o,encoding:a,spatialReference:p,objectIdField:n,urls:m,metadata:u}=t;if(null==r)throw new i("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",t);if(null==o)throw new i("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer geometryType",t);if(null==a)throw new i("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer encoding",t);if(null==p)throw new i("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer spatialReference",t);if(!p.isGeographic&&!p.isWebMercator)throw new i("parquet-layer:unsupported","Unable to create parquet source: currently only geographic and Web Mercator supported",t);p.isGeographic&&!p.isWGS84&&(s.getLogger("parquet-layer").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:t.spatialReference}),p=l.WGS84),null==n&&(n="__OBJECTID",r.push(new x({name:n,type:"oid",alias:n})));const c=new d({urls:m.items,fields:r,objectIdField:n,spatialReference:p,encoding:a,geometryType:o,metadata:u,customParameters:this.customParameters??void 0});return await c.load(e),c}getFieldDomain(e,t){return null}getField(e){return this.fieldsIndex.get(e)}async _load(e){const t=await this.createSource(e);this._set("source",t),this.fields=t.fields,this.objectIdField=t.objectIdField,this.encoding=t.encoding,this.metadata=t.metadata,this.geometryType=t.geometryType,this.spatialReference=t.spatialReference,T(this.renderer,this.fieldsIndex),S(this.timeInfo,this.fieldsIndex)}};e([p({readOnly:!0,json:{read:!1,write:!1}})],B.prototype,"capabilities",void 0),e([p({type:String})],B.prototype,"copyright",void 0),e([p({readOnly:!0})],B.prototype,"defaultPopupTemplate",null),e([p({type:[x],json:{name:"layerDefinition.fields",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"fields"}}}})],B.prototype,"fields",void 0),e([p(M.fieldsIndex)],B.prototype,"fieldsIndex",void 0),e([p(k)],B.prototype,"encoding",void 0),e([p({json:{read:{reader:W.read}}})],B.prototype,"geometryType",void 0),e([p(F)],B.prototype,"labelsVisible",void 0),e([p({type:[R],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:L},write:!0}})],B.prototype,"labelingInfo",void 0),e([p()],B.prototype,"metadata",void 0),e([p({type:String,json:{name:"layerDefinition.objectIdField",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"objectIdField"}}}})],B.prototype,"objectIdField",void 0),e([p(M.outFields)],B.prototype,"outFields",void 0),e([p({type:t,json:{name:"popupInfo",write:!0}})],B.prototype,"popupTemplate",void 0),e([p({types:_,json:{name:"layerDefinition.drawingInfo.renderer",write:!0,origins:{service:{name:"drawingInfo.renderer"}}}})],B.prototype,"renderer",null),e([p({json:{read:!1},cast:null,type:d,readOnly:!0})],B.prototype,"source",void 0),e([p({type:l})],B.prototype,"spatialReference",void 0),e([p({type:[q]})],B.prototype,"templates",void 0),e([p()],B.prototype,"title",void 0),e([p({json:{read:!1},readOnly:!0})],B.prototype,"type",void 0),e([p({type:o.ofType(String)})],B.prototype,"urls",void 0),B=e([n("esri.layers.ParquetLayer")],B);const J=B;export{J as default};