谷歌地图未考虑交通状况对旅行时间的影响(方向搜索)

3
使用googleway包中的google_directions函数时,它不会显示根据Google地图浏览器搜索的旅行时间。
似乎它没有考虑交通信息。
在纽约繁忙的街道上举个例子。
a <- google_directions(origin = c(40.862804, -73.934743),
              destination = "212 5th Ave, New York, NY 10010, USA",
              mode = "driving",
              units = "metric",
              simplify = TRUE,
              key = MY_API)

当前时间的响应:
b <- direction_steps(a)
total_time <- sum(b$duration$value)/60  # minutes
total_time                              # minutes
#[1] 26.1166

然而,谷歌地图浏览器显示相同搜索时间为35分钟。我检查了路线,它是一样的。

enter image description here

使用mapsapi包发生了同样的事情:

c <- mp_directions(origin = c(-73.934743,40.862804),
               destination = "212 5th Ave, New York, NY 10010, USA",
                 mode = "driving",
                 key = MY_API)
total_time1 <- sum(mp_get_segments(c)$duration_s)/60 # minutes
total_time1                                          # minutes
# [1] 26.11667

有人知道如何将交通信息整合到这些功能中吗?或者我应该得出结论,谷歌并不提供这种级别的信息?


好问题。我立刻看不出它们在文档中为什么会不同。链接 - SymbolixAU
1个回答

2
googlewaygoogle_directions文档涵盖了这个问题。要获取实时数据,你需要以下内容:
  • departure_time,可以使用"now"表示当前时间,也可以使用POSIXct日期时间指定未来的某个时间。
  • traffic_model:Google猜测应该是best_guessoptimisticpessimistic中的哪一个。

你在代码中要求历史旅行时间,而Google Maps使用实时旅行时间(可能是best_guess估计)。

Google文档说明

best_guess(默认)表示返回的duration_in_traffic应该是根据已知的历史交通情况和实时交通情况得出的最佳旅行时间估计。离现在越近,实时交通就越重要。

请尝试使用以下方法:

a <- google_directions(
    origin = c(40.862804, -73.934743),
    destination = "212 5th Ave, New York, NY 10010, USA",
    mode = "driving",
    units = "metric",
    simplify = TRUE,
    key = MY_API,
    departure_time = "now",
    traffic_model = "best_guess")

# Travel time in seconds
travel_time <- a$routes$legs[[1]]$duration_in_traffic$value

谢谢你,Christian!没错!出于某种原因(也许当时函数“duration_in_traffic”还没有可用,或者我没有足够的注意力),现在它正在工作,结果与在Google地图浏览器上找到的结果相同。 - João Pedro Bazzo Vieira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接