@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.43 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import r from"../request.js";import{get as e}from"../core/accessorSupport/get.js";import{normalizeCentralMeridian as t}from"../geometry/support/normalizeUtils.js";import{collectGeometries as s,isInputGeometryZAware as i,fetchServiceDescription as o,dropZValuesOffInputGeometry as a}from"./networkService.js";import{parseUrl as n}from"./utils.js";import{closestFacilityParametersToQueryParameters as f}from"./route/utils.js";import p from"./support/ClosestFacilitySolveResult.js";import u from"./support/FeatureSet.js";function l(r){return r instanceof u}async function c(u,c,m){const y=[],j=[],B={},g={},h=n(u),{path:S}=h;l(c.incidents)&&s(c.incidents.features,j,"incidents.features",B),l(c.facilities)&&s(c.facilities.features,j,"facilities.features",B),l(c.pointBarriers)&&s(c.pointBarriers.features,j,"pointBarriers.features",B),l(c.polylineBarriers)&&s(c.polylineBarriers.features,j,"polylineBarriers.features",B),l(c.polygonBarriers)&&s(c.polygonBarriers.features,j,"polygonBarriers.features",B);const d=await t(j);for(const r in B){const e=B[r];y.push(r),g[r]=d.slice(e[0],e[1])}if(i(g,y)){let r=null;try{r=await o(S,c.apiKey,m)}catch{}r&&!r.hasZ&&a(g,y)}for(const r in g)g[r].forEach((t,s)=>{e(c,r)[s].geometry=t});const w={...m,query:{...h.query,...f(c),f:"json"}},{data:q}=await r(`${S}/solveClosestFacility`,w);return p.fromJSON(q)}export{c as solve};