# [R-sig-Geo] igraph and spatial

Mathieu Rajerison mathieu.rajerison at gmail.com
Thu Feb 25 11:55:00 CET 2016

```For curved lines, you could use the bezier library.

In this example, I generate a bezier line with random curvature within a
specific range :

from = mst.bh[i, 1] # coordinates of the source node
to = mst.bh[i, 2] # coordinates of the target node

d = sqrt((coords[from, 1] - coords[to, 1])^2 + (coords[from, 2] -
coords[to, 2])^2) # the distance bewteen the two nodes

midpoint = c((coords[from, 1] + coords[to, 1])/2 + ifelse(runif(1,-1,1) >
0, 1, -1) * runif(1,0,d/3),
(coords[from, 2] + coords[to, 2])/2 + ifelse(runif(1,-1,1)
> 0, 1, -1) * runif(1,0,d/3))

b = bezier(t=t <- seq(0, 1, length=100), p=rbind(coords[from, ], midpoint,
coords[to, ]))

rowname = paste(from, to, sep="_")
l = makeLineFromCoords(b, rowname)

2016-02-25 11:44 GMT+01:00 Luca Candeloro <luca.candeloro at gmail.com>:

> Thank you Mathieu,
> in the way you propose, however, you get straight lines...
> I'd like instead to have curved edges.
> any suggestions?
> cheers, luca
>
> 2016-02-25 11:39 GMT+01:00 Mathieu Rajerison <mathieu.rajerison at gmail.com>
> :
>
>> Hi,
>>
>> Recently, I used igraph with spatial objects.
>>
>> Once you have the coordinates of the nodes composing an edge, you can
>> transform it into a spatiallines object with this function :
>>
>> makeLineFromCoords <- function(coords, i) {
>>   Sl1 = Line(coords)
>>   S1 = Lines(list(Sl1), ID=as.character(i))
>>   Sl = SpatialLines(list(S1))
>>   return(Sl)
>> }
>>
>> For all the routing stuff within R, this resource by B. Rowlingson is
>> quite inspiring :
>>
>> http://rstudio-pubs-static.s3.amazonaws.com/1572_7599552b60454033a0d5c5e6d2e34ffb.html
>>
>> best,
>>
>> Mathieu
>>
>> 2016-02-22 9:30 GMT+01:00 Michael Sumner <mdsumner at gmail.com>:
>>
>>> On Mon, 22 Feb 2016 at 19:13 Luca Candeloro <luca.candeloro at gmail.com>
>>> wrote:
>>>
>>> > Dear all,
>>> > plotting graphs with given vertex coordinates is possible inside igraph
>>> > plot function.
>>> > I would like to transform vilsualized edges into
>>> SpatialLinesDataFrame, so
>>> > that they could be exported in .shp file...
>>> > Any suggestion?
>>> >
>>>
>>> Can you please provide a working igraph example that we can start with?
>>>
>>> Do you want coordinates as seen in a particular plot, or can it be more
>>> arbitrary?
>>>
>>> Cheers, Mike.
>>>
>>>
>>>
>>> > thanks in advance,
>>> > Luca
>>> >
>>> >         [[alternative HTML version deleted]]
>>> >
>>> > _______________________________________________
>>> > R-sig-Geo mailing list
>>> > R-sig-Geo at r-project.org
>>> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>> >
>>> --
>>> Dr. Michael Sumner
>>> Software and Database Engineer
>>> Australian Antarctic Division
>>> 203 Channel Highway
>>> Kingston Tasmania 7050 Australia
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo at r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>>
>>
>

[[alternative HTML version deleted]]

```