skyline軟體系列平台提供了從
資料生產、編輯
到網路發布
的一整套的成熟的商業解決方案。無論是單機環境還是網路環境,使用者都能夠根據自己的需求進行功能定製,建立起自己的三維地理資訊系統。本文主要從skyline軟體的工作流程出發,介紹一下skyline的軟體體系結構。
一、資料生產----terrabuilder
我們知道,要建立起乙個真正的三維地理資訊系統,首先必須要有dem以及遙感影像資料,它們是構成三維場景的基礎。skyline軟體家族中的terrabuilder 所扮演的角色就是利用dem以及遙感影像資料來搭建自己的三維場景。
terrabuilder 支援絕大數格式的dem以及影像資料,並且可以支援多cpu伺服器或多台機器同時運算(terrabuilder fuser模組)。
terrabuilder 有兩種方式產生出skyline自己的三維場景資料:一種是mpt資料,它是terrabuilder計算出來的乙個三維場景檔案(字尾名是.mpt);還有一種方式是不事先計算好mpt檔案,而是實時運算dem和影像資料(
directconnect模組,並且與terragate結合),實時發布給瀏覽器(terraexplorer pro或terraexplorer viewer),這時的資料是.tbp字尾的檔案。後面這種實時發布模式顯然可以避免耗時很長的運算mpt檔案的時間,實現快速發布更新較為頻繁的資料。
二、資料編輯----
terraexplorer pro
在terrabuilder建立好mpt檔案或tbp檔案後,便可以在terraexplorer pro軟體中開啟三維地形資料,然後便可以進行各種編輯工作,包括新增gis專題圖層、標繪、3d模型等等,從而建立起更加真實豐富的三維虛擬環境。經過terraexplorer pro的各項處理和編輯工作,再進行打包(basic kit)儲存,生成乙個.fly字尾的檔案,它儲存了區域的三維地形資訊(注意並不是地形資料)以及在地形場景中建立的各種物件資訊(二維的以及三維的)。fly檔案有點類似於arcgis的mxd檔案,它可以在本地由pro或viewer開啟,或通過iis發布,供客戶端開啟。
三、資料網路發布----三維地形資料發布terragate、
向量資料發布
streaming feature server(sfs)
terragate是一款強大的地形傳輸伺服器,它能夠同時向數以千計的客戶傳送三維地形資料(mpt檔案或directconnect實時形成的三維地形資料)。terragate的執行是基於網路無縫可變頻寬的,並且不會被連通性的潛伏和中斷而影響。當網速較慢而地形資料傳送不暢時,初始影像便以低解析度的形式被使用者接收,使用者就可以進行三維瀏覽顯示,而不用等到所有資料傳送完畢。
sfs是skyline自己的向量資料發布工具,即skyline自己構建的wfs。它能夠讀取各種資料來源,包括oracle spatial、arcsde、shape檔案資料等等,通過快取機制實現向量資料的高效傳輸。
四、二次開發
terraexplorer api提供了一套強大的介面用來整合terraexplorer、terraexplorer pro和使用者自定義應用,同時也提供了一套activex控制項,可將三維視窗、資訊樹和導航圖以控制項物件的方式嵌入到使用者自定義的視覺化介面中。skyline開發只有乙個元件類入口,那就是terraexplorerclass,在例項化terraexplorerclass後,其他terraexplorer coclass inte***ces中所有的介面都實現了terraexplorerclass類,而skyline中的各種物件(iterraexplorerobject5 inte***ce中,如iterrainpolyline5、iterrainlabel5、iterrainbuilding5等等)則都是由coclass inte***ces中的iobjectmanager介面建立。
//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;
///
/// 初始化物件和事件
///
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);
//載入資料
objiterraexplorer.load(@"d:/default.fly");
關於各個介面的使用在本文中就不作介紹了。
如何選擇工作流軟體
在企業資訊化大潮下的今天,大多企業,特別是有一定規模的企業都進行了資訊化建設,而工作流無疑是給資訊化建設提供了有力的保證。當然工作流的作用更多的體現了流程的管理 扭轉 我最近留心觀察並且試用了下國內各種工作流軟體。得出的結論是其實多數工作流軟體基本功能實際上都是差不多的。差別的最大應該是服務 以及每...
工作流建模 工作流概念
工作流建模 工作流概念 1 案例 工作流系統得基本目的是處理案例。每個案例都有乙個唯一標識,而且每個案例的生命週期都是有限的。案例生命週期都處於某個特定狀態,該狀態由三個元素組成 1 案例相關的屬性的值 案例屬性是一系列同案例相關的變數。能夠用來管理案例。正是通過這些變數,才有可能指出在特定條件下某...
工作流 一 什麼是工作流
什麼是工作流 工作流的英文全稱是 workflow,簡單理解則是業務流程的計算機化或自動化。它是是針對工作中具有固定程式的常規活動而提出的乙個概念,通過將工作活動分解定義良好的任務 角色 規則和過程來進行執行和監控,達到提高生產組織水平和工作效率的目的。工作流技術發端於70年代中期辦公自動化領域的研...