夏 江 郭中社 常海軍
[摘要]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歲,工程師,河北省地礦局測繪院制圖分院院長;常海軍,河北省地礦局測繪院制圖分院,工程師。