UNPKG

geotoolbox

Version:

geotoolbox is GIS javascript library. It is based on d3geo, topojson and geos-wasm.

31 lines (28 loc) 1.27 kB
import { geosloader } from "./helpers/geos.js"; import { geojsonToGeosGeom, geosGeomToGeojson } from "geos-wasm/helpers"; import { check } from "./helpers/check.js"; /** * @function convexhull * @summary Returns a "convex hull" of a geometry. The smallest convex Geometry that contains all the points in the input Geometry * @description Based on `geos.GEOSConvexHull()`. * @async * @param {object|array} data - A GeoJSON FeatureCollection, an array of features, an array of geometries, a single feature or a single geometry. * @returns {object|array} - A GeoJSON FeatureCollection, an array of features, an array of geometries, a single feature or a single geometry (it depends on what you've set as `data`) * @example * await geotoolbox.convexehull(*a geojson*) */ export async function convexhull(data) { const geos = await geosloader(); const handle = check(data); let x = handle.import(data); const geosgeom = geojsonToGeosGeom(x, geos); const output = geos.GEOSConvexHull(geosgeom); let result = geosGeomToGeojson(output, geos); geos.GEOSFree(geosgeom); geos.GEOSFree(output); return handle.export({ type: "FeatureCollection", name: "convexhull", features: [{ type: "Feature", properties: {}, geometry: result }], }); }