坐标转换的相关问题(椭球体、投影、坐标系统、转换、BEIJING54、XIAN80等)最近需要将一些数据进行转换,用到了一点坐标转换的知识,发现还来这么复杂^_^,觉得自己真是愧对了武汉大学以及中科院这么多年培养我,让我上了好多课却从来没有好好听,今天才知道其实很有用!不多废话,给您分享下我的坐标转换之路。Partone:Background地理坐标系与投影坐标系的区别(citefrom:=354009166)1、首先理解地理坐标系(Geographiccoordinatesystem),Geographiccoordinatesystem直译为地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographiccoordinatesystem是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的。具有长半轴,短半轴,偏心率。以下几行便是Krasovsky_1940椭球及其相应参数。Spheroid:Krasovsky_1940SemimajorAxis:6378245.000000000000000000SemiminorAxis:6356863.018773047300000000InverseFlattening(扁率):298.300000000000010000然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描述中,可以看到有这么一行:Datum:D_Beijing_1954表示,大地基准面是D_Beijing_1954。有了Spheroid和Datum两个基本条件,地理坐标系统便可以使用。完整参数:Alias:Abbreviation:Remarks:AngularUnit:Degree(0.017453292519943299)PrimeMeridian(起始经度):Greenwich(0.000000000000000000)Datum(大地基准面):D_Beijing_1954Spheroid(参考椭球体):Krasovsky_1940SemimajorAxis:6378245.000000000000000000SemiminorAxis:6356863.018773047300000000InverseFlattening:298.3000000000000100002、接下来便是Projectioncoordinatesystem(投影坐标系统),首先看看投影坐标系统中的一些参数。Projection:Gauss_KrugerParameters:False_Easting:500000.000000False_Northing:0.000000Central_Meridian:117.000000Scale_Factor:1.000000Latitude_Of_Origin:0.000000LinearUnit:Meter(1.000000)GeographicCoordinateSystem:Name:GCS_Beijing_1954Alias:Abbreviation:Remarks:AngularUnit:Degree(0.017453292519943299)PrimeMeridian:Greenwich(0.000000000000000000)Datum:D_Beijing_1954Spheroid:Krasovsky_1940SemimajorAxis:6378245.000000000000000000SemiminorAxis:6356863.018773047300000000InverseFlattening:298.300000000000010000从参数中可以看出,每一个投影坐标系统都必定会有GeographicCoordinateSystem。投影坐标系统,实质上便是平面坐标系统,其地图单位通常为米。那么为什么投影坐标系统中要存在坐标系统的参数呢?这时候,又要说明一下投影的意义:将球面坐标转化为平面坐标的过程便称为投影。好了,投影的条件就出来了:a、球面坐标b、转化过程(也就是算法)也就是说,要得到投影坐标就必须得有一个“拿来”投影的球面坐标,然后才能使用算法去投影!即每一个投影坐标系统都必须要求有GeographicCoordinateSystem参数。3、我们现在看到的很多教材上的对坐标系统的称呼很多,都可以归结为上述两种投影。其中包括我们常见的“非地球投影坐标系统”。):大地坐标(GeodeticCoordinate):大地测量中以参考椭球面为基准面的坐标。地面点P的位置用大地经度L、大地纬度B和大地高H表示。当点在参考椭球面上时,仅用大地经度和大地纬度表示。大地经度是通过该点的大地子午面与起始大地子午面之间的夹角,大地纬度是通过该点的法线与赤道面的夹角,大地高是地面点沿法线到参考椭球面的距离。方里网:是由平行于投影坐标轴的两组平行线所构成的方格网。因为是每隔整公里绘出坐标纵线和坐标横线,所以称之为方里网,由于方里线同时又是平行于直角坐标轴的坐标网线,故又称直角坐标网。直角坐标网的坐标系以中央经线投影后的直线为X轴,以赤道投影后的直线为Y轴,它们的交点为坐标原点。这样,坐标系中就出现了四个象限。纵坐标从赤道算起向北为正、向南为负;横坐标从中央经线算起,向东为正、向西为负。虽然我们可以认为方里网是直角坐标,大地坐标就是球面坐标。但是我们在一副地形图上经常见到方里网和经纬度网,我们很习惯的称经纬度网为大地坐标,这个时候的大地坐标不是球面坐标,她与方里网的投影是一样的(一般为高斯),也是平面坐标。在1:1万——1:20万比例尺的地形图上,经纬线只以图廓线的形式直接表现出来,并在图角处注出相应度数。为了在用图时加密成网,在内外图廓间还绘有加密经纬网的加密分划短线(图式中称“分度带”),必要时对应短线相连就可以构成加密的经纬线网。1:25万地形图上,除内图廓上绘有经纬网的加密分划外,图内还有加密用的十字线。我国的1:50万——1:100万地形图,在图面上直接绘出经纬线网,内图廓上也有供加密经纬线网的加密分划短线。四、GIS中的坐标系定义与转换1.椭球体、基准面及地图投影GIS中的坐标系定义是GIS系统的基础,正确定义GIS系统的坐标系非常重要。GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐标系,首先必须弄清地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Projection)三者的基本概念及它们之间的关系。基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的1975地球椭球体建立了我国新的大地坐标系--西安80坐标系,目前大地测量基本上仍以北京54坐标系作为参照,北京54与西安80坐标之间的转换可查阅国家测绘局公布的对照表。WGS1984基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心,目前GPS测量数据多以WGS1984为基准。上述3个椭球体参数如下:54大地参数:参考椭球体:Krasovsky_1940长半轴:6378245短半轴:6356863.0188扁率:298.384大地参数:参考椭球体:WGS84长半轴:6378137短半轴:6356752.3142扁率:298.25722480大地参数:参考椭球体:IAG75长半轴:6378140短半轴:6356755.2882扁率:298.257000椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的基准面显然是不同的。地图投影是将地图从球面转换到平面的数学变换,如果有人说:该点北京54坐标值为X=4231898,Y=21655933,实际上指的是北京54基准面下的投影坐标,也就是北京54基准面下的经纬度坐标在直角平面坐标上的投影结果。2.GIS中基准面的定义与转换虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。GIS系统中的基准面通过当地基准面向WGS1984的转换7参数来定义,转换通过相似变换方法实现,具体算法可参考科学出版社1999年出版的《城市地理信息系统标准化指南》第76至86页。假设Xg、Yg、Zg表示WGS84地心坐标系的三坐标轴,Xt、Yt、Zt表示当地坐标系的三坐标轴,那么自定义基准面的7参数分别为:三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小。MapX中基准面定义方法如下:Datum.Set(Ellipsoid,ShiftX,ShiftY,ShiftZ,RotateX,RotateY,RotateZ,ScaleAdjust,PrimeMeridian)其中参数:Ellipsoid为基准面采用的椭球体;ShiftX,ShiftY,ShiftZ为平移参数;RotateX,RotateY,RotateZ为旋转参数;ScaleAdjust为比例校正因子,以百万分之一计;PrimeMeridian为本初子午线经度,在我国取0,表示经度从格林威治起算。3.GIS中地图投影的定义我国的基本比例尺地形图(1:5千,1:1万,1:2.5万,1:5万,1:10万,1:25万,1:50万,1:100万)中,大于等于50万的均采用高斯-克吕格投影(Gauss-Kruger),又叫横轴墨卡托投影(TransverseMercator);小于50万的地形图采用正轴等角割园锥投影,又叫兰勃特投影(LambertConformalConic);海上小于50万的地形图多用正轴等角园柱投影,又叫墨卡托投影(Mercator),我国的GIS系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。在MapX中坐标系定义由基准面、投影两部分参数组成,方法如下:CoordSys.Set(Type,[Datum],[Units],[OriginLongitude],[OriginLatitude],[StandardParallelOne],[StandardParallelTwo],[Azimuth],[ScaleFactor],[FalseEasting],[FalseNorthing],[Range],[Bounds],[AffineTransform])其中参数:Type表示投影类型,Type为1时地图坐标以经纬度表示,它是必选参数,它后面的参数都为可选参数;Datum为大地基准面对象,如果采用非地球坐标(NonEarth)无需定义该参数;Units为坐标单位,如Units为7表示以米为单位;OriginLongitude、OriginLatitude分别为原点经度和纬度;StandardParallelOne、StandardParallelTwo为第一、第二标准纬线;Azimuth为方位角,斜轴投影需要定义该参数;ScaleFactor为比例系数;F