Create a links layer from a data frame of links.

getLinkLayer(x, xid = NULL, df, dfid = NULL)

Arguments

x

an sf object, a simple feature collection (or a Spatial*DataFrame).

xid

name of the identifier variable in x, default to the first column (optional)

df

a data frame that contains identifiers of starting and ending points.

dfid

names of the identifier variables in df, character vector of length 2, default to the two first columns. (optional)

Value

An sf LINESTRING is returned, it contains two variables (origins and destinations).

Examples

library(sf)
mtq <- st_read(system.file("gpkg/mtq.gpkg", package="cartography"))
#> Reading layer `mtq' from data source 
#>   `/tmp/RtmpmpfIrO/temp_libpath18ee15f22a9e/cartography/gpkg/mtq.gpkg' 
#>   using driver `GPKG'
#> Simple feature collection with 34 features and 7 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: 690574 ymin: 1592536 xmax: 735940.2 ymax: 1645660
#> Projected CRS: WGS 84 / UTM zone 20N
mob <- read.csv(system.file("csv/mob.csv", package="cartography"))
# Select links from Fort-de-France (97209))
mob_97209 <- mob[mob$i == 97209, ]
# Create a link layer
mob.sf <- getLinkLayer(x = mtq, df = mob_97209, dfid = c("i", "j"))
# Plot the links1
plot(st_geometry(mtq), col = "grey")
plot(st_geometry(mob.sf), col = "red4", lwd = 2, add = TRUE)