What is @turf/circle?
@turf/circle is a module within the Turf.js library that allows you to create circular polygons. It is useful for geospatial analysis and manipulation, enabling you to generate circles with a specified radius around a given point.
What are @turf/circle's main functionalities?
Create a Circle
This feature allows you to create a circle polygon with a specified radius around a given center point. The `steps` option defines the number of points used to approximate the circle, and the `units` option specifies the unit of measurement for the radius.
const turf = require('@turf/turf');
const center = [0, 0];
const radius = 5;
const options = { steps: 64, units: 'kilometers' };
const circle = turf.circle(center, radius, options);
console.log(circle);
Customizing Circle Properties
This feature allows you to customize the properties of the circle, such as the number of steps for approximation, the units of measurement, and additional properties like a name.
const turf = require('@turf/turf');
const center = [0, 0];
const radius = 5;
const options = { steps: 32, units: 'miles', properties: { name: 'My Circle' } };
const circle = turf.circle(center, radius, options);
console.log(circle);
Other packages similar to @turf/circle
leaflet
Leaflet is a popular open-source JavaScript library for mobile-friendly interactive maps. It provides similar functionality for creating circles on maps, but it is more focused on rendering and interaction rather than geospatial analysis.
openlayers
OpenLayers is a high-performance, feature-packed library for all your mapping needs. It offers similar capabilities for creating and manipulating circles, but it is more comprehensive and includes a wide range of other geospatial functionalities.
geolib
Geolib is a small library to provide basic geospatial operations like distance calculation, conversion of units, and bounding boxes. It can create circles, but it is more lightweight and less feature-rich compared to @turf/circle.
@turf/circle
circle
Takes a Point and calculates the circle polygon given a radius in degrees, radians, miles, or kilometers; and steps for precision.
Parameters
center
(Feature<Point> | Array<number>) center pointradius
number radius of the circleoptions
Object? Optional parameterssteps
number number of steps (optional, default 64
)units
string miles, kilometers, degrees, or radians (optional, default "kilometers"
)properties
Object properties (optional, default {}
)
Examples
var center = [-75.343, 39.984];
var radius = 5;
var steps = 10;
var units = 'kilometers';
var properties = {foo: 'bar'};
var circle = turf.circle(center, radius, steps, units, properties);
var addToMap = [turf.point(center), circle]
Returns Feature<Polygon> circle polygon
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/circle
Or install the Turf module that includes it as a function:
$ npm install @turf/turf
5.0.0 🎉
⭐️ Major Updates
- TurfJS now supports ES Modules (Related PR's)
- Optional parameters are now defined as an
Object
.
🚀 New Modules
[@turf/voronoi
][voronoi]
Takes a FeatureCollection of points, and a bounding box, and returns a FeatureCollection of Voronoi polygons.
(PR https://github.com/Turfjs/turf/pull/1043 - Author @stevage)
[@turf/shortest-path
][shortest-path]
Returns the shortest path from start to end without colliding with any feature in obstacles
(PR https://github.com/Turfjs/turf/pull/956 - Author @stebogit)
[@turf/boolean-parallel
][boolean-parallel]
Boolean-Parallel returns True if each segment of line1
is parallel to the correspondent segment of line2
(PR https://github.com/Turfjs/turf/pull/941 - Author @stebogit)
[@turf/nearest-point-on-line
][nearest-point-on-line]
Takes a {@link Point} and a {@link LineString} and calculates the closest Point on the (Multi)LineString.
(PR https://github.com/Turfjs/turf/pull/939 - Author @stebogit)
🏅 New Features/Enhancements
-
Updates [@turf/unkink-polygon
][unkink-polygon] testing & added flattenEach
instead of using flatten
.
(PR https://github.com/Turfjs/turf/pull/889)
-
Add multi-geomtry support to @turf/line-split
(PR https://github.com/Turfjs/turf/pull/1078)
-
Improve @turf/meta
lineEach
method to provide properties, id and bbox
(PR https://github.com/Turfjs/turf/pull/1010)
🐛 Bug Fixes
-
Fixes @turf/helpers
earth radius variable
(PR https://github.com/Turfjs/turf/pull/1012)
-
Fixes @turf/polygon-tangents
bug
(PR https://github.com/Turfjs/turf/pull/1058)
-
Fixes @turf/line-chunk
bug when the number of segments is integer
(PR https://github.com/Turfjs/turf/pull/1046)
-
Fixes segmentEach
and segmentReduce
methods in @turf/meta
to ensure something is returned
(PR https://github.com/Turfjs/turf/pull/968)
⚠️ Breaking Change
- Optional parameters are now defined as an
Object
:
Before
var from = [-75.343, 39.984];
var to = [-75.534, 39.123];
var units = 'miles';
var distance = turf.distance(from, to, units);
After
var from = [-75.343, 39.984];
var to = [-75.534, 39.123];
var options = {units: 'miles'};
var distance = turf.distance(from, to, options);
- Reworked
@turf/random
PR https://github.com/Turfjs/turf/issues/994 - Deprecate
@turf/idw
Issue https://github.com/Turfjs/turf/issues/887 - Reworked Grid modules
@turf/point-grid/hex/square/triangle
PR https://github.com/Turfjs/turf/pull/1029 - Renamed Modules/Methods
- [x]
@turf/inside
=> @turf/boolean-point-in-polygon
https://github.com/Turfjs/turf/issues/860#issuecomment-317216235 - [x]
@turf/within
=> @turf/points-within-polygon
https://github.com/Turfjs/turf/issues/860#issuecomment-317216235 - [x]
@turf/bezier
=> @turf/bezier-spline
Issue https://github.com/Turfjs/turf/issues/661 - [x]
@turf/nearest
=> @turf/nearest-point
https://github.com/Turfjs/turf/pull/858#issuecomment-317197295 - [x]
@turf/point-on-line
=> @turf/nearest-point-on-line
https://github.com/Turfjs/turf/pull/858#issuecomment-317197295 - [x]
@turf/lineDistance
=> @turf/length
https://github.com/Turfjs/turf/issues/860#issuecomment-317229869 - [x]
@turf/helpers
- [x]
radians2degrees
=> radiansToDegrees
- [x]
degrees2radians
=> degreesToRadians
- [x]
distanceToDegrees
=> lengthToDegrees
- [x]
distanceToRadians
=> lengthToRadians
- [x]
radiansToDistance
=> radiansToLength
- [x]
bearingToAngle
=> bearingToAzimuth
- [x]
convertDistance
=> convertLength