UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 3.37 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{createLength as t}from"../../core/quantityUtils.js";import{lengthUnitFromSpatialReference as n,verticalLengthUnitFromSpatialReference as r}from"../../core/unitUtils.js";import{j as e,i}from"../../chunks/vec32.js";import{create as l}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{projectVectorToVector as o}from"../../geometry/projection/projectVectorToVector.js";import{equals as c}from"../../geometry/support/spatialReferenceUtils.js";import{computeEuclideanMeasurementSR as u}from"./measurementUtils.js";var a;function s(t){return p(t,a.Direct)}function f(t){return p(t,a.Horizontal)}function p(r,e){const{hasZ:i,spatialReference:l}=r,o=u(l);let c=0;const s=n(o);if(null==s)return null;const f=e===a.Direct?x:Z;for(const t of r.paths){if(t.length<2)continue;const n=t.length-1;for(let r=0;r<n;++r){const n=t[r];D[0]=n[0],D[1]=n[1],D[2]=i?n[2]:0;const e=t[r+1];H[0]=e[0],H[1]=e[1],H[2]=i?e[2]:0;const o=f(D,H,l);if(null==o)return null;c+=o.value}}return t(c,s)}function h(t,n){const{spatialReference:r}=t;return c(r,n.spatialReference)?(D[0]=t.x,D[1]=t.y,D[2]=t.hasZ?t.z:0,H[0]=n.x,H[1]=n.y,H[2]=n.hasZ?n.z:0,v(D,H,r)):null}function m(t,n){const{spatialReference:r}=t;return c(r,n.spatialReference)?(D[0]=t.x,D[1]=t.y,D[2]=t.hasZ?t.z:0,H[0]=n.x,H[1]=n.y,H[2]=n.hasZ?n.z:0,x(D,H,r)):null}function z(t,n){const{spatialReference:r}=t;return c(r,n.spatialReference)?(D[0]=t.x,D[1]=t.y,D[2]=t.hasZ?t.z:0,H[0]=n.x,H[1]=n.y,H[2]=n.hasZ?n.z:0,Z(D,H,r)):null}function y(t,n){const{spatialReference:r}=t;return c(r,n.spatialReference)?(D[0]=t.x,D[1]=t.y,D[2]=t.hasZ?t.z:0,H[0]=n.x,H[1]=n.y,H[2]=n.hasZ?n.z:0,g(D,H,r)):null}function R(t){return null!=t?j(t.hasZ?t.z:0,t.spatialReference):null}function j(n,e){const i=r(e);return null!=i?t(n??0,i):null}function v(n,r,e){const i=V(n,r,e);return null!=i?{direct:t(i.direct,i.unit),horizontal:t(i.horizontal,i.unit),vertical:t(i.vertical,i.unit)}:null}function x(n,r,e){const i=V(n,r,e,a.Direct);return null!=i?t(i.direct,i.unit):null}function Z(n,r,e){const i=V(n,r,e,a.Horizontal);return null!=i?t(i.horizontal,i.unit):null}function d(n,r,e){const i=V(n,r,e,a.Vertical);return null!=i?t(Math.abs(i.verticalSigned),i.unit):null}function g(n,r,e){const i=V(n,r,e,a.Vertical);return null!=i?t(i.verticalSigned,i.unit):null}function V(t,r,l,c){const s=u(l),f=n(s);if(null==f)return null;const p=r[2]-t[2];if(c===a.Vertical)return{verticalSigned:p,unit:f};if(!o(t,l,U,s)||!o(r,l,b,s))return null;if(c===a.Direct){return{direct:e(b,U),unit:f}}if(i(S,t[0],t[1],r[2]),!o(S,l,S,s))return null;const h=e(S,b);if(c===a.Horizontal)return{horizontal:h,unit:f};return{direct:e(b,U),horizontal:h,vertical:Math.abs(p),unit:f}}!function(t){t[t.Direct=0]="Direct",t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical"}(a||(a={}));const D=l(),H=l(),U=l(),b=l(),S=l();export{R as elevationFromPoint,j as elevationFromZ,x as euclideanDirectDistance,m as euclideanDirectDistanceBetweenPoints,v as euclideanDistance,h as euclideanDistanceBetweenPoints,Z as euclideanHorizontalDistance,z as euclideanHorizontalDistanceBetweenPoints,f as euclideanHorizontalLength,s as euclideanLength,d as verticalDistance,g as verticalSignedDistance,y as verticalSignedDistanceBetweenPoints};