What is @turf/clone?
@turf/clone is a module within the Turf.js library that allows you to create deep copies of GeoJSON objects. This is particularly useful when you need to manipulate or transform GeoJSON data without altering the original dataset.
What are @turf/clone's main functionalities?
Clone a Point
This feature allows you to clone a GeoJSON Point object. The code sample demonstrates how to create a point and then clone it using the @turf/clone module.
const turf = require('@turf/turf');
const point = turf.point([0, 0]);
const clonedPoint = turf.clone(point);
console.log(clonedPoint);
Clone a Polygon
This feature allows you to clone a GeoJSON Polygon object. The code sample demonstrates how to create a polygon and then clone it using the @turf/clone module.
const turf = require('@turf/turf');
const polygon = turf.polygon([[[0, 0], [10, 0], [10, 10], [0, 10], [0, 0]]]);
const clonedPolygon = turf.clone(polygon);
console.log(clonedPolygon);
Clone a Feature Collection
This feature allows you to clone a GeoJSON Feature Collection. The code sample demonstrates how to create a feature collection and then clone it using the @turf/clone module.
const turf = require('@turf/turf');
const featureCollection = turf.featureCollection([turf.point([0, 0]), turf.point([1, 1])]);
const clonedFeatureCollection = turf.clone(featureCollection);
console.log(clonedFeatureCollection);
Other packages similar to @turf/clone
lodash
Lodash is a popular utility library that includes a deep clone function (lodash.cloneDeep) which can be used to clone GeoJSON objects. While it is not specifically designed for GeoJSON, it is a versatile tool that can handle various data types.
rfdc
The rfdc (Really Fast Deep Clone) package is a highly efficient deep cloning library that can be used to clone GeoJSON objects. It is known for its performance and minimal footprint, making it a good alternative for cloning operations.
@turf/clone
clone
Returns a cloned copy of the passed GeoJSON Object, including possible 'Foreign Members'.
~3-5x faster than the common JSON.parse + JSON.stringify combo method.
Parameters
Examples
var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]], {color: 'red'});
var lineCloned = turf.clone(line);
Returns GeoJSON cloned GeoJSON Object
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/clone
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf