GIS

CRS是什么

了解GIS中CRS(Coordinate Reference System)的基本概念、坐标系、EPSG、地理坐标系与投影坐标系之间的关系。

阅读约 46 分钟

CRS是什么

CRS(Coordinate Reference System)即坐标参考系统

它用于告诉GIS:

一组坐标到底代表地球上的什么位置,以及这些坐标应该如何进行空间计算和地图显示。

例如:

116.397
39.908

单独看到这两个数字,并不能完整确定它们的含义。

只有知道它使用的CRS,例如:

EPSG:4326

才能正确理解这组坐标。

CRS有什么作用

CRS主要用于:

  • 描述坐标的空间参考
  • 确定地理位置
  • 统一不同GIS数据
  • 进行坐标转换
  • 地图投影
  • 距离计算
  • 面积计算
  • 空间分析
  • GIS数据可视化

简单来说:

坐标
+
CRS
↓
确定真实空间位置

为什么需要CRS

地球是一个三维的近似球体,而地图通常需要在二维平面上显示。

因此GIS必须解决一个问题:

如何把地球上的位置表示成计算机可以处理的坐标?

例如:

地球
 ↓
坐标参考系统
 ↓
坐标
 ↓
地图

不同CRS可能使用完全不同的坐标表示方式。

同一个地点在不同CRS下,坐标数字可能完全不同。

CRS与坐标的关系

例如:

POINT (116.397 39.908)

如果使用:

EPSG:4326

通常表示:

经度 = 116.397
纬度 = 39.908

但如果使用投影坐标系,同样的地理位置可能表现为:

X = 12960000
Y = 4850000

所以:

相同地点
    ↓
不同CRS
    ↓
不同坐标值

这也是GIS开发中非常重要的概念。

地理坐标系

地理坐标系(Geographic Coordinate System,GCS)通常使用经度和纬度描述地球上的位置。

例如:

Longitude
Latitude

也就是:

经度
纬度

常见表示方式:

POINT (116.397 39.908)

其中:

X = 经度
Y = 纬度

地理坐标系通常以角度作为坐标单位。

EPSG:4326

EPSG:4326是GIS中非常常见的坐标参考系统。

它对应:

WGS 84

通常用于全球经纬度数据。

例如:

POINT (116.397 39.908)

可以表示:

经度:116.397°
纬度:39.908°

常见于:

  • GPS
  • GeoJSON
  • GPS轨迹
  • 全球地图数据
  • Web GIS数据交换

因此看到:

EPSG:4326

通常可以联想到:

WGS84
经度 + 纬度

投影坐标系

投影坐标系(Projected Coordinate System,PCS)是将地球表面的空间位置通过地图投影转换到二维平面。

它通常使用:

X
Y

并且单位通常是:

例如:

X = 12900000
Y = 4800000

与经纬度相比,投影坐标更适合进行:

  • 距离计算
  • 面积计算
  • 缓冲区分析
  • 工程测量
  • 城市空间分析

地理坐标系与投影坐标系

两者可以简单理解为:

地理坐标系
    ↓
经度 + 纬度
    ↓
角度单位

而:

投影坐标系
    ↓
X + Y
    ↓
通常使用米

因此:

类型常见坐标常见单位常见用途
地理坐标系经度、纬度全球定位、数据交换
投影坐标系X、Y测量、分析、制图

CRS与地图投影

地球表面是曲面,而屏幕和纸张是平面。

因此将地球数据显示到地图上时,需要使用地图投影。

基本过程:

地球表面
    ↓
地图投影
    ↓
二维平面
    ↓
地图

不同投影会产生不同程度的:

  • 距离变形
  • 面积变形
  • 角度变形
  • 形状变形

因此不存在一个适合所有场景、完全没有变形的地图投影。

EPSG是什么

EPSG是一套非常常见的坐标参考系统标识体系。

GIS软件通常使用类似下面的代码标识CRS:

EPSG:4326
EPSG:3857

其中:

EPSG:4326

表示一个具体的坐标参考系统。

因此:

EPSG代码
    ↓
唯一标识一个CRS

在GIS开发中,经常通过EPSG代码指定地图和数据使用的CRS。

EPSG:3857

EPSG:3857是Web GIS中非常常见的投影坐标参考系统。

它广泛用于:

  • Web地图
  • 在线地图
  • 地图瓦片
  • Web GIS

很多互联网地图服务会使用Web Mercator投影。

例如:

OpenLayers
Leaflet
MapLibre

等Web GIS技术中经常会遇到:

EPSG:3857

需要注意的是:

EPSG:3857适合Web地图显示,但并不适合所有距离和面积计算场景。

EPSG:4326与EPSG:3857

这两个CRS非常容易混淆。

可以简单记住:

EPSG:4326
    ↓
经纬度
    ↓
WGS84

而:

EPSG:3857
    ↓
Web Mercator
    ↓
Web地图

两者表示的是不同的坐标参考方式。

同一个地点:

EPSG:4326
116.397, 39.908

转换到:

EPSG:3857

之后,坐标数字会发生变化。

坐标转换

当两个GIS数据使用不同CRS时,需要进行坐标转换。

例如:

数据A
EPSG:4326
    ↓
Coordinate Transformation
    ↓
EPSG:3857
    ↓
数据B

转换前:

116.397
39.908

转换后可能变成:

12956000
4850000

实际数值取决于具体位置和坐标参考系统。

为什么地图会“跑偏”

GIS开发中一个非常常见的问题就是:

数据明明是正确的,但是显示位置完全不对。

最常见原因之一就是CRS不一致。

例如:

地图
EPSG:3857

数据
EPSG:4326

如果直接把4326坐标当成3857坐标使用:

116
39

就会被错误地理解为投影平面坐标。

结果可能导致:

Feature
    ↓
出现在错误位置

所以在GIS开发中必须明确:

数据CRS
+
地图CRS
+
是否需要转换

CRS与Geometry

Geometry本身主要描述:

坐标
+
空间形状

而CRS负责解释这些坐标。

因此可以理解为:

Geometry
├── Coordinates
└── CRS

例如:

POINT (116.397 39.908)
CRS = EPSG:4326

这时才能正确解释这个Point的位置。

CRS与Feature

Feature通常包含Geometry。

因此CRS最终会影响Feature的空间位置。

关系可以理解为:

Feature
 ↓
Geometry
 ↓
Coordinates
 ↓
CRS
 ↓
真实空间位置

如果CRS错误,Feature的空间位置也可能错误。

CRS与GeoJSON

GeoJSON是Web GIS中常见的数据格式。

例如:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [116.397, 39.908]
  },
  "properties": {
    "name": "北京"
  }
}

现代GeoJSON通常按照WGS84经纬度坐标表达数据。

因此处理GeoJSON时,需要特别注意:

coordinates
    ↓
通常按照经度、纬度理解

如果需要在其他投影坐标系中进行分析,通常需要先进行坐标转换。

CRS与WKT

WKT主要用于描述Geometry,也可以在更完整的空间参考表示中关联坐标参考信息。

例如Geometry:

POINT (116.397 39.908)

如果知道:

EPSG:4326

就可以正确理解这个Geometry。

在GIS数据处理中,经常会看到:

Geometry
+
CRS

一起使用。

CRS与空间分析

CRS会直接影响很多空间计算。

例如:

距离

Point A
    ↓
Distance
    ↓
Point B

如果使用适合的投影坐标系,可以更方便地进行以米为单位的距离计算。

面积

Polygon
    ↓
Area
    ↓
平方米

如果直接使用经纬度坐标进行面积计算,通常不能简单地把经纬度差值当成平方米。

因此空间分析时必须选择合适的CRS。

如何选择CRS

选择CRS时需要考虑:

数据在哪里

不同地区可能有适合当地测量和制图的坐标系统。

做什么分析

如果主要用于:

地图显示

可以选择适合Web地图的CRS。

如果主要用于:

距离
面积
缓冲区
工程分析

则通常应该选择适合研究区域的投影坐标系。

数据最终在哪里使用

例如Web GIS项目通常需要考虑:

数据CRS
+
地图底图CRS
+
前端地图框架

CRS常见问题

经纬度顺序错误

例如:

[116.397, 39.908]

通常表示:

经度, 纬度

如果错误写成:

[39.908, 116.397]

就可能导致位置完全错误。

数据没有CRS

如果只有:

116.397
39.908

但不知道使用什么CRS,就无法可靠判断其真实位置。

CRS定义错误

数据实际上使用:

EPSG:4326

却被错误标记为:

EPSG:3857

也会造成地图位置错误。

不同数据CRS不一致

例如:

图层A
EPSG:4326

图层B
EPSG:3857

如果没有正确进行转换或重投影,两者可能无法正确叠加。

CRS、坐标系、投影的关系

可以用下面的结构理解:

CRS
│
├── 地理坐标参考系统
│   └── 经度 + 纬度
│
└── 投影坐标参考系统
    └── X + Y
         ↓
       地图投影

因此:

坐标
    ↓
CRS解释坐标
    ↓
确定空间位置
    ↓
地图投影
    ↓
地图显示

总结

CRS是GIS中用于定义和解释空间坐标的坐标参考系统。

最重要的几个概念是:

CRS
 ↓
Coordinate Reference System
 ↓
坐标参考系统

常见CRS:

EPSG:4326
    ↓
WGS84
    ↓
经度 + 纬度

EPSG:3857
    ↓
Web Mercator
    ↓
Web地图常用投影

可以记住:

坐标告诉GIS“数字是多少”,CRS告诉GIS“这些数字应该如何解释”。

在GIS开发中,只要涉及地图、GeoJSON、WKT、Shapefile、坐标转换、距离计算和空间分析,都需要正确理解和使用CRS。

🧰

相关工具

使用 IYATools 在线工具快速处理 GIS 数据