These are built with the `spread()`

function internally.

Produces a `SpatialPolygons`

object with 1 feature that will have approximately an area
equal to `area`

(expecting area in hectares), #' and a centre at approximately `x`

.

```
randomPolygons(
ras = raster(extent(0, 15, 0, 15), res = 1, vals = 0),
numTypes = 2,
...
)
randomPolygon(x, hectares, area)
# S3 method for SpatialPoints
randomPolygon(x, hectares, area)
# S3 method for matrix
randomPolygon(x, hectares, area)
# S3 method for SpatialPolygons
randomPolygon(x, hectares, area)
```

- ras
A raster that whose extent will be used for the random polygons.

- numTypes
Numeric value. The number of unique polygon types to use.

- ...
Other arguments passed to

`spread`

. No known uses currently.- x
Either a

`SpatialPoints`

,`SpatialPolygons`

, or`matrix`

with two dimensions, 1 row, with the approximate centre of the new random polygon to create. If`matrix`

, then longitude and latitude are assumed (epsg:4326)- hectares
Deprecated. Use

`area`

in meters squared.- area
A numeric, the approximate area in

`meters squared`

of the random polygon.

A map of extent `ext`

with random polygons.

A `SpatialPolygons`

object, with approximately the area request,
centred approximately at the coordinates requested, in the projection of `x`

```
library(quickPlot)
set.seed(1234)
Ras <- randomPolygons(numTypes = 5)
if (interactive()) {
clearPlot()
Plot(Ras, cols = c("yellow", "dark green", "blue", "dark red"))
}
library(raster)
# more complex patterning, with a range of patch sizes
a <- randomPolygons(numTypes = 400, raster(extent(0, 50, 0, 50), res = 1, vals = 0))
#> duplicate initial loci are provided
a[a < 320] <- 0
a[a >= 320] <- 1
suppressWarnings(clumped <- clump(a)) # warning sometimes occurs, but not important
aHist <- hist(table(getValues(clumped)), plot = FALSE)
if (interactive()) {
clearPlot()
Plot(a)
Plot(aHist)
}
library(raster)
b <- SpatialPoints(cbind(-110, 59))
crs(b) <- sp::CRS("+init=epsg:4326")
a <- randomPolygon(b, area = 1e6)
#> The CRS provided is not in meters; converting internally to UTM so area will be approximately correct.
if (interactive()) {
plot(a)
points(b, pch = 19)
}
```