What is @turf/explode?
@turf/explode is a module from the Turf.js library that is used to convert a GeoJSON object into a collection of points. This can be useful for various geospatial analyses where you need to work with individual points extracted from more complex geometries like polygons or lines.
What are @turf/explode's main functionalities?
Convert Polygon to Points
This feature allows you to convert a polygon into a collection of points. Each vertex of the polygon becomes an individual point in the resulting GeoJSON FeatureCollection.
const turf = require('@turf/turf');
const polygon = turf.polygon([[
[-81, 41],
[-81, 47],
[-72, 47],
[-72, 41],
[-81, 41]
]]);
const exploded = turf.explode(polygon);
console.log(exploded);
Convert LineString to Points
This feature allows you to convert a LineString into a collection of points. Each vertex of the LineString becomes an individual point in the resulting GeoJSON FeatureCollection.
const turf = require('@turf/turf');
const line = turf.lineString([
[-81, 41],
[-81, 47],
[-72, 47],
[-72, 41]
]);
const exploded = turf.explode(line);
console.log(exploded);
Convert MultiPolygon to Points
This feature allows you to convert a MultiPolygon into a collection of points. Each vertex of each polygon in the MultiPolygon becomes an individual point in the resulting GeoJSON FeatureCollection.
const turf = require('@turf/turf');
const multiPolygon = turf.multiPolygon([[
[[-81, 41], [-81, 47], [-72, 47], [-72, 41], [-81, 41]]
], [
[[-91, 31], [-91, 37], [-82, 37], [-82, 31], [-91, 31]]
]]);
const exploded = turf.explode(multiPolygon);
console.log(exploded);
Other packages similar to @turf/explode
geojson-flatten
The geojson-flatten package is used to flatten nested GeoJSON objects into simpler geometries. While it doesn't specifically convert geometries into points like @turf/explode, it can be used to simplify complex GeoJSON structures, making it easier to work with individual geometries.
geojson-utils
The geojson-utils package provides a variety of utility functions for working with GeoJSON data, including point-in-polygon tests and distance calculations. While it doesn't offer the specific explode functionality, it provides a broader set of tools for GeoJSON manipulation.
jsts
The jsts (JavaScript Topology Suite) package offers a wide range of spatial operations and geometric algorithms. It includes functionality for converting geometries to points, but it is more complex and feature-rich compared to @turf/explode.
@turf/explode
explode
Takes a feature or set of features and returns all positions as
points.
Parameters
Examples
var poly = {
"type": "Feature",
"properties": {},
"geometry": {
"type": "Polygon",
"coordinates": [[
[177.434692, -17.77517],
[177.402076, -17.779093],
[177.38079, -17.803937],
[177.40242, -17.826164],
[177.438468, -17.824857],
[177.454948, -17.796746],
[177.434692, -17.77517]
]]
}
};
var points = turf.explode(poly);
- Throws Error if it encounters an unknown geometry type
Returns FeatureCollection<point> points representing the exploded input features
This module is part of the Turfjs project, an open source
module collection dedicated to geographic algorithms. It is maintained in the
Turfjs/turf repository, where you can create
PRs and issues.
Installation
Install this module individually:
$ npm install @turf/explode
Or install the Turf module that includes it as a function:
$ npm install @turf/turf