What is @turf/envelope?
@turf/envelope is a module from the Turf.js library that allows you to calculate the bounding box (envelope) of a given GeoJSON feature or set of features. This is useful for determining the minimum bounding rectangle that encloses a set of geographical points, lines, or polygons.
What are @turf/envelope's main functionalities?
Calculate Bounding Box for a Point
This feature allows you to calculate the bounding box for a single point. The code sample creates a point at coordinates [10, 20] and then calculates its bounding box.
const turf = require('@turf/turf');
const point = turf.point([10, 20]);
const envelope = turf.envelope(point);
console.log(envelope);
Calculate Bounding Box for a Polygon
This feature allows you to calculate the bounding box for a polygon. The code sample creates a polygon with specified coordinates and then calculates its bounding box.
const turf = require('@turf/turf');
const polygon = turf.polygon([[
[10, 20], [30, 40], [50, 60], [10, 20]
]]);
const envelope = turf.envelope(polygon);
console.log(envelope);
Calculate Bounding Box for Multiple Features
This feature allows you to calculate the bounding box for a collection of features. The code sample creates a point and a line, combines them into a feature collection, and then calculates the bounding box for the entire collection.
const turf = require('@turf/turf');
const point = turf.point([10, 20]);
const line = turf.lineString([[30, 40], [50, 60]]);
const featureCollection = turf.featureCollection([point, line]);
const envelope = turf.envelope(featureCollection);
console.log(envelope);
Other packages similar to @turf/envelope
bbox
The 'bbox' package provides similar functionality to @turf/envelope by calculating the bounding box for GeoJSON features. It is a lightweight alternative but may not offer the extensive set of geospatial operations available in the Turf.js library.
geojson-bbox
The 'geojson-bbox' package is another alternative that focuses on calculating the bounding box for GeoJSON objects. It is simple to use and can be a good choice if you only need bounding box calculations without the additional features provided by Turf.js.
@turf/envelope
envelope
Takes any number of features and returns a rectangular Polygon that encompasses all vertices.
Parameters
Examples
var features = turf.featureCollection([
turf.point([-75.343, 39.984], {"name": "Location A"}),
turf.point([-75.833, 39.284], {"name": "Location B"}),
turf.point([-75.534, 39.123], {"name": "Location C"})
]);
var enveloped = turf.envelope(features);
var addToMap = [features, enveloped];
Returns Feature<Polygon> a rectangular Polygon feature that encompasses all vertices
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/envelope
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