renderTmap | R Documentation |
tmapOutput()
creates a UI element
renderTmap()
renders a tmap map
tmapProxy()
updates a tmap map in view
mode
Adding layers is as usual via the map layer functions like tm_polygons()
.
Removing layers can be done, removing with tm_remove_layer()
.
renderTmap(
expr,
env = parent.frame(),
quoted = FALSE,
execOnResize = TRUE,
mode = NA
)
tmapOutput(outputId, width = "100%", height = 400, mode = NA)
tmapProxy(mapId, session = shiny::getDefaultReactiveDomain(), x, mode = NA)
tm_remove_layer(zindex)
expr |
A tmap object. A tmap object is created with |
env |
The environment in which to evaluate expr |
quoted |
Is |
execOnResize |
If |
mode |
tmap mode, see |
outputId |
Output variable to read from |
width , height |
the width and height of the map |
mapId |
single-element character vector indicating the output ID of the map to modify (if invoked from a Shiny module, the namespace will be added automatically) |
session |
the Shiny session object to which the map belongs; usually the default value will suffice |
x |
the tmap object that specifies the added and removed layers. |
zindex |
the z index of the pane in which the layer is contained that is going to be removed. It is recommended to specify the |
Two features from tmap are not (yet) supported in Shiny: small multiples (facets) and colored backgrounds (argument bg.color
of tm_layout()
).
Workarounds for small multiples: create multiple independent maps or specify as.layers = TRUE
in tm_facets()
.
if (interactive() && require("shiny")) {
data(World)
world_vars <- setdiff(names(World), c("iso_a3", "name", "sovereignt", "geometry"))
current.mode <- tmap_mode("plot")
shinyApp(
ui = fluidPage(
tmapOutput("map", height = "600px"),
selectInput("var", "Variable", world_vars)
),
server <- function(input, output, session) {
output$map <- renderTmap({
tm_shape(World) +
tm_polygons(input$var, zindex = 401)
})
}
)
tmap_mode("view")
shinyApp(
ui = fluidPage(
tmapOutput("map", height = "600px"),
selectInput("var", "Variable", world_vars)
),
server <- function(input, output, session) {
output$map <- renderTmap({
tm_shape(World, id = "iso_a3") +
tm_polygons(fill = world_vars[1], zindex = 401)
})
observe({
var <- input$var
tmapProxy("map", session, {
tm_remove_layer(401) +
tm_shape(World, id = "iso_a3") +
tm_polygons(fill = var, zindex = 401)
})
})
},options = list(launch.browser=TRUE)
)
tmap_mode(current.mode)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.