www.tlc189.com

主而低落给视觉形成的数据显示延迟–

作者:admin 来源: 本站原创 时间: 2019-11-03 浏览次数:

  6.        若是间接利用原始的影像、高程以及矢量数据,能够用AL驱动器,正在这种环境下需要留意几个机能的问题。第一,将数据源事后进行坐标变换,变换为方针地形坐标,不然osgEarth会对源数据进行坐标投影变换,这将降低数据的加载及处置速度。若是事后曾经将数据源进行准确的坐标变换,osgEarth就能够省略这个步调,从而提高其及时处置速度;第二,事后对影像数据进行瓦片处置,好比tiff格局的影像数据,它是逐行扫描存储的,而osgEarth是每次读取一个瓦片数据,若是事后对影像数据进行瓦片处置,正在动态过程中osgEarth就不需要每次读取整个大块影像数据然后提取其需要的瓦片数据,而能够间接读取响应的瓦片数据即可,如许就大大提高了瓦片数据的读取速度。能够通过gdal_translate东西对影像数据进行瓦片处置;第三,建立数据集能够使osgEarth读取数据愈加高效,能够用gdaladdo东西建立数据集;总之,要想提高osgEarth的处置效率,就要事后建立高效的数据瓦片布局,除了用gdal、vpb等东西外,也能够通过osgEarth的数据缓冲机制建立预处置的瓦片数据集。好比我们能够建立一个如下的earth文件将数据缓冲到指定的目次:

  12.        正在利用osgEarth自带的漫逛器EarthManipulator时,若是给漫逛器设置一个矩阵或者给漫逛器设置一个TetherNode然后再解除,然后再挪动相机,这时计较出的Center会有一个腾跃,然后才一般,形成这个问题的缘由是给漫逛器设置了参考节点(通过SetNode函数)形成的,设置了参考节点后漫逛器要按照参考节点从头计较Center和相机姿势等参数,正在以上两种环境发生时,正在从头计较Center时呈现了误差,要想避免以上两种环境下形成的挪动非常,能够不让相机连系参考节点从头计较Center,即将Pan函数中的recalculateCenter正文掉即可;

  11.        osgEarth利用于以下几种环境的使用:快速便利地运转地形地图数据;利用尺度的地形地图数据,如WMS、TMS、WCS等;通过Web办事的体例集成当地存储的地形地图数据;系统要求以瘦客户端的体例运转;经常处置跟着时间改变的数据;集成贸易数据;

  !—缓冲方针文件类型,合用于tms以及tilecache两品种型,若是没有指定类型,将默认用影像数据或高程数据的类型–

  !—指定该影像数据利用的profile,给该数据源指定profile后将笼盖map的全局profile,默认环境下,影像驱动器会从动判断数据源该当利用的profile,若是我们感觉驱动器无法从动判断获得数据源的profile时就要手动指定profile;–

  !—指定生成的最大三角形的大小(三角形边的最大长度,单元是度,仅用于地心坐标地形上),通过节制三角形大小可以或许很好的将非凸多边形形成的三角形映照成椭,默认值是5.0–

  10.        osgEarth的方针是可以或许正在osg中开辟基于地舆消息的使用,可以或许便利地浏览地舆模子数据,可以或许取尺度的地舆数据兼容;osgEarth衬着地形的模式分为两种:及时正在线模式(间接利用原始数据衬着生成)以及离线模式(数据预处置成瓦片数据或地形数据库);

  !—指定网格划分,模子数据源答应我们将非地形数据图层添加到地形地形图上,某些驱动器能够将矢量数据或者特征数据转换为几何体或者笼盖层,对于海量特征数据或者笼盖区域范畴出格大的数据若是不合错误其进行优化处置,将严沉影响系统机能,此中体例之一就是对其进行网格划分,对于分歧的驱动器,网格划分实现的体例也纷歧样,自带的模子特征数据驱动器,好比feature_stencil和feature_geom驱动器就能够将几何体数据划分为一个个的小网格–

  //VPB驱动器,从vpb生成的地形数据库读取响应的影像和高程数据,留意,osgEarth只能读取合用VPB利用—terrain选项建立的地形数据库。如许一来我们就能够同时利用vpb的地形数据库以及原始的影像、高程数据,能够正在不改变现有vpb地形数据的根本上正在已有的vpb地形上叠加别的的影像数据。

  !—定义高度偏移,生成几何体前将数据相对海平面偏移特定高度次要是为领会决z-fighting的问题–

  !—缓冲文件最大值,单元是MB,不晓得该属性能否只是合用于sqlite3,有待确定–

  !—定义若何从上层高程数据采集当前层需要的高程数据,好比若是影像数据能够朋分到17层,而高程数据到7层,那么8-17层的高程数据就需要从第7层去采集,下面的属性就指定了以何种体例去采集响应的高程值,一共有四种采集体例,别离是nearest(采集比来相邻点)、bilinear(双线插值)、average(平均值插值)、triangulate(按照相邻的四个点插值)–

  !—别的一个出名的投影就是墨卡托投影(yahoo、google、微软、openstreetmap都是用的这种投影体例),这种投影体例的长处是能够正在任何纬度或者预留区域准确地显示文本消息,能够用下面的简化体例定义–

  8.        若是我们的地形用的是地心坐标系,能够会碰着当相机距离地面很是近的时候地形被裁减掉的问题,要处理这个问题我们能够通过设置相机的远近裁剪比率或者建立AutoClipPlaneHandler来处理。AutoClipPlaneHandler能够动态相机,当相机距离地面很近时动态调整相机的近裁减面;

  4.        通过earth文件,最根基的也是最次要的功能是我们能够指定生成地形的坐标属性(地舆坐标或投影坐标)影像数据、高程数据、矢量数据、模子数据、以及缓冲,通过这些根基要素就能够等闲生成我们想要的地形;

  !—定义模子数据,属性包罗名称、驱动器driver、最小可视范畴值min_range(条理节点LOD范畴)、最大可视范畴值max_range、能否以笼盖体例笼盖到地形上overlay,对于指定的可视范畴值,若是指定了gridding,该范畴将感化于被朋分的一个个的网格而不是模子几何体本身–

  !—定义瓦片数据的采样率,通过设定分歧的采样率以获得分歧精细程度的地形瓦片,默认是1.0,详情可参考osgTerrain–

  !—type 属性能够是geocentric和projected两种模式,别离对应地心坐标系和平面投影坐标系,默认是地心坐标模式。Version是osgEarth的从版本号,必需有版本号–

  !—指定代办署理办事器地址和端口,若是想让osgEarth通过代办署理办事器拜候某数据办事器,能够设定响应的代办署理办事器地址以及端口–

  //feature_overlay驱动器,该驱动器采用osgSim::OverlayNode将矢量数据做为投影纹理笼盖到地形上。这种笼盖节点的体例对于平面投影坐标模式是很适合的,但对于地心坐标来说有必然,通过笼盖节点的体例将矢量数据投影成纹理只能笼盖不到一半地球大小,并且正在后背会显示穿透结果。

  !—指定一个单位格的最大值cell_size,包罗宽和高;指定裁切手艺,即若何决定某些数据属于哪个单位格,共有两种体例:crop切割体例以及centroid形心体例,crop切割体例是将几何体按照格网进行切割,分歧的部门别离属于分歧的网格即可,centroid形心体例是判断几何体的形心,形心落正在哪个网格,88bf官方网站就认为该几何体属于哪个网格–

  !—定形瓦片边缘率,osgTerrain会正在分歧的瓦片之间绘制边缘以防止分歧的瓦片之间呈现裂缝,该值默认是0.02,若是该值太小,正在分歧瓦片之间就可能会呈现裂缝,若是太大,可能会形成不需要的衬着而影响系统的衬着机能,对于高度变化比力大的地形或者是做了高程夸张的地形能够尽量将该值设的大一些,免得呈现裂缝–

  !—tms类型,仅合用于tms类型,留意若是该类型是google,索引就是反的–

  !—指定无数据页nodata_image,某些影像数据办事器,若是客户端请求的某些层上没有请求的响应影像数据,就会显示无数据提醒,通过设定该属性能够让系统也显示无数据的形态提醒图片消息–

  !—指定预处置几何体缓冲,所有的矢量几何体都将做为面临象进行缓冲,相当于后台缓冲,通过事后正在后台多处置一部门矢量数据,从而正在显示区域发生变化时载入数据比力快,从而降低给视觉形成的数据显示延迟–

  !—也能够不消简化体例,简化体例利用默认的椭,也能够通过定义srs本人定义椭–

  //复合驱动器,能够将多个影像数据源(能够利用各自分歧的驱动器)复合成一个逻辑图层,其实是一个伪拆的驱动器,不是实正在的驱动器

  //AL驱动器,利用该驱动器,指定源数据url时能够指定文件也能够指定某个目次(不必将所有的文件都打包成一个文件),若是指定了目次,还能够指定要加载该目次下某些类型的文件(通过指定扩展名),此外,若是指定的是目次,系统递归遍历该目次下的所有文件将要加载的文件生成一个逻辑图层,需要留意的是,该目次下所有的数据必需是同一的坐标系统以及同样的波段和波段插值;基于机能的考虑,最好对源数据事后进行分块分级处置以及坐标沉投影预处置,如许能够大大提高系统正在运转时的机能。若是系统读取到的源数据取运转时要求的投影体例不婚配,系统就会正在运转时对数据进行沉投影,如许就会降低系统机能,若是想正在这种环境下提高系统机能,能够让系统缓存沉投影后的数据:         /files/my_cache_foldersrc=

  !—指定影像数据,正在统一个map中image的name必需是独一的;正在image下的子要素,有些是公共的,有些是针对特定的driver的。我们能够给影像数据指定driver(驱动器),分歧的驱动器用于驱动分歧的影像数据源;能够指定cacheid(影像数据缓冲标识),一个影像缓冲标示对应特定的缓冲目次或缓冲数据库文件,若是不指定,系统会按照驱动器建立默认的缓冲标识;能够指定影像数据细分的最小层数min_level以及最大层数max_level;能够指定可见范畴min_range以及max_range,该值是影像数据块距离相机的距离(单元是米),当影像图层数据块不正在该范畴内时图层将不显示,等同于lod节点的可见范畴;能够指定该影像数据的加载权沉loading_weight,详情可见loading_policy,权沉越大,加载的优先级越高;能够指定影像瓦片数据文件名blacklist_filename,当系统请求影像数据瓦片时,若是包含该瓦片的影响文件不存正在,系统就会把该请求的数据瓦片放入到一个中,如许能够避免再次请求该无效数据,从而提高数据请求的效率。若是中没有任何记实,该就处于被禁用形态,也不会影像系统机能。–

  !—指定命据分层的最大层数,若是不指定,系统将从动计较最大层数,这种体例出格合用于缓存从动计较的瓦片数据时–

  !—缓冲数据存放方针目次,合用于tms以及tilecache 两品种型,间接指定缓冲目次–

  !—指定缓冲数据文件格局,为该数据源指定缓冲格局后将笼盖该map的全局缓冲格局,若是不指定,系统将默认利用源数据的文件格局–

  !—指定命据绘制的气概,如颜色、通明度、纹理贴图等等,这种气概的设置一般是用于矢量数据的绘制,osgEarth能够通过两种体例定义气概,一种是CSS(堆叠样式表),一种是SLD(通过xml指定样式,还正在开辟中),当给数据指定气概时,能够各整个数据层指定通过的气概,也能够将数据分化成多个类class,然后给每个类指定分歧的气概(数据源需要可以或许分化成分歧的类)–

  3.        能够通过profile属性指定命据的投影体例或者数据分页体例以及地舆空间延展;osgEarth通过profile建立数据四叉树,每个四叉树节点数据瓦片通过TileKey类来标示;一个地形数据可否一般工做要看建立它的驱动器能否可以或许建立和对应profile兼容的数据瓦片;好比,若是要生成地球数据,就需要指定global-geodetic 或者global-mercator profile,响应的数据源要可以或许正在这种profile成响应的地形数据;

  //tilecache驱动器,读取tilecache磁盘缓存数据,通过tilecache东西能够从WMS办事器建立或缓存地图数据到磁盘,然后通过该驱动器进行离线读取。

  !—定义高程数据,高程数据的定义属性以及子要素根基取影像数据不异,出格需要留意的是,正在定义瓦片大小时,默认值是256,这个值对于影像数据是合适的,但对于高程数据来说太大,该当将其设为比力小的值,好比32,不然会降低系统机能–

  !—指定地形数据的边缘尺度化,指定该属性是为了让分歧高程的瓦片数据之间的高程可以或许精确的融合,默认是启用的–

  !—定义多个影像数据叠加时若何集成最终的影像数据,一共有四种体例,别离是auto(从动)、multitexture(多沉纹理)、texture_array(纹理数组)、multipass(多通道),默认是auto体例,这种体例是系统从动选择一种纹理组合方式,它起首检测硬件所支撑的各类方式然后选择第一种。Multitexture体例会为每个影像层指定它本人的影响纹理单位然后通过GPU进行组合,答应的最大纹理层的数量要受GPU的,texture_array是利用一个二维纹理数组通过GPU进行组合,multipass体例是通过建立多个衬着通道进行纹理的组合,这种体例没有纹理层数量的,但会影像系统的机能,由于它要给每个纹理层建立一个衬着通道–

  1.        通过earth文件建立图层时,能够指定多个影像数据源和多个高程数据源,数据源的挨次决定衬着挨次,正在earth文件中处于最前的正在衬着时处于最底层衬着;所以若是有凹凸精度分歧的影响数据或者高程数据,正在建立earth文件时要将粗精度的数据放正在上方xml节点,高精度的放正在其下面的节点;

  这是小我正在进修osgEarth时按照体味或从此外处所看到的做的一个简单拾掇,有些东东就是文档翻译过来的,都是按照本人的需要感受需要记实下来什么工具就随便记实下来了,也没有个层次,都是用到哪记到哪,别见责。对小我正在初期利用osgEarth时有良多帮帮,所以特发上来,但愿对大师也有帮帮

  !—定义瓦片范畴系数,也就是瓦片Lod范畴的最大值系数,系统默认是按照瓦片的宽度取该系数相乘做为范畴最大值,该值默认是4,通过该系数能够对分歧的地形图层的lod可见范畴进行节制以提高效率,出格是对于带有文本的图层或者测绘标识表记标帜图层,能够将该系数设小以大大提高系统的衬着机能–

  !—定义矢量特征(features)数据,矢量数据的属性定义都要通过特征节点features来定义,矢量特征数据也要指定本人的驱动器,它不间接建立矢量数据几何体,只是用来读取矢量数据,目前矢量数据驱动器次要是ogr及AL,支撑的矢量数据文件格局就是驱动器支撑的所有文件格局

  //特定驱动器属性设置,驱动器分为影像/高程驱动器、模子驱动器、特征驱动器、缓冲驱动器以及地形引擎驱动器5大类;

  !—定义边缘缓冲率,就是地形瓦片的延展率,好比将地形做镶嵌或者沉投影时为了可以或许精确笼盖到所有的瓦片数据需要将瓦片范畴进行恰当的放宽,若是设定0.2,放宽的倍数就是1.02–

  9.        正在地形上放置模子对象时能够利用ObjectPlacer类,通过该类能够间接通过经纬度坐标进行模子的放置操做;

  !—定义若何加载地形数据(数据加载策略),能够定义加载模式mode,分为standard(尺度加载模式)、sequential(挨次加载模式)以及preemptive(优先级加载模式),默认是尺度加载模式,preemptive加载模式分歧于挨次加载模式,当需要加载第一流瓦片时需要从最初级起头逐层加载,而preemptive模式能够间接跳过两头级间接加载第一流,同时还能够设定分歧数据的加载优先级,好比能够设定优先加载影像数据尔后加载高程数据等,如许能够正在视觉上获得优化处置。此外还能够指定加载数据时每个CPU建立的线程数量(loading_threads_per_core)或者加载数据利用的总的线程数量(loading_threads),以及编译地形数据即建立地形瓦片所利用的线程数量(compile_threads),留意,加载数据时每个CPU建立的线程数量和加载数据利用的总的线程数量不克不及同时指定,只能指定此中一种–

  2.        osgEarth自带多种驱动器,分歧的驱动器驱动分歧的数据源,本人也能够扩展驱动器读取响应的数据;

  !—指定挤压距离,即正在模板体的各个标的目的对其进行挤压,这是为了防止对于那些笼盖范畴比力大的几何体容易形成z-fighting问题而做的处置,若是存正在单个特征数据几何体笼盖的区域范畴出格大,就要添加该值,默认值是300000–

  !—空间参考系统初始化字符串,该字符串的值能够参考PROJ4或WKT,下面是用PROJ4定义的WGS84投影 profile,srs以及感化范畴的定义同样合用于平面投影模式–

  !—agglite驱动器,该驱动器将矢量数据栅格化为位图然后然后将其转换为地形瓦片纹理层–

  这种缓冲体例只能缓冲正在施行该文件时浏览过的地形数据,而不克不及从动缓冲所有的数据,要想从动缓冲所有的数据,就需要用到osgEarth自带的一个东西,osgearth_seed,通过osgearth_seed max-level 7 bluemarble.earth将数据全数缓冲到指定,通过这种体例缓冲后,我们就具有了一个完整的TMS数据源,我们能够间接通过文件目次的体例拜候该数据源,也能够将该数据源拷贝到我们本人的当地web办事目次下。详情见。除此之外还能够用MapTiler以及TileCache东西建立瓦片数据源,用它建立的瓦片数据源也能够间接正在osgEarth下利用;

  7.        能够通过两种体例将osgEarth集成到我们本人的osg使用法式中,第一种就是间接通过earth文件的体例,间接将earth文件读入做为一个osg节点插手场景即可,别的一种体例就是通过osgEarth的API。通过API的体例大体需要以下几个步调:建立map对象——建立影像数据层——建立高程数据层——将影像数据层以及高程数据层插手到map对象——按照前面建立的map对象建立mapNode节点——将mapNode节点插手参加景;示例见。无论是通过earth文件建立的地形仍是通过API建立的地形,我们都能够正在运转时对其进行点窜,若是是用earth文件建立的地形,需要先找到该earth文件对应的mapNode,通过以上两种体例建立的mapNode,我们能够对地形进行点窜操做,如添加新的影像、高程数据,移除特定的影像、高程数据,从头制定影像、高程数据的挨次等;

  !—坐标投影属性,该属性相当于衬着数据的地舆空间上下文,它决定了系统以哪种体例将世界坐标数据投影到屏幕像素。为了准确衬着影像数据以及高程数据,osgEarth需要晓得数据源的profile以及衬着时的profile以进行需要的转换。–