首页 GIS基础理论 GeoJSON是什么格式?GeoJSON转SHP及ArcGIS打开方法

GeoJSON是什么格式?GeoJSON转SHP及ArcGIS打开方法

作者: GIS研习社 更新时间:2026-05-13 15:57:47 分类:GIS基础理论

很多同学第一次拿到 GeoJSON 文件,是从 WebGIS 接口、开源数据网站或前端地图项目里下载来的。文件能用文本编辑器打开,里面全是花括号和坐标数组,但放到 ArcGIS Pro 里不一定像 SHP 那样直接工作。本文用一个实际流程讲清楚 GeoJSON是什么格式,怎样做 GeoJSON转SHP,以及 GeoJSON格式如何用ArcGIS打开

如果你的目标只是临时查看数据,GeoJSON 很方便;如果要交给传统制图、空间分析或已有 ArcGIS 项目,通常需要把它导入为要素类,必要时再导出为 Shapefile。关键不是“格式转换”四个字,而是坐标系、几何类型、字段结构和编码要先检查清楚。

GeoJSON是什么格式?先从一个GIS问题看起

GeoJSON 是基于 JSON 的矢量地理数据交换格式,用来表达点、线、面以及对应的属性字段。它常见于 Leaflet、OpenLayers、Mapbox、ArcGIS REST 服务、开放数据平台和 Python GIS 脚本中,因为浏览器和后端程序都很容易读取 JSON。

在 GIS 项目里,搜索“GeoJSON是什么格式”的人通常不是只想知道定义,而是遇到了这类问题:下载到一个 .geojson 文件,不知道它是不是地图数据;打开后坐标像 [116.39, 39.90],不知道是不是北京;导入 ArcGIS 后没有字段、没有图形,或者位置跑到别的地方。

判断一个文件是不是标准 GeoJSON,可以先看三个位置:

  • 最外层通常是 FeatureCollection,表示一组地理要素。
  • 每个 Feature 里有 geometry,保存点、线、面坐标。
  • 每个 Feature 里有 properties,保存属性表字段。
GeoJSON转SHP和ArcGIS打开GeoJSON流程图
GeoJSON 从文本格式进入 ArcGIS 或转换为 SHP 时,核心检查点是坐标系、几何类型和字段结构。

为什么GeoJSON在WebGIS里好用,桌面GIS里却常要转换

GeoJSON 的优势是轻量、易传输、易被 JavaScript 解析。前端地图只需要发起请求,读取坐标数组和属性,就能把点线面画到浏览器里。这也是 WebGIS 项目经常使用 GeoJSON 的原因。

但桌面 GIS 的工作方式不同。ArcGIS Pro、传统 ArcMap 工程、测绘交付成果和很多外业软件仍然围绕要素类、Shapefile、File Geodatabase 或 GeoPackage 工作。GeoJSON 是交换格式,不是所有桌面分析工具的首选存储格式。因此在实际项目里,GeoJSON转SHP 往往是为了兼容旧流程、提交成果包或交给只会打开 SHP 的协作方。

这里要先明确一个原则:如果项目允许使用更现代的格式,优先考虑 File Geodatabase 或 GeoPackage;只有对方明确要求 SHP 时,再把 GeoJSON 转成 SHP。因为 SHP 对字段名、字段数量、编码和几何类型都有更强限制。

GeoJSON的核心结构:geometry、properties和坐标顺序

理解 GeoJSON 的结构,有助于解释为什么转换时会丢字段、空图层或坐标错位。一个典型的 GeoJSON 片段如下:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [116.39, 39.90]
      },
      "properties": {
        "name": "示例点",
        "category": "POI"
      }
    }
  ]
}

geometry.type 决定了要素类型,常见值包括 PointLineStringPolygonMultiPointMultiLineStringMultiPolygoncoordinates 保存坐标数组,properties 对应属性表。

标准 GeoJSON 使用 WGS 84 地理坐标,单位是十进制度。坐标顺序要特别注意:数组里通常是经度在前、纬度在后,也就是 [longitude, latitude],不是很多表格里常见的“纬度、经度”。如果把顺序写反,点位可能会落到错误国家、海里或完全不可见的位置。

GeoJSON转SHP:ArcGIS Pro、QGIS和GDAL三种做法

GeoJSON转SHP 没有唯一工具。GIS 初学者建议用 ArcGIS Pro 或 QGIS;数据工程场景建议用 GDAL 的 ogr2ogr 批量转换。无论用哪种方法,转换前都先确认三件事:文件能被文本编辑器正常打开、几何类型不要混在一起、字段名和中文编码要提前规划。

方法一:ArcGIS Pro中先转要素类,再导出SHP

  1. 打开 ArcGIS Pro,在 Geoprocessing 面板搜索 JSON To Features
  2. Input JSON or GeoJSON 选择你的 .geojson 文件。如果文件后缀是 .json,但内容确实是 GeoJSON,建议先另存或改名为 .geojson,避免工具识别歧义。
  3. Output Feature Class 建议先输出到 File Geodatabase,例如 project.gdb/roads_from_geojson
  4. Geometry Type 按数据实际类型选择 PointPolylinePolygon。如果选错类型,输出可能为空。
  5. 运行后检查属性表、空间位置和坐标系。确认无误后,右键要素类,选择导出要素,输出到普通文件夹并命名为 roads.shp

ArcGIS Pro 这条路径适合已经在 ArcGIS 项目里工作的用户。建议不要一开始就直接追求 SHP 输出,先落到 File Geodatabase 更容易检查字段和几何,再按交付要求导出 SHP。

方法二:QGIS中另存为ESRI Shapefile

  1. 打开 QGIS,选择添加矢量图层,数据源选择 GeoJSON 文件。
  2. 图层加载后先右键缩放到图层,确认空间位置是否正确。
  3. 右键图层,选择导出或另存为。
  4. 格式选择 ESRI Shapefile,文件名设置为 xxx.shp
  5. CRS 根据用途选择。仅交换原始 GeoJSON 时通常保留 EPSG:4326;要做距离、面积或本地工程制图时,应在后续投影到合适的投影坐标系。
  6. 编码建议选择 UTF-8,并检查导出的 .cpg 文件是否随 SHP 一起交付。

QGIS 的优势是直观,适合查看、修复和小批量转换。做 GeoJSON转SHP 时,如果字段名很长,QGIS 也会受到 Shapefile 字段名长度限制影响,所以导出后一定要打开属性表复查。

方法三:GDAL ogr2ogr批量转换

如果你要处理几十个 GeoJSON 文件,命令行更稳定。常见命令如下:

ogr2ogr -f "ESRI Shapefile" roads.shp roads.geojson -lco ENCODING=UTF-8

如果需要在转换时重投影到 WebGIS 常见的 WGS 84,可以使用:

ogr2ogr -f "ESRI Shapefile" roads_4326.shp roads.geojson -t_srs EPSG:4326 -lco ENCODING=UTF-8

命令行转换适合数据工程师和 Python GIS 自动化场景。需要注意的是,SHP 本身依旧只能保存单一几何类型,字段名也会被限制,因此批处理脚本最好在转换前先统一字段名。

GeoJSON格式如何用ArcGIS打开:ArcGIS Pro导入步骤

如果你搜索的是“GeoJSON格式如何用ArcGIS打开”,建议把“打开”理解为“导入为 ArcGIS 可编辑、可分析的要素类”。稳定做法不是把文件直接当作普通图层拖进去,而是使用 JSON To Features 工具完成转换。

  1. 确认文件扩展名是 .geojson,内容最外层是 FeatureCollection 或单个 Feature
  2. 在 ArcGIS Pro 中打开 Analysis 选项卡,进入 Tools
  3. 搜索 JSON To Features,选择 GeoJSON 文件作为输入。
  4. 输出位置优先选择 File Geodatabase,而不是直接覆盖已有 SHP。
  5. 按数据类型设置 Geometry Type。点数据选 Point,线数据选 Polyline,面数据选 Polygon。
  6. 运行后把结果添加到地图,右键图层缩放至图层,检查是否落在正确区域。
  7. 打开属性表,确认关键字段是否存在,中文是否乱码,日期字段是否需要重新计算。

ArcGIS Pro 处理 GeoJSON 时,有两个细节经常被忽略。第一,GeoJSON 输入的首条记录属性会影响输出字段结构,如果第一条要素字段不完整,后面的字段可能无法按预期进入结果。第二,GeoJSON 和 JSON 本身没有统一的日期存储方式,时间字段可能是字符串,也可能是 Unix 时间戳,导入后需要再用字段计算器规范为日期字段。

常见坑:坐标、字段、几何和编码

坐标跑偏:先看经纬度顺序和坐标系

GeoJSON 坐标通常是经度、纬度。如果你从 Excel 或接口里手工生成 GeoJSON,把纬度放在前面就会出错。另一个常见问题是原始数据其实是投影坐标,却被直接写成 GeoJSON。标准 GeoJSON 应按 WGS 84 地理坐标表达;如果来源是 CGCS2000、高斯克吕格、Web Mercator 或地方坐标,需要先明确坐标系,再正确投影转换。

字段丢失:检查第一条记录和SHP限制

ArcGIS 导入 GeoJSON 时,字段结构可能受首条记录影响。建议在转换前检查所有要素的 properties 是否字段一致。转成 SHP 后,字段名不能像 GeoJSON 那样保留很长的英文或中文名称,通常会被截短,所以交付前要准备字段对照表。

输出为空:几何类型可能选错

GeoJSON格式如何用ArcGIS打开 的流程里,Geometry Type 很关键。一个面文件如果在工具里选成 Point,输出结果就可能是空图层。混合了点、线、面的 GeoJSON 不适合直接转成一个 SHP,建议按几何类型拆分后分别导出。

中文乱码:不要只交付一个shp文件

Shapefile 不是单个文件,而是一组文件。至少要同时交付 .shp.shx.dbf.prj,如果有中文字段或中文属性,还应带上 .cpg。只复制一个 .shp,对方打开时会缺空间索引、缺属性或出现乱码。

方法对比:什么时候保留GeoJSON,什么时候转SHP

场景 推荐格式 原因
前端地图展示、接口返回、小范围在线预览 GeoJSON 浏览器读取方便,适合 WebGIS 调试和轻量交换。
ArcGIS Pro分析、长期项目管理 File Geodatabase 字段、几何、索引和坐标系支持比 SHP 更完整。
跨软件交换、开源GIS协作 GeoPackage 单文件保存,多图层能力强,字段限制少。
对方明确要求传统成果包 SHP 兼容性好,但字段名、编码和单一几何类型限制明显。

因此,GeoJSON转SHP 不是默认最优解,而是兼容旧流程时的选择。内部生产建议保留一份 File Geodatabase 或 GeoPackage 作为主数据,再导出 SHP 作为交付副本。

发布或交付前检查清单

  • 用文本编辑器确认 GeoJSON 不是空文件,最外层结构合法。
  • 确认坐标顺序是经度、纬度,不是纬度、经度。
  • 确认数据应使用 WGS 84,或已经按项目要求正确投影。
  • 确认 GeoJSON 中不要混合点、线、面到同一个 SHP 输出。
  • 确认属性字段在每条要素里尽量一致,尤其是第一条记录。
  • 导出 SHP 后检查字段名是否被截短,中文是否乱码。
  • .shp.shx.dbf.prj.cpg 一起打包。
  • 在 ArcGIS Pro 或 QGIS 中重新打开导出结果,缩放至图层检查位置。

FAQ:GeoJSON、GeoJSON转SHP与ArcGIS打开

GeoJSON是什么格式,和普通JSON有什么区别?

GeoJSON是什么格式 可以这样理解:它是用 JSON 写法表达地理要素的矢量格式。普通 JSON 只是一种通用数据结构;GeoJSON 在 JSON 基础上规定了 Featuregeometrycoordinatesproperties 等地理数据组织方式。

GeoJSON转SHP后字段名为什么变短?

这是 SHP 的格式限制,不是 GeoJSON 的问题。GeoJSON 的属性名可以较长,转成 SHP 后字段名会受到 DBF 表结构限制,常见表现是字段名被截短或重命名。正式交付时建议保留字段说明表。

GeoJSON格式如何用ArcGIS打开最稳妥?

GeoJSON格式如何用ArcGIS打开 的稳妥方法是用 ArcGIS Pro 的 JSON To Features 工具,把 .geojson 导入为要素类。导入后再检查坐标位置、属性表、几何类型和日期字段,确认无误后再导出 SHP 或继续分析。

ArcGIS打开GeoJSON后没有图形怎么办?

先检查 Geometry Type 是否选错,再检查 GeoJSON 文件里是否真的包含对应类型的要素。面数据选成 Point、线数据选成 Polygon,都可能得到空结果。还要确认坐标数组不是空值,文件不是只有属性没有 geometry。

GeoJSON转SHP时需要改坐标系吗?

如果只是把标准 GeoJSON 交给别人查看,通常保留 WGS 84 即可。如果要在本地做面积、长度、缓冲区或工程制图,应在导入后投影到适合研究区的投影坐标系,再进行分析或制图。

结论

GeoJSON 是 WebGIS 和空间数据交换中非常常见的矢量格式,核心是用 JSON 表达几何和属性。理解 GeoJSON是什么格式 后,再处理 ArcGIS 导入和 GeoJSON转SHP 就会清晰很多:先查结构和坐标系,再按几何类型导入为要素类,最后根据交付要求导出 SHP。

实际项目中,最稳的工作流是:GeoJSON 原始文件保留一份,ArcGIS Pro 中用 JSON To Features 转为 File Geodatabase 要素类,检查字段和空间位置后,再导出 SHP。这样既能兼容传统交付,也能避免把 GeoJSON 的灵活性和 SHP 的限制混在一起造成数据质量问题。

相关文章