# Union SpatVector or SpatExtent objects

`union.Rd`

If you want to append polygon SpatVectors use `rbind`

instead of `union`

. `union`

will also intersect overlapping polygons between, not within, objects. Union for lines and points simply combines the two data sets; without any geometric intersections. This is equivalent to `rbind`

. Attributes are joined.

If `x`

and `y`

have a different geometry type, a SpatVectorCollection is returned.

If a single SpatVector is supplied, overlapping polygons are intersected. Original attributes are lost. New attributes allow for determining how many, and which, polygons overlapped.

SpatExtent: Objects are combined into their union; this is equivalent to `+`

.

## Usage

```
# S4 method for class 'SpatVector,SpatVector'
union(x, y)
# S4 method for class 'SpatVector,missing'
union(x, y)
# S4 method for class 'SpatExtent,SpatExtent'
union(x, y)
```

## Examples

```
e1 <- ext(-10, 10, -20, 20)
e2 <- ext(0, 20, -40, 5)
union(e1, e2)
#> SpatExtent : -10, 20, -40, 20 (xmin, xmax, ymin, ymax)
#SpatVector
v <- vect(system.file("ex/lux.shp", package="terra"))
v <- v[,3:4]
p <- vect(c("POLYGON ((5.8 49.8, 6 49.9, 6.15 49.8, 6 49.65, 5.8 49.8))",
"POLYGON ((6.3 49.9, 6.2 49.7, 6.3 49.6, 6.5 49.8, 6.3 49.9))"), crs=crs(v))
values(p) <- data.frame(pid=1:2, value=expanse(p))
u <- union(v, p)
plot(u, "pid")
b <- buffer(v, 1000)
u <- union(b)
u$sum <- rowSums(as.data.frame(u))
plot(u, "sum")
```