UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.31 kB
import{isSome as n}from"../../core/maybe.js";const t=[0,0];function r(t,r){return!!n(r)&&f(t,r.x,r.y,r.z)}function i(n,t){if(!t.points||t.points.length)return!1;for(const r of t.points)if(!u(n,r))return!1;return!0}function o(n,t){const{xmin:r,ymin:i,zmin:o,xmax:u,ymax:e,zmax:c}=t;return n.hasZ&&t.hasZ?f(n,r,i,o)&&f(n,r,e,o)&&f(n,u,e,o)&&f(n,u,i,o)&&f(n,r,i,c)&&f(n,r,e,c)&&f(n,u,e,c)&&f(n,u,i,c):f(n,r,i)&&f(n,r,e)&&f(n,u,e)&&f(n,u,i)}function u(n,t){return f(n,t[0],t[1])}function e(n,t){return f(n,t[0],t[1],t[2])}function f(n,t,r,i){return t>=n.xmin&&t<=n.xmax&&r>=n.ymin&&r<=n.ymax&&(null==i||!n.hasZ||i>=n.zmin&&i<=n.zmax)}function c(n,r){return t[1]=r.y,t[0]=r.x,m(n,t)}function m(n,t){return s(n.rings,t)}function s(n,t){if(!n)return!1;if(x(n))return a(!1,n,t);let r=!1;for(let i=0,o=n.length;i<o;i++)r=a(r,n[i],t);return r}function x(n){return!Array.isArray(n[0][0])}function a(n,t,r){const[i,o]=r;let u=n,e=0;for(let f=0,c=t.length;f<c;f++){e++,e===c&&(e=0);const[n,r]=t[f],[m,s]=t[e];(r<o&&s>=o||s<o&&r>=o)&&n+(o-r)/(s-r)*(m-n)<i&&(u=!u)}return u}export{u as extentContainsCoords2D,e as extentContainsCoords3D,o as extentContainsExtent,i as extentContainsMultipoint,r as extentContainsPoint,f as extentContainsXYZ,m as polygonContainsCoords,c as polygonContainsPoint,s as ringsContainsCoords};