heatmapStatistics.js 1.5 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import r from"../../core/Error.js";import{isSome as t}from"../../core/maybe.js";import{numericTypes as a}from"../../layers/support/fieldUtils.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as e}from"../../renderers/support/heatmapUtils.js";import{verifyBasicFieldValidity as s,verifyFieldType as i}from"./support/utils.js";import{getFieldsList as o}from"../support/utils.js";import{LayerType as l,createLayerAdapter as p,getLayerTypeLabels as n}from"../support/adapters/support/layerUtils.js";const m=a;async function u(a){if(!(a&&a.layer&&a.view))throw new r("heatmap-statistics:missing-parameters","'layer' and 'view' parameters are required");const u=[l.CSVLayer,l.FeatureLayer,l.OGCFeatureLayer,l.GeoJSONLayer,l.WFSLayer],{layer:d,...f}=a,c=p(d,u),y={layerAdapter:c,...f};if(y.radius=null==y.radius?null==y.blurRadius?18:e(y.blurRadius):y.radius,!c)throw new r("heatmap-statistics:invalid-parameters","'layer' must be one of these types: "+n(u).join(", "));const h=t(y.signal)?{signal:y.signal}:null;await c.load(h);const w=y.field,j=w?c.getField(w):null,g=await o({field:w}),v=s(c,g,"heatmap-statistics:invalid-parameters");if(v)throw v;if(j){const r=i(c,j,"heatmap-statistics:invalid-parameters",m);if(r)throw r}return y}async function d(r){const{layerAdapter:t,...a}=await u(r);return t.heatmapStatistics(a)}export{d as default};