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