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 fc = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"name": "Location A"
},
"geometry": {
"type": "Point",
"coordinates": [-75.343, 39.984]
}
}, {
"type": "Feature",
"properties": {
"name": "Location B"
},
"geometry": {
"type": "Point",
"coordinates": [-75.833, 39.284]
}
}, {
"type": "Feature",
"properties": {
"name": "Location C"
},
"geometry": {
"type": "Point",
"coordinates": [-75.534, 39.123]
}
}
]
};
var enveloped = turf.envelope(fc);
var resultFeatures = fc.features.concat(enveloped);
var result = {
"type": "FeatureCollection",
"features": resultFeatures
};
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