@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.15 kB
JavaScript
import{isNone as e}from"../../../core/maybe.js";import{getMetersPerUnitForSR as t,getMetersPerVerticalUnitForSR as i,convertUnit as n}from"../../../core/unitUtils.js";function a(n,a){if(e(n)||e(a))return null;const{samples:o,spatialReference:r}=n,{distance:v,elevation:c}=a,m=t(r),u=i(r),p=o.length,f=new Array(p);for(let e=0;e<p;++e){const t=o[e],i=t.sampledZ,n=t.coordinate;f[e]={x:n[0],y:n[1],z:i,distance:l(t.distance,m,v),elevation:s(i,u,c)}}return f}function o(n,a){if(e(n)||e(a)||e(n.statistics)||e(n.spatialReference))return null;const{distance:o,elevation:r}=a,{statistics:v,spatialReference:c}=n,m=t(c),u=i(c);return{maxDistance:l(v.maxDistance,m,o),minElevation:s(v.minElevation,u,r),maxElevation:s(v.maxElevation,u,r),avgElevation:s(v.avgElevation,u,r),elevationGain:s(v.elevationGain,u,r),elevationLoss:s(v.elevationLoss,u,r),maxPositiveSlope:v.maxPositiveSlope,maxNegativeSlope:v.maxNegativeSlope,avgPositiveSlope:v.avgPositiveSlope,avgNegativeSlope:v.avgNegativeSlope}}function l(e,t,i){return null==e?null:n(e*t,"meters",i)}function s(e,t,i){return null==e?null:n(e*t,"meters",i)}export{a as convertSamples,o as convertStatistics};