@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.79 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{__addDisposableResource as r,__disposeResources as e}from"tslib";import{t}from"./Geometry.js";import{m as s,P as a}from"./Point2D.js";import"./MultiPathImpl.js";import{ap as o,U as n,R as i,O as l,S as c,ak as m}from"./SpatialReference.js";import"./Envelope.js";function f(m,f,g,u,p,S){const N={stack:[],error:void 0,hasError:!1};try{4===u&&t("");const e=m,h=o(e),y=n();h.querySpheroidData(y);const v=y.e2,T=y.majorSemiAxis,d=h.getUnit().getUnitToBaseFactor(),j=r(N,new i,!1),x=r(N,new i,!1),w=r(N,new i,!1);if(f.isNAN()||g.isNAN())return Number.NaN;const A=s(a,2);A[0].assign(f),A[1].assign(g);const C=s(a,2),E=e.getGCS()!==e?e.getSRToGCSTransform():null;if(E){if(2!==(new l).transform(E,A,2,C))return Number.NaN}else C[0].assign(A[0]),C[1].assign(A[1]);return C[0].scale(d),C[1].scale(d),c.geodeticDistance(T,v,C[0].x,C[0].y,C[1].x,C[1].y,j,x,w,u),p[0]=x.val,S[0]=w.val,j.val}catch(h){N.error=h,N.hasError=!0}finally{e(N)}}function g(l,f,g,u,p,S){const N={stack:[],error:void 0,hasError:!1};try{4===S&&t("");const e=l,h=o(e),y=n();h.querySpheroidData(y);const v=y.e2,T=y.majorSemiAxis,d=h.getUnit().getUnitToBaseFactor(),j=r(N,new i,!1),x=r(N,new i,!1),w=e.getSRToGCSTransform(),A=e.getGCSToSRTransform(),C=s(a,100),E=s(a,100);let G=0;for(let r=0,t=0;r<g;){let e=g-r;e>C.length&&(e=C.length);for(let t=0;t<e;t++)C[t].assign(f[r+t]);if(m(w,C,e,E,null)>0){for(let r=0;r<e;r++){const e=E[r].clone();e.isNAN()?C[r].assign(e):(e.scale(d),c.geodeticCoordinate(T,v,e.x,e.y,u,p,j,x,S),e.x=j.val,e.y=x.val,e.scale(1/d),C[r].assign(e))}G+=m(A,C,e,E,null)}for(let r=0;r<e;r++)f[t+r].assign(E[r]);r+=e,t+=e}return G}catch(h){N.error=h,N.hasError=!0}finally{e(N)}}export{f as calculateDistanceAndAzimuth,g as movePointsByDistance};