3

使用包中的google_directions功能googleway,它不会根据谷歌地图浏览器搜索显示旅行时间。

似乎没有考虑到交通信息。

例如在纽约一条繁忙的街道上。

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 分钟。我检查了路线,它是一样的。

在此处输入图像描述

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

有谁知道如何将交通信息纳入这些功能?或者我应该得出结论谷歌不提供这种级别的信息?

4

1 回答 1

2

googleway文档google_directions涵盖了这一点。要获取实时数据,您需要以下内容:

  • a departure_time,使用日期时间的当前使用"now"或指定的未来时间POSIXct
  • traffic_model: 谷歌的猜测应该是best_guess, optimistic, 还是pessimistic.

您要求使用代码提供历史旅行时间,而 Google 地图使用实时旅行时间(可能是best_guess估计值)。

谷歌文档指出

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

试试这个:

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
于 2019-12-04T15:53:19.220 回答