跳到主要内容
Vecaria

GeoJSON 转 Shapefile

本地处理

免费在线把 GeoJSON 转换为 Shapefile(.zip 含 .shp/.shx/.dbf/.prj/.cpg),点/线/面分层、全属性按列推断类型,浏览器本地处理、不上传、免登录。

拖拽文件到此处,或点击选择

支持 GEOJSON、JSON

选择文件

先预览确认再转换:拖入文件只解析并显示下方输入地图预览,点击按钮才产出 Shapefile 压缩包。

拖入 GeoJSON 文件后在此显示输入地图预览;点击「转换并下载」前不会转换任何内容。

使用方法

  1. 拖入 .geojson / .json 文件——只解析并显示输入地图预览(要素数/展开/跳过计数琥珀披露),点击按钮前不转换
  2. 点击「转换并下载」
  3. 下载 .zip(含 .shp/.shx/.dbf/.prj/.cpg)

常见问题

  • 问:我的文件是 .json 不是 .geojson,能用吗? 答:可以——GeoJSON 本身就是 JSON,只要 .json 里是合法的 GeoJSON 要素集合或几何对象就能转;不是 GeoJSON 的 JSON 会响亮报错,不会产出一堆空文件假成功。
  • 问:为什么字段名被截短或改了名? 答:这是 Shapefile 的 DBF 限制:字段名最长 10 个 ASCII 字符,工具会自动做 ASCII 化、截断与去重,不是 bug;字段值不受影响——文本按 UTF-8 落盘并写入 .cpg=UTF-8,QGIS/ArcGIS 读中文不乱码。
  • 问:.prj 支持哪些坐标系? 答:没有 crs 成员(RFC 7946 默认)、EPSG:4326、OGC:CRS84 输出 WGS84;EPSG:3857 族(含 900913/102100)输出 Web Mercator;其他 EPSG 会响亮拒绝并提示先用 geojson-reproject 重投影,绝不会把坐标标错。
  • 问:为什么点、线、面分成了多个图层? 答:一个 Shapefile 文件组只能放一种几何类型,混合图层会按 points/multipoints/lines/polygons 分层打包进同一个 ZIP;GeometryCollection 成员也会展开进对应图层。

功能说明

  • 自研 SHP/SHX/DBF/PRJ 写出,无需服务端
  • 按几何类型分层(含 MultiPoint 独立图层),GeometryCollection 成员展开分发
  • 全属性列 + 列型(L/N/D/C)+ UTF-8/.cpg;crs 成员感知的 .prj
  • 输入地图预览(MapLibre,几何本地渲染;CARTO 底图瓦片需联网)
  • 浏览器本地完成

隐私

本工具在浏览器本地处理,输入内容不会上传服务器。

TL;DR: GeoJSON 打包 Shapefile(.zip):全属性按列推断类型、.prj 跟随坐标系,本地完成、不上传、免登录。

示例

  • 拖入 GeoJSON → 地图预览 → 转换并下载 Shapefile.zip

支持的格式

GeoJSONSHP

限制说明

  • 点/线/面/多点分别输出 points/multipoints/lines/polygons 图层(MultiPoint 为 shape type 8 独立图层)
  • GeometryCollection 递归展开:成员按类型分发进对应图层(展开情况页内琥珀披露);空环/非有限坐标/未知类型的形状跳过并计数披露
  • 全部属性列保留(不再压平 NAME/LAYER 两列),按列推断 DBF 类型:全布尔 → L、全数值 → N(带小数位)、全 YYYY-MM-DD → D、其余 → C;文本 UTF-8 落盘并写 .cpg=UTF-8(QGIS/GDAL 正确读中文),字段名 ASCII 化/截 10 字符/去重
  • .prj 识别输入 crs 成员:无 crs(RFC 7946 默认)/EPSG:4326/OGC:CRS84 → WGS84;EPSG:3857 族(含 900913/102100)→ Web Mercator (Auxiliary Sphere);其他 EPSG 响亮双语拒绝并指引先用 geojson-reproject 重投影
  • 单次打包上限 1,000,000 个要素,超限请拆分后分批转换
  • 浏览器本地处理,不上传