@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 4.55 kB
JavaScript
import"../geometry.js";import t from"../request.js";import{isSome as e}from"../core/maybe.js";import{normalizeCentralMeridian as o}from"../geometry/support/normalizeUtils.js";import{parseUrl as n,encode as a,asValidOptions as r}from"./utils.js";import s from"./support/ImageAngleResult.js";import i from"./support/ImageAreaResult.js";import m from"./support/ImageDistanceResult.js";import c from"./support/ImageHeightResult.js";import u from"./support/ImageIdentifyResult.js";import l from"./support/ImagePixelLocationResult.js";import f from"./support/ImagePointResult.js";import p from"./support/ImageSampleResult.js";import g from"../geometry/SpatialReference.js";function y(t){const e=t?.time;if(e&&(null!=e.start||null!=e.end)){const o=[];null!=e.start&&o.push(e.start),null==e.end||o.includes(e.end)||o.push(e.end),t.time=o.join(",")}}async function S(t,s,i){const m=n(t),c=s.geometry?[s.geometry]:[],u=await o(c),l=s.toJSON();y(l);const f=u&&u[0];e(f)&&(l.geometry=f.toJSON());const p=a({...m.query,f:"json",...l});return r(p,i)}async function d(o,i,m){const c=i.toJSON();e(c.angleName)&&(c.angleName=c.angleName.join(",")),e(i.point)&&i.point.spatialReference?.imageCoordinateSystem&&(c.point.spatialReference=G(i.point.spatialReference)),e(i.spatialReference)&&i.spatialReference.imageCoordinateSystem&&(c.spatialReference=$(i.spatialReference));const u=n(o),l=a({...u.query,f:"json",...c}),f=r(l,m),{data:p}=await t(`${u.path}/computeAngles`,f);return p.spatialReference=p.spatialReference?null!=p.spatialReference.geodataXform?new g({wkid:0,imageCoordinateSystem:p.spatialReference}):g.fromJSON(p.spatialReference):null,"NaN"===p.north&&(p.north=null),"NaN"===p.up&&(p.up=null),new s(p)}async function N(e,o,s){const i=o.toJSON(),{geometries:m}=o;if(m)for(let t=0;t<m.length;t++)m[t].spatialReference?.imageCoordinateSystem&&(i.geometries.geometries[t].spatialReference=G(m[t].spatialReference));const c=n(e),u=a({...c.query,f:"json",...i}),f=r(u,s),{data:p}=await t(`${c.path}/computePixelLocation`,f);return l.fromJSON(p)}async function R(e,o,a){const r=await S(e,o,a),s=n(e),{data:i}=await t(`${s.path}/computeStatisticsHistograms`,r),{statistics:m}=i;return m?.length&&m.forEach((t=>{t.avg=t.mean,t.stddev=t.standardDeviation})),{statistics:m,histograms:i.histograms}}async function J(e,o,a){const r=await S(e,o,a),s=n(e),{data:i}=await t(`${s.path}/computeHistograms`,r);return{histograms:i.histograms}}async function O(s,i,m){const c=i.toJSON();y(c),c.outFields?.length&&(c.outFields=c.outFields.join(","));const u=(await o(i.geometry))?.[0];e(u)&&(c.geometry=u.toJSON());const l=n(s),f=a({...l.query,f:"json",...c}),g=r(f,m),{data:S}=await t(`${l.path}/getSamples`,g),d=S?.samples?.map((t=>{const e="NaN"===t.value||""===t.value?null:t.value.split(" ").map((t=>Number(t)));return{...t,pixelValue:e}}));return p.fromJSON({samples:d})}async function j(s,i,m){const c=n(s),l=i.geometry?[i.geometry]:[];return o(l).then((o=>{const n=i.toJSON(),s=o&&o[0];e(s)&&(n.geometry=JSON.stringify(s.toJSON()));const u=a({...c.query,f:"json",...n}),l=r(u,m);return t(c.path+"/identify",l)})).then((t=>u.fromJSON(t.data)))}async function h(t,e,o){const n=await q(t,e,[e.fromGeometry,e.toGeometry],o);return c.fromJSON(n)}async function w(t,e,o){const n=await q(t,e,[e.geometry],o);return i.fromJSON(n)}async function I(t,e,o){const n=await q(t,e,[e.geometry],o);return f.fromJSON(n)}async function C(t,e,o){const n=await q(t,e,[e.fromGeometry,e.toGeometry],o);return m.fromJSON(n)}async function q(s,i,m,c){const u=n(s),l=await o(m),f=i.toJSON();e(l[0])&&(f.fromGeometry=JSON.stringify(v(l[0]))),e(l[1])&&(f.toGeometry=JSON.stringify(v(l[1])));const p=a({...u.query,f:"json",...f}),g=r(p,c),{data:y}=await t(u.path+"/measure",g);return y}function v(t){const e=t.toJSON();return t.spatialReference?.imageCoordinateSystem&&(e.spatialReference=G(t.spatialReference)),e}function G(t){const{imageCoordinateSystem:e}=t;if(e){const{id:t,referenceServiceName:o}=e;return null!=t?o?{icsid:t,icsns:o}:{icsid:t}:{ics:e}}return t.toJSON()}function $(t,e){const o=G(t),{icsid:n,icsns:a,wkid:r}=o;return null!=n?null==a||e?.toLowerCase().includes("/"+a.toLowerCase()+"/")?`0:${n}`:JSON.stringify(o):r?r.toString():JSON.stringify(o)}export{d as computeAngles,J as computeHistograms,N as computePixelSpaceLocations,R as computeStatisticsHistograms,G as getImageSpatialReferenceJSON,$ as getImageSpatialReferenceQueryParameter,O as getSamples,j as identify,w as measureAreaAndPerimeter,C as measureDistanceAndAngle,h as measureHeight,I as measurePointOrCentroid};