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

如何使用R语言将.json文件转换为.shp文件?

用R语言将GeoJSON转换为SHP文件的方法

首先得明确:只有GeoJSON格式的文件(带空间几何信息的JSON)才能转换为SHP,普通JSON文件因为没有空间属性,无法直接转成SHP。下面是具体步骤:

  • 安装并加载空间数据处理包sf(这是R中处理空间数据的主流工具):

    # 首次使用先安装
    install.packages("sf")
    # 加载包
    library(sf)
    
  • 读取GeoJSON文件:

    # 替换为你的GeoJSON文件路径
    geo_data <- st_read("path/to/your/file.geojson")
    

    运行后会显示读取的数据信息,包括几何类型、字段等。

  • 导出为SHP文件:

    # 替换为你想要输出的SHP文件路径
    st_write(geo_data, "path/to/output/file.shp")
    

    执行后会自动生成SHP所需的配套文件(.shx、.dbf、.prj等),无需手动创建。

注意事项

  • 如果遇到中文乱码问题,导出时可以指定编码:
    st_write(geo_data, "path/to/output/file.shp", encoding = "UTF-8")
    
  • 如果你的JSON不是GeoJSON,需要先提取空间几何信息(比如经纬度字段),用st_sfc()和st_sf()将其转换为sf对象,再导出为SHP。举个简单例子:
    # 假设普通JSON里有lon(经度)和lat(纬度)字段
    library(jsonlite)
    # 读取普通JSON
    raw_data <- fromJSON("path/to/your/non_geo_json.json")
    # 创建空间几何对象
    geometry <- st_sfc(st_point(c(raw_data$lon, raw_data$lat)))
    # 转换为sf对象
    sf_data <- st_sf(raw_data, geometry = geometry)
    # 导出为SHP
    st_write(sf_data, "path/to/output/file.shp")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:45:32