各个区县与最近城市的交通距离、驾车耗时、最优路线数据

之前我给大家分享过一份中国各个城市之间的交通距离矩阵数据:中国的各城市间交通距离矩阵——驾车去其他城市的最优路线、最短距离和最小耗时

×

最近有小伙伴询问是否能计算各个区县距离最近地级市的交通距离。借助上面数据的处理方法是可以实现的。理论上我们需要计算各个区县和各个城市间的所有距离,然后比较得到最近的。但是这样很不切实,因为我们需要进行差不多 2900 * 370 = 107.3 万次路线规划。

因此我是先计算各个区县与各个城市(均是质心)之间的大圆距离,比较得到距离每个区县最近的 10 个城市,交通距离最近的城市一定在这 10 个城市之间。

使用高德地图驾车路径规划接口即可对这些区县-城市对进行路径规划,由此便可得到各个区县驾车去附近城市的最优驾车路线、距离和耗时,也就是附件中的 各区县与附近城市的交通距离和驾车路径数据.rds 数据,使用 readr 包中的 read_rds() 函数即可读取,是个 sf 对象:

readr::read_rds("各区县与附近城市的交通距离和驾车路径数据.rds")

#> Simple feature collection with 28770 features and 7 fields (with 53 geometries empty)
#> Geometry type: GEOMETRY
#> Dimension: XY
#> Bounding box: xmin: 74.88143 ymin: 16.83262 xmax: 134.2659 ymax: 52.94428
#> Geodetic CRS: WGS 84
#> # A tibble: 28,770 × 8
#> fromadd dist from toadd to distance duration
#> <chr> <dbl> <chr> <chr> <chr> <dbl> <dbl>
#> 1 安徽省安庆市大观区 42.0 116.912278,30.487… 安徽… 116.… 60.9 1.14
#> 2 安徽省安庆市大观区 48.8 116.912278,30.487… 安徽… 117.… 93.5 1.45
#> 3 安徽省安庆市大观区 75.7 116.912278,30.487… 安徽… 117.… 91.7 2.08
#> 4 安徽省安庆市大观区 129. 116.912278,30.487… 安徽… 118.… 220. 2.96
#> 5 安徽省安庆市大观区 136. 116.912278,30.487… 江西… 117.… 196. 2.66
#> 6 安徽省安庆市大观区 139. 116.912278,30.487… 安徽… 118.… 193. 2.48
#> 7 安徽省安庆市大观区 145. 116.912278,30.487… 安徽… 116.… 215. 3.16
#> 8 安徽省安庆市大观区 148. 116.912278,30.487… 安徽… 117.… 179. 2.30
#> 9 安徽省安庆市大观区 152. 116.912278,30.487… 湖北… 115.… 206. 2.61
#> 10 安徽省安庆市大观区 187. 116.912278,30.487… 安徽… 118.… 277. 3.27
#> # … with 28,760 more rows, and 1 more variable: path <LINESTRING [°]>

其中:

  1. fromadd 是区县名称,是 省、市、区县连接得到的,附件中还有一个文件夹“2021行政区划”,里面是 2021年的各级行政区划,读取之后其中的 省市区县连接就可以得到 fromadd;
  2. toadd 是城市名称,是省和市连接得到的;
  3. dist 是区县和城市质心的大圆距离,单位 km;
  4. from 是区县的质心坐标;
  5. to 是城市的质心坐标;
  6. distace 是驾车最优距离,单位 km;
  7. duration 是沿着最优路线驾车的预估耗时,单位 小时;
  8. path:是驾车的最优路线,sf 对象。

另外考虑到大家可能使用其他 GIS 工具,因此我还提供了 shp 格式的文件,也就是附件中的:lineshp 文件夹。使用 Stata 的 shp2dta 命令也可以把这个文件转换成 dta 文件进行读取。

比较距离得到最近交通距离

通过分区县比较 distance 就可以得到区县和城市的最短驾车距离,也就是附件中的下面三个文件:

  1. 各区县与驾车距离最近城市的交通距离和驾车路径数据.rds
  2. 各区县与驾车距离最近城市的交通距离数据.xlsx
  3. mindist_lineshp 文件夹:shp 文件

比较时间得到最短的交通耗时

通过分区县比较 duration 就可以得到区县和城市的最短驾车耗时,也就是附件中的下面三个文件:

  1. 各区县与驾车时间最短城市的交通距离和驾车路径数据.rds
  2. 各区县与驾车时间最短城市的交通距离数据.xlsx
  3. mintime_lineshp 文件夹:shp 文件

各区县与本市的最短交通距离

通常与各区县距离最近的城市是其所在的城市,因此可以得到各区县与本市的最短交通距离:

  1. 各区县质心到本市质心的驾车距离与驾车路径数据.rds
  2. 各区县质心到本市质心的驾车距离与驾车时间数据.xlsx
  3. self_lineshp 文件夹:shp 文件

如何使用高德地图进行路径规划

关于如何使用高德地图进行路径规划,感兴趣的小伙伴可以学习这个课程:https://rstata.duanshu.com/#/course/e35a78b8555143749245c9de51f9aa48

×

附件中也有本数据的处理代码,感兴趣的小伙伴可以研究研究~

点击这里跳转到 RStata 短书平台获取附件:各个区县与最近城市的交通距离、驾车耗时、最优路线数据

评论