1. 椭球体、基准面及地图投影
GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐标系,首先必须弄清地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Projection)三者的基本概念及它们之间的关系。 本文来自织梦
基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的1975地球椭球体建立了我国新的大地坐标系--西安80坐标系,目前大地测量基本上仍以北京54坐标系作为参照,北京54与西安80坐标之间的转换可查阅×××公布的对照表。 WGS1984基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心,目前GPS测量数据多以WGS1984为基准。 织梦内容管理系统
上述3个椭球体参数如下:
椭球体 Mapinfo中代号 年代 长半轴 短半轴 1/扁率
Krassovsky 3 1940 6378245 6356863 298.3
IAG 75 31 1975 6378140 6356755 298.25722101
WGS 84 28 1984 6378137.000 6356752.314 298.257223563
椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的Pulkovo 1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的基准面显然是不同的。
2. GIS中基准面的定义与转换
虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo 1942基准面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。
GIS系统中的基准面通过当地基准面向WGS1984的转换7
MapX中基准面定义方法如下:
Datum.Set(Ellipsoid, ShiftX, ShiftY, ShiftZ, RotateX, RotateY, RotateZ, ScaleAdjust, PrimeMeridian)
其中参数: Ellipsoid为基准面采用的椭球体;
ShiftX, ShiftY, ShiftZ为平移参数;
RotateX, RotateY, RotateZ为旋转参数;
ScaleAdjust为比例校正因子,以百万分之一计;
PrimeMeridian为本初子午线经度,在我国取0,表示经度从格林威治起算。
从Mapinfo中国的URL(
3. GIS中地图投影的定义
我国的基本比例尺地形图(1:5千,1:1万,1:2.5万,1:5万,1:10万,1:25万,1:50万,1:100万)中,大于等于50万的均采用高斯-克吕格投影(Gauss-Kruger),又叫横轴墨卡托投影(Transverse Mercator);小于50万的地形图采用正轴等角割园锥投影,又叫兰勃特投影(Lambert Conformal Conic);海上小于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表示以米为单位; copyright dedecms
OriginLongitude、OriginLatitude分别为原点经度和纬度;
StandardParallelOne、StandardParallelTwo为第一、第二标准纬线;
Azimuth为方位角,斜轴投影需要定义该参数;
ScaleFactor为比例系数;
FalseEasting, FalseNorthing为东伪偏移、北伪偏移值;
Range为地图可见纬度范围;
Bounds为地图坐标范围,是一矩形对象,非地球坐标(NonEarth)必须定义该参数;
相应高斯-克吕格投影、兰勃特投影、墨卡托投影需要定义的坐标系参数序列如下:
高斯-克吕格:投影代号(Type),基准面(Datum),单位(Unit),
中央经度(OriginLongitude),原点纬度(OriginLatitude),
比例系数(ScaleFactor),
东伪偏移(FalseEasting),北纬偏移(FalseNorthing)
兰勃特: 投影代号(Type),基准面(Datum),单位(Unit),
标准纬度1(StandardParallelOne),标准纬度2(StandardParallelTwo),
东伪偏移(FalseEasting),北纬偏移(FalseNorthing)
墨卡托: 投影代号(Type),基准面(Datum),单位(Unit),
原点经度(OriginLongitude),原点纬度(OriginLatitude),
标准纬度(StandardParallelOne)
假如你的工作区位于21带,即经度在120度至126度范围,该带的中央经度为123度,采用Pulkovo 1942基准面,那么定义6度分带的高斯-克吕格投影坐标系参数为:(8,1001,7,123,0,1,21500000,0)。
那么当精度要求较高,实测数据为WGS1984坐标数据时,欲转换到北京54基准面的高斯-克吕格投影坐标,如何定义坐标系参数呢?你可选择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参数自定义基准面就行了。