Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
@turf/centroid
Advanced tools
@turf/centroid is a module within the Turf.js library that calculates the centroid of a given GeoJSON feature. This is useful for finding the geometric center of various shapes such as polygons, lines, and multi-geometries.
Calculate Centroid of a Polygon
This feature calculates the centroid of a polygon. The code sample demonstrates how to create a polygon and then calculate its centroid using the @turf/centroid package.
const turf = require('@turf/centroid');
const polygon = turf.polygon([[
[-81, 41],
[-81, 47],
[-72, 47],
[-72, 41],
[-81, 41]
]]);
const centroid = turf.centroid(polygon);
console.log(centroid);
Calculate Centroid of a LineString
This feature calculates the centroid of a LineString. The code sample demonstrates how to create a LineString and then calculate its centroid using the @turf/centroid package.
const turf = require('@turf/centroid');
const line = turf.lineString([
[-83, 30],
[-84, 36],
[-78, 41]
]);
const centroid = turf.centroid(line);
console.log(centroid);
Calculate Centroid of a MultiPolygon
This feature calculates the centroid of a MultiPolygon. The code sample demonstrates how to create a MultiPolygon and then calculate its centroid using the @turf/centroid package.
const turf = require('@turf/centroid');
const multiPolygon = turf.multiPolygon([[
[[-81, 41], [-81, 47], [-72, 47], [-72, 41], [-81, 41]]
], [
[[-73, 39], [-73, 45], [-64, 45], [-64, 39], [-73, 39]]
]]);
const centroid = turf.centroid(multiPolygon);
console.log(centroid);
Geolib is a library for geospatial calculations. It provides functions to calculate distances, areas, and other geometric properties. While it offers centroid calculations, it is more general-purpose compared to @turf/centroid, which is specifically designed for GeoJSON features.
JSTS (JavaScript Topology Suite) is a library for performing various geometric operations. It includes functions for calculating centroids, but it is more complex and offers a broader range of geometric operations compared to @turf/centroid.
Takes one or more features and calculates the centroid using the mean of all vertices. This lessens the effect of small islands and artifacts when calculating the centroid of a set of polygons.
Parameters
geojson
GeoJSON GeoJSON to be centeredproperties
[Object] an Object that is used as the Feature's propertiesExamples
var polygon = {
"type": "Feature",
"properties": {},
"geometry": {
"type": "Polygon",
"coordinates": [[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]
}
};
var centroid = turf.centroid(polygon);
//addToMap
var addToMap = [polygon, centroid]
Returns Feature<Point> the centroid of the 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.
Install this module individually:
$ npm install @turf/centroid
Or install the Turf module that includes it as a function:
$ npm install @turf/turf
4.4.0
@turf/line-offset
Adds a new lineOffset module as per this issue. Basically takes an input line and returns a new line offset by the distance. (PR https://github.com/Turfjs/turf/pull/729 - Author @rowanwins)@turf/polygonize
Polygonizes (Multi)LineString(s) into Polygons. Implementation of GEOSPolygonize function (geos::operation::polygonize::Polygonizer). (PR https://github.com/Turfjs/turf/pull/767 - Author @NickCis)@turf/transform-rotate
Rotates any geojson Feature or Geometry of a specified angle, around its centroid or a given pivot point; all rotations follow the right-hand rule. (Issue https://github.com/Turfjs/turf/issues/747 - Author @stebogit)@turf/transform-translate
Moves any geojson Feature or Geometry of a specified distance along a Rhumb Line on the provided direction angle. (Issue https://github.com/Turfjs/turf/issues/747 - Author @stebogit)@turf/transform-scale
Scale a GeoJSON from a given point by a factor of scaling (ex: factor=2 would make the GeoJSON 200% larger). If a FeatureCollection is provided, the origin point will be calculated based on each individual Feature. (Issue https://github.com/Turfjs/turf/issues/747 - Author @stebogit)@turf/turf-tin
(PR https://github.com/Turfjs/turf/pull/772)@turf/centroid
and @turf/center
(PR https://github.com/Turfjs/turf/pull/769)Tap
at root which enables code coverage reports (Issue https://github.com/Turfjs/turf/issues/328 & PR https://github.com/Turfjs/turf/pull/762)@turf/pointplane
(PR https://github.com/Turfjs/turf/pull/754)@turf/rhumb-destination
issue at 180th meridian (Issue https://github.com/Turfjs/turf/issues/770 & PR https://github.com/Turfjs/turf/pull/771)@turf/point-on-line
(Issue https://github.com/Turfjs/turf/issues/691)@turf/point-on-line
. (PR https://github.com/Turfjs/turf/pull/750)@turf/buffer
(PR https://github.com/Turfjs/turf/pull/746)FAQs
turf centroid module
The npm package @turf/centroid receives a total of 750,698 weekly downloads. As such, @turf/centroid popularity was classified as popular.
We found that @turf/centroid demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 9 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.