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 数据