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 single module individually:
$ npm install @turf/envelope
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf