The Line Layer renders raised lines joining pairs of source and target coordinates
add_animated_line( map, data = get_map_data(map), layer_id = NULL, origin, destination, id = NULL, stroke_colour = NULL, stroke_width = NULL, stroke_opacity = NULL, frequency = 1, animation_speed = 3, trail_length = 5, tooltip = NULL, auto_highlight = FALSE, highlight_colour = "#AAFFFFFF", palette = "viridis", na_colour = "#808080FF", legend = FALSE, legend_options = NULL, legend_format = NULL, update_view = TRUE, focus_layer = FALSE, digits = 6, transitions = NULL, brush_radius = NULL )
map | a mapdeck map object |
---|---|
data | data to be used in the layer. All coordinates are expected to be EPSG:4326 (WGS 84) coordinate system |
layer_id | single value specifying an id for the layer. Use this value to distinguish between shape layers of the same type. Layers with the same id are likely to conflict and not plot correctly |
origin | vector of longitude and latitude columns, and optionally an elevation column,
or an |
destination | vector of longitude and latitude columns, and optionally an elevatino column,
or an |
id | an id value in |
stroke_colour | variable or hex colour to use as the ending stroke colour. |
stroke_width | width of the line in metres |
stroke_opacity | Either a string specifying the column of |
frequency | column of |
animation_speed | the speed of animation |
trail_length | the length of trail of each arc |
tooltip | variable of |
auto_highlight | logical indicating if the shape under the mouse should auto-highlight |
highlight_colour | hex string colour to use for highlighting. Must contain the alpha component. |
palette | string or matrix. String will be one of |
na_colour | hex string colour to use for NA values |
legend | either a logical indiciating if the legend(s) should be displayed, or a named list indicating which colour attributes should be included in the legend. |
legend_options | A list of options for controlling the legend. |
legend_format | A list containing functions to apply to legend values. See section legend |
update_view | logical indicating if the map should update the bounds to include this layer |
focus_layer | logical indicating if the map should update the bounds to only include this layer |
digits | number of digits for rounding coordinates |
transitions | list specifying the duration of transitions. |
brush_radius | radius of the brush in metres. Default NULL. If supplied, the arcs will only show if the origin or destination are within the radius of the mouse. If NULL, all arcs are displayed |
add_line
supports POINT sf objects
MULTIPOINT objects will be treated as single points. That is, if an sf object has one row with a MULTIPOINT object consisting of two points, this will be expanded to two rows of single POINTs. Therefore, if the origin is a MULTIPOINT of two points, and the destination is a single POINT, the code will error as there will be an uneven number of rows
# \donttest{ ## You need a valid access token from Mapbox key <- 'abc' set_token( key ) url <- 'https://raw.githubusercontent.com/plotly/datasets/master/2011_february_aa_flight_paths.csv' flights <- read.csv(url) flights$id <- seq_len(nrow(flights)) flights$stroke <- sample(1:3, size = nrow(flights), replace = T) mapdeck(style = mapdeck_style("dark"), pitch = 45 ) %>% add_animated_line( data = flights , layer_id = "line_layer" , origin = c("start_lon", "start_lat") , destination = c("end_lon", "end_lat") , stroke_colour = "airport1" , stroke_width = "stroke" , auto_highlight = TRUE , trail_length = 1 , animation_speed = 1 )#>## Using a 2-sfc-column sf object library(sfheaders) sf_flights <- sfheaders::sf_point( flights, x = "start_lon", y = "start_lat", keep = TRUE ) destination <- sfheaders::sfc_point( flights, x = "end_lon", y = "end_lat" ) sf_flights$destination <- destination mapdeck() %>% add_animated_line( data = sf_flights , origin = 'geometry' , destination = 'destination' , layer_id = 'arcs' , stroke_colour = "airport1" , trail_length = 1 , animation_speed = 2 )#># }