You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用rgeoboundaries获取马里、塞内加尔边界报错的解决方法

解决rgeoboundaries获取马里、塞内加尔边界的错误问题

错误原因

你遇到的文件找不到错误,本质是rgeoboundaries包的内部路径逻辑和geoBoundaries官方最新的文件命名规则不匹配——官方更新了压缩包内的SHP文件名,而当前安装的包版本还在查找旧的文件名,导致读取失败。

解决方案

方案1:强制更新rgeoboundaries到最新版本

先卸载旧版本,再重新安装GitHub上的最新代码,修复路径匹配问题:

# 卸载旧包
remove.packages("rgeoboundaries")
# 强制安装最新版本
remotes::install_github("wmgeolab/rgeoboundaries", force = TRUE)

# 重新加载包并尝试获取数据
library(rgeoboundaries)
library(sf)
mli_sen <- gb_adm0(c("Mali", "Senegal"), type = "sscgs")

方案2:手动下载并读取geoBoundaries数据

如果更新包后还是不行,直接调用geoBoundaries的官方数据链接手动处理:

library(sf)

# 下载马里ADM0边界数据
mli_zip <- tempfile(fileext = ".zip")
download.file("https://geoboundaries.org/data/geoBoundaries-4.0.0/MLI/ADM0/geoBoundaries-4.0.0-MLI-ADM0.zip", mli_zip)
mli_sf <- st_read(mli_zip)

# 下载塞内加尔ADM0边界数据
sen_zip <- tempfile(fileext = ".zip")
download.file("https://geoboundaries.org/data/geoBoundaries-4.0.0/SEN/ADM0/geoBoundaries-4.0.0-SEN-ADM0.zip", sen_zip)
sen_sf <- st_read(sen_zip)

# 合并两个国家的边界数据
mli_sen <- rbind(mli_sf, sen_sf)

方案3:换用CRAN维护的替代包

如果不想折腾rgeoboundaries,推荐用rnaturalearth包(CRAN官方维护,稳定性更高)获取国家边界:

# 安装包(首次使用)
install.packages("rnaturalearth")
library(rnaturalearth)
library(sf)

# 获取马里和塞内加尔的边界数据
mli_sen <- ne_countries(country = c("Mali", "Senegal"), returnclass = "sf")

内容的提问来源于stack exchange,提问作者Saïd Maanan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:52:11