版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、osgEarth 学习笔记这是个人在学习 osgEarth 时根据体会或从别的地方看到的做的一个简单整理,有些东东就是官方文档翻译过来的, 都是根据自己的需要感觉需要记录下来什么东西就随便记录下来了,也没有个条理,都是用到哪记到哪,别见怪。对个人在初期使用 osgEarth 时有很多帮助,所以特发上来,希望对大家也有帮助osgEarth学习笔记1.通过 earth文件创建图层时, 可以指定多个影像数据源和多个高程数据源,数据源的顺序决定渲染顺序,在earth文件中处于最前的在渲染时处于最底层渲染;所以如果有高低精度不同的影响数据或者高程数据,在创建earth文件时要将粗精度的数据放在上方xml
2、节点,高精度的放在其下面的节点;2. osgEarth自带多种驱动器,不同的驱动器驱动不同的数据源,自己也可以扩展驱动器读取相应的数据;可以通过 profile 属性指定数据的投影方式或者数据分页方式以及地理空间延展;osgEarth通过profile创建数据四叉树,每个四叉树节点数据瓦片通过TileKey类来标示;一个地形数据能否正常工作要看创建它的驱动器是否能够创建和对应profile兼容的数据瓦片;比如,如果要生成地球数据,就需要指定global-geodetic或者global-mercatorprofile,相应的数据源要能够在这种profile下生成相应的地形数据;4. 通过 ea
3、rth文件,最基本的也是最主要的功能是我们可以指定生成地形的坐标属性( 地理坐标或投影坐标 ) 影像数据、高程数据、矢量数据、模型数据、以及缓冲位置,通过这些基本要素就可以轻易生成我们想要的地形;osgEarth 只能使用 16 或 32 位的高程数据源;6.如果直接使用原始的影像、高程以及矢量数据,可以用GDAL驱动器,在这种情况下需要注意几个性能的问题。第一,将数据源预先进行坐标变换,变换为目标地形坐标,否则osgEarth会对源数据进行坐标投影变换,这将降低数据的加载及处理速度。如果预先已经将数据源进行正确的坐标变换,osgEarth就可以省略这个步骤,从而提高其实时处理速度;第二,预先
4、对影像数据进行瓦片处理,比如tiff格式的影像数据,它是逐行扫描存储的,而osgEarth 是每次读取一个瓦片数据,如果预先对影像数据进行瓦片处理,在动态过程中 osgEarth 就不需要每次读取整个大块影像数据然后提取其需要的瓦片数据,而可以直接读取相应的瓦片数据即可,这样就大大提高了瓦片数据的读取速度。可以通过gdal_translate工具对影像数据进行瓦片处理;第三,创建金字塔数据集可以使osgEarth读取数据更加高效,可以用 gdaladdo 工具创建金字塔数据集;总之,要想提高osgEarth的处理效率,就要预先创建高效的数据瓦片结构,除了用gdal 、vpb 等工具外,也可以通
5、过osgEarth 的数据缓冲机制创建预处理的瓦片数据集。比如我们可以创建一个如下的earth文件将数据缓冲到指定的目录:c:/data/bluemarble.tifc:/osgearth_cache jpg这种缓冲方式只能缓冲在执行该文件时浏览过的地形数据,而不能自动缓冲所有的数据,要想自动缓冲所有的数据,就需要用到osgEarth自带的一个工具,osgearth_seed,通过osgearth_seed-max-level7 bluemarble.earth将数据全部缓冲到指定位置,通过这种方式缓冲后, 我们就拥有了一个完整的TMS 数据源, 我们可以直接通过文件目录的方式访问 该数 据源
6、 ,也可 以将该 数据 源拷 贝到我 们自己 的本地web服务目录下。详情见://wiki/DataPreparation。 除 此 之 外 还 可 以 用 MapTiler以 及TileCache工具创建瓦片数据源,用它创建的瓦片数据源也可以直接在osgEarth下使用;7.可以通过两种方式将osgEarth集成到我们自己的osg应用程序中,第一种就是直接通过 earth文件的方式, 直接将 earth文件读入作为一个osg节点加入场景即可, 另外一种方式就是通过osgEarth的 API 。通过 API 的方式大体需要以下几个步骤:创建map对象 创建影像数据层 创
7、建高程数据层 将影像数据层以及高程数据层加入到map 对象 根据前面创建的map 对象创建 mapNode 节点 将 mapNode节点加入到场景;示例见 ://wiki/DevelopersGuide。无论是通过 earth文件创建的地形还是通过API 创建的地形,我们都可以在运行时对其进行修改,如果是用earth 文件创建的地形,需要先找到该earth文件对应的mapNode,通过以上两种方式创建的mapNode,我们可以对地形进行修改操作,如添加新的影像、高程数据,移除特定的影像、高程数据,重新制定影像、高程数据的顺序等;8.如果我们的地形用的是地心坐标系,可以会
8、碰到当相机距离地面非常近的时候地形被裁减掉的问题,要解决这个问题我们可以通过设置相机的远近裁剪比率或者创建AutoClipPlaneHandler来解决。 AutoClipPlaneHandler可以动态监视相机,当相机距离地面很近时动态调整相机的近裁减面;9.在地形上放置模型对象时可以使用ObjectPlacer类,通过该类可以直接通过经纬度坐标进行模型的放置操作;10.osgEarth的目标是能够在osg 中开发基于地理信息的应用, 能够方便地浏览地理模型数据,能够与开放标准的地理数据兼容;osgEarth渲染地形的模式分为两种:实时在线模式 ( 直接使用原始数据渲染生成) 以及离线模式
9、( 数据预处理成瓦片数据或地形数据) ;11.osgEarth使用于以下几种情况的应用:快速方便地运行地形地图数据;使用开放标准的地形地图数据,如 WMS 、 TMS 、WCS 等;通过 Web 服务的方式集成本地存储的地形地图数据;系统要求以瘦客户端的方式运行;经常处理随着时间改变的数据;集成商业数据;12.在使用osgEarth自带的漫游器EarthManipulator时,如果给漫游器设置一个矩阵或者给漫游器设置一个TetherNode然后再解除,然后再移动相机位置,这时计算出的 Center会有一个跳跃,然后才正常,造成这个问题的原因是给漫游器设置了参考节点( 通过 SetNode 函
10、数 ) 造成的,设置了参考节点后漫游器要根据参考节点重新计算Center和相机姿态等参数,在以上两种情况发生时,在重新计算Center时出现了偏差,要想避免以上两种情况下造成的移动异常,可以不让相机结合参考节点重新计算Center ,即将 Pan函数中的 recalculateCenter注释掉即可;13.Map的类型分为 geocentric 和 projected两种类型, 即地心方式和投影方式,要 建 立 圆 形 地 球 就 用 geocentric类 型 , 用 这 种 类 型 如 果 要 制 定 profile, 只 有geodetic(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特定驱动器属性设置,驱动器分为影像 / 高程驱动器、模型驱动器、特征驱动器、缓冲驱动器以及地形引擎驱动器 5 大类;影像 / 高程驱动器./data/world.shpESRI Shapefile) ,当给数据指定风格时,可以各整个数据层指定通过class ,然后给每个类指定不同的风格( 数据源需要能够! 指定线的风格,颜色、宽度、透明度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 驱动器 ,是从 ESRI 的服务器读取影像数据复合驱动器 ,可以将多个影像数据源 ( 可以使用各自不同的驱动器 ) 复合成一个逻辑图层,其实是一个伪装的驱动器,不是真实的驱动器./ GDAL 驱动器 ,使用该驱动器,指定源数据url 时可以指定文件也可以指定某个目录( 不必将所有
14、的文件都打包成一个文件) ,如果指定了目录,还可以指定要加载该目录下某些类型的文件 ( 通过指定扩展名) ,此外,如果指定的是目录,系统递归遍历该目录下的所有文件将要加载的文件生成一个逻辑图层,需要注意的是,该目录下所有的数据必须是统一的坐标系统以及同样的波段和波段插值;基于性能的考虑,最好对源数据预先进行分块分级处理以及坐标重投影预处理,这样可以大大提高系统在运行时的性能。如果系统读取到的源数据与运行时要求的投影方式不匹配,系统就会在运行时对数据进行重投影,这样就会降低系统性能,如果想在这种情况下提高系统性能,可以让系统缓存重投影后的数据:/files/my_cache_folder./da
15、ta/boston-inset.tif256通过指定目录的方式加载高程数据示例:.dataterraintif3210/osg驱动器,直接通过osg 的文件读写插件读取相应类型的影响数据或高程数据/tilecache 驱动器, 读取 tilecache 磁盘缓存数据, 通过 tilecache 工具可以从 WMS 服务器创建或缓存地图数据到磁盘,然后通过该驱动器进行离线读取。F:/data/tilecache/mapdataworldjpeg/tileservice驱动器,从NASA 服务器读取数据/tms驱动器,通过tms服务的方式读取数据/wms驱动器,通过wms服务的方式读取数据/VPB
16、驱动器,从vpb 生成的地形数据库读取相应的影像和高程数据,注意,osgEarth能读取适用VPB 使用 terrain选项创建的地形数据库。这样一来我们就可以同时使用只vpb的地形数据库以及原始的影像、高程数据,可以在不改变现有vpb地形数据的基础上在已有的vpb地形上叠加另外的影像数据。511global-geodetic0模型驱动器/ feature_geom驱动器,该驱动器就是将矢量数据创建成几何对象进行渲染10000/feature_overlay驱动器,该驱动器采用osgSim:OverlayNode将矢量数据作为投影纹理覆盖到地形上。这种覆盖节点的方式对于平面投影坐标模式是很适合的,但对于球体地心坐标来说有一定限制,通过覆盖节点的方式将矢量数据投影成纹理只能覆盖不到一半地球大小,而且在背面会显示穿透效果。12048100/f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技创新成果转化与知识产权保护制度
- 物流行业运输安全监控制度
- 文娱内容审查审核制度
- 医疗行业患者隐私保护制度
- 新建汽车底盘零部件生产项目可行性研究报告模板-备案审批
- 全国小学英语语法难点解析试卷及答案
- 响水《外贸业务员》岗位冲刺押题卷
- 护理部年度总结报告
- 护士VTE相关知识考试题(含答案)
- 沪教牛津版(六三制一起)四年级下册Unit 1 Touch and feel教学设计
- 北京市人民大附属中学2026届中考数学全真模拟试卷含解析
- 浙江省湖州、衢州、丽水三地市2026届高三下学期4月二模数学试题 含答案
- 2026中国宠物冻干零食行业市场发展趋势与前景展望战略研究报告
- 2026中煤锡林郭勒芒来发电有限公司第一批招聘23人笔试参考题库及答案解析
- 2026校招:陕西投资集团笔试题及答案
- 2024-2025学年河南省南阳市高一下学期期中考试生物试卷(解析版)
- 雨课堂学堂在线学堂云民族学导论专题中央民族大学单元测试考核答案
- 2025年洗衣师技能理论考试题(附答案)
- 淘宝客服合同协议书
- 2025年深圳市网格员笔试试题及答案解析
- 2024-2025学年宁夏银川市唐徕中学南校区九年级下学期期中考试历史试卷
评论
0/150
提交评论