魏金占 ,唐媛
(1.南寧市勘察測(cè)繪地理信息院,廣西 南寧 5300221; 2.南寧市房產(chǎn)信息管理服務(wù)中心,廣西 南寧 530022)
當(dāng)前存在多種CAD 平臺(tái)和GIS 平臺(tái),數(shù)據(jù)交換和共享十分頻繁,但由于其數(shù)據(jù)結(jié)構(gòu)不盡相同,數(shù)據(jù)模型理解的差異等原因,造成數(shù)據(jù)交換共享時(shí)部分信息的丟失,特別是對(duì)于曲線元素如常見(jiàn)的弧線,數(shù)據(jù)的失真特別嚴(yán)重。通常通過(guò)數(shù)據(jù)轉(zhuǎn)換,會(huì)有三種失真,一種是完全用特征點(diǎn)擬合的方法,數(shù)據(jù)失真最為嚴(yán)重,如弧段在轉(zhuǎn)換后就用三個(gè)特征點(diǎn)來(lái)描述,如圖1所示。
圖1 特征點(diǎn)擬合弧線轉(zhuǎn)換前后對(duì)比
另一種失真較小,它也用多點(diǎn)擬合來(lái)描述對(duì)象,如圖2所示:
圖2 多點(diǎn)擬合弧線轉(zhuǎn)換前后對(duì)比
還有一種失真度最小,它也用弧線來(lái)描述對(duì)象,但是因?yàn)閿?shù)據(jù)模型理解差異等原因,也存在細(xì)微的差異,如起始點(diǎn)結(jié)束點(diǎn)微小偏移等,如圖3所示。
那么通過(guò)原有的思路數(shù)據(jù)轉(zhuǎn)換時(shí)存在差異,能否從概念上更新原有的思路,用一種新的方式來(lái)嘗試解決問(wèn)題?下文將結(jié)合實(shí)例闡述一種新的弧線轉(zhuǎn)換的思路,供大家思考。
圖3 失真較小的弧線轉(zhuǎn)換前后對(duì)比
弧線的要素通常包括長(zhǎng)半軸、短半軸、起始點(diǎn)、結(jié)束點(diǎn)和旋轉(zhuǎn)角等,常規(guī)方法通常采用如下模式:獲得原有圖形的幾何特征點(diǎn)或關(guān)鍵元素(如角度),然后通過(guò)常規(guī)算法,在新的平臺(tái)下恢復(fù)弧線圖形,如圖4所示。
圖4 常規(guī)算法弧線的構(gòu)建
雖然通過(guò)此種算法一般可以實(shí)現(xiàn)弧線的數(shù)據(jù)轉(zhuǎn)換,但存在以下問(wèn)題:DGN 對(duì)象中,弧線不僅包括常規(guī)的圓弧曲線,也包括拉伸旋轉(zhuǎn)常規(guī)弧線后的各類橢圓弧曲線,這樣對(duì)于后者的描述和轉(zhuǎn)換就顯得非常復(fù)雜。常規(guī)思路是研究旋轉(zhuǎn)拉伸的參數(shù),之后再通過(guò)復(fù)雜算法實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)換,這種方法十分復(fù)雜,理解、實(shí)現(xiàn)難度大,而且容易出現(xiàn)數(shù)據(jù)轉(zhuǎn)換失真。
一般弧線的要素通常包括長(zhǎng)短半軸、起始點(diǎn)、結(jié)束點(diǎn)和旋轉(zhuǎn)角等,弧線的描述通常采用以下概念[1],如圖5所示:
圖5 弧線描述示意
但是因平臺(tái)對(duì)數(shù)據(jù)模型定義不同,如起始角、掃角和旋轉(zhuǎn)角定義的不同,僅僅通過(guò)特征數(shù)據(jù)來(lái)直接在新平臺(tái)下構(gòu)建新對(duì)象,必將造成數(shù)據(jù)的失真。經(jīng)研究發(fā)現(xiàn),雖然數(shù)據(jù)模型不盡相同,但是其幾何特征點(diǎn)的位置在轉(zhuǎn)換前后必須要保證一致,因此利用這一特性,重新定義和計(jì)算這些角,再用新的方法來(lái)構(gòu)建幾何對(duì)象,下文將用實(shí)例進(jìn)行詳述。
在數(shù)據(jù)轉(zhuǎn)換實(shí)驗(yàn)中,發(fā)現(xiàn)當(dāng)完全按照傳統(tǒng)的方法直接利用DGN 提供的特征數(shù)據(jù)在SuperMap 中構(gòu)建對(duì)象時(shí),總會(huì)出現(xiàn)細(xì)微的差異,如圖3所示,轉(zhuǎn)換前后起始端會(huì)有細(xì)微偏差。原因就在于對(duì)弧線特征角描述的不同。首先對(duì)特征角重新定義:
旋轉(zhuǎn)角指長(zhǎng)半軸所在的直線與Y 坐標(biāo)軸的夾角θ;
起始角指圓心和起始點(diǎn)連線與長(zhǎng)半軸的夾角α;
結(jié)束角指圓心和結(jié)束點(diǎn)連線與長(zhǎng)半軸的夾角β。
對(duì)于弧線,嘗試用以下新的方法求解特征角:首先計(jì)算出圓弧的旋轉(zhuǎn)角θ,之后求出圓弧起始點(diǎn)和圓心連線的角度α,圓弧結(jié)束點(diǎn)和圓心連線的角度β,則(α-θ)和(β -θ)分別為此弧線的起始角和結(jié)束角。通過(guò)重新定義設(shè)置旋轉(zhuǎn)角、起始角和結(jié)束角計(jì)算方法,就可以采用新的方法來(lái)實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)換了。這種方法與原有弧線描述的差異在于,新的思路撇開(kāi)原有旋轉(zhuǎn)角、起始角和結(jié)束角,重新定義設(shè)置這些角的計(jì)算方法,其優(yōu)點(diǎn)在于無(wú)論何種平臺(tái),其特征點(diǎn)是一致的,通過(guò)統(tǒng)一定義和計(jì)算旋轉(zhuǎn)角、起始角和結(jié)束角,避免各平臺(tái)對(duì)弧線描述的差異如旋轉(zhuǎn)角定義的不同,達(dá)到數(shù)據(jù)的無(wú)損轉(zhuǎn)換。各角定義如圖6所示:
圖6 特征角定義示意圖
其關(guān)鍵函數(shù)代碼如下:
是數(shù)據(jù)轉(zhuǎn)換前后對(duì)比如圖7所示:
圖7 新算法數(shù)據(jù)轉(zhuǎn)換前后對(duì)比
數(shù)據(jù)轉(zhuǎn)換失真的原因很多,其中對(duì)于數(shù)據(jù)模型理解的差異是關(guān)鍵因素之一。本文針對(duì)弧線提出新的轉(zhuǎn)換方法,其思路依然是采用已有的函數(shù)重新定義弧線的各個(gè)元素,轉(zhuǎn)換的效率與平臺(tái)自身的轉(zhuǎn)換效率相同。經(jīng)實(shí)驗(yàn)基本上可以消除數(shù)據(jù)轉(zhuǎn)換的失真問(wèn)題,對(duì)旋轉(zhuǎn)擠壓變形的復(fù)雜弧線的轉(zhuǎn)換,亦未發(fā)現(xiàn)失敗情況。與FME 等傳統(tǒng)數(shù)據(jù)轉(zhuǎn)換軟件相比,其優(yōu)勢(shì)在于直接轉(zhuǎn)入對(duì)應(yīng)的GIS 平臺(tái),數(shù)據(jù)信息損失最小。對(duì)于清華山維、超圖及ArcGIS 等常見(jiàn)GIS 平臺(tái)而言,此方法也為類似問(wèn)題的處理提供新的解決思路。
[1]Bentley Corporation.MicroStation V8 Visual Basic for Applications help[R].Bentley Corporation,2004.
[2]魏金占,熊旭平,施真娥.MapInfo 中折線分割功能的擴(kuò)展[J].信息技術(shù)與信息化,2005(1).
[3]郭功舉.面向?qū)ο蟮膹?fù)雜多邊形裁剪實(shí)現(xiàn)[J].現(xiàn)代測(cè)繪,2003(8).
[4]楊光,于野.GIS 與CAD 的特點(diǎn)[J].東北測(cè)繪,1998(1).
[5]符韶華.DLG 到GIS 數(shù)據(jù)轉(zhuǎn)換方法研究[D].阜新:遼寧工程技術(shù)大學(xué),2002.
[6]白洪濤,張其林,魏吉東.尋找任意線段和圓弧圍成區(qū)域的一種算法[J].計(jì)算機(jī)應(yīng)用,2001(10).