@Kent Johnson <kent3737 at gmail.com> guess I jumped the gun!
Your code worked like a charm as long as the colours were all in order,
ie, none of them are repeating.
Like I mentioned, I am working with shipping data and the Color variable
is dependent on the ship?s speed. The code that you provided joins all the
line segments which have the same color.
So if red represents a speed less than 3 knots, then it will join all the
points irrespective of the timeline wherever the color is red.
What I am looking for is one continuous path where the same color might
repeat. Here?s a reproducible example:
library(leaflet)
x <- 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, 0.3, 0.4),
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", "red", "red")), row.names = 32:47, class = "data.frame")
#Kent's code
x$lastColor = dplyr::lag(x$Color)
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 | x$lastColor==Color,], color=~Color) }
map
As you can see, the last two observations are again in red color. But when
the map renders, it joins the last two observations with the first three.
I am not sure what to do here? Inserting a row of NAs would help? But I am
also using another javascript plugin (polylineDecorator) for adding
arrows to the direction of travel and that is intolerant to NAs.
Appreciate some help here.
Regards
Dhiraj Khanna
Mob:09873263331
On Sat, Sep 1, 2018 at 8:06 PM Dhiraj Khanna <dhirajkhanna at gmail.com>
wrote: