本發(fā)明屬于三維模型顯示領域,尤其是一種在地理信息海量三維模型中快速顯示單體模型的方法。
背景技術:
城市三維地理信息系統(tǒng)中因為管理的范圍區(qū)域通常都有上萬平方公里,甚至還有可能擴展成為多個城市,這樣的范圍,如果采用現(xiàn)有分辨率的地形數據、影像數據和三維模型數據,其數據量普遍會超過TB,甚至幾TB,其擁有的單體模型數量通常都在幾百萬個,利用現(xiàn)有傳統(tǒng)的方法,即使采取數據庫檢索技術,要在這樣的海量數據中隨時找出我們需要的單體三維模型并顯示出來,需要花費很長的時間,以至于無法在系統(tǒng)中正常使用。
技術實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術的不足,提供一種在地理信息海量三維模型中快速顯示單體模型的方法,該方法能夠快速的顯示海量三維模型中的單體模型,時間短,效率高,對硬件要求較低。
本發(fā)明解決其技術問題是通過以下技術方案實現(xiàn)的:
一種在地理信息海量三維模型中快速顯示單體模型的方法,其方法的步驟如下:
⑴、地理信息海量三維模型的建立:利用計算機、計算機圖形顯卡、數碼相機以及立體影像量測儀通過人工采集地理信息三維目標的三維框架建立三維立體模型,然后再將數碼相機獲取的三維模型貼圖貼合在三維立體模型上生產出來地理信息海量三維模型;
⑵、快速查找單元的建立:將地理信息海量三維模型數據根據地理坐標范圍按照地理坐標500米×500米的規(guī)則劃分為若干個網格,這個網格稱作快速查找單元;每一個快速查找單元都是以地理空間中預先定義好的一點為計算起點,該計算起點坐標為:AreaMinX,AreaMinY;
⑶、建立快速查找單元唯一ID:該唯一ID由快速查找單元的行號以及列號組成;
⑷、單體模型的顯示:通過計算機視窗所覆蓋的地理信息范圍,快速的找到對應的幾個快速查找單元,然后再利用四叉樹查找算法從這幾個快速查找單元中根據地理信息空間關系找到所需要的單體模型,并將該單體模型從數據庫中取出放入內存中,進而通過顯卡在視窗中顯示出來,即完成了在地理信息海量三維模型中快速顯示單體模型。
而且,所述的行號為ROWID,該ROWID=(Y-AreaMinY)/_BlockSize,其中Y是地理坐標中的Y值,AreaMinY為區(qū)域起點Y值,_BlockSize為快速查找單元的網格大小500。
而且,所述的列號為COLID,該COLID=(X-AreaMinX)/_BlockSize,其中X是地理坐標中的X值,AreaMinX為區(qū)域起點X值,_BlockSize為快速查找單元的網格大小500。
本發(fā)明的優(yōu)點和有益效果為:
1、本在地理信息海量三維模型中快速顯示單體模型的方法通過⑴、地理信息海量三維模型的建立;⑵、快速查找單元的建立;⑶、建立快速查找單元唯一ID;⑷、單體模型的顯示;可以快速計算出視窗顯示范圍所覆蓋的區(qū)域中的快速查找單元,從這些快速查找單元中找出我們需要的單體三維模型就可以上萬倍的提高查找和計算速度。即使利用普通商用PC機也可以實現(xiàn)地理信息三維模型的高效顯示。
2、本發(fā)明可以大幅提高地理信息海量三維模型顯示效率。由于顯示效率的提高,對系統(tǒng)運行計算機的要求也大大的降低,使用普通PC機也可以完成傳統(tǒng)方法在高級圖形工作站上實現(xiàn)的效果,為使用者降低了硬件使用成本。由于該方法使全局查找改變?yōu)榫植坎檎遥粌H減少了查找時間,而且還大幅降低了數據庫的占用計算時間,大幅降低了磁盤讀寫時間,這樣對硬件壽命也可以延長。利用該方法加快了單體模型調入內存的速度,就可以為顯示效果更復雜的效果提供充足的時間,顯示的模型可以更精細,效果更好。
具體實施方式
下面通過具體實施例對本發(fā)明作進一步詳述,以下實施例只是描述性的,不是限定性的,不能以此限定本發(fā)明的保護范圍。
一種在地理信息海量三維模型中快速顯示單體模型的方法,其方法的步驟如下:
⑴、地理信息海量三維模型的建立:利用計算機、計算機圖形顯卡、數碼相機以及立體影像量測儀通過人工采集地理信息三維目標的三維框架建立三維立體模型,然后再將數碼相機獲取的三維模型貼圖貼合在三維立體模型上生產出來地理信息海量三維模型;
⑵、快速查找單元的建立:將地理信息海量三維模型數據根據地理坐標范圍按照地理坐標500米×500米的規(guī)則劃分為若干個網格,這個網格稱作快速查找單元;每一個快速查找單元都是以地理空間中預先定義好的一點為計算起點,該計算起點坐標為:AreaMinX,AreaMinY;
⑶、建立快速查找單元唯一ID:該唯一ID由快速查找單元的行號以及列號組成;行號為ROWID,該ROWID=(Y-AreaMinY)/_BlockSize,其中Y是地理坐標中的Y值,AreaMinY為區(qū)域起點Y值,_BlockSize為快速查找單元的網格大小500,列號為COLID,該COLID=(X-AreaMinX)/_BlockSize,其中X是地理坐標中的X值,AreaMinX為區(qū)域起點X值,_BlockSize為快速查找單元的網格大小500。
⑷、單體模型的顯示:通過計算機視窗所覆蓋的地理信息范圍,快速的找到對應的幾個快速查找單元,然后再利用四叉樹查找算法從這幾個快速查找單元中根據地理信息空間關系找到所需要的單體模型,并將該單體模型從數據庫中取出放入內存中,進而通過顯卡在視窗中顯示出來,即完成了在地理信息海量三維模型中快速顯示單體模型。
系統(tǒng)在做瀏覽操作時,視窗顯示的地理空間范圍會發(fā)生變化,變化的過程中原本不在視窗顯示范圍中的新快速查找單元通過上面描述的方法計算獲得,并且將原本不在視窗顯示范圍中的新的單體三維模型通過上面的方式找到并從數據庫中得到放入顯卡中在視窗中顯示出來。變化過程中原本就在視窗顯示范圍中的快速查找單元和其相應范圍內的三維單體模型不做任何操作。變化過程中原本就在視窗顯示范圍中的快速查找單元在變化后就不在最終視窗顯示范圍內的,將該快速查找單元和其范圍中的所有單體三維模型從內存中刪除。
未使用該方法時每做一次從所有地理信息海量三維模型中查找特定范圍內的模型這一運算所需要的時間視用戶管理模型的多少而不同,在模型數量較少時,該運算可以接受,但在模型數量極大時,該運算會嚴重拖累系統(tǒng)渲染效率,例如在1057萬個地理信息三維模型中查詢137幢建筑模型,816棵樹木模型和738個城市部件模型時耗時0.8s的時間,而采用本發(fā)明,第一步計算該范圍所包含的快速查找單元僅耗時6ms即0.000006秒,然后第二步在這幾個快速查找單元中找到這些模型耗時11毫秒,效率提高了四萬多倍,而且使用該方法在模型數量繼續(xù)增加的情況下耗時不會有明顯變化。