GeoJSON是什么格式?GeoJSON转SHP及ArcGIS打开方法
很多同学第一次拿到 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在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 决定了要素类型,常见值包括 Point、LineString、Polygon、MultiPoint、MultiLineString 和 MultiPolygon。coordinates 保存坐标数组,properties 对应属性表。
标准 GeoJSON 使用 WGS 84 地理坐标,单位是十进制度。坐标顺序要特别注意:数组里通常是经度在前、纬度在后,也就是 [longitude, latitude],不是很多表格里常见的“纬度、经度”。如果把顺序写反,点位可能会落到错误国家、海里或完全不可见的位置。
GeoJSON转SHP:ArcGIS Pro、QGIS和GDAL三种做法
GeoJSON转SHP 没有唯一工具。GIS 初学者建议用 ArcGIS Pro 或 QGIS;数据工程场景建议用 GDAL 的 ogr2ogr 批量转换。无论用哪种方法,转换前都先确认三件事:文件能被文本编辑器正常打开、几何类型不要混在一起、字段名和中文编码要提前规划。
方法一:ArcGIS Pro中先转要素类,再导出SHP
- 打开 ArcGIS Pro,在 Geoprocessing 面板搜索 JSON To Features。
- Input JSON or GeoJSON 选择你的
.geojson文件。如果文件后缀是.json,但内容确实是 GeoJSON,建议先另存或改名为.geojson,避免工具识别歧义。 - Output Feature Class 建议先输出到 File Geodatabase,例如
project.gdb/roads_from_geojson。 - Geometry Type 按数据实际类型选择 Point、Polyline 或 Polygon。如果选错类型,输出可能为空。
- 运行后检查属性表、空间位置和坐标系。确认无误后,右键要素类,选择导出要素,输出到普通文件夹并命名为
roads.shp。
ArcGIS Pro 这条路径适合已经在 ArcGIS 项目里工作的用户。建议不要一开始就直接追求 SHP 输出,先落到 File Geodatabase 更容易检查字段和几何,再按交付要求导出 SHP。
方法二:QGIS中另存为ESRI Shapefile
- 打开 QGIS,选择添加矢量图层,数据源选择 GeoJSON 文件。
- 图层加载后先右键缩放到图层,确认空间位置是否正确。
- 右键图层,选择导出或另存为。
- 格式选择 ESRI Shapefile,文件名设置为
xxx.shp。 - CRS 根据用途选择。仅交换原始 GeoJSON 时通常保留 EPSG:4326;要做距离、面积或本地工程制图时,应在后续投影到合适的投影坐标系。
- 编码建议选择 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 工具完成转换。
- 确认文件扩展名是
.geojson,内容最外层是FeatureCollection或单个Feature。 - 在 ArcGIS Pro 中打开 Analysis 选项卡,进入 Tools。
- 搜索 JSON To Features,选择 GeoJSON 文件作为输入。
- 输出位置优先选择 File Geodatabase,而不是直接覆盖已有 SHP。
- 按数据类型设置 Geometry Type。点数据选 Point,线数据选 Polyline,面数据选 Polygon。
- 运行后把结果添加到地图,右键图层缩放至图层,检查是否落在正确区域。
- 打开属性表,确认关键字段是否存在,中文是否乱码,日期字段是否需要重新计算。
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 基础上规定了 Feature、geometry、coordinates 和 properties 等地理数据组织方式。
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 的限制混在一起造成数据质量问题。
-
QGIS Processing报错:Processing错误和处理工具箱打不开 2026-06-11 20:55:46
-
ArcGIS Pro字段计算器:数值涵义和顺序编号 2026-06-11 11:39:27
-
ArcPy栅格计算:arcpy.sa和栅格计算器排查 2026-06-11 10:48:22
-
ArcPy字段计算:AddField、字段映射和更新游标 2026-06-11 09:49:34
-
Leaflet加载WMTS:瓦片地图和离线地图配置 2026-06-11 03:40:08
-
ArcPy投影转换:定义投影、重投影和空间参考 2026-06-10 20:51:20
-
ArcPy批量裁剪:批处理栅格处理和输出检查 2026-06-10 18:47:40
-
ArcPy批量出图:arcpy.mp导出PDF和批量制图 2026-06-10 08:40:05
-
QGIS修复无效几何:修复几何和几何修复流程 2026-06-10 03:48:19
-
无人机航线规划软件:规划方法和规划步骤 2026-06-09 15:16:34
-
无人机测绘流程:软件有哪些、数据处理和精度 2026-06-09 13:32:14
-
Cesium影像加载失败:本地影像和TIF加载排查 2026-06-09 09:02:22
-
Cesium地形加载失败:本地地形和地形数据排查 2026-06-08 18:59:46
-
Cesium倾斜摄影:加载倾斜摄影、贴地和高度偏移 2026-06-08 17:58:00
-
GeoPandas写入PostGIS:to_postgis、read_postgis和读取PostGIS 2026-06-08 08:36:15
-
ArcGIS Pro计算字段工具:选择集计算和函数用法 2026-06-07 23:41:27
-
ArcPy自动制图:地图导出、批量导出地图和PDF 2026-06-07 21:30:36
-
GDAL影像拼接:合并TIF、获取影像范围和图像融合 2026-06-07 19:24:48
-
DEM生成等高线:怎么用DEM生成等高线地形图 2026-06-07 14:47:02
-
哨兵数据下载:哨兵2数据下载步骤和网站 2026-06-07 05:55:02