使用 ggmap 路由函数列出错误
list error using ggmap route function
所以我尝试使用 ggmap 的 route() 函数来创建一个我可以覆盖在地图上的 geom。
我在名为检查点的列表中以 "lat, lon" 格式列出了位置列表。
list("40.775912, -74.012619", "40.775912, -74.012619", "40.782669, -74.008143",
"40.788587, -74.000447", "40.805952, -73.991671", "40.821177, -73.987895",
"40.836634, -73.978271", "40.845806, -73.971319", "40.855106, -73.967628",
"40.859186, -73.972037", "40.862502, -73.969255", "40.863977, -73.968383",
"40.860894, -73.968126", "40.856154, -73.972603", "40.852727, -73.965511",
"40.850897, -73.965913", "40.850939, -73.968064", "40.846506, -73.970819",
"40.836634, -73.978271", "40.821177, -73.987895", "40.806622, -73.991894",
"40.788587, -74.000447", "40.782669, -74.008143", "40.775912, -74.012619")
我正在尝试按顺序在每组位置上执行路线功能,即从 1-2 然后 2-3...
routes <- lapply(2:length(checkpoints),
function(x) route(from = checkpoints[[x-1]],
to = checkpoints[[x]],
mode = "driving",
output = "simple"))
代码每次都运行到第 10 步然后我得到这个错误:
Error: (list) object cannot be coerced to type 'integer'
我以我想要的方式得到了一个包含 10 个路由数据条目的列表,除此之外别无其他。我试过取消列出应用函数中的检查点列表,但无论出于何种原因,它仍然没有超过第 10 步。任何帮助,将不胜感激。也请原谅格式或礼节上的任何错误,这基本上是我的第一个问题。
该错误信息量不大,但我认为这是因为对于此类信息调用 Google 的 API 的频率存在限制。我们可以使用 sleep 命令来限制我们的调用率,这样就可以正常工作了:
lapply(2:nrow(checkpoints),
function(x) {
Sys.sleep(1)
ggmap::route(from = checkpoints[[x-1]],
to = checkpoints[[x]],
mode = "driving",
output = "simple")
} )
另请注意,您一天只能查询这么多次,您可以查看 ggmap::routeQueryCheck()
。
所以我尝试使用 ggmap 的 route() 函数来创建一个我可以覆盖在地图上的 geom。
我在名为检查点的列表中以 "lat, lon" 格式列出了位置列表。
list("40.775912, -74.012619", "40.775912, -74.012619", "40.782669, -74.008143",
"40.788587, -74.000447", "40.805952, -73.991671", "40.821177, -73.987895",
"40.836634, -73.978271", "40.845806, -73.971319", "40.855106, -73.967628",
"40.859186, -73.972037", "40.862502, -73.969255", "40.863977, -73.968383",
"40.860894, -73.968126", "40.856154, -73.972603", "40.852727, -73.965511",
"40.850897, -73.965913", "40.850939, -73.968064", "40.846506, -73.970819",
"40.836634, -73.978271", "40.821177, -73.987895", "40.806622, -73.991894",
"40.788587, -74.000447", "40.782669, -74.008143", "40.775912, -74.012619")
我正在尝试按顺序在每组位置上执行路线功能,即从 1-2 然后 2-3...
routes <- lapply(2:length(checkpoints),
function(x) route(from = checkpoints[[x-1]],
to = checkpoints[[x]],
mode = "driving",
output = "simple"))
代码每次都运行到第 10 步然后我得到这个错误:
Error: (list) object cannot be coerced to type 'integer'
我以我想要的方式得到了一个包含 10 个路由数据条目的列表,除此之外别无其他。我试过取消列出应用函数中的检查点列表,但无论出于何种原因,它仍然没有超过第 10 步。任何帮助,将不胜感激。也请原谅格式或礼节上的任何错误,这基本上是我的第一个问题。
该错误信息量不大,但我认为这是因为对于此类信息调用 Google 的 API 的频率存在限制。我们可以使用 sleep 命令来限制我们的调用率,这样就可以正常工作了:
lapply(2:nrow(checkpoints),
function(x) {
Sys.sleep(1)
ggmap::route(from = checkpoints[[x-1]],
to = checkpoints[[x]],
mode = "driving",
output = "simple")
} )
另请注意,您一天只能查询这么多次,您可以查看 ggmap::routeQueryCheck()
。