Given a vector of sf geometries (class sfc) create a list of H3 vectors.
Each list element contains the vector of H3 cells that cover the geometry.
Arguments
- x
for
h3_from_points()an object of classsfc_POINT. Forh3_from_strings()a character vector of H3 index IDs. Forh3_from_xy()a numeric vector of longitudes.- resolution
an integer indicating the H3 cell resolution. Must be between 0 and 15 inclusive.
- containment
default
"intersect". Must be one of"intersect","centroid", or"boundary". See details.
Details
Note, use flatten_h3() to reduce the list to a single vector.
The Containment Mode determines if an H3 cell should be returned.
"centroid"returns every cell whose centroid are contained inside of a polygon. This is the fastest option but may not cover the entire polygon."boundary"this returns the cells which are completely contained by the polygon. Much of a polygon might not be covered using this approach."intersect"ensures that a polygon is entirely covered. If an H3 cell comes in contact with the polygon it will be returned. This is the default."contains"behaves the same as"intersect", but also handles the case where the geometry is being covered by a cell without intersecting with its boundaries. In such cases, the covering cell is returned.
Examples
if (interactive() && rlang::is_installed("sf")) {
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
geo <- sf::st_geometry(nc)
cells <- sfc_to_cells(geo, 5)
head(cells)
plot(flatten_h3(cells))
}