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 polygon = turf.polygon([[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]);
var explode = turf.explode(polygon);
var addToMap = [polygon, explode]
- 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 single module individually:
$ npm install @turf/explode
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf