本文中World Wind的GitHub下載地址:https://github.com/hujiulin/WorldWindhtml
美國國家航空航天局(National Aeronautics and Space Administration, NASA)主導的World Wind是全球開發人員共同參與研發的一個開源地理信息系統項目。由NASA Research開發,NASA Learning Technologies來發展,將地球的衛星、電子、地形地圖以及其餘地理數據經過一個三維的數字化的地球進行展現,旨在面向各行業的數據集成,支持WMS、WFS、WTMS等服務,是一款很是優秀的三維客戶端框架繪製引擎。它使用了XML對數據進行描述和設置,具備良好的通用性和擴展性。World Wind目前有基於.NET和Java開發的兩種版本。World Wind除了三維地球的基礎功能以外,還具備很強的可擴展性,具備多種功能性插件,支持谷歌、微軟等發佈的地圖(衛星、電子、地形)數據。java
本文主要解決了World Wind編譯、運行、中文亂碼等問題。git
[1].源碼的下載,環境的配置,源碼的編譯[使用國際網絡,以防網絡不能訪問]github
源碼的下載:windows
WorldWind分爲.Net和java兩種版本,Nasa的官方網站是:http://worldwind.arc.nasa.gov/java/服務器
提供java版本的下載。網絡
.Net版本的下載:app
http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind/框架
這裏提供的是svn,建議用svn進行download編輯器
備註:上述SVN是經過http://www.worldwindcentral.com/wiki/Source_code 維基百科找到的。
環境的配置:
1. 須要提早裝好DirectX9
源碼的編譯:
1.亂碼:會發現不少字符串相關的語法錯誤。文件編碼引發
在VS的解決方案管理器裏右鍵文件
選「打開方式」,
選「帶編碼功能的CSharp編輯器」
選「西歐(windows)-代碼頁 1252」
打開文件,無亂碼
文件菜單文件的保存編碼改爲UTF8,再保存源碼文件
備註:受影響的文件有6個左右
2. LoaderLock問題:
菜單(調試-》異常)——》異常窗口 ——》ManagerDebuggingAssistants ——》去掉LoaderLock選項
3. 註冊表權限問題:
打開HtmlEditor項目的屬性,取消「生成(Build )」選項卡的爲COM互操做註冊(’Register for COM interop’)前的勾選
4.開始運行程序,發現一切正常,可是從初始化界面到程序自己須要等待較長的時間,這是由於中國連不上worldwind的服務器形成的緣由,worldwind本身也提供離線模式,亦能夠修改xml中wms服務器的url。此處暫時採用的辦法是註釋掉如下兩行代碼:
Worldwind->PluginSDK->ConfigurationLoader.cs中:
262行:
321行:
5. 運行程序,加載Initializing的畫面錯位
經過調試發如今worldwind.cs中的public MainApplication()中[563行],
使用splash窗體。
Splash窗體:
Splash構造函數
能夠看到picturebox的代碼註釋,並且窗體上並沒有picturebox的控件。
將圖片調整成如圖所示的樣子,啓動程序正常。
決定將源碼備份到百度網盤和本身的svn服務器上。[百度的服務器上沒上傳成功]
剛纔遷移了worldwind的源碼,出現一個問題:
從新生成,清理項目都沒有用。
解決方法:
刪除該文件:
刪除以後,需從新配置:
問題解決。
備註:第一次運行程序時,稍微須要等下。
若是缺乏引用:AVIFile.dll FlickrNel.dll等引用,請將Release模式切換爲Debug,便可徹底編譯運行經過。[固然具體緣由是須要將對應dll拷貝到Release目錄下。]
在解決亂碼問題的時候,部分人遇到一個狀況:主界面顯示度數的地方會造成「擄」這樣的亂碼,這是由於亂碼問題並沒獲得徹底解決,請在「高級選項保存」時選擇:帶簽名的UTF-8保存便可解決該問題。
亂碼的文件有:
Project | File |
---|---|
WorldWind | Compass3D.cs |
WorldWind | GPSTrackerPlugin.WorldWind.cs |
WorldWindow | WorldWindow.cs |
PluginSDK | ConfigurationLoader.cs |
PluginSDK | Angle.cs |
亂碼問題所有解決:
今天將svn上的代碼,遷移到x64的機器上編譯,程序不能運行,調試模式下看到錯誤:
「未處理的「System.BadImageFormatException」類型的異常」
解決方式:
Any CPU或者x64模式-》改爲x86,而後將output path改爲與「..\bin\Debug\」
從新生成解決方案,編譯運行便可成功:
參考連接:http://cesiumcn.org/topic/206.html | 國內快速訪問:http://cesium.coinidea.com/topic/206.html