UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

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