Class representing connected components of a metric graph.

## Value

Object of `R6Class`

for creating metric graph components.

## Details

A list of `metric_graph`

objects (representing the different
connected components in the full graph) created from vertex and edge matrices,
or from an sp::SpatialLines object where each line is representing and edge.
For more details, see the vignette:
`vignette("metric_graph", package = "MetricGraph")`

## Public fields

`graphs`

List of the graphs representing the connected components.

`n`

The number of graphs.

`sizes`

Number of vertices for each of the graphs.

`lengths`

Total edge lengths for each of the graphs. Create metric graphs for connected components

## Methods

### Method `new()`

#### Usage

```
graph_components$new(
edges = NULL,
V = NULL,
E = NULL,
by_length = TRUE,
edge_weights = NULL,
...,
lines = deprecated()
)
```

#### Arguments

`edges`

A list containing coordinates as

`m x 2`

matrices (that is, of`matrix`

type) or m x 2 data frames (`data.frame`

type) of sequence of points connected by straightlines. Alternatively, you can also prove an object of type`SpatialLinesDataFrame`

or`SpatialLines`

(from`sp`

package) or`MULTILINESTRING`

(from`sf`

package).`V`

n x 2 matrix with Euclidean coordinates of the n vertices.

`E`

m x 2 matrix where each row represents an edge.

`by_length`

Sort the components by total edge length? If

`FALSE`

, the components are sorted by the number of vertices.`edge_weights`

Either a number, a numerical vector with length given by the number of edges, providing the edge weights, or a

`data.frame`

with the number of rows being equal to the number of edges, where`...`

Additional arguments used when specifying the graphs

`lines`

`vertex_unit`

The unit in which the vertices are specified. The options are 'degree' (the great circle distance in km), 'km', 'm' and 'miles'. The default is

`NULL`

, which means no unit. However, if you set`length_unit`

, you need to set`vertex_unit`

.`length_unit`

The unit in which the lengths will be computed. The options are 'km', 'm' and 'miles'. The default is

`vertex_unit`

. Observe that if`vertex_unit`

is`NULL`

,`length_unit`

can only be`NULL`

. If`vertex_unit`

is 'degree', then the default value for`length_unit`

is 'km'.`longlat`

If TRUE, then it is assumed that the coordinates are given. in Longitude/Latitude and that distances should be computed in meters. It takes precedence over

`vertex_unit`

and`length_unit`

, and is equivalent to`vertex_unit = 'degree'`

and`length_unit = 'm'`

.`tolerance`

Vertices that are closer than this number are merged when constructing the graph (default = 1e-10). If

`longlat = TRUE`

, the tolerance is given in km.

### Method `plot()`

Plots all components.

## Examples

```
library(sp)
edge1 <- rbind(c(0, 0), c(1, 0))
edge2 <- rbind(c(1, 0), c(2, 0))
edge3 <- rbind(c(1, 1), c(2, 1))
edges <- list(edge1, edge2, edge3)
graphs <- graph_components$new(edges)
#> Starting graph creation...
#> LongLat is set to FALSE
#> Setting up edges
#> Merging close vertices
#> Total construction time: 0.20 secs
#> Starting graph creation...
#> LongLat is set to FALSE
#> Setting up edges
#> Merging close vertices
#> Total construction time: 0.19 secs
#> Starting graph creation...
#> LongLat is set to FALSE
#> Setting up edges
#> Merging close vertices
#> Total construction time: 0.19 secs
graphs$plot()
```