Polygonize
Polygonizes a set of Geometrys which contain linework that represents the edges of a planar graph. It's basically an implementation of GEOS's Polygonizer.
Although, the algorithm is the same as GEOS, it isn't a literal transcription of the C++ source code. It was rewriten in order to get a more javascript like code.
JSDoc
/** * Polygonizes into . * * Implementation of GEOSPolygonize function (`geos::operation::polygonize::Polygonizer`). * * Polygonizes a set of lines that represents edges in a planar graph. Edges must be correctly * noded, i.e., they must only meet at their endpoints. * * The implementation correctly handles: * * - Dangles: edges which have one or both ends which are not incident on another edge endpoint. * - Cut Edges (bridges): edges that are connected at both ends but which do not form part of a polygon. * * @name polygonize * @param {FeatureCollection|Geometry|Feature<LineString|MultiLineString>} geoJson Lines in order to polygonize * @returns * @throws */
Example
This example is the test found in test/in/complex.geojson
.
const polygonize = fs = input = JSON; console;
The input as GeoJson LineString:
Turned into polygons:
Documentation
Polygonizes (Multi)LineString(s) into Polygons.
Implementation of GEOSPolygonize function (geos::operation::polygonize::Polygonizer
).
Polygonizes a set of lines that represents edges in a planar graph. Edges must be correctly noded, i.e., they must only meet at their endpoints.
The implementation correctly handles:
- Dangles: edges which have one or both ends which are not incident on another edge endpoint.
- Cut Edges (bridges): edges that are connected at both ends but which do not form part of a polygon.
Parameters
-
geojson
(FeatureCollection | Geometry | Feature<(LineString | MultiLineString)>) Lines in order to polygonize -
Throws Error if geoJson is invalid.
Returns FeatureCollection<Polygon> Polygons created
Installation
Install this module individually:
$ npm install polygonize