Extract borders between polygons.
Outer borders are non-contiguous polygons borders (e.g. maritime borders).
getBorders(x, id)
getOuterBorders(x, id, res = NULL, width = NULL)
an sf object, a simple feature collection or a SpatialPolygonsDataFrame.
name of the identifier variable in x, default to the first column. (optional)
resolution of the grid used to compute outer borders (in x units). A high resolution will give more detailed borders. (optional)
maximum distance between used to compute outer borders (in x units). A higher width will build borders between units that are farther apart. (optional)
An sf object (MULTILINESTRING) of borders is returned. This object has three id variables: id, id1 and id2. id1 and id2 are ids of units that neighbour a border; id is the concatenation of id1 and id2 (with "_" as separator).
getBorders and getOuterBorders can be combined with rbind.
library(sf)
if (FALSE) {
mtq <- st_read(system.file("gpkg/mtq.gpkg", package="cartography"))
# extract
m <- mtq[c(5, 29, 9), ]
# Get borders
m_borders <- getBorders(x = m)
# Plot polygons
plot(st_geometry(m), border = NA, col = "grey60")
# Plot borders
plot(st_geometry(m_borders),
col = sample(x = rainbow(nrow(m_borders))),
lwd = 2 * c(4, 3, 2, 1), add = TRUE)
}
library(sf)
if (FALSE) {
mtq <- st_read(system.file("gpkg/mtq.gpkg", package="cartography"))
# extract
m <- mtq[c(29, 9), ]
# Get borders
m_borders <- getOuterBorders(x = m)
# Plot polygons
plot(st_geometry(m))
# Plot borders
plot(st_geometry(m_borders),
col = sample(x = rainbow(nrow(m_borders))),
lwd = c(4, 1), add = TRUE)
}