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

R语言空间数据操作:从QLD sf对象提取sa3_code_2016的方法

从QLD sf对象提取sa3_code_2016字段并匹配到测试数据框的解决方案

实现逻辑如下:

  • 将经纬度点数据转换为sf空间对象后,必须对齐其坐标参考系(CRS)与QLD空间对象的CRS保持一致
  • 调用sf包的st_join()函数即可自动完成点与多边形的空间匹配,将对应sa3_code_2016字段值合并到测试点数据框中

完整可运行示例代码如下:

library(absmapsdata)
library(leaflet)
library(tidyverse)
library(sf)

# 提取昆士兰州2016年SA3边界数据,仅保留需要的sa3_code_2016和几何字段
QLD <- sa32016 %>%
  filter(state_name_2016 == "Queensland") %>% 
  dplyr::select(sa3_code_2016, geometry)

# 构造测试经纬度点数据框
Points <- data.frame(
  Longitude = c(148.275355, 148.872268, 150.490145),
  Latitude = c(-23.683148, -21.228157,-22.705135),
  names = c("First", "Second", "Last")
)

# 将普通数据框转为sf空间点对象,同时对齐QLD的CRS
Points <- st_as_sf(Points, coords = c("Longitude", "Latitude")) %>% 
  st_set_crs(st_crs(QLD))

# 可选:可视化验证点和边界的位置是否匹配
leaflet() %>% 
  addTiles() %>%
  addPolygons(
    data = QLD, 
    color = "#b3acc2",
    fillOpacity = 0.5
  ) %>%
  addMarkers(data = Points)

# 执行空间连接,匹配每个点对应的SA3编码,结果存储到Test数据框
Test <- st_join(Points, QLD)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:27:04