Je suis tout nouveau sur ce forum et c'est là mon premier message. Dans le cadre de mon travail, j'ai besoin de réaliser sous R une carte de la France métropolitaine et d'y positionner les communes que je souhaite représenter par un point rouge.
Je précise que je mes compétences en R sont assez basiques et que je suis totalement débutant en cartographie. J'espère donc que vous saurez faire preuve d'indulgence si je raconte des bêtises ou si des concepts qui vous semblent familiers et évidents m'échappent totalement. Mais je vous promets de faire des efforts pour essayer de vous suivre ! :)
Voici mon problème :
- J'ai récupéré une carte de France sur le site GADM, niveau départements, constituée de 5 fichiers (gadm36_FRA_2.cpg, gadm36_FRA_2.dbf, gadm36_FRA_2.prj, gadm36_FRA_2.shp et gadm36_FRA_2.shx).
- J'ai par ailleurs un fichier CSV contenant les codes INSEE des communes françaises qui m'intéressent avec leurs latitudes et longitudes. Dans ce fichier pour exemple, les latitudes et longitudes de Calais sont respectivement 50.95020728 et 1.875755661, celles de Cherbourg sont 49.63341216 et -1.633901602.
Lorsque j'affiche ma carte avec les communes, ces dernières n'y sont pas positionnées correctement : elles sont décalées vers le bas. Je suppose donc que la carte que j'ai téléchargée et les données de mon fichier CSV n'utilisent pas le même référentiel, mais j'ai beau chercher, je ne n'en sors pas. Je souhaiterais pouvoir joindre les fichiers que j'utilise pour vous faciliter la tâche si vous souhaitez m'aider, mais je ne trouve pas comment les joindre à mon message malheureusement.
En attendant, voici le code R que j'ai créé :
Code : Tout sélectionner
library(sf)
library(dplyr)
library(readr)
library(tidyverse)
# Déclaration de l'opérateur "not in".
'%!in%' <- Negate('%in%')
# Carte de France sans la Corse (source : gadm.org, WGS84), niveau "départements".
sf_france <- st_read(
dsn = "data",
layer = "gadm36_FRA_2") %>%
filter(CC_2 %!in% c("2A", "2B")) %>%
select(CC_2)
# Codes communes avec latitudes et longitudes en degrés décimaux.
# Communes retenues : Calais, Cherbourg, Paris, Saint-Martin-de-Ré, Niort, Nice et Marseille.
df_communes <- read_delim("./data/codes_communes_small.csv", delim = ";", col_names = TRUE, col_types = "cdd")
# Affichage de la carte.
sf_france %>%
ggplot() +
geom_sf(aes(fill = CC_2), show.legend = FALSE, fill = "white") +
geom_text(data = df_communes,
aes(x = longitude, y = latitude, label = "."), colour = "red")
Pouvez-vous me dire pourquoi les communes sont décalées vers le bas sur ma carte et comment y remédier ?
Un grand merci d'avance si vous pouvez m'aider ! :)
Bonne fin de journée.
Sylvain