arcgis 属性表中起点终点创建线_一种GIS单线路网自动生成双线路网的方法与流程...
本發明涉及GIS路網領域,尤其是涉及一種GIS單線路網自動生成雙線路網 的方法。
背景技術:
GIS路網是將真實道路,通過GIS數據的形式可視化表達出來。目前主流的 道路網模型是單線雙屬性的節點-路段模型(簡稱單線路網模型)、雙線雙屬性的節 點-路段模型(簡稱雙線路網模型)以及車道級路網模型。其中手機導航路網一般 采用單線路網模型;車道級路網一般用于輔助駕駛、無人駕駛等場景。雙線路網模 型則一般用于表現道路場景下,兩個通行方向的不同性質,如不同的路況、不同流 量等。
目前的雙線路網模型一般基于實際測量的數據,經后期圖形編輯、加工、屬 性處理等制作工藝,形成雙線路網。這種生產工藝流程雖然精度高、信息準確,然 而制作成本高、周期長,限制了這一路網的生產效率。
技術實現要素:
本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種GIS單線路 網自動生成雙線路網的方法。
本發明的目的可以通過以下技術方案來實現:
一種GIS單線路網自動生成雙線路網的方法,包括以下步驟:
1)獲取單線路網模型的GIS道路數據,包括節點圖層和路網圖層數據,并根 據交叉口位置和道路位置判斷交叉口類型和道路類型;
2)確定路網節點的偏移方向并計算偏移,形成雙線路網的道路邊界,并生成 路網節點的偏移節點;
3)對偏移節點進行曲線插值,用以表示車輛在路網節點的行駛路徑,最終生 成雙線路網。
所述的步驟1)中,當交叉口位置周邊的道路為2時,交叉口類型為一字型交 叉口;當交叉口位置周邊的道路為3時,交叉口類型為丁字型交叉口;當交叉口位 置周邊的道路為4時,交叉口類型為十字型交叉口;當交叉口位置周邊的道路超過 4時,交叉口類型為特殊交叉口;
當正向車道數和逆向車道數其中至少一個為0時,道路類型為單行道,當均不 為0時,道路類型為雙行道。
所述的步驟2)具體包括以下步驟:
21)根據節點圖層和路網圖層數據,分別對路網節點周邊道路路段進行全程正 向、半程正向、全程逆向和半程逆向偏移,偏移矢量方向與路段起點和終點間的連 線方向垂直,并確定全程偏移矢量和半程偏移矢量的長度;
22)對于每個路網節點,將相鄰路段的全程偏移線段與半程偏移線段之間的交 點作為偏移節點。
確定偏移矢量的方向具體為:
設起點到終點方向為正向,則正向偏移矢量為起點到終點方向順時針旋轉90 度,設終點到起點方向為逆向,則逆向偏移矢量為起點到終點方向逆時針旋轉90 度。
確定偏移矢量長度的具體計算式為:
其中,ρAB為AB路段的逆向偏移矢量,為AB路段的逆向半距偏移矢量, 為AB路段的逆向全距偏移矢量,(x1,y1)為路段起點A的位置坐標,(x2,y2)為 路段終點B的位置坐標,n1AB為AB路段的正向車道數,W為機動車道寬。
所述的步驟22)中,
當路網節點為一字型交叉口時,偏移節點的數量為4;
當路網節點不為一字型交叉口時,偏移節點的數量為該路網節點位置周邊的道 路數量的2倍;
并且,當路網節點周邊的路段存在單行線時,每存在一條單行線,偏移節點數 量減少一個。
所述的步驟3)中,車輛在路網節點的行駛路徑包括右轉路徑、掉頭路徑、左 轉路徑和直行路徑。
所述的步驟3)中采用三次曲線插值法進行插值,并對插值過程進行優化,防 止出現突拐現象,具體為:
31)在插值前,將待插值的節點A01和A02圍繞其中心點A00旋轉角度α1, 使A02和A03處于同一水平線上,并將節點A01和A02的原斜率分別轉換成角度 增加α1角;
32)根據旋轉后節點A01和A02的坐標采用三次插值公式,得到節點A01和 A02間的三次多項式插值曲線,并在旋轉后的節點A01和A02橫坐標之間等距取 10個點,加入起點和重點完成點組,將點組中的每個點繞中心點A00旋轉-α1角, 并將旋轉后的點組轉換為插值曲線。
與現有技術相比,本發明具有以下優點:
本發明利用城市已有的單線路網模型,通過路網描述參數和自動化處理技術, 自動生成雙線路網,相比傳統方案,本方法成本低、周期短,僅需數小時就可以獲 得整個城市的雙線路網,適合用于快速生成精度要求不高的道路地圖,如手機導航 路網、交通仿真路網等,另外,本發明通過點組旋轉插值避免了插值過程中產生的 曲線一階導數斜率突變導致內插得到的曲線不光滑的情況。
附圖說明
圖1為單線路網的輸入數據圖。
圖2為偏移節點的計算過程圖。
圖3為計算出的偏移節點圖。
圖4為偏移節點的連接插值曲線。
圖5為偏移節點三次曲線插值前旋轉示意圖。
圖6為一字路口的轉換效果圖。
圖7為丁字路口的轉換效果圖。
圖8為十字路口的轉換效果圖。
圖9為單行道的轉換效果圖。
具體實施方式
下面結合附圖和具體實施例對本發明進行詳細說明。
實施例
本發明采用單線路網模型的GIS道路數據,通過一定的數據處理,完成雙線 道路數據的自動生產。
單線雙屬性的道路數據,主要包括單線路網的節點圖層(Point類型)和路網 圖層(Polyline),節點圖層需包含節點ID字段和坐標字段,id字段用于標示不同 節點之間的編號差別。坐標字段標識節點的位置;見圖1中的A、B、C、D節點, 路網圖層需包含正向車道數(CDS)、逆向車道數(RCDS)、起點節點ID、終點節 點ID等四個字段。其中起點節點ID、終點節點ID與節點圖層的ID字段存在關聯 關系。見圖1中的AB、AC、AD、AE路段。
本發明的具體方法包括一下步驟:
1、判斷交叉口類型和道路類型:
根據輸入的交叉口位置和道路位置,進行GIS空間疊置分析。當交叉口位置 周邊的道路為2時,交叉口為一字型交叉口;為3時為丁字型交叉口;為4時為十 字型交叉口;超過4為特殊交叉口。
當CDS和RCDS中,有一個0的時候,表明道路為單行道;當不存在0時, 表明為雙行道;
2、計算交叉口節點偏移方向和偏移量
根據輸入的節點圖層和路網圖層,對路網分別左向/右向偏移。偏移方向選擇 和路段起點終點連線方向垂直。正向(起點到終點方向)偏移矢量為起點到終點矢 量順時針旋轉90度,逆向(終點到起點方向)偏移矢量為起點到終點矢量逆時針 旋轉90度。
偏移矢量長度取決于該方向道路車道數。以路口A為例,路段AB起點、終 點分別是A(x1,y1),B(x2,y2),車道數分別是CDS和R-CDS,分別記為符號 n1AB,n2AB。路段AE起點、終點分別是A(x1,y1),E(x5,y5),車道數為符號n1AE,n2AE。 每條機動車道寬為W,一般城市道路取3.5米,高速公路取3.75米。
則AB路段向E方向的偏移矢量可用以下公式計算:
半距偏移矢量:
全距偏移矢量:
路段AE向B方向的偏移矢量可以通過下面的式子計算
半距偏移矢量:
全距偏移矢量:
分別是某條路段的正向車道偏移向量和逆向車道偏移向量。根據該向量, 可以實現路段AB、AE向外側平移后的矢量,半距偏移后為L1、L3,全距偏移后 為L2和L4。然后分別計算L1和L4,L2和L3的交點,記為A0和A1。
因此,同理可以計算得到A路口的其他偏移點和偏移矢量,如A04、A05等 等。一個路口的完整節點偏移效果如圖3所示。虛線為單線路網,虛線端點A01-A08 為生成的偏移節點。
3、偏移節點曲線插值
在兩個偏移節點之間構建連接曲線,用來表示車輛在該路口的行駛路徑,如圖 4所示,A02-A03表示右轉路徑,A02-A01表示車輛掉頭路徑,A02-A07代表左轉 路徑,A02-A05代表直行路徑。
在傳統的三次曲線插值法基礎上,對插值過程進行優化,避免插值曲線的突拐 現象。
如圖5所示,插值前,將待插值的節點A02和A03圍繞它們的中心點A00旋 轉α1角,使得A02和A03處于同一水平線上。A02和A03處記錄的斜率k1和k2, 也分別轉換成角度增加α1角,連同旋轉后的A02和A03坐標,代入式(5),得到一 組a′b′c′d′,算出三次多項式插值曲線。
y=ax3+bx2+cx+d (6)
然后在旋轉后的A02和A03橫坐標之間等距取10個值,算出縱坐標,加上起 點終點,點組計算完成。然后將點組里的每個點繞A00旋轉-α1角。將旋轉后的點 組轉為線,即為連接節點的插值曲線。
4、不同交叉口的處理方法
按照不同的道路交叉口類型,進行分別處理。
4.1一字路口
如圖6所示,一字路口表示中間節點只有兩根連接路段。中間節點偏移為4 個節點。
4.2丁字路口
如圖7所示,丁字路口代表中間節點存在三個路段交叉情況。偏移節點為6 個。
4.3十字路口
如圖8所示,十字路口代表存在四個路段交叉情況。偏移節點為8個。
4.4單行道的處理
如圖9所示,當交叉口節點周邊的路段存在單行線時,每存在一條單行線,偏 移節點數量減少一個。
總結
以上是生活随笔為你收集整理的arcgis 属性表中起点终点创建线_一种GIS单线路网自动生成双线路网的方法与流程...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语音识别学习记录 [kaldi中的ope
- 下一篇: 【Flutter】----学习笔记1(1