What is @turf/square-grid?
@turf/square-grid is a module from the Turf.js library that allows you to create a grid of squares within a bounding box. This can be useful for various geospatial analyses, such as dividing a region into smaller areas for detailed study or visualization.
What are @turf/square-grid's main functionalities?
Create a square grid
This feature allows you to create a grid of squares within a specified bounding box. The `bbox` parameter defines the bounding box, `cellSide` specifies the side length of each square, and `options` can include units of measurement.
const turf = require('@turf/turf');
const bbox = [-95, 30, -85, 40];
const cellSide = 50;
const options = { units: 'miles' };
const squareGrid = turf.squareGrid(bbox, cellSide, options);
console.log(squareGrid);
Other packages similar to @turf/square-grid
leaflet
Leaflet is a popular open-source JavaScript library for mobile-friendly interactive maps. While it does not specifically create square grids, it offers extensive functionalities for creating and manipulating map layers, including grid layers.
d3-geo
D3-geo is a module of D3.js that provides geographic projections, shapes, and utilities. It can be used to create various types of geographic visualizations, including grids, but requires more manual setup compared to @turf/square-grid.
geotiff
GeoTIFF is a library for reading and writing GeoTIFF files. While it does not create square grids, it can be used to manipulate geospatial raster data, which can be divided into grids for analysis.
@turf/square-grid
squareGrid
Creates a square grid from a bounding box, Feature or FeatureCollection.
Parameters
bbox
(Array<number> | FeatureCollection | Feature<any>) extent in [minX, minY, maxX, maxY] ordercellSize
number width of each cellunits
[string] used in calculating cellSize, can be degrees, radians, miles, or kilometers (optional, default kilometers
)completelyWithin
[boolean] adjust width & height cellSize to fit exactly within bbox (optional, default false
)
Examples
var bbox = [-95, 30 ,-85, 40];
var cellSize = 50;
var units = 'miles';
var squareGrid = turf.squareGrid(bbox, cellSize, units);
var addToMap = [squareGrid]
Returns FeatureCollection<Polygon> grid a grid of polygons
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/square-grid
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)