Custom Gis Application with Arcgis Javascript API with modern layouting
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.
 
 

12 lines
4.5 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","../../core/Logger"],function(u,x){function y(a){var c=a.definition;const {classificationMethod:l,normalizationType:f,definedInterval:h}=c;c=c.breakCount??1;const e=[];var b=a.values;if(0===b.length)return[];b=b.sort((g,r)=>g-r);var d=b[0],k=b[b.length-1];if("equal-interval"===l)if(b.length>=c){b=(k-d)/c;a=d;for(var m=1;m<c;m++){var p=Number((d+m*b).toFixed(6));e.push({minValue:a,maxValue:p,label:q(a,p,f)});a=p}e.push({minValue:a,maxValue:k,label:q(a,k,f)})}else b.forEach(g=>{e.push({minValue:g,
maxValue:g,label:q(g,g,f)})});else if("natural-breaks"===l){b=v(b);a=z(b.uniqueValues,a.valueFrequency||b.valueFrequency,c);for(m=1;m<c;m++)b.uniqueValues.length>m&&(p=Number(b.uniqueValues[a[m]].toFixed(6)),e.push({minValue:d,maxValue:p,label:q(d,p,f)}),d=p);e.push({minValue:d,maxValue:k,label:q(d,k,f)})}else if("quantile"===l)if(b.length>=c&&d!==k){a=Math.ceil(b.length/c);m=0;for(p=1;p<c;p++){var n=a+m-1;n>b.length&&(n=b.length-1);0>n&&(n=0);e.push({minValue:d,maxValue:b[n],label:q(d,b[n],f)});
d=b[n];m+=a;a=Math.ceil((b.length-m)/(c-p))}e.push({minValue:d,maxValue:k,label:q(d,k,f)})}else for(c=-1,k=0;k<b.length;k++)d=b[k],d!==c&&(c=d,e.push({minValue:c,maxValue:d,label:q(c,d,f)}),c=d);else if("standard-deviation"===l)if(a=A(b),m=B(b,a),0===m)e.push({minValue:b[0],maxValue:b[0],label:q(b[0],b[0],f)});else{b=C(d,k,c,a,m)*m;m=0;for(p=c;1<=p;p--)n=Number((a-(p-.5)*b).toFixed(6)),e.push({minValue:d,maxValue:n,label:q(d,n,f)}),d=n,m++;p=Number((a+.5*b).toFixed(6));e.push({minValue:d,maxValue:p,
label:q(d,p,f)});d=p;m++;for(n=1;n<=c;n++)p=m===2*c?k:Number((a+(n+.5)*b).toFixed(6)),e.push({minValue:d,maxValue:p,label:q(d,p,f)}),d=p,m++}else if("defined-interval"===l){if(!h)return e;c=b[0];k=b[b.length-1];b=Math.ceil((k-c)/h);d=c;for(a=1;a<b;a++)m=Number((c+a*h).toFixed(6)),e.push({minValue:d,maxValue:m,label:q(d,m,f)}),d=m;e.push({minValue:d,maxValue:k,label:q(d,k,f)})}return e}function q(a,c,l){let f=null;return f=a===c?l&&"percent-of-total"===l?a+"%":a.toString():l&&"percent-of-total"===
l?a+"% - "+c+"%":a+" - "+c}function v(a){const c=[],l=[];let f=Number.MIN_VALUE,h=1,e=-1;for(let b=0;b<a.length;b++){const d=a[b];d===f?(h++,l[e]=h):null!==d&&(c.push(d),f=d,h=1,l.push(h),e++)}return{uniqueValues:c,valueFrequency:l}}function z(a,c,l){var f=a.length;const h=[];l>f&&(l=f);for(var e=0;e<l;e++)h.push(Math.round(e*f/l-1));h.push(f-1);e=w(h,a,c,l);f=e.mean;e=e.sdcm;var b=l,d=0,k=0;let m=0,p=0,n=!0;for(let r=0;2>r&&n;r++){0===r&&(n=!1);for(var g=0;g<b-1;g++)for(;h[g+1]+1!==h[g+2];)if(h[g+
1]+=1,d=t(g,h,a,c),m=d.sbMean,d=d.sbSdcm,k=t(g+1,h,a,c),p=k.sbMean,k=k.sbSdcm,d+k<e[g]+e[g+1])e[g]=d,e[g+1]=k,f[g]=m,f[g+1]=p,n=!0;else{--h[g+1];break}for(g=b-1;0<g;g--)for(;h[g]!==h[g-1]+1;)if(--h[g],d=t(g-1,h,a,c),m=d.sbMean,d=d.sbSdcm,k=t(g,h,a,c),p=k.sbMean,k=k.sbSdcm,d+k<e[g-1]+e[g])e[g-1]=d,e[g]=k,f[g-1]=m,f[g]=p,n=!0;else{h[g]+=1;break}}n&&(e=w(h,a,c,l));return h}function w(a,c,l,f){let h=[];var e=[],b=[];let d=0;const k=[],m=[];for(var p=0;p<f;p++){var n=t(p,a,c,l);k.push(n.sbMean);m.push(n.sbSdcm);
d+=m[p]}n=d;for(p=!0;p||d<n;){p=!1;h=[];for(e=0;e<f;e++)h.push(a[e]);for(b=0;b<f;b++)for(n=a[b]+1;n<=a[b+1];n++)if(e=c[n],0<b&&n!==a[b+1]&&Math.abs(e-k[b])>Math.abs(e-k[b-1]))a[b]=n;else if(b<f-1&&a[b]!==n-1&&Math.abs(e-k[b])>Math.abs(e-k[b+1])){a[b+1]=n-1;break}n=d;d=0;e=[];b=[];for(let g=0;g<f;g++){e.push(k[g]);b.push(m[g]);const r=t(g,a,c,l);k[g]=r.sbMean;m[g]=r.sbSdcm;d+=m[g]}}if(d>n){for(c=0;c<f;c++)a[c]=h[c],k[c]=e[c],m[c]=b[c];d=n}return{mean:k,sdcm:m}}function C(a,c,l,f,h){a=Math.max(f-a,
c-f)/h/l;return 1<=a?1:.5<=a?.5:.25}function A(a){let c=0;for(let l=0;l<a.length;l++)c+=a[l];return c/=a.length}function B(a,c){let l=0;for(let f=0;f<a.length;f++){const h=a[f];l+=(h-c)*(h-c)}l/=a.length;return Math.sqrt(l)}function t(a,c,l,f){var h=0,e=0;for(var b=c[a]+1;b<=c[a+1];b++){const d=f[b];h+=l[b]*d;e+=d}0>=e&&x.getLogger("esri.rest.support.generateRendererUtils").warn("Exception in Natural Breaks calculation");h/=e;e=0;for(b=c[a]+1;b<=c[a+1];b++)e+=f[b]*(l[b]-h)**2;return{sbMean:h,sbSdcm:e}}
u.createGenerateRendererClassBreaks=function(a){const {normalizationTotal:c}=a;return{classBreaks:y(a),normalizationTotal:c}};u.createGenerateRendererUniqueValues=function(a){a=v(a);const c=[],l=a.uniqueValues.length;for(let f=0;f<l;f++){const h=a.uniqueValues[f];c.push({value:h,count:a.valueFrequency[f],label:h.toString()})}return{uniqueValues:c}};Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});