Leaflet is a R package which allows to produce interactive maps (you can find information [here](https://rstudio.github.io/leaflet/)). We can obtain a background map with ```{r} library(leaflet) m <- leaflet() m <- addTiles(m) m ``` It is possible to use the pipe operator of *dplyr* ```{r message=FALSE, warning=FALSE} library(tidyverse) leaflet()%>%addTiles() ``` Many formats of background maps are available (some examples [here](http://leaflet-extras.github.io/leaflet-providers/preview/)). For instance ```{r} Paris <- c(2.35222,48.856614) m2 <- leaflet() %>% setView(lng = Paris[1], lat = Paris[2], zoom = 12) %>% addTiles(urlTemplate = "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png") m2 %>% addProviderTiles("Stamen.Toner") m2 %>% addProviderTiles("Stamen.Toner") m2%>% addProviderTiles("OpenStreetMap.BlackAndWhite") m2%>% addProviderTiles("Thunderforest.Transport") ``` **addMarkers** or **addCircles** can be used to add markers: ```{r} data(quakes) leaflet(data = quakes[1:20,]) %>% addTiles(urlTemplate = "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png") %>% addMarkers(~long, ~lat, popup = ~as.character(mag)) ``` Observe that we have to use the tilda character **~** when we want to use the names of the dataframe to obtain the map. Popups can add informations: ```{r} content <- paste(sep = "
", "Samurai Noodle", "606 5th Ave. S", "Seattle, WA 98138" ) leaflet() %>% addTiles(urlTemplate = "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png") %>% addPopups(-122.327298, 47.597131, content, options = popupOptions(closeButton = FALSE) ) ``` ### Exercise 1 Put a popup which allows to localize **Edhec Business School**. Add on this popup the website of the school. You can obtain longitude and latitude of Edhec at the following [url](https://www.coordonnees-gps.fr) ### Exercise 2: city bike - Paris 1. Import this [dataset](https://opendata.paris.fr/explore/dataset/velib-disponibilite-en-temps-reel/export/) 2. Explain the variables 3. Suppress lines without longitude and latitude. 4. Describe the variable **geo** 5. Create one variable **lon** for the longitude of the station a one variable **lat** for the latitude. 6. Represent the stations on a leaflet background map. 7. Add a popup which indicates the number of available bikes (electric+mecanic) when we click on the station (you can use the **popup** option in the function **addCircleMarkers**). You fist have to define a variable **numBikesAvailable** which corresponds to the sum of **Nombre.de.vélo.mécanique** and **Nombre.vélo.électrique**. 8. Add the name (**Nom.de.la.station**) of the station in the popup. 9. Make points of different sizes in terms of the proportion of available bikes (**= numBikesAvailable/ Nombres.de.bornes.en.station**).