A spatial network specific bounding box extractor, returning the combined bounding box of the nodes and edges in the network.

st_network_bbox(x, ...)

Arguments

x

An object of class sfnetwork.

...

Arguments passed on to st_bbox.

Value

The bounding box of the network as an object of class bbox.

Details

See st_bbox for details.

Examples

library(sf)

# Create a network.
node1 = st_point(c(8, 51))
node2 = st_point(c(7, 51.5))
node3 = st_point(c(8, 52))
node4 = st_point(c(9, 51))
edge1 = st_sfc(st_linestring(c(node1, node2, node3)))

nodes = st_as_sf(c(st_sfc(node1), st_sfc(node3), st_sfc(node4)))
edges = st_as_sf(edge1)
edges$from = 1
edges$to = 2

net = sfnetwork(nodes, edges)
#> Checking if spatial network structure is valid...
#> Spatial network structure is valid

# Create bounding boxes for nodes, edges and the whole network.
node_bbox = st_bbox(activate(net, "nodes"))
node_bbox
#> xmin ymin xmax ymax 
#>    8   51    9   52 
edge_bbox = st_bbox(activate(net, "edges"))
edge_bbox
#> xmin ymin xmax ymax 
#>    7   51    8   52 
net_bbox = st_network_bbox(net)
net_bbox
#> xmin ymin xmax ymax 
#>    7   51    9   52 

# Plot.
oldpar = par(no.readonly = TRUE)
par(mar = c(1,1,1,1), mfrow = c(1,2))
plot(net, lwd = 2, cex = 4, main = "Element bounding boxes")
plot(st_as_sfc(node_bbox), border = "red", lty = 2, lwd = 4, add = TRUE)
plot(st_as_sfc(edge_bbox), border = "blue", lty = 2, lwd = 4, add = TRUE)
plot(net, lwd = 2, cex = 4, main = "Network bounding box")
plot(st_as_sfc(net_bbox), border = "red", lty = 2, lwd = 4, add = TRUE)

par(oldpar)