RStudio升级后reverse geocode函数无法正常返回地址求助
RStudio升级至2022.07.1后多个逆地理编码函数失效(Windows 10)
在Windows 10系统上将RStudio升级到2022.07.1版本后,多个R包的逆地理编码函数无法正常返回地址结果,但单独调用部分函数时却能正常工作,具体情况如下:
问题重现示例
示例1:revgeo包调用失败
执行代码:
library(revgeo) revgeo(-77.016472, 38.785026)
- 预期结果:返回地址字符串
"146 National Plaza, Fort Washington, Maryland, 20745, United States of America" - 实际结果:返回地址信息未找到的提示
示例2:tidygeocoder处理数据框失败
执行代码:
library(tidygeocoder) library(dplyr) path <- "filepath" df <- read.csv(paste(path, "sample.csv", sep = "")) reverse <- df %>% reverse_geocode(lat = longitude, long = latitude, method = 'osm', address = address_found, full_results = TRUE) reverse
- 背景:
sample.csv包含白宫等3个地点的坐标 - 预期结果:
address_found列返回对应地址 - 实际结果:
address_found列全为NA
例外情况:单独调用reverse_geo正常工作
执行代码:
reverse_geo(lat = 38.895865, long = -77.0307713, method = "osm")
- 实际结果:可正常获取对应地址
已尝试操作
- 联系tidygeocoder开发者,但未定位到问题
排查方向建议
- 检查包版本兼容性:确认revgeo和tidygeocoder的版本是否与RStudio 2022.07.1兼容,尝试升级到最新版本:
install.packages(c("revgeo", "tidygeocoder")) - 验证坐标格式:检查
sample.csv中的经纬度列是否存在格式错误(如数据类型为字符而非数值、坐标顺序颠倒),可通过str(df)查看数据结构 - 检查网络请求限制:逆地理编码依赖第三方API(如OSM的Nominatim),RStudio升级后可能改变了网络代理设置,可尝试设置全局代理:
或直接测试API连通性:Sys.setenv(http_proxy = "你的代理地址", https_proxy = "你的代理地址")library(httr) GET("https://nominatim.openstreetmap.org/reverse?lat=38.895865&lon=-77.0307713&format=json") - 检查R版本匹配:RStudio 2022.07.1推荐搭配R 4.2.x版本,确认当前R版本是否符合,若版本过低建议升级R
- 测试RStudio安全设置:打开RStudio的「Global Options」,检查是否开启了严格的安全限制,尝试关闭「Secure download method for HTTP」选项后重试
- 日志排查:开启tidygeocoder的调试模式查看请求细节:
library(tidygeocoder) options(tidygeocoder.debug = TRUE) # 重新运行示例2的代码
内容的提问来源于stack exchange,提问作者xiaochuan fang
相关产品推荐
相关产品推荐

