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

如何用R的terra与geodata包将经纬度匹配到国家或美国州?

经纬度坐标匹配到国家/美国州的实现方案

已安装terra和geodata包,加载地图数据的代码如下:

library(geodata)
usa <- gadm(country="USA", level=1, path=tempdir())
wld <- world(path=tempdir())

通过plot(usa)和plot(wld)可确认已获取美国州级地图数据及全球地图数据。

匹配经纬度到区域的方法

使用terra::extract函数可实现经纬度点的归属区域查询,示例代码及结果如下:

mypoints <- rbind(c(lon=-100,lat=34), 
              c(-118,34),c(-90,40),
              c(-80,40),c(-73.961,40.786))
terra::extract(usa,mypoints)

输出结果:

id.y    GID_1 GID_0       COUNTRY       NAME_1                       VARNAME_1 NL_NAME_1 TYPE_1 ENGTYPE_1 CC_1 HASC_1 ISO_1
1    1 USA.44_1   USA United States        Texas                         TX|Tex.      <NA>  State     State <NA>  US.TX US-TX
2    2  USA.5_1   USA United States   California                       CA|Calif.      <NA>  State     State <NA>  US.CA US-CA
3    3 USA.14_1   USA United States     Illinois                         IL|Ill.      <NA>  State     State <NA>  US.IL US-IL
4    4 USA.39_1   USA United States Pennsylvania Commonwealth of Pennsylvania|PA      <NA>  State     State <NA>  US.PA US-PA
5    5 USA.33_1   USA United States     New York                         NY|N.Y.      <NA>  State     State <NA>  US.NY US-NY

提取目标字段(如州名)

如果只需要州名,可直接提取NAME_1字段:

terra::extract(usa, mypoints)$NAME_1

输出结果:

[1] "Texas"        "California"   "Illinois"     "Pennsylvania" "New York"

注意事项

terra::extract函数对位置敏感,例如位于哈德逊河中的点不会匹配到纽约州,会返回NA。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:16:15