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
4.7.0
🚀 New Modules
[@turf/projection
][projection]
- toMercator: Converts a WGS84 GeoJSON object into Mercator (EPSG:900913) projection
- toWgs84: Converts a Mercator (EPSG:900913) GeoJSON object into WGS84 projection
(PR https://github.com/Turfjs/turf/pull/927 - Author @stebogit)
[@turf/point-to-line-distance
][point-to-line-distance]
Returns the minimum distance between a {@link Point} and a {@link LineString}, being the distance from a line the minimum distance between the point and any segment of the LineString
.
(PR https://github.com/Turfjs/turf/pull/925 - Author @stebogit)
[@turf/boolean-within
][boolean-within]
Boolean-within returns true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and, the interior and boundary of the primary (geometry a) must not intersect the exterior of the secondary (geometry b). Boolean-within returns the exact opposite result of the [@turf/boolean-contains
][boolean-contains].
(PR https://github.com/Turfjs/turf/pull/924 - Author @rowanwins)
🏅 New Features/Enhancements
- Updates [
@turf/unkink-polygon
][unkink-polygon] testing & added flattenEach
instead of using flatten
.
(PR https://github.com/Turfjs/turf/pull/889) - [
@turf/concave
][concave] refactoring, replacing [@turf/union
][union] with geojson-dissolve
to increase speed and added support to null
geometries
(PR https://github.com/Turfjs/turf/pull/907 - Contributor @stebogit @DenisCarriere) - Adds doc note on [
@turf/polygonize
][polygonize] about "Edges must be correctly noded"
(PR https://github.com/Turfjs/turf/pull/898 - Contributor @stebogit @NickCis) - Adds support to foreign Members to [
@turf/clone
][clone]
(PR https://github.com/Turfjs/turf/pull/904 - Contributor @DenisCarriere) - Extends support of any
GeoJSON
to [@turf/simplify
][simplify]
(PR https://github.com/Turfjs/turf/pull/903 - Contributor @DenisCarriere @stebogit) - Adds new
isNumber
function and improves type checking for few [@turf/helpers
][helpers] methods
(PR https://github.com/Turfjs/turf/pull/920 - Contributor @DenisCarriere @stebogit) - Adds throw errors to invalid
MultiPolygons
for [@turf/simplify
][simplify]
(PR https://github.com/Turfjs/turf/pull/922 - Contributor @DenisCarriere)
🐛 Bug Fixes
- Fixes
@turf/bbox-clip
point intersection handling, adding sanity-checks the lineclip output
(PR https://github.com/Turfjs/turf/pull/886) - Fixes [
@turf/line-split
][line-split] endpoint case handling applying [@turf/truncate
][truncate] on splitter
(PR https://github.com/Turfjs/turf/pull/892 and https://github.com/Turfjs/turf/pull/855 - Contributor @stebogit) - Fixes [
@turf/intersect
][intersect] throwing "uncaught exception", adding [@turf/truncate
][truncate] to inputs and returning Feature<null>
if no geometry
(PR https://github.com/Turfjs/turf/pull/890 - Contributor @stebogit @vicvolk) - Fixes [
@turf/hex-grid
][hex-grid] not properly cloning the last ring vertex
(PR https://github.com/Turfjs/turf/pull/897 - Contributor @stebogit @DenisCarriere) - Fixes [
@turf/boolean-disjoint
][boolean-disjoint] incorrect behaviour where a poly was completely contained within another poly
(PR https://github.com/Turfjs/turf/pull/908 - Contributor @rowanwins) - Fixes [
@turf/simplify
][simplify] process pending on particular geometries, applying [@turf/clean-coords
][clean-coords] to input.
(PR https://github.com/Turfjs/turf/pull/903 - Contributor @stebogit @DenisCarriere) - Fixes
boolean
properties not being translated with [@turf/clone
][clone]
(PR https://github.com/Turfjs/turf/pull/909 - Contributor @DenisCarriere) - Fixes [
@turf/boolean-contains
][boolean-contains] incorrect output when checking two polygons
(PR https://github.com/Turfjs/turf/pull/923 - Contributor @rowanwins @DenisCarriere)