GEOSCoverageUnion is an optimized union algorithm for polygonal inputs that are correctly noded and do not overlap. It will not generate an error (return NULL) for inputs that do not satisfy this constraint.

gCoverageUnion(spgeom, byid=FALSE, id = NULL)



sp object as defined in package sp


Logical determining if the function should be applied across subgeometries (TRUE) or the entire object (FALSE)


Character vector defining id labels for the resulting geometries, if unspecified returned geometries will be labeled based on their parent geometries' labels.


Roger Bivand

See also


run <- FALSE
if (require(maptools)) run <- TRUE
if (run) {
    nc1 <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
        proj4string=CRS("+proj=longlat +datum=NAD27"))
#> Warning: shapelib support is provided by GDAL through the sf and terra packages among others
if (run) {
    print(system.time(oU <- gUnionCascaded(nc1)))
    if (version_GEOS0() >= "3.8.0") {
        print(system.time(oCU <- gCoverageUnion(nc1)))
#>    user  system elapsed 
#>   0.019   0.000   0.019 
#>    user  system elapsed 
#>   0.006   0.000   0.006