@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.53 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as e}from"../../chunks/tslib.es6.js";import{isSome as t}from"../../core/arrayUtils.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import{reader as o}from"../../core/accessorSupport/decorators/reader.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import a from"../../geometry/Extent.js";import n from"../../geometry/Polyline.js";import i from"../../geometry/SpatialReference.js";import p from"./DirectionsFeature.js";import l from"./FeatureSet.js";function u(e,t){if(0===e.length)return new n({spatialReference:t});const r=[];for(const n of e)for(const e of n.paths)r.push(...e);const o=[];r.forEach(((e,t)=>{0!==t&&e[0]===r[t-1][0]&&e[1]===r[t-1][1]||o.push(e)}));const{hasM:s,hasZ:a}=e[0];return new n({hasM:s,hasZ:a,paths:[o],spatialReference:t})}let m=class extends l{constructor(e){super(e),this.extent=null,this.features=[],this.geometryType="polyline",this.routeId=null,this.routeName=null,this.totalDriveTime=null,this.totalLength=null,this.totalTime=null}readFeatures(e,t){if(!e)return[];const r=t.summary.envelope.spatialReference??t.spatialReference,o=r&&i.fromJSON(r);return e.map((e=>{const t=p.fromJSON(e);if(null!=t.geometry&&(t.geometry.spatialReference=o),null!=t.events)for(const r of t.events)null!=r.geometry&&(r.geometry.spatialReference=o);return t}))}get mergedGeometry(){if(!this.features)return null;return u(this.features.map((({geometry:e})=>e)),this.extent.spatialReference)}get strings(){return this.features.flatMap((({strings:e})=>e)).filter(t)}};e([r({type:a,json:{read:{source:"summary.envelope"}}})],m.prototype,"extent",void 0),e([r({nonNullable:!0})],m.prototype,"features",void 0),e([o("features")],m.prototype,"readFeatures",null),e([r()],m.prototype,"geometryType",void 0),e([r({readOnly:!0})],m.prototype,"mergedGeometry",null),e([r()],m.prototype,"routeId",void 0),e([r()],m.prototype,"routeName",void 0),e([r({value:null,readOnly:!0})],m.prototype,"strings",null),e([r({json:{read:{source:"summary.totalDriveTime"}}})],m.prototype,"totalDriveTime",void 0),e([r({json:{read:{source:"summary.totalLength"}}})],m.prototype,"totalLength",void 0),e([r({json:{read:{source:"summary.totalTime"}}})],m.prototype,"totalTime",void 0),m=e([s("esri.rest.support.DirectionsFeatureSet")],m);const c=m;export{c as default};