GIS 地图坐标系相互转换的方法学习笔记
一,前言
任何一个国家(或地区)大地坐标系的建立,都是一个历史的发展过程,在不同的时期,采用的参考椭球体及定位方式都不相同,并且会逐步的完善和精化。采用不同的参考椭球和定位建立的大地坐标系,是彼此不同的参心空间直角坐标系,与全球统一的以地球质心为原点的地心空间直角坐标系也不一致。因此就存在不同的大地坐标系统之间的相互转换问题。
我在项目中使用的是SuperMap的SDK,所以这里就用SuperMap的SDK进行学习。
二,GIS坐标系背景
1、基本概念
地球是一个近似椭球体,测绘时用椭球模型逼近,这个模型叫做参考椭球,如下图:
赤道是一个半径为a的近似圆,任一圈经线是一个半径为b的近似圆。a称为椭球的长轴半径,b称为椭球的短轴半径。
a≈6378.137千米,b≈6356.752千米。(实际上,a也不是恒定的,最长处和最短处相差72米,b的最长处和最短处相差42米,算很小了)
地球参考椭球基本参数:
长轴:a
短轴:b
扁率:α=(a-b) / a
第一偏心率:e=√(a2-b2) / a
第二偏心率:e’=√(a2-b2) / b
这几个参数定了,参考椭球的数学模型就定了。
坐标系有
地理坐标系:为球面坐标。 参考平面地是椭球面,坐标单位:经纬度;
投影坐标系:为平面坐标。参考平面地是水平面,坐标单位:米、千米等;
地理坐标转换到投影坐标的过程可理解为投影。(投影:将不规则的地球曲面转换为平面)
2、地理坐标系
地理坐标,就是用经线(子午线)、纬线、经度、纬度表示地面点位的球面坐标。
一般地理坐标可分为三种,天文经纬度,大地经纬度,地心经纬度。通常地图上使用的经纬度都为大地经纬度,所以这里我介绍一下大地经纬度,其他两种要想了解的话可以百度一下,其实区别不大。
大地经纬度:
大地经度:参考椭球面上某点的大地子午面与本初子午面间的两面角。东正西负。
大地纬度 :参考椭球面上某点的法线与赤道平面的夹角。北正南负。
大地高: 指某点沿法线方向到参考椭球面的距离。
3、投影坐标系
在地球椭球面和平面之间建立点与点之间函数关系的数学方法,称为地图投影。
地球椭球表面是一种不可能展开的曲面,要把这样一个曲面表现到平面上,就会发生裂隙或褶皱。在投影面上,可运用经纬线的“拉伸”或“压缩”(通过数学手段)来加以避免,以便形成一幅完整的地图。但不可避免会产生变形。
地图投影的变形通常有:长度变形、面积变形和角度变形。在实际应用中,根据使用地图的目的,限定某种变形。
根据不同的需要,我们会选择不同的投影组合!
按变形性质分类:
等角投影:角度变形为零(Mercator)
等积投影:面积变形为零(Albers)
任意投影:长度、角度和面积都存在变形
其中,各种变形相互联系相互影响:等积与等角互斥,等积投影角度变形大,等角投影面积变形大。
从投影面类型划分:
横圆柱投影:投影面为横圆柱
圆锥投影:投影面为圆锥
方位投影:投影面为平面
从投影面与地球位置关系划分为:
正轴投影:投影面中心轴与地轴相互重合
斜轴投影:投影面中心轴与地轴斜向相交
横轴投影:投影面中心轴与地轴相互垂直
相切投影:投影面与椭球体相切
相割投影:投影面与椭球体相割
投影参数:
标准线
概念:投影面与参考椭球的切线或割线。分为标准纬线与标准经线。
特点:没有变形,也称主比例尺。
中心线
概念:是指中央经线(原点经线)与中央纬线(原点纬线),用来定义图投影的中心或者原点。
特点:一般会有变形。
4,常用坐标系
我们在选择坐标系的时候经常会发现以下情况:
这一大堆1954坐标系究竟是什么鬼,beijing1954不是地理坐标系吗?
为什么投影坐标系里也有?相信懵逼的不止我一个···
首先,投影坐标系的生成是以地理坐标系为基准的,所以每个投影坐标系前面都会挂有地理坐标系。而地理坐标系后面的一串乱七八糟的,则是投影参数!
比如 Beijing 1954 3 Degree GK Zone 39
意思是
3度分带法的北京54坐标系,中央经线在东117度的分带坐标,横坐标前加带号。
详细请查看
https://blog.csdn.net/engineer_he/article/details/74910434
https://blog.csdn.net/qq_34149805/article/details/65634252
三,坐标的参照系之间转换
地理坐标系(Geographic Coordinate System)也称为地理坐标系统,是以经纬度为地图的存储单位的。很明显,地理坐标系是球面坐标系统。如果将地球上的数字化信息存放到球面坐标系统上,就需要有这样的椭球体具有如下特点:可以量化计算的,具有长半轴(Semimajor Axis),短半轴(Semiminor Axis),偏心率(Flattening),中央子午线(prime meridian)及大地基准面(datum)。投影坐标系统(Projection coordinate system)实质上便是平面坐标系统,其地图单位通常为米。将球面坐标转化为平面坐标的过程便称为投影。所以每一个投影坐标系统都必定会有地理坐标系统(Geographic Coordinate System)参数。 因此就存在着投影坐标之间的转换以及投影坐标系之间的转换。
SuperMap中CoordSysTranslator
是进行坐标转换工具类
1,地理坐标和投影坐标之间的转换
这种转换在SuperMap中封装了两个接口
static boolean forward(Point2Ds points, PrjCoordSys prjCoordSys)
在同一地理坐标系下,该方法用于将指定的Point2Ds 类的点对象的地理坐标转换到投影坐标。
static boolean inverse(Point2Ds points, PrjCoordSys prjCoordSys)
在同一投影坐标系下,该方法用于将指定的Point2Ds 类的点对象的投影坐标转换到地理坐标。
相关类的介绍
PrjCoordSys
投影坐标系类。
投影坐标系统由地图投影方式、投影参数、坐标单位和地理坐标系组成。SuperMap iMobile for Android 中提供了很多预定义的投影系统,用户可以直接使用,此外,用户还可以定制自己投影系统。
投影坐标系是定义在二维平面上的,不同于地理坐标系用经纬度定位地面点,投影坐标系是用 X、Y 坐标来定位的。每一个投影坐标系都基于一个地理坐标系。
GeoCoordSys
地理坐标系类。
地理坐标系由大地参照系、中央子午线、坐标单位组成。在地理坐标系中,单位一般用度来表示,也可以用度分秒表示。东西向(水平方向)的范围为-180度至180度。 南北向(垂直方向)的范围为-90度至90度。
地理坐标是用经纬度表示地面点位置的球面坐标。在球形系统中,赤道面的平行面同地球椭球面相交所截的圈称为纬圈,也叫纬线,表示东西方向, 通过地球旋转轴的面与椭球面相交所截的圈为子午圈,也称经线,表示南北方向,这些包围着地球的网格称为经纬格网。经纬线一般用度来表示(必要时也用度分秒表示), 经纬度是从地心到地球表面相应的位置的角度的大小表示的。
地理坐标和投影坐标之间的转换就是投影和反投影的过程。
另外 因为投影坐标是一个平面坐标系,所以在某些情况下为了更精确的定位位置会对平面坐标进行一些位置的纠偏。
一般简单的会有一下几个参数的校准,还有些比较复杂的就没有了解了。
- dx X轴的偏移量
- dy Y轴的偏移量
- rangle 坐标系的旋转角度
- scale 坐标系的缩放比例
- dz 当有高度要求的时候也可以添加高度的偏移量
如果投影坐标是需要进行校准时,在进行转换是需要把这些校准参数添加上去。
例如 :地理坐标转换到投影坐标
- 调用
forward
方法把地理点转换到投影坐标点 - 如果有垂直校准就对点进行垂直校准
- 对投影点进行角度的旋转计算对投影点进行角度的旋转计算
- 根据缩放比例进行缩放的计算
- 对x,y轴偏移量进行计算
2,参照系转换
当进行数据源投影转换或点坐标转换时,SuperMap提供了六种投影转化的方法(Geocentric Transalation、Molodensky、MolodenskyAbridged 、Position Vector、Coordinate Frame、Bursa-wolf)。以上六种转换方法,按照转换参数的多少可以分为两类:三参数转换法和七参数转换法。
三参数转换法
参照系转换时,比较简单的转换方法是所谓的三参数转换法。这种转化方法所依据的数学模型是认为两种大地参照系之间仅仅是空间的坐标原点发生了平移,而不考虑其他因素(见图1)。这种方法必然产生三个参数,X 、Y、Z 三个方向的平移量。三参数转换法计算简单,但精度较低,一般用在不同的地心空间直角坐标系之间的转换。
七参数转换法
七参数法依据的数学模型不仅考虑了坐标系的平移,同时还考虑了坐标系旋转、尺度不一等因素。所以需要的参数除了三个平移量外,还要三个旋转参数(又称三个尤拉角)和比例因子(又叫尺度因子)。转换原理如图2所示。三个平移量用ΔX、ΔY、ΔZ 表示,三个选择参数用 Rx,Ry,Rz 表示;比例因子用 S 表示。其中比例因子表示从原坐标系转换到新坐标系的尺度伸缩量。一般情况下,平移因子的单位为米(与坐标系单位保持一致),旋转因子的单位是秒,比例因子的单位为百万分之一。
目前,支持6种投影转换的方法,方便用户根据不同的需求,选择合适转换方法。
地心转换法(the Geocentric Translation)、莫洛金斯基转换法(Molodensky)、简化的莫洛金斯(MolodenskyAbridged)转换法属于精度较低的投影转换方法。三参数转换法需要三个平移转换参数(ΔX,ΔY,ΔZ),莫洛金斯基转换法、简化的莫洛金斯基转换法也要三个平移转换参数(ΔX,ΔY,ΔZ)。在数据精度要求不高的情况下一般可以采用这几种方法。
位置矢量法(Position Vector)、基于地心的七参数转换法(Coordinate Frame)、布尔莎方法(Bursa-Wolf)属于精度较高的几种转换方法。需要七个参数来进行调整和转换,包括三个平移转换参数(ΔX,ΔY,ΔZ)、三个旋转转换参数(Rx,Ry,Rz)和一个比例参数(S)。这几种方法是完全相同的,只是由于国家地区或测量学派的不同,习惯称谓不同。
总结
两个不同的投影坐标A,B之间进行简单转换的过程如下: