GIS系统内部结构表示方法
2009-10-19夏江郭中社常海军
夏 江 郭中社 常海军
[摘要]GIS开发中一些常用的要素表示方法,点、线、面以及坐标系投影的相关知识。
[关键词]点 线 面 坐标系 投影变换
中图分类号:TN96文献标识码:A文章编号:1671-7597(2009)0910008-01
近几年来,GIS技术在全球得到了迅猛的发展,它已经成为现实生活的重要组成部分。利用GIS技术开发的以多媒体、网络化、自动化为特色的信息处理、信息管理、指挥调度和决策支持系统,已经在各领域发挥着重大作用。GIS技术已经成为电子商务、电子政务、电子军务的重要技术支撑。正因为如此,用于开发GIS的专业开发工具也得到了飞速发展,出现了大量GIS的专业开发工具,应用专业开发工具开发GIS,具有开发起点高,可靠性好,相对简单易学等优点,但也存在着可扩展性差、适用性差、系统庞大,没有系统版权等缺点,尤其是,这些专业开发工具总体上来说还是一个难于真正修改的“黑匣子”,很难通过无缝集成实现实用系统的特殊功能。
开发具有自主知识产权的GIS系统,面临的困难是,对开发人员的要求较高,开发周期相对较长,风险性也较大,但从长远发展来看,有利于核心技术的积累,同时开发出的系统也可以根据实际需要进行取舍,灵活性高,本文简要介绍GIS系统实现的一些内部核心内容。
GIS系统首先要解决的问题是GIS数据的内部结构表示问题,通常会GIS相应对象分为点(Point)、线(Polyline)、面(Region)三种类型,下面对相关类型逐一说明:
(一)点(Point)的结构表示
struct Point {
// 点的坐标。
CPoint point;
// 缩放级别。
unsigned char cLevel;
// 删除与否。
BoolbDeleted;
//符号的类型集,用于设置点的样式。
const CTypeSet * pTypeSet;
// 点的标注内容。
CStringstrLabel;
// 点的标注位置。
CPointptLabel;
//标注所用的字体信息。
CFontfont;
};
(二)线(Polyline)、面(Region)的结构表示
struct Line or Region {
// 线或面的结点。
CPoint points;
// 线或面对象的边界矩形。
CRectange rectBound;
// 缩放级别。
unsigned char cLevel;
// 对于面来说,内部是否有一个”Hole”。
bool bHole;
//删除与否。
bool bDeleted;
// 对于线来说则是长度,对于面来说则是面积。
floatfLengthOrArea;
//符号的类型集,用于设置线或面的样式。
const CTypeSet * pTypeSet;
// 点的标注内容。
CStringstrLabel;
// 线或面的标注的起始位置。
CPointptLabel;
//标注所用的字体信息。
CFontfont;
}
其次就是GIS系统中所用到的坐标系、投影内容等相关内部结构,在中国常用的坐标系有WGS84、XiAN80、BeiJing54等三种,一般采用如下的表示结构:
struct CDatum {
const char * strName;
const char * strOziID;
const CEllipsoid * pEllipsoid;
float fDX;
float fDY;
float fDZ;
float fWX;
float fWY;
float fWZ;
float fMS;
mutable CTransformationBase * pToWGS84;
CTransformationBase * ToWGS84 () const;
};
具体形式如下:
// WGS84椭球体参数。
const CEllipsoid c_eWGS84 ("WGS 84", 6378137.0, 1/298.257223563);
//CDatum结构示例。
{"WGS 84", "WGS 84", & c_eWGS84, 0, 0, 0}
下面是关于坐标系,投影变换的简要说明:
(1)Geographic Coordinate Systems(地理坐标系)。描述了地理坐标系的名称、大地基准面、椭球体、起始坐标参考点、单位等。
(2)Projected Coordinate Systems(投影坐标系)。在Projected Coordinate Systems同样存在许多已定义的投影坐标系,我国大部分地图所采用的北京54和西安80坐标系的投影文件就在其中,它们均采用高斯-克吕格投影,前者使用克拉索夫斯基椭球体,后者使用国际大地测量协会推荐的IAG75地球椭球体。
投影坐标系的参数里面除了包含地理坐标系的定义外,还有投影方式的相应描述。
(3)Vertical Coordinate Systems(垂直坐标系)。Vertical Coordinate Systems定义了测量海拔或深度值的原点的具体定义。
需要注意的是,大家经常希望能够通过坐标转换,将北京54或西安80中的地理坐标系转换到WGS84,实际上这样做是不准确的,北京54或西安80的投影坐标可以通过计算转换到其对应的地理坐标系,但由于我国北京54和西安80中的地理坐标系到WGS84的转换参数没有公开,因此无法完成其到WGS84坐标的精准计算。
参考文献:
[1]陈永奇,工程测量学-(第三版),测绘出版社.
[2]祝国瑞,地图设计与编绘,高等学校地图学与地理信息系统系列教材.
[3]ArcGIS 9.3 Desktop Help.
作者简介:
夏江,女,53岁,工程师,河北省地矿局测绘院制图分院副院长、技术负责,从事测绘工作34年;郭中社,男,46岁,工程师,河北省地矿局测绘院制图分院院长;常海军,河北省地矿局测绘院制图分院,工程师。