@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.62 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{throwIfNotAbortError as e}from"../../core/promiseUtils.js";import r from"../../geometry/Extent.js";import{geographicToWebMercator as t}from"../../geometry/support/webMercatorUtils.js";import o from"../OrientedImageryLayer.js";import a from"./core/ExposurePoint.js";import n from"../../rest/support/Query.js";const s={},i=1e3;async function c(r,a){const{point:c,queryParams:l}=r;if(null==c)return null;const y={};let p=r.layerInstanceOrURL;const f=c.spatialReference.isGeographic?t(c.clone()):c.clone();if(y.outSpatialReference=f.spatialReference,l&&(y.maxRecordCountFactor=l.maxRecordCountFactor??5,y.outFields=l.outFields??["*"],y.where=l.where??"1=1",y.returnGeometry=l.returnGeometry??!0,y.outSpatialReference=l.outSpatialReference),"string"==typeof p&&(s.layer&&s.layer.url===p?p=s.layer:(s.layer?.destroy(),p=s.layer=new o({url:p}))),p)try{await p.load();const e=p,r=u(f,l?.maximumDistance??e.maximumDistance??i);y.returnZ=e.hasZ;const t=new n({geometry:r,...y}),o=await e.queryFeatures(t,a);return m(e)(o)}catch(x){e(x)}return null}function m(e){return r=>{const{features:t,spatialReference:o}=r;return t.forEach((r=>{r.geometry&&(r.geometry.spatialReference=o);const t=a.fromJSON({...r.toJSON(),layer:e});t&&(r.attributes=t),r.layer=e,r.spatialReference=o})),r}}function u(e,t){const o=e.x-t,a=e.x+t,n=e.y-t,s=e.y+t;return new r({xmin:o,xmax:a,ymin:n,ymax:s,spatialReference:e.spatialReference})}export{u as createExtentFromPointAtDistance,c as searchImages};