As introduced in chapter [Making Maps], an interactive Map is the fundamental building block of ArcGIS. In R, we need to do some extra work to create such an interactive map, but this extra work sometimes means just one line of code. There are multiple packages that simplify creating maps:
mapview
and tmap
both build on the package leaflet
, which in turn builds on leaflet, an open source JavaScript Library for interactive maps. There really is not much need to learn leaflet
, since using mapview
or tmap
is much simpler.
The package plotly
builds on plotly, a very versatile graphics library that provides an API for R
, Python
and Julia
. It is an amazing tool, but we will focus more on mapview
and tmap
.
mapview
The package mapview
is highly automated and you get a very decent map when calling the function mapview::mapview
on your geodata, without any additional arguments. The aim of the package is to be quick and easy, as emphasized in the documentation:
It’s main goal is to fill the gap of quick [...] interactive plotting to examine and visually investigate both aspects of spatial data, the geometries and their attributes.
library(arc2r) library(sf) library(raster) library(mapview)
This next line of code generates a representation of your data (in this case, gemeindegrenzen_zh
), much like the default map in ArcGIS.
# Just to be sure, let's specify the CRS of the dataset. You will learn about # this later. st_crs(gemeindegrenzen_zh) <- 2056 mapview(gemeindegrenzen_zh)
If the emphasis lies on creating a highly customized map, then tmap
may be more appropriate.
tmap
Like mentioned in the previous chapter, the package tmap
facilitates creating highly customized maps. But the greatest strength in tmap
comes from it's versatility: All you need to do is specify how you want your data to be displayed, and tmap
can render this into an interactive map of a static one that you can print. All you need to do is change the mode
within the function tmap_mode()
to view
.
library(tmap) tmap_mode("view")
As shown in chapter \@ref(static-maps-tmap), the tmap
syntax very similar to ggplot2
s, in the sense that connect "layers" using a +
sign.
tm_shape(gemeindegrenzen_zh) + tm_polygons()
This interactive map is very similar to the one generated by mapview
, which is not surprising since they are both built on top of leaflet
.
For more information on tmap
, check out the package's gihub site: https://github.com/mtennekes/tmap
For more information on interactive maps in general, head over to the great book "Geocomputation with R": https://geocompr.robinlovelace.net/adv-map.html#interactive-maps
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.