You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13 lines
5.1 KiB
13 lines
5.1 KiB
// All material copyright Esri, All Rights Reserved, unless otherwise specified. |
|
// See https://js.arcgis.com/4.30/esri/copyright.txt for details. |
|
//>>built |
|
define("exports ../../renderers/ClassBreaksRenderer ../../renderers/DictionaryRenderer ../../renderers/DotDensityRenderer ../../renderers/HeatmapRenderer ../../renderers/PieChartRenderer ../../renderers/Renderer ../../renderers/SimpleRenderer ../../renderers/UniqueValueRenderer ../../renderers/support/jsonUtils ../../core/Logger ../../core/Error ../../geometry/support/scaleUtils ../../renderers/support/AuthoringInfo ../heuristics/outline ./support/dotDensityUtils ./support/utils ../statistics/spatialStatistics ../statistics/summaryStatisticsForAttributes ../statistics/support/attributeDensity ../support/binningUtils ../support/utils ../support/adapters/support/layerUtils ../symbology/dotDensity".split(" "), |
|
function(t,N,O,y,P,Q,R,S,T,U,V,n,u,z,A,p,q,B,C,D,E,v,k,w){async function F(a){var b=a.view;if(!(a?.layer&&b&&a.attributes?.length))throw new n("dot-density-renderer:missing-parameters","'layer', 'view' and 'attributes' parameters are required");if(8<a.attributes.length)throw new n("dot-density-renderer:invalid-parameters","Dot density renderer does not support more than 8 attributes");a.forBinning&&E.verifyBinningParams(a,"dot-density-renderer");const d={...a,view:b,layer:a.layer,attributes:a.attributes}; |
|
var c=[k.LayerType.FeatureLayer,k.LayerType.OGCFeatureLayer,k.LayerType.GeoJSONLayer,k.LayerType.WFSLayer];c=a.forBinning?k.binningCapableLayerTypes:c;a=k.createLayerAdapter(d.layer,c,a.forBinning);if(!a)throw new n("dot-density-renderer:invalid-parameters","'layer' must be one of these types: "+k.getLayerTypeLabels(c).join(", "));d.layer=a;d.dotBlendingEnabled??(d.dotBlendingEnabled=!0);d.dotValueOptimizationEnabled??(d.dotValueOptimizationEnabled=!0);c=null!=d.signal?{signal:d.signal}:null;await Promise.all([b.when(), |
|
a.load(c)]);if("polygon"!==a.geometryType)throw new n("dot-density-renderer:not-supported","Dot density renderer is supported for polygon layers only");b=[];c=d.attributes;for(var f of c)c=await v.getFieldsList({field:f.field,valueExpression:f.valueExpression}),b.push(...c);if(f=q.verifyBasicFieldValidity(a,b.filter(Boolean),"dot-density-renderer:invalid-parameters"))throw f;return d}async function G(a){let b=a.dotDensityScheme,d=null;var c=null;c=await q.getBasemapInfo(a.basemap,a.view);d=null!= |
|
c.basemapId?c.basemapId:null;c=null!=c.basemapTheme?c.basemapTheme:null;if(b)return{scheme:w.cloneScheme(b),basemapId:d,basemapTheme:c};if(a=w.getSchemes({numColors:a.attributes.length,basemapTheme:c}))b=a.primaryScheme,d=a.basemapId,c=a.basemapTheme;return{scheme:b,basemapId:d,basemapTheme:c}}function x(a){return{dotValue:1,referenceScale:a.scale,minSliderValue:1,maxSliderValue:100}}async function H(a){const {view:b,layer:d,attributes:c,signal:f}=a;a=await d.getSampleFeatures({view:b,sampleSize:500, |
|
returnGeometry:!0,signal:f},"json");const [e,g]=await Promise.all([B({features:a,geometryType:d.geometryType}),C({layer:d,attributes:c,includeZeros:!1,includeNegatives:!1,view:b,signal:f})]);a=null!=e&&"avgSize"in e&&e.avgSize;const h=g.avg;if(!a||!h)return x(b);const l=u.getResolutionForScale(b.scale,b.spatialReference);return{dotValue:p.roundValue(h/(a*a/(l*l)*.1))||1,referenceScale:b.scale,minSliderValue:1,maxSliderValue:p.roundValue(h)}}async function I(a){const {view:b,layer:d,attributes:c,signal:f}= |
|
a;a=[];for(var e of c){var g=await v.getFieldsList({field:e.field,valueExpression:e.valueExpression});a.push(...g)}e=await d.getSampleFeatures({view:b,sampleSize:500,requiredFields:a,returnGeometry:!0,signal:f},"json");const {minDensity:h,maxDensity:l,avgDensity:r}=await D({features:e,attributes:c,includeZeros:!1,includeNegatives:!1,view:b});if(!r||!h||!l)return x(b);e=u.getResolutionForScale(b.scale,b.spatialReference);g=e*e;e=p.roundValue(h*g);a=p.roundValue(l*g);g=p.roundValue(r*g*10)||1;g>a&& |
|
(g=a);return{dotValue:g,referenceScale:b.scale,minSliderValue:e,maxSliderValue:a}}t.createRenderer=async function(a){var b=await F(a),d=b.layer;const c=d.geometryType;a=await G(b);const f=a?.scheme;if(!f)throw new n("dot-density-renderer:insufficient-info","Unable to find dot-density scheme");var e=b.view;d={layer:d,view:e,attributes:b.attributes,signal:b.signal};e={layer:b.layer,view:e,signal:b.signal};const [g,h]=await Promise.all([b.trueDensity?I(d):H(d),b.outlineOptimizationEnabled?A(e).catch(q.errorCallback): |
|
null]),{dotValue:l,referenceScale:r,minSliderValue:J,maxSliderValue:K}=g,L=q.createColors(f.colors,b.attributes.length);e=b.attributes.map((m,M)=>({field:m.field,valueExpression:m.valueExpression,label:m.label,valueExpressionTitle:m.valueExpressionTitle,color:L[M]}));b=new y({attributes:e,dotBlendingEnabled:b.dotBlendingEnabled,outline:h?q.getSymbolOutlineFromScheme(f,c,h.opacity):null,dotValue:l,referenceScale:b.dotValueOptimizationEnabled?r:null,legendOptions:b.legendOptions});h?.visualVariables.length&& |
|
(b.visualVariables=h.visualVariables.map(m=>m.clone()));b.authoringInfo=new z({type:"dot-density",minSliderValue:J,maxSliderValue:K});return{renderer:b,dotDensityScheme:f,basemapId:a.basemapId,basemapTheme:a.basemapTheme}};Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}); |