12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import r from"../request.js";import{normalizeCentralMeridian as e}from"../geometry/support/normalizeUtils.js";import{collectGeometries as t,isInputGeometryZAware as i,fetchServiceDescription as s,dropZValuesOffInputGeometry as o}from"./networkService.js";import{parseUrl as a}from"./utils.js";import{closestFacilityParametersToQueryParameters as n}from"./route/utils.js";import f from"./support/ClosestFacilitySolveResult.js";import l from"./support/FeatureSet.js";function u(r){return r instanceof l}async function p(l,p,c){const m=[],y=[],B={},j={},g=a(l),{path:h}=g;u(p.incidents)&&t(p.incidents.features,y,"incidents.features",B),u(p.facilities)&&t(p.facilities.features,y,"facilities.features",B),u(p.pointBarriers)&&t(p.pointBarriers.features,y,"pointBarriers.features",B),u(p.polylineBarriers)&&t(p.polylineBarriers.features,y,"polylineBarriers.features",B),u(p.polygonBarriers)&&t(p.polygonBarriers.features,y,"polygonBarriers.features",B);const d=await e(y);for(const r in B){const e=B[r];m.push(r),j[r]=d.slice(e[0],e[1])}if(i(j,m)){let r=null;try{r=await s(h,p.apiKey,c)}catch{}r&&!r.hasZ&&o(j,m)}for(const r in j)j[r].forEach(((e,t)=>{p.get(r)[t].geometry=e}));const w={...c,query:{...g.query,...n(p),f:"json"}},{data:S}=await r(`${h}/solveClosestFacility`,w);return f.fromJSON(S)}export{p as solve};
|