@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.4 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */
import{clamp as t}from"../../../../core/mathUtils.js";import{meterIn as n}from"../../../../renderers/support/lengthUtils.js";const e=Math.PI;function r(t,n){switch(n.transformationType){case"additive":return a(t,n);case"constant":return s(n,t);case"clamped-linear":return u(t,n);case"proportional":return o(t,n);case"stops":return c(t,n);case"real-world-size":return l(t,n);case"identity":return t;case"unknown":return null}}function i(t,n){return"number"==typeof t?t:r(n,t)}function a(t,n){return t+(i(n.minSize,t)||n.minDataValue)}function s(t,n){const e=t.stops;let r=e?.length&&e[0].size;return null==r&&(r=t.minSize),i(r,n)}function u(t,n){const e=n.minDataValue,r=n.maxDataValue,a=(t-e)/(r-e),s=i(n.minSize,t),u=i(n.maxSize,t);return t<=e?s:t>=r?u:s+a*(u-s)}function o(n,e){const r=n/e.minDataValue,a=i(e.minSize,n),s=i(e.maxSize,n);let u=null;return u=r*a,t(u,a,s)}function c(t,n){const[e,r,a]=m(t,n.cache.ipData);if(e===r)return i(n.stops[e].size,t);{const s=i(n.stops[e].size,t);return s+(i(n.stops[r].size,t)-s)*a}}function l(t,r){const i=n[r.valueUnit],{valueRepresentation:a}=r;let s=null;return s="area"===a?2*Math.sqrt(t/e)/i:"radius"===a||"distance"===a?2*t/i:t/i,s}function m(t,n){if(!n)return;let e=0,r=n.length-1;return n.some((n,i)=>t<n?(r=i,!0):(e=i,!1)),[e,r,(t-n[e])/(n[r]-n[e])]}export{r as getSizeForValueSimple};