張 馳,鈔振華,陶 菲,周 侗,吉云松
(南通大學(xué)地理科學(xué)學(xué)院,江蘇南通 226019)
鉆孔柱狀圖是地質(zhì)勘探基礎(chǔ)資料之一,也是較為規(guī)范化的一種地質(zhì)圖件。它是按一定比例尺和圖例表示鉆孔的地層巖性、厚度、試驗(yàn)成果、構(gòu)造和孔內(nèi)鉆進(jìn)情況而繪制成的圖。作為地下勘探信息可視化的基本工具,鉆孔柱狀圖在各項(xiàng)工程的分析決策中起著重要作用。隨著計(jì)算機(jī)與GIS技術(shù)的發(fā)展,一些學(xué)者開(kāi)始研究利用計(jì)算機(jī)繪制鉆孔柱狀圖的方法,分別基于COM 技 術(shù)[1],Corel-Draw[2]、GDI[3]、GDI+[4-5]以 及MAPGIS[6-7]平臺(tái)實(shí)現(xiàn)了鉆孔柱狀圖的繪制。上述研究在一定程度上推動(dòng)了鉆孔柱狀圖成圖系統(tǒng)的發(fā)展,但也存在明顯的問(wèn)題,即界面布局過(guò)于固定,缺乏靈活性。本文將針對(duì)此問(wèn)題展開(kāi)研究,基于模板定制配置技術(shù),研究鉆孔柱狀圖界面布局的配置方法,以滿(mǎn)足其對(duì)界面布局的靈活配置需求。
要解決界面靈活配置的問(wèn)題,最實(shí)用的方法是基于模板的定制配置技術(shù)。如同Office系列軟件所提供的模板功能一樣,用戶(hù)可以根據(jù)需求靈活編輯并保存特定布局的文檔模板,在使用時(shí)套用該模板,從而省略了多次布局。本文將界面與XML相互映射,對(duì)鉆孔柱狀圖的界面樣式按照如下模式作出定義:
該模板將界面抽象為一個(gè)相互嵌套的界面元素組合。首先,整個(gè)鉆孔柱狀圖可以看成是一個(gè)頂層元素,該元素包含一個(gè)子元素集合(Items),并通過(guò)布局(Layout)來(lái)控制下層元素(Item)的組合方式。布局包含兩種信息,一種是布局類(lèi)型,一種是布局空間分配。布局類(lèi)型分為三種,分別為垂直布局(元素豎向排列)、水平布局(元素橫向排列)以及格網(wǎng)布局(元素網(wǎng)狀排列)等。布局空間分配規(guī)定了在上述三種布局模式下,子元素所占的空間。另外,該模板還以行、列、行跨度、列跨度等屬性對(duì)下層元素所在的位置進(jìn)行了限定。
不論對(duì)于計(jì)算機(jī)顯示器還是打印出的圖紙,不同分辨率、不同長(zhǎng)寬比的圖幅都要求鉆孔柱狀圖系統(tǒng)能夠按照用戶(hù)定義的布局進(jìn)行繪制。傳統(tǒng)鉆孔柱狀圖的鉆孔元素在繪制時(shí)采用絕對(duì)坐標(biāo),各要素都擁有各自獨(dú)立的坐標(biāo)參數(shù),當(dāng)頁(yè)面大小改變時(shí)鉆孔元素位置大小難以實(shí)現(xiàn)同步變化,費(fèi)時(shí)費(fèi)力且出圖難以保證一致性。本文采用相對(duì)坐標(biāo)系統(tǒng),每個(gè)要素的左、頂、寬、高只與其父要素關(guān)聯(lián),并按照所占比例管理,對(duì)所有要素的位置大小都提供了足夠的約束,在任意尺寸圖幅上都無(wú)需作尺寸與位置的矯正。例如,對(duì)任一元素,已知其父元素的位置為 P.Left、P.Top、P.Width、P.Height,PositionV[i]為其在當(dāng)前布局中所占的位置,而PositionV[i+1]為后一元素在布局中的位置,針對(duì)各種布局,子元素的位置有以下計(jì)算規(guī)則。
(1)水平布局,對(duì)于該布局中第i個(gè)子元素有:
Left=P.Left; Top=P.Top+PositionV[i]*P.Height;
Width=P.Width; Height=P.height*(PositionV[i+1]-PositionV[i])
(2)垂直布局,對(duì)于該布局中第i個(gè)子元素有:
Left=P.Left+PositionH[i]*P.Width;Top=P.Top;
Width=P.Width*(PositionH[i+1]-PositionH[i]);Height=P.Height
(3)格網(wǎng)布局,假設(shè)已知格網(wǎng)布局中,格網(wǎng)劃分為A行B列,對(duì)于第i行,起始位置為PositionV[i],對(duì)于第j列,起始位置為PositionH[j],那么對(duì)于第m行第n列有:
Left=P.Left+PositionV[i];Top=P.Top+PositionH[i];
Width=PositionH[j+colspan]- PositionH[j];Height=PositionV[i+rowspan]- PositionV[i]
利用該方法就可以遞歸的求出各元素的絕對(duì)位置。
基于上述原則,對(duì)于圖1所示的鉆孔柱狀圖布局可采用如下模板對(duì)其進(jìn)行配置。
圖1 鉆孔柱狀圖布局樣例Fig.1 Layout example of borehole log
基于該模板的系統(tǒng)擁有充分靈活的定制功能,允許用戶(hù)自定義任意形式的界面布局,并保存為配置文件以供布局的重用與共享,滿(mǎn)足了布局配置的靈活性要求。
本文基于上文所述模板,開(kāi)發(fā)出一個(gè)鉆孔柱狀圖定制配置系統(tǒng)。系統(tǒng)分為配置平臺(tái)與可視化平臺(tái)兩個(gè)子系統(tǒng)。配置平臺(tái)通過(guò)可視化界面對(duì)鉆孔柱狀圖界面布局進(jìn)行配置,并將界面配置數(shù)據(jù)保存到數(shù)據(jù)配置模板。而可視化平臺(tái)則通過(guò)讀取模板來(lái)實(shí)現(xiàn)鉆孔柱狀圖的可視化及成圖打印功能(圖2)。根據(jù)用戶(hù)的不同需求,配置平臺(tái)可對(duì)界面進(jìn)行不同的配置,實(shí)現(xiàn)用戶(hù)的多樣化需求。
本文將鉆孔柱狀圖界面與定制模板進(jìn)行映射,并采用相對(duì)坐標(biāo)來(lái)對(duì)界面元素進(jìn)行定位,實(shí)現(xiàn)了鉆孔柱狀圖界面樣式的定制配置管理與界面的靈活表達(dá)。該方法可用于地質(zhì)勘探相關(guān)多個(gè)領(lǐng)域的鉆孔柱狀圖開(kāi)發(fā),具有一定的通用性。
圖2 鉆孔柱狀圖示例Fig.2 Example of borehole log
[1]楊旭,黃家柱,楊梅.基于COM技術(shù)的鉆孔柱狀圖和鉆孔柱狀圖的自動(dòng)生成[J].計(jì)算機(jī)工程,2003,29(18):77 -79.
[2]許哲平,陳建強(qiáng),遲學(xué)文,等.基于Delphi7和Corel-Draw 9 VBA的鉆孔柱狀圖自動(dòng)成圖系統(tǒng)[J].桂林工學(xué)院學(xué)報(bào),2007,27(1):81-85.
[3]張生偉.鉆孔信息管理和柱狀圖成圖方法的改進(jìn)研究[D].北京:中國(guó)地質(zhì)大學(xué),2009.
[4]李安波,黃家柱,畢碩本,等.柔性軟件系統(tǒng)研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2005,22(1):140 -143.
[5]李安波,閭國(guó)年,孟萃萃,等.城市地質(zhì)空間信息系統(tǒng)研究與建設(shè)[J].計(jì)算機(jī)應(yīng)用研究,2007,24(3):132 -134.
[6]解華明,陳守余.基于MAPGIS的鉆孔柱狀圖繪制軟件的編制[J].物探化探計(jì)算技術(shù),2004,26(1):15 -17.
[7]花衛(wèi)華,鄧偉萍.一種通用鉆孔柱狀圖的自動(dòng)生成技術(shù)[J].工程圖學(xué)學(xué)報(bào),2006(4):14-18.