Distances on dual-weighted directed graphs using priority-queue shortest paths. Weighted directed graphs have weights from A to B which may differ from those from B to A. Dual-weighted directed graphs have two sets of such weights. A canonical example is a street network to be used for routing in which routes are calculated by weighting distances according to the type of way and mode of transport, yet lengths of routes must be calculated from direct distances.

`dodgr_dists()`

: Calculate pair-wise distances between specified pairs of points in a graph.

`dodgr_streetnet()`

: Extract a street network in Simple Features (`sf`

) form.`weight_streetnet()`

: Convert an`sf`

-formatted street network to a`dodgr`

graph through applying specified weights to all edges.

`dodgr_components()`

: Number all graph edges according to their presence in distinct connected components.`dodgr_contract_graph()`

: Contract a graph by removing redundant edges.

`dodgr_sample()`

: Randomly sample a graph, returning a single connected component of a defined number of vertices.`dodgr_vertices()`

: Extract all vertices of a graph.`compare_heaps()`

: Compare the performance of different priority queue heap structures for a given type of graph.