画一幅我农所在地的道路图

效果展示

上图即为最终效果

一些必备的工具

一张json格式的我农地图,或者杨陵地图,可从我的github仓库下载

1
download.file("https://raw.githubusercontent.com/QGQ931001/git-tutorial/master/yangling_map/yangling.json", destfile = "~/文档/yangling.json" )

绘制路网地图

导入以下R 包:

1
2
3
4
library(osmdata)
library(dodgr)
library(tidyverse)
library(sf)

读入杨陵区的数据:

1
2
yl <- read_sf("~/文档/yangling.json") %>%
st_make_valid()

获取杨陵区的经纬度范围:

1
2
3
4
5
st_bbox(yl) %>%
matrix(nrow = 2,
dimnames = list(c("x", "y"),
c("min", "max"))) -> ebox
ebox
1
2
3
#>         min       max
#> x 107.94598 108.13869
#> y 34.22145 34.33377

提取杨陵区的街道路线:

1
sraw <- dodgr_streetnet(ebox)

把数据保存为rds:

1
2
sraw %>%
write_rds('sraw.rds')

提取eboxyl相交的区域:

1
2
3
streets <- sraw %>%
st_make_valid() %>%
st_intersection(yl)

然后绘图:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ggplot() +
geom_sf(data = streets, show.legend = F, size = 0.2 ,color = "#DDE080" ) +
theme_ipsum(base_family = "Times New Roman") +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
plot.background = element_rect(fill = "#140035",
color = "#140035"),
panel.background = element_rect(fill = "#140035",
color = "#140035")) +
labs(y = "")
Thanks for sponsoring. 谢谢老板! 老板大气!身体健康!

欢迎关注我的其它发布渠道