1、这个图是采用,大地坐标的经纬度 WGS84 标准。与 GPS 采用的 WGS84 在同一点上相差经纬度相差有 1020 分(仅仅从地图在 MAPINFO 的显示数据来说没涉及到 NumericCoordSys 的坐标系统)。 MapX 中的坐标系定义与转换GIS 中的坐标系定义是 GIS 系统的基础,正确定义 GIS 系统的坐标系非常重要。1. 椭球体、基准面及地图投影GIS 中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义 GIS 系统坐标系,首先必须弄清地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Pr
2、ojection)三者的基本概念及它们之间的关系。基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京 54 坐标系、西安 80 坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从 1953 年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京 54 坐标系,1978 年采用国际大地测量协会推荐的 1975 地球椭球体建立了我国新的大地坐标系-西安 80 坐标系,目前大地测量基本上仍以北京 54 坐标系作为参照,北京 54 与西安 80 坐标之间的转换可查阅国家测绘局公布的对照表。 WGS1984 基准面采用 WGS84 椭
3、球体,它是一地心坐标系,即以地心作为椭球体中心,目前 GPS 测量数据多以 WGS1984 为基准。上述 3 个椭球体参数如下:椭球体 Mapinfo 中代号 年代 长半轴 短半轴 1/扁率 Krassovsky 3 1940 6378245 6356863 298.3IAG 75 31 1975 6378140 6356755 298.25722101WGS 84 28 1984 6378137.000 6356752.314 298.257223563椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联
4、的 Pulkovo 1942、非洲索马里的 Afgooye 基准面都采用了 Krassovsky 椭球体,但它们的基准面显然是不同的。地图投影是将地图从球面转换到平面的数学变换,如果有人说:该点北京 54 坐标值为 X=4231898,Y=21655933,实际上指的是北京 54 基准面下的投影坐标,也就是北京 54 基准面下的经纬度坐标在直角平面坐标上的投影结果。2. GIS 中基准面的定义与转换虽然现有 GIS 平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的 Pulkovo 1942 基准面(Mapinfo 中代号为 1001)代替北
5、京 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 的旋转角;最
6、后是比例校正因子,用于调整椭球大小。MapX 中基准面定义方法如下:Datum.Set(Ellipsoid, ShiftX, ShiftY, ShiftZ, RotateX, RotateY, RotateZ, ScaleAdjust, PrimeMeridian) 其中参数: Ellipsoid 为基准面采用的椭球体;ShiftX, ShiftY, ShiftZ 为平移参数;RotateX, RotateY, RotateZ 为旋转参数;ScaleAdjust 为比例校正因子,以百万分之一计;PrimeMeridian 为本初子午线经度,在我国取 0,表示经度从格林威治起算。美国国家测绘局(
7、National Imagery and Mapping Agency)公布了世界大多数国家的当地基准面至 WGS1984 基准面的转换 3 参数(平移参数),可从 http:/164.214.2.59/GandG/wgs84dt/dtp.html 下载,其中包括有香港 Hong Kong 1963 基准面、台湾 Hu-Tzu-Shan 基准面的转换 3 参数,但是没有中国大陆的参数。实际工作中一般都根据工作区内已知的北京 54 坐标控制点计算转换参数,如果工作区内有足够多的已知北京 54 与 WGS84 坐标控制点,可直接计算坐标转换的 7 参数或 3 参数;当工作区内有 3 个已知北京 5
8、4与 WGS84 坐标控制点时,可用下式计算 WGS84 到北京 54 坐标的转换参数(A、B、C、D、E、F):x54 = AX84 + BY84 + C,y54 = DX84 + EY84 + F,多余一点用作检验;在只有一个已知控制点的情况下(往往如此),用已知点的北京 54 与 WGS84 坐标之差作为平移参数,当工作区范围不大时精度也足够了。从 Mapinfo 中国的 URL( http:/ 54、西安 80 坐标系定义的 Mapinfow.prj 文件,其中定义的北京 54 基准面参数为:(3,24,-123,-94,-0.02,0.25,0.13,1.1,0),西安 80 基准面
9、参数为:(31,24,-123,-94,-0.02,0.25,0.13,1.1,0),文件中没有注明其参数的来源,我发现它们与 Mapinfo 参考手册附录 G“定义自定义基准面“中的一个例子所列参数相同,因此其可靠性值得怀疑,尤其从西安 80 与北京 54 采用相同的 7 参数来看,至少西安 80 的基准面定义肯定是不对的。因此,当系统精度要求较高时,一定要对所采用的参数进行检测、验证,确保坐标系定义的正确性。3. GIS 中地图投影的定义我国的基本比例尺地形图(1:5 千,1:1 万,1:2.5 万,1:5 万,1:10 万,1:25 万,1:50 万,1:100 万)中,大于等于 50
10、万的均采用高斯-克吕格投影(Gauss-Kruger),又叫横轴墨卡托投影(Transverse Mercator);小于 50 万的地形图采用正轴等角割园锥投影,又叫兰勃特投影(Lambert Conformal Conic);海上小于 50 万的地形图多用正轴等角园柱投影,又叫墨卡托投影(Mercator),我国的 GIS 系统中应该采用与我国基本比例尺地形图系列一致的地图投影系统。 在 MapX 中坐标系定义由基准面、投影两部分参数组成,方法如下:CoordSys.Set(Type, Datum, Units, OriginLongitude, OriginLatitude, Stand
11、ardParallelOne, StandardParallelTwo, Azimuth, ScaleFactor, FalseEasting, FalseNorthing, Range, Bounds, AffineTransform) 其中参数:Type 表示投影类型,Type 为 1 时地图坐标以经纬度表示,它是必选参数,它后面的参数都为可选参数;Datum 为大地基准面对象,如果采用非地球坐标(NonEarth)无需定义该参数;Units 为坐标单位,如 Units 为 7 表示以米为单位;OriginLongitude、OriginLatitude 分别为原点经度和纬度;Standa
12、rdParallelOne、StandardParallelTwo 为第一、第二标准纬线;Azimuth 为方位角,斜轴投影需要定义该参数;ScaleFactor 为比例系数;FalseEasting, FalseNorthing 为东伪偏移、北伪偏移值;Range 为地图可见纬度范围;Bounds 为地图坐标范围,是一矩形对象,非地球坐标(NonEarth)必须定义该参数; AffineTransform 为坐标系变换对象。相应高斯-克吕格投影、兰勃特投影、墨卡托投影需要定义的坐标系参数序列如下:高斯-克吕格:投影代号(Type),基准面(Datum),单位(Unit),中央经度(Origi
13、nLongitude),原点纬度(OriginLatitude),比例系数(ScaleFactor),东伪偏移(FalseEasting),北纬偏移(FalseNorthing)兰勃特: 投影代号(Type),基准面(Datum),单位(Unit),中央经度(OriginLongitude),原点纬度(OriginLatitude),标准纬度 1(StandardParallelOne),标准纬度 2(StandardParallelTwo),东伪偏移(FalseEasting),北纬偏移(FalseNorthing)墨卡托: 投影代号(Type),基准面(Datum),单位(Unit),原点
14、经度(OriginLongitude),原点纬度(OriginLatitude),标准纬度(StandardParallelOne)在城市 GIS 系统中均采用 6 度或 3 度分带的高斯-克吕格投影,因为一般城建坐标采用的是 6 度或 3 度分带的高斯-克吕格投影坐标。高斯-克吕格投影以 6 度或 3 度分带,每一个分带构成一个独立的平面直角坐标网,投影带中央经线投影后的直线为 X 轴(纵轴,纬度方向),赤道投影后为 Y 轴(横轴,经度方向),为了防止经度方向的坐标出现负值,规定每带的中央经线西移 500 公里,即东伪偏移值为 500 公里,由于高斯-克吕格投影每一个投影带的坐标都是对本带坐
15、标原点的相对值,所以各带的坐标完全相同,因此规定在横轴坐标前加上带号,如(4231898,21655933)其中 21 即为带号,同样所定义的东伪偏移值也需要加上带号,如 21 带的东伪偏移值为 21500000 米。假如你的工作区位于 21 带,即经度在 120 度至 126 度范围,该带的中央经度为 123 度,采用 Pulkovo 1942 基准面,那么定义 6 度分带的高斯-克吕格投影坐标系参数为:(8,1001,7,123,0,1,21500000,0)。那么当精度要求较高,实测数据为 WGS1984 坐标数据时,欲转换到北京 54 基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢
16、?你可选择 WGS 1984(Mapinfo 中代号 104)作为基准面,当只有一个已知控制点时(见第 2 部分),根据平移参数调整东伪偏移、北纬偏移值实现 WGS84 到北京 54 的转换,如:(8,104,7,123,0,1,21500200,-200),也可利用 AffineTransform 坐标系变换对象,此时的转换系数(A、B、C、D、E、F)中 A、B、D、E 为 0,只有 X、Y 方向的平移值 C、F ;当有 3 个已知控制点时,可利用得到的转换系数(A、B、C、D、E、F)定义 AffineTransform 坐标系变换对象,实现坐标系的转换,如:(8,104,7,123,0,1,21500000,0,map.AffineTransform),其中 AffineTransform 定义为 AffineTransform.set(7,A、B、C、D、E、F)(7 表示单位米);当然有足够多已知控制点时,直接求定 7 参数自定义基准面就行了。