osgearth筆記(下載)_第1頁
osgearth筆記(下載)_第2頁
osgearth筆記(下載)_第3頁
osgearth筆記(下載)_第4頁
osgearth筆記(下載)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、osgEarth 學(xué)習(xí)筆記這是個人在學(xué)習(xí) osgEarth 時根據(jù)體會或從別的地方看到的做的一個簡單整理,有些東東就是官方文檔翻譯過來的, 都是根據(jù)自己的需要感覺需要記錄下來什么東西就隨便記錄下來了,也沒有個條理,都是用到哪記到哪,別見怪。對個人在初期使用 osgEarth 時有很多幫助,所以特發(fā)上來,希望對大家也有幫助osgEarth學(xué)習(xí)筆記1.通過 earth文件創(chuàng)建圖層時, 可以指定多個影像數(shù)據(jù)源和多個高程數(shù)據(jù)源,數(shù)據(jù)源的順序決定渲染順序,在earth文件中處于最前的在渲染時處于最底層渲染;所以如果有高低精度不同的影響數(shù)據(jù)或者高程數(shù)據(jù),在創(chuàng)建earth文件時要將粗精度的數(shù)據(jù)放在上方xml

2、節(jié)點(diǎn),高精度的放在其下面的節(jié)點(diǎn);2. osgEarth自帶多種驅(qū)動器,不同的驅(qū)動器驅(qū)動不同的數(shù)據(jù)源,自己也可以擴(kuò)展驅(qū)動器讀取相應(yīng)的數(shù)據(jù);可以通過 profile 屬性指定數(shù)據(jù)的投影方式或者數(shù)據(jù)分頁方式以及地理空間延展;osgEarth通過profile創(chuàng)建數(shù)據(jù)四叉樹,每個四叉樹節(jié)點(diǎn)數(shù)據(jù)瓦片通過TileKey類來標(biāo)示;一個地形數(shù)據(jù)能否正常工作要看創(chuàng)建它的驅(qū)動器是否能夠創(chuàng)建和對應(yīng)profile兼容的數(shù)據(jù)瓦片;比如,如果要生成地球數(shù)據(jù),就需要指定global-geodetic或者global-mercatorprofile,相應(yīng)的數(shù)據(jù)源要能夠在這種profile下生成相應(yīng)的地形數(shù)據(jù);4. 通過 ea

3、rth文件,最基本的也是最主要的功能是我們可以指定生成地形的坐標(biāo)屬性( 地理坐標(biāo)或投影坐標(biāo) ) 影像數(shù)據(jù)、高程數(shù)據(jù)、矢量數(shù)據(jù)、模型數(shù)據(jù)、以及緩沖位置,通過這些基本要素就可以輕易生成我們想要的地形;osgEarth 只能使用 16 或 32 位的高程數(shù)據(jù)源;6.如果直接使用原始的影像、高程以及矢量數(shù)據(jù),可以用GDAL驅(qū)動器,在這種情況下需要注意幾個性能的問題。第一,將數(shù)據(jù)源預(yù)先進(jìn)行坐標(biāo)變換,變換為目標(biāo)地形坐標(biāo),否則osgEarth會對源數(shù)據(jù)進(jìn)行坐標(biāo)投影變換,這將降低數(shù)據(jù)的加載及處理速度。如果預(yù)先已經(jīng)將數(shù)據(jù)源進(jìn)行正確的坐標(biāo)變換,osgEarth就可以省略這個步驟,從而提高其實(shí)時處理速度;第二,預(yù)先

4、對影像數(shù)據(jù)進(jìn)行瓦片處理,比如tiff格式的影像數(shù)據(jù),它是逐行掃描存儲的,而osgEarth 是每次讀取一個瓦片數(shù)據(jù),如果預(yù)先對影像數(shù)據(jù)進(jìn)行瓦片處理,在動態(tài)過程中 osgEarth 就不需要每次讀取整個大塊影像數(shù)據(jù)然后提取其需要的瓦片數(shù)據(jù),而可以直接讀取相應(yīng)的瓦片數(shù)據(jù)即可,這樣就大大提高了瓦片數(shù)據(jù)的讀取速度??梢酝ㄟ^gdal_translate工具對影像數(shù)據(jù)進(jìn)行瓦片處理;第三,創(chuàng)建金字塔數(shù)據(jù)集可以使osgEarth讀取數(shù)據(jù)更加高效,可以用 gdaladdo 工具創(chuàng)建金字塔數(shù)據(jù)集;總之,要想提高osgEarth的處理效率,就要預(yù)先創(chuàng)建高效的數(shù)據(jù)瓦片結(jié)構(gòu),除了用gdal 、vpb 等工具外,也可以通

5、過osgEarth 的數(shù)據(jù)緩沖機(jī)制創(chuàng)建預(yù)處理的瓦片數(shù)據(jù)集。比如我們可以創(chuàng)建一個如下的earth文件將數(shù)據(jù)緩沖到指定的目錄:c:/data/bluemarble.tifc:/osgearth_cache jpg這種緩沖方式只能緩沖在執(zhí)行該文件時瀏覽過的地形數(shù)據(jù),而不能自動緩沖所有的數(shù)據(jù),要想自動緩沖所有的數(shù)據(jù),就需要用到osgEarth自帶的一個工具,osgearth_seed,通過osgearth_seed-max-level7 bluemarble.earth將數(shù)據(jù)全部緩沖到指定位置,通過這種方式緩沖后, 我們就擁有了一個完整的TMS 數(shù)據(jù)源, 我們可以直接通過文件目錄的方式訪問 該數(shù) 據(jù)源

6、 ,也可 以將該 數(shù)據(jù) 源拷 貝到我 們自己 的本地web服務(wù)目錄下。詳情見://wiki/DataPreparation。 除 此 之 外 還 可 以 用 MapTiler以 及TileCache工具創(chuàng)建瓦片數(shù)據(jù)源,用它創(chuàng)建的瓦片數(shù)據(jù)源也可以直接在osgEarth下使用;7.可以通過兩種方式將osgEarth集成到我們自己的osg應(yīng)用程序中,第一種就是直接通過 earth文件的方式, 直接將 earth文件讀入作為一個osg節(jié)點(diǎn)加入場景即可, 另外一種方式就是通過osgEarth的 API 。通過 API 的方式大體需要以下幾個步驟:創(chuàng)建map對象 創(chuàng)建影像數(shù)據(jù)層 創(chuàng)

7、建高程數(shù)據(jù)層 將影像數(shù)據(jù)層以及高程數(shù)據(jù)層加入到map 對象 根據(jù)前面創(chuàng)建的map 對象創(chuàng)建 mapNode 節(jié)點(diǎn) 將 mapNode節(jié)點(diǎn)加入到場景;示例見 ://wiki/DevelopersGuide。無論是通過 earth文件創(chuàng)建的地形還是通過API 創(chuàng)建的地形,我們都可以在運(yùn)行時對其進(jìn)行修改,如果是用earth 文件創(chuàng)建的地形,需要先找到該earth文件對應(yīng)的mapNode,通過以上兩種方式創(chuàng)建的mapNode,我們可以對地形進(jìn)行修改操作,如添加新的影像、高程數(shù)據(jù),移除特定的影像、高程數(shù)據(jù),重新制定影像、高程數(shù)據(jù)的順序等;8.如果我們的地形用的是地心坐標(biāo)系,可以會

8、碰到當(dāng)相機(jī)距離地面非常近的時候地形被裁減掉的問題,要解決這個問題我們可以通過設(shè)置相機(jī)的遠(yuǎn)近裁剪比率或者創(chuàng)建AutoClipPlaneHandler來解決。 AutoClipPlaneHandler可以動態(tài)監(jiān)視相機(jī),當(dāng)相機(jī)距離地面很近時動態(tài)調(diào)整相機(jī)的近裁減面;9.在地形上放置模型對象時可以使用ObjectPlacer類,通過該類可以直接通過經(jīng)緯度坐標(biāo)進(jìn)行模型的放置操作;10.osgEarth的目標(biāo)是能夠在osg 中開發(fā)基于地理信息的應(yīng)用, 能夠方便地瀏覽地理模型數(shù)據(jù),能夠與開放標(biāo)準(zhǔn)的地理數(shù)據(jù)兼容;osgEarth渲染地形的模式分為兩種:實(shí)時在線模式 ( 直接使用原始數(shù)據(jù)渲染生成) 以及離線模式

9、( 數(shù)據(jù)預(yù)處理成瓦片數(shù)據(jù)或地形數(shù)據(jù)) ;11.osgEarth使用于以下幾種情況的應(yīng)用:快速方便地運(yùn)行地形地圖數(shù)據(jù);使用開放標(biāo)準(zhǔn)的地形地圖數(shù)據(jù),如 WMS 、 TMS 、WCS 等;通過 Web 服務(wù)的方式集成本地存儲的地形地圖數(shù)據(jù);系統(tǒng)要求以瘦客戶端的方式運(yùn)行;經(jīng)常處理隨著時間改變的數(shù)據(jù);集成商業(yè)數(shù)據(jù);12.在使用osgEarth自帶的漫游器EarthManipulator時,如果給漫游器設(shè)置一個矩陣或者給漫游器設(shè)置一個TetherNode然后再解除,然后再移動相機(jī)位置,這時計算出的 Center會有一個跳躍,然后才正常,造成這個問題的原因是給漫游器設(shè)置了參考節(jié)點(diǎn)( 通過 SetNode 函

10、數(shù) ) 造成的,設(shè)置了參考節(jié)點(diǎn)后漫游器要根據(jù)參考節(jié)點(diǎn)重新計算Center和相機(jī)姿態(tài)等參數(shù),在以上兩種情況發(fā)生時,在重新計算Center時出現(xiàn)了偏差,要想避免以上兩種情況下造成的移動異常,可以不讓相機(jī)結(jié)合參考節(jié)點(diǎn)重新計算Center ,即將 Pan函數(shù)中的 recalculateCenter注釋掉即可;13.Map的類型分為 geocentric 和 projected兩種類型, 即地心方式和投影方式,要 建 立 圓 形 地 球 就 用 geocentric類 型 , 用 這 種 類 型 如 果 要 制 定 profile, 只 有g(shù)eodetic(WGS84投影 ) 和 mercator( 墨

11、卡托投影 ) 兩種模式;14.Earth文件詳解:C:/myCacheC:/myCache.dbjpggoogle300 prog=latlong +ellps=WGS84 +datum=WGS84-10.2-102030global-geodeticglobal-mercator+proj=latlong +a=6800000 +b=6800000egm96-metersnearest/bilinear/average/triangulatetrueauto/multitexture/texture_array/multipass104.5 1.20.052.00.02trueglobal_

12、geodeticsomeURL0 0 255 200truepng0.5true4020特定驅(qū)動器屬性設(shè)置,驅(qū)動器分為影像 / 高程驅(qū)動器、模型驅(qū)動器、特征驅(qū)動器、緩沖驅(qū)動器以及地形引擎驅(qū)動器 5 大類;影像 / 高程驅(qū)動器./data/world.shpESRI Shapefile) ,當(dāng)給數(shù)據(jù)指定風(fēng)格時,可以各整個數(shù)據(jù)層指定通過class ,然后給每個類指定不同的風(fēng)格( 數(shù)據(jù)源需要能夠! 指定線的風(fēng)格,顏色、寬度、透明度element stroke: #FF0000;stroke-width: 2.0;stroke-opacity: 0.5;-element fill: #FF0000;f

13、ill-opacity: 0.5;data/world.shpESRI Shapefile french=true world fill: #FFFF00;fill-opacity: 0.5; french=false world fill: #FF0000;fill-opacity: 0.5;line/ArcGIS 驅(qū)動器 ,是從 ESRI 的服務(wù)器讀取影像數(shù)據(jù)復(fù)合驅(qū)動器 ,可以將多個影像數(shù)據(jù)源 ( 可以使用各自不同的驅(qū)動器 ) 復(fù)合成一個邏輯圖層,其實(shí)是一個偽裝的驅(qū)動器,不是真實(shí)的驅(qū)動器./ GDAL 驅(qū)動器 ,使用該驅(qū)動器,指定源數(shù)據(jù)url 時可以指定文件也可以指定某個目錄( 不必將所有

14、的文件都打包成一個文件) ,如果指定了目錄,還可以指定要加載該目錄下某些類型的文件 ( 通過指定擴(kuò)展名) ,此外,如果指定的是目錄,系統(tǒng)遞歸遍歷該目錄下的所有文件將要加載的文件生成一個邏輯圖層,需要注意的是,該目錄下所有的數(shù)據(jù)必須是統(tǒng)一的坐標(biāo)系統(tǒng)以及同樣的波段和波段插值;基于性能的考慮,最好對源數(shù)據(jù)預(yù)先進(jìn)行分塊分級處理以及坐標(biāo)重投影預(yù)處理,這樣可以大大提高系統(tǒng)在運(yùn)行時的性能。如果系統(tǒng)讀取到的源數(shù)據(jù)與運(yùn)行時要求的投影方式不匹配,系統(tǒng)就會在運(yùn)行時對數(shù)據(jù)進(jìn)行重投影,這樣就會降低系統(tǒng)性能,如果想在這種情況下提高系統(tǒng)性能,可以讓系統(tǒng)緩存重投影后的數(shù)據(jù):/files/my_cache_folder./da

15、ta/boston-inset.tif256通過指定目錄的方式加載高程數(shù)據(jù)示例:.dataterraintif3210/osg驅(qū)動器,直接通過osg 的文件讀寫插件讀取相應(yīng)類型的影響數(shù)據(jù)或高程數(shù)據(jù)/tilecache 驅(qū)動器, 讀取 tilecache 磁盤緩存數(shù)據(jù), 通過 tilecache 工具可以從 WMS 服務(wù)器創(chuàng)建或緩存地圖數(shù)據(jù)到磁盤,然后通過該驅(qū)動器進(jìn)行離線讀取。F:/data/tilecache/mapdataworldjpeg/tileservice驅(qū)動器,從NASA 服務(wù)器讀取數(shù)據(jù)/tms驅(qū)動器,通過tms服務(wù)的方式讀取數(shù)據(jù)/wms驅(qū)動器,通過wms服務(wù)的方式讀取數(shù)據(jù)/VPB

16、驅(qū)動器,從vpb 生成的地形數(shù)據(jù)庫讀取相應(yīng)的影像和高程數(shù)據(jù),注意,osgEarth能讀取適用VPB 使用 terrain選項創(chuàng)建的地形數(shù)據(jù)庫。這樣一來我們就可以同時使用只vpb的地形數(shù)據(jù)庫以及原始的影像、高程數(shù)據(jù),可以在不改變現(xiàn)有vpb地形數(shù)據(jù)的基礎(chǔ)上在已有的vpb地形上疊加另外的影像數(shù)據(jù)。511global-geodetic0模型驅(qū)動器/ feature_geom驅(qū)動器,該驅(qū)動器就是將矢量數(shù)據(jù)創(chuàng)建成幾何對象進(jìn)行渲染10000/feature_overlay驅(qū)動器,該驅(qū)動器采用osgSim:OverlayNode將矢量數(shù)據(jù)作為投影紋理覆蓋到地形上。這種覆蓋節(jié)點(diǎn)的方式對于平面投影坐標(biāo)模式是很適合的,但對于球體地心坐標(biāo)來說有一定限制,通過覆蓋節(jié)點(diǎn)的方式將矢量數(shù)據(jù)投影成紋理只能覆蓋不到一半地球大小,而且在背面會顯示穿透效果。12048100/f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論