Create a square or hexagonal grid covering the geometry of an sf or sfc object

st_make_grid(
x,
cellsize = c(diff(st_bbox(x)[c(1, 3)]), diff(st_bbox(x)[c(2, 4)]))/n,
offset = st_bbox(x)[c("xmin", "ymin")],
n = c(10, 10),
crs = if (missing(x)) NA_crs_ else st_crs(x),
what = "polygons",
square = TRUE,
flat_topped = FALSE
)

## Arguments

x object of class sf or sfc target cellsize numeric of lengt 2; lower left corner coordinates (x, y) of the grid integer of length 1 or 2, number of grid cells in x and y direction (columns, rows) object of class crs; coordinate reference system of the target of the target grid in case argument x is missing, if x is not missing, its crs is inherited. character; one of: "polygons", "corners", or "centers" logical; if FALSE, create hexagonal grid logical; if TRUE generate flat topped hexagons, else generate pointy topped

## Value

Object of class sfc (simple feature geometry list column) with, depending on what and square, square or hexagonal polygons, corner points of these polygons, or center points of these polygons.

## Details

to obtain a grid covering the bounding box of a set of geometries, pass st_as_sfc(st_bbox(x)) for argument x

## Examples

plot(st_make_grid(what = "centers"), axes = TRUE)plot(st_make_grid(what = "corners"), add = TRUE, col = 'green', pch=3) sfc = st_sfc(st_polygon(list(rbind(c(0,0), c(1,0), c(1,1), c(0,0)))))
plot(st_make_grid(sfc, cellsize = .1, square = FALSE))plot(sfc, add = TRUE) # non-default offset:
plot(st_make_grid(sfc, cellsize = .1, square = FALSE, offset = c(0, .05 / (sqrt(3)/2))))plot(sfc, add = TRUE) 