王明生, 閆小勇
(石家莊鐵道學院交通工程分院,河北 石家莊 050043)
交通地理信息系統(Geographic Information System for Transportation,GIS-T)是收集、存儲、分析和傳輸關于交通系統及其相互影響區域的特定類型信息的地理信息系統,其主要功能是對公路、鐵路等線性交通實體進行建模與分析,建立表達交通線路的數據模型是GIS-T研究的核心內容[1]。交通線路是一類典型的人工構筑物,其線路中線在平面上由直線、圓曲線和緩和曲線按一定規則組合而成[2]。現有的大多數GIS都能夠直接繪制直線和圓曲線對象,但沒有提供專門的緩和曲線繪制方法。針對這一問題,本文對GIS環境下緩和曲線的繪制方法進行研究,用折線擬合的方法實現緩和曲線對象的準確繪制,并給出緩和曲線上任意點坐標與里程的精確轉換方法。
緩和曲線是交通線路中線上連接直線和圓曲線,曲率半徑從無窮大逐漸過渡到圓曲線半徑R的過渡曲線。交通線路中常用的緩和曲線是回旋線,其基本特征是曲線上任一點的曲率半徑和該點距曲線起點弧長的乘積為一常數。根據這一幾何特征,可以建立緩和曲線的數學模型[2]。若以緩和曲線起點為坐標原點,起點處切線方向為x軸,法線方向為y軸建立直角坐標系,則緩和曲線可用如下參數方程描述

從緩和曲線的數學描述模型可以看出,緩和曲線是復雜的高次連續曲線。而計算機是離散化的數據處理系統,由計算機圖形學的基本原理可知,在數字計算機中任意空間曲線都是用多條直線段(即折線)來近似表示的[3]。其一般過程是在曲線上提取若干樣本點,用直線段進行連接,創建接近曲線形狀的折線。用折線近似表示曲線的幾何意義就是分段用弦替代弧,由于弦長只有在微分線段的情況下才與弧長相等,因此用折線擬合曲線不可避免地存在誤差,但可以通過增加分段數量使誤差降低到可接受的范圍之內[4]。由于GIS將折線作為描述空間線狀實體的基本矢量模型,其他空間曲線對象都用折線近似描述,因此在GIS中用折線擬合的方法繪制緩和曲線是可行的。關鍵是要確定合理的分段數量,使之既能滿足精度要求,又不至于因為分段過多而對數據管理和分析帶來困難。
考慮式(1)中的緩和曲線參數方程,由于該方程中積分的原函數無法用初等函數表示,可以運用數值積分方法對其進行求解。在這里采用復化梯形公式[5]求解該積分,有

復化梯形公式的幾何意義就是用折線分段逼近曲線,其中n為分段數量。如果能夠選定合適的分段數n,使式(2)的計算結果滿足坐標計算精度要求,那么用n段折線近似表達緩和曲線就能滿足精度要求[6]。下面根據數值積分中的誤差理論[5-6],推導分段數n的計算公式。
用式(2)代替式(1)產生的截斷誤差是

要保證緩和曲線的繪制精度,必須使截斷誤差小于一定值ε,即

根據式(3)和式(4),有

其中

由于ξ∈[0,l],而l∈[0,Ls],故

將式(7)代入式(5)中,可以得到分段數n的計算公式

分析式(8)可以看出:用緩和曲線的分段數n與ε成正比,若精度提高一個數量級,則n值增大約3.3倍;同時,緩和曲線長度越長,終點曲率半徑越小,則需要的分段數也越多。
表1列出了在不同精度要求下,幾種典型緩和曲線長和終點曲率半徑組合條件下分段數n的計算值。為驗證計算精度,表1中同時列出了擬合后的折線段長度(取6位小數)。可以看出,根據式(8)計算出的n值,能夠非常精確地用折線擬合緩和曲線。

表1 不同條件組合下分段數n及折線長度計算值
對于任意一條緩和曲線,在給定緩和曲線長度和終點曲率半徑后,就可根據式(8)確定擬合折線的分段數。下一步的工作是計算擬合折線各節點處的坐標,然后用直線依次連接這些節點就可繪制一條緩和曲線。
根據式(1),折線上第i個節點的坐標可以用下式計算

積分時需將式(9)中的三角函數展開為有限項麥克勞林級數

在用式(10)計算各點坐標時,為確保所繪制緩和曲線的精度符合要求,節點坐標計算精度一般應比曲線擬合精度高出1倍以上[6],這就對式中的級數展開項數提出較高的要求。一般文獻建議的只展開到第2~3項是遠遠不夠的[7-8],當緩和曲線曲率半徑較小時將會產生較大誤差,應采用嚴密的數學方法確定各點坐標計算時級數展開的項數[9]。
上述坐標計算是在緩和曲線的局部坐標系中進行的,實際應用時還要根據緩和曲線起點處的大地坐標、方位角等將各點坐標轉換為大地坐標[2]。此外,實際的交通線路中還存在一類特殊的緩和曲線——部分緩和曲線。部分緩和曲線連接兩個圓曲線,不能直接用本文中的方法計算坐標,需要用還原方法先將部分緩和曲線恢復成完整緩和曲線[10],再進行折線擬合和坐標計算。
通過前述過程,可以在GIS中實現緩和曲線對象的準確繪制。但對基于GIS的交通線路設計等應用系統[11]來說,不僅要求能夠繪制緩和曲線圖形,還要求能夠實現曲線上任意點里程(為描述簡便起見,此處的里程定義為緩和曲線上任一點距起點處的弧長)與坐標之間的準確轉換。根據緩和曲線任意點里程計算坐標的方法比較簡單,直接利用式(10)即可完成。本節重點討論根據點坐標計算里程的方法。
給定緩和曲線上任意一點P的坐標求其里程,最簡單的方法是以一定的步長從起點開始依次計算每一步長點的坐標,和點P坐標進行比對,但這種方法是一種蠻力法,效率較低。本文給出一種效率更高的二分比對算法,其基本思路是在不斷二分緩和曲線弧段的過程中,比較二分點M和P點之間距緩和曲線起點S的距離差,如果此差值縮小到允許誤差之內,則可以認為用M點的里程代替P點的里程符合精度要求。算法的具體步驟如下:
(1)初始化。令迭代算子k=1;輸入最大允許誤差ε,緩和曲線長度L,起點S的坐標xs,ys和欲求里程的P點坐標xp,yp;計算P點與S點之間的距離令二分點M的里程初始值
(2)根據當前M點的里程值用式(10)計算M點坐標再計算M點與S點之間的距離
(5)令迭代算子k=k+1,轉第(2)步。
上述算法的迭代次數與緩和曲線長度L及最大允許誤差ε有關,最不利的情況下,迭代次數例如,當L=1000 m、ε=0.001時,最多迭代20次就可以計算任意給定點處的里程值,效率可以滿足實際應用的要求。
本文從分析緩和曲線幾何特征和數學模型出發,借鑒計算機圖形學中曲線逼近的思想,用折線擬合的方法實現了GIS環境下緩和曲線對象的準確繪制。基于數值積分的復化梯形公式,推導出了緩和曲線擬合折線分段數計算的嚴密數學公式。進一步給出了緩和曲線上任意點坐標與里程的精確轉換方法,使研究成果更具實用性。上述方法已采用SuperMap GIS軟件提供的二次開發平臺SuperMap Objects實現。經實際使用,在繪圖精度和計算效率等方面能夠滿足復雜應用的需求,可適用于交通線路設計、移動設施定位等對線路里程、事件點坐標精度有較高要求的GIS-T應用系統。
本文提出的方法對于在AutoCAD等軟件環境中繪制緩和曲線對象同樣適用[12],但在GIS環境中用折線擬合方法繪制緩和曲線對象更具優勢。因為折線是GIS的基本矢量對象,用折線擬合的緩和曲線不用進行任何特殊處理,就具備各類空間分析與空間關系運算功能,而這些功能在CAD環境中是較難實現的。
當然,用折線擬合緩和曲線也存在曲線外觀光滑性較差的缺陷,特別是當放大顯示緩和曲線的細節特征時,雖然各點位坐標精度依然能滿足要求,但曲線的外觀可視化效果不佳。可以采用增加擬合點的方法對曲線進行進一步平滑,但由此也會帶來繪圖效率下降、數據存儲量增加等問題。在GIS環境中如何改善緩和曲線外觀可視化效果,還需要進行更深入的研究。
[1]MILLER H J, SHAW S L. Geographic information systems for transportation: principles and applications [M].Oxford: Oxford University Press, 2001. 11-57.
[2]詹振炎. 鐵路選線設計的現代理論和方法[M]. 北京:中國鐵道出版社, 2001. 47-51.
[3]魏海濤. 計算機圖形學[M]. 北京: 電子工業出版社,2001. 1-8.
[4]郭仁忠. 空間分析(第2版)[M]. 北京: 高等教育出版社, 2001. 3-78.
[5]李慶揚, 王能超, 易大義. 數值分析[M]. 武漢: 華中理工大學出版社, 1986. 177-193.
[6]李全信, 葉 剛. 完整和不完整緩和曲線在AutoCAD中的精確表示[J]. 城市勘測, 2007, (1):61-65.
[7]邱榮茂, 王大鳴, 周喬勇. 基于AutoCAD的線路緩和曲線的自動繪制[J]. 工程圖學學報, 2005, 26(1):30-34.
[8]符鋅砂. 公路計算機輔助設計[M]. 北京: 人民交通出版社, 1998. 91-92.
[9]譙生有. 緩和曲線坐標計算誤差分析[J]. 測繪通報,200l, (11): 37-38.
[10]張福榮, 焦廣彥. 還原方法計算卵型曲線中間緩和曲線點坐標[J]. 測繪通報, 2004, (1): 38-40.
[11]張曉東, 王明生. AutoCAD環境下的鐵路線路平縱橫集成交互設計[J]. 工程圖學學報, 2006, 27(5):12-15.
[12]王中偉. 道路與匝道中線自動繪制的算法與實現[J].工程圖學學報, 2007, 28(1): 144-147.