You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中计算两点间的公交行驶距离?

在R中计算公交行驶距离的可行方案

方案1:使用openrouteservice包

这个包支持公共交通路线规划,需要先注册获取免费API密钥(官网注册即可,免费额度足够日常使用)。步骤如下:

  • 安装并加载包:
install.packages("openrouteservice")
library(openrouteservice)
  • 设置API密钥(替换成你自己的):
ors_api_key("你的API密钥")
  • 计算公交路线及距离:
# 起点和终点经纬度(格式:lon, lat)
src <- c(13.412, 52.502)
dst <- c(13.454, 52.592)

# 查询公交路线
bus_route <- ors_directions(
  start = src,
  end = dst,
  profile = "public_transport"
)

# 提取行驶距离(单位:米,转公里除以1000)
bus_distance_km <- bus_route$features[[1]]$properties$summary$distance / 1000
print(bus_distance_km)

方案2:利用GTFS数据 + tidytransit包

如果针对特定城市,可下载该城市的GTFS公共交通数据(很多城市交通部门会公开),用tidytransit包分析路线:

  • 安装加载包:
install.packages(c("tidytransit", "sf"))
library(tidytransit)
library(sf)
  • 读取GTFS数据(替换成你下载的GTFS文件路径):
gtfs <- read_gtfs("your_city_gtfs.zip")
  • 查找公交路线并计算距离(示例,需根据实际数据调整):
# 转换站点数据为空间格式
gtfs <- gtfs %>% gtfs_as_sf()

# 匹配经纬度到最近的公交站点
start_point <- st_sfc(st_point(src), crs = 4326)
end_point <- st_sfc(st_point(dst), crs = 4326)
start_stop_idx <- st_nearest_feature(start_point, gtfs$stops)
end_stop_idx <- st_nearest_feature(end_point, gtfs$stops)

# 假设找到连接两站点的线路ID,提取对应线路的shape数据计算距离
target_route <- filter(gtfs$routes, route_id == "目标线路ID")
route_shape <- filter(gtfs$shapes, shape_id == target_route$shape_id[1])
total_distance <- st_length(st_combine(route_shape$geometry))
# 转换为公里单位
distance_km <- units::set_units(total_distance, "km")
print(distance_km)

方案3:使用googleway包调用谷歌地图API

如果可以使用谷歌地图API,googleway包支持公交路线查询,需要API密钥:

  • 安装加载包:
install.packages("googleway")
library(googleway)
  • 设置API密钥:
set_key("你的谷歌地图API密钥")
  • 查询公交路线:
# 注意谷歌地图API使用lat, lon格式
bus_route <- google_directions(
  origin = c(52.502, 13.412),
  destination = c(52.592, 13.454),
  mode = "transit"
)

# 提取距离(转公里)
bus_distance_km <- bus_route$routes$legs[[1]]$distance$value / 1000
print(bus_distance_km)

注意:

  • openrouteservice和谷歌API都需要API密钥,免费额度足够小批量查询;
  • GTFS数据方案适合本地化分析,无需联网,但需对应城市的GTFS文件,数据处理相对复杂。

内容的提问来源于stack exchange,提问作者stats_noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:03:36