UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.64 kB
import"../../../geometry.js";import e from"../../../core/Error.js";import r from"../../../core/Logger.js";import{isNone as t}from"../../../core/maybe.js";import{getExtentForScale as n}from"../../../geometry/support/scaleUtils.js";import i from"../../../geometry/Extent.js";const o=r.getLogger("esri.widgets.Search.support.geometryUtils");function s(r,t){if(!t)return o.error("missing-parameter: view is missing."),Promise.reject(new e("searchgeometryutils:missing-parameter","view is missing."));if(!r)return o.error("missing-parameter: point is missing."),Promise.reject(new e("searchgeometryutils:missing-parameter","point is missing."));if(r.hasZ||"2d"===t.type)return Promise.resolve(r);const n=t?.map?.ground;return n&&n.layers.length?n.queryElevation(r,{cache:t.basemapTerrain?.elevationQueryCache}).then((e=>e.geometry)):Promise.resolve(r)}function m(e){if(t(e))return null;switch(e.type){case"point":return e;case"extent":return e.center;case"polygon":return e.centroid;case"multipoint":return e.getPoint(0);case"polyline":return e.getPoint(0,0)}return null}function a(e,r,n){return t(e)?null:"extent"===e.type?e:"multipoint"===e.type||"polygon"===e.type||"polyline"===e.type?e.extent:"point"===e.type?c(e,r,n):void 0}function p(e,r,n){return t(e)||t(r)?null:c(e.center,r,n)}function c(e,r,t){const o=e.hasZ?e.z:void 0;if(r&&r.map){return(t?n(r,t):r.extent).clone().centerAt(e).set({zmax:o,zmin:o})}return new i({xmin:e.x-.25,ymin:e.y-.25,xmax:e.x+.25,ymax:e.y+.25,spatialReference:e.spatialReference,zmin:o,zmax:o})}export{a as createExtentFromGeometry,m as getPointFromGeometry,s as getPointWithElevation,p as scaleExtent};