胡榮明,楊成斌,陳曉娣
(西安科技大學(xué) 測(cè)繪科學(xué)與技術(shù)學(xué)院,陜西 西安 710054)
測(cè)量數(shù)據(jù)處理是測(cè)繪工作過(guò)程中不可或缺的一部分,測(cè)量數(shù)據(jù)處理軟件的出現(xiàn)使測(cè)量數(shù)據(jù)處理由手工計(jì)算方式轉(zhuǎn)變?yōu)榘胱詣?dòng)計(jì)算甚至全自動(dòng)計(jì)算方式,測(cè)量數(shù)據(jù)處理的效率和質(zhì)量在不斷地提高[1-2]。目前,一些單位和機(jī)構(gòu)已經(jīng)研制出多種各具特色的單機(jī)版測(cè)量數(shù)據(jù)處理軟件,如武漢大學(xué)的控制測(cè)量數(shù)據(jù)處理通用軟件包(CODAPS)、清華大學(xué)的工程測(cè)量控制網(wǎng)平差系統(tǒng)(NASEW)、南方測(cè)繪的平差易(Power Adjust)等。隨著桌面測(cè)量數(shù)據(jù)處理軟件的不斷成熟和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,測(cè)量平差軟件也在向著網(wǎng)絡(luò)化發(fā)展[3],研發(fā)高效、方便、實(shí)用的測(cè)量數(shù)據(jù)網(wǎng)絡(luò)處理系統(tǒng)成為一大熱點(diǎn)。
測(cè)量數(shù)據(jù)網(wǎng)絡(luò)處理系統(tǒng)一方面省去了用戶安裝單機(jī)平差軟件的麻煩,只需通過(guò)網(wǎng)頁(yè)瀏覽器即可進(jìn)行測(cè)量數(shù)據(jù)處理,原始數(shù)據(jù)及處理結(jié)果都可保存在網(wǎng)絡(luò)服務(wù)器中,大大地避免了測(cè)量數(shù)據(jù)的丟失問(wèn)題,實(shí)現(xiàn)了數(shù)據(jù)的統(tǒng)一管理和共享,方便單位內(nèi)部的信息交流;另一方面,Silverlight技術(shù)的出現(xiàn)解決了傳統(tǒng)Web開發(fā)技術(shù)研發(fā)測(cè)量數(shù)據(jù)處理系統(tǒng)所面臨的問(wèn)題[4],為本文的研究提供了技術(shù)保障。
為此,本文利用Silverlight技術(shù)設(shè)計(jì)并研發(fā)基于富客戶端的測(cè)量數(shù)據(jù)網(wǎng)絡(luò)處理系統(tǒng),在提供完善的數(shù)據(jù)處理功能的基礎(chǔ)上,大大豐富了用戶體驗(yàn),減輕了網(wǎng)絡(luò)負(fù)載,提高了系統(tǒng)運(yùn)行效率。
Microsoft Silverlight技術(shù)是一種跨瀏覽器、跨平臺(tái)的RIA應(yīng)用開發(fā)技術(shù),能夠運(yùn)行在多種操作系統(tǒng)之上,支持.NET框架,擁有大量的類庫(kù)和控件;具有強(qiáng)大的2D和3D矢量繪圖和多媒體文件播放功能,支持LINQ、WCF和跨域訪問(wèn)等[5]。 Silverlight的用戶界面由XAML標(biāo)記語(yǔ)言呈現(xiàn),邏輯程序可以使用C#和VB.NET等面向?qū)ο蟮木幊陶Z(yǔ)言實(shí)現(xiàn),它把界面呈現(xiàn)邏輯和部分程序控制邏輯移到客戶端實(shí)現(xiàn),在客戶端實(shí)現(xiàn)數(shù)據(jù)約束和程序邏輯控制,發(fā)揮了客戶端系統(tǒng)的性能,減輕了服務(wù)器的負(fù)載,提高了性能表現(xiàn)[6]。圖1為Silverlight的技術(shù)框架。
測(cè)量數(shù)據(jù)網(wǎng)絡(luò)處理系統(tǒng)的主要功能包含各種平面網(wǎng)、水準(zhǔn)網(wǎng)及GPS網(wǎng)等的平差計(jì)算功能,測(cè)量數(shù)據(jù)和網(wǎng)圖顯繪功能,以及系統(tǒng)的基本管理功能等。系統(tǒng)具體功能設(shè)計(jì)如圖2所示。

圖2 系統(tǒng)功能設(shè)計(jì)
對(duì)于任何系統(tǒng)和軟件而言,系統(tǒng)的數(shù)據(jù)輸入和輸出問(wèn)題一向是最為重要的問(wèn)題之一,數(shù)據(jù)輸入的方便程度與速度直接影響一個(gè)系統(tǒng)的使用效率,同時(shí)也會(huì)對(duì)系統(tǒng)的精度造成一定的影響[7]。對(duì)于以數(shù)據(jù)為基礎(chǔ)的測(cè)量數(shù)據(jù)處理系統(tǒng)而言,數(shù)據(jù)的輸入輸出設(shè)計(jì)顯得尤為重要。
(1) 數(shù)據(jù)輸入
本文所研究的測(cè)量數(shù)據(jù)網(wǎng)絡(luò)處理系統(tǒng)可以提供多種可視化的數(shù)據(jù)輸入方式,用戶可以方便、快捷地輸入測(cè)量數(shù)據(jù),提高系統(tǒng)的使用效率。
1) 建立與電子儀器的接口,直接導(dǎo)入觀測(cè)數(shù)據(jù),然后經(jīng)數(shù)據(jù)預(yù)處理后轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)格式進(jìn)行平差計(jì)算[8]。
2) 提前編輯好相應(yīng)格式的平差數(shù)據(jù)文件,導(dǎo)入系統(tǒng)后進(jìn)行計(jì)算。
3) 對(duì)于系統(tǒng)數(shù)據(jù)庫(kù)中已經(jīng)存在的數(shù)據(jù),可以通過(guò)訪問(wèn)數(shù)據(jù)庫(kù),查找到相關(guān)數(shù)據(jù)后導(dǎo)出并進(jìn)行平差計(jì)算。
4) 在觀測(cè)數(shù)據(jù)量比較小時(shí),用戶可以直接依次將平差數(shù)據(jù)輸入系統(tǒng)中,進(jìn)行平差計(jì)算。
(2) 數(shù)據(jù)輸出
數(shù)據(jù)輸出包括原始數(shù)據(jù)的輸出和平差報(bào)告的輸出。其中,平差報(bào)告是在系統(tǒng)平差計(jì)算完成后根據(jù)平差結(jié)果生成的,平差報(bào)告的內(nèi)容由用戶進(jìn)行設(shè)定。
1) 用戶輸入的平差數(shù)據(jù)及平差結(jié)果顯示在網(wǎng)頁(yè)上,這樣用戶可以第一時(shí)間得到平差結(jié)果并進(jìn)行成果評(píng)價(jià)。
2) 原始數(shù)據(jù)及平差成果可以以文件方式保存在用戶本地。
3) 原始數(shù)據(jù)及平差成果可以保存到系統(tǒng)的數(shù)據(jù)庫(kù),這樣方便用戶以后對(duì)平差數(shù)據(jù)的再次查看。
4) 用戶可以通過(guò)打印方式將平差數(shù)據(jù)和結(jié)果進(jìn)行輸出。
在平面網(wǎng)平差中,僅僅將控制網(wǎng)的邊角和控制點(diǎn)坐標(biāo)的平差結(jié)果以文字形式顯示,還不能直觀地了解控制網(wǎng)的整體情況(如控制點(diǎn)的相對(duì)位置、控制網(wǎng)網(wǎng)形等)。因此系統(tǒng)還需要按照用戶給定的比例尺大小將控制網(wǎng)圖和誤差橢圓圖繪制出來(lái)[7]。
Silverlight中提供了多種Shape對(duì)象,其中最基本的是Line對(duì)象、Rectangle對(duì)象和Ellipse對(duì)象。Line用來(lái)繪制直線,指定起始和結(jié)束的坐標(biāo)值就可以畫一條直線;Rectangle用來(lái)繪制一個(gè)正方形或矩形,只要設(shè)置Rectangle的寬度和高度就能畫出正方形或矩形;Ellipse用來(lái)繪制圓或橢圓,可以通過(guò)調(diào)整其Width和Height屬性來(lái)調(diào)整水平和垂直半徑。因此,利用這幾種Shape對(duì)象即可以實(shí)現(xiàn)控制網(wǎng)圖和誤差橢圓的繪制。
(1) 繪圖坐標(biāo)系的轉(zhuǎn)換
如圖3所示,利用Silverlight的Shape對(duì)象進(jìn)行矢量圖繪制時(shí),它的坐標(biāo)原點(diǎn)位于容器控件(如Canvas控件)的左上角,而測(cè)量坐標(biāo)系的原點(diǎn)應(yīng)該為控件的左下角,因此,在繪圖之前要將控制點(diǎn)的測(cè)量坐標(biāo)轉(zhuǎn)換為繪圖坐標(biāo)。
若繪圖比例尺為m,Canvas控件的寬為width,高為height,則可以得到測(cè)量坐標(biāo)與繪圖坐標(biāo)的轉(zhuǎn)換關(guān)系式為


圖3 坐標(biāo)系轉(zhuǎn)換
(2) 控制網(wǎng)圖及誤差橢圓繪制
控制網(wǎng)是由控制點(diǎn)組成的網(wǎng)形,利用Line和Circle對(duì)象即可實(shí)現(xiàn)控制網(wǎng)圖的繪制,其中,已知邊長(zhǎng)使用雙Line表示,未知邊長(zhǎng)使用單一Line表示,已知控制點(diǎn)以兩個(gè)同心圓表示,未知點(diǎn)以一個(gè)圓表示。若某一邊長(zhǎng)平差后精度超限,則會(huì)以加粗的紅線來(lái)表示。同樣,若某一觀測(cè)角度平差后精度超限,則該角度的測(cè)站(控制點(diǎn))會(huì)以一紅色實(shí)心圓表示,如圖4所示,邊P2P6、BP6平差后精度超限,以P3、P6點(diǎn)為測(cè)站的某些角度值平差后精度超限,此時(shí)需要根據(jù)平差結(jié)果判斷具體是哪些角度。

圖4 控制網(wǎng)和誤差橢圓
誤差橢圓的繪制是在控制網(wǎng)圖的基礎(chǔ)上,以控制點(diǎn)坐標(biāo)為中心,根據(jù)橢圓的長(zhǎng)短半軸和旋轉(zhuǎn)角度進(jìn)行繪制。同樣,對(duì)于長(zhǎng)短半軸較大的橢圓也以紅色表示。
對(duì)于系統(tǒng)繪制的控制網(wǎng)和誤差橢圓,不僅可以在系統(tǒng)界面上顯示,也可以以平差報(bào)告附圖的形式輸出保存,或者單獨(dú)以各種圖片格式輸出或存入數(shù)據(jù)庫(kù)。
系統(tǒng)繪制的網(wǎng)圖不僅能直觀地反映控制網(wǎng)的網(wǎng)形信息、誤差橢圓大小,用戶還可以通過(guò)移動(dòng)鼠標(biāo)來(lái)查看控制點(diǎn)的平差信息。當(dāng)鼠標(biāo)移動(dòng)到某一控制點(diǎn)(即Ellipse對(duì)象)上時(shí),系統(tǒng)將自動(dòng)彈出信息顯示窗口,顯示該控制點(diǎn)的類型、坐標(biāo)平差值、點(diǎn)位精度,以及相關(guān)的邊長(zhǎng)和角度平差值。示例邏輯代碼如下
<-Ellipse對(duì)象->
Ellipse eps=new Ellipse();
<-鼠標(biāo)移到Ellipse對(duì)象上時(shí)要執(zhí)行的事件->
eps.MouseMove+=new MouseEventHandler
(Ellipse_MouseMove);
private void Ellipse_MouseMove
(object sender,MouseEventArgs e)
{
Ellipse eps=(Ellipse) sender;
string name=eps.Name;
<-通過(guò)控制點(diǎn)名查找該點(diǎn)的平差信息->
nametoinfo(name);
<-顯示信息窗口->
showwindowinfo();
}
當(dāng)控制網(wǎng)規(guī)模較小、網(wǎng)形較簡(jiǎn)單時(shí),用戶可以直接手工輸入觀測(cè)數(shù)據(jù)進(jìn)行平差計(jì)算,但是對(duì)于大型、復(fù)雜的控制網(wǎng),其包含有大量的觀測(cè)數(shù)據(jù),數(shù)據(jù)之間的關(guān)系也相對(duì)復(fù)雜,因此數(shù)據(jù)的手工輸入需要技術(shù)人員具有較高的專業(yè)水平才能完成。如果數(shù)據(jù)的輸入能夠在屏幕上參照控制網(wǎng)草圖來(lái)進(jìn)行,然后進(jìn)行平差,即實(shí)現(xiàn)數(shù)據(jù)輸入的可視化,那么一般的技術(shù)人員也能進(jìn)行大型、復(fù)雜網(wǎng)形的平差[9-10]。
可視化平差的作業(yè)流程有以下幾步:首先,用戶在屏幕的繪圖區(qū)域繪制出控制網(wǎng)草圖,即按野外控制網(wǎng)的網(wǎng)形大致確定出控制點(diǎn)的相對(duì)位置,標(biāo)注點(diǎn)名,并根據(jù)測(cè)量邊將控制點(diǎn)連接起來(lái);然后在草圖上選取已知點(diǎn),輸入已知點(diǎn)數(shù)據(jù),選取角度觀測(cè)測(cè)站和觀測(cè)邊,輸入觀測(cè)角度和邊長(zhǎng);最后根據(jù)輸入的數(shù)據(jù)進(jìn)行平差計(jì)算,顯示平差結(jié)果,繪制平差后的控制網(wǎng)圖和誤差橢圓。
利用Silverlight的矢量繪圖功能為用戶提供一個(gè)繪制草圖的窗口,在該窗口中包括要素選擇工具和要素繪制工具,可以繪制控制點(diǎn)、觀測(cè)邊、誤差橢圓,可以添加文字描述,通過(guò)選擇工具可以為這些要素添加觀測(cè)數(shù)據(jù)[11],如圖5所示。

圖5 可視化數(shù)據(jù)輸入
利用Silverlight技術(shù)研發(fā)的測(cè)量數(shù)據(jù)處理網(wǎng)絡(luò)系統(tǒng),通過(guò)Web進(jìn)行測(cè)量數(shù)據(jù)處理,是測(cè)量數(shù)據(jù)處理模式的一次革命,無(wú)需安裝任何客戶端,只需要通過(guò)瀏覽器即可在線處理測(cè)繪數(shù)據(jù),用戶不僅能體驗(yàn)到如同桌面軟件一樣豐富的功能,而且省去了安裝、升級(jí)和維護(hù)桌面軟件的麻煩,同時(shí)還方便了用戶通信和數(shù)據(jù)共享,提高了測(cè)繪數(shù)據(jù)處理的效率。通過(guò)試運(yùn)行表明,該系統(tǒng)可以安全高效地處理測(cè)量數(shù)據(jù),可以清晰準(zhǔn)確地繪制控制網(wǎng)圖和誤差橢圓,能夠以多種方式進(jìn)行數(shù)據(jù)的查詢、統(tǒng)計(jì)和輸出,系統(tǒng)功能較為完善,實(shí)現(xiàn)了預(yù)期設(shè)計(jì)目標(biāo)。
參考文獻(xiàn):
[1] 黑志堅(jiān),周秋生,曲建光.基于網(wǎng)絡(luò)的測(cè)繪數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)[J].黑龍江工程學(xué)院學(xué)報(bào),2008,22(4):26-28.
[2] 謝智穎,李清泉,彭軍還.面向?qū)ο蟮臏y(cè)量平差軟件設(shè)計(jì)與網(wǎng)絡(luò)化應(yīng)用[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2003,28(5):604-607.
[3] 徐瑩,聶桂根,呂喬森.GNSS在線數(shù)據(jù)處理系統(tǒng)的比較與分析[J].測(cè)繪通報(bào),2010(12):30-33.
[4] 吳濤,戚銘堯,黎勇,等.WebGIS開發(fā)中的RIA技術(shù)應(yīng)用研究[J].測(cè)繪通報(bào),2006(6):34-37.
[5] 駱正茂,王娟.基于Silverlight的在線CAD繪圖平臺(tái)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20(6):216-220.
[6] 程國(guó)雄,胡世清.基于Silverlight的RIA系統(tǒng)架構(gòu)與設(shè)計(jì)模式研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(8):1706-1709,1713.
[7] 王巖.高精度施工控制網(wǎng)平差系統(tǒng)的研究與開發(fā)[D].南京:河海大學(xué),2005.
[8] 馮傳勇,魏猛.斷面測(cè)量數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與開發(fā)[J].測(cè)繪通報(bào),2011(4):47-48,61.
[9] 李沛鴻,徐昌榮,曾憲.圖形化方式的測(cè)量平差程序開發(fā)與研究[J].測(cè)繪科學(xué),2007,32(1):38-39,161.
[10] 趙東保,張書畢,盛業(yè)華,等.可視化平差軟件的設(shè)計(jì)與開發(fā)[J].四川測(cè)繪,2003,26(2):68-71.
[11] 王靚,范德輝.基于Silverlight的在線制圖和通訊系統(tǒng)[J].吉林師范大學(xué)學(xué)報(bào):自然科學(xué)版,2011,32(3):131-133.