UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 2.73 kB
import e from"../../request.js";import"../../core/has.js";import{normalizeCentralMeridian as a}from"../../geometry/support/normalizeUtils.js";import t from"../../layers/support/Field.js";import r from"../../layers/support/MapImage.js";import{parseUrl as o,encode as u}from"../utils.js";import l from"../support/DataFile.js";import s from"../support/FeatureSet.js";import n from"../support/LinearUnit.js";import i from"../support/ParameterValue.js";import c from"../support/RasterData.js";async function m(t,r,u,l,s){const n={},i={},c=[];return p(l,c,n),a(c).then((a=>{const{outSpatialReference:c,processExtent:m,processSpatialReference:p,returnFeatureCollection:f,returnM:G,returnZ:v}=u,{path:S}=o(t);for(const e in n){const t=n[e];i[e]=a.slice(t[0],t[1])}const y=c?c.wkid||c:null,D=p?p.wkid||p:null,J="execute"===r?{returnFeatureCollection:f||void 0,returnM:G||void 0,returnZ:v||void 0}:null,M=P({...m?{context:{extent:m,outSR:y,processSR:D}}:{"env:outSR":y,"env:processSR":D},...l,...J,f:"json"},null,i),N={...s,query:M};return e(`${S}/${r}`,N)}))}function p(e,a,t){for(const r in e){const o=e[r];if(o&&"object"==typeof o&&o instanceof s){const{features:e}=o;t[r]=[a.length,a.length+e.length],e.forEach((e=>{a.push(e.geometry)}))}}}function f(e){const a=e.dataType,o=i.fromJSON(e);switch(a){case"GPBoolean":case"GPDouble":case"GPLong":case"GPString":case"GPMultiValue:GPBoolean":case"GPMultiValue:GPDouble":case"GPMultiValue:GPLong":case"GPMultiValue:GPString":return o;case"GPDate":o.value=new Date(o.value);break;case"GPDataFile":o.value=l.fromJSON(o.value);break;case"GPLinearUnit":o.value=n.fromJSON(o.value);break;case"GPFeatureRecordSetLayer":case"GPRecordSet":{const a=e.value.url;o.value=a?l.fromJSON(o.value):s.fromJSON(o.value);break}case"GPRasterData":case"GPRasterDataLayer":{const a=e.value.mapImage;o.value=a?r.fromJSON(a):c.fromJSON(o.value);break}case"GPField":o.value=t.fromJSON(o.value);break;case"GPMultiValue:GPDate":{const e=o.value;o.value=e.map((e=>new Date(e)));break}case"GPMultiValue:GPDataFile":o.value=o.value.map((e=>l.fromJSON(e)));break;case"GPMultiValue:GPLinearUnit":o.value=o.value.map((e=>n.fromJSON(e)));break;case"GPMultiValue:GPFeatureRecordSetLayer":case"GPMultiValue:GPRecordSet":o.value=o.value.map((e=>s.fromJSON(e)));break;case"GPMultiValue:GPRasterData":case"GPMultiValue:GPRasterDataLayer":o.value=o.value.map((e=>e?r.fromJSON(e):c.fromJSON(o.value)));break;case"GPMultiValue:GPField":o.value=o.value.map((e=>t.fromJSON(e)))}return o}function P(e,a,t){for(const r in e){const a=e[r];Array.isArray(a)?e[r]=JSON.stringify(a.map((e=>P({item:e},!0).item))):a instanceof Date&&(e[r]=a.getTime())}return u(e,a,t)}export{p as collectGeometries,m as constructRequest,f as decode,P as gpEncode};