osgearth记录文本(编辑)_第1页
osgearth记录文本(编辑)_第2页
osgearth记录文本(编辑)_第3页
osgearth记录文本(编辑)_第4页
osgearth记录文本(编辑)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、osgEarth 学习笔记这是个人在学习 osgEarth 时根据体会或从别的地方看到的做的一个简单整理,有些东东就是官方文档翻译过来的, 都是根据自己的需要感觉需要记录下来什么东西就随便记录下来了,也没有个条理,都是用到哪记到哪,别见怪。对个人在初期使用osgEarth 时有很多帮助,所以特发上来,希望对大家也有帮助osgEarth 学习笔记1. 通过 earth 文件创建图层时,可以指定多个影像数据源和多个高程数据源,数据源的顺序决定渲染顺序,在 earth 文件中处于最前的在渲染时处于最底层渲染;所以如果有高低精度不同的影响数据或者高程数据,在创建 earth 文件时要将粗精度的数据放在

2、上方 xml 节点,高精度的放在其下面的节点;2. osgEarth 自带多种驱动器, 不同的驱动器驱动不同的数据源, 自己也可以扩展驱动器读取相应的数据;3. 可以通过 profile 属性指定数据的投影方式或者数据分页方式以及地理空间延展;osgEarth 通过 profile 创建数据四叉树,每个四叉树节点数据瓦片通过TileKey 类来标示;一个地形数据能否正常工作要看创建它的驱动器是否能够创建和对应profile 兼容的数据瓦片;比如,如果要生成地球数据,就需要指定global-geodetic或者 global-mercatorprofile ,相应的数据源要能够在这种 profi

3、le 下生成相应的地形数据;(地理坐4. 通过 earth 文件,最基本的也是最主要的功能是我们可以指定生成地形的坐标属性标或投影坐标 )影像数据、高程数据、矢量数据、模型数据、以及缓冲位置,通过这些基本要素就可以轻易生成我们想要的地形;5. osgEarth 只能使用 16或32位的高程数据源;6. 如果直接使用原始的影像、 高程以及矢量数据, 可以用 GDAL 驱动器, 在这种情况下需要 注意几个性能的问题。第一,将数据源预先进行坐标变换,变换为目标地形坐标,否则osgEarth 会对源数据进行坐标投影变换, 这将降低数据的加载及处理速度。 如果预先已经将数据源进行正确的坐标变换, osg

4、Earth 就可以省略这个步骤, 从而提高其实时处理速度;二,预先对影像数据进行瓦片处理,比如tiff 格式的影像数据,它是逐行扫描存储的,而而可以直接读取gdal_translate 工具对影像数据进行瓦片处理;第三,创建金字塔数据集可以使osgEarth读取数据更加高效,可以用 gdaladdo 工具创建金字塔数据集;总之,要想提高 osgEarth的处理效率,就要预先创建高效的数据瓦片结构,除了用 gdal 、 vpb 等工具外,也可以通过osgEarth 的数据缓冲机制创建预处理的瓦片数据集。比如我们可以创建一个如下的earth文件将数据缓冲到指osgEarth 是每次读取一个瓦片数据

5、,如果预先对影像数据进行瓦片处理,在动态过程中osgEarth 就不需要每次读取整个大块影像数据然后提取其需要的瓦片数据, 相应的瓦片数据即可,这样就大大提高了瓦片数据的读取速度。可以通过定的目录:<map name="bluemarble" type="geocentric" version="2"><!-Add a reference to the image -><image name="bluemarble" driver="gdal"><url

6、>c:/data/bluemarble.tif</url></image><options><!-Tell osgEarth to cache the tiles in a TMS format-><cache type="tms"><path>c:/osgearth_cache</path><!-Tell osgEarth to cache the tiles to JPG to save disk space-><format>jpg</format&

7、gt;</cache></options> </map>想自动缓冲所有的数据,就需要用到这种缓冲方式只能缓冲在执行该文件时浏览过的地形数据,而不能自动缓冲所有的数据,要osgEarth 自带的一个工具, osgearth_seed, 通过osgearth_seed -max-level 7 bluemarble.earth将数据全部缓冲到指定位置,通过这种方式缓冲后, 我们就拥有了一个完整的 TMS 数据源, 我们可以直接通过文件目录的方式访问该数据 源,也 可以 将该数 据源拷 贝到 我们自 己的本 地 web 服务 目录下 。详情 见http:/osge

8、/wiki/DataPreparation。除此之外还可以用 MapTiler 以及 TileCache工具创建瓦片数据源,用它创建的瓦片数据源也可以直接在osgEarth 下使用;7.可以通过两种方式将 osgEarth 集成到我们自己的 osg 应用程序中,第一种就是直接通过 earth 文件的方式,直接将 earth 文件读入作为一个 osg 节点加入场景即可,另外一种方式就是通过 osgEarth 的 API 。通过 API 的方式大体需要以下几个步骤:创建map 对象创建影像数据层创建高程数据层将影像数据层以及高程数据层加入到map对象根据前面创建的 map 对象创建

9、 mapNode 节点将 mapNode 节点加入到场景;示例见 /wiki/DevelopersGuide。无论是通过 earth 文件创建的地形还是通过 API 创建的地形,我们都可以在运行时对其进行修改,如果是用earth 文件创建的地形, 需要先找到该 earth 文件对应的 mapNode ,通过以上两种方式创建的 mapNode ,我们可以对地形进行修改操作,如添加新的影像、高程数据,移除特定的影像、高程数据, 重新制定影像、高程数据的顺序等;8.如果我们的地形用的是地心坐标系,可以会碰到当相机距离地面非常近的时候地形被裁减掉的问题,要解决这个问

10、题我们可以通过设置相机的远近裁剪比率或者创建AutoClipPlaneHandler 来解决。 AutoClipPlaneHandler 可以动态监视相机, 当相机距离地面很近时动态调整相机的近裁减面;9.在地形上放置模型对象时可以使用ObjectPlacer 类,通过该类可以直接通过经纬度坐标进行模型的放置操作;10.osgEarth 的目标是能够在 osg中开发基于地理信息的应用,能够方便地浏览地理模型数据,能够与开放标准的地理数据兼容;osgEarth 渲染地形的模式分为两种:实时在线模式 (直接使用原始数据渲染生成 )以及离线模式 (数据预处理成瓦片数据或地形数据库);11.osgEa

11、rth 使用于以下几种情况的应用:快速方便地运行地形地图数据;使用开放标准的地形地图数据,如 WMS 、TMS 、WCS 等;通过 Web 服务的方式集成本地存储的地形地图数据;系统要求以瘦客户端的方式运行;经常处理随着时间改变的数据;集成商业数据;12.在使用 osgEarth 自带的漫游器 EarthManipulator 时,如果给漫游器设置一个矩阵或者给漫游器设置一个 TetherNode 然后再解除,然后再移动相机位置,这时计算出的Center 会有一个跳跃,然后才正常,造成这个问题的原因是给漫游器设置了参考节点(通过SetNode 函数 )造成的,设置了参考节点后漫游器要根据参考节

12、点重新计算Center 和相机姿态等参数,在以上两种情况发生时,在重新计算Center 时出现了偏差,要想避免以上两种情况下造成的移动异常,可以不让相机结合参考节点重新计算Center ,即将 Pan 函数中的recalculateCenter 注释掉即可;13.Map 的类型分为 geocentric 和 projected 两种类型,即地心方式和投影方式,要建立圆形地球就用 geocentric 类型,用这 种类型如果要制定 profile ,只有geodetic(WGS84 投影 )和 mercator( 墨卡托投影 ) 两种模式;14.Earth 文件详解:<! 缓冲数据存放目标

13、文件,适用于sqlite3 ,指定数据库文件名 -><! type 属性可以是 geocentric 和 projected 两种模式, 分别对应地心坐标系和平面投影坐标系 , 默认是地心坐标模式。 Version是 osgEarth 的主版本号,必须有版本号 -><map name= ” myMap ” type=”t -”f ”<C ”-” geocentric ” / ” projected ” version= ”2 ” ><! 定义地图各图层的运行时显示属性-><options><! 定义数据缓冲机制,缓冲类型有三种,

14、tms 、 sqlite3 以及 tile cache ,默认是 tms ,如果将 cache_only 设为 true ,osgEarth将只加载缓冲的数据,不加载任何非缓冲的数据,默认是 false-><cache type= ” tms ” / ”sqlite3 ”/ ”tilecache ” cache_only= ” false ” ><! 缓冲数据存放目标目录,适用于tms 以及 tilecache 两种类型,直接指定缓冲目录 -><path>C:/myCache</path><path>C:/myCache.db&

15、lt;/path><! 缓冲目标文件类型 ,适用于 tms 以及 tilecache 两种类型,如果没有指定类型,将默认用 影像数据或高程数据的类型 -> <format>jpg</format><! tms 类型,仅适用于 tms 类型,注意如果该类型是 google ,索引就是反的 -> <tms_type>google</tms_type><! 缓冲文件最大值,单位是 MB ,不知道该属性是否只是适用于 sqlite3 ,有待确定 -> <max_size>300</max_siz

16、e> </cache><! 坐标投影属性,该属性相当于渲染数据的地理空间上下文,它决定了系统以哪种方式将,osgEarth 需要知道数世界坐标数据投影到屏幕像素。为了正确渲染影像数据以及高程数据 据源的 profile 以及渲染时的 profile 以进行必要的转换。 -> <profile name= ” myProfile ” >PROJ4 或 WKT ,下面是用 PROJ4<! 空间参考系统初始化字符串,该字符串的值可以参考定义的 WGS84 投影 profile , srs 以及作用范围的定义同样适用于平面投影模式-> <sr

17、s>prog=latlong +ellps=WGS84 +datum=WGS84</srs><xmin>-10.2</xmin><! 如果只想让该 profile 作用在某个区域,可以给其指定范围-><xmax>-10</xmax><ymin>20</ymin><ymax>30</ymax><!由于 WGS84 比较著名,所以可以用下面的简化方式代替上面的定义-><profile>global-geodetic</profile>&l

18、t;! 另外一个著名的球体投影就是墨卡托投影 (yahoo 、 google 、微软、 openstreetmap 都是用的这种投影方式 ),这种投影方式的优点是可以在任何纬度或者预留区域正确地显示文本信息,可以用下面的简化方式定义 -><profile>global-mercator</profile><! 也可以不用简化方式,简化方式使用默认的椭球体,也可以通过定义srs 自己定义椭球体-><srs>+proj=latlong +a=6800000 +b=6800000</srs><! 定义垂直空间参考系统,相当于垂直

19、高程大地基准-><vsrs>egm96-meters</vsrs></profile><terrain><! 定义地形引擎如何渲染影像数据和高程数据-><! 定义如何从上层高程数据采集当前层需要的高程数据,比如如果影像数据可以分割到 17层,而高程数据到 7 层,那么 8-17 层的高程数据就需要从第7层去采集,下面的属性就指定了以何种方式去采集相应的高程值,一共有四种采集方式,分别是nearest( 采集最近相邻点 )、bilinear( 双线插值 )、 average( 平均值插值 )、 triangulate(根据相

20、邻的四个点插值 )-><elevation_interpolation>nearest/bilinear/average/triangulate</elevation_interpolation><! 定义是否开启地形表面的光照,默认是开启-><lighting>true</lighting><! 定义如何加载地形数据 (数据加载策略 ) ,可以定义加载模式 mode ,分为 standard( 标准加载模式 )、 sequential( 顺序加载模式 )以及 preemptive( 优先级加载模式 ),默认是标准加载模式

21、, preemptive 加载模式不同于顺序加载模式,当需要加载最高级瓦片时需要从最低级开始逐层加载,而 preemptive 模式可以直接跳过中间级直接加载最高级,同时还可以设定不同数据的加载优先级,比如可以设定优先加载影像数据而后加载高程数据等,这样可以在视觉上得到 优化 处理。 此外还 可以 指定加 载数据 时每 个 CPU 创建的 线程 数量(loading_threads_per_core) 或者加载数据使用的总的线程数量 (loading_threads) ,以及编译地形数据即构建地形瓦片所使用的线程数量(compile_threads) ,注意,加载数据时每个->”3”CP

22、U 创建的线程数量和加载数据使用的总的线程数量不能同时指定,只能指定其中一种<loading_policy mode= ” preemptive ” loading_threads_per_core= compile_threads= ” 2” ></loading_policy><! 定义多个影像数据叠加时如何集成最终的影像数据,一共有四种方式,分别是auto( 自动 )、multitexture( 多重纹理 )、texture_array( 纹理数组 )、multipass( 多通道 ),默认是 auto方式,这种方式是系统自动选择一种纹理组合方法,它首先检测

23、硬件所支持的各种方法然后选择第一种。 Multitexture 方式会为每个影像层指定它自己的影响纹理单元然后通过GPU进行组合,允许的最大纹理层的数量要受 GPU 的限制, texture_array 是使用一个二维纹理数组通过 GPU 进行组合, multipass 方式是通过创建多个渲染通道进行纹理的组合,这种方式没有纹理层数量的限制,但会影像系统的性能,因为它要给每个纹理层创建一个渲染通道-><compositor>auto/multitexture/texture_array/multipass</compositor><! 定义地形瓦片分割的最大

24、层数 -><max_lod>10</max_lod><! 定义瓦片范围系数, 也就是瓦片 Lod 范围的最大值系数, 系统默认是根据瓦片的宽度与该系数相乘作为范围最大值, 该值默认是 4 ,通过该系数可以对不同的地形图层的lod 可见范围进行控制以提高效率,特别是对于带有文本的图层或者测绘标记图层,可以将该系数设小以大大提高系统的渲染性能 -><min_tile_range_factor>4.5</min_tile_range_factor><! 定义瓦片数据的采样率,通过设定不同的采样率以得到不同精细程度的地形瓦片,默认

25、是1.0 ,详情可参考 osgTerrain-><sample_ratio>1.2</sample_ratio><! 定义地形瓦片边缘率, osgTerrain 会在不同的瓦片之间绘制边缘以防止不同的瓦片之间 出现缝隙,该值默认是 0.02 ,如果该值太小,在不同瓦片之间就可能会出现缝隙,如果太大, 可能会造成不必要的渲染而影响系统的渲染性能,对于高度变化比较大的地形或者是做了高->程夸张的地形可以尽量将该值设的大一些,以免出现缝隙<skirt_ratio>0.05</skirt_ratio><! 定义高程夸张系数,默认是

26、 1.0 ,也就是正常渲染高程的真实高度 -> <vertical_scale>2.0</vertical_scale><! 定义边缘缓冲率,就是地形瓦片的延展率,比如将地形做镶嵌或者重投影时为了能够准0.2 ,放宽的倍数就是确覆盖到所有的瓦片数据需要将瓦片范围进行适当的放宽,如果设定1.02-> <edge_buffer_ratio>0.02</edge_buffer_ratio> </terrain><! 指定是否对整个 map 启用光照 -> <lighting>true</lig

27、hting> </options><! 指定影像数据,在同一个 map 中 image 的 name 必需是唯一的;在 image 下的子要素,有些是公共的,有些是针对特定的 driver 的。我们可以给影像数据指定 driver( 驱动器 ),不同的驱动器用于驱动不同的影像数据源; 可以指定 cacheid( 影像数据缓冲标识 ),一个影像缓冲标示对应特定的缓冲目录或缓冲数据库文件,如果不指定,系统会根据驱动器创建默认的缓冲标识;可以指定影像数据细分的最小层数min_level 以及最大层数 max_level ;可以指定可见范围 min_range 以及 max_r

28、ange,该值是影像数据块距离相机的距离 ( 单位是米 ),当影像图层数据块不在该范围内时图层将不显示,等同于lod 节点的可见范围;可以指定该影像数据的加载权重 loading_weight ,详情可见 loading_policy ,权重越大,加载的优先级越高;可以指定影像瓦片数据黑名单文件名blacklist_filename ,当系统请求影像数据瓦->profile 后将覆盖 map 的全局 profile ,默认情况下,影像驱动器会自动判断数据源应该使用的profile ,如果我们觉得驱动器无法自片时,如果包含该瓦片的影响文件不存在,系统就会把该请求的数据瓦片放入到一个黑名单

29、中,这样可以避免再次请求该无效数据,从而提高数据请求的效率。如果黑名单中没有任何 记录,该黑名单就处于被禁用状态,也不会影像系统性能。<image name= ” myImage ” ><! 指定该影像数据使用的 profile ,给该数据源指定动判断得到数据源的 profile 时就要手动指定 profile ; -> <profile>global_geodetic</profile><! 指定无数据页 nodata_image ,某些影像数据服务器,如果客户端请求的某些层上没有 请求的相应影像数据,就会显示无数据提示,通过设定该属性可

30、以让系统也显示无数据的状 态提示图片信息 -> <nodata_image>someURL</nodata_image><! 指定无数据信息图片的透明背景色-><transparent_color>0 0 255 200</transparent_color><! 指定该图层是否启用数据缓冲,默认是启用的-><cache_enabled>true</cache_enabled><! 指定缓冲数据文件格式,为该数据源指定缓冲格式后将覆盖该map 的全局缓冲格式,如果不指定,系统将默认使用源

31、数据的文件格式-><cache_format>png</cache_format><! 指定影像数据的不透明度,默认是1.0, 完全不透明,值越小越透明 -><opacity>0.5</opacity><! 指定是否启用该图层,默认是启用-><enabled>true</enabled><! 指定该影像数据被分割时单个瓦片的大小(像素的宽、高 )-><tile_size>40</tile_size><! 指定最大瓦片缓冲个数,指定该值是为了提高瓦片拼接

32、的效率,默认值是16-><l2_cache_size>20</l2_cache_size></image>/ 特定驱动器属性设置,驱动器分为影像 / 高程驱动器、模型驱动器、特征驱动器、缓冲驱动器以及地形引擎驱动器5大类;/ 影像 /高程驱动器<! agglite 驱动器 ,该驱动器将矢量数据栅格化为位图然后然后将其转换为地形瓦片纹理层 -><image name= ” myAggliteImage” driver= ” agglite ” ><! 定义矢量特征 (features) 数据,矢量数据的属性定义都要通过特征节

33、点 features 来定义,矢量特征数据也要指定自己的驱动器,它不直接创建矢量数据几何体,只是用来读取矢量数据,目前矢量数据驱动器主要是 ogr 及 GDAL ,支持的矢量数据文件格式就是驱动器支持的 所有文件格式 -> <features name= ” myWorld ” driver= ” ogr ” ><! 指定矢量数据源的位置 -> <url>./data/world.shp</url>-><! 指定读取数据源的某一层,只有数据源包含多个层时才可用<layer></layer>相当于后台缓冲,

34、<! 指定预处理几何体缓冲, 所有的矢量几何体都将作为面对象进行缓冲,通过预先在后台多处理一部分矢量数据,从而在显示区域发生变化时载入数据比较快,从而降低给视觉造成的数据显示延迟-> <buffer distance= ” 0.02 ” /><! 指定驱动器要驱动的文件类型-> <ogr_driver>ESRI Shapefile</ogr_driver></features><! 指定数据绘制的风格 ,如颜色、透明度、纹理贴图等等,这种风格的设置一般是用于矢量数据的绘制,osgEarth可以通过两种方式定义风格,一

35、种是CSS(重叠样式表),一种是SLD(通 过 xml 指定样式,还在开发中 ) ,当给数据指定风格时,可以各整个数据层指定通过的风格,也可以将数据分解成多个类class,然后给每个类指定不同的风格(数据源需要能够分解成不同的类 )-><! 指定线的风格,颜色、宽度、透明度-> <style type="text/css">element stroke: #FF0000;stroke-width: 2.0;stroke-opacity: 0.5;</style><! 指定面的风格 -> <style type=&q

36、uot;text/css">element fill: #FF0000;frence 变量进行类的fill-opacity: 0.5;</style><! 分解成不同的类分别设置不同的风格,下面是根据 划分并设置不同的风格 -> <features name="world" driver="ogr"><url>data/world.shp</url> <ogr_driver>ESRI Shapefile</ogr_driver></features&

37、gt;<class name="french-speaking"><query><expr> french="true" </expr></query> <style type="text/css">world fill: #FFFF00;fill-opacity: 0.5;</class><class name="non-french-speaking"><query><expr> french

38、="false" </expr></query> <style type="text/css">world fill: #FF0000;fill-opacity: 0.5;</style></class><! 指定绘制的几何体类型,点、线、面-> <geometry_type>line</geometry_type>/ /ArcGIS 驱动器 ,是从 ESRI 的服务器读取影像数据/ 复合驱动器 ,可以将多个影像数据源 (可以使用各自不同的驱动器 )复合成一个

39、逻辑图层,其实是一个伪装的驱动器,不是真实的驱动器<image name="grouped layer" driver="composite"><image name="component 1" driver="tms"></image><image name="component 2" driver="wms"></image></image>(不必/ GDAL 驱动器 ,使用该驱动器,指定源数据 ur

40、l 时可以指定文件也可以指定某个目录 将所有的文件都打包成一个文件 ),如果指定了目录,还可以指定要加载该目录下某些类型的文件 (通过指定扩展名 ),此外,如果指定的是目录,系统递归遍历该目录下的所有文件将要加载的文件生成一个逻辑图层,需要注意的是,该目录下所有的数据必须是统一的坐标系统 以及同样的波段和波段插值;基于性能的考虑,最好对源数据预先进行分块分级处理以及坐 标重投影预处理,这样可以大大提高系统在运行时的性能。如果系统读取到的源数据与运行 时要求的投影方式不匹配,系统就会在运行时对数据进行重投影,这样就会降低系统性能, 如果想在这种情况下提高系统性能,可以让系统缓存重投影后的数据:&

41、lt;cache reproject_before_caching="true"><path>/files/my_cache_folder</path></cache><image name="boston_inset" driver="gdal"><url>./data/boston-inset.tif</url> <tile_size>256</tile_size></image>/ 通过指定目录的方式加载高程数据示例

42、:<heightfield name="terrain" driver = "gdal"><!-To load the files in a directory, just point the URL to a directory instead of afile-><url>.dataterrain</url><!-Tell the GDAL driver to just look for tifs. Other files types will beignored.-><extensi

43、ons>tif</extensions><! 对于高程数据,最好将 tile_size 设置为 32或者 64 ,默认情况下 tile_size 的值是<tile_size>32</tile_size></heightfield><! 指定数据分层的最大层数,如果不指定,系统将自动计算最大层数,这种方式特别适用 于缓存自动计算的瓦片数据时 -> <max_data_level>10</max_data_level>/osg 驱动器,直接通过 osg 的文件读写插件读取相应类型的影响数据或高程数据/t

44、ilecache 驱动器,读取 tilecache 磁盘缓存数据,通过 tilecache 工具可以从 WMS 服务 器创建或缓存地图数据到磁盘,然后通过该驱动器进行离线读取。<image name="world" driver="tilecache"><url>F:/data/tilecache/mapdata</url><layer>world</layer><format>jpeg</format></image>/tileservice 驱动器,从 N

45、ASA 服务器读取数据/tms 驱动器,通过 tms 服务的方式读取数据/wms 驱动器,通过 wms 服务的方式读取数据/VPB 驱动器,从 vpb 生成的地形数据库读取相应的影像和高程数据,注意,osgEarth 只能读取适用 VPB 使用 terrain 选项创建的地形数据库。这样一来我们就可以同时使用vpb的地形数据库以及原始的影像、高程数据,可以在不改变现有vpb 地形数据的基础上在已有的 vpb 地形上叠加另外的影像数据。<! 指定在用 vpb 生成地形数据库时 (-splits 选项 )使用的主分割层 -><primary_split_level>5<

46、;/primary_split_level><! 指定在用 vpb 生成地形数据库时使用的次分割层 -><secondary_split_level>11</secondary_split_level><! 指定 vpb 地形数据使用的 profile-><profile>global-geodetic</profile><! 指定 vpb 地形数据库使用的目录结构,分为 nested, task, 以及 flat 三种类型 . 默认是flat 类型 -><! 指定使用 vpb 中影像数据层 lay

47、er ,默认是第 0层-><layer>0</layer>/ 模型驱动器<! 定义特征数据 ->/ feature_geom 驱动器,该驱动器就是将矢量数据创建成几何对象进行渲染<features></features> <! 定义风格 -> <style></style> <! 定义分类 (为不同分类指定不同的风格 )-> <class></class><! 定义高度偏移,生成几何体前将数据相对海平面偏移特定高度主要是为了解决z-fighting 的

48、问题 -> <height_offset>10000</height_offset><! 指定生成的最大三角形的大小 (三角形边的最大长度,单位是度,仅用于地心坐标地形上),通过控制三角形大小能够很好的将非凸多边形构成的三角形映射成椭球体,默认值是5.0->/feature_overlay 驱动器,该驱动器采用 osgSim:OverlayNode 将矢量数据作为投影纹理 覆盖到地形上。这种覆盖节点的方式对于平面投影坐标模式是很适合的,但对于球体地心坐 标来说有一定限制, 通过覆盖节点的方式将矢量数据投影成纹理只能覆盖不到一半地球大小, 而且在背面会显

49、示穿透效果。<features></features> <! 定义风格 -> <style></style> <! 定义分类 (为不同分类指定不同的风格 )-><class></class><! 指定纹理单元,默认是 auto-> <texture_unit>1</texture_unit><! 指定覆盖纹理的大小,默认是 1024-> <texture_size>2048</texture_size><! 指定覆盖节点的

50、基准高度,默认是0-> <base_height>100</base_height>/feature_stencil 驱动器,该驱动器采用模板缓冲技术将矢量数据覆盖到地形上<features></features> <! 定义风格 -> <style></style> <! 定义分类 (为不同分类指定不同的风格 )-> <class></class><! 指定挤压距离,即在模板体的各个方向对其进行挤压,这是为了防止对于那些覆盖范围比较大的几何体容易造成 z-fighting 问题而做的处理,如果存在单个特征数据几何体覆盖的区域范围特别大,就要增加该值,默认值是300000-><extrusion_distance>400000</extrusion_distance><! 定义高程数据,高程数据的定义属性以及子要素基本与影像数据相同,特别需要注意的 是,在定义瓦片大小时,默认值是 256 ,这个值对于影像数据是合适的,但对于高程数据来说太大,应该将其设为比较小的值,比如32 ,否则会降低系统性能 -> <elevation name="srt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论