【问题标题】:get_osm function in osmar (R) gives SSL errorosmar (R) 中的 get_osm 函数给出 SSL 错误
【发布时间】:2020-09-12 11:09:25
【问题描述】:

自几个月前以来,以下代码运行无误

   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)

现在它给了我以下错误

“函数错误(类型,msg,asError = TRUE):错误:1407742E:SSL 例程:SSL23_GET_SERVER_HELLO:tlsv1 警报协议版本”

我无法理解这个问题。 我尝试使用其他两台具有不同版本(旧)R 的计算机运行代码,但它仍然无法正常工作。

谁有可能的解决方案?

提前致谢

【问题讨论】:

    标签: r osmar


    【解决方案1】:

    我有同样的问题。具体来说,OSMAR 包使用包 RCurl 来加载使用某种旧加密标准的内容。 您可以通过构建“自己的”OSMAR 软件包并稍作修改来解决此问题。

    import(curl)
    
    • 在文件 R\get.R 中添加包
    #' @import RCurl
    #' @import XML
    #' @import gtools
    #' @import methods
    #' @import Curl
    
    • 并将 RCurl 中的方法 getURL 与包 curl 中的方法 curl 交换
    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 环境以使用它。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多