
Last chance! 50% off unlimited learning
Sale ends in
Add a polygon to a google map.
add_polygons(
map,
data = get_map_data(map),
polyline = NULL,
lat = NULL,
lon = NULL,
id = NULL,
pathId = NULL,
stroke_colour = NULL,
stroke_weight = NULL,
stroke_opacity = NULL,
fill_colour = NULL,
fill_opacity = NULL,
info_window = NULL,
mouse_over = NULL,
mouse_over_group = NULL,
draggable = NULL,
editable = NULL,
update_map_view = TRUE,
layer_id = NULL,
z_index = NULL,
digits = 4,
palette = NULL,
legend = F,
legend_options = NULL,
load_interval = 0,
focus_layer = FALSE
)
a googleway map object created from google_map()
data frame containing at least a polyline
column,
or a lat
and a lon
column. If Null, the data passed into
google_map()
will be used.
string specifying the column of data
containing
the encoded polyline
string specifying the column of data
containing the 'latitude'
coordinates. If left NULL, a best-guess will be made
string specifying the column of data
containing the 'longitude'
coordinates. If left NULL, a best-guess will be made
string specifying the column containing an identifier for a shape
string specifying the column containing an identifer for each
path that forms the complete polygon. Not required when using polyline
,
as each polyline is itself a path.
either a string specifying the column of data
containing
the stroke colour of each shape, or a valid hexadecimal numeric HTML style to
be applied to all the shapes
either a string specifying the column of data
containing
the stroke weight of each shape, or a number indicating the width of pixels
in the line to be applied to all the shapes
either a string specifying the column of data
containing
the stroke opacity of each shape, or a value between 0 and 1 that will be
applied to all the shapes
either a string specifying the column of data
containing
the fill colour of each shape, or a valid hexadecimal numeric HTML style to
be applied to all the shapes
either a string specifying the column of data
containing
the fill opacity of each shape, or a value between 0 and 1 that will be applied
to all the shapes
string specifying the column of data to display in an info window when a shape is clicked.
string specifying the column of data to display when the mouse rolls over the shape
string specifying the column of data specifying which groups of shapes to highlight on mouseover
string specifying the column of data
defining if
the polygon is 'draggable'. The column of data should be logical (either TRUE or FALSE)
string specifying the column of data
defining if the polygon
is 'editable' (either TRUE or FALSE)
logical specifying if the map should re-centre according to the shapes
single value specifying an id for the layer. Use this value to
distinguish between shape layers for when using any update_
function, and
for separating legends.
single value specifying where the circles appear in the layering
of the map objects. Layers with a higher z_index
appear on top of those with
a lower z_index
. See details.
integer. Use this parameter to specify how many digits (decimal places) should be used for the latitude / longitude coordinates.
a function, or list of functions, that generates hex colours given a single number as an input. See details.
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.
A list of options for controlling the legend.
time in miliseconds to wait between plotting each shape
logical indicating if the map should re-centre according to this layer
The palette
is used to specify the colours that will map to variables.
You can specify a single function to map to all variables, or a named list
that specifies a separate function to map to each variable. The elements must
be named either fill_colour
or stroke_colour
, and their values
are the colour generating functions. The default is viridisLite::viridis
The legend_options
can be used to control the appearance of the legend.
This should be a named list, where the names are one of
position - one of c("TOP_LEFT", "TOP_CENTER", "TOP_RIGHT", "RIGHT_TOP",
"RIGHT_CENTER", "RIGHT_BOTTOM", "BOTTOM_RIGHT", "BOTTOM_CENTER", "BOTTOM_LEFT",
"LEFT_BOTTOM", "LEFT_CENTER", "LEFT_TOP")
css - a string of valid css
for controlling the appearance of the legend
title - a string to use for the title of the legend
if legend_options
are NULL, the default values will apply
If you are displaying two legends, one for stroke_colour
and one
for fill_colour
, you can specify different options for the different
colour attributes. See examples for add_circles.
z_index
values define the order in which objects appear on the map.
Those with a higher value appear on top of those with a lower value. The default
order of objects is (1 being underneath all other objects)
1. Polygon
2. Rectangle
3. Polyline
4. Circle
Markers are always the top layer
encode_pl
if (FALSE) {
map_key <- 'your_api_key'
## polygon with a hole - Bermuda triangle
## using one row per polygon, and a list-column of encoded polylines
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))
df <- data.frame(id = c(1, 1),
polyline = c(pl_outer, pl_inner),
stringsAsFactors = FALSE)
df <- aggregate(polyline ~ id, data = df, list)
google_map(key = map_key, height = 800) %>%
add_polygons(data = df, polyline = "polyline")
## the same polygon, but using an 'id' to specify the polygon
df <- data.frame(id = c(1,1),
polyline = c(pl_outer, pl_inner),
stringsAsFactors = FALSE)
google_map(key = map_key, height = 800) %>%
add_polygons(data = df, polyline = "polyline", id = "id")
## the same polygon, specified using coordinates, and with a second independent
## polygon
df <- data.frame(myId = c(1,1,1,1,1,1,2,2,2),
lineId = c(1,1,1,2,2,2,1,1,1),
lat = c(26.774, 18.466, 32.321, 28.745, 29.570, 27.339, 22, 23, 22),
lon = c(-80.190, -66.118, -64.757, -70.579, -67.514, -66.668, -50, -49, -51),
colour = c(rep("#00FF0F", 6), rep("#FF00FF", 3)),
stringsAsFactors = FALSE)
google_map(key = map_key) %>%
add_polygons(data = df, lat = 'lat', lon = 'lon', id = 'myId', pathId = 'lineId',
fill_colour = 'colour')
}
Run the code above in your browser using DataLab