GIS 中的坐标系定义是
GIS系统的基础,正确定义
GIS系统的坐标系非常重要。
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椭球体,但它们的基准面显然是不同的。
地图投影是将地图从球面转换到平面的数学变换,如果有人说:该点北京
54坐标值为
X=4231898,Y=21655933,实际上指的是北京
54基准面下的投影坐标,也就是北京
54基准面下的经纬度坐标在直角平面坐标上的投影结果。
2. GIS
中基准面的定义与转换
虽然现有
GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的
Pulkovo 1942基准面
(Mapinfo中代号为
1001)代替北京
54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等
GIS系统,则需要自定义基准面。
GIS 系统中的基准面通过当地基准面向
WGS1984的转换
7 参数来定义,转换通过相似变换
方法实现,假设
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,表示经度从格林威治起算。
美国国家测绘局
(National Imagery and Mapping Agency)公布了世界大多数国家的当地基准面至
WGS1984基准面的转换
3参数
(平移参数
),可从
1\clip_image001.gif"> http://164.214.2.59/GandG/wgs84dt/dtp.html 下载,其中包括有香港
Hong Kong 1963基准面、台湾
Hu-Tzu-Shan 基准面的转换
3参数,但是没有中国大陆的参数。
实际 工作 中一般都根据工作区内已知的北京
54坐标控制点计算转换参数,如果工作区内有足够多的已知北京
54与
WGS84坐标控制点,可直接计算坐标转换的
7参数或
3参数;当工作区内有
3个已知北京
54与
WGS84坐标控制点时,可用下式计算
WGS84到北京
54坐标的转换参数
(A、
B、
C、
D、
E、
F):
x54 = AX84 + BY84 + C,
y54 = DX84 + EY84 + F,多余一点用作检验;在只有一个已知控制点的情况下
(往往如此
),用已知点的北京
54与
WGS84坐标之差作为平移参数,当工作区范围不大时精度也足够了。
从
Mapinfo中国的
URL( 1\clip_image001.gif"> http://www.mapinfo.com.cn/download)可下载到包含北京
54、西安
80坐标系定义的
Mapinfow.prj文件,其中定义的北京
54基准面参数为:
(3,24,-123,-94,-0.02,0.25,0.13,1.1,0),西安
80基准面参数为:
(31,24,-123,-94,-0.02,0.25,0.13,1.1,0),文件中没有注明其参数的来源,我发现它们与
Mapinfo参考手册附录
G"定义自定义基准面
"中的一个例子所列参数相同,因此其可靠性值得怀疑,尤其从西安
80与北京
54采用相同的
7参数来看,至少西安
80的基准面定义肯定是不对的。因此,当系统精度要求较高时,一定要对所采用的参数进行检测、验证,确保坐标系定义的正确性。
内容来自dedecms
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)必须定义该参数;
AffineTransform为坐标系变换对象。
相应高斯
-克吕格投影、兰勃特投影、墨卡托投影需要定义的坐标系参数序列如下:
高斯
-克吕格:投影代号
(Type),基准面
(Datum),单位
(Unit),
中央经度
(OriginLongitude),原点纬度
(OriginLatitude),
比例系数
(ScaleFactor),
东伪偏移
(FalseEasting),北纬偏移
(FalseNorthing)
兰勃特
: 投影代号
(Type),基准面
(Datum),单位
(Unit),
中央经度
(OriginLongitude),原点纬度
(OriginLatitude),
标准纬度
1(StandardParallelOne),标准纬度
2(StandardParallelTwo),
东伪偏移
(FalseEasting),北纬偏移
(FalseNorthing)
墨卡托
: 投影代号
(Type),基准面
(Datum),单位
(Unit),
原点经度
(OriginLongitude),原点纬度
(OriginLatitude),
标准纬度
(StandardParallelOne)
在城市
GIS系统中均采用
6度或
3度分带的高斯
-克吕格投影,因为一般城建坐标采用的是
6度或
3度分带的高斯
-克吕格投影坐标。高斯
-克吕格投影以
6度或
3度分带,每一个分带构成一个独立的平面直角坐标网,投影带中央经线投影后的直线为
X轴
(纵轴,纬度方向
),赤道投影后为
Y轴
(横轴,经度方向
),为了防止经度方向的坐标出现负值,规定每带的中央经线西移
500公里,即东伪偏移值为
500公里,由于高斯
-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,因此规定在横轴坐标前加上带号,如
(4231898,21655933)其中
21即为带号,同样所定义的东伪偏移值也需要加上带号,如
21带的东伪偏移值为
21500000米 。
dedecms.com
假如你的工作区位于
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参数自定义基准面就行了。
本文出自 “代志强” 博客,谢绝转载!