聊聊GIS中的坐标系|再版

本文约6500字,建议阅读时间15分钟。php

做者:博客园/B站/知乎/csdn/小专栏 @秋意正寒html

版权:转载请告知,并在转载文上附上转载声明与原文连接(http://www.javashuo.com/article/p-fxqpxnbk-cd.html)。程序员

【目录】算法

  • 1. 经纬度与米【告诉你们GIS中的坐标系核心的两种坐标系定义,地理坐标系统vs投影坐标系统】
  • 2. 为何有两种表达(不一样点)
  • 3. 内在联系(相同点)【指出投影坐标系统的广义定义,即PCS=f(GCS)】
  • 4. 经常使用坐标系统(4.1 WKID;4.2 地理坐标系统;4.3 投影方法;4.4 投影坐标系统;4.5 GCJ02与BD09;4.6 经纬度直投)
  • 5. 经常使用坐标系统的判别与经常使用软件中的操做(待补充)
  • 个人牢骚与参考文档

1. 经纬度(例: 119.32°E, 32.48°N)与(∟, 直角坐标)

让基础浅薄的同窗、GIS外行疑惑的,可能就是这两种“单位”的坐标值,以及他们的转换了吧。spring

2019年是一个不一样寻常的年份,大大小小的地震总能被人民日报大V转发。编程

地震信息通常会带什么呢?api

这是一条地震消息,它除了时间、地震等级等消息外,有一个很重要的消息:北纬36.16度,东经98.93度,为了方便,咱们用数学的坐标表示法:网络

点P,P(98.93°E, 36.16°N)函数

其中,E就是单词East(东),N就是单词North(北)。工具

咱们先引入两个定义(敲重点):

  • 地理坐标系统(英文简写GCS,Geographical Coordinate System)
  • 投影坐标系统(英文简写PCS,Projection Coordinate System)

上述地震点,它用角度值来表示某个点,尽管角度值能够是十进制度,也能够是度分秒(参考初中数学知识)咱们说,这种表示空间上的点所用到的坐标参考,叫作地理坐标系统。

与之相对的,用米、公里这种单位表达的,咱们在初中数学里很熟悉的,用笛卡尔平面直角坐标系表示的点,咱们说它用的是“投影坐标系统”。

注意了!

这个定义是严格的,请用这一组概念继续阅读,我知道读者可能在此以前会看过所谓的“大地坐标系统”、“平面坐标”、“经纬度坐标”等表达,可是,至少在我这里,请用个人这组定义。

咱们如今说的,是地理数据的数学基础,即坐标系它本身自己的定义,如今,我说地理数据用的坐标系有“地理坐标系统”和“投影坐标系统”两种,但不止这两种。

2. 为何有两种表达(不一样点)

为何会有这些差异呢?

咱们还要从地球的形状提及。地球是一个近似的椭球,越靠近赤道,越肥。固然,这个“肥”在地球这个尺度下,好几千公里vs20公里,几乎看不出来。

咱们GIS是讲究数学的,必须用数学的语言。地球既然是个“椭球”,天然就能够用三维的坐标系统来描述。经纬度,就是解析立体几何里用的“球面坐标系统”。

有好奇的同窗会问了,三维坐标有三个坐标值啊,为何只有经纬度呢?(笑)

在这,咱们不画图,也不展开,我在以后的讲解种会展开地理坐标系统的严格定义。可是投影坐标系统的广义定义很是简单,下一节就讲了。

如今,在数学上,只需知道(经度、纬度)是球面坐标系的下的两个份量罢了。

而在地理上,(经度、纬度)则是用角度值表达的“地理坐标系统”的两个份量。

咱们拿一个地球仪来看看:

若是初中地理知识过关的话,我认为都能认出:南北极点的经线很是密集,纬线干脆就从赤道的一个大圆变成了一个点。反而越靠近赤道,纬线圈越大,经线圈的距离也越大。

咱们计算矩形的面积是怎么计算的了?

S=a×b,a为长边长,b为短边长。

这种“非线性”的变化,就不能用1个经度×1个纬度来表示面积了,由于不一样经纬度的地方,1个经度和1个纬度表明的长度并不同。

正是这个“几何上的计算”的麻烦,因此在计算几何有关值(长度、面积)时,你们更喜欢在【笛卡尔直角坐标系】上计算,也即“投影坐标系统”。

一般,在表示位置的时候,咱们喜欢说“xx度东经,yy度北纬”,由于这个基于整个地球,用这简单的两三位数字(不包括小数)就能够精肯定位到地球的任意一点。

而在局部某个地区,能够是某个市的行政区,某个省的某几个市,咱们喜欢用平面直角坐标来计算长度、面积。

这就是“地理坐标系统”和“投影坐标系统”的一个最原始的需求差别。

事实上,用角度来计算面积在高等数学中并不是难事,可是,能用S=a×b来算,先人就不会用复杂的表达式了。

因此,

既然一个擅长定位,一个擅长计算,两者是如何联系在一块儿的呢?

是啊,咱们只有一个地球,可是能够用不一样的表达方法(没错,就是坐标系统)来描述同一个地方,坐标系这个小东西确实让一些人头疼啊。

3. 内在联系(相同点)

上来开大,投影坐标系统的广义定义以下:

投影坐标系统 = f(地理坐标系统)

咱们说,投影坐标系统是基于一个法则f和一个地理坐标系统而定义的。

这个定义是一个广义定义,有更精确的定义于之后讲解。

  • 法则f:学名“投影方法”,简称“投影”
  • 地理坐标系统:非精肯定义见上文

为何球面坐标(角度值)能经过一个投影方法f计算获得平面直角坐标(公里、米)呢?

如何以曲化直呢?

这得得益于数学家的功劳,赶忙给高斯、牛顿、莱布尼茨、拉格朗日、欧拉这些大佬烧香啊~

举个最简单的例子,在平面上,用角度+长度表达的极坐标就能经过一组简单的公式换算到平面直角坐标:

  • x=R×sin∠A
  • y=R×cos∠A

具体定义不扯太远,可是,这个法则f远远比这两个公式复杂得多。

在这里,只需记住,一个投影坐标系统,必然包括一个投影方法和一个地理坐标系统的定义

那么,

  • 投影方法有哪些呢?
  • 地理坐标系统有哪些呢?
  • 基于某个地理坐标系统,又有哪些投影坐标系统呢?
  • 在软件上又是如何识别和计算、操做的呢?

死亡四连问啊,不要紧,立刻解答。

4. 经常使用坐标系统

4.1. 一对名词:WKID与EPSG

WKID即Well Known ID,众所周知的ID号的意思。EPSG是管理这些ID号的一个组织,网站是epsg.io

一般来讲,一个GIS里的坐标系统,必须有一个WKID,某些特别的除外,下面会讲。

例如,WKID=4326,即WGS84这个地理坐标系统的ID。

注意!!!

地理坐标系统和投影坐标系统均使用这套定义,可是不会重复,也没有规律说哪一段数字是地理坐标系统,哪一段是投影坐标系统。

幸运的是,咱们并不须要彻底记完,网上这个WKID大全列表很容易找到,并且只需记住项目中用的、以及常见的便可。

4.2. 常见地理坐标系统及WKID

①WGS84(WKID=4326)

美国GPS使用的一个全球地理坐标系统,osm地图、谷歌地图(国外版)、Landsat系列卫星影像图等均在地理坐标系统上使用了这个,有许多开发地图的api默认是使用WGS84的,WGS84使用极其普遍。

全称 World Geodetic System 1984。咱们在网上交流的数据大多数也是WGS84的,毕竟osm地图是开源免费的,任意下载。

须要注意的是,加密前的高德、百度用的也是WGS84,有关高德百度等常见国内电子地图的坐标系统,在4.5节会详细介绍。

②CGCS2000(WKID=4490)

我国的GPS系统-北斗导航系统以及国家发行的“天地图”,用的是这一套地理坐标系统,中文名“中国国家2000地理坐标系统”,英文全称翻译名“中国大地坐标系2000”。

英文名 China Geodetic Coordinate System 2000。

③北京5四、西安80

是我国已经逐渐中止使用的两个地理坐标系统。

北京54坐标系统WKID是4214,西安80坐标系统的WKID是4610。

尽管有大量历史遗留数据仍采用这两个坐标系统,做为学习研究使用固然是能够的,可是建议尽快转移到国家2000坐标系来(转换方法暂且不说,之后会说)。

小补充:

北京54是建国初,在当时技术条件不高时“引”苏联的地理坐标系统到我国境内的,在地理坐标系统的精肯定义时会详细展开为什么北京54在我国境内为什么有较大误差。

而西安80则是改革开放后,技术稍好,为解决北京54误差问题,为我国各项事业发展搞的一个适用于国内的地理坐标系统。

为何会启用国家2000呢?也留到之后地理坐标系统的精肯定义来谈,感兴趣的朋友能够等等我。

④美国经常使用地理坐标系统

NAD2七、NAD83

4.3. 常见投影方法

什么是投影?这里,待投影的“东西”是地球表面这个曲面——投影到哪里?假如地心有一个灯泡,灯泡的光线能把地表照射到一个面上,而这个面能够展开成为平面,咱们说投影到的这个面,叫投影面。

 

 

(网络图,灯光将物体投影到墙面这个平面,墙面与物体呈垂直方向,即纵轴投影)

事实上,能展开成平面的面有平面自己、椭圆柱面、圆锥面(好像就见过这仨)等。根据投影面和地球的相对位置,能够有很是多种投影方法。

①高斯克吕格(Gauss - Kruger)

高斯克吕格是由高斯和克吕格两人一块儿搞的投影法则,投影面是一个椭圆柱面打横着套在地球的数学椭球面上,围绕地轴旋转,将地球表面投影到该椭圆柱面的一种投影方法。

不懂?看图:

 

 

以某条经线与椭圆柱面相切(这条经线就叫中央经线),投影到椭圆柱面后,再沿着椭圆柱面的高剪开摊成平面,就是高斯投影的原理啦。

高斯克吕格投影是分带的,经度不是有东西各180度吗?因此能够按3度或者6度剥开一瓣用于投影。

 

 

旋转高斯克吕格的投影面,能够获取下一个分带的投影,以合适全球全部的地方。

请读者发挥一下想象力,由于从图上看,越远离中央经线的地方投影到椭圆柱面上,变形越严重,反而是中央经线附近的地方很是能贴合投影面。

--- 若是不懂也不要紧,咱们已经能给出高斯投影的学名了:横轴(由于投影面是躺着的 与地轴垂直)切(由于与地表面是相切关系)椭圆柱(投影面是椭圆柱面)投影。

实际上,高斯克吕格投影也叫“横轴墨卡托投影”,由于投影面是(椭)圆柱面的投影均叫“墨卡托投影”,见第②点。

②墨卡托投影(Mercator)

墨卡托发明的投影叫墨卡托投影,特色是纵轴,即投影面是个圆柱,与地球赤道相切(立着的水管里塞了个乒乓球),学名:正轴切圆柱投影。

 

 

(网络图片)

③UTM投影(Universal Transverse Mercator)

全称“通用横轴墨卡托投影”,和高斯克吕格投影很是类似,只不过它并非切于经线圈,而是穿地球而过。咱们从侧面来看,高斯投影面和经线圈是彻底重合的,可是UTM则不是:

 

 

(网络图片,很复杂,但很形象)

UTM投影是贯穿地球的,应该是侧面上看相割。

UTM投影为美国陆军工程兵测绘局于20世纪40年代提出。当时对美国本土采用Clarke 1866椭球体,对全球其它地方采用其余椭球体。

UTM投影如今采用WGS84地理坐标系统进行投影。

如今,不少遥感影像图用的就是UTM投影出来的投影坐标系统。

③网络墨卡托(WebMercator)

Web Mercator投影不是严格意义的墨卡托投影,而是一个伪墨卡托的投影方法,这个伪墨卡托投影方法的大名是 Popular Visualization Pseudo Mercator,PVPM。

由于这个投影方法是Google Map最早发明并使用的。

它的地理上的不严谨性在于,在投影过程当中,将表示地球的椭球面做为正球面处理

传说中是由于谷歌程序员懒得用椭球面来编程计算屏幕坐标...

有关网络墨卡托,还有一段更有趣的故事,见参考文献。

④兰伯特(Lambert)投影与阿尔伯斯(Albers)投影

兰伯特投影,投影面是圆锥面,更像是一个圆锥筒子套在一个球上(图a):

 

 

此时的兰伯特投影是切圆锥投影,固然兰伯特也能够是割圆锥投影(图b)。

它相似于阿尔伯斯投影,不一样之处在于其描绘形状比描绘面积更准确。

中国国家全幅地图、美国国家平面坐标系对全部具备较大东西范围的区域均使用此投影。国际上用此投影编制1∶100万地形图和航空图。

而阿尔伯斯投影常见于我国的省区投影,由于面积更准确。

阿尔伯斯投影是一种圆锥等面积投影。

* 补充:兰伯特投影还有另一种投影方法,投影面并非圆锥面,而是平面。见维基定义上的图:

4.4. 常见投影坐标系统及WKID

①基于高斯克吕格投影的投影坐标系统族

在我国,基于北京5四、西安80、国家2000,都可以使用高斯克吕格投影定义出投影坐标系统。

由于地理坐标系统有这三个(实际上高斯克吕格投影在别的国家的地理坐标系统也能够起做用),加上高斯克吕格投影方法容许分带表达,

因此,该投影坐标系统族有不少个,以WKID=4547为例。

WKID=4547这个投影坐标系统是这样定义的:

基于国家2000坐标系,使用3度高斯分带,中央经线为东经114°,使用高斯克吕格投影的投影坐标系统,而且平面坐标系统的经度方向上,坐标值有投影带号。

简写为:3度投影带114°中央经线的高斯投影坐标系统(2000坐标带带号)。

那么不带带号的呢?坐标值若不带带号的投影坐标系统会产生重叠。WKID=4526正是WKID=4547这个带带号的PCS对应的无带号的投影坐标系统。

在ArcGIS中,区分有无带号,从投影坐标系统的名称中能够看出:

  • CGCS2000_3_Degree_GK_CM_111E:有CM即带带号(在名称里用中央经线)
  • CGCS2000_3_Degree_GK_Zone_30:有Zone则不带带号(在名称里写出来了)
  • Beijing_1954_3_Degree_GK_CM_111E:(同上)
  • Beijing_1954_3_Degree_GK_Zone_35:(同上)
  • Xian_1980_3_Degree_GK_CM_111E:(同上)
  • Xian_1980_3_Degree_GK_Zone_34:(同上)

以上为国家2000、北京5四、西安80在“GK投影(高斯克吕格投影)”下同一中央经线,坐标值内带投影带与不带投影带投影坐标系统的名称。

总结:经常使用的高斯投影的PCS族,在我国,地理坐标系统只有北京5四、西安80、国家2000,根据中央经线按需选用。

②基于UTM投影的投影坐标系统族

和①中高斯投影坐标系统族相似,只不过仅仅基于WGS84。

分带与名称再也不赘述,按中央经线自行使用便可。

③基于网络墨卡托(WebMercator)的投影坐标系统

只有一个,WKID=3857。

有趣的是,网络墨卡托投影坐标系统还有102100、900913这俩ID,有兴趣的朋友能够看参考文献里的《Web Mercator 公开的小秘密》一文。

当前,我国的高德、百度、腾讯地图,谷歌地图(国内国外均)、osm地图都用了网络墨卡托来平面化展现,只不过国内高德百度腾讯和国内谷歌地图的地理坐标系统通过加密,加密知识见4.5节。

而天地图虽然用的是国家2000地理坐标系,可是也提供了墨卡托投影方法来展现平面地图。

ArcGIS Earth这个免费的小软件则直接使用3857坐标系(和Google Earth相似)。

④基于兰伯特与阿尔伯斯的投影坐标系统

时间缘由,此处暂不列举WKID,总之我国大公鸡图喜欢用阿尔伯斯投影,我国省区图喜欢用兰伯特圆锥投影。

⑤不常见投影坐标系统

我国因部分地区建设需求,本身给本身定义了投影坐标系统,在个人实践经验中,见过的有:NJ08坐标系(基于CGCS2000)、广州地方坐标系(基于CGCS2000)等。

4.5. 假坐标系统:GCJ02与BD09

在4.4节的第③点中已经说起,国内高德、百度、腾讯和国内谷歌地图的地理坐标系统均通过加密。

它们使用的都是WGS84坐标系(坊间传)。

由于国家保密须要,网络地图至少要用一种特殊的算法进行加密,那就是大(e)名(chou)鼎(bu)鼎(kan)的加密算法——GCJ02。(固然,天地图没有加密,直接是CGCS2000)

民间也叫火星坐标系,它加密后的WGS84坐标,与真实的WGS84坐标是有偏差的,这个偏差值并不固定,一般是几十米到几百米。

GCJ02加密算法是一种多项式+正弦函数加密算法,一般隔一段时间就换一下参数,因此,网上所谓的解密算法并非官方的精确算法,隔一段时间说不定就不许确了。

有关WGS84和GCJ02,能够查阅参考文档里的《关于GCJ02和WGS84坐标系的一点实验》,出自李民录。这里摘抄一张图,是我国各个地区GCJ02加密后的不一样偏移值:

 

 

百度地图更为恶心,在GCJ02的基础上再次偏移,也就是BD09。

这个加密算法并不公开,须要找有关部门交钱审核才能获取,并且没有精确的反向算法(多项式咋反向啊)。

因此,知道为何说GCJ02/BD09是“假的坐标系”了吧?

4.6. 经纬度直投

这是一个很是恶心的作法,即把经纬度等同直角坐标来绘制,这样就有一个后果:

当纬度=90度时,理论上有无限个点(即经度有无限个),若经纬度=直角坐标,那么赤道有多长,极点就展开拉的有多长。

这种拉扯是很是恶心的,天地图就这么干,在我国高纬度地区,使用经纬度直投的绘制方法,会使得原本直角相交的两条道路斜变:

 

 

 

 

 

(天地图,黑龙江佳木斯市两种投影的对比,上图为经纬度直投)

这也是ArcMap的默认“投影”,一般比较丑,尤为是高纬度地区变形很是严重,可是胜在渲染速度快。

5. 经常使用坐标系统在软件中的判别与操做

5.1. 判别(具体问题具体分析)

  • 若是数据有坐标系统的定义,则能够从数据的坐标系统中得知坐标系(假如定义的正确)。
  • 若是数据没有坐标系统定义,须要经过观察数据坐标值来判断GCS、PCS类型,则须要必定的经验。
  • 若是数据是两位数+三位数或者三位数+三位数等落于我国经纬度范围的数字,则能够大体判断是地理坐标系统,只需询问数据提供者,而后本身为数据定义地理坐标系统便可。
  • 若是给的数据尺度很小,例如是一个厂房,并且一个单位数值差很少就是1米,则判断是CAD绘图,是未经校准的平面直角坐标系,能够理解为投影坐标系,只不过位置并不许确罢了,须要校准。
  • 若是给的数据单位很大,一般是几万、几十万(5位数+6位数,是无投影带的,5位数是经线x方向,6位数是纬线y方向)(6位数+7位数,是有投影带的,6位数是纬线y方向,7位数是经线x方向,经过7位数的前两个数字判断投影带),此时能够粗略判断是投影坐标系统。
  • 若是均不是以上的数值,则判断为误操做,多是错误定义了坐标系,也多是错误进行投影计算。

5.2. 操做:以主流软件为例

①ArcMap

简单讲一下,在arcgis - arcmap中,在数据管理工具箱>投影工具集下,是处理坐标系统的强大工具。

“定义投影”工具,是为无坐标系统定义的数据定义GCS或PCS用的;

“投影”工具,是转换坐标系统用的,能够由GCS投影到指定PCS,也能够由PCS转到指定GCS(能够是PCS定义内的GCS,也能够是其余GCS),也能够由PCS转到另外一个PCS(换投影带,或者连GCS、PCS一块儿换)

>注意,跨GCS的“投影”操做,须要“地理转换”辅助,有关地理转换,会专门出一篇博客讲解。

“投影栅格”工具,是转换栅格数据用的,用法同“投影”工具。

之后放图及其余软件的操做。

 

自我唠叨

上一篇《聊聊GIS中的坐标系》是我大三结束那个暑假头脑一热写的。好的,这一篇仍是我脑子一热写的,我写这篇花了我一个周末的某个凌晨(总算在全面小康前完成了上一篇的允诺...)。

我写以前还疯狂沉迷于《咱们没法一块儿学习》的古桥文乃和《总之就是很是可爱》的由崎司……跑题了

我一般说,数据是GIS的生命源泉。而GIS数据,万恶之源则在坐标系统,千里长征,毁于一旦。

有多少外行由于坐标系统崩溃?有多少专业内,或者邻专业的同窗根本看不懂或者听天书呢?应该不少吧。毕竟,我蹲了不下10个专业群(有几个广告太多了退了),有超过半数是开发群。

毛主席说过,去粗取精,去伪存真,由此及彼,由表及里。

我能作的一些工做,就是精炼概念,给你们作一些小小的工做,让你们尽量短的时间了解坐标系统,文章如有错误,请友好指出。(呼~ 总算更新回来了,加[咕]油[咕])

参考文档

[1] epsg组织官网:http://epsg.io

[2] UTM投影与高斯克吕格投影及其变换实现:http://wap.sciencenet.cn/home.php?mod=space&uid=856115&do=blog&id=839212

[3] 聊聊GIS中的坐标系:http://www.javashuo.com/article/p-bcjlqxej-ec.html

[4] 天地图:https://map.tianditu.gov.cn/

[5] GMT中文手册:https://docs.gmt-china.org/latest/proj/Ju/

[6] 维基百科英文版:

https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system

https://en.wikipedia.org/wiki/Lambert_conformal_conic_projection

https://en.wikipedia.org/wiki/Albers_projection

[7] WebMercator 正反算公式:https://blog.csdn.net/iispring/article/details/8565177

[8] WebMercator公开的小秘密:https://blog.csdn.net/kikitamoon/article/details/46124935

[9] 李民录. 关于GCJ02和WGS84坐标系的一点实验:https://blog.csdn.net/liminlu0314/article/details/42564039

相关文章
相关标签/搜索