地图坐标
1、椭球面
地图坐标系由大地基准面和地图投影确定,大地基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的大地基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的IAG 75地球椭球体建立了我国新的大地坐标系--西安80坐标系, 目前GPS定位所得出的结果都属于WGS84坐标系统,WGS84基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心的坐标系。因此相对同一地理位置,不同的大地基准面,它们的经纬度坐标是有差异的。
采用的3个椭球体参数如下(源自“全球定位系统测量规范 GB/T 18314-2001”):
椭球体 |
长半轴 |
短半轴 |
---|---|---|
Krassovsky |
6378245 |
6356863.0188 |
IAG 75 |
6378140 |
6356755.2882 |
WGS 84 |
6378137 |
6356752.3142 |
理解:椭球面是用来逼近地球的,应该是一个立的椭圆旋转而成的。
2、大地基准面
椭球体与大地基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo 1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的大地基准面显然是不同的。在目前的GIS商用软件中,大地基准面都通过当地基准面向WGS84的转换7参数来定义,即三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小。北京54、西安80相对WGS84的转换参数至今没有公开,实际工作中可利用工作区内已知的北京54或西安80坐标控制点进行与WGS84坐标值的转换,在只有一个已知控制点的情况下(往往如此),用已知点的北京54与WGS84坐标之差作为平移参数,当工作区范围不大时,如青岛市,精度也足够了。
以(32°,121°)的高斯-克吕格投影结果为例,北京54及WGS84基准面,两者投影结果在南北方向差距约63米(见下表),对于几十或几百万的地图来说,这一误差无足轻重,但在工程地图中还是应该加以考虑的。
输入坐标(度) |
北京54 高斯投影(米) |
WGS84 高斯投影(米) |
|
---|---|---|---|
纬度值(X) |
32 |
3543664 |
3543601 |
经度值(Y) |
121 |
21310994 |
21310997 |
理解:椭球面和地球肯定不是完全贴合的,因而,即使用同一个椭球面,不同的地区由于关心的位置不同,需要最大限度的贴合自己的那一部分,因而大地基准面就会不同。
3、高斯投影
(1)高斯-克吕格投影性质
高斯-克吕格(Gauss-Kruger)投影简称“高斯投影”,又名"等角横切椭圆柱投影”,地球椭球面和平面间正形投影的一种。德国数学家、物理学家、天文学家高斯(Carl FriedrichGauss,1777一 1855)于十九世纪二十年代拟定,后经德国大地测量学家克吕格(Johannes Kruger,1857~1928)于 1912年对投影公式加以补充,故名。该投影按照投影带中央子午线投影为直线且长度不变和赤道投影为直线的条件,确定函数的形式,从而得到高斯一克吕格投影公式。投影后,除中央子午线和赤道为直线外, 其他子午线均为对称于中央子午线的曲线。设想用一个椭圆柱横切于椭球面上投影带的中央子午线,按上述投影条件,将中央子午线两侧一定经差范围内的椭球面正形投影于椭圆柱面。将椭圆柱面沿过南北极的母线剪开展平,即为高斯投影平面。取中央子午线与赤道交点的投影为原点,中央子午线的投影为纵坐标x轴,赤道的投影为横坐标y轴,构成高斯克吕格平面直角坐标系。
高斯-克吕格投影在长度和面积上变形很小,中央经线无变形,自中央经线向投影带边缘,变形逐渐增加,变形最大之处在投影带内赤道的两端。由于其投影精度高,变形小,而且计算简便(各投影带坐标一致,只要算出一个带的数据,其他各带都能应用),因此在大比例尺地形图中应用,可以满足军事上各种需要,能在图上进行精确的量测计算。
(2)高斯-克吕格投影分带
按一定经差将地球椭球面划分成若干投影带,这是高斯投影中限制长度变形的最有效方法。分带时既要控制长度变形使其不大于测图误差,又要使带数不致过多以减少换带计算工作,据此原则将地球椭球面沿子午线划分成经差相等的瓜瓣形地带,以便分带投影。通常按经差6度或3度分为六度带或三度带。六度带自0度子午线起每隔经差6度自西向东分带,带号依次编为第 1、2…60带。三度带是在六度带的基础上分成的,它的中央子午线与六度带的中央子午线和分带子午线重合,即自 1.5度子午线起每隔经差3度自西向东分带,带号依次编为三度带第 1、2…120带。我国的经度范围西起 73°东至135°,可分成六度带十一个,各带中央经线依次为75°、81°、87°、……、117°、123°、129°、135°,或三度带二十二个。六度带可用于中小比例尺(如 1:250000)测图,三度带可用于大比例尺(如 1:10000)测图,城建坐标多采用三度带的高斯投影。
(3)高斯-克吕格投影坐标
高斯- 克吕格投影是按分带方法各自进行投影,故各带坐标成独立系统。以中央经线投影为纵轴(x), 赤道投影为横轴(y),两轴交点即为各带的坐标原点。纵坐标以赤道为零起算,赤道以北为正,以南为负。我国位于北半球,纵坐标均为正值。横坐标如以中央经线为零起算,中央经线以东为正,以西为负,横坐标出现负值,使用不便,故规定将坐标纵轴西移500公里当作起始轴,凡是带内的横坐标值均加 500公里。由于高斯-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,为了区别某一坐标系统属于哪一带,在横轴坐标前加上带号,如(4231898m,21655933m),其中21即为带号。
(4)高斯-克吕格投影与UTM投影
某些国外的软件如ARC/INFO或国外仪器的配套软件如多波束的数据处理软件等,往往不支持高斯-克吕格投影,但支持UTM投影,因此常有把UTM投影坐标当作高斯-克吕格投影坐标提交的现象。
UTM投影全称为“通用横轴墨卡托投影”,是等角横轴割圆柱投影(高斯-克吕格为等角横轴切圆柱投影),圆柱割地球于南纬80度、北纬84度两条等高圈,该投影将地球划分为60个投影带,每带经差为6度,已被许多国家作为地形图的数学基础。UTM投影与高斯投影的主要区别在南北格网线的比例系数上,高斯-克吕格投影的中央经线投影后保持长度不变,即比例系数为1,而UTM投影的比例系数为0.9996。UTM投影沿每一条南北格网线比例系数为常数,在东西方向则为变数,中心格网线的比例系数为0.9996,在南北纵行最宽部分的边缘上距离中心点大约 363公里,比例系数为 1.00158。
高斯-克吕格投影与UTM投影可近似采用 Xutm=0.9996 * X高斯,Yutm=0.9996 * Y高斯进行坐标转换。以下举例说明(基准面为WGS84):
输入坐标(度) |
高斯投影(米) |
UTM投影(米) |
Xutm=0.9996 * X高斯, Yutm=0.9996 * Y高斯 |
|
---|---|---|---|---|
纬度值(X) |
32 |
3543600.9 |
3542183.5 |
3543600.9*0.9996 ≈ 3542183.5 |
经度值(Y) |
121 |
21310996.8 |
311072.4 |
(310996.8-500000)*0.9996+500000 ≈ 311072.4 |
注:坐标点(32,121)位于高斯投影的21带,高斯投影Y值21310996.8中前两位“21”为带号;坐标点(32,121)位于UTM投影的51带,上表中UTM投影的Y值没加带号。因坐标纵轴西移了500000米,转换时必须将Y值减去500000乘上比例因子后再加500000。 理解:高斯投影的方法就是保持赤道和中央经线不变形,把球面摊平。方法:用一个椭圆柱套住椭球,把它投影到椭圆柱上,然后打开椭圆柱即可。
4、其他
WGS 84 是常用的经纬度的椭球面,也是一个公开的基准面。
正转换:经纬度-->高斯投影坐标。
大地基准面用于高斯投影,或者高斯分带投影,无论是54,80,还是wgs84,都有可能。
在不同的基准面下,同一个点的经纬度不同,投影坐标也不同。
- Windows8小技巧(1)—Map Network Drive
- mysql: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for opera
- tomcat 8.5.9.0 解决catalina.out过大的问题
- 物联网是如何驱动网络变革的?——上
- Java常用类(四)之数组工具类Arrays
- java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决
- JS魔法堂:定义页面的Dispose方法——[before]unload事件启示录
- HashSet/HashMap详解
- Ajax大显身手
- bash编程之xargs实用技巧
- 表单验证和正则表达式
- ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程
- 兰花协议—让世界自由的互联网
- Git(二)Git几个区的关系与Git和GitHub的关联
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【动手学深度学习笔记】之线性回归
- 【动手学深度学习笔记】之PyTorch实现softmax回归
- 三分钟解决Fashion-MNIST无法下载的问题
- 【动手学深度学习笔记】之实现softmax回归模型
- python实现简单爬虫功能
- Python 爬虫入门—— IP代理使用
- Python爬虫入门:爬取pixiv
- Linux PID 一网打尽
- 使用libimobiledevice&ifuse提取iOS沙盒文件
- 你不知道的LinkedList(二):LinkedList的增删操作真的会比ArrayList快吗
- jupyter notebook中的魔法命令%run和%timeit
- js 常用正则
- 非常实用的 Python 技巧
- JavaScript中arguments
- js通过class name获得元素