Skyline软件系列平台
?
一、數(shù)據(jù)生產(chǎn)----TerraBuilder
???? 我們知道,要建立起一個真正的三維地理信息系統(tǒng),首先必須要有DEM以及遙感影像數(shù)據(jù),它們是構成三維場景的基礎。skyline軟件家族中的TerraBuilder 所扮演的角色就是利用DEM以及遙感影像數(shù)據(jù)來搭建自己的三維場景。
??? TerraBuilder 支持絕大數(shù)格式的DEM以及影像數(shù)據(jù),并且可以支持多CPU服務器或多臺機器同時運算(TerraBuilder? Fuser模塊)。
??? TerraBuilder 有兩種方式產(chǎn)生出skyline自己的三維場景數(shù)據(jù):一種是MPT數(shù)據(jù),它是TerraBuilder計算出來的一個三維場景文件(后綴名是.mpt);還有一種方式是不事先計算好mpt文件,而是實時運算DEM和影像數(shù)據(jù)(DirectConnect模塊,并且與TerraGate結合),實時發(fā)布給瀏覽器(TerraExplorer Pro或TerraExplorer Viewer),這時的數(shù)據(jù)是.tbp后綴的文件。后面這種實時發(fā)布模式顯然可以避免耗時很長的運算MPT文件的時間,實現(xiàn)快速發(fā)布更新較為頻繁的數(shù)據(jù)。
?
二、數(shù)據(jù)編輯----TerraExplorer Pro
??? 在TerraBuilder創(chuàng)建好MPT文件或tbp文件后,便可以在TerraExplorer Pro軟件中打開三維地形數(shù)據(jù),然后便可以進行各種編輯工作,包括添加GIS專題圖層、標繪、3D模型等等,從而建立起更加真實豐富的三維虛擬環(huán)境。經(jīng)過TerraExplorer Pro的各項處理和編輯工作,再進行打包(Basic kit)存儲,生成一個.FLY后綴的文件,它存儲了區(qū)域的三維地形信息(注意并不是地形數(shù)據(jù))以及在地形場景中創(chuàng)建的各種對象信息(二維的以及三維的)。FLY文件有點類似于ArcGIS的mxd文件,它可以在本地由pro或viewer打開,或通過IIS發(fā)布,供客戶端打開。
?
三、數(shù)據(jù)網(wǎng)絡發(fā)布----三維地形數(shù)據(jù)發(fā)布TerraGate、矢量數(shù)據(jù)發(fā)布Streaming Feature Server(SFS)
??? TerraGate是一款強大的地形傳輸服務器,它能夠同時向數(shù)以千計的客戶傳送三維地形數(shù)據(jù)(MPT文件或DirectConnect實時形成的三維地形數(shù)據(jù))。TerraGate的運行是基于網(wǎng)絡無縫可變帶寬的,并且不會被連通性的潛伏和中斷而影響。當網(wǎng)速較慢而地形數(shù)據(jù)傳送不暢時,初始影像便以低分辨率的形式被用戶接收,用戶就可以進行三維瀏覽顯示,而不用等到所有數(shù)據(jù)傳送完畢。
??? SFS是skyline自己的矢量數(shù)據(jù)發(fā)布工具,即skyline自己構建的WFS。它能夠讀取各種數(shù)據(jù)源,包括Oracle Spatial、ArcSDE、Shape文件數(shù)據(jù)等等,通過緩存機制實現(xiàn)矢量數(shù)據(jù)的高效傳輸。
四、二次開發(fā)
??? TerraExplorer API提供了一套強大的接口用來集成TerraExplorer、TerraExplorer Pro和用戶自定義應用,同時也提供了一套ActiveX控件,可將三維窗口、信息樹和導航圖以控件對象的方式嵌入到用戶自定義的可視化界面中。skyline開發(fā)只有一個組件類入口,那就是TerraExplorerClass,在實例化TerraExplorerClass后,其他TerraExplorer CoClass Interfaces中所有的接口都實現(xiàn)了TerraExplorerClass類,而skyline中的各種對象(ITerraExplorerObject5 Interface中,如ITerrainPolyline5、ITerrainLabel5、ITerrainBuilding5等等)則都是由CoClass Interfaces中的IObjectManager接口創(chuàng)建。
???????? //skyline中的接口定義
??????? private TerraExplorer objTerraExplorer;
??????? private ITerraExplorer51 objITerraExplorer;
??????? private IMenu objIMenu;
??????? private IInformationTree5 objIInformationTree5;
??????? private ISnapShot2 objISnapShot;
??????? private IPlane5 objIPlane5;
??????? private IRender5 objIRender5;
??????? private IObjectManager5 objIObjectManager5;
??????? private ICoordSys3 objICoordSys3;
??????? private ITerrain5 objITerrain5;
??????? private IContainer2 objIContainer2;
??????? private ILayer5 objILayer5;
??????? /// <summary>
??????? /// 初始化對象和事件
??????? /// </summary>
??????? private void InitializeTerraExplorer()
??????? {
??????????? objTerraExplorer = new TerraExplorerClass();
??????????? objITerraExplorer = objTerraExplorer as ITerraExplorer51;
??????????? objIMenu = objTerraExplorer as IMenu;
??????????? objICoordSys3 = objTerraExplorer as ICoordSys3;
??????????? objIObjectManager5 = objTerraExplorer as IObjectManager5;
??????????? objIInformationTree5 = objTerraExplorer as IInformationTree5;
??????????? objIPlane5 = objTerraExplorer as IPlane5;
??????????? objIRender5 = objTerraExplorer as IRender5;
??????????? objISnapShot = objTerraExplorer as ISnapShot2;
??????????? objITerrain5 = objTerraExplorer as ITerrain5;
??????????? objIContainer2 = objTerraExplorer as IContainer2;
??????????? objILayer5 = objTerraExplorer as ILayer5;
??????????? objTerraExplorer.OnLButtonDown += new _ITerraExplorerEvents5_OnLButtonDownEventHandler(objTerraExplorer_OnLButtonDown);
??????????? objTerraExplorer.OnObjectAction += new _ITerraExplorerEvents5_OnObjectActionEventHandler(objTerraExplorer_OnObjectAction);
??????? }
??????????? //加載數(shù)據(jù)
??????????? objITerraExplorer.Load(@"D:\Default.fly");
??? 關于各個接口的使用在本文中就不作介紹了。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/westdusk/archive/2010/05/22/5617196.aspx
總結
以上是生活随笔為你收集整理的Skyline软件系列平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux如何安装ut880驱动下载,u
- 下一篇: java 期刊杂志参考_各系列普刊期刊的