1. 程式人生 > >三維數字地球釋出平臺(開源)

三維數字地球釋出平臺(開源)

轉自 三維數字地球釋出平臺探索--幾款開源軟體介紹

先寫想法:

想做個簡單的地形漫遊,於是考慮在ww直接開發,或找個控制元件形式的開發元件。

最大的期望有:

1. 支援google的sketchup,快速智慧三維建模

2. 設計模式做好點,最好先做成元件形式,然後開發應用程式

3. 效能再好點,對於索引技術,記憶體管理等等

4. 客戶端獨立版本 和客戶伺服器端耦合版本的優化

5. 放點伺服器的資料。

.net平臺

  1.WorldWind
      知名度很高,介紹也很全。連結在這裡NASAWorld 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等等。很不容易,從某種角度上來說,確實是自主研發。

非.net平臺


 2.OSSIMPlanet
      連結:ossimplanet
     開發語言:c++
     渲染方式:opengl
      相比WorldWind而言,名氣並太大。雖然推薦時,我一般不推薦它,但他確實是另外一個很強大的開源數字地球。我不推薦它的原因是:
     1)基於c++。光研究瞭解它就要花好多成本,這並不太適合國內公司和單位。門檻高,時間長,見效慢。
     2)相關資料少。它涉及到太多的大型開源庫,而國內翻譯的資料相對少很多。不像WorldWind,拿套原始碼就能開幹。

     但我很喜歡它,作為技術人員來說,我推薦大家去看。很多樂趣和知識在裡面。很優雅,很內涵,值得收藏。

   OSSIMPlanet優勢
     1)基於OSG(Open Scene Graph),一個很龐大很工業很成熟的開源軟體。這點很吸引我。國內很多公司採用,如西安賽能。地址:http://www.3snews.net/html/71/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://www.3snews.net/html/71/www.mgix.com/gps3d/
   這款開源軟體應該來說更側重於gps功能。當然也包含了三維地球的部分功能。
   開發語言:c++
   渲染方式:Opengl

   這個開源軟體很小巧也很實用。作為技術參考來說,非常不錯。可以參考的部分是經緯度轉三維座標,WMS、WFS的遠端呼叫以及Tile的三維顯示。

   缺點就不多說,畢竟方向不一致,不能以平臺來要求它。

4.Earth3D
  地址:http://www.3snews.net/html/71/www.earth3d.org
  這款開源軟體適合初步研究三維地球。它顯示了三維地球,並顯示了國界線。
  開發語言:c++
  渲染方式:Opengl

  作為初步研究,還是不錯的。畢竟起點的第一步就是如何顯示三維地球並貼上MODIS資料。它還能顯示國界線。很不錯的參考。

5.其他更多的開源軟體
  目前為止,我發現的開源軟體就是以上4種,如果你知道更多,請告訴我。

總結:
  1.WorldWind最成熟,最適合商業化.
  2.技術最優OSSIMPlanet