Skip to contents

Modes

tmap facilitates two output modes:

  • "plot", which produces static maps, and
  • "view" which produces (using the same tmap code) interactive maps (using the JavaScript library Leaflet as backend).

Via the extension package, tmap.mapgl, two interactive new modes are available, "mapbox" and "maplibre", as demonstrated below.

The default mode is "plot":

## current mode
tmap_mode()
#>  tmap modes "plot" - "view"
#>  toggle with `tmap::ttm()`

Switching between modes

## to view mode
tmap_mode("view")
#>  tmap modes "plot" - "view"

## back to plot mode
tmap_mode("plot")
#>  tmap modes "plot" - "view"

The handy function ttm() is used to toggle between the modes:

## to view mode
ttm()
#>  tmap modes "plot" - "view"

## back to plot mode
ttm()
#>  tmap modes "plot" - "view"

When more than two modes are loaded, rtm() can be used to rotate between modes (see [below(https://r-tmap.github.io/tmap/articles/basics_modes#modes-mapbox-and-maplibre-)]).

Mode "plot"

We start with creating the plot and assign it to a variable called tm.

tm = tm_shape(World, crs = 8857) +
  tm_polygons(
    fill = "press",
    fill.scale = tm_scale_intervals(values = "pu_gn")) +
tm_shape(metro) +
  tm_bubbles(
    size = "pop2020",
    fill = "gold",
    size.scale = tm_scale_continuous(values.scale = 0.8, n = 8))

We are in "plot" mode. Now we can plot the map by printing the tm object:

tm

Mode "view"

The same map in view mode:

ttm()
#>  tmap modes "plot" - "view"
tm
#> <====================  lty ===============>
#> [1] "solid"
#> <====================  lwd ===============>
#> [1] 0.75
#> </============================================>
#> <====================  lty ===============>
#> [1] "solid"
#> <====================  lwd ===============>
#> [1] 0.75
#> </============================================>
#> <====================  lty ===============>
#>   [1] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [10] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [19] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [28] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [37] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [46] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [55] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [64] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [73] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [82] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [91] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [100] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [109] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [118] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [127] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [136] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [145] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [154] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [163] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [172] "solid" "solid" "solid" "solid" "solid" "solid"
#> <====================  lwd ===============>
#>   [1] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [16] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [31] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [46] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [61] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [76] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [91] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [106] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [121] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [136] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [151] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [166] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> </============================================>
#> <====================  lty ===============>
#>   [1] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [10] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [19] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [28] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [37] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [46] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [55] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [64] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [73] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [82] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [91] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [100] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [109] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [118] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [127] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [136] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [145] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [154] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [163] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [172] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [181] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [190] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [199] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [208] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [217] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [226] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [235] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [244] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [253] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [262] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [271] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [280] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [289] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [298] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [307] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [316] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [325] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [334] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [343] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [352] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [361] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [370] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [379] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [388] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [397] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [406] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [415] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [424] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [433] "solid" "solid" "solid" "solid"
#> <====================  lwd ===============>
#>   [1] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [16] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [31] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [46] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [61] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [76] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [91] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [106] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [121] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [136] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [151] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [166] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [181] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [196] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [211] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [226] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [241] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [256] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [271] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [286] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [301] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [316] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [331] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [346] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [361] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [376] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [391] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [406] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [421] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [436] 0.75
#> </============================================>

Note that there is a big difference: in "view" mode there are basemaps, and in "plot" mode none. This is caused by different default options.

Basemaps can be enabled or disabled via tm_basemap():

tm + tm_basemap(NULL)
#> <====================  lty ===============>
#> [1] "solid"
#> <====================  lwd ===============>
#> [1] 0.75
#> </============================================>
#> <====================  lty ===============>
#> [1] "solid"
#> <====================  lwd ===============>
#> [1] 0.75
#> </============================================>
#> <====================  lty ===============>
#>   [1] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [10] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [19] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [28] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [37] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [46] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [55] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [64] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [73] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [82] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [91] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [100] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [109] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [118] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [127] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [136] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [145] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [154] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [163] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [172] "solid" "solid" "solid" "solid" "solid" "solid"
#> <====================  lwd ===============>
#>   [1] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [16] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [31] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [46] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [61] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [76] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [91] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [106] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [121] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [136] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [151] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [166] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> </============================================>
#> [view mode] WebGL does not work (yet) with projected map projections, so it has
#> been disabled.
#> This message is displayed once per session.
#> <====================  lty ===============>
#>   [1] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [10] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [19] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [28] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [37] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [46] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [55] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [64] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [73] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [82] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#>  [91] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [100] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [109] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [118] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [127] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [136] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [145] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [154] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [163] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [172] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [181] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [190] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [199] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [208] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [217] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [226] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [235] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [244] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [253] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [262] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [271] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [280] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [289] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [298] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [307] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [316] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [325] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [334] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [343] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [352] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [361] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [370] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [379] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [388] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [397] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [406] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [415] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [424] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [433] "solid" "solid" "solid" "solid"
#> <====================  lwd ===============>
#>   [1] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [16] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [31] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [46] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [61] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [76] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#>  [91] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [106] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [121] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [136] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [151] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [166] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [181] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [196] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [211] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [226] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [241] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [256] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [271] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [286] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [301] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [316] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [331] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [346] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [361] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [376] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [391] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [406] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [421] 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75
#> [436] 0.75
#> </============================================>

See vignette about basemaps.

Mode specific options

Mode specific layout options can be set via tm_plot() and tm_view(). The number of options in tm_plot() is limited to just two, because it uses all general purpose options. In contrast, tm_view() contains more options, e.g. the position of the control box and the default zoom level:

tm +
    tm_view(control.position = c("left", "bottom"),
            set_view = 2)

For a more detailed description of the available options, see the vignette about options.

New modes

The new package tmap.mapgl offers two new modes, "mapbox" and "maplibre":

Rotate bewteen modes

When more than two modes are loaded (now four), rtm() can be used to rotate between modes:

rtm()
#>  tmap modes "plot" -> "view" -> "mapbox" -> "maplibre"
#>  rotate with `tmap::rtm()`switch to "view" with `tmap::ttm()`
rtm()
#>  tmap modes "plot" -> "view" ->
#> "mapbox" -> "maplibre"

This (and ttm()) is especially useful in interactive sessinos. For scripts, it is recommend to use tmap_mode() explicitly.

Modes "mapbox" and "maplibre".

For the mode "mapbox" an API key is required, which is free for personal use. The mode maplibre is a fork of mapbox before it sent from open to closed source. No API key is required for maplibre.

These modes are not as feature rich (yet) as the "view" mode, but they do offer a lot of new features: globe view and 3d polygons. This is possible because of the support of WebGL, a fast rendering technique. Therefore, these modes, and especially maplibre for its open open source, are considered the way forward in web mapping.

tmap_mode("maplibre")
#>  tmap modes "plot" -> "view" ->
#> "mapbox" -> "maplibre"
tm