魏金占 ,唐媛
(1.南寧市勘察測繪地理信息院,廣西 南寧 5300221; 2.南寧市房產信息管理服務中心,廣西 南寧 530022)
當前存在多種CAD 平臺和GIS 平臺,數據交換和共享十分頻繁,但由于其數據結構不盡相同,數據模型理解的差異等原因,造成數據交換共享時部分信息的丟失,特別是對于曲線元素如常見的弧線,數據的失真特別嚴重。通常通過數據轉換,會有三種失真,一種是完全用特征點擬合的方法,數據失真最為嚴重,如弧段在轉換后就用三個特征點來描述,如圖1所示。

圖1 特征點擬合弧線轉換前后對比
另一種失真較小,它也用多點擬合來描述對象,如圖2所示:

圖2 多點擬合弧線轉換前后對比
還有一種失真度最小,它也用弧線來描述對象,但是因為數據模型理解差異等原因,也存在細微的差異,如起始點結束點微小偏移等,如圖3所示。
那么通過原有的思路數據轉換時存在差異,能否從概念上更新原有的思路,用一種新的方式來嘗試解決問題?下文將結合實例闡述一種新的弧線轉換的思路,供大家思考。

圖3 失真較小的弧線轉換前后對比
弧線的要素通常包括長半軸、短半軸、起始點、結束點和旋轉角等,常規方法通常采用如下模式:獲得原有圖形的幾何特征點或關鍵元素(如角度),然后通過常規算法,在新的平臺下恢復弧線圖形,如圖4所示。

圖4 常規算法弧線的構建
雖然通過此種算法一般可以實現弧線的數據轉換,但存在以下問題:DGN 對象中,弧線不僅包括常規的圓弧曲線,也包括拉伸旋轉常規弧線后的各類橢圓弧曲線,這樣對于后者的描述和轉換就顯得非常復雜。常規思路是研究旋轉拉伸的參數,之后再通過復雜算法實現數據的轉換,這種方法十分復雜,理解、實現難度大,而且容易出現數據轉換失真。
一般弧線的要素通常包括長短半軸、起始點、結束點和旋轉角等,弧線的描述通常采用以下概念[1],如圖5所示:

圖5 弧線描述示意
但是因平臺對數據模型定義不同,如起始角、掃角和旋轉角定義的不同,僅僅通過特征數據來直接在新平臺下構建新對象,必將造成數據的失真。經研究發現,雖然數據模型不盡相同,但是其幾何特征點的位置在轉換前后必須要保證一致,因此利用這一特性,重新定義和計算這些角,再用新的方法來構建幾何對象,下文將用實例進行詳述。
在數據轉換實驗中,發現當完全按照傳統的方法直接利用DGN 提供的特征數據在SuperMap 中構建對象時,總會出現細微的差異,如圖3所示,轉換前后起始端會有細微偏差。原因就在于對弧線特征角描述的不同。首先對特征角重新定義:
旋轉角指長半軸所在的直線與Y 坐標軸的夾角θ;
起始角指圓心和起始點連線與長半軸的夾角α;
結束角指圓心和結束點連線與長半軸的夾角β。
對于弧線,嘗試用以下新的方法求解特征角:首先計算出圓弧的旋轉角θ,之后求出圓弧起始點和圓心連線的角度α,圓弧結束點和圓心連線的角度β,則(α-θ)和(β -θ)分別為此弧線的起始角和結束角。通過重新定義設置旋轉角、起始角和結束角計算方法,就可以采用新的方法來實現數據的轉換了。這種方法與原有弧線描述的差異在于,新的思路撇開原有旋轉角、起始角和結束角,重新定義設置這些角的計算方法,其優點在于無論何種平臺,其特征點是一致的,通過統一定義和計算旋轉角、起始角和結束角,避免各平臺對弧線描述的差異如旋轉角定義的不同,達到數據的無損轉換。各角定義如圖6所示:

圖6 特征角定義示意圖
其關鍵函數代碼如下:


是數據轉換前后對比如圖7所示:

圖7 新算法數據轉換前后對比
數據轉換失真的原因很多,其中對于數據模型理解的差異是關鍵因素之一。本文針對弧線提出新的轉換方法,其思路依然是采用已有的函數重新定義弧線的各個元素,轉換的效率與平臺自身的轉換效率相同。經實驗基本上可以消除數據轉換的失真問題,對旋轉擠壓變形的復雜弧線的轉換,亦未發現失敗情況。與FME 等傳統數據轉換軟件相比,其優勢在于直接轉入對應的GIS 平臺,數據信息損失最小。對于清華山維、超圖及ArcGIS 等常見GIS 平臺而言,此方法也為類似問題的處理提供新的解決思路。
[1]Bentley Corporation.MicroStation V8 Visual Basic for Applications help[R].Bentley Corporation,2004.
[2]魏金占,熊旭平,施真娥.MapInfo 中折線分割功能的擴展[J].信息技術與信息化,2005(1).
[3]郭功舉.面向對象的復雜多邊形裁剪實現[J].現代測繪,2003(8).
[4]楊光,于野.GIS 與CAD 的特點[J].東北測繪,1998(1).
[5]符韶華.DLG 到GIS 數據轉換方法研究[D].阜新:遼寧工程技術大學,2002.
[6]白洪濤,張其林,魏吉東.尋找任意線段和圓弧圍成區域的一種算法[J].計算機應用,2001(10).