TransWikia.com

Adding color to polylines in leaflet in R

Geographic Information Systems Asked by Dhiraj on March 19, 2021

I have had a look at this and other links therein. This is exactly what I am trying to achieve and failing. Here is some sample data:

structure(
  list(
    lat = c(51.88783,51.8878441,51.887825,51.88659,51.8866959,51.8874931,51.89359,51.8941269,51.8977051,51.8994331,51.90773,51.91324,51.91604,51.9216652,51.93353,51.9419365),
    lon = c(4.28763342,4.287635,4.28765154,4.29007339,4.29562664,4.29917,4.30641174,4.30561829,4.29263353,4.284498,4.261132,4.24711847,4.241075,4.23262,4.21523666,4.1927),
    rateOfTurn = c(0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L,0L),
    sogKts = c(0, 0, 0, 2.1, 3.4, 4.6, 3.5, 3.8, 7.4, 7.9, 8.8,9.1, 9.2, 9.2, 9.3, 9.3),
    cog = c(15,15,15,122.2,70.4,70,323.2,315.3,289.3,290.9,303.8,303.7,308.9,324.5,304.9,301.4),
    heading = c(163,162,163,106,71,71,303,298,289,294,303,303,310,324,304,302),
    timestamp = c("2018-07-19T05:27:34","2018-07-19T05:39:35","2018-07-19T05:45:34","2018-07-19T05:57:37","2018-07-19T06:02:48","2018-07-19T06:04:49","2018-07-19T06:12:51","2018-07-19T06:13:32","2018-07-19T06:19:08","2018-07-19T06:21:41","2018-07-19T06:28:42","2018-07-19T06:32:50","2018-07-19T06:34:37","2018-07-19T06:37:41","2018-07-19T06:43:49","2018-07-19T06:50:09"),
    Color = c("red","red","red","red","orange","orange","orange","orange","orange","orange","yellow","yellow","yellow","yellow","yellow","yellow")
  ),
  row.names = 32:47,
  class = "data.frame"
)

I’d like the individual line segments to be coloured as per the Color variable. This is what I tried :

map <-  leaflet(x)
map <- addTiles(map)
for( Color in levels(as.factor(x$Color))){
  map <- addPolylines(map, lng=~lon,lat=~lat,data=x[x$Color==Color,], color=~Color)
}
map

The above code only groups the segments and plots them as individual segments and not as one continuous line as desired.

One Answer

You can use this function :

map <-  leaflet(x)
map <- addTiles(map)
for( Color in levels(as.factor(x$Color))){
  map <- map%>%addPolylines(map, lng=~lon,lat=~lat,data=x[x$Color==Color,], color=~Color)
}
map

Answered by Marouan on March 19, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP