a5_grid: Generate a grid of A5 cells covering an area

View source: R/grid.R

a5_gridR Documentation

Generate a grid of A5 cells covering an area

Description

Returns all cells at the target resolution that intersect the given geometry. Uses hierarchical flood-fill: starting from the 12 resolution-0 root cells, the algorithm repeatedly expands and prunes by spatial intersection until the target resolution is reached.

Usage

a5_grid(x, resolution)

Arguments

x

An area specification. One of:

  • A numeric vector of length 4 (c(xmin, ymin, xmax, ymax)) interpreted as a WGS 84 bounding box.

  • Any geometry handleable by wk::wk_handle() (e.g. wk::wkt(), wk::wkb(), sfc, sf, a5_cell).

resolution

Integer scalar target resolution (0–30).

Details

Grid generation runs entirely in Rust via hierarchical flood-fill with bounding-box pruning. For non-bbox geometry inputs, an exact intersection filter removes cells that fall outside the target shape. No cell count limit is imposed — high resolutions over large areas can consume significant memory.

Input geometries must use WGS 84 coordinates; projected geometries are not reprojected and will produce incorrect results. Multiple geometries are collected into a GEOMETRYCOLLECTION automatically. Antimeridian-crossing bounding boxes are supported: when xmin > xmax (e.g. c(170, -50, -170, -30)), the bbox is split at the antimeridian.

Limitation: spatial filtering uses planar geometry on lon/lat coordinates, which can produce incomplete results very close to the poles (above ~88° latitude) or the antimeridian. Use a larger target geometry to ensure complete coverage in these areas.

Value

An a5_cell vector of cells at resolution that intersect x.

See Also

a5_cell_to_boundary() to convert result cells to geometries.

Examples

# Grid from a bounding box
cells <- a5_grid(c(-3.3, 55.9, -3.1, 56.0), resolution = 5)
cells

# Grid from a WKT polygon
poly <- wk::wkt("POLYGON ((-3.3 55.9, -3.1 55.9, -3.1 56, -3.3 56, -3.3 55.9))")
cells <- a5_grid(poly, resolution = 5)

a5R documentation built on March 26, 2026, 5:10 p.m.