@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 7.42 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{isPoint as n,isPolyline as t,isPolygon as e,isMultipoint as r,isExtent as o}from"./jsonUtils.js";function s(n){if(!n)return null;return{originPosition:"upper-left"===n.originPosition?"upperLeft":"lower-left"===n.originPosition?"lowerLeft":n.originPosition,scale:n.tolerance?[n.tolerance,n.tolerance,1,1]:[1,1,1,1],translate:null!=n.extent?[n.extent.xmin,n.extent.ymax,n.extent.zmin??0,n.extent.mmin??0]:[0,0,0,0]}}function l(n){return"lowerLeft"===n.originPosition&&4===n.scale.length&&4===n.translate.length}function u(n){if(l(n))return n;const{originPosition:t,scale:e,translate:r}=n,o=e[0]??1,s=e[1]??1;return{originPosition:"lowerLeft",scale:[o,"lowerLeft"===t?s:-s,e[2]??1,e[3]??1],translate:[r[0]??0,r[1]??0,r[2]??0,r[3]??0]}}function i({scale:n,translate:t},e){return Math.round((e-t[0])/n[0])}function a({scale:n,translate:t},e){return Math.round((e-t[1])/n[1])}function c({scale:n,translate:t},e){return Math.round(((e??0)-t[2])/n[2])}function h({scale:n,translate:t},e){return e?Math.round((e-t[3])/n[3]):0}function f(n,t){return n&&t?M:n&&!t?g:!n&&t?x:m}const m=(n,t)=>{const e=[];if(!t.length)return null;const r=t[0];let o=i(n,r[0]),s=a(n,r[1]);e.push([o,s]);for(let l=1;l<t.length;l++){const[r,u]=t[l],c=i(n,r),h=a(n,u);c===o&&h===s||e.push([c-o,h-s]),o=c,s=h}return e},g=(n,t)=>{const e=[];if(!t.length)return null;const r=t[0];let o=i(n,r[0]),s=a(n,r[1]),l=c(n,r[2]);e.push([o,s,l]);for(let u=1;u<t.length;u++){const[r,h,f]=t[u],m=i(n,r),g=a(n,h),x=c(n,f);m===o&&g===s&&x===l||e.push([m-o,g-s,x]),o=m,s=g,l=x}return e},x=(n,t)=>{const e=[];if(!t.length)return null;const r=t[0];let o=i(n,r[0]),s=a(n,r[1]),l=h(n,r[2]);e.push([o,s,l]);for(let u=1;u<t.length;u++){const[r,c,f]=t[u],m=i(n,r),g=a(n,c),x=h(n,f);m===o&&g===s&&x===l||e.push([m-o,g-s,x]),o=m,s=g,l=x}return e},M=(n,t)=>{const e=[];if(!t.length)return null;const r=t[0];let o=i(n,r[0]),s=a(n,r[1]),l=c(n,r[2]),u=h(n,r[3]);e.push([o,s,l,u]);for(let f=1;f<t.length;f++){const[r,m,g,x]=t[f],M=i(n,r),I=a(n,m),p=c(n,g),N=h(n,x);M===o&&I===s&&p===l&&N===u||e.push([M-o,I-s,p,N]),o=M,s=I,l=p,u=N}return e};function I(n,t,e){const r=u(n);return t[0]=i(r,e[0]),t[3]=a(r,e[1]),t[2]=i(r,e[2]),t[1]=a(r,e[3]),t}function p(n,t,e,r){const o=[],s=f(e,r);for(let l=0;l<t.length;l++){const e=s(n,t[l]);e&&e.length>=3&&o.push(e)}return o.length?o:null}function N(n,t,e,r){const o=[],s=f(e,r);for(let l=0;l<t.length;l++){const e=s(n,t[l]);e&&e.length>=2&&o.push(e)}return o.length?o:null}function Z({scale:n,translate:t},e){return e*n[0]+t[0]}function y({scale:n,translate:t},e){return e*n[1]+t[1]}function z({scale:n,translate:t},e){return(e??0)*n[2]+t[2]}function w({scale:n,translate:t},e){return e?e*n[3]+t[3]:0}function P(n,t){return n&&t?A:n&&!t?E:!n&&t?L:T}const T=(n,t)=>{const e=new Array(t.length);if(!t.length)return e;const r=t[0];let o=Z(n,r[0]),s=y(n,r[1]);e[0]=[o,s];const{scale:l,originPosition:u}=n,i=l[0],a="lowerLeft"===u?l[1]:-l[1];for(let c=1;c<t.length;c++){const[n,r]=t[c];o+=i*n,s+=a*r,e[c]=[o,s]}return e},E=(n,t)=>{const e=new Array(t.length);if(!t.length)return e;const r=t[0];let o=Z(n,r[0]),s=y(n,r[1]);e[0]=[o,s,z(n,r[2])];const{scale:l,originPosition:u}=n,i=l[0],a="lowerLeft"===u?l[1]:-l[1];for(let c=1;c<t.length;c++){const[r,l,u]=t[c];o+=i*r,s+=a*l,e[c]=[o,s,z(n,u)]}return e},L=(n,t)=>{const e=new Array(t.length);if(!t.length)return e;const r=t[0];let o=Z(n,r[0]),s=y(n,r[1]);e[0]=[o,s,w(n,r[2])];const{scale:l,originPosition:u}=n,i=l[0],a="lowerLeft"===u?l[1]:-l[1];for(let c=1;c<t.length;c++){const[r,l,u]=t[c];o+=i*r,s+=a*l,e[c]=[o,s,w(n,u)]}return e},A=(n,t)=>{const e=new Array(t.length);if(!t.length)return e;const r=t[0];let o=Z(n,r[0]),s=y(n,r[1]);e[0]=[o,s,z(n,r[2]),w(n,r[3])];const{scale:l,originPosition:u}=n,i=l[0],a="lowerLeft"===u?l[1]:-l[1];for(let c=1;c<t.length;c++){const[r,l,u,h]=t[c];o+=i*r,s+=a*l,e[c]=[o,s,z(n,u),w(n,h)]}return e};function b(n,t,e){const r=new Array(e.length);for(let o=0;o<e.length;o++)r[o]=t(n,e[o]);return r}function F(n,t,e){const r=u(n);return e?(t[0]=Z(r,e[0]),t[1]=y(r,e[3]),t[2]=Z(r,e[2]),t[3]=y(r,e[1]),t):[Z(r,t[0]),y(r,t[3]),Z(r,t[2]),y(r,t[1])]}function V(n,t,e){let[r,o]=e[0],s=Math.min(r,t[0]),l=Math.min(o,t[1]),u=Math.max(r,t[2]),i=Math.max(o,t[3]);for(let a=1;a<e.length;a++){const[n,t]=e[a];r+=n,o+=t,n<0&&(s=Math.min(s,r)),n>0&&(u=Math.max(u,r)),t<0?l=Math.min(l,o):t>0&&(i=Math.max(i,o))}return n[0]=s,n[1]=l,n[2]=u,n[3]=i,n}function Y(n,t){if(!t.length)return null;n[0]=n[1]=Number.POSITIVE_INFINITY,n[2]=n[3]=Number.NEGATIVE_INFINITY;for(let e=0;e<t.length;e++)V(n,n,t[e]);return n}function _(n){const t=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];return V(t,t,n)}function d(n){return Y([0,0,0,0],n)}function G(n){return Y([0,0,0,0],n)}function O(n,t,e){const r=u(n);return t.xmin=i(r,e.xmin),t.ymin=a(r,e.ymin),t.xmax=i(r,e.xmax),t.ymax=a(r,e.ymax),e.hasZ&&(t.zmin=c(r,e.zmin),t.zmax=c(r,e.zmax)),e.hasM&&(t.mmin=h(r,e.mmin),t.mmax=h(r,e.mmax)),t.hasZ=e.hasZ??!1,t.hasM=e.hasM??!1,t}function S(n,t,e){const r=u(n);return t.points=f(e.hasZ,e.hasM)(r,e.points)??[],t.hasZ=e.hasZ??!1,t.hasM=e.hasM??!1,t}function j(n,t,e){const r=u(n);return t.x=i(r,e.x),t.y=a(r,e.y),null!=e.z&&(t.z=c(r,e.z)),null!=e.m&&(t.m=h(r,e.m)),t}function U(n,t,e){const r=p(u(n),e.rings,e.hasZ,e.hasM);return r?(t.rings=r,t.hasZ=e.hasZ??!1,t.hasM=e.hasM??!1,t):null}function k(n,t,e){const r=N(u(n),e.paths,e.hasZ,e.hasM);return r?(t.paths=r,t.hasZ=e.hasZ??!1,t.hasM=e.hasM??!1,t):null}function q(s,l){return s&&l?n(l)?j(s,{},l):t(l)?k(s,{},l):e(l)?U(s,{},l):r(l)?S(s,{},l):o(l)?O(s,{},l):null:null}function v(n,t,e,r=e.hasZ??!1,o=e.hasM??!1){const s=u(n);return t.xmin=Z(s,e.xmin),t.xmax=Z(s,e.xmax),t.ymin=y(s,e.ymin),t.ymax=y(s,e.ymax),r&&(t.zmin=z(s,e.zmin),t.zmax=z(s,e.zmax)),o&&(t.mmin=w(s,e.mmin),t.mmax=w(s,e.mmax)),t.hasZ=r,t.hasM=o,t}function B(n,t,e,r=e?.hasZ??!1,o=e?.hasM??!1){if(null!=e){const s=u(n);t.points=P(r,o)(s,e.points),t.hasZ=r,t.hasM=o}return t}function C(n,t,e,r=null!=e?.z,o=null!=e?.m){if(null==e)return t;const s=u(n);return t.x=Z(s,e.x),t.y=y(s,e.y),r&&(t.z=z(s,e.z)),o&&(t.m=w(s,e.m)),t}function D(n,t,e,r=e?.hasZ??!1,o=e?.hasM??!1){if(null!=e){const s=u(n);t.rings=b(s,P(r,o),e.rings),t.hasZ=r,t.hasM=o}return t}function H(n,t,e,r=e?.hasZ??!1,o=e?.hasM??!1){if(null!=e){const s=u(n);t.paths=b(s,P(r,o),e.paths),t.hasZ=r,t.hasM=o}return t}export{V as getQuantizedBoundsCoordsArray,Y as getQuantizedBoundsCoordsArrayArray,d as getQuantizedBoundsPaths,_ as getQuantizedBoundsPoints,G as getQuantizedBoundsRings,u as normalizeTransform,I as quantizeBounds,m as quantizeCoordsArrayXY,x as quantizeCoordsArrayXYM,g as quantizeCoordsArrayXYZ,M as quantizeCoordsArrayXYZM,O as quantizeExtent,q as quantizeGeometry,h as quantizeM,S as quantizeMultipoint,j as quantizePoint,U as quantizePolygon,k as quantizePolyline,i as quantizeX,a as quantizeY,c as quantizeZ,s as toQuantizationTransform,F as unquantizeBounds,b as unquantizeCoordsArrayArray,T as unquantizeCoordsArrayXY,L as unquantizeCoordsArrayXYM,E as unquantizeCoordsArrayXYZ,A as unquantizeCoordsArrayXYZM,v as unquantizeExtent,w as unquantizeM,B as unquantizeMultipoint,C as unquantizePoint,D as unquantizePolygon,H as unquantizePolyline,Z as unquantizeX,y as unquantizeY,z as unquantizeZ};