我有一个针对不同位置的几百个经纬度坐标对的列表。我的目标是使用 R 估计从“家”位置到每个坐标对的行驶时间。
我googleway
在 R 中使用该软件包取得了一些成功,但是(可以预见)在远离道路的位置遇到了问题,例如,如果坐标是山顶。在这些情况下,我想估计到每个有问题的坐标对的最近道路的行驶时间。
为了说明,假设我的家位置是;
home <- "Edinburgh, UK"
...以及我想找到的驾驶时间的示例数据框;
location <- c("place_a", "place_b", "place_c")
latitude <- c("56.87034", "57.69380", "57.36243")
longitude <- c("-4.199001", "-5.128715", "-5.104728")
df <- data.frame(location, latitude, longitude)
我可以获得距离/持续时间等,在home
andplace_a
之间,以及 between home
andplace_b
使用类似的东西;
(注意。您需要自己的 Google Maps api 密钥来复制此部分...)
library(googleway)
api_key <- [insert your Google Maps api key here!]
results <- google_distance(origins = home,
destinations = list(c("56.87034,-4.199001"),
("57.69380,-5.128715")),
mode = "driving",
key = api_key,
units = "imperial")
我得到了我想要使用的所有数据:
results$rows[[1]]
place_c
然而,当我们对返回的坐标尝试相同的坐标时,我们遇到了麻烦ZERO_RESULTS
;
results2 <- google_distance(origins = home,
destinations = ("57.36243,-5.104728"),
mode = "driving",
key = api_key,
units = "imperial")
在这里,我认为问题在于坐标是半山腰,所以在这种情况下,我想找到离坐标最近的道路。我希望对 的nearest_road
功能有一些运气,googleway
但似乎无法让它工作,例如这样的东西不起作用;
df_points <- read.table(text = "lat lon
57.36243 -5.104728", header = T)
nearest_road <- google_nearestRoads(df_points, key = api_key)
谁能告诉这里的问题是什么?还是完全提出更好的解决方案?!
非常感谢。