12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.24/esri/copyright.txt for details.
- */
- import{version as n}from"../../kernel.js";import{cloneGeometry as e,convertSquareUnitsToCode as r,convertLinearUnitsToCode as t}from"../kernel.js";import{H as l,p as i,j as o,h as u,l as f,n as a,A as s,K as c,C as g,J as m,L as h,f as w,g as p}from"../../chunks/languageUtils.js";import{centroidPolyline as A,centroidMultiPoint as E,getMetersPerVerticalUnitForSR as I,segmentLength3d as y}from"./centroid.js";import d from"../../geometry/Extent.js";import R from"../../geometry/Geometry.js";import x from"../../geometry/Multipoint.js";import N from"../../geometry/Point.js";import j from"../../geometry/Polygon.js";import L from"../../geometry/Polyline.js";import{fromJSON as k}from"../../geometry/support/jsonUtils.js";import{getMetersPerUnitForSR as M}from"../../core/unitUtils.js";let P=null;function Z(e){return 0===n.indexOf("4.")?j.fromExtent(e):new j({spatialReference:e.spatialReference,rings:[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]})}function b(n){P=n}function v(n,e){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let r=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){r=I(n.spatialReference)/M(n.spatialReference)}let t=0;if("polyline"===n.type)for(const i of n.paths)for(let n=1;n<i.length;n++)t+=y(i[n],i[n-1],r);else if("polygon"===n.type)for(const i of n.rings){for(let n=1;n<i.length;n++)t+=y(i[n],i[n-1],r);(i[0][0]!==i[i.length-1][0]||i[0][1]!==i[i.length-1][1]||void 0!==i[0][2]&&i[0][2]!==i[i.length-1][2])&&(t+=y(i[0],i[i.length-1],r))}else"extent"===n.type&&(t+=2*y([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],r),t+=2*y([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],r),t*=2,t+=4*Math.abs(g(n.zmax,0)*r-g(n.zmin,0)*r));const l=new L({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,t]]});return P.planarLength(l,e)}function z(n,I){function y(n){if(i(n,2,2),n[0]instanceof R&&n[1]instanceof R);else if(n[0]instanceof R&&null===n[1]);else if(n[1]instanceof R&&null===n[0]);else if(null!==n[0]||null!==n[1])throw new Error("Illegal Argument")}n.disjoint=function(n,e){return I(n,e,(function(n,e,r){return y(r=l(r)),null===r[0]||null===r[1]||P.disjoint(r[0],r[1])}))},n.intersects=function(n,e){return I(n,e,(function(n,e,r){return y(r=l(r)),null!==r[0]&&null!==r[1]&&P.intersects(r[0],r[1])}))},n.touches=function(n,e){return I(n,e,(function(n,e,r){return y(r=l(r)),null!==r[0]&&null!==r[1]&&P.touches(r[0],r[1])}))},n.crosses=function(n,e){return I(n,e,(function(n,e,r){return y(r=l(r)),null!==r[0]&&null!==r[1]&&P.crosses(r[0],r[1])}))},n.within=function(n,e){return I(n,e,(function(n,e,r){return y(r=l(r)),null!==r[0]&&null!==r[1]&&P.within(r[0],r[1])}))},n.contains=function(n,e){return I(n,e,(function(n,e,r){return y(r=l(r)),null!==r[0]&&null!==r[1]&&P.contains(r[0],r[1])}))},n.overlaps=function(n,e){return I(n,e,(function(n,e,r){return y(r=l(r)),null!==r[0]&&null!==r[1]&&P.overlaps(r[0],r[1])}))},n.equals=function(n,e){return I(n,e,(function(n,e,r){return i(r,2,2),r[0]===r[1]||(r[0]instanceof R&&r[1]instanceof R?P.equals(r[0],r[1]):!(!o(r[0])||!o(r[1]))&&r[0].getTime()===r[1].getTime())}))},n.relate=function(n,e){return I(n,e,(function(n,e,r){if(r=l(r),i(r,3,3),r[0]instanceof R&&r[1]instanceof R)return P.relate(r[0],r[1],u(r[2]));if(r[0]instanceof R&&null===r[1])return!1;if(r[1]instanceof R&&null===r[0])return!1;if(null===r[0]&&null===r[1])return!1;throw new Error("Illegal Argument")}))},n.intersection=function(n,e){return I(n,e,(function(n,e,r){return y(r=l(r)),null===r[0]||null===r[1]?null:P.intersect(r[0],r[1])}))},n.union=function(n,r){return I(n,r,(function(r,t,i){const o=[];if(0===(i=l(i)).length)throw new Error("Function called with wrong number of Parameters");if(1===i.length)if(f(i[0])){const n=l(i[0]);for(let e=0;e<n.length;e++)if(null!==n[e]){if(!(n[e]instanceof R))throw new Error("Illegal Argument");o.push(n[e])}}else{if(!a(i[0])){if(i[0]instanceof R)return s(e(i[0]),n.spatialReference);if(null===i[0])return null;throw new Error("Illegal Argument")}{const n=l(i[0].toArray());for(let e=0;e<n.length;e++)if(null!==n[e]){if(!(n[e]instanceof R))throw new Error("Illegal Argument");o.push(n[e])}}}else for(let n=0;n<i.length;n++)if(null!==i[n]){if(!(i[n]instanceof R))throw new Error("Illegal Argument");o.push(i[n])}return 0===o.length?null:P.union(o)}))},n.difference=function(n,r){return I(n,r,(function(n,r,t){return y(t=l(t)),null!==t[0]&&null===t[1]?e(t[0]):null===t[0]?null:P.difference(t[0],t[1])}))},n.symmetricdifference=function(n,r){return I(n,r,(function(n,r,t){return y(t=l(t)),null===t[0]&&null===t[1]?null:null===t[0]?e(t[1]):null===t[1]?e(t[0]):P.symmetricDifference(t[0],t[1])}))},n.clip=function(n,e){return I(n,e,(function(n,e,r){if(r=l(r),i(r,2,2),!(r[1]instanceof d)&&null!==r[1])throw new Error("Illegal Argument");if(null===r[0])return null;if(!(r[0]instanceof R))throw new Error("Illegal Argument");return null===r[1]?null:P.clip(r[0],r[1])}))},n.cut=function(n,r){return I(n,r,(function(n,r,t){if(t=l(t),i(t,2,2),!(t[1]instanceof L)&&null!==t[1])throw new Error("Illegal Argument");if(null===t[0])return[];if(!(t[0]instanceof R))throw new Error("Illegal Argument");return null===t[1]?[e(t[0])]:P.cut(t[0],t[1])}))},n.area=function(n,e){return I(n,e,(function(e,t,o){if(i(o,1,2),null===(o=l(o))[0])return 0;if(f(o[0])||a(o[0])){const e=c(o[0],n.spatialReference);return null===e?0:P.planarArea(e,r(g(o[1],-1)))}if(!(o[0]instanceof R))throw new Error("Illegal Argument");return P.planarArea(o[0],r(g(o[1],-1)))}))},n.areageodetic=function(n,e){return I(n,e,(function(e,t,o){if(i(o,1,2),null===(o=l(o))[0])return 0;if(f(o[0])||a(o[0])){const e=c(o[0],n.spatialReference);return null===e?0:P.geodesicArea(e,r(g(o[1],-1)))}if(!(o[0]instanceof R))throw new Error("Illegal Argument");return P.geodesicArea(o[0],r(g(o[1],-1)))}))},n.length=function(n,e){return I(n,e,(function(e,r,o){if(i(o,1,2),null===(o=l(o))[0])return 0;if(f(o[0])||a(o[0])){const e=m(o[0],n.spatialReference);return null===e?0:P.planarLength(e,t(g(o[1],-1)))}if(!(o[0]instanceof R))throw new Error("Illegal Argument");return P.planarLength(o[0],t(g(o[1],-1)))}))},n.length3d=function(n,e){return I(n,e,(function(e,r,o){if(i(o,1,2),null===(o=l(o))[0])return 0;if(f(o[0])||a(o[0])){const e=m(o[0],n.spatialReference);return null===e?0:!0===e.hasZ?v(e,t(g(o[1],-1))):P.planarLength(e,t(g(o[1],-1)))}if(!(o[0]instanceof R))throw new Error("Illegal Argument");return!0===o[0].hasZ?v(o[0],t(g(o[1],-1))):P.planarLength(o[0],t(g(o[1],-1)))}))},n.lengthgeodetic=function(n,e){return I(n,e,(function(e,r,o){if(i(o,1,2),null===(o=l(o))[0])return 0;if(f(o[0])||a(o[0])){const e=m(o[0],n.spatialReference);return null===e?0:P.geodesicLength(e,t(g(o[1],-1)))}if(!(o[0]instanceof R))throw new Error("Illegal Argument");return P.geodesicLength(o[0],t(g(o[1],-1)))}))},n.distance=function(n,e){return I(n,e,(function(e,r,o){o=l(o),i(o,2,3);let u=o[0];(f(o[0])||a(o[0]))&&(u=h(o[0],n.spatialReference));let s=o[1];if((f(o[1])||a(o[1]))&&(s=h(o[1],n.spatialReference)),!(u instanceof R))throw new Error("Illegal Argument");if(!(s instanceof R))throw new Error("Illegal Argument");return P.distance(u,s,t(g(o[2],-1)))}))},n.distancegeodetic=function(n,e){return I(n,e,(function(n,e,r){r=l(r),i(r,2,3);const o=r[0],u=r[1];if(!(o instanceof N))throw new Error("Illegal Argument");if(!(u instanceof N))throw new Error("Illegal Argument");const f=new L({paths:[],spatialReference:o.spatialReference});return f.addPath([o,u]),P.geodesicLength(f,t(g(r[2],-1)))}))},n.densify=function(n,e){return I(n,e,(function(n,e,r){if(r=l(r),i(r,2,3),null===r[0])return null;if(!(r[0]instanceof R))throw new Error("Illegal Argument");const o=w(r[1]);if(isNaN(o))throw new Error("Illegal Argument");if(o<=0)throw new Error("Illegal Argument");return r[0]instanceof j||r[0]instanceof L?P.densify(r[0],o,t(g(r[2],-1))):r[0]instanceof d?P.densify(Z(r[0]),o,t(g(r[2],-1))):r[0]}))},n.densifygeodetic=function(n,e){return I(n,e,(function(n,e,r){if(r=l(r),i(r,2,3),null===r[0])return null;if(!(r[0]instanceof R))throw new Error("Illegal Argument");const o=w(r[1]);if(isNaN(o))throw new Error("Illegal Argument");if(o<=0)throw new Error("Illegal Argument");return r[0]instanceof j||r[0]instanceof L?P.geodesicDensify(r[0],o,t(g(r[2],-1))):r[0]instanceof d?P.geodesicDensify(Z(r[0]),o,t(g(r[2],-1))):r[0]}))},n.generalize=function(n,e){return I(n,e,(function(n,e,r){if(r=l(r),i(r,2,4),null===r[0])return null;if(!(r[0]instanceof R))throw new Error("Illegal Argument");const o=w(r[1]);if(isNaN(o))throw new Error("Illegal Argument");return P.generalize(r[0],o,p(g(r[2],!0)),t(g(r[3],-1)))}))},n.buffer=function(n,r){return I(n,r,(function(n,r,o){if(o=l(o),i(o,2,3),null===o[0])return null;if(!(o[0]instanceof R))throw new Error("Illegal Argument");const u=w(o[1]);if(isNaN(u))throw new Error("Illegal Argument");return 0===u?e(o[0]):P.buffer(o[0],u,t(g(o[2],-1)))}))},n.buffergeodetic=function(n,r){return I(n,r,(function(n,r,o){if(o=l(o),i(o,2,3),null===o[0])return null;if(!(o[0]instanceof R))throw new Error("Illegal Argument");const u=w(o[1]);if(isNaN(u))throw new Error("Illegal Argument");return 0===u?e(o[0]):P.geodesicBuffer(o[0],u,t(g(o[2],-1)))}))},n.offset=function(n,e){return I(n,e,(function(n,e,r){if(r=l(r),i(r,2,6),null===r[0])return null;if(!(r[0]instanceof j||r[0]instanceof L))throw new Error("Illegal Argument");const o=w(r[1]);if(isNaN(o))throw new Error("Illegal Argument");const f=w(g(r[4],10));if(isNaN(f))throw new Error("Illegal Argument");const a=w(g(r[5],0));if(isNaN(a))throw new Error("Illegal Argument");return P.offset(r[0],o,t(g(r[2],-1)),u(g(r[3],"round")).toLowerCase(),f,a)}))},n.rotate=function(n,e){return I(n,e,(function(n,e,r){r=l(r),i(r,2,3);let t=r[0];if(null===t)return null;if(!(t instanceof R))throw new Error("Illegal Argument");t instanceof d&&(t=j.fromExtent(t));const o=w(r[1]);if(isNaN(o))throw new Error("Illegal Argument");const u=g(r[2],null);if(null===u)return P.rotate(t,o);if(u instanceof N)return P.rotate(t,o,u);throw new Error("Illegal Argument")}))},n.centroid=function(n,r){return I(n,r,(function(r,t,o){if(o=l(o),i(o,1,1),null===o[0])return null;let u=o[0];if((f(o[0])||a(o[0]))&&(u=h(o[0],n.spatialReference)),null===u)return null;if(!(u instanceof R))throw new Error("Illegal Argument");return u instanceof N?s(e(o[0]),n.spatialReference):u instanceof j?u.centroid:u instanceof L?A(u):u instanceof x?E(u):u instanceof d?u.center:null}))},n.multiparttosinglepart=function(n,r){return I(n,r,(function(r,t,o){o=l(o),i(o,1,1);const u=[];if(null===o[0])return null;if(!(o[0]instanceof R))throw new Error("Illegal Argument");if(o[0]instanceof N)return[s(e(o[0]),n.spatialReference)];if(o[0]instanceof d)return[s(e(o[0]),n.spatialReference)];const f=P.simplify(o[0]);if(f instanceof j){const n=[],e=[];for(let r=0;r<f.rings.length;r++)if(f.isClockwise(f.rings[r])){const e=k({rings:[f.rings[r]],hasZ:!0===f.hasZ,hasM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(e)}else e.push({ring:f.rings[r],pt:f.getPoint(r,0)});for(let r=0;r<e.length;r++)for(let t=0;t<n.length;t++)if(n[t].contains(e[r].pt)){n[t].addRing(e[r].ring);break}return n}if(f instanceof L){const n=[];for(let e=0;e<f.paths.length;e++){const r=k({paths:[f.paths[e]],hasZ:!0===f.hasZ,hasM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(r)}return n}if(o[0]instanceof x){const r=s(e(o[0]),n.spatialReference);for(let n=0;n<r.points.length;n++)u.push(r.getPoint(n));return u}return null}))},n.issimple=function(n,e){return I(n,e,(function(n,e,r){if(r=l(r),i(r,1,1),null===r[0])return!0;if(!(r[0]instanceof R))throw new Error("Illegal Argument");return P.isSimple(r[0])}))},n.simplify=function(n,e){return I(n,e,(function(n,e,r){if(r=l(r),i(r,1,1),null===r[0])return null;if(!(r[0]instanceof R))throw new Error("Illegal Argument");return P.simplify(r[0])}))}}export{z as registerFunctions,b as setGeometryEngine};
|