張志軍,邱俊武,于忠海
(1.天津市測繪院,天津 300381;2.武漢大學 資源與環(huán)境科學學院,湖北 武漢 430079)
目前,實現(xiàn)地圖符號共享的主要障礙在于:地圖符號數(shù)據(jù)格式的差異;地圖符號設計方式的差異;地圖符號化接口的差異;地圖符號化結果的差異。針對這一情況,本文將對地圖符號的定義和分類進行分析,通過對其表達模型、描述語法、配置過程的研究,提出一套通用地圖符號表達機制。
作為一門地圖語言,地圖符號使用約定的圖形來代指抽象的概念。根據(jù)約定性原理,采用演繹的方法可將地圖符號分成點狀符號、線狀符號和面狀符號[1-2]。魏文展根據(jù)集合論和拓撲學的有關理論,導出3類地圖符號的數(shù)學定義[3];之后黃鵠對其進行簡化和改進[4-5];鐘業(yè)勛在此基礎上根據(jù)不同的約束條件,推導出不同形式地圖符號的數(shù)學定義[6]。本文中所述的地圖符號是指表示地圖要素的空間位置、質(zhì)量和數(shù)量特征的特定圖形記號。符號化是指為地圖符號所指代的地圖要素配置該符號所描述的特定圖形的過程。
圖元參數(shù)法將地圖符號拆分成基本幾何圖形單元(即圖元)和配置參數(shù)。本文參照相關測繪標準建立了一個通用的地圖符號表達模型,如圖1所示。
圖1 通用地圖符號表達模型
該模型分為4層:符號庫層、符號層、圖元層和圖形層。符號庫是地圖符號的集合,該層描述符號庫版本、作者、制作標準等相關信息;符號層描述一個地圖符號的構成及其約束條件;圖元層描述構成符號的圖元(或低維符號)及其配置參數(shù),配置參數(shù)用于描述圖元(或低維符號)與地圖符號之間的空間關系;圖形層采用幾何參數(shù)、定位參數(shù)和繪制參數(shù)分別描述圖元的幾何形狀、位置和樣式信息。
擴展標記語言(XML)是世界萬維網(wǎng)協(xié)會為適應網(wǎng)絡發(fā)展而制定的用于描述復雜信息的結構化標記語言,盡管它的發(fā)展時間不長,但現(xiàn)在已經(jīng)沒有人懷疑它給信息社會帶來的革命性影響[9]。XML的功能是非常強大的,同時對于人類和計算機程序來說,都容易閱讀和編寫[10]。因此,本文選擇XML作為地圖符號的描述語言。
本文歸納總結了目前主流制圖軟件的符號庫,并參照《地圖符號庫建立的基本規(guī)定》定義了9種圖元類型,分為點圖元、線圖元和面圖元3大類,詳情見表1。
表1 圖元參數(shù)一覽表
用于描述一個圖形為圓,圓心坐標為(0,0),半徑為70,線寬為10,紅色實線圓弧,黑色實心填充的符號圖元的xml文檔如下(一個坐標單位相當于打印紙面上0.01mm。):
<PGraphUnit>
<GraphUnitType>PGT_ELLIPSE</GraphUnitType>
<MapSymbolGeometryProp>
<pntCentralPointX>0
</pntCentralPointX>
<nLongRadius>70</nLongRadius>
<pntCentralPointY>0
</pntCentralPointY>
<nShortRadius>70</nShortRadius>
</MapSymbolGeometryProp>
<MapSymbolPen>
<dwPenStyle>PS_SOLID</dwPenStyle>
<dwPenWidth>10</dwPenWidth>
<dwStyleCount>0</dwStyleCount>
<lbColor>RGB(255,0,0)</lbColor>
</MapSymbolPen>
<MapSymbolBrush>
<lbStyle>BS_SOLID</lbStyle>
<lbColor>RGB(0,0,0)</lbColor>
</MapSymbolBrush>
</PGraphUnit>
3.2.1 點符號的描述
點符號分為無向點符號和有向點符號。前者是指在圖面上始終指向北圖廓的點符號,后者是指需要根據(jù)定位點或者定位線來確定方向的點符號。因此,點符號的配置參數(shù)即為旋轉角度。
3.2.2 線符號的描述
對于線符號,由一個矩形區(qū)域作為配置單元來提供定位基準。該配置單元建立在一個邏輯坐標系上,該坐標系以定位線的起始點為坐標原點,以其延伸方向為X方向,其法方向為Y軸,Y軸上以指向北圖廓線方向為正方向,如圖2中虛線矩形框。
線符號的配置方式分為重復配置和拉伸配置。前者是指將配置單元沿著線狀地物中心線方向按照一定的間隔重復繪制,如長城、國界等。后者是指將配置單元拉伸至地物中心線上完成繪制,如機耕路、單線河。在拉伸配置時,點圖元和點符號不會變形,線圖元和面圖元可能發(fā)生變形。
3.2.3 面符號的描述
面符號分為輪廓線和內(nèi)部填充兩部分:輪廓線按線符號方法進行描述;內(nèi)部填充分為若干層,每層采用一種填充方式[11]。填充方式分為:顏色填充、線填充和點符號填充。顏色填充是指用特定的色彩填充面域。線填充是指用暈線填充面域,其配置參數(shù)有:線間距、傾斜角度、線型、線寬和線色。點符號填充是指用點符號填充面域,分為隨機填充和規(guī)則填充。前者的配置參數(shù)為距離閾值,用于描述兩個點符號之間的最小距離。后者的配置參數(shù)有定位網(wǎng)格的行距、列距、是否錯切和傾斜角度,以及X/Y方向偏移量和旋轉角度,用于描述一個規(guī)則格網(wǎng)參數(shù)及其仿射參數(shù)。對于邊界處的點符號有3種處理方式:裁剪、保留和刪除。
為實現(xiàn)符號化結果的共享,本文將符號化結果拆分為橢圓、折線和多邊形3類通用的幾何圖形。一個地圖符號的配置過程如下:首先通過地圖符號的配置參數(shù)得到各組成單元的繪制順序和定位參數(shù);然后依次根據(jù)各圖元的類型和幾何參數(shù)得到符號化結果;最后按照其繪制參數(shù)完成地圖符號的繪制和符號化結果的輸出。
為驗證本文提出的地圖符號表達機制的可行性和通用性,筆者在VC++環(huán)境下,開發(fā)了符號制作軟件SymbolMaker和通用地圖符號化組件MapSymbol,分別實現(xiàn)符號的制作和符號化服務,并制作了3個地圖符號實例,在制圖軟件中實現(xiàn)符號化。
點符號實例:水準點:本符號無約束參數(shù),定位參數(shù)為符號的幾何中心,旋轉角度為0,由一個點圖元和兩個線圖元組成。制作過程如圖3所示。
圖3 水準點制作
線符號實例:時令河:本符號為漸變符號,定位參數(shù)為時令河的中心線,配置參數(shù)為重復配置,由一個面圖元組成。制作過程如圖4所示。
圖4 時令河制作
面符號實例:草地:本符號無約束參數(shù)和輪廓線,內(nèi)部填充只有一層,為符號填充。點符號制作省略,邊界處理為刪除,填充格網(wǎng)水平間距為250,垂直間距為500,格網(wǎng)傾角為0,無錯切,水平和垂直方向偏移量為0。制作過程如圖5所示。
圖5 草地制作
將MapSymbol組件嵌入制圖軟件,提供地圖符號化服務,效果理想。圖6為Mapper(筆者開發(fā)的制圖軟件)中時令河符號的效果,圖7為ArcGIS中醫(yī)院符號的效果。
圖6 Mapper中時令河符號
圖7 ArcGIS中醫(yī)院符號
本文從地圖符號的本質(zhì)意義出發(fā),研究地圖符號的幾何特征,并用統(tǒng)一的語法完成符號的描述,提出一套地圖符號表達機制。地圖符號的共享是實現(xiàn)地理信息共享的基石,是個長遠而復雜的問題。筆者將在后續(xù)的研究中加強特殊符號(如崩崖)智能處理的研究。
[1]尹貢白.地圖概論[M].北京:測繪出版社,1991.
[2]田德森.現(xiàn)代地圖學理論[M].北京:測繪出版社,1991.
[3]魏文展,鐘業(yè)勛,彭月英,等.點狀、線狀和面狀地圖符號數(shù)學定義的研究[J].武漢大學學報:信息科學版,2002,27(4):424-426.
[4]黃鵠,鐘業(yè)勛.點線面狀地圖符號定義的簡化與統(tǒng)一[J].測繪科學,2005,30(6):70-71+77.
[5]黃鵠,鐘業(yè)勛.依比例符號、不依比例符號和半依比例符號數(shù)學定義的改進[J].武漢大學學報:信息科學版,2006,31(3):244-246.
[6]鐘業(yè)勛,鄭紅波.不同約束條件下地圖符號的數(shù)學定義[J].測繪信息與工程,2007,32(3):49-51.
[7]龔健雅.地理信息系統(tǒng)基礎[M].北京:科學出版社,2001.
[8]梅洋,李霖.地圖中半線半面符號的設計與研究[J].測繪科學,2006,31(1):115-118.
[9]周文生,毛峰.地理標記語言GML及其可視化[J].測繪通報,2003(9):23-26.
[10]宋揚,胡金星,潘懋.基于GML-XML的多源異構空間數(shù)據(jù)互操作引擎研究[J].計算機工程與應用,2003(3):114-116.
[11]尹章才,李霖,龍毅,等.基于分層的面狀地圖符號設計[J].武漢大學學報:信息科學版,2004,29(12):1111-1114.