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

R语言获取世界地图替代方案及经纬度识别国家方法咨询

替代废弃rworldmap的SP格式地图方案及坐标转国家方法

一、获取SP格式世界空间多边形地图的替代方案

  • GADMTools包:可直接获取SP格式的全球或特定国家行政边界,无需依赖即将移除SP支持的rnaturalearth。示例代码:
library(GADMTools)
# 获取全球低分辨率国家边界(SP格式)
countriesSP <- gadm(country = "global", level = 0, type = "sp")
  • 旧版本rnaturalearth:若坚持使用ne_countries,可安装仍保留SP选项的旧版本(如0.1.0),但长期不推荐,官方后续会彻底移除该支持。安装命令:
install.packages("devtools")
devtools::install_version("rnaturalearth", version = "0.1.0", repos = "http://cran.us.r-project.org")
  • SF转SP格式:如果必须用新版本rnaturalearth的SF数据,只需一次转换即可得到SP格式,无需深入学习SF操作:
library(rnaturalearth)
library(sf)
library(sp)
# 获取SF格式数据后转SP
countries_sf <- ne_countries(scale = 10, returnclass = "sf")
countriesSP <- as_Spatial(countries_sf)

二、十进制坐标识别国家的简便方法

无需手动处理空间多边形交集,以下两种方法更高效:

  • geonames包反向地理编码:调用GeoNames的免费API(需先在GeoNames官网注册账号),直接根据坐标返回国家信息:
library(geonames)
# 设置你的GeoNames用户名
options(geonamesUsername = "your_username")
# 示例坐标(纽约:纬度40.7128,经度-74.0060)
result <- GNreverse(lat = 40.7128, lng = -74.0060)
# 提取国家名称
country_name <- result$countryName
  • SP数据空间匹配:用已有的SP地图数据结合sp包的over()函数快速匹配,无需外部API:
library(sp)
# 将目标坐标转为SP点对象(需与地图数据投影一致)
coord_points <- SpatialPoints(
  data.frame(lon = c(-74.0060), lat = c(40.7128)), 
  proj4string = CRS(proj4string(countriesSP))
)
# 匹配对应国家
matched_country <- over(coord_points, countriesSP)$NAME

内容的提问来源于stack exchange,提问作者js27

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:17:03