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.
 
 

11 lines
3.6 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/floatRGBA","../../geometry/support/jsonUtils","./Rect","../../views/2d/engine/webgl/definitions"],function(A,H,I,J,D){function F(b){switch(b.type){case "CIMPointSymbol":b=b.symbolLayers;if(!b||1!==b.length)return null;b=b[0];return"CIMVectorMarker"!==b.type?null:F(b);case "CIMVectorMarker":b=b.markerGraphics;if(!b||1!==b.length)return null;var a=b[0];if(!a)return null;b=a.geometry;if(!b)return null;a=a.symbol;return!a||"CIMPolygonSymbol"!==a.type&&"CIMLineSymbol"!==a.type||
a.symbolLayers?.some(c=>!!c.effects)?null:{type:"sdf",geom:b,asFill:"CIMPolygonSymbol"===a.type}}}function G(b){let a=Infinity,c=-Infinity,f=Infinity,e=-Infinity;for(const d of b)for(const k of d)k[0]<a&&(a=k[0]),k[0]>c&&(c=k[0]),k[1]<f&&(f=k[1]),k[1]>e&&(e=k[1]);return[a,f,c,e]}A.buildSDF=function(b){var a=b.geom;var c=a?a.rings?a.rings:a.paths?a.paths:void 0!==a.xmin&&void 0!==a.ymin&&void 0!==a.xmax&&void 0!==a.ymax?[[[a.xmin,a.ymin],[a.xmin,a.ymax],[a.xmax,a.ymax],[a.xmax,a.ymin],[a.xmin,a.ymin]]]:
null:null;a=Infinity;var f=-Infinity;var e=Infinity;var d=-Infinity;for(var k of c)for(var l of k)l[0]<a&&(a=l[0]),l[0]>f&&(f=l[0]),l[1]<e&&(e=l[1]),l[1]>d&&(d=l[1]);e=new J(a,e,f-a,d-e);k=D.defaultSdfTextureSize;l=D.spritePadding;a=Math.floor(.5*(.5*k-l));d=(k-2*(a+l))/Math.max(e.width,e.height);k=Math.round(e.width*d)+2*a;l=Math.round(e.height*d)+2*a;f=[];for(var q of c)if(q&&1<q.length){c=[];for(var m of q){let [u,w]=m;u-=e.x;w-=e.y;u*=d;w*=d;u+=a-.5;w+=a-.5;b.asFill?c.push([u,w]):c.push([Math.round(u),
Math.round(w)])}if(b.asFill){var g=c.length-1;c[0][0]===c[g][0]&&c[0][1]===c[g][1]||c.push(c[0])}f.push(c)}m=k*l;q=Array(m);c=a*a+1;for(e=0;e<m;++e)q[e]=c;for(var h of f)for(c=h.length,e=1;e<c;++e){d=h[e-1];g=h[e];var t=void 0,r=void 0;d[0]<g[0]?(t=d[0],r=g[0]):(t=g[0],r=d[0]);var n=void 0,p=void 0;d[1]<g[1]?(n=d[1],p=g[1]):(n=g[1],p=d[1]);var x=Math.floor(t)-a;r=Math.floor(r)+a;n=Math.floor(n)-a;p=Math.floor(p)+a;0>x&&(x=0);r>k&&(r=k);0>n&&(n=0);p>l&&(p=l);t=g[0]-d[0];const u=g[1]-d[1],w=t*t+u*u;
for(;x<r;x++)for(let E=n;E<p;E++){var y=x+.5,z=E+.5,v=(y-d[0])*t+(z-d[1])*u;let B;0>v?(B=d[0],v=d[1]):v>w?(B=g[0],v=g[1]):(v/=w,B=d[0]+v*t,v=d[1]+v*u);y=(y-B)*(y-B)+(z-v)*(z-v);z=(l-E-1)*k+x;y<q[z]&&(q[z]=y)}}for(h=0;h<m;++h)q[h]=Math.sqrt(q[h]);if(b.asFill)for(var C of f)for(b=C.length,h=1;h<b;++h)for(f=C[h-1],m=C[h],f[0]<m[0]?(c=f[0],e=m[0]):(c=m[0],e=f[0]),f[1]<m[1]?(g=f[1],d=m[1]):(g=m[1],d=f[1]),c=Math.floor(c),e=Math.floor(e)+1,g=Math.floor(g),d=Math.floor(d)+1,c<a&&(c=a),e>k-a&&(e=k-a),g<a&&
(g=a),d>l-a&&(d=l-a);g<d;++g)if(f[1]>g!==m[1]>g){n=g+.5;r=(l-g-1)*k;for(p=c;p<e;++p)p+.5<(m[0]-f[0])*(n-f[1])/(m[1]-f[1])+f[0]&&(q[r+p]=-q[r+p]);for(n=a;n<c;++n)q[r+n]=-q[r+n]}C=2*a;a=q.length;b=new Uint8Array(4*a);for(h=0;h<a;++h)H.packFloatRGBA(.5-q[h]/C,b,4*h);return[b,k,l]};A.getExtent=function(b){return b?b.rings?G(b.rings):b.paths?G(b.paths):I.isExtent(b)?[b.xmin,b.ymin,b.xmax,b.ymax]:null:null};A.getSDFInfo=F;A.getSDFMetrics=function(b,a,c,f,e){const [d,k,l,q]=b;if(l<d||q<k)return[0,0,0,1];
var m=l-d,g=q-k,h=D.defaultSdfTextureSize,t=D.spritePadding;b=Math.floor(.5*(.5*h-t));h=(h-2*(b+t))/Math.max(m,g);t=Math.round(m*h);const r=Math.round(g*h)+2*b;g=1;a&&(g=r/h/(a.ymax-a.ymin));let n=0,p=0;m=1;f&&(e?a&&c&&0<a.ymax-a.ymin&&(m=(a.xmax-a.xmin)/(a.ymax-a.ymin),n=f.x/(c*m),p=f.y/c):(n=f.x,p=f.y));a&&(n=.5*(a.xmax+a.xmin)+n*(a.xmax-a.xmin),p=.5*(a.ymax+a.ymin)+p*(a.ymax-a.ymin));n=(n-d)*h+b;p=(p-k)*h+b;a=n/(t+2*b)-.5;f=p/r-.5;e&&c&&(a*=c*m,f*=c);return[g,a,f,m]};Object.defineProperty(A,Symbol.toStringTag,
{value:"Module"})});