Create a regular tiling polygon geometry for the extent of an anchor value.

gs_tiles(anchor = NULL, width = NULL, pattern = "squared", centroids = FALSE)



Object to derive the tiling geom from. It must include column names x, y and optionally a custom fid.


the width (which does not correspond to the height in case of pattern = "hexagonal") of a tile.


pattern of the tiling. Possible options are "squared" (default) or "hexagonal".


should the centroids of the tiling be returned (TRUE) or should the tiling be returned (FALSE, default)?


A geom.


When deriving a regular tiling for a prescribed window, there is only a limited set of legal combinations of cells in x and y dimension. For instance, a window of 100 by 100 can't comprise 10 by 5 squares of side-length/width 10, because then the y-dimension wouldn't be fully covered. The same is true for hexagonal and triangular tilings.

See also

Other tilings: gs_voronoi()


# create a squared tiling
aWindow <- data.frame(x = c(-180, 180),
                      y = c(-60, 80))
tiles <- gs_tiles(anchor = aWindow, width = 10)
visualise(`10° world tiles` = tiles)

# create a hexagonal tiling on top of a geom
coords <- data.frame(x = c(40, 70, 70, 50),
                     y = c(40, 40, 60, 70))
window <- data.frame(x = c(0, 80),
                     y = c(0, 80))
aGeom <- gs_polygon(anchor = coords, window = window)
visualise(`honeycomb background` = aGeom)
hex <- gs_tiles(anchor = aGeom, width = 8, pattern = "hexagonal")
visualise(hex, linecol = "deeppink", new = FALSE)