求助:如何将含多边形、线、点的JSON文件转换为Shapefile
将GeoJSON转换为Shapefile的实用方法
以下是几种可靠的转换方案,覆盖可视化工具、命令行、代码三种场景:
1. 使用QGIS(可视化操作,适合新手)
- 打开QGIS,点击「图层」>「添加图层」>「添加矢量图层」
- 在弹窗中选择文件类型为「GeoJSON」,选中你的JSON文件(需为标准GeoJSON格式)
- 图层加载完成后,右键点击图层 >「导出」>「保存要素为」
- 格式选择「ESRI Shapefile」,设置保存路径和文件名,确认导出即可
2. 使用GDAL命令行(适合批量/自动化处理)
- 确保已安装GDAL(多数GIS工具自带,也可单独安装)
- 打开终端/命令提示符,执行基础转换命令:
ogr2ogr -f "ESRI Shapefile" 输出目录/文件名.shp 你的JSON文件路径.json - 若JSON包含多种几何类型(点、线、面),可按类型拆分导出,比如仅导出多边形:
ogr2ogr -f "ESRI Shapefile" polygons.shp input.json -where "OGR_GEOMETRY='Polygon'"
3. 使用Python脚本(自定义处理场景)
- 先安装依赖库:
pip install geopandas - 编写简单脚本完成转换:
import geopandas as gpd # 读取GeoJSON文件 geo_data = gpd.read_file("你的JSON文件路径.json") # 导出为Shapefile geo_data.to_file("输出目录/shapefile文件名.shp", driver="ESRI Shapefile")
注意事项
- 确认你的JSON是标准GeoJSON格式,若为自定义结构,需先提取几何坐标与属性信息,转换为GeoJSON规范
- Shapefile对字段名长度限制为10字符,导出时会自动截断长字段名,需提前检查属性
- 单个Shapefile仅支持存储一种几何类型,多类型数据建议拆分导出
内容的提问来源于stack exchange,提问作者Bamba
相关产品推荐
相关产品推荐

