(这篇文章经过chatGPT润色)

刚学 GIS 的时候,坐标系真的很容易把人绕晕。

什么地理坐标系、投影坐标系、WGS84、北京54、CGCS2000、Define Projection、Project……名字都很像,但意思完全不一样。

我也是反复踩坑之后,才终于把这块理顺。这里整理成一篇笔记,看完之后,至少能搞明白这几个问题:

  • 地理坐标系和投影坐标系到底有什么区别

  • 为什么同一个地方,换个坐标系数值就变了

  • ArcGIS 里的 Define 和 Project 到底差在哪

  • 平时处理下载的数据,应该按什么顺序统一坐标系


一、先搞清楚:坐标系其实主要分两层

GIS 里的坐标系,最核心的其实就是两类:

  • 地理坐标系

  • 投影坐标系

可以把它们理解成:

  • 地理坐标系:决定“地球长什么样”

  • 投影坐标系:决定“怎么把地球画到平面上”

  • 图片由nano banana pro绘制

二、什么是地理坐标系?

地理坐标系,英文叫 GCS(Geographic Coordinate System)

这个东西可以简单理解成:用来描述地球的数学模型

因为地球不是一个完美的球体,所以在 GIS 里,必须先假设一个“地球模型”,然后才能确定一个地点的位置。

地理坐标系通常用:

  • 经度

  • 纬度

来表示位置,单位一般是 度(°)

常见的地理坐标系有:

  • WGS84:最常见,很多 GPS、谷歌地球、网络地图数据都用它

  • CGCS2000:我国目前常用的国家坐标基准

  • 西安80

  • 北京54

你可以这样记:

地理坐标系就是“底子”

底子不对,后面全都容易错。


三、什么是投影坐标系?

投影坐标系,英文叫 PCS(Projected Coordinate System)

它的作用就是把球面上的经纬度,转换成平面上的坐标。

因为我们在 GIS 里经常要做这些事:

  • 算距离

  • 算面积

  • 做缓冲区

  • 做叠加分析

  • 做栅格运算

这些操作如果直接用经纬度,往往不方便,或者误差大。所以要先把经纬度“摊平”,变成平面坐标。

这时候坐标单位通常就不再是“度”了,而是:

  • 有时也可能是千米等

常见的投影坐标系或投影方式有:

  • Albers(阿尔伯斯)

  • 高斯-克吕格

  • UTM

  • Web 墨卡托

你可以这样记:

投影坐标系就是“画法”

地理坐标系是地球的底子,投影坐标系是把这个底子画到平面上的方法。


四、一句话记住两者区别

这一句最重要:

地理坐标系是底子,投影坐标系是画法。

再直白一点:

  • 地理坐标系决定“这个点在地球上怎么表示”

  • 投影坐标系决定“这个点在地图平面上怎么表示”


五、为什么同一个地方,换个坐标系后坐标值会变?

很多新手都会疑惑:

明明是同一个地方,为什么换了坐标系以后,经纬度或者坐标数值变了?

原因其实不难理解。

地球上的那个点的真实位置当然没动,变的是描述它的位置的方法

比如:

  • 在 WGS84 下,这个点算出来是一组经纬度

  • 在北京54 下,这个点又会算出另一组经纬度

就像同一个长度:

  • 用厘米量,是一个数

  • 用英寸量,又是另一个数

数字变了,但东西还是同一个东西。

所以坐标转换的本质就是:

  1. 先确定这个点真实在地面上的位置

  2. 再按照新的坐标系规则,重新计算它的坐标值

所以转换之后,坐标数值会变,但位置应该还是能对上。


六、几种常见坐标系之间,大概会差多少?

这个在实际工作里特别重要。

1. WGS84 和 CGCS2000

这两者非常接近,很多普通应用里差别非常小,通常不太容易看出明显偏移。

所以平时如果只是普通制图、一般叠加展示,很多时候看起来像是能对上的。

但如果是高精度工作,还是要尽量区分清楚。

2. WGS84 / CGCS2000 和 西安80 / 北京54

这几种就不能随便混用了。

如果不做正规转换,直接叠加,通常会出现明显偏移,常见是几十米到上百米,严重时会直接影响分析结果。

所以只要涉及:

  • 北京54

  • 西安80

  • WGS84

  • CGCS2000

这几类数据混用时,一定要注意先确认坐标基准,再做正规转换。


七、新手最容易踩的坑:Define Projection 和 Project 根本不是一回事

ArcGIS 里这两个功能特别容易混淆,但它们完全不是一个东西。


八、Define Projection 是干什么的?

Define Projection(定义投影),本质上只是:

给数据贴一个“这是什么坐标系”的标签

注意,它不会改坐标值

也就是说:

  • 原来的坐标数字是多少,执行完还是多少

  • 它只是告诉软件:“这些数字应该按哪个坐标系来理解”

它适合什么情况?

只有这两种情况适合用:

  1. 数据本来没有坐标系信息

  2. 数据的坐标系标签写错了,但你明确知道它原本是什么坐标系

它不适合什么情况?

不适合拿来“转换坐标系”。

很多人以为 Define 一下,就等于把数据从 WGS84 变成北京54 了,这是错的。坐标数字没变,但软件开始按北京54去理解这些数字,结果整个数据位置就跑偏了


九、Project 才是真正的坐标转换

Project(矢量)Project Raster(栅格) 才是真正的坐标转换工具。

它做的事情是:

  • 读取原始坐标系

  • 根据转换关系重新计算坐标

  • 生成一个新的坐标结果

所以执行完以后,坐标数值会发生变化

这才叫真正把数据从一个坐标系转换到另一个坐标系。


十、最经典的错误操作:把 Define 当成转换工具

这是新手最常见的坑。

比如一个数据原本是 WGS84,结果有人直接用 Define Projection 把它“改成”北京54。

会发生什么?

  • 坐标数字没变

  • 但软件开始按北京54去理解这些数字

  • 结果整个数据位置就跑偏了

这时候不是数据真的转换成功了,而是标签贴错了

所以一定要记住这句话:

Define 只改标签,不改坐标。
Project 才是真正改坐标。


十一、平时下载的杂数据,正确处理顺序是什么?

这个非常实用。

平时从网上下载的数据,或者不同单位给的数据,坐标系经常不统一。最稳妥的处理流程一般是这样:

第一步:先看原始坐标系

先确认每个数据到底是什么坐标系。

重点看它属于哪一种地理坐标基准,比如:

  • WGS84

  • CGCS2000

  • 西安80

  • 北京54

如果连原始坐标系都没搞清楚,后面很容易越处理越乱。


第二步:先统一地理坐标系

这是最关键的一步。

比如你的项目最终想统一到 CGCS2000,那就先把其他数据正规转换到 CGCS2000。

注意:

  • 这里要用 Project / Project Raster

  • 不是用 Define

因为这一步是要真正把不同基准的数据转换到同一个基准下。


第三步:再统一投影坐标系

当地理坐标系已经统一以后,再根据你的分析目的,选择合适的投影坐标系。

比如:

  • 做大范围面积统计:可以考虑等积投影

  • 做局部分析:可以选更适合当地的投影

  • 做普通显示:也可以统一成项目里常用的投影

这一部分的核心思路就是:

先统一地理坐标系,再统一投影坐标系。


十二、为什么很多人明明都“统一坐标系”了,还是会错位?

因为很多人只做了“表面统一”,没做“真正统一”。

常见问题有这几种:

1. 只看投影,不看地理坐标系

有些数据看起来都是什么 Albers、UTM、高斯投影,但它们背后的地理坐标系可能不一样。

也就是说:

  • 表面上投影名字差不多

  • 实际底子不同

  • 叠加后照样错位

2. 用 Define 代替 Project

这是最常见的问题。以为点一下 Define 就完成转换了,实际上只是改了标签。

3. 原始坐标系本来就标错了

有些外来数据自带的坐标系信息就不一定靠谱,尤其是一些下载的老数据、别人转来转去的数据。

所以遇到错位时,不要只信文件属性,最好结合:

  • 数据范围

  • 坐标数值大小

  • 与底图对比情况

  • 历史来源说明

综合判断。


十三、给新手的几个实用判断方法

1. 看单位

如果坐标是这种形式:

  • 103.25

  • 31.08

这种一般大概率是经纬度,也就是地理坐标系。

如果坐标是这种形式:

  • 345678.9

  • 3456123.4

这种通常是投影坐标,单位一般是米。

2. 看数据范围

如果数据在中国,但叠加到底图上跑到了海里、非洲或者别的地方,八成就是坐标系有问题。

3. 看是否整体平移

如果两个数据形状很像,只是整体平移了一段距离,这通常很像是坐标基准没统一,比如 WGS84 和北京54 直接叠加了。

4. 看是不是“标签贴错”

如果一个数据原本正常,Define 之后突然飞走了,那大概率就是把正确数据错误定义成别的坐标系了。


十四、最后总结

  1. 地理坐标系是底子,投影坐标系是画法

  2. 地理坐标系错了,整个数据都会歪

  3. 同一个地点在不同地理坐标系下,坐标数值可以不同

  4. Define 只贴标签,不改坐标

  5. Project 才是真正转换坐标

  6. 处理外来数据时,先统一地理坐标系,再统一投影坐标系

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐