1. 程式人生 > >CityEngine三維建模幾個常見問題解決方法(1)

CityEngine三維建模幾個常見問題解決方法(1)

CityEngine被Esri收購以後,大踏步進入GIS三維建模領域,由於CityEngine獨有的基於規則建模,使得GIS三維建模效率大增。不過不是規則就可以一刀切,解決所有問題的,有時我們還是要做這樣或那樣的一些處理才能順利的使用規則達到更好的建模效果。下面就舉幾個常見的例子:
問題1:很多道路交叉口處由於多出右轉車道,因此要比道路中間段寬一兩個車道,這種如何高效處理呢?
解決思路:使用ArcGIS將交叉路口附近的道路中心線打斷,並賦予更寬的屬性,這樣CityEngine就會自動讀取新屬性加寬此處道路。如果對交叉處長度要求不是非常精確,就可以批量處理,如通過道路中心線相交運算批量獲得交叉口(點),再給這些點一個適當的Buffer(面),用這個Buffer面去切割原有道路中心線,獲得需要加寬的交叉路口附近的道路中心線段,之後就是對這些線段通過Field Calculator批量修改寬度屬性進行加寬。然後再放入CityEngine中運用道路規則。

    
(加寬前)(加寬後)

問題2:道路小角度相交後,相交處出現人行道錯亂的情況。
解決思路:此問題為CityEngine 2011版的Bug。在該bug為解決之前,應對方法是在道路小角度相交處手動加密節點並形成一個小半徑角度稍大的圓弧來暫時應對。
                     
(小角度錯亂)(臨時的應對效果)

問題3:左側為沒有岔路,右側為一條線路引入主路後,主路中心綠化帶也被斷開的情況。兩條相交的路,雖然在同一平面,但不貫穿,中間的隔離帶仍然保留。此需求常出現在一條主路一側或兩側的小路將車輛引入或引出主路的情形。
解決思路:在CityEngine裡編寫單向路規則和綠化帶規則,將這個雙向路分解成兩個單向路和綠化帶,分別賦予對應規則。

(普通雙向路規則以及由於相交而破壞了綠化帶)(分解成單向路和綠化帶後)

問題4:一條主路由於前方地形或山體遮擋,分離成兩條單行線。
解決思路:同問題3解決方法。