gpt4 book ai didi

r - 从 R 传递经度和纬度参数以读取 Google map 中的 URL 并提取路线

转载 作者:行者123 更新时间:2023-12-01 14:49:58 24 4
gpt4 key购买 nike

我尝试使用 Google map 和 R 来计算起点和终点之间每次过境的旅行时间。

可在以下位置找到搜索指南:https://developers.google.com/maps/documentation/directions/#TravelModes

当我以文字形式提交起点和终点的纬度和经度时,一切正常。

例如,下面的R代码正确执行,我们得到了距离和行程持续时间(搜索的输出是JSON格式,并用fromJSON转换为R对象)

library(rjson)
library(gooJSON)
route <- url('http://maps.googleapis.com/maps/api/directions/json? origin=51.13854,4.384575&destination=51.13156,4.387118&region=be&sensor=false&mode=transit&departure_time=1372665319')
route_file <- file("route_file.json")
L <- readLines(route,-1)
writeLines(L, route_file)
close(route)
routesR_zone1_to_zone20 <- fromJSON( file = route_file )
routesR_zone1_to_zone20$routes[[1]][[3]][[1]]$distance$value/1000
routesR_zone1_to_zone20$routes[[1]][[3]][[1]]$duration$value/60

但是,我真正感兴趣的是对数千个起点-终点对重复此操作。起点和终点的经度和纬度就变成了变量。

例如:

> lat_or
[1] 51.13854
> long_or
[1] 4.384575
> lat_des
[1] 51.13156
> long_des
[1] 4.387118
> route <- url('http://maps.googleapis.com/maps/api/directions/json? origin=lat_or,long_or&destination=lat_des,long_des&region=be&sensor=false&mode=transit&departure_time=1372665319')
> route_file <- file("route_file.json")
> L <- readLines(route,-1)
> writeLines(L, route_file)
> close(route)
> routesR_zone1_to_zone20 <- fromJSON( file = route_file )
> routesR_zone1_to_zone20
$routes
list()

$status
[1] "NOT_FOUND"

因此,虽然坐标与前面的示例相同,但这次没有找到路线。

我想问题是,当访问 url 时,lat_or 等没有“翻译”成相应的数值,Google 试图计算文字“lat_or,long_or”和“lat_des, long_des”。

有没有人对如何规避这个问题有建议?

最佳答案

标准文本处理:

 lat_or <- 51.13854
long_or <- 4.384575
lat_des <- 51.13156
long_des <- 4.387118
route <- url(paste0("http://maps.googleapis.com/maps/api/directions/json?origin=",lat_or,",",long_or,"&destination=",lat_des,",",long_des,"&region=be&sensor=false&mode=transit&departure_time=1372665319") )

route_file <- file("route_file.json")
L <- readLines(route,-1)
writeLines(L, route_file)
close(route)
routesR_zone1_to_zone20 <- fromJSON( file = route_file )
routesR_zone1_to_zone20$routes[[1]][[3]][[1]]$distance$value/1000
#[1] 1.161
routesR_zone1_to_zone20$routes[[1]][[3]][[1]]$duration$value/60
#[1] 11.73333

关于r - 从 R 传递经度和纬度参数以读取 Google map 中的 URL 并提取路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17426913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com