Skip to contents

Insert a new node or vertex into a network

Usage

dodgr_insert_vertex(graph, v1, v2, x = NULL, y = NULL)

Arguments

graph

A flat table of graph edges. Must contain columns labelled from and to, or start and stop. May also contain similarly labelled columns of spatial coordinates (for example from_x) or stop_lon).

v1

Vertex defining start of graph edge along which new vertex is to be inserted

v2

Vertex defining end of graph edge along which new vertex is to be inserted (order of v1 and v2 is not important).

x

The x-coordinate of new vertex. If not specified, vertex is created half-way between v1 and v2.

y

The y-coordinate of new vertex. If not specified, vertex is created half-way between v1 and v2.

Value

A modified graph with specified edge between defined start and end vertices split into two edges either side of new vertex.

Examples

graph <- weight_streetnet (hampi)
e1 <- sample (nrow (graph), 1)
v1 <- graph$from_id [e1]
v2 <- graph$to_id [e1]
# insert new vertex in the middle of that randomly-selected edge:
graph2 <- dodgr_insert_vertex (graph, v1, v2)
nrow (graph)
#> [1] 6813
nrow (graph2) # new edges added to graph2
#> [1] 6815