J'ai créé une carte d'altitude à partir d'un objet raster (données d'altitude de worldclim) de mes sites d'étude en Chine, en utilisant le code ggplot (version simplifiée du code). Les objets raster pertinents ont été téléchargés depuis worldclim.org et convertis en data.frame en utilisant le paquetage raster. Voici un link aux données utilisées pour cette intrigue.Tracer des routes à partir d'un objet osmar sur une carte ggplot
# load library
library("tidyverse")
load(file = "gongga.RData")
ggplot() +
geom_raster(data = gongga, aes(x=x, y=y, fill = elev)) +
coord_equal() +
scale_fill_gradient(name = "Elevation", low = "grey0", high = "grey100") +
scale_x_continuous(expand = c(0,0)) +
scale_y_continuous(expand = c(0,0)) +
theme(aspect.ratio=1/1, text = element_text(size=15))
Pour plus de clarté, je voudrais ajouter des routes à la carte. Je suis tombé sur le paquet osmar qui extrait les routes d'Openstreetmap. En utilisant le code de here, j'extrais les routes pour la section droite, mais je ne sais pas comment les tracer à mon ggplot existant.
# EXTRACT ROADS FROM OPENSTREETMAP AND PLOT THEM WITH RANDOM POINTS
# Load libraries
library('osmar')
library('geosphere')
# Define the spatial extend of the OSM data we want to retrieve
moxi.box <- center_bbox(center_lon = 102.025, center_lat = 29.875,
width = 10000, height = 10000)
# Download all osm data inside this area
api <- osmsource_api()
moxi <- get_osm(moxi.box, source = api)
# Find highways
ways <- find(moxi, way(tags(k == "highway")))
ways <- find_down(moxi, way(ways))
ways <- subset(moxi, ids = ways)
# SpatialLinesDataFrame object
hw_lines <- as_sp(ways, "lines")
# Plot points
plot(hw_lines, xlab = "Lon", ylab = "Lat")
box()
L'objet nécessite-t-il une transformation pour le tracer dans ggplot? Ou y at-il une meilleure solution que le paquet osmar pour mon but?
Merci, Richard. Fonctionne parfaitement bien. – Aud