UNPKG

@vertigis/workflow-activities-inline

Version:

VertiGIS Studio Workflow activities for VertiGIS Inline

1 lines 9.99 kB
define(["@arcgis/core/geometry/geometryEngine","@arcgis/core/geometry/Point","@arcgis/core/geometry/Polyline","@arcgis/core/Graphic","@arcgis/core/rest/support/FeatureSet","@arcgis/core/request","@arcgis/core/rest/query","@arcgis/core/rest/support/Query","@arcgis/core/geometry/operators/proximityOperator"],(function(e,t,n,r,i,o,a,s,u){return function(){"use strict";var c={538:function(e){e.exports=r},55:function(e){e.exports=t},155:function(e){e.exports=n},961:function(t){t.exports=e},790:function(e){e.exports=u},967:function(e){e.exports=o},983:function(e){e.exports=a},587:function(e){e.exports=i},999:function(e){e.exports=s}},l={};function f(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return c[e](n,n.exports,f),n.exports}f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var d={};f.r(d),f.d(d,{main:function(){return j}});var g={};f.r(g),f.d(g,{GetCurrentRouteGeometryActivity:function(){return _},GetMValuesFromCoordinatesActivity:function(){return T},SetFeatureSetForDataSourceActivity:function(){return D}});var m=f(961),p=f(55),y=f.n(p),h=f(155),x=f.n(h),S=f(538),v=f.n(S),P=f(587),b=f.n(P),F=f(967),w=f.n(F),R=f(983),M=f(999),E=f.n(M);const I=e=>{const t=[];return e.routeIdField&&t.push(e.routeIdField),e.routeNameField&&t.push(e.routeNameField),e.previousRouteField&&t.push(e.previousRouteField),e.nextRouteField&&t.push(e.nextRouteField),e.routeSelectorAdditionalField&&t.push(e.routeSelectorAdditionalField),t},N=e=>{const t="returnM=true&returnZ=true";return e+(-1===e.indexOf("?")?`?${t}`:`&${t}`)};var O=f(790);function A(e,t,n,r,i,o,a,s){const u=r?n.geometry.x:n.attributes[i],c=r?n.geometry.y:n.attributes[o],l=e.spatialReference,f=new(y())({x:u,y:c,spatialReference:a}),d=function(e,t){if(0===e.length)throw new Error("Invalid argument. Feature count = 0");if(1===e.length)return e[0];let n=null,r=null;for(let i=0,o=e.length;i<o;i++){const o=e[i];if(o.geometry){const e=m.nearestCoordinate(o.geometry,t);e.isEmpty||(null==n||n.distance>e.distance)&&(n=e,r=o)}}if(null==r)throw new Error("Nearest feature was not found.");return r}(t.features,f),g=function(e,t,n){const r=O.getNearestCoordinate(t.geometry,e),i=O.getNearestVertex(t.geometry,r.coordinate),o=r.coordinate.x===i.coordinate.x&&r.coordinate.y===i.coordinate.y,a=function(e,t){const n=v().fromJSON(e).geometry,r=J(t,n),i=B(t+1,n),o=n.paths[i.pathIndex][i.vertexIndex],a=4===o.length;return{startPoint:r,endPoint:y().fromJSON({spatialReference:n.spatialReference,hasZ:a,x:o[0],y:o[1],m:a?o[3]:o[2],z:a?o[2]:void 0})}}(t.toJSON(),r.vertexIndex);if(o)return J(i.vertexIndex,t.geometry).m;{const t=n,i=new(x());i.spatialReference=t,i.addPath([r.coordinate,e]);const o=(r.coordinate.x-a.startPoint.x)/(a.endPoint.x-a.startPoint.x);return(a.endPoint.m-a.startPoint.m)*o+a.startPoint.m}}(f,d,l);return null==g?null:(n.attributes[s]=g,n)}async function G(e,t,n){try{const r=await async function(e,t,n){const r=await(async e=>{let t=e.centerlineUrl;if(!t){const n=await async function(e){if(e.mapService&&e.centerlineLayer)try{const t=await w()(e.mapService+"/layers");if(t.data)return t.data}catch(t){console.log(`Could not get layer info for ${e.mapService}`)}return null}(e);t=function(e,t){if((null==t?void 0:t.layers)&&e.mapService&&e.centerlineLayer)for(const n of t.layers)if(n.name===e.centerlineLayer)return e.mapService+"/"+n.id;return""}(e,n)}return N(t)})(e),i=(e=>{let t="";return"esriFieldTypeString"!==e&&"esriFieldTypeGUID"!==e&&"esriFieldTypeGlobalID"!==e||(t="'"),t})(e.routeIdFieldType),o=new(E());o.outSpatialReference=n,o.returnGeometry=!0,o.where=e.routeIdField+" = "+i+t+i,o.outFields=(e=>{const t=I(e);return e.segmentsBeginStationField&&t.push(e.segmentsBeginStationField),e.segmentsEndStationField&&t.push(e.segmentsEndStationField),t})(e),e.gdbVersion&&(o.gdbVersion=e.gdbVersion);const a=await(0,R.executeQueryJSON)(r,o);if(a.exceededTransferLimit)throw new Error("Query transfer limit exceeded.");return a}(e,t,n);if(0===r.features.length){const e=`No segments found for route id "${t}".`;throw new Error(e)}return r}catch(e){const t=`Query for segments failed: ${e.message}`;throw new Error(t)}}function J(e,t){const n=t;if(n.paths.length<1)throw new Error("Multipart polylines requires at least 1 part.");const r=B(e,t),i=n.paths[r.pathIndex][r.vertexIndex],o=4===i.length;return y().fromJSON({spatialReference:n.spatialReference,x:i[0],y:i[1],m:o?i[3]:i[2],z:o?i[2]:void 0})}function B(e,t){let n=0;for(let r=0,i=t.paths.length;r<i;r++)if(n+=t.paths[r].length,n>e)return{pathIndex:r,vertexIndex:e-n+t.paths[r].length};return{pathIndex:0,vertexIndex:e}}function C(e){let t=0;return e.paths.forEach((e=>{t+=e.length})),t}function z(e,t,n){let r;if(n.calculateStationUsingAttributes){const i=Math.min(t.attributes[n.segmentsBeginStationField],t.attributes[n.segmentsEndStationField]),o=Math.max(t.attributes[n.segmentsBeginStationField],t.attributes[n.segmentsEndStationField]),a=(e-i)/(1*Math.abs(o-i));r=function(e){const t=J(0,e),n=J(e.paths[e.paths.length-1].length-1,e);if(!t.hasM||!n.hasM)throw new Error("getLengthOfLine: Polyline does not contain M values");return Math.abs(n.m-t.m)}(t.geometry)*a+Math.min(J(0,t.geometry).m,J(C(t.geometry)-1,t.geometry).m)}else r=e;const i=function(e,t){const n=C(t);let r,i=J(0,t),o=!1;if(i.m>e){if(i=J(n-1,t),i.m>e)throw new Error("Measure value not found in the supplied polyline.");o=!0}if(o){for(let o=n-2;o>=0;o--){if(r=J(o,t),r.m>=e)return{startPoint:i,endPoint:r};i=r}i=J(n-1,t),r=J(n-2,t)}else for(let o=1;o<n;o++){if(r=J(o,t),r.m>=e)return{startPoint:i,endPoint:r};i=r}return{startPoint:i,endPoint:r}}(r,t.geometry);var o,a,s;o=r,a=Math.min(i.startPoint.m,i.endPoint.m),s=Math.max(i.startPoint.m,i.endPoint.m),r=o<a?a:o>s?s:o;const u=function(e,t){if(e<t.startPoint.m||e>t.endPoint.m)throw new Error("Measure value not contained in the supplied lineSegment.");if(t.startPoint.m===e)return new(y())({x:t.startPoint.x,y:t.startPoint.y,z:t.startPoint.z,spatialReference:t.startPoint.spatialReference});if(t.endPoint.m===e)return new(y())({x:t.endPoint.x,y:t.endPoint.y,z:t.startPoint.z,spatialReference:t.endPoint.spatialReference});{const n=t.endPoint.m-t.startPoint.m,r=(e-t.startPoint.m)/n,i=(t.endPoint.x-t.startPoint.x)*r+t.startPoint.x,o=(t.endPoint.y-t.startPoint.y)*r+t.startPoint.y;return new(y())({x:i,y:o,z:t.startPoint.z,spatialReference:t.startPoint.spatialReference})}}(r,i);return{measure:r,pointJSON:u.toJSON()}}class L{async execute(e,t){var n,r,i,o,a;let s=e.featureSet;const u=null!==(r=null!==(n=e.spatialReference)&&void 0!==n?n:s.features[0].geometry.spatialReference)&&void 0!==r?r:t.ambient.trivia.map,c=null!==(i=e.mValueFieldName)&&void 0!==i?i:"_M_VALUE_FIELD_";return s=await async function(e,t,n,r,i,o,a){const s=e.linearReferencingConfig,u=e.currentRoute.routeId,c=e.spatialReference,l=new(b()),f=await G(s,u,c);for(const s of t.features){const t=A(e,f,s,n,r,i,o,a);t&&l.features.push(t)}return l}(e.inlineManager,s,!!e.useGeometry,null!==(o=e.xFieldName)&&void 0!==o?o:"",null!==(a=e.yFieldName)&&void 0!==a?a:"",u,c),{featureSet:s}}}L.suite="uuid:53ca7f89-f516-48f8-afd0-9c29f2d2b999",L.action="uuid:53ca7f89-f516-48f8-afd0-9c29f2d2b999::GetMValuesFromCoordinatesActivity";var T=L;class V{async execute(e){const t=e.inlineManager.linearReferencingConfig,n=e.inlineManager.spatialReference,r=e.inlineManager.currentRoute.routeId,i=await G(t,r,n);return e.trimToRange&&function(e,t,n,r){if(!e||0===e.features.length||!e.hasM)return;t>n&&([t,n]=[n,t]);let i=2;e.hasZ&&(i=3);for(let o=e.features.length-1;o>=0;o--){const a=e.features[o],s=a.geometry;let u,c,l=!1;if(r.calculateStationUsingAttributes?(u=a.attributes[r.segmentsBeginStationField],c=a.attributes[r.segmentsEndStationField]):(u=J(0,s).m,c=J(C(s)-1,s).m),u>c&&([u,c]=[c,u],l=!0),u<t&&c<t||u>n&&c>n){e.features.splice(o,1);continue}const f=e=>{const n=z(e,a,r),o=n.measure;for(let e=0,u=s.paths.length;e<u;e++){const u=s.paths[e];let c=0;for(let e=0,t=u.length-1;e<t;e++){const t=u[e],r=u[e+1];if(!(!l&&t[i]<o||l&&t[i]>o))break;if(!(!l&&r[i]<o||l&&r[i]>o)){r[i]===o?c++:(t[0]=n.pointJSON.x,t[1]=n.pointJSON.y,t[i]=o);break}c++}c===u.length-1&&c++,c&&u.splice(0,c),r.calculateStationUsingAttributes&&(a.attributes[r.segmentsBeginStationField]<=a.attributes[r.segmentsEndStationField]?a.attributes[r.segmentsBeginStationField]=t:a.attributes[r.segmentsEndStationField]=t)}},d=e=>{const t=z(e,a,r),o=t.measure;for(let e=0,u=s.paths.length;e<u;e++){const u=s.paths[e];let c=0;for(let e=u.length-1;e>0;e--){const n=u[e],r=u[e-1];if(!(!l&&n[i]>o||l&&n[i]<o))break;if(!(!l&&r[i]>o||l&&r[i]<o)){r[i]===o?c++:(n[0]=t.pointJSON.x,n[1]=t.pointJSON.y,n[i]=o);break}c++}c===u.length-1&&c++,c&&u.splice(u.length-c,c),r.calculateStationUsingAttributes&&(a.attributes[r.segmentsBeginStationField]<=a.attributes[r.segmentsEndStationField]?a.attributes[r.segmentsEndStationField]=n:a.attributes[r.segmentsBeginStationField]=n)}};u<t&&(l?d(t):f(t)),c>n&&(l?f(n):d(n));for(let e=s.paths.length-1;e>=0;e--)0===s.paths[e].length&&s.paths.splice(e,1)}}(i,e.inlineManager.currentRange.beginStation.measure,e.inlineManager.currentRange.endStation.measure,t),{geometry:i.features[0].geometry}}}V.suite="uuid:53ca7f89-f516-48f8-afd0-9c29f2d2b999",V.action="uuid:53ca7f89-f516-48f8-afd0-9c29f2d2b999::GetCurrentRouteGeometryActivity";var _=V;class U{execute(e,t){return t.ambient.outputs.featureSet=e.featureSet,{}}}U.suite="uuid:53ca7f89-f516-48f8-afd0-9c29f2d2b999",U.action="uuid:53ca7f89-f516-48f8-afd0-9c29f2d2b999::SetFeatureSetForDataSourceActivity";var D=U;let $;async function j(){return $||($=Promise.resolve(g),$)}return d}()}));