KunYu
epsgcoordinate-systemgis-basics

什么是 EPSG 编码?GIS 坐标系统标准代码完全指南

深入理解 EPSG 编码的起源、用途和常见代码,学会在 GIS 项目中正确选择和使用坐标参考系统。

KunYu TeamMarch 10, 202610 分钟阅读

你是否遇到过这样的情况:从不同来源获取的 GIS 数据叠加到一起,结果发现图层之间出现了几十甚至几百米的偏移?或者收到同事发来的数据,上面标注着 EPSG:4326,你却不确定这串数字意味着什么?

EPSG 编码是全球统一的坐标参考系统(CRS)标识符,就像每个坐标系的"身份证号码"——当你说 EPSG:4326,全世界的 GIS 工程师都知道你指的是 WGS 84。搞清楚它,是避免数据偏移的第一步。

EPSG 编码从何而来?

EPSG 的历史可以追溯到 1985 年。当时,多家欧洲石油公司在海上勘探中面临一个共同问题:各公司的测量数据使用不同的坐标系,合并处理时经常出错。为了解决这个问题,Elf Aquitaine 的首席测量师 Jean-Patrick Girbig 召集了 Agip、BP、Deminex、Shell、Statoil、Total 等公司,成立了欧洲石油勘测集团(European Petroleum Survey Group,缩写 EPSG)。

EPSG 的第一个任务就是建立一套标准化的坐标参考系统数据库。1993 年,这个数据库首次公开发布,包含 500 多个 CRS 定义。1995 年,GeoTIFF v1.0 标准采用 EPSG 编码作为坐标系标识,EPSG 由此走出石油行业,开始被整个 GIS 领域广泛使用。

2005 年,EPSG 工作组重组为 IOGP(国际油气生产商协会)大地测量分委会,但保留了 EPSG 这个已经深入人心的品牌名。截至目前,EPSG 数据集已更新至 v12.053,包含 7,000 多个 CRS 定义、2,500 多种投影方式和 2,500 多个坐标转换方法,总计超过 20,000 个条目。

EPSG 编码到底是什么?

EPSG 编码是一个 4 到 5 位的数字标识符(范围 1024–32767),用于在 EPSG 数据集中唯一标识一个坐标参考系统(CRS)、基准面(datum)、椭球体(ellipsoid)或坐标转换方法。它的技术基础是 ISO 19111 国际标准。

EPSG 编码的标准表示格式

最常见的写法是 authority:code 格式:

EPSG:4326

OGC 还定义了 URL 格式,常见于 Web 服务和 API 中:

http://www.opengis.net/def/crs/EPSG/0/4326

每个 EPSG 定义包含哪些信息?

每个代码对应的是完整的坐标系定义——椭球体(长半轴、扁率)、基准面、坐标轴方向和顺序、计量单位(度或米)、适用的地理范围,这些参数都包含在内。其中最容易踩坑的是坐标轴顺序:同样是 WGS 84,EPSG:4326 标准定义是纬度在前,但大多数 GIS 软件实际传的是经度在前。

最常用的 EPSG 编码有哪些?

下表列出了全球最常用的 EPSG 编码:

EPSG 编码 名称 类型 坐标单位 典型用途
4326 WGS 84 地理坐标系 度(经纬度) GPS、全球数据交换
3857 Web Mercator 投影坐标系 网页地图(Google Maps、OSM)
4490 CGCS2000 地理坐标系 度(经纬度) 中国国家标准
4269 NAD83 地理坐标系 度(经纬度) 美国、加拿大
32601–32660 UTM 北半球各带 投影坐标系 局部高精度测量
32701–32760 UTM 南半球各带 投影坐标系 局部高精度测量
2154 RGF93 / Lambert-93 投影坐标系 法国
27700 OSGB 1936 投影坐标系 英国

EPSG:4326 vs EPSG:3857——最容易混淆的两个编码

这两个编码是 GIS 开发者最常打交道的,也是最容易混淆的:

EPSG:4326(WGS 84) 是一个地理坐标系,使用经纬度表示位置,单位是度(degree)。GPS 接收器输出的原始坐标就是 WGS 84。它适用于数据存储和交换。

EPSG:3857(Web Mercator) 是一个投影坐标系,将地球投影到平面上,单位是米(metre)。2005 年 Google Maps 发布时采用了这种投影,随后几乎所有网页地图都跟进了。它适用于地图显示和渲染。

EPSG:3857 有一段有趣的历史:EPSG 最初拒绝将其收录,因为它使用球面公式近似椭球体,被认为"技术上有缺陷"(technically flawed)。直到 2009 年,EPSG 才正式收录这个编码。尽管如此,3857 不适合精确面积和距离测量,与标准 Mercator 相比存在约 0.33% 的尺度误差。

关键原则:4326 用于存储,3857 用于显示。 坤舆的坐标转换工具支持这两者互转。

如何查找你需要的 EPSG 编码?

场景一:知道坐标系名称

如果你知道坐标系的名称(如"WGS 84"或"CGCS2000"),直接在 EPSG 坐标系搜索工具 中输入关键词即可。工具支持按编码、名称和区域搜索 8,000 多个 EPSG 定义。

场景二:知道地理位置,不知道用哪个 EPSG

当你需要为某个地区选择合适的投影坐标系时,可以使用 EPSG Finder 工具——在地图上点击或框选一个区域,工具会自动列出该区域适用的所有 EPSG 编码。

场景三:收到数据但不确定 EPSG

检查数据附带的元数据文件。Shapefile 格式会有一个 .prj 文件(用文本编辑器就能打开)包含 WKT 格式的坐标系定义;GeoTIFF 的元数据中也通常包含 EPSG 信息。用 GDAL 命令行可以快速查看:

# 使用 GDAL 查看文件的坐标系信息
gdalsrsinfo input.tif

# 查看 Shapefile 的 .prj 文件
cat data.prj

EPSG 查询

搜索和浏览 EPSG 坐标参考系数据库。

Try it now

EPSG 在主流 GIS 软件中怎么用?

几乎所有 GIS 软件和编程库都以 EPSG 编码作为坐标系的标准标识。

QGIS:项目属性 → CRS 面板中可以按 EPSG 编码搜索和切换坐标系。QGIS 默认使用 EPSG:4326。

GDAL/OGR:命令行中直接使用 EPSG 编码指定目标坐标系:

# 将 Shapefile 从 NAD83 转换为 WGS 84
ogr2ogr -s_srs EPSG:4269 -t_srs EPSG:4326 output.shp input.shp

PROJ 库:开源坐标转换引擎,底层数据库(proj.db)整合了 EPSG、IGNF、ESRI 三套坐标系定义。

编程库中同样使用 EPSG 编码作为标识:

// Proj4js (JavaScript) — 定义坐标系并转换
import proj4 from "proj4";

proj4.defs("EPSG:4490", "+proj=longlat +ellps=GRS80 +no_defs");
const result = proj4("EPSG:4326", "EPSG:4490", [116.4074, 39.9042]);
# pyproj (Python) — EPSG 坐标转换
from pyproj import Transformer

transformer = Transformer.from_crs("EPSG:4326", "EPSG:3857", always_xy=True)
x, y = transformer.transform(116.4074, 39.9042)

EPSG 查找器

通过地图点击或框选查找适用的 EPSG 代码。

Try it now

常见问题

EPSG:4326 和 CRS:84 有什么区别?

两者都是 WGS 84,但坐标轴顺序不同。EPSG:4326 的标准定义是纬度在前、经度在后(lat, lng),而 CRS:84 是经度在前、纬度在后(lng, lat)。GeoJSON 标准用的是 lng, lat,但 Leaflet 的 L.latLng() 是 lat, lng——混用的结果不是明显的坐标对调,而是地图上的点位随机散落。

我的数据偏移了几十到几百米,是什么原因?

最常见的原因是 EPSG 选错了。例如混用 WGS 84(EPSG:4326)与本地基准面(如 NAD27、Beijing 1954),或者在中国场景下混用 WGS 84 与 GCJ-02(火星坐标)。坐标系不匹配会导致几米到几百米不等的系统性偏移。

EPSG 编码会过期吗?

会更新,但不会被删除或重新分配。IOGP 大地测量分委会定期更新 EPSG 数据集,已废弃的编码会标记为 deprecated,同时指向替代编码。

中国的国家标准坐标系用哪个 EPSG?

中国 2000 国家大地坐标系(CGCS2000)对应 EPSG:4490。需要注意的是,GCJ-02(火星坐标,高德/腾讯地图使用)和 BD-09(百度坐标)是国家测绘局要求的非标准加密坐标系,它们没有 EPSG 编码。如果你需要在这些坐标系之间转换,可以使用坤舆的坐标转换工具,它内置了 GCJ-02 和 BD-09 的偏移算法。

覆盖 90% 场景的那条规则

记住核心原则:4326 存储交换,3857 网页显示。遇到不确定的坐标系,用 EPSG 搜索按名称查,用 EPSG Finder按地图位置查。