@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.53 kB
JavaScript
import{createLength as e}from"../../core/quantityUtils.js";import{c as t}from"../../chunks/vec3f64.js";import{geodesicLength as r}from"../../geometry/geometryEngine.js";import{projectVectorToWGS84ComparableLonLat as n,projectPolylineToWGS84ComparableLonLat as o}from"../../geometry/projection.js";import{inverseGeodeticSolver as s,geodesicLengths as i,InverseGeodeticSolverResult as c}from"../../geometry/support/geodesicUtils.js";import{equals as u}from"../../geometry/support/spatialReferenceUtils.js";import{geodesicMeasure as f}from"./geodesicMeasurementUtils.js";function m(e){const{spatialReference:t}=e;return f(t,j,d,h,e)}function a(e,t){if(!u(e.spatialReference,t.spatialReference))return null;const{spatialReference:r}=e;return x[0]=e.x,x[1]=e.y,x[2]=e.hasZ?e.z:0,z[0]=t.x,z[1]=t.y,z[2]=t.hasZ?t.z:0,l(x,z,r)}function l(e,t,r){return f(r,p,g,y,e,t,r)}function p(t,r,n){return e(s(U,t,r,n).distance,"meters")}function g(t,n,o){return e(r(R(t,n,o),"meters"),"meters")}function y(t,r,o){return n(t,o,Z)&&n(r,o,k)?e(s(U,Z,k).distance,"meters"):null}function j(t){return e(i([t],"meters")[0],"meters")}function d(t){return e(r(t,"meters"),"meters")}function h(t){const r=[];if(!o(t,r))return null;let n=0;for(const e of r){let t=0;for(let r=1;r<e.length;++r)t+=s(U,e[r-1],e[r]).distance;n+=t}return e(n,"meters")}function R(e,t,r){return{type:"polyline",spatialReference:r,paths:[[[...e],[...t]]]}}const U=new c,x=t(),z=t(),Z=t(),k=t();export{l as geodesicDistance,a as geodesicDistanceBetweenPoints,m as geodesicLength};