三維數字地球發布平台探索--幾款開源軟件介紹
已有 3288 次閱讀 2009-03-11 14:40
探索完平台內容后,本來打算介紹數據類型和數據處理方面,不過決定將相關的開源軟件介紹和基於開源軟件進行相關開發的要點進行說明。下一章將繼續數據的探索。
1.WorldWind
知名度很高,介紹也很全。鏈接在這里 NASA World Wind
目前分為.net版本和java版本。
開發語言:c#.java
渲染方式:DirectX,Opengl(Java)
WorldWind的優勢
WorldWind的軟件架構應該來說還是很不錯的,很優秀。開放的設計,使得Worldwind的擴展非常方便和快捷,目前已有上百種各式各樣的插件,很多插件都很有意思和實用。使用.net和java,研究它的工作原理變的相對容易。
相對來說.net版本的容易深入些。java版的嚴格面向對象方法的使用,使得java版的精簡,但深入起來不如.net容易。
以前交流的時候,我經常會推薦WorldWind。很好很強大。
這里以.net版進行說明。
下面的缺陷不能掩蓋WorldWind的光彩。
WorldWind的缺陷
總體架構設計沒太大問題。主要在內部的幾點
1.速度慢。幾個原因導致worldwind在實際使用中存在速度慢的問題.
a)影像數據組織混亂。由於worldwind在系統設計時面向的就是各個行業各種數據的集成。因此他設計時的兼容,導致同一地區數據獲取重復(占內存資源)、不同數據獲取服務器速度不一致影響。
b)c#異常。捕獲異常占用了worldwind大部分時間。導致顯示、數據獲取時嚴重的停頓。
c)SRTM的動態生成。如果你想像取圖工具一樣把SRTM下載下來,那簡直不可能。
d)QueueDownload實際運作時,一旦出現異常和錯誤,將導致數據下載停頓。需要重新調整視角。而貌似多線程的下載,實際效果並不明顯。這就導致顯示出現停頓。
2.三維支持能力稍差。
尤其是在模型的支持方面,雖然有個ModelFeature類來進行三維顯示。這里有問題:
a)不支持LOD,雖然.x文件設計時能支持,不過顯然ModelFeature不支持。
b)模型顯示漂移。當你放大到最詳細時,會發現模型左右上下晃動。
c)模型未按tile形式組織。Cache、內存、釋放等方式都存在問題。
3.矢量支持
worldwind的矢量處理顯示類比較混亂。效果也不是太好。
4.KML支持
通過一個插件能夠支持KML,不過想達到googleearth的添加等功能,還需要做很多工作。
5.內存泄露
按理,c#不會存在內存泄露。出現問題的地方是QuadTile.Dispose,D3D的紋理沒有進行清除。使得資源占用越來越大,速度越來越慢
6.DEM顯示缺陷
每個Tile之間未作平滑處理,經常會出現深坑、斷檔。
7.影像黑邊
大多數基於worldwind的軟件,可以看到影像邊緣很明顯的黑邊、鋸齒。究其原因,是Jpg壓縮,出現黑色滲透交融導致黑邊鋸齒。 兩種解決辦法,a)邊緣地帶采用png。b)嚴格的數據組織。
WorldWind的國內應用
可以說,國內很多高手都解決了上述的問題,並且發揚WorldWind的優勢。典型代表EVGlobe等等。很不容易,從某種角度上來說,確實是自主研發。
2.OSSIMPlanet
鏈接: ossimplanet
開發語言:c++
渲染方式:opengl
相比WorldWind而言,名氣並太大。雖然推薦時,我一般不推薦它,但他確實是另外一個很強大的開源數字地球。我不推薦它的原因是:
1)基於c++。光研究了解它就要花好多成本,這並不太適合國內公司和單位。門檻高,時間長,見效慢。
2)相關資料少。它涉及到太多的大型開源庫,而國內翻譯的資料相對少很多。不像WorldWind,拿套源代碼就能開干。
但我很喜歡它,作為技術人員來說,我推薦大家去看。很多樂趣和知識在里面。很優雅,很內涵,值得收藏。
OSSIMPlanet優勢
1)基於OSG(Open Scene Graph),一個很龐大很工業很成熟的開源軟件。這點很吸引我。國內很多公司采用,如西安賽能。地址: http://blog.3snews.net/www.openscenegraph.org
僅OSG就能列出非常多的文章,使用OSG的好處不勝列舉。要描述清楚需要花很多篇幅。這里我們就帶過。
2)平滑快速高效的顯示效果。
3)作為平台來說,他涵蓋的內容很全,比如你可以用OSG做出媲美TerraBuilder的軟件。用GDAL+OSG支持絕大多數矢量、影像、模型文件。
4)完美的模型支持。不用說LOD,連整個城市裝入一點問題沒有。在很早以前,有個叫做VTP的虛擬城市開源軟件。
5)專業化,確實很專業。
6)腳本支持。通過采用OSG的osgInterper(這部分實在是太美妙了),能快速綁定Python,Lua,JavaScript,Ruby。
7)想了解更多的優勢,還是自己去下個來看吧。
OSSIMPlanet缺陷
從技術角度來講,OSSIMPlanet的缺陷幾乎沒有。不過,上面說過了,想基於它形成自己的產品和解決方案,要花很多投入和資金。因此它的硬傷就是,不適合商業化。
OSSIMPlanet國內應用
幾年前,我和一個開發工作室聊過。他們采用的是OSG以及基於OSG開發的數字地球,參考了ossimplanet但未直接使用。因此,國內應用,沒有。
這個工作室產品名為VirtualTerran。后來貌似變成了mapok(不確定,知道的請聯系我)
3.Gps3D
地址: http://blog.3snews.net/www.mgix.com/gps3d/
這款開源軟件應該來說更側重於gps功能。當然也包含了三維地球的部分功能。
開發語言:c++
渲染方式:Opengl
這個開源軟件很小巧也很實用。作為技術參考來說,非常不錯。可以參考的部分是經緯度轉三維坐標,WMS、WFS的遠程調用以及Tile的三維顯示。
缺點就不多說,畢竟方向不一致,不能以平台來要求它。
4.Earth3D
地址: http://blog.3snews.net/www.earth3d.org
這款開源軟件適合初步研究三維地球。它顯示了三維地球,並顯示了國界線。
開發語言:c++
渲染方式:Opengl
作為初步研究,還是不錯的。畢竟起點的第一步就是如何顯示三維地球並貼上MODIS數據。它還能顯示國界線。很不錯的參考。
5.其他更多的開源軟件
目前為止,我發現的開源軟件就是以上4種,如果你知道更多,請告訴我。
總結:
1.WorldWind最成熟,最適合商業化.
2.技術最優OSSIMPlanet
1.WorldWind
知名度很高,介紹也很全。鏈接在這里 NASA World Wind
目前分為.net版本和java版本。
開發語言:c#.java
渲染方式:DirectX,Opengl(Java)
WorldWind的優勢
WorldWind的軟件架構應該來說還是很不錯的,很優秀。開放的設計,使得Worldwind的擴展非常方便和快捷,目前已有上百種各式各樣的插件,很多插件都很有意思和實用。使用.net和java,研究它的工作原理變的相對容易。
相對來說.net版本的容易深入些。java版的嚴格面向對象方法的使用,使得java版的精簡,但深入起來不如.net容易。
以前交流的時候,我經常會推薦WorldWind。很好很強大。
這里以.net版進行說明。
下面的缺陷不能掩蓋WorldWind的光彩。
WorldWind的缺陷
總體架構設計沒太大問題。主要在內部的幾點
1.速度慢。幾個原因導致worldwind在實際使用中存在速度慢的問題.
a)影像數據組織混亂。由於worldwind在系統設計時面向的就是各個行業各種數據的集成。因此他設計時的兼容,導致同一地區數據獲取重復(占內存資源)、不同數據獲取服務器速度不一致影響。
b)c#異常。捕獲異常占用了worldwind大部分時間。導致顯示、數據獲取時嚴重的停頓。
c)SRTM的動態生成。如果你想像取圖工具一樣把SRTM下載下來,那簡直不可能。
d)QueueDownload實際運作時,一旦出現異常和錯誤,將導致數據下載停頓。需要重新調整視角。而貌似多線程的下載,實際效果並不明顯。這就導致顯示出現停頓。
2.三維支持能力稍差。
尤其是在模型的支持方面,雖然有個ModelFeature類來進行三維顯示。這里有問題:
a)不支持LOD,雖然.x文件設計時能支持,不過顯然ModelFeature不支持。
b)模型顯示漂移。當你放大到最詳細時,會發現模型左右上下晃動。
c)模型未按tile形式組織。Cache、內存、釋放等方式都存在問題。
3.矢量支持
worldwind的矢量處理顯示類比較混亂。效果也不是太好。
4.KML支持
通過一個插件能夠支持KML,不過想達到googleearth的添加等功能,還需要做很多工作。
5.內存泄露
按理,c#不會存在內存泄露。出現問題的地方是QuadTile.Dispose,D3D的紋理沒有進行清除。使得資源占用越來越大,速度越來越慢
6.DEM顯示缺陷
每個Tile之間未作平滑處理,經常會出現深坑、斷檔。
7.影像黑邊
大多數基於worldwind的軟件,可以看到影像邊緣很明顯的黑邊、鋸齒。究其原因,是Jpg壓縮,出現黑色滲透交融導致黑邊鋸齒。 兩種解決辦法,a)邊緣地帶采用png。b)嚴格的數據組織。
WorldWind的國內應用
可以說,國內很多高手都解決了上述的問題,並且發揚WorldWind的優勢。典型代表EVGlobe等等。很不容易,從某種角度上來說,確實是自主研發。
2.OSSIMPlanet
鏈接: ossimplanet
開發語言:c++
渲染方式:opengl
相比WorldWind而言,名氣並太大。雖然推薦時,我一般不推薦它,但他確實是另外一個很強大的開源數字地球。我不推薦它的原因是:
1)基於c++。光研究了解它就要花好多成本,這並不太適合國內公司和單位。門檻高,時間長,見效慢。
2)相關資料少。它涉及到太多的大型開源庫,而國內翻譯的資料相對少很多。不像WorldWind,拿套源代碼就能開干。
但我很喜歡它,作為技術人員來說,我推薦大家去看。很多樂趣和知識在里面。很優雅,很內涵,值得收藏。
OSSIMPlanet優勢
1)基於OSG(Open Scene Graph),一個很龐大很工業很成熟的開源軟件。這點很吸引我。國內很多公司采用,如西安賽能。地址: http://blog.3snews.net/www.openscenegraph.org
僅OSG就能列出非常多的文章,使用OSG的好處不勝列舉。要描述清楚需要花很多篇幅。這里我們就帶過。
2)平滑快速高效的顯示效果。
3)作為平台來說,他涵蓋的內容很全,比如你可以用OSG做出媲美TerraBuilder的軟件。用GDAL+OSG支持絕大多數矢量、影像、模型文件。
4)完美的模型支持。不用說LOD,連整個城市裝入一點問題沒有。在很早以前,有個叫做VTP的虛擬城市開源軟件。
5)專業化,確實很專業。
6)腳本支持。通過采用OSG的osgInterper(這部分實在是太美妙了),能快速綁定Python,Lua,JavaScript,Ruby。
7)想了解更多的優勢,還是自己去下個來看吧。
OSSIMPlanet缺陷
從技術角度來講,OSSIMPlanet的缺陷幾乎沒有。不過,上面說過了,想基於它形成自己的產品和解決方案,要花很多投入和資金。因此它的硬傷就是,不適合商業化。
OSSIMPlanet國內應用
幾年前,我和一個開發工作室聊過。他們采用的是OSG以及基於OSG開發的數字地球,參考了ossimplanet但未直接使用。因此,國內應用,沒有。
這個工作室產品名為VirtualTerran。后來貌似變成了mapok(不確定,知道的請聯系我)
3.Gps3D
地址: http://blog.3snews.net/www.mgix.com/gps3d/
這款開源軟件應該來說更側重於gps功能。當然也包含了三維地球的部分功能。
開發語言:c++
渲染方式:Opengl
這個開源軟件很小巧也很實用。作為技術參考來說,非常不錯。可以參考的部分是經緯度轉三維坐標,WMS、WFS的遠程調用以及Tile的三維顯示。
缺點就不多說,畢竟方向不一致,不能以平台來要求它。
4.Earth3D
地址: http://blog.3snews.net/www.earth3d.org
這款開源軟件適合初步研究三維地球。它顯示了三維地球,並顯示了國界線。
開發語言:c++
渲染方式:Opengl
作為初步研究,還是不錯的。畢竟起點的第一步就是如何顯示三維地球並貼上MODIS數據。它還能顯示國界線。很不錯的參考。
5.其他更多的開源軟件
目前為止,我發現的開源軟件就是以上4種,如果你知道更多,請告訴我。
總結:
1.WorldWind最成熟,最適合商業化.
2.技術最優OSSIMPlanet