Cartographie intéractive des résultats à Paris lors des élections présidentielles 2017 avec R Leaflet
Shiny App
Le but serait de créer une Shiny App reprenant l’ensemble des cartes que j’ai réalisées durant mon mémoire. Celles-ci seraient présentées par thème, par exemple tous les résultats électoraux sur une même carte intéractive avec la possibilité de sélectionner la couche désirée.
Leaflet
Les cartes seront réalisées dans R grâce à la librairie Leaflet de RStudio.
Pour le moment j’ai un code basique reprenant simplement le fond de carte intéractif que je désirais, le zoom défini sur le lieu désiré et la possibilité de revenir directement au point de départ à savoir Paris intra-muros. J’ai également introduit les shapefile des bureaux de votes lors des élections présidentielles 2017 et trier mes données électorales. Une légende pour pouvoir observer la couche désirée sur le fond de carte souhaité.
library(shiny)
library(rgdal)
library(leaflet)
# Define UI for application
ui <- fluidPage(
# Application title
titlePanel("Cartographie de Paris lors des élections présidentielles 2017 à l'échelle des bureaux de vote."),
ui <- fluidPage(
leafletOutput("mymap"),
p(),
actionButton("recalc", "Paris Intra-muros")
))
# Define server logic required to draw a histogram
server <- function(input, output, session) {
points <- eventReactive(input$recalc, {
cbind(rnorm(40) * 2 + 13, rnorm(40) + 48)
}, ignoreNULL = FALSE)
# Description des points
description <- paste(sep = "<br/>",
"<b>Notre Dame</b>",
"Paris, France",
"<img src='https://fr.wikipedia.org/wiki/Cathédrale_Notre-Dame_de_Paris#/media/Fichier:Notre_Dame_de_Paris_2013-07-24.jpg' height='40' width='50'>",
"<a href=https://www.notredamedeparis.fr/>Voir le site </a>")
output$mymap <- renderLeaflet({
# Lat Long de Paris et zoom sur paris intra-muros
leaflet() %>% setView( 2.3488,48.8580, zoom = 12) %>%
# Base groups
addTiles(group = "OSM (default)") %>%
addProviderTiles(providers$CartoDB.Positron,
options = providerTileOptions(noWrap = TRUE)
) %>%
# Zoom and point
addMarkers(lng = 2.349902, lat = 48.852966, popup = description) %>%
addMarkers(data = points()) %>%
# Overlay groups
addPolygons(data=secteurs,opacity = 20,weight=1.2,col = 'grey', group = "Bureaux de vote 2017") %>%
addPolygons(data=Fillon,opacity = 20,weight=1.2,col = 'white', group = "Fillon") %>%
addLayersControl(
baseGroups = c("OSM", "Positron"),
overlayGroups = c("Bureaux de vote 2017", "Fillon"),
options = layersControlOptions(collapsed = FALSE)
)
})
}
# Run the application
shinyApp(ui = ui, server = server)