楊濤,張劍鋒
(1.蘭州交通大學(xué)數(shù)理與軟件工程學(xué)院,甘肅蘭州 730070; 2.蘭州市勘察測(cè)繪研究院,甘肅蘭州 730050)
線狀地圖符號(hào)數(shù)學(xué)定義的研究以及實(shí)現(xiàn)
楊濤1,2?,張劍鋒2
(1.蘭州交通大學(xué)數(shù)理與軟件工程學(xué)院,甘肅蘭州 730070; 2.蘭州市勘察測(cè)繪研究院,甘肅蘭州 730050)
地圖符號(hào)qgf(x)是制圖對(duì)象x在f,g,q三重拓?fù)溆成湎碌南骩1]。在此基礎(chǔ)上,通過(guò)分析地圖線狀符號(hào)的特征,提出了半依比例線狀符號(hào)的數(shù)學(xué)定義,并給出了對(duì)構(gòu)造矢量線狀符號(hào)的幾何圖元進(jìn)行旋轉(zhuǎn)、變形、裁剪等處理方法的數(shù)學(xué)基礎(chǔ),且運(yùn)用面向?qū)ο蟮姆椒ńo出了線狀符號(hào)的實(shí)現(xiàn)過(guò)程,最終通過(guò)實(shí)現(xiàn)證明了該方法解決了拐點(diǎn)超出扇形區(qū)域的問題且在視覺上達(dá)到了很好的效果。
地圖符號(hào);線狀符號(hào);數(shù)學(xué)定義;面向?qū)ο?/p>
地圖符號(hào)是表達(dá)空間地理信息所用的極其特殊的語(yǔ)言符號(hào)系統(tǒng),具有嚴(yán)格的數(shù)學(xué)基礎(chǔ)、精確的空間位置和可量測(cè)性。也可以認(rèn)為地圖符號(hào)是概念符號(hào)的集合,因?yàn)樗械貓D符號(hào)都是描述空間地理事物和現(xiàn)象某方面的特征。鐘業(yè)勛、魏文展、黃鵠等從數(shù)學(xué)的角度提出了點(diǎn)狀、線狀、面狀地圖符號(hào)的數(shù)學(xué)定義[1];還給出了依比例、不依比例、半依比例地圖符號(hào)的嚴(yán)密數(shù)學(xué)定義[2],但僅考慮了少量符號(hào)變量且以二維地圖模型為基礎(chǔ),難免存在一些不足。何忠煥從線狀單元的銜接、特殊位置成員、符號(hào)的異常等方面提出復(fù)雜線狀符號(hào)的繪制[3],但該填充方法存在一定的不足。當(dāng)拐點(diǎn)角度在一定范圍內(nèi)時(shí),拐點(diǎn)在扇形區(qū)域的外部。計(jì)算線狀符號(hào)外接矩形頂點(diǎn)的坐標(biāo)時(shí),要依靠前面的拐點(diǎn)角度,從而使得重復(fù)計(jì)算太多,增加計(jì)算復(fù)雜性等。本文在此研究的基礎(chǔ)上,給出了更為廣泛的半依比例線狀符號(hào)的數(shù)學(xué)定義,并給出了對(duì)構(gòu)造矢量線狀符號(hào)的幾何圖元進(jìn)行旋轉(zhuǎn)、變形、裁剪等處理方法的數(shù)學(xué)基礎(chǔ)以及運(yùn)用面向?qū)ο蟮姆椒▽?shí)現(xiàn)了符號(hào)化。
線狀符號(hào)表示空間上的一維地物和地理現(xiàn)象,長(zhǎng)度在圖上依比例尺表示,而寬度在圖上不依比例尺表示。例如圍墻、一般鐵路、加固斜坡等,線狀符號(hào)一般都有如下特征:
(1)都有一條有形或無(wú)形的定位線。
(2)都可以分解成基本線劃單元(可稱之為基線)和結(jié)點(diǎn)描述信息的復(fù)合,形成線狀地圖符號(hào)基本圖元,這種圖元呈周期性變化。
(3)一個(gè)基本線劃單元通常包含3種結(jié)點(diǎn)信息,即可在基本線劃單元的首、中、末位置上配置結(jié)點(diǎn)信息(點(diǎn)狀符號(hào)描述)。
例如,對(duì)于地圖符號(hào)鐵路和圍墻,如圖1,圖2所示。
圖1 鐵路符號(hào)
圖2 圍墻符號(hào)
3.1 地圖符號(hào)的一般定義
根據(jù)拓?fù)溆成湓?,得地圖符號(hào)的一般定義。
定義1[1]:設(shè)x∈A?X是三維空間X中制圖區(qū)域A內(nèi)的制圖物體。存在從三維空間X到地球橢球面S的映射f:X→S和地球橢球面S到制圖者的認(rèn)知結(jié)構(gòu)Y的映射g:S→Y以及從制圖者的認(rèn)知結(jié)構(gòu)Y到二維平面Z的映射q:Y→Z。x在f,g,q三重拓?fù)溆成湎碌钠矫嫦駋gf(x)∈qgf(A)?Z稱為制圖物體x的地圖符號(hào)。
同理,將用映射q1代替映射q,可得計(jì)算機(jī)數(shù)碼集Z1中的數(shù)字地圖符號(hào)q1gf(x)∈q1gf(A)?Z。若引入時(shí)間變量,則得動(dòng)態(tài)地圖符號(hào),其集合便構(gòu)成動(dòng)態(tài)地圖。
3.2 半依比例符號(hào)的一般定義
定義2[2]:設(shè)qgf(x)是x在f,g,q三重拓?fù)溆成湎碌牡貓D符號(hào),在1∶M比例尺條件下,若對(duì)于?P∈qgf (x),?Pα,Pα?∈qgf(x)使得:
則稱qgf(x)為x的半依比例符號(hào)。其中α為依比例方向,α?為不依比例方向。
3.3 半依比例線狀符號(hào)的定義
線狀符號(hào)的圖案大部分是由周期性出現(xiàn)的基本圖元串接而成,運(yùn)用線狀符號(hào)的可分解性,將線狀符號(hào)分解為多個(gè)基本圖元,并按順序分別從符號(hào)的起點(diǎn)到終點(diǎn)繪制出各圖元,從而實(shí)現(xiàn)線狀符號(hào)的繪制。此方法需要記錄各圖元之間的相對(duì)位置,確定各圖元之間的位置依賴關(guān)系。因此,可認(rèn)為線狀符號(hào)的圖案是由基本線劃單元和結(jié)點(diǎn)信息(點(diǎn)、直線段、折線段、樣條曲線、多邊形、曲邊形、矩形、橢圓、橢圓弧、弓形、扇形、星形、文字、位圖等)復(fù)合并呈周期性變化。由此可得:若在1∶M比例尺條件下,線狀符號(hào)的數(shù)學(xué)描述如下:
其中:L—表示線狀符號(hào);M—表示線狀符號(hào)的比例尺;qgf—表示線狀符號(hào)的生成函數(shù);S—表示基本圖元;(X,Y)—表示基本圖元坐標(biāo)串;T—表示線狀符號(hào)周期長(zhǎng)度。
其中:S表示基本圖元;Xi,Xk表示基本線劃單元或結(jié)點(diǎn);R表示基本線劃單元或結(jié)點(diǎn)Xi,Xk之間的位置依賴關(guān)系;Yj表示基本線劃單元或結(jié)點(diǎn)描述信息的屬性。
則稱L為制圖物體x的線狀符號(hào)。
簡(jiǎn)化線狀符號(hào)的書寫形式為:
若對(duì)于?L1∈L?,?L1α,L1α′∈L?使得:
則稱L為制圖物體x的半依比例線狀符號(hào)。其中α為依比例方向,α′為不依比例方向。
文獻(xiàn)[3]從線狀單元的銜接、特殊位置成員、符號(hào)的異常等方面提出復(fù)雜線狀符號(hào)的繪制,此繪制方法存在一定的不足。當(dāng)兩個(gè)符號(hào)圖元拐點(diǎn)角度在一定范圍內(nèi)時(shí),將出現(xiàn)拐點(diǎn)在扇形區(qū)域外部,這時(shí)必須計(jì)算線狀符號(hào)外接矩形頂點(diǎn)的坐標(biāo),而計(jì)算這個(gè)坐標(biāo)將依靠前面所有的拐點(diǎn)角度和拐點(diǎn)的坐標(biāo),以至重復(fù)計(jì)算太多,增加計(jì)算復(fù)雜性等。為此,本文在文獻(xiàn)[2,3]的線狀符號(hào)填充算法的基礎(chǔ)上,對(duì)于這些不足做了有效的改進(jìn)。
任意給定的一條線狀要素的定位線,其填充規(guī)則可描述為:第一步線狀符號(hào)圖元的旋轉(zhuǎn)處理(如圖3的AB段、FG段),第二步線狀符號(hào)圖元的變形處理(如圖3的BCD段、DEF段),第三步線狀符號(hào)圖元的裁減(如圖3的GH段)處理,以達(dá)到線狀符號(hào)的形狀和長(zhǎng)度。
圖3 線狀符號(hào)填充
根據(jù)上述填充規(guī)則的描述,結(jié)合線狀符號(hào)橫向循環(huán)配置的方法,得到以下線狀符號(hào)填充的詳細(xì)過(guò)程。
4.1 計(jì)算基本圖元的個(gè)數(shù)
線狀符號(hào)填充處理首先確定填充的直線段,然后計(jì)算其有效長(zhǎng)度,根據(jù)長(zhǎng)度來(lái)確定可以填充完整的基本圖元數(shù)目。令:
其中,d—表示基本圖元的長(zhǎng)度;Li—表示線狀符號(hào)定位線的分段長(zhǎng)度;li—表示與圖元相鄰的上一個(gè)圖元填充后被裁剪轉(zhuǎn)入本直線段的圖元長(zhǎng)度;且l1=0;ni—表示每一條直線段填充的完整基本圖元的個(gè)數(shù);mi—表示每一條直線段填充的基本圖元所剩余的長(zhǎng)度;i表示線狀符號(hào)基本圖元的個(gè)數(shù)。
以上圖為例,按照上述方法填充有:
第一條直線段的長(zhǎng)度:L1=AC;
完整填充的基本圖元個(gè)數(shù):n1=(L1-li)/d;l1=0基本圖元填充后剩余長(zhǎng)度:m1=(L1-l1)%d
轉(zhuǎn)入下一條直線段的剩余基本圖元長(zhǎng)度:l2=d-m1
這樣一直下去就可以求出所有直線段上可完整填充的基本圖元個(gè)數(shù)。
4.2 旋轉(zhuǎn)處理
旋轉(zhuǎn)處理指以被填充線狀符號(hào)的起始點(diǎn)作為旋轉(zhuǎn)點(diǎn),將同一條直線段上的所有基本圖元旋轉(zhuǎn)適當(dāng)?shù)慕嵌龋詽M足線狀符號(hào)填充的需要。
(1)旋轉(zhuǎn)角度的表達(dá)方法
在線狀符號(hào)旋轉(zhuǎn)處理中規(guī)定:旋轉(zhuǎn)角度θ∈(-180°,180°),取逆時(shí)針旋轉(zhuǎn)的角度為正。根據(jù)兩條直線段的所得的向量,記作:通過(guò)向量的數(shù)性積,求取拐點(diǎn)旋轉(zhuǎn)角度的大小,而由向量矢性積,求得拐點(diǎn)旋轉(zhuǎn)角度的正負(fù),計(jì)算公式如下:
(2)旋轉(zhuǎn)的坐標(biāo)變換計(jì)算方法
設(shè)(x0,y0)為初始點(diǎn),(x1,y1)為旋轉(zhuǎn)后的點(diǎn),旋轉(zhuǎn)角度為θ,則坐標(biāo)變換公式為:
運(yùn)用上述的旋轉(zhuǎn)處理規(guī)則,可以對(duì)圖4進(jìn)行簡(jiǎn)單線狀符號(hào)旋轉(zhuǎn)處理,從而使線狀符號(hào)的方向和定位線的方向一致。
圖4 線狀符號(hào)的旋轉(zhuǎn)
首先假設(shè)定位線的拐點(diǎn)分別為O1、O2、O3和O4,坐標(biāo)分別為:O1(x1,y1)、O2(x2,y2)、O3(x3,y3)、O4(x4,y4),線狀符號(hào)基本圖元的高度為h,長(zhǎng)度為d,第一次旋轉(zhuǎn)角度為α,建立線狀符號(hào)定位線的坐標(biāo)系,線狀符號(hào)(如圖4的矩形ABCD)在旋轉(zhuǎn)之前,其頂點(diǎn)坐標(biāo)分別為A(xA,yA)、B(xB,yB)、C(xc,yc)、D(xD,yD),其中xA=xB=x1、xC=xD=x1+d、yA=y(tǒng)D=y(tǒng)1-h(huán)/2、yB=y(tǒng)C=y(tǒng)1+h/2。
線狀符號(hào)定位線繞拐點(diǎn)O1(x1,y1)旋轉(zhuǎn)角度α。A、B、C、D四個(gè)點(diǎn)以同樣的處理旋轉(zhuǎn),以(x,y)代表A、B、C、D四點(diǎn)的坐標(biāo),旋轉(zhuǎn)后的新坐標(biāo)為(x′,y′),則有如下變換:
而對(duì)于其他線狀符號(hào)定位線也一樣相同方式處理。
4.3 變形處理
變形處理主要應(yīng)用于基本圖元填充時(shí)遇到拐點(diǎn)外側(cè)出現(xiàn)的斷裂情況,此時(shí)線狀符號(hào)的基本圖元填充到拐點(diǎn)(如圖5的O2)時(shí)和下一條直線段開始的基本圖元之間的斷裂部分用扇形(O2GH)填充。
扇形O2GH的頂點(diǎn)坐標(biāo)很好求得,O2為坐標(biāo)已知的拐點(diǎn),而點(diǎn)G和H也是拐點(diǎn)前后兩個(gè)基本圖元的頂點(diǎn)坐標(biāo)。扇形顏色的填充將分為兩步進(jìn)行,第一步應(yīng)用拐點(diǎn)角的角平分線將扇形劃分為兩個(gè)區(qū)域;第二步對(duì)兩個(gè)區(qū)域用與之相鄰基本圖元符號(hào)的顏色進(jìn)行填充。其他的扇形處理方式同上。
圖5 線狀符號(hào)的變形
4.4 裁減處理
裁減處理解決的是拐點(diǎn)位置的符號(hào)重疊和交叉現(xiàn)象。裁剪最后一條直線段填充的線狀符號(hào)基本圖元和拐點(diǎn)相鄰的兩個(gè)線狀符號(hào)基本圖元與拐點(diǎn)角平分線相交的多余線狀符號(hào)基本圖元。
5.1 實(shí)現(xiàn)機(jī)制
利用面向?qū)ο蠹夹g(shù)設(shè)計(jì)合適的圖形元素類(以下簡(jiǎn)稱圖元類),特定的圖元類對(duì)象不僅可以描述一個(gè)圖形元素,而且它應(yīng)具有一定的行為。這樣圖元類就是具有智能的最小功能單元。通過(guò)類的繼承,使得不同的圖元類都具有共有的行為方法,再利用面向?qū)ο笳Z(yǔ)言的多態(tài)性對(duì)特殊的類設(shè)計(jì)特殊的行為。這樣不僅提高了圖形的編輯效率,而且在很大程度上方便了整個(gè)工程的編程。例如在圖元類中修改自身屬性的方法,這樣系統(tǒng)在接到編輯圖形消息時(shí),只需將編輯消息傳送到相應(yīng)的圖元類對(duì)象的相應(yīng)接口就可以了,而沒有必要直接修改圖形元素的屬性參數(shù)。圖元類對(duì)象修改了屬性后,再使用繪制方法(Draw)將所描述的圖形在界面上重繪。為此圖元類應(yīng)有以下基本要求:
(1)圖元類必須完全描述基本圖形元素(以下簡(jiǎn)稱為圖元),即包含描述這種圖元的所有屬性參數(shù);
(2)能夠接受用戶對(duì)圖元的編輯消息,能夠?qū)崿F(xiàn)對(duì)圖元的編輯功能,如對(duì)圖元屬性的修改,自我復(fù)制等;
(3)將自身描述的圖元,記錄到文件的功能,即用GDI+繪制圖元寫進(jìn)元文件中的功能。
5.2 實(shí)現(xiàn)過(guò)程
為了方便編程,實(shí)現(xiàn)代碼的重用,采用以下繼承關(guān)系,如圖6所示。
圖6 線圖元類的繼承圖
(1)最上層是CGraphElement,此類具有線狀圖元類的共同屬性,如光柵操作模式、選中狀態(tài)標(biāo)識(shí)、圖層索引號(hào)等,另外還具有圖元類都具有的方法和外部接口;
(2)中間層是CLineELement,此類為線狀元素的基本圖元類,具有本圖元的私有屬性及方法,如CLine描述一條直線,具有私有屬性直線的起點(diǎn)、終點(diǎn)等。
(3)特殊的圖元類說(shuō)明
①CInsertBmp類,處理位圖圖片類。該類具有處理元文件中記錄的位圖圖片的所有屬性和方法,如位圖大小、位置、類型等屬性以及處理位圖的對(duì)比度、明亮度等方法。
②CComboDraw類,組合圖元類。此類具有支持圖元的組合、分解等操作而設(shè)計(jì)的特殊圖元類。在該圖元類中有一個(gè)CObaray類型的私有成員變量,在此變量中存有一個(gè)或多個(gè)圖元對(duì)象,再這些圖元對(duì)象中,可能存在CComboDraw類型的對(duì)象。整幅矢量圖形可以看成一個(gè)大的組合類型圖元對(duì)象,因此一幅矢量圖形用圖元對(duì)象表示,則是一棵樹型結(jié)構(gòu),如圖7所示。
圖7 組合圖元的樹形結(jié)構(gòu)
本文在分析已有GIS與地圖制圖軟件設(shè)計(jì)地圖符號(hào)的基礎(chǔ)上,提出了線狀符號(hào)的數(shù)學(xué)定義,運(yùn)用Arc-GIS Engine和C#,以線狀符號(hào)圖案周期性理論為依據(jù),設(shè)計(jì)了一種面向?qū)ο蟮木€狀符號(hào)編輯器。在符號(hào)化過(guò)程中,解決了線狀符號(hào)填充時(shí),拐點(diǎn)出現(xiàn)的符號(hào)交叉、重疊、斷裂、空白等失真現(xiàn)象,通過(guò)對(duì)線狀符號(hào)的填充、旋轉(zhuǎn)、變形、裁減等方法的處理,有效防止了失真現(xiàn)象,不僅解決了拐點(diǎn)超出扇形區(qū)域的問題,而且在視覺上達(dá)到了很好的效果,最重要的是解決了基本圖元重復(fù)計(jì)算的問題,提高了線狀地圖符號(hào)符號(hào)化的效率(圖8、圖9為符號(hào)圖元和線狀符號(hào)填充示意圖)。
圖8 符號(hào)圖元
圖9 線狀符號(hào)填充示意
[1] 鐘業(yè)勛,魏文展,彭月英等.地圖符號(hào)數(shù)學(xué)定義的研究[J].武漢大學(xué)學(xué)報(bào)·信息科學(xué)版,2001,26(5):465~468
[2] 黃鵠,鐘業(yè)勛.依比例符號(hào)、不依比例符號(hào)和半依比例符號(hào)數(shù)學(xué)定義的改進(jìn)[J].武漢大學(xué)學(xué)報(bào)·信息科學(xué)版,2006,31(3):244~246
[3] 何忠煥.GIS符號(hào)庫(kù)中復(fù)雜線狀符號(hào)設(shè)計(jì)技術(shù)的研究[J].武漢大學(xué)學(xué)報(bào)·信息科學(xué)版,2004(2):132~134
[4] 鐘業(yè)勛,黃鵠.依比例、不依比例和半依比例符號(hào)數(shù)學(xué)定義的修改[J].海洋測(cè)繪,2008,28(4):19~21
[5] 魏文展,鐘業(yè)勛,彭月英等.點(diǎn)狀、線狀和面狀地圖符號(hào)數(shù)學(xué)定義的研究[J].武漢大學(xué)學(xué)報(bào)·信息科學(xué)版,2002,27 (4):424~426
[6] 鐘業(yè)勛,鄭紅波.不同約束條件下地圖符號(hào)的數(shù)學(xué)定義[J].測(cè)繪信息與工程,2007,32(3):69~70
[7] 鐘業(yè)勛,朱重光,魏文展.地圖空間認(rèn)知的數(shù)學(xué)原理[J].測(cè)繪科學(xué),2005,30(5):11~12
[8] 黃鵠,鐘業(yè)勛.點(diǎn)線面地圖符號(hào)定義的簡(jiǎn)化與統(tǒng)一[J].測(cè)繪科學(xué),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,F(xiàn)ROIDEFOND 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] 胡最,閆浩文.地圖符號(hào)的語(yǔ)言學(xué)機(jī)制及其應(yīng)用研究[J].地理與地理信息科學(xué),2008,24(1):17~20
[12] 談曉軍,邊馥苓,何忠煥.地圖符號(hào)可視化系統(tǒng)的面向?qū)ο笤O(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪通報(bào),2003(1):11~14
[13] 沈陳華.線狀符號(hào)庫(kù)的面向?qū)ο笤O(shè)計(jì)[J].重慶師范學(xué)院學(xué)報(bào):自然科學(xué)版,2000,17(4):41~43
[14] 張海泉,潘懋,吳煥萍等.面向GIS的矢量線狀符號(hào)填充算法研究[J].地理與地理信息科學(xué),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方面的研究和開發(fā)。