HeatmapRenderer.js 5.4 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{_ as e}from"../chunks/tslib.es6.js";import t from"../Color.js";import"../symbols.js";import{deprecatedProperty as i}from"../core/deprecate.js";import{clone as s}from"../core/lang.js";import r from"../core/Logger.js";import{schedule as o}from"../core/scheduling.js";import{toPt as n}from"../core/screenUtils.js";import{property as p}from"../core/accessorSupport/decorators/property.js";import{getProperties as l}from"../core/accessorSupport/utils.js";import"../core/accessorSupport/ensureType.js";import{enumeration as a}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{collectField as m,collectArcadeFieldNames as y}from"../layers/support/fieldUtils.js";import c from"./Renderer.js";import d from"./support/AuthoringInfo.js";import h from"./support/HeatmapColorStop.js";import{HeatmapLegendOptions as g}from"./support/HeatmapLegendOptions.js";import{kernelDensityRadiusPtToGaussianBlurRadiusPx as f,gaussianBlurRadiusPxToKernelDensityRadiusPt as x,MAGIC_KERNEL_DENSITY_RADIUS_INFLATION_FACTOR as w}from"./support/heatmapUtils.js";import b from"../symbols/SimpleMarkerSymbol.js";var j;const D="esri.renderers.HeatmapRenderer",I=r.getLogger(D);function S(e){if(null!=e){const{maxDensity:t,minDensity:i,radius:s}=e;if(null!=t||null!=i||null!=s){const{blurRadius:t,maxPixelIntensity:i,minPixelIntensity:s,...r}=e;return r}}return e}let v=j=class extends c{constructor(e){super(e),this.authoringInfo=null,this.colorStops=[new h({ratio:0,color:new t("rgba(255, 140, 0, 0)")}),new h({ratio:.75,color:new t("rgba(255, 140, 0, 1)")}),new h({ratio:.9,color:new t("rgba(255, 0, 0, 1)")})],this.field=null,this.fieldOffset=0,this.legendOptions=null,this.maxDensity=.04,this.minDensity=0,this.radius=18,this.referenceScale=0,this.type="heatmap",this.valueExpression=null,this.valueExpressionTitle=null,this._warnedProps={blurRadius:!1,maxPixelIntensity:!1,minPixelIntensity:!1}}normalizeCtorArgs(e){return S(e)}get blurRadius(){return f(this.radius)}set blurRadius(e){const t=this.maxPixelIntensity,i=this.minPixelIntensity;this._set("radius",x(e)),this._warnAboutDeprecatedGaussianBlurProp("blurRadius","radius"),this._set("maxDensity",t*this._pixelIntensityToDensity),this._set("minDensity",i*this._pixelIntensityToDensity)}get maxPixelIntensity(){return this.maxDensity/this._pixelIntensityToDensity}set maxPixelIntensity(e){this._set("maxDensity",e*this._pixelIntensityToDensity),this._warnAboutDeprecatedGaussianBlurProp("maxPixelIntensity","maxDensity")}get minPixelIntensity(){return this.minDensity/this._pixelIntensityToDensity}set minPixelIntensity(e){this._set("minDensity",e*this._pixelIntensityToDensity),this._warnAboutDeprecatedGaussianBlurProp("minPixelIntensity","minDensity")}get _pixelIntensityToDensity(){return 24/(w**2*this.blurRadius**4)}_warnAboutDeprecatedGaussianBlurProp(e,t){if(this._warnedProps[e])return;"user"===l(this).getDefaultOrigin()&&(this._warnedProps[e]=!0,o((()=>{i(I,e,{replacement:`${String(t)} (suggested value: ${this._get(t)})`,version:"4.24"})})))}read(e,t){e=S(e),super.read(e,t)}getSymbol(){return new b}async getSymbolAsync(){return this.getSymbol()}getSymbols(){return[this.getSymbol()]}async collectRequiredFields(e,t){const i=this.field,s=this.valueExpression;i&&"string"==typeof i&&await m(e,t,i),s&&"string"==typeof s&&await y(e,t,s)}getAttributeHash(){return null}getMeshHash(){return`${JSON.stringify(this.colorStops)}.${this.blurRadius}.${this.field}`}clone(){return new j({authoringInfo:this.authoringInfo&&this.authoringInfo.clone(),colorStops:s(this.colorStops),field:this.field,legendOptions:s(this.legendOptions),maxDensity:this.maxDensity,minDensity:this.minDensity,radius:this.radius,referenceScale:this.referenceScale,valueExpression:this.valueExpression,valueExpressionTitle:this.valueExpressionTitle})}};e([p({type:d,json:{write:!0,origins:{"web-scene":{write:!1,read:!1}}}})],v.prototype,"authoringInfo",void 0),e([p({type:Number,json:{origins:{"portal-item":{write:!0},"web-map":{write:!0}}}})],v.prototype,"blurRadius",null),e([p({type:[h],json:{write:!0}})],v.prototype,"colorStops",void 0),e([p({type:String,json:{write:!0}})],v.prototype,"field",void 0),e([p({type:Number,json:{write:{overridePolicy:(e,t,i)=>({enabled:null==i})},origins:{"web-scene":{write:!1}}}})],v.prototype,"fieldOffset",void 0),e([p({type:g,json:{write:!0}})],v.prototype,"legendOptions",void 0),e([p({type:Number,json:{write:!0}})],v.prototype,"maxDensity",void 0),e([p({type:Number,json:{origins:{"portal-item":{write:!0},"web-map":{write:!0}}}})],v.prototype,"maxPixelIntensity",null),e([p({type:Number,json:{write:!0}})],v.prototype,"minDensity",void 0),e([p({type:Number,json:{origins:{"portal-item":{write:!0},"web-map":{write:!0}}}})],v.prototype,"minPixelIntensity",null),e([p({type:Number,cast:n,json:{write:!0}})],v.prototype,"radius",void 0),e([p({type:Number,range:{min:0},json:{default:0,write:!0}})],v.prototype,"referenceScale",void 0),e([a({heatmap:"heatmap"})],v.prototype,"type",void 0),e([p({type:String,json:{write:!0,origins:{"web-document":{write:!1},"portal-item":{write:!1}}}})],v.prototype,"valueExpression",void 0),e([p({type:String})],v.prototype,"valueExpressionTitle",void 0),e([p({readOnly:!0})],v.prototype,"_pixelIntensityToDensity",null),v=j=e([u(D)],v);const P=v;export{P as default};