library(tidyverse)
library(osmdata)
library(ggmap)Overview
OpenStreetMap data map for Valencia schools and underground stations.
Resources: https://rspatialdata.github.io/osm.html
Let’s check available features, there are 263 features.
available_features()Defining the bounding box
?getbb
valencia_bb <- getbb("valencia")Valencia Underground
available_tags("location")valencia <-valencia_bb%>%
opq() %>%
add_osm_feature(key = "location",value="underground") %>%
osmdata_sf()
valencia$osm_points%>%headvalencia_map<- ggmap::get_map(location = "Valencia",
maptype = "stamen_terrain",
zoom=13)ggmap(valencia_map) +
geom_sf(
data = valencia$osm_polygons,
inherit.aes = FALSE,
colour = "#cc161d",
fill = "#be2d42",
size = 2
) +
geom_sf(
data = valencia$osm_points,
inherit.aes = FALSE,
colour = "#cc161d",
fill = "#be2d42",
size = 0.2
) +
labs(x = "", y = "")Vlencia Schools
osmdata::available_tags("amenity")valencia_schools <-
valencia_bb%>%
opq() %>%
add_osm_feature(key="amenity",value="school")%>%
osmdata_sf()valencia_map2<- ggmap::get_map(location = "Valencia",
maptype = "stamen_terrain_lines",
zoom=13)ggmap(valencia_map2) +
geom_sf(
data = valencia$osm_polygons,
inherit.aes = FALSE,
colour = "#cc161d",
fill = "#be2d42",
size = 2
) +
geom_sf(
data = valencia$osm_points,
inherit.aes = FALSE,
colour = "#cc161d",
size = 0.2
) +
geom_sf(
data = valencia_schools$osm_polygons,
inherit.aes = FALSE,
fill = "#40E0D0",color="#A0522D",
size = 0.2
) +
labs(title="València")+
ggthemes::theme_map(base_size = 14,base_family = "Gill Sans")valencia_streets <- valencia_bb %>%
opq() %>%
add_osm_feature("highway", c("motorway", "primary", "secondary", "tertiary")) %>%
osmdata_sf()
# retrieving data of small streets in Lagos
valencia_small_streets <- valencia_bb %>%
opq() %>%
add_osm_feature(key = "highway", value = c("residential", "living_street", "unclassified", "service", "footway")) %>%
osmdata_sf()
# retrieving data of rivers in Lagos
valencia_rivers <- valencia_bb %>%
opq() %>%
add_osm_feature(key = "waterway", value = "river") %>%
osmdata_sf()ggmap(valencia_map2)+
geom_sf(data = valencia_streets$osm_lines,
inherit.aes = FALSE,
color = "#ffbe7f", linewidth = .2, alpha = .8) +
geom_sf(data = valencia_small_streets$osm_lines,
inherit.aes = FALSE,
color = "#a6a6a6", linewidth = .01, alpha = .8) +
geom_sf(data = valencia_rivers$osm_lines,
inherit.aes = FALSE,
color = "#7fc0ff", size = .8, alpha = .5)+
geom_sf(
data = valencia$osm_polygons,
inherit.aes = FALSE,
colour = "#cc161d",
fill = "#be2d42",
size = 2
) +
geom_sf(
data = valencia$osm_points,
inherit.aes = FALSE,
aes(colour = "#cc161d"),
size = 0.2
) +
geom_sf(
data = valencia_schools$osm_polygons,
inherit.aes = FALSE,
aes(fill = "#40E0D0",color="#A0522D"),
size = 0.2,key_glyph = draw_key_pointrange
) +
geom_sf(
data = valencia_schools$osm_polygons,
inherit.aes = FALSE,
color="#A0522D",fill=NA,
size = 0.2,
) +
scale_color_manual(values=c("#40E0D0","#cc161d"),labels=c("Schools","Underground"))+
scale_fill_manual(values=c("#40E0D0"))+
guides(fill="none",
color=guide_legend(title.position ="left"))+
coord_sf(clip="off")+
labs(title="València, ES",
subtitle="#30DayMapChallenge2023 Day 15 - OpenStreetMap",
caption="DataSource: {osmdata} | Map: @fgazzelloni",
color="")+
ggthemes::theme_map(base_size = 14,base_family = "Gill Sans")+
theme(plot.title = element_text(hjust = 0.5,size=20),
plot.subtitle = element_text(size=10,hjust = 0.5),
plot.title.position = "plot",
legend.box.background = element_blank(),
#legend.background = element_blank(),
legend.position = c(0.8,0.05))+
ggspatial::annotation_scale(hjust=1)ggsave("day15_openstreetmap.png",
scale = 0.5,
limitsize=F,
bg="#f0f0f0")