楊濤,張劍鋒
(1.蘭州交通大學數理與軟件工程學院,甘肅蘭州 730070; 2.蘭州市勘察測繪研究院,甘肅蘭州 730050)
線狀地圖符號數學定義的研究以及實現
楊濤1,2?,張劍鋒2
(1.蘭州交通大學數理與軟件工程學院,甘肅蘭州 730070; 2.蘭州市勘察測繪研究院,甘肅蘭州 730050)
地圖符號qgf(x)是制圖對象x在f,g,q三重拓撲映射下的象[1]。在此基礎上,通過分析地圖線狀符號的特征,提出了半依比例線狀符號的數學定義,并給出了對構造矢量線狀符號的幾何圖元進行旋轉、變形、裁剪等處理方法的數學基礎,且運用面向對象的方法給出了線狀符號的實現過程,最終通過實現證明了該方法解決了拐點超出扇形區域的問題且在視覺上達到了很好的效果。
地圖符號;線狀符號;數學定義;面向對象
地圖符號是表達空間地理信息所用的極其特殊的語言符號系統,具有嚴格的數學基礎、精確的空間位置和可量測性。也可以認為地圖符號是概念符號的集合,因為所有地圖符號都是描述空間地理事物和現象某方面的特征。鐘業勛、魏文展、黃鵠等從數學的角度提出了點狀、線狀、面狀地圖符號的數學定義[1];還給出了依比例、不依比例、半依比例地圖符號的嚴密數學定義[2],但僅考慮了少量符號變量且以二維地圖模型為基礎,難免存在一些不足。何忠煥從線狀單元的銜接、特殊位置成員、符號的異常等方面提出復雜線狀符號的繪制[3],但該填充方法存在一定的不足。當拐點角度在一定范圍內時,拐點在扇形區域的外部。計算線狀符號外接矩形頂點的坐標時,要依靠前面的拐點角度,從而使得重復計算太多,增加計算復雜性等。本文在此研究的基礎上,給出了更為廣泛的半依比例線狀符號的數學定義,并給出了對構造矢量線狀符號的幾何圖元進行旋轉、變形、裁剪等處理方法的數學基礎以及運用面向對象的方法實現了符號化。
線狀符號表示空間上的一維地物和地理現象,長度在圖上依比例尺表示,而寬度在圖上不依比例尺表示。例如圍墻、一般鐵路、加固斜坡等,線狀符號一般都有如下特征:
(1)都有一條有形或無形的定位線。
(2)都可以分解成基本線劃單元(可稱之為基線)和結點描述信息的復合,形成線狀地圖符號基本圖元,這種圖元呈周期性變化。
(3)一個基本線劃單元通常包含3種結點信息,即可在基本線劃單元的首、中、末位置上配置結點信息(點狀符號描述)。
例如,對于地圖符號鐵路和圍墻,如圖1,圖2所示。

圖1 鐵路符號

圖2 圍墻符號
3.1 地圖符號的一般定義
根據拓撲映射原理,得地圖符號的一般定義。
定義1[1]:設x∈A?X是三維空間X中制圖區域A內的制圖物體。存在從三維空間X到地球橢球面S的映射f:X→S和地球橢球面S到制圖者的認知結構Y的映射g:S→Y以及從制圖者的認知結構Y到二維平面Z的映射q:Y→Z。x在f,g,q三重拓撲映射下的平面像qgf(x)∈qgf(A)?Z稱為制圖物體x的地圖符號。
同理,將用映射q1代替映射q,可得計算機數碼集Z1中的數字地圖符號q1gf(x)∈q1gf(A)?Z。若引入時間變量,則得動態地圖符號,其集合便構成動態地圖。
3.2 半依比例符號的一般定義
定義2[2]:設qgf(x)是x在f,g,q三重拓撲映射下的地圖符號,在1∶M比例尺條件下,若對于?P∈qgf (x),?Pα,Pα?∈qgf(x)使得:

則稱qgf(x)為x的半依比例符號。其中α為依比例方向,α?為不依比例方向。
3.3 半依比例線狀符號的定義
線狀符號的圖案大部分是由周期性出現的基本圖元串接而成,運用線狀符號的可分解性,將線狀符號分解為多個基本圖元,并按順序分別從符號的起點到終點繪制出各圖元,從而實現線狀符號的繪制。此方法需要記錄各圖元之間的相對位置,確定各圖元之間的位置依賴關系。因此,可認為線狀符號的圖案是由基本線劃單元和結點信息(點、直線段、折線段、樣條曲線、多邊形、曲邊形、矩形、橢圓、橢圓弧、弓形、扇形、星形、文字、位圖等)復合并呈周期性變化。由此可得:若在1∶M比例尺條件下,線狀符號的數學描述如下:

其中:L—表示線狀符號;M—表示線狀符號的比例尺;qgf—表示線狀符號的生成函數;S—表示基本圖元;(X,Y)—表示基本圖元坐標串;T—表示線狀符號周期長度。

其中:S表示基本圖元;Xi,Xk表示基本線劃單元或結點;R表示基本線劃單元或結點Xi,Xk之間的位置依賴關系;Yj表示基本線劃單元或結點描述信息的屬性。
則稱L為制圖物體x的線狀符號。
簡化線狀符號的書寫形式為:

若對于?L1∈L?,?L1α,L1α′∈L?使得:

則稱L為制圖物體x的半依比例線狀符號。其中α為依比例方向,α′為不依比例方向。
文獻[3]從線狀單元的銜接、特殊位置成員、符號的異常等方面提出復雜線狀符號的繪制,此繪制方法存在一定的不足。當兩個符號圖元拐點角度在一定范圍內時,將出現拐點在扇形區域外部,這時必須計算線狀符號外接矩形頂點的坐標,而計算這個坐標將依靠前面所有的拐點角度和拐點的坐標,以至重復計算太多,增加計算復雜性等。為此,本文在文獻[2,3]的線狀符號填充算法的基礎上,對于這些不足做了有效的改進。
任意給定的一條線狀要素的定位線,其填充規則可描述為:第一步線狀符號圖元的旋轉處理(如圖3的AB段、FG段),第二步線狀符號圖元的變形處理(如圖3的BCD段、DEF段),第三步線狀符號圖元的裁減(如圖3的GH段)處理,以達到線狀符號的形狀和長度。

圖3 線狀符號填充
根據上述填充規則的描述,結合線狀符號橫向循環配置的方法,得到以下線狀符號填充的詳細過程。
4.1 計算基本圖元的個數
線狀符號填充處理首先確定填充的直線段,然后計算其有效長度,根據長度來確定可以填充完整的基本圖元數目。令:

其中,d—表示基本圖元的長度;Li—表示線狀符號定位線的分段長度;li—表示與圖元相鄰的上一個圖元填充后被裁剪轉入本直線段的圖元長度;且l1=0;ni—表示每一條直線段填充的完整基本圖元的個數;mi—表示每一條直線段填充的基本圖元所剩余的長度;i表示線狀符號基本圖元的個數。
以上圖為例,按照上述方法填充有:
第一條直線段的長度:L1=AC;
完整填充的基本圖元個數:n1=(L1-li)/d;l1=0基本圖元填充后剩余長度:m1=(L1-l1)%d
轉入下一條直線段的剩余基本圖元長度:l2=d-m1
這樣一直下去就可以求出所有直線段上可完整填充的基本圖元個數。
4.2 旋轉處理
旋轉處理指以被填充線狀符號的起始點作為旋轉點,將同一條直線段上的所有基本圖元旋轉適當的角度,以滿足線狀符號填充的需要。
(1)旋轉角度的表達方法
在線狀符號旋轉處理中規定:旋轉角度θ∈(-180°,180°),取逆時針旋轉的角度為正。根據兩條直線段的所得的向量,記作:通過向量的數性積,求取拐點旋轉角度的大小,而由向量矢性積,求得拐點旋轉角度的正負,計算公式如下:

(2)旋轉的坐標變換計算方法
設(x0,y0)為初始點,(x1,y1)為旋轉后的點,旋轉角度為θ,則坐標變換公式為:

運用上述的旋轉處理規則,可以對圖4進行簡單線狀符號旋轉處理,從而使線狀符號的方向和定位線的方向一致。

圖4 線狀符號的旋轉
首先假設定位線的拐點分別為O1、O2、O3和O4,坐標分別為:O1(x1,y1)、O2(x2,y2)、O3(x3,y3)、O4(x4,y4),線狀符號基本圖元的高度為h,長度為d,第一次旋轉角度為α,建立線狀符號定位線的坐標系,線狀符號(如圖4的矩形ABCD)在旋轉之前,其頂點坐標分別為A(xA,yA)、B(xB,yB)、C(xc,yc)、D(xD,yD),其中xA=xB=x1、xC=xD=x1+d、yA=yD=y1-h/2、yB=yC=y1+h/2。
線狀符號定位線繞拐點O1(x1,y1)旋轉角度α。A、B、C、D四個點以同樣的處理旋轉,以(x,y)代表A、B、C、D四點的坐標,旋轉后的新坐標為(x′,y′),則有如下變換:

而對于其他線狀符號定位線也一樣相同方式處理。
4.3 變形處理
變形處理主要應用于基本圖元填充時遇到拐點外側出現的斷裂情況,此時線狀符號的基本圖元填充到拐點(如圖5的O2)時和下一條直線段開始的基本圖元之間的斷裂部分用扇形(O2GH)填充。
扇形O2GH的頂點坐標很好求得,O2為坐標已知的拐點,而點G和H也是拐點前后兩個基本圖元的頂點坐標。扇形顏色的填充將分為兩步進行,第一步應用拐點角的角平分線將扇形劃分為兩個區域;第二步對兩個區域用與之相鄰基本圖元符號的顏色進行填充。其他的扇形處理方式同上。

圖5 線狀符號的變形
4.4 裁減處理
裁減處理解決的是拐點位置的符號重疊和交叉現象。裁剪最后一條直線段填充的線狀符號基本圖元和拐點相鄰的兩個線狀符號基本圖元與拐點角平分線相交的多余線狀符號基本圖元。
5.1 實現機制
利用面向對象技術設計合適的圖形元素類(以下簡稱圖元類),特定的圖元類對象不僅可以描述一個圖形元素,而且它應具有一定的行為。這樣圖元類就是具有智能的最小功能單元。通過類的繼承,使得不同的圖元類都具有共有的行為方法,再利用面向對象語言的多態性對特殊的類設計特殊的行為。這樣不僅提高了圖形的編輯效率,而且在很大程度上方便了整個工程的編程。例如在圖元類中修改自身屬性的方法,這樣系統在接到編輯圖形消息時,只需將編輯消息傳送到相應的圖元類對象的相應接口就可以了,而沒有必要直接修改圖形元素的屬性參數。圖元類對象修改了屬性后,再使用繪制方法(Draw)將所描述的圖形在界面上重繪。為此圖元類應有以下基本要求:
(1)圖元類必須完全描述基本圖形元素(以下簡稱為圖元),即包含描述這種圖元的所有屬性參數;
(2)能夠接受用戶對圖元的編輯消息,能夠實現對圖元的編輯功能,如對圖元屬性的修改,自我復制等;
(3)將自身描述的圖元,記錄到文件的功能,即用GDI+繪制圖元寫進元文件中的功能。
5.2 實現過程
為了方便編程,實現代碼的重用,采用以下繼承關系,如圖6所示。

圖6 線圖元類的繼承圖
(1)最上層是CGraphElement,此類具有線狀圖元類的共同屬性,如光柵操作模式、選中狀態標識、圖層索引號等,另外還具有圖元類都具有的方法和外部接口;
(2)中間層是CLineELement,此類為線狀元素的基本圖元類,具有本圖元的私有屬性及方法,如CLine描述一條直線,具有私有屬性直線的起點、終點等。
(3)特殊的圖元類說明
①CInsertBmp類,處理位圖圖片類。該類具有處理元文件中記錄的位圖圖片的所有屬性和方法,如位圖大小、位置、類型等屬性以及處理位圖的對比度、明亮度等方法。
②CComboDraw類,組合圖元類。此類具有支持圖元的組合、分解等操作而設計的特殊圖元類。在該圖元類中有一個CObaray類型的私有成員變量,在此變量中存有一個或多個圖元對象,再這些圖元對象中,可能存在CComboDraw類型的對象。整幅矢量圖形可以看成一個大的組合類型圖元對象,因此一幅矢量圖形用圖元對象表示,則是一棵樹型結構,如圖7所示。

圖7 組合圖元的樹形結構
本文在分析已有GIS與地圖制圖軟件設計地圖符號的基礎上,提出了線狀符號的數學定義,運用Arc-GIS Engine和C#,以線狀符號圖案周期性理論為依據,設計了一種面向對象的線狀符號編輯器。在符號化過程中,解決了線狀符號填充時,拐點出現的符號交叉、重疊、斷裂、空白等失真現象,通過對線狀符號的填充、旋轉、變形、裁減等方法的處理,有效防止了失真現象,不僅解決了拐點超出扇形區域的問題,而且在視覺上達到了很好的效果,最重要的是解決了基本圖元重復計算的問題,提高了線狀地圖符號符號化的效率(圖8、圖9為符號圖元和線狀符號填充示意圖)。

圖8 符號圖元

圖9 線狀符號填充示意
[1] 鐘業勛,魏文展,彭月英等.地圖符號數學定義的研究[J].武漢大學學報·信息科學版,2001,26(5):465~468
[2] 黃鵠,鐘業勛.依比例符號、不依比例符號和半依比例符號數學定義的改進[J].武漢大學學報·信息科學版,2006,31(3):244~246
[3] 何忠煥.GIS符號庫中復雜線狀符號設計技術的研究[J].武漢大學學報·信息科學版,2004(2):132~134
[4] 鐘業勛,黃鵠.依比例、不依比例和半依比例符號數學定義的修改[J].海洋測繪,2008,28(4):19~21
[5] 魏文展,鐘業勛,彭月英等.點狀、線狀和面狀地圖符號數學定義的研究[J].武漢大學學報·信息科學版,2002,27 (4):424~426
[6] 鐘業勛,鄭紅波.不同約束條件下地圖符號的數學定義[J].測繪信息與工程,2007,32(3):69~70
[7] 鐘業勛,朱重光,魏文展.地圖空間認知的數學原理[J].測繪科學,2005,30(5):11~12
[8] 黃鵠,鐘業勛.點線面地圖符號定義的簡化與統一[J].測繪科學,2005,30(6):69~70
[9] BRIVIO P A,GIARDINO C.Determination of chlorophyll concent ration changes in Lake Garda using an image-based radiative transfer code for Landsat TM images[J].Int.J.RemoteSensing,2001,22(223):487~5021
[10] DOXARAN D,FROIDEFOND J M.Spect ral signat ure of highly turbid waters application wit h SPOT data to quantify suspended particulate matter concent rations[J].Remote Sensing of Environment,2003,81:149~1611
[11] 胡最,閆浩文.地圖符號的語言學機制及其應用研究[J].地理與地理信息科學,2008,24(1):17~20
[12] 談曉軍,邊馥苓,何忠煥.地圖符號可視化系統的面向對象設計與實現[J].測繪通報,2003(1):11~14
[13] 沈陳華.線狀符號庫的面向對象設計[J].重慶師范學院學報:自然科學版,2000,17(4):41~43
[14] 張海泉,潘懋,吳煥萍等.面向GIS的矢量線狀符號填充算法研究[J].地理與地理信息科學,2004(7):12~14
The Research of Mathematical Definition of Line Symbols and Its Application
Yang Tao1,2,Zhang JianFeng2
(1.School of Mathematics,Physics&Software Engineering,Lanzhou Jiaotong University,Lanzhou 730070,China;2.Lanzhou Institute of Survey and Investigation,Lanzhou 730030,China)
There are three topological mappings of f,g,q relation between mapping object x and map symbol qgf(x). On this basis,this paper analyses the characteristic of linear map symbol,gives the mathematical definition of semi-scale linear symbol,and describes the mathematical foundations of meta-data’s rotation,deformation and clipping to construct linear vector symbol.In the end,it is realized through object-oriented programming method and the experiment results show that it works well and has higher drawing quality.
cartographic symbol;linear symbol;mathematical definition;object-oriented
1672-8262(2011)02-53-04
P312
B
2010—07—28
楊濤(1984—),男,碩士研究生,研究方向:GIS方面的研究和開發。