@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.28 kB
JavaScript
import{isSome as t}from"../../../../core/maybe.js";import{create as e}from"../../../../geometry/support/aaBoundingBox.js";import{getCentroidOptimizedGeometry as r}from"../../../../layers/graphics/centroid.js";import o from"../../../../layers/graphics/OptimizedGeometry.js";import{getCachedAttributeValue as i}from"./I3SUtil.js";class n{constructor(t){this._objectIdField=t.objectIdField,this._getFeatureExtent=t.getFeatureExtent}getObjectId(t){return t.id}getAttributes(e){const{meta:r,index:o}=e,n={};this._objectIdField&&(n[this._objectIdField]=e.id);const s=t(r.attributeInfo)&&r.attributeInfo.attributeData;if(t(s))for(const t of Object.keys(s))n[t]=i(s[t],o);return n}getAttribute(e,r){if(r===this._objectIdField)return e.id;const{meta:o,index:n}=e,s=t(o.attributeInfo)&&o.attributeInfo.attributeData;return t(s)?i(s[r],n):null}getGeometry(t){if(t.geometry)return t.geometry;const[e,r,i,n,a]=this._getFeatureExtent(t,s);return new o([5],[e,r,i,n,r,i,n,a,i,e,a,i,e,r,i])}getCentroid(t,e){if(t.geometry)return r(new o,t.geometry,e.hasZ,e.hasM);const[i,n,a,m,u,d]=this._getFeatureExtent(t,s);return new o([0],[(i+m)/2,(n+u)/2,(a+d)/2])}cloneWithGeometry(t,e){const{id:r,index:o,meta:i}=t;return{id:r,index:o,meta:i,geometry:e}}}const s=e();export{n as I3SQueryFeatureAdapter};