get_osm osmar (R) 中的函数给出 SSL 错误

get_osm function in osmar (R) gives SSL error

从几个月前开始下面的代码运行没有错误

   library(osmar)
   src <- osmsource_api(url = "https://api.openstreetmap.org/api/0.6/")
   bb <- corner_bbox(13.3,40.79,13.5,40.81)
   ua <- get_osm(bb, source = src)

现在它给我以下错误

“函数错误(类型、消息、asError = TRUE):error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 警报协议版本”

我没看懂这个问题。 我尝试 运行 使用另外两台具有不同版本(较旧)R 的计算机来编写代码,但它仍然无法正常工作。

有人有可能的解决方案吗?

提前致谢

我遇到了同样的问题。详细地说,OSMAR 包使用包 RCurl 来加载内容,该内容以某种方式使用了旧的加密标准。 您可以通过稍作修改构建您的“自己的”OSMAR 程序包来解决此问题。

import(curl)
  • 在文件R\get.R
  • 中添加包
#' @import RCurl
#' @import XML
#' @import gtools
#' @import methods
#' @import Curl
  • 并用 curlcurl 中的 getURL 方法与 RCurl 方法进行交换=18=]卷曲
get_osm_data.api <- function(source, what, ...) {
  request <- osm_request(source, what, ...)
  #response <- getURL(request, .encoding = "UTF-8")
  response <- paste(readLines(curl::curl(request)), collapse = "")
}
  • 您终于可以构建包了。重新启动 RStudio/您的 R 环境以使用它。

这对我有帮助。 最佳安德烈亚斯·魏格特