update_polygons.Rd
Updates specific colours and opacities of specified polygons. Designed to be used in a shiny application.
update_polygons(map, data, id, stroke_colour = NULL, stroke_weight = NULL, stroke_opacity = NULL, fill_colour = NULL, fill_opacity = NULL, info_window = NULL, layer_id = NULL, palette = NULL, legend = F, legend_options = NULL)
map | a googleway map object created from |
---|---|
data | data frame containing the data to use in the layer. If Null, the
data passed into |
id | string representing the column of |
stroke_colour | either a string specifying the column of |
stroke_weight | either a string specifying the column of |
stroke_opacity | either a string specifying the column of |
fill_colour | either a string specifying the column of |
fill_opacity | either a string specifying the column of |
info_window | string specifying the column of data to display in an info window when a shape is clicked. |
layer_id | single value specifying an id for the layer. Use this value to
distinguish between shape layers for when using any |
palette | a function, or list of functions, that generates hex colours given a single number as an input. See details. |
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. |
Any polygons (as specified by the id
argument) that do not exist
in the data
passed into add_polygons()
will not be added to the map.
This function will only update the polygons that currently exist on the map
when the function is called.
# NOT RUN { map_key <- 'your_api_key' pl_outer <- encode_pl(lat = c(25.774, 18.466,32.321), lon = c(-80.190, -66.118, -64.757)) pl_inner <- encode_pl(lat = c(28.745, 29.570, 27.339), lon = c(-70.579, -67.514, -66.668)) pl_other <- encode_pl(c(21,23,22), c(-50, -49, -51)) ## using encoded polylines df <- data.frame(id = c(1,1,2), colour = c("#00FF00", "#00FF00", "#FFFF00"), polyline = c(pl_outer, pl_inner, pl_other), stringsAsFactors = FALSE) google_map(key = map_key) %>% add_polygons(data = df, polyline = 'polyline', id = 'id', fill_colour = 'colour') df_update <- df[, c("id", "colour")] df_update$colour <- c("#FFFFFF", "#FFFFFF", "#000000") google_map(key = map_key) %>% add_polygons(data = df, polyline = 'polyline', id = 'id', fill_colour = 'colour') %>% update_polygons(data = df_update, id = 'id', fill_colour = 'colour') df <- aggregate(polyline ~ id + colour, data = df, list) google_map(key = map_key) %>% add_polygons(data = df, polyline = 'polyline', fill_colour = 'colour') google_map(key = map_key) %>% add_polygons(data = df, polyline = 'polyline', id = 'id', fill_colour = 'colour') %>% update_polygons(data = df_update, id = 'id', fill_colour = 'colour') ## using coordinates df <- data.frame(id = c(rep(1, 6), rep(2, 3)), lineId = c(rep(1, 3), rep(2, 3), rep(1, 3)), lat = c(25.774, 18.466, 32.321, 28.745, 29.570, 27.339, 21, 23, 22), lon = c(-80.190, -66.118, -64.757, -70.579, -67.514, -66.668, -50, -49, -51)) google_map(key = map_key) %>% add_polygons(data = df, lat = 'lat', lon = 'lon', id = 'id', pathId = 'lineId') google_map(key = map_key) %>% add_polygons(data = df, lat = 'lat', lon = 'lon', id = 'id', pathId = 'lineId') %>% update_polygons(data = df_update, id = 'id', fill_colour = 'colour') # }