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

为什么无法构建包含census block及经纬度轮廓的DataFrame?

问题原因

  • 你调用st_coordinates()提取轮廓坐标时,直接丢弃了返回结果中自带的L1分组列:该列的数值对应原NTIA_FL_CB对象的行序号,用来标记每一组坐标点归属的census block,丢失后就无法把坐标和对应的GEOID关联。
  • 后续处理中你仅保留了经纬度两列,没有添加block的标识字段,其他团队拿到csv也无法区分不同block的轮廓坐标,自然没法拼成多边形。
  • NTIA_FL_CB_Shape_xy是普通数据框不是sf空间对象,没必要用st_write导出,直接用R基础的write.csv或者tidyverse的write_csv即可。

解决代码

# 提取坐标,保留分组标识
NTIA_FL_CB_Shape_xy <- as.data.frame(st_coordinates(NTIA_FL_CB$geometry))

# 匹配每个坐标对应的GEOID10,L1对应原sf对象的行号
NTIA_FL_CB_Shape_xy <- NTIA_FL_CB_Shape_xy %>%
  mutate(GEOID10 = NTIA_FL_CB$GEOID10[L1]) %>% # 关联对应block的GEOID
  rename(Longitude = X, Latitude = Y) %>%
  select(GEOID10, Latitude, Longitude) # 如需区分多边形内环外环可保留L2列

# 直接导出csv
write.csv(NTIA_FL_CB_Shape_xy, "fl_3cb_ntia_latlong.csv", row.names = FALSE)

# 绘图验证逻辑和之前一致
leaflet(NTIA_FL_CB) %>%
  addTiles() %>%
  addPolygons(popup = ~GEOID10) %>%
  addCircleMarkers(data = NTIA_FL_CB_Shape_xy, color = "green")

导出的csv包含GEOID、纬度、经度三个核心字段,其他团队导入GIS软件后,按GEOID分组即可把坐标点连接为对应census block的轮廓多边形。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:39:03