R mapdist有限公司<;200个请求

R mapdist有限公司<;200个请求,r,google-maps-api-3,ggmap,R,Google Maps Api 3,Ggmap,我最近一直在玩ggmap包中的mapdist函数 对于小批量的查询,它对我来说很好,但是对于较大的数量(仍然低于2500个限制),它会被忽略,我不知道为什么 我有一位老同事尝试了这个脚本,他们得到了和我一样的结果(他们在不同的组织,使用不同的计算机,在不同的网络上等等) 下面是我的测试脚本,它一次又一次地运行同一个请求,以查看在失败之前它成功地通过了多少个查询。有一段时间它一直在返回129,最近它开始返回127(尽管这个数字在某个测试中仍然是一致的) 请注意,尽管这重复了相同的邮政编码,但我已经

我最近一直在玩ggmap包中的mapdist函数

对于小批量的查询,它对我来说很好,但是对于较大的数量(仍然低于2500个限制),它会被忽略,我不知道为什么

我有一位老同事尝试了这个脚本,他们得到了和我一样的结果(他们在不同的组织,使用不同的计算机,在不同的网络上等等)

下面是我的测试脚本,它一次又一次地运行同一个请求,以查看在失败之前它成功地通过了多少个查询。有一段时间它一直在返回129,最近它开始返回127(尽管这个数字在某个测试中仍然是一致的)

请注意,尽管这重复了相同的邮政编码,但我已经尝试过随机选择目的地邮政编码,并获得了相同的结果

library("ggmap")

# Setup ----------
no.of.pcd.to.check <- 500
a <- rep("SW1A 1AA",no.of.pcd.to.check) # Use a repeating list of the same postcode to remove it as a causal factor
b <- rep("WC2H 0HE",no.of.pcd.to.check) # As above

test.length <- 5 # How many iterations should the test run over

# Create results dataframe ----------
# and pre-set capacity to speed up the for loop
results.df <- data.frame(
                 Iteration=seq(1:test.length), 
                 Result=as.integer(rep(0,test.length)),
                 Remaining=as.integer(rep(0,test.length))) 


# Run the test ----------

for(i in 1:test.length){
      x <- distQueryCheck() # Get remaining number of queries pre submission
      try(mapdist(a, b, mode="driving", output="simple",override_limit=TRUE))
      y <- distQueryCheck() # Get remaining number of queries post submission
      query.use <- (x-y) # Difference between pre and post (ie number of successful queries submitted)
      print(paste(query.use, "queries used"))
      results.df[i,"Result"] <- query.use # Save successful number of queries for each test iteration
      results.df[i,"Remaining"] <- y
}
库(“ggmap”)
#设置----------

no.of.pcd.to.check因此我收到了相同的错误消息,最终解决的方法是将地址中的“#”改为“Number”。我不是专家,甚至还没有研究过mapdist代码,但是删除“#”让我可以毫无问题地使用mapdist。

这有点推测,但是,看看
mapdist(…)
的代码,函数测试请求url是否大于2048个字符。如果是,
mapdist(…)
使用1/2的邮政编码递归调用自己,直到请求中的字符数小于2048。您得到的错误是“下标越界”,我认为这是该循环中的一个失败。此外,您应该注意,该循环限制您每次查询<100个元素,每10秒<100个元素,以及每天<2500个元素。