vignettes/articles/mapview_02-advanced.Rmd
mapview_02-advanced.Rmd
Despite the possibility to quickly plot spatial data,
mapview
has a set of arguments for finer control of the
visualization. Depending on the object class, these are:
All types
map
- the leaflet or
mapview map to use -> default NULLcol.regions
- the color palette for colouring raster,
polygon and point areas (points are essentially circles) -> default
hcl.colors
with palette "Inferno"
for raster
data and palette "viridis"
for vector dataat
- breakpoints used for the colouring -> default
NULL meaning they are calculated automatically for the range of
datana.color
- the color for NA values -> default
#BEBEBE80
map.types
- the types of the background maps ->
default
CartoDB.Positron, CartoDB.DarkMatter, OpenStreetMap, Esri.WorldImagery, OpenTopoMap
see here
for available map typesalpha.regions
- the opacity of raster, polygon and
point fills -> default 0.8
for raster, 0.6
for polygons and 0.9
for pointslegend
- whether to add a legend to the plot ->
default FALSE
legend.opacity
- opacity of the legend -> default
1
verbose
- whether to print additional information to
the console during the rendering -> default FALSE
layer.name
- the layer name to be used for plotting
-> default depends on call. For a single object the name of the
object; if zcol
is supplied a combination of object name
and column name; for raster stack/bricks the layer namesaddRasterImage
or adCircleMarkers
raster only
maxpixels
- the maximum number of pixels to plot ->
default 500k. This is used so rendering doesn’t take forever. This can
also be set with mapviewOptions()
use.layer.names
- whether to use the layer names of
raster objects -> default FALSE
trim
- should rasters be trimmed off NA values around
the edges -> default TRUE
vector only
zcol
- attribute name(s) or column number(s) in
attribute table of the column(s) to be rendered -> default
NULL
burst
- whether to show all (TRUE) or only one (FALSE)
layer(s) -> default FALSE
color
- color (palette) for lines -> default
hcl.colors(n, palette = "viridis")
alpha
- opacity of the lines -> default
0.9
cex
- circle size for point data -> default
6
. This can also be used to map circle size to an attribute
from the object’s attribute table by supplying either column name or
numberlwd
- line width -> default 2
for lines
and points, 1
for polygonslabel
- a character vector of labels to be shown on
mouseover -> default feature IDs, if zcol
is set the
values of zcol
popup
- the popup function to use for the popups ->
default popupTable()
. See chapter on popups for further
optionsHere’s a few examples of how selected arguments can be used:
Similar to the good old spplot
, arguments
col.regions
and at
can be used for finer
control of the colouring
library(mapview)
library(raster)
pal = mapviewPalette("mapviewTopoColors")
kili_data <- system.file("extdata", "kiliNDVI.tif", package = "mapview")
kiliNDVI <- stack(kili_data)
mapview(kiliNDVI[[1]], col.regions = pal(100), at = seq(-0.2, 1, 0.2), legend = TRUE)
burst
can be used to plot all layers of an object
mapview(breweries, burst = TRUE)
Note how all layers are shown by default. There is a hidden argument
hide
which can be used to hide all layers but the
first.
mapview(breweries, burst = TRUE, hide = TRUE)
When burst
used together with zcol
, it will
produce one layer for all unique values of zcol
.
library(poorman)
library(sf)
breweries %>%
st_intersection(franconia) %>%
mapview(zcol = "district", burst = TRUE)
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
Note that for a column with many values there will likely not be enough space for the layers control - we are working on a solution for this issue.
For point data the circle size can be mapped to one of the attributes (features with NA values will be shown as dots)
mapview(breweries, cex = "number.of.types")
Opacity of lines and fills (regions) can be adjusted using arguments
alpha
and alpha.regions
mapview(breweries, alpha = 0)
mapview(franconia, alpha.regions = 0.2, aplha = 1)
In addition to easily style maps, mapview also makes
it easy to add multiple layers to a (possibly laready existing) map.
This can be done either by using +
or by supplying a list
of objects (or both).
library(plainview)
# mapview w list of objects
mapview(list(breweries, franconia),
zcol = list(NULL, "district"),
legend = list(TRUE, FALSE),
homebutton = list(FALSE, TRUE)) + poppendorf[[5]]
See chapter 3. mapview options
for instructions on how
to set some of these styling parameters permanently.