GeoJSON可以用GIS打开吗?QGIS打开与导出全攻略(含:坐标转换技巧)

编程与开发
Dr.GIS
wowwwai GIS研习社 · 工具流程与项目排障

GeoJSON可以用GIS打开吗?QGIS打开与导出全攻略(含:坐标转换技巧)这篇文章,专门解决一个很常见的问题:你拿到一个 .geojson.json 文件,不确定它能不能在 GIS 软件里打开,也不知道打开后坐标是否正确、如何转成 Shapefile、GeoPackage 或重新导出为 GeoJSON。

结论先说:GeoJSON 可以用 GIS 打开,QGIS、ArcGIS Pro、GDAL、GeoPandas、WebGIS 前端库都能处理它。对大多数 GIS 初学者来说,最推荐先用 QGIS 打开 GeoJSON,因为它免费、识别格式直接、坐标转换和导出操作都比较清晰。

GeoJSON可以用GIS打开吗 QGIS打开GeoJSON与坐标转换流程
GeoJSON 在 QGIS 中打开、检查坐标系、坐标转换和导出的基本流程。

引言:GeoJSON可以用GIS打开吗

GeoJSON 本质上是一种基于 JSON 的空间数据格式,常用于 WebGIS、接口返回数据、前端地图展示和轻量级空间数据交换。它可以存储点、线、面、多点、多线、多面以及属性字段。

如果你的文件后缀是 .geojson,通常可以直接拖进 QGIS 打开。如果后缀是 .json,但内容符合 GeoJSON 结构,也可以在 QGIS 中作为矢量图层加载。

不过,能打开不等于一定显示正确。GeoJSON 最常见的问题不是格式本身,而是坐标系、编码、几何错误和文件体积过大。

背景:为什么 GeoJSON 在 GIS 和 WebGIS 中都很常见

GeoJSON 的优势是结构清晰、可读性强、适合网络传输。很多 WebGIS 项目会用它作为前后端交换格式,例如 Leaflet、OpenLayers、Mapbox GL JS 等都能直接加载 GeoJSON。

在 GIS 桌面软件中,GeoJSON 常用于以下场景:

  • 从 WebGIS 系统导出边界、点位或路线数据。
  • 从开放数据平台下载行政区、道路、水系等矢量数据。
  • 将 QGIS 或 ArcGIS Pro 中的数据导出给前端开发使用。
  • 用 Python、GeoPandas 或 GDAL 处理空间数据后保存结果。
  • 将接口返回的空间数据转成可视化图层。

GeoJSON 默认推荐使用经纬度坐标,也就是常见的 WGS 84,EPSG:4326。但实际工作中,很多数据可能被写成了 Web 墨卡托、地方投影坐标,甚至坐标系信息缺失,这就是打开后位置不对的主要原因。

原理:QGIS 打开 GeoJSON 时到底识别了什么

QGIS 打开 GeoJSON 时,主要识别三类信息:几何类型、属性字段和坐标参考系统。坐标参考系统常简称为 CRS,也就是我们常说的坐标系或投影。

一个典型 GeoJSON 文件通常包含以下结构:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "name": "示例点"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [116.391, 39.907]
      }
    }
  ]
}

这里的 coordinates 是坐标值。对于点数据,常见顺序是 经度、纬度,也就是 X 在前、Y 在后。例如北京附近的经纬度大致是 116、39。如果你看到坐标是 12900000、4850000 这类大数值,它很可能不是 EPSG:4326,而是 EPSG:3857 Web 墨卡托或其他投影坐标。

理解这一点很重要:QGIS 打开 GeoJSON 时显示偏移、飞到奇怪位置、图层不在底图上,通常不是 QGIS 不能打开 GeoJSON,而是坐标系定义或数据坐标本身有问题。

步骤:QGIS打开GeoJSON的完整操作

步骤一:直接拖拽打开 GeoJSON

  1. 打开 QGIS。
  2. .geojson 文件直接拖到 QGIS 地图窗口。
  3. 如果图层正常加载,在左侧图层面板中会看到图层名称。
  4. 右键图层,选择缩放到图层,检查图层是否位于正确位置。

这是最简单的 QGIS 打开 GeoJSON 方法。对于标准 GeoJSON 文件,一般不需要额外设置。

步骤二:通过数据源管理器加载

  1. 在 QGIS 菜单中选择图层。
  2. 选择添加图层。
  3. 选择添加矢量图层。
  4. 数据源类型选择文件。
  5. 选择你的 GeoJSON 或 JSON 文件。
  6. 点击添加。

如果文件后缀是 .json,但内容是 GeoJSON,这种方式更稳妥。QGIS 通常会通过 GDAL/OGR 驱动识别 GeoJSON 格式。

步骤三:检查属性表和几何类型

  1. 右键 GeoJSON 图层。
  2. 选择打开属性表。
  3. 检查字段是否正常显示。
  4. 查看每条记录是否对应空间对象。
  5. 右键图层,选择属性,查看信息页中的几何类型。

如果属性表有记录但地图上看不到对象,优先检查坐标系、几何是否为空、坐标值是否异常。

步骤:QGIS打开GeoJSON后如何检查坐标系

QGIS 打开 GeoJSON 后,第一件事应该是检查 CRS。尤其是从网页、接口或第三方平台拿到的数据,不要默认它一定是 WGS 84。

  1. 右键 GeoJSON 图层。
  2. 选择属性。
  3. 进入信息或源信息页面。
  4. 查看坐标参考系统是否为 EPSG:4326、EPSG:3857 或其他坐标系。
  5. 在地图窗口底部检查项目 CRS。

如果你的 GeoJSON 是经纬度坐标,通常应该是 EPSG:4326。如果坐标值像 116.391、39.907 这种小数经纬度,却被定义成了 EPSG:3857,就会显示错误。

如果坐标值像 12956500、4852300 这种大数值,却被定义成 EPSG:4326,也会显示到错误位置,甚至无法正确显示。

判断坐标系是否正确的简单方法

坐标值特征 可能坐标系 常见判断
116、39 这类经纬度数值 EPSG:4326 中国区域经度通常约 73 到 135,纬度约 18 到 54
12900000、4800000 这类米制大数 EPSG:3857 常见于互联网地图和 WebGIS 瓦片底图
几十万、几百万的米制坐标 地方投影或高斯克吕格 需要结合数据来源和带号判断
坐标正负颠倒或纬经顺序异常 坐标顺序错误 可能把经纬度写成了纬度、经度

步骤:QGIS中GeoJSON坐标转换技巧

这里要区分两个概念:定义坐标系重投影坐标系。很多错误都来自把这两个操作混在一起。

情况一:数据坐标是对的,但 QGIS 识别错了

例如你的坐标值是 116、39 这类经纬度,但图层 CRS 被识别为错误坐标系。这时应该先修正图层定义。

  1. 右键图层。
  2. 选择图层 CRS。
  3. 选择设置图层 CRS。
  4. 选择 EPSG:4326。
  5. 缩放到图层,检查位置是否正确。

这个操作只是告诉 QGIS:这些坐标应该按哪个坐标系解释。它不会改变坐标数值。

情况二:需要把 GeoJSON 转成另一个坐标系

如果数据已经正确显示,但你希望导出为 Web 墨卡托、CGCS2000 或项目要求的投影坐标系,就需要使用重投影导出。

  1. 右键 GeoJSON 图层。
  2. 选择导出。
  3. 选择另存为。
  4. 格式选择 GeoJSON、GeoPackage 或 ESRI Shapefile。
  5. 在 CRS 中选择目标坐标系,例如 EPSG:3857 或 EPSG:4326。
  6. 设置保存路径。
  7. 点击确定。

这个操作会真正计算新的坐标值。也就是说,重投影会改变几何坐标,而不仅仅是修改坐标系标签。

情况三:GeoJSON 与底图错位

如果你的 GeoJSON 和在线底图错位,可以按这个顺序排查:

  1. 确认 GeoJSON 图层 CRS 是否正确。
  2. 确认项目 CRS 是否与底图兼容。
  3. 检查数据是否使用了 GCJ-02 或 BD-09 这类互联网偏移坐标。
  4. 确认坐标顺序是否为经度在前、纬度在后。
  5. 用一个已知位置点进行验证,例如城市中心、道路交叉口或行政边界角点。

如果数据来自国内互联网地图服务,出现几十米到几百米偏移,要特别注意坐标加密与偏移问题。这类偏移不是普通 EPSG 坐标转换可以完全解决的。

步骤:QGIS导出GeoJSON的正确方法

QGIS 不仅可以打开 GeoJSON,也可以把 Shapefile、GeoPackage、临时图层、查询结果或编辑后的图层导出为 GeoJSON。

  1. 在图层面板中右键目标图层。
  2. 选择导出。
  3. 选择另存为。
  4. 格式选择 GeoJSON。
  5. 设置文件名,建议使用英文路径和英文文件名。
  6. CRS 选择目标坐标系,WebGIS 常用 EPSG:4326。
  7. 如果只导出选中要素,勾选仅保存选中要素。
  8. 如果字段太多,可以在字段选择中取消不需要的字段。
  9. 点击确定。

如果导出的 GeoJSON 是给 WebGIS 前端使用,建议优先使用 EPSG:4326,属性字段命名尽量使用英文、数字和下划线,避免字段名过长或包含特殊符号。

常见坑:GeoJSON可以打开但显示不正常

坑一:把设置图层 CRS 当成坐标转换

设置图层 CRS 只是重新解释已有坐标,不会改变坐标值。重投影导出才会真正转换坐标。判断方法很简单:如果你需要生成一个新坐标系的数据文件,就应该使用导出另存为并设置目标 CRS。

坑二:经纬度顺序写反

GeoJSON 坐标顺序通常是经度、纬度。如果写成纬度、经度,例如把 116.391、39.907 写成 39.907、116.391,QGIS 可能会把数据放到完全错误的位置。

坑三:文件是 JSON,但不是 GeoJSON

有些 .json 文件只是普通接口返回结果,里面可能有经纬度字段,但没有标准的 FeatureCollection、Feature、geometry 结构。这样的文件不能直接作为 GeoJSON 图层打开,需要先转换为 GeoJSON。

坑四:GeoJSON 文件太大导致 QGIS 卡顿

GeoJSON 是文本格式,体积大时读取和渲染都比较慢。如果文件超过几十 MB,建议转换为 GeoPackage 或建立数据库存储,例如 PostGIS。

坑五:面数据几何无效

如果面数据存在自相交、环方向异常、空几何等问题,QGIS 可能能加载,但空间分析、导出或叠加时会报错。可以使用 QGIS 的检查有效性、修复几何工具处理。

方法比较:GeoJSON、Shapefile、GeoPackage该怎么选

格式 适合场景 优点 限制
GeoJSON WebGIS、接口交换、轻量数据发布 可读性强,前端支持好,单文件方便 大数据性能一般,不适合复杂工程长期存储
Shapefile 传统 GIS 交换、老系统兼容 兼容性非常广 多文件组成,字段名长度限制,编码问题常见
GeoPackage 桌面 GIS 项目、较大矢量数据、本地归档 单文件,支持多图层,性能较好 部分老系统支持不如 Shapefile 普遍
PostGIS 多用户、空间数据库、服务端分析 查询能力强,可建空间索引,适合生产系统 需要数据库环境和 SQL 基础

如果只是问 GeoJSON 可以用 GIS 打开吗,答案是可以。但如果你要做大量编辑、复杂空间分析或长期项目管理,不建议一直用 GeoJSON 作为主工作格式。更稳妥的做法是:GeoJSON 用于交换和发布,GeoPackage 或 PostGIS 用于分析和管理。

检查清单:QGIS打开与导出GeoJSON前后要核对什么

  • 确认文件是否为标准 GeoJSON,而不只是普通 JSON。
  • 确认几何类型是点、线、面还是混合类型。
  • 确认坐标值是否像经纬度,还是米制投影坐标。
  • 确认图层 CRS 是否正确,不要盲目重投影。
  • 确认项目 CRS 和底图 CRS 是否匹配。
  • 确认属性字段编码是否正常,中文是否乱码。
  • 确认导出路径和文件名不要包含过多特殊字符。
  • 确认导出给 WebGIS 时是否使用 EPSG:4326。
  • 确认面数据在分析前是否通过几何有效性检查。
  • 确认大文件是否需要转为 GeoPackage 或 PostGIS。

实务建议:拿到 GeoJSON 后,不要直接开始分析。先做三件事:缩放到图层、查看 CRS、打开属性表。大部分问题都能在这三步里提前发现。

FAQ:GeoJSON可以用GIS打开吗常见问题

GeoJSON 可以用 ArcGIS Pro 打开吗?

可以。ArcGIS Pro 可以加载和转换 GeoJSON,但在一些工作流中,可能需要先使用转换工具将 GeoJSON 转为要素类。对于初学者,QGIS 直接拖拽打开通常更直观。

QGIS 打开 GeoJSON 后为什么没有显示?

常见原因包括坐标系错误、坐标值异常、几何为空、图层范围不在当前视图内、文件不是标准 GeoJSON。建议先右键图层选择缩放到图层,再检查图层 CRS 和属性表记录。

GeoJSON 默认是什么坐标系?

GeoJSON 通常推荐使用 WGS 84 经纬度坐标,也就是 EPSG:4326。但实际文件未必完全遵守这个约定,所以仍然要检查坐标值和图层 CRS。

QGIS导出GeoJSON时应该选什么坐标系?

如果导出给 WebGIS 前端或接口发布,通常选择 EPSG:4326。如果导出给工程测绘、面积计算或本地分析,应根据项目要求选择合适的投影坐标系。

GeoJSON 能不能保存多个图层?

普通 GeoJSON 文件一般表示一个图层或一个要素集合。如果需要一个文件保存多个图层,更建议使用 GeoPackage。

为什么 GeoJSON 文件比 Shapefile 打开更慢?

GeoJSON 是文本格式,读取时需要解析 JSON 字符串。数据量大、节点多、属性字段多时,性能会明显下降。较大的数据建议转为 GeoPackage 或导入 PostGIS。

QGIS 可以把 Shapefile 转成 GeoJSON 吗?

可以。右键 Shapefile 图层,选择导出,另存为,格式选择 GeoJSON,然后设置目标 CRS 和保存路径即可。

结论:GeoJSON能用GIS打开,但关键是坐标和用途

GeoJSON 可以用 GIS 打开,QGIS 是最适合入门和排查问题的工具之一。实际操作时,重点不是单纯能不能打开,而是要确认坐标系是否正确、图层是否落在正确位置、属性和几何是否完整。

如果你的目标是 WebGIS 展示,GeoJSON 很合适;如果目标是大量空间分析、长期数据管理或多人协作,建议转换为 GeoPackage 或 PostGIS。掌握 QGIS 打开 GeoJSON、检查 CRS、坐标转换和导出的流程,就能处理大多数 GeoJSON 数据交换问题。