plet.RdPlot a SpatRaster(Collection) or SpatVector(s) to make an interactive leaflet map that is displayed in your browser.
The arguments of plet are similar to those of plot, making it easier to use leaflet (if you also use plot).
# S4 method for class 'SpatRaster'
plet(x, y=1, col, alpha=0.8, main=names(x),
tiles=c("Streets", "Esri.WorldImagery", "OpenTopoMap"),
wrap=TRUE, maxcell=500000, stretch=NULL, legend="bottomright",
shared=FALSE, panel=FALSE, collapse=TRUE, type=NULL, breaks=NULL,
breakby="eqint", range=NULL, fill_range=FALSE, map=NULL, ...)
# S4 method for class 'SpatRasterCollection'
plet(x, col, alpha=0.8, main=names(x),
tiles=c("Streets", "Esri.WorldImagery", "OpenTopoMap"),
wrap=TRUE, maxcell=500000, stretch=NULL, legend="bottomright", type=NULL,
breaks=NULL, breakby="eqint", range=NULL, fill_range=FALSE, map=NULL, ...)
# S4 method for class 'SpatVector'
plet(x, y="", col, fill=0.2, main=y, cex=1, lwd=2,
border="black", alpha=1, popup=TRUE, label=FALSE, split=FALSE,
tiles=c("Streets", "Esri.WorldImagery", "OpenTopoMap"),
wrap=TRUE, legend="bottomright", collapse=FALSE, type=NULL, breaks=NULL,
breakby="eqint", sort=TRUE, reverse=FALSE, map=NULL, ...)
# S4 method for class 'SpatVectorCollection'
plet(x, y="", col, fill=0.2, main=y, cex=1, lwd=2,
border="black", alpha=1, popup=TRUE, label=FALSE,
tiles=c("Streets", "Esri.WorldImagery", "OpenTopoMap"),
wrap=TRUE, legend="bottomright", collapse=FALSE, type=NULL, breaks=NULL,
breakby="eqint", sort=TRUE, reverse=FALSE, map=NULL, ...)
# S4 method for class 'leaflet'
lines(x, y, col, lwd=2, alpha=1, ...)
# S4 method for class 'leaflet'
points(x, y, col, cex=1, alpha=1, label=1:nrow(y), popup=FALSE, ...)
# S4 method for class 'leaflet'
polys(x, y, col, fill=0.2, lwd=2, border="black", alpha=1, popup=TRUE, label=FALSE, ...)SpatRaster, SpatVector, or leaflet object
missing, or positive integer, or character (variable or layer name) indicating the layer(s) to be plotted. If x is a SpatRaster, you can select multiple layers
character. Vector of colors or a color generating function. If x is a SpatVectorCollection, you can provide a list with colors and/or functions, with one list element for each SpatVector
Number between 0 and 1 to set the transparency for lines (0 is transparent, 1 is opaque)
Number between 0 and 1 to set the transparency for polygon areas (0 is transparent, 1 is opaque)
character or NULL. Names of background tile providers
logical. if TRUE, tiles wrap around
positive integer. Maximum number of cells to use for the plot
NULL or character ("lin" or "hist") to stretch RGB rasters. See plotRGB
character to indicate the legend position ("bottomleft", "bottomright", "topleft" or "topright") or NULL to suppress the legend
character. Title for the legend. The length should be 1 if x is a SpatVector and length nlyr(x) if x is a SpatVector
logical. Should the legend be the same for all rasters (if multiple layers of SpatRaster x are mapped)
leaflet object
additional arguments for drawing points, lines, or polygons passed on the the relevant leaflet function
character. Color for the polygon borders
logical. Should the layers "control" panel be collapsed?
logical. If TRUE a check-box is created to toggle each value in y (If x is a SpatVector)
numeric. point size magnifier. See par
numeric, line-width. See par
logical. Should pop-ups be created?
logical. Should mouse-over labels be added?
logical. Should SpatRaster layers be shown as a panel"
character. Type of map/legend. One of "classes", or "interval". If not specified, the type is chosen based on the data. Use "" to suppress the legend
numeric. Either a single number to indicate the number of breaks desired, or the actual breaks. When providing this argument, the default legend becomes "interval"
character or function. Either "eqint" for equal interval breaks, "cases" for equal quantile breaks. If a function is supplied it should take a single argument (a vector of values) and create groups
logical. If TRUE legends with character values are sorted. You can also supply a vector of the unique values, in the order in which you want them to appear in the legend
numeric. minimum and maximum values to be used for the continuous legend. You can use NA for one of these to only set the minimum or maximum value
logical. If TRUE, values outside of range get the colors of the extreme values; otherwise they get colored as NA
logical. If TRUE, the legends order is reversed
if (FALSE) { # \dontrun{
if (require(leaflet) && (packageVersion("leaflet") > "2.1.1")) {
v <- vect(system.file("ex/lux.shp", package="terra"))
p <- spatSample(as.polygons(v, ext=T), 30)
values(p) = data.frame(id=11:40, name=letters[1:30])
m <- plet(v, "NAME_1", tiles="", border="blue")
m <- points(m, p, col="red", cex=2, popup=T)
lines(m, v, lwd=1, col="white")
plet(v, "NAME_1", split=TRUE, alpha=.2) |>
points(p, col="gray", cex=2, popup=TRUE,
clusterOptions = leaflet::markerClusterOptions())
s <- svc(v, p)
names(s) <- c("the polys", "set of points")
plet(s, col=c("red", "blue"), lwd=1)
r <- rast(system.file("ex/elev.tif", package="terra"))
plet(r, main="Hi\nthere", tiles=NULL) |> lines(v, lwd=1)
plet(r, tiles="OpenTopoMap") |> lines(v, lwd=2, col="blue")
x <- c(r, 50*classify(r, 5))
names(x) <- c("first", "second")
# each their own legend
plet(x, 1:2, collapse=FALSE) |> lines(v, lwd=2, col="blue")
# shared legend
plet(x, 1:2, shared=TRUE, collapse=FALSE) |> lines(v, lwd=2, col="blue")
}} # }