UNPKG

@seasketch/geoprocessing

Version:

Geoprocessing and reporting framework for SeaSketch 2.0

30 lines (27 loc) 800 B
import { Sketch, SketchCollection, MultiPolygon, Polygon, } from "../types/index.js"; import { isMultiPolygonSketch, isPolygonSketch } from "./sketch.js"; export function removeSketchPolygonHoles( sketch: Sketch<Polygon | MultiPolygon>, ) { const newSk: Sketch<Polygon | MultiPolygon> = { ...sketch }; if (isMultiPolygonSketch(sketch)) { newSk.geometry.coordinates = newSk.geometry.coordinates.map( (polyCoords) => { return [polyCoords[0]]; }, ); } else if (isPolygonSketch(sketch)) { newSk.geometry.coordinates = [sketch.geometry.coordinates[0]]; } return newSk; } export function removeSketchCollPolygonHoles( sketchColl: SketchCollection<Polygon | MultiPolygon>, ) { return sketchColl.features.map((sk) => removeSketchPolygonHoles(sk)); }