osgEarth的Rex引擎原理分析(一二八)rex的引擎和图层投影及其关系

2023-11-10

目标:(一二七)中问题214

主要存在三个地方:

一是map的type属性,可取两个值geocentric、projected,前者用于三维显示,后者用于二维显示;

二是map的options属性的srs,可以取spherical-mercator  world-mercator wgs84 plate-carre,用于设置显示的投影方式,可以根据显示需要随意设置;

三是影像和高层图层属性的srs,可以取spherical-mercator  world-mercator wgs84 plate-carre,用于设置图层图源自身的投影方式,不可以随意设置,一定要与图源保持一致;

需要注意:

1、墨卡托投影,原点在经纬度0点,呈正方形,边长20037508.342789247632,单位m
2、wgs84,原点在经纬度0点,呈矩形,边长180*360,单位度
3、rex引擎投影若和图层投影不一致需要做转换(ImageLayer::assembleImage,最终通过gdal库实现GDALReprojectImage)
4、一般不要指定范围,osgearth会自动计算最大范围,如果指定需要按照1、2的单位和范围要求进行指定,否则容易出错。

5、通过3可知,rex创建的每个瓦片的几何图形都是均匀划分的,纹理坐标也是,只是会对图片进行投影变换再做贴图处理。

以高德地图为例:

<map name="MBTiles" type="geocentric" version="2"> 
		<options> 
		  <profile>
          <srs>world-mercator</srs>
          <xmin>-20037508.342789247632</xmin>
          <ymin>-20037508.342789247632</ymin>
          <xmax>20037508.342789247632</xmax>
          <ymax>20037508.342789247632</ymax>
          <num_tiles_wide_at_lod_0>1</num_tiles_wide_at_lod_0>
		  <num_tiles_high_at_lod_0>1</num_tiles_high_at_lod_0>  
        </profile> 
      <terrain driver="rex" color="#ff00ffff">
      	<vertical_scale>1.0</vertical_scale>
      </terrain>
    </options>
    <image name="gaodeMap" driver="xyz">
        <url>https://webst03.is.autonavi.com/appmaptile?style=6&amp;x={x}&amp;y={y}&amp;z={z}</url>
        <profile>
          <srs>world-mercator</srs>
        	<num_tiles_wide_at_lod_0>1</num_tiles_wide_at_lod_0>
			<num_tiles_high_at_lod_0>1</num_tiles_high_at_lod_0>  
        </profile>             
	  </image>
</map>

 将type改为projected、options的srs改为wgs84、影像层的srs改为world-mercator的效果为:

  将type改为projected、options的srs改为world-mercator、影像层的srs改为world-mercator的效果为:

  将type改为projected、options的srs改为world-mercator、影像层的srs改为wgs84的效果为(这种效果有问题,主要是影像层的srs与图源不一致造成的):

待继续分析列表:

9、earth文件中都有哪些options((九)中问题)

10、如何根据earth文件options创建不同的地理信息引擎节点((九)中问题)

11、rex地理信息引擎的四梁八柱((九)中问题)

12、osgEarth::TerrainEngineNode中setMap方法作用((十二)中问题)

13、RexTerrainEngineNode中_mapFrame的作用((十二)中问题)

14、地形变形(Terrain morphing)((十二)中问题)

15、地球瓦片过期门限的含义((十二)中问题)

16、高分辨率优先的含义((十二)中问题)

17、OSGEARTH_DEBUG_NORMALS环境变量的作用((十二)中问题)

18、活跃瓦片寄存器的作用((十二)中问题)

19、资源释放器子节点的作用((十二)中问题)

20、共享几何图形池子节点的作用((十二)中问题)

21、分页瓦片加载器子节点的作用((十二)中问题)

22、分页瓦片卸载器子节点的作用((十二)中问题)

23、栅格化器子节点的作用((十二)中问题)

24、地形子节点的作用((十二)中问题)

25、绑定渲染器的作用((十二)中问题)

26、地图回调函数的作用((十二)中问题)

27、如何将地图图层添加到rex引擎中((十二)中问题)

28、选择信息的作用((十二)中问题)

29、瓦片包围盒修改回调函数的作用((十二)中问题)

30、刷新rex引擎((十二)中问题)

31、刷新边界作用((十二)中问题)

32、osgEarth::Metrics类的意义((十四)中问题)

33、请求合并队列_mergeQueue((十四)中问题)

34、分页瓦片加载器在更新遍历时对请求处理过程((十四)中问题)

35、分页瓦片加载器在更新遍历时对已处理请求裁剪过程((十四)中问题)

36、已处理的请求队列_requests((十四)中问题)

37、DatabasePager中的_fileRequestQueue和_httpRequestQueue((十六)中问题)

38、瓦片请求的生成到处理过程详解((十六)中问题)

39、瓦片节点TileNode的创建过程((十七)中问题)

40、request请求加载瓦片优先级的含义((十七)中问题)

41、request的_internalHandle的作用((十七)中问题)

42、DatabaseRequest中_objectCache含义((十七)中问题)

42、osgEarth的多线程分析((十七)中问题)

43、osgEarth的缓存及其结构((十七)中问题)

44、DatabaseThread从缓存加载数据过程((十七)中问题)

45、DatabaseThread从文件加载数据过程((十七)中问题)

46、决定创建TileNode的时机条件((十七)中问题)

47、TerrainEngineNode的createTileModel过程详解((十七)中问题)

48、DatabaseThread中CompileSet的含义((十七)中问题)

48、PagerLoader的traverse过程详解((十七)中问题)

49、DatabaseThread的run过程详解((十七)中问题)

50、LoadTileData的invoke过程详解((十七)中问题)

51、TileNode的cull过程详解((十七)中问题)

52、遮罩生成器osgEarth::Drivers::RexTerrainEngine::MaskGenerator((十八)中问题)

53、RexTerrainEngineNode::traverse过程详解((十八)中问题)

54、TileNode节点下的场景树分析((十八)中问题)

55、地形瓦片大小尺寸和LOD的关系((十八)中问题)

56、TileNode的_tileKeyValue作用((十八)中问题)

57、TileNode的_morphConstants作用((十八)中问题)

58、TileNode的_stitchNormalMap作用((十八)中问题)

59、TileNode的_renderModel作用((十八)中问题)

60、初始化高程栅格过程详解((十八)中问题)

61、LoadTileData中的CreateTileModelFilter作用((十八)中问题)

62、TileNode节点何时会从场景树中移除((十八)中问题)

63、osgEarth::Map的Profile创建过程((二十)中问题)

64、osgEarth::TerrainTileModelFactory添加颜色层和影像层的区别((二十一)中问题)

65、osgEarth::PatchLayer修补层的作用((二十一)中问题)

66、osgEarth::TerrainLayer中的_memCache(osgEarth::MemCache)详解((二十一)中问题)

67、osgEarth::Layer::RenderType图层渲染类型的作用((二十一)中问题)

68、osgEarth::TerrainLayer中TileSource的作用((二十一)中问题)

69、earth文件没有设置高程图层会不会有默认高程层(高程均为0)((二十一)中问题)

70、TerrainTileModelFactory::addColorLayers过程详解((二十一)中问题)

71、TerrainTileModelFactory::addElevation过程详解((二十一)中问题)

72、osgearth中可能用到的几个全局实例对象(osgDB::Registry osgEarth::Registry osg::Timer osg::DisplaySetting)((二十三)中问题)

73、osgEarth::Map::addLayer过程详解((二十三)中问题)

74、TileNode::setDirty过程详解((二十三)中问题)

75、请求四个状态的含义(IDLE RUNNING MERGING FINISHED)((二十三)中问题)

76、什么时候删除TileNode节点,不会一直增加吧((二十三)中问题)

77、寄存器中请求状态活动记录的含义Registry::instance()->endActivity( req->getName() )((二十三)中问题)

78、瓦片TileNode的生命周期流程详解((二十三)中问题)

79、rex引擎如何将瓦片构造成地球形状((二十五)中问题)

80、高程、影像文件格式详解((二十五)中问题)

81、TileNode的merge过程详解((二十六)中问题)

82、osgEarth支持的空间参考坐标系详解(osgEarth::SpatialReference、osgEarth::CubeSpatialReference、osgEarth::TangentPlaneSpatialReference)((二十九)中问题)

83、osgEarth地球椭球体ellipsoid 大地基准面datum 地图投影Projection详解((二十九)中问题)

84、空间参考坐标系和坐标系统类型的关系(geocentric projected)((二十九)中问题)

85、proj4是什么((二十九)中问题)

86、为什么要删除设置过的垂直水准面((二十九)中问题)

87、osgEarth如何对投影坐标系和大地坐标系进行显示处理的((二十九)中问题)

88、TileNode的节点构成,一个surface、tilenode((三十)中问题)

89、MapFram和MapInfo的关系((三十)中问题)

90、ModifyBoundingBoxCallback的使用时机和场合((三十)中问题)

91、MapFrame为什么要单独存放高程层_elevationLayers,而不是放在图层_layers中((三十)中问题)

92、MapFrame和Map中高程池的作用osg::ref_ptr<ElevationPool> _elevationPool((三十)中问题)

93、osgEarth::Drivers::RexTerrainEngine::TileDrawable分析((三十)中问题)

94、请求读取地理信息失败会如何处理((三十二)中问题)

95、RexTerrainEngineNode的遍历过程详解((三十三)中问题)

96、osgEarth::Drivers::RexTerrainEngine::TerrainCuller的apply过程详解((三十三)中问题)

97、RexTerrainEngineNode的updateState过程详解 设置了很多着色器变量((三十三)中问题)

98、什么时候分配opengl资源((三十三)中问题)

99、TileNode释放opengl资源过程releaseGLObjects详解((三十三)中问题)

100、最近一次遍历的帧号和时间是怎么设置呢(在渲染遍历里),怎么就不会再渲染遍历该瓦片节点了((三十三)中问题)

101、osg::State和osg::StateSet的关系((三十四)中问题)

102、osgEarth::SpatialReference和osgEarth::Profile的关系((三十六)中问题)

103、osgEarth的Geographic、Geodetic、Geocentric和Project的关系((三十六)中问题)

104、TileNode绘制过程详解((三十七)中问题)

105、如何控制父子TileNode节点的显隐((三十七)中问题)

106、GeometryPool的createGeometry过程详解((三十七)中问题)

107、TileNode如何从地图中提取与其分辨率相适应的图像数据((三十七)中问题)

108、如何定制椭球体并进行椭球体间坐标转换((四十五)中问题)

109、Horizon Cull是什么意思((四十五)中问题)

110、osgEarth::Drivers::RexTerrainEngine::DrawState的作用((四十五)中问题)

111、osgEarth的线程分析((四十五)中问题)

112、从osgEarth到osg到Opengl((四十五)中问题)

113、osg::Program与osgEarth::VirtualProgram的关系((四十五)中问题)

114、rex引擎shader文件中的#pragma vp_entryPoint vp_location等含义((四十五)中问题)

115、rex引擎的着色器如何区分顶点和片段((四十五)中问题)

116、osg::Program是如何对着色器及其变量进行管理的((四十五)中问题)

117、osg的窗口是如何与opengl集成的((四十五)中问题)

118、osg是如何实现opengl的初始化的((四十五)中问题)

119、CGCS2000余WGS84坐标系的比较((四十六)中问题)

120、着色器代码文件到着色器程序的过程((五十一)中问题)

121、osgEarth::VirtualProgram默认出现在哪些位置((五十一)中问题)

122、rex引擎默认的几个着色器功能分析((五十一)中问题)

123、osgEarth::TileRasterizer功能详解((五十二)中问题)

124、osgEarth::ImageLayer如何使用VirtualProgram((五十二)中问题)

125、osgEarth::ShaderFactory osgEarth::ShaderLoader关系((五十四)中问题)

126、osgEarth::URI和osgEarth::URIContext的作用((五十四)中问题)

127、RexTerrainEngineNode中_renderBindings的作用((五十四)中问题)

128、Rex引擎如何给shader文件中的uniform变量赋值((五十四)中问题)

129、osgEarth中多个着色器的源代码的编译链接过程((五十四)中问题)

130、osgEarth::ShaderFactory osgEarth::ShaderLoader关系((五十四)中问题)

131、TileNode与DrawTileCommand的关系((五十五)中问题)

132、如何提取出指定范围的高程网格((五十五)中问题)

133、从earth文件加载高层图层的过程((五十五)中问题)

134、TerrainTileModel与TileRenderModel的关系((五十五)中问题)

135、EngineContext的作用((五十五)中问题)

136、几个uniformmap的关系((五十五)中问题)

137、DrawTileCommand中的采样器((五十五)中问题)

138、TileNode中的_surface(SurfaceNode)作用是什么((五十五)中问题)

139、stateset中的adduniform、setTextureAttribute等最后是如何反应到opengl上的((五十五)中问题)

140、状态树和渲染树的关系((五十五)中问题)

141、TileRenderModel中的RenderingPass和RenderBindings((五十五)中问题)

142、高程瓦片的绘制过程((五十五)中问题)

143、如何从高程影像变成高程网格((七十一)中问题)

144、osg::StateSet中的_binMode作用((七十二)中问题)

145、rex的瓦片高程影像和高程文件中的影像尺寸如何对应((七十二)中问题)

146、osgEarth::TerrainLayerOptions高程层选项中参数的含义((七十二)中问题)

147、从高程文件读取的高程信息如何填充rex的高程瓦片((七十二)中问题)

148、地图下载器实现原理((七十二)中问题)

149、RexTerrainEngineNode和TerrainCuller中_terrain的关系((七十二)中问题)

150、TileNodeRegistry和LayerDrawable中_tiles的关系((七十二)中问题)

151、rex引擎中绘制瓦片的调度过程原理((七十二)中问题)

152、晕眩图的制作与实现((七十八)中问题)

153、如何将高层场保存为tif、MBTiles等((七十八)中问题)

154、如何将tif和MBTiles进行格式转换((七十八)中问题)

155、如何加载百度、高德、谷歌、微软的在线地图((七十八)中问题)

156、osgEarth运行起来为什么很占CPU资源((七十九)中问题)

157、wmts与xyz、quadtree、tms的关系((七十九)中问题)

158、获取的高程图像为什么除了设置纹理还要设置栅格((八十)中问题)

159、rex引擎创建图层的过程((八十一)中问题)

160、如何设置高度单位(m、km等)((八十二)中问题)

161、网络资源加载失败还会不会继续加载((八十二)中问题)

162、rex引擎打开图层的过程((八十二)中问题)

163、osgEarth::MemCache详解((八十二)中问题)

164、OGR与GDAL的关系((八十二)中问题)

165、osgEarth::Map的cache创建过程((八十三)中问题)

166、osgEarth跨平台的头文件包含设置((八十三)中问题)

167、rex引擎如何实现淹没分析((八十八)中问题)

168、rex引擎如何实现挖方分析((八十八)中问题)

169、rex引擎如何实现地形整平((八十八)中问题)

170、rex引擎如何绘制矢量图形((八十八)中问题)

170、rex引擎如何绘制等高线((八十八)中问题)

171、rex引擎如何显示瓦片的边界((八十八)中问题)

172、边界处瓦片颜色混合的实现((九十)中问题)

173、rex自带的着色器代码会硬编码进动态库吗((九十一)中问题)

174、rex在渲染时会不会纹理单元内容频繁更改((九十一)中问题)

175、如何显示瓦片编号((九十四)中问题)

176、缓存文件复用、弃用的判决((九十五)中问题)

177、RenderingPasses和RenderBindings((九十五)中问题)

178、如何定义裸球颜色并在绘制时起作用((九十八)中问题)

179、有影像和无影像的瓦片在一起如何保证无影像的瓦片被绘制((九十九)中问题)

180、如何判断瓦片的添加删除((一零零)中问题)

181、TileNode::merge为什么只是不合并最后一个图层((一零零)中问题)

182、ImageLayer的coverage属性含义((一零一)中问题)

183、如何判断图源支持的最大级别((一零一)中问题)

184、着色器如何绘制文字((一零一)中问题)

185、rex如何将文字生成图片((一零一)中问题)

186、rex如何在地球上绘制一张图片((一零三)中问题)

187、如何将文字变为图片((一零四)中问题)

188、rex下各个文件、类介绍((一零五)中问题)

189、术语定义((一零五)中问题)

190、rex的状态树和渲染树((一零六)中问题)

191、章节目录((一零七)中问题)

192、雾化fog效果((一零八)中问题)

193、云的渲染((一零八)中问题)

194、19级瓦片分辨率估算((一零八)中问题)

195、state中_defineMap构建过程((一零九)中问题)

196、state获取着色器文件中有效define的过程((一零九)中问题)

197、着色器上下文环境的准备过程((一一零)中问题)

198、每帧会重复生成着色器程序吗(一一一)

199、重复加载着色器文件对最终程序的影响(一一三)

200、如何让地球显的更有质感(一一三)

201、rex与mp引擎的关系(一一三)

202、tif文件分辨率的计算(一一四)

203、地理数据坐标系分类(一一五)

204、无法加载部分tif文件的原因(一一六)

205、_tileKeyValue的设置为什么使用fmod(一一八)

206、为什么rex的瓦片分级为21级,Google为23级(一一八)

207、renderinfo的作用(一二零)

208、着色器程序的opengl过程(一二一)

209、实现wmts插件(一二三)

210、osgEarth着色器文件与场景树节点的对应关系(一二三)

211、着色器源代码加工处理过程(一二四)

212、rex瓦片组织方式(一二五)

213、rex影像层属性及其设置(一二六)

214、rex的引擎和图层投影及其关系(一二七)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

osgEarth的Rex引擎原理分析(一二八)rex的引擎和图层投影及其关系 的相关文章

随机推荐

  • Vue的详细教程--基础语法【上】

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于Vue的相关操作吧 目录 Welcome Huihui s Code World 一 插值 1 文本 2 html 3 属性 class绑定 style绑定
  • 西门子200SMART(四) 程序块

    程序块是显示当前项目包含的程序列表 一般初始状态共有三个 主程序 子程序和中断程序 如下图 当然 鼠标右键选择某一个程序块 可以重命名 支持中文 然而一个项目中 只能有一个主程序 也必须有一个主程序 所以主程序是无法删除的 在初始状态下 想
  • 用pm2在本地部署服务器node项目,全栈实用技能,pm2部署node应用到服务器

    好东西就要拿来分享 不管你的目标是前端还是全栈 都值得一看 背景介绍 一般的 我们开发一个前端项目通常是在本地通过Node js搭一个服务器 所有的开发测试过程基本上都是在本地搞定 有时候 我们需要把我们的作品上线 好让更多的人能够访问到
  • 某网站hexin-v的解决方法,hexin-v的解密方法,hexin-v的生成方法

    前段时间做的项目 一直运行比较稳定 最近几天运行过程中异常退出 结果发现是某网站接口有变 使用谷歌chrome 对原网站进行调试 结果发现某个js页面有变化 以原有的hexin v生成方法 已经不能适用于最新的算法 本想偷偷懒从网络上找一下
  • Map和Set

    Map和Set是集合中的两个接口 Set实现了Collection接口 而Map没有实现 Map下面又有很多子类 我们主要研究HashMap和TreeMap Set同样有很多子类 主要研究HashSet和TreeSet 在理解掌握它们之前
  • FTP命令使用实例

    ftp命令是标准的文件传输协议的用户接口 ftp是在TCP IP网络上的计算机之间传输文件的简单有效的方法 它允许用户传输ASCII文件和二进制文件 在ftp会话过程中 用户可以通过使用ftp客户程序连接到另一台计算机上 从此 用户可以在目
  • LR.net敏捷软件开发平台核心功能详解

    软件开发 程序员就是不断地跟变量 方法 类 接口这些东西打交道 随着开发经验的积累 很多程序员会发现 虽然最终开发出来的软件每个都不一样 但是在开发过程中用到的很多东西却又是相通的 例如 每个软件的底层差不多都需要进行增删改查 文件操作 权
  • State 模式

    有限状态机 FSM Finite state machine 例子 1 若状态机在Locked状态收到了一个coin事件 则迁移到Unlocked状态并执行unlock动作 2 若状态机在UnLocked状态收到了一个pass事件 则迁移到
  • 基于Spark MLlib平台的协同过滤算法---电影推荐系统

    说到推荐系统 大家可能立马会想到协同过滤算法 本文基于Spark MLlib平台实现一个向用户推荐电影的简单应用 其中 主要包括三部分内容 协同过滤算法概述 基于模型的协同过滤应用 电影推荐 实时推荐架构分析 一 协同过滤算法概述 本人对算
  • npm安装Electron解决方案

    npm安装Electron解决方案 Electron使用npm安装时 因为是国外的镜像源 所以速度会非常慢 而使用cnpm如下命令进行安装时 又会出现安装失败的问题 npm install electron g execute post i
  • 第一阶段-第四章 Python的循环语句

    目录 前言 1 循环语句的运行方式 2 为什么要学习循环语句 3 本章的安排 一 while循环的基础语法 1 学习目标 2 while循环语句 3 本节的演示 4 while循环的注意点 5 本小节的总结 6 课后练习 二 while循环
  • 【JavaEE初阶】第三节.多线程基础篇

    作者简介 大家好 我是未央 博客首页 未央 303 系列专栏 JavaEE初阶 每日一句 人的一生 可以有所作为的时机只有一次 那就是现在 目录 文章目录 前言 一 认识线程 二 多线程程序 2 1 第一个Java多线程程序 2 2 怎么样
  • 6.1 什么是面向对象以及类和对象的区别

    什么是面向对象 面向对象 面向对象编程的简称 Object Oriented Programming OOP 是一种对现实世界理解和抽象的方法 是计算机编程技术发展到一定阶段后的产物 早期的计算机编程是面向过程的 典型的代表是 C 语言 解
  • Redis数据类型及编码格式——Hash篇

    写在前面 以下的知识都是建立在目前线上稳定版6 2 6版本的 而目前github上的redis源代码又更新优化了许多 譬如 hash数据类型默认的编码格式已经被替换为listpack hashtable数据结构也被重新优化 哈希表对象dic
  • python/matlibplot绘制多条曲线图

    这里我利用的是matplotlib pyplot plot的工具来绘制折线图 这里先给出一个段代码和结果图 coding UTF 8 import numpy as np import matplotlib as mpl import ma
  • 动态添加“<input onclick=“‘+json+‘“>“元素传参时不识别json的bug问题解决

    问题描述 var json a 1 在html中使用js方法动态添加
  • Vim快捷键 - Vim Cheat Sheet

    请访问 https vim rtorr com lang zh cn 全局 h elp 关键字 打开关键字帮助 sav eas 文件名 另存为 clo se 关闭当前窗口 ter minal 打开一个shell窗口 K 打开光标所在单词的m
  • nfs文件服务器错误码5,使用5.4内核最新代码后作为nfs服务器只能列出共享的文件夹名称,点进去不能显示内容...

    反馈bug 问题模板 提建议请删除 1 关于你要提交的问题 Q 是否搜索了issue 使用 x 选择 没有类似的issue 2 详细叙述 1 具体问题 A 使用5 4内核最新代码后作为nfs服务器只能列出如 mnt sda3的共享的文件夹名
  • 【hortonworks/registry】诡异问题之启动了却无法访问

    1 背景 本地mac启动了registry 但是却无法访问页面 lcc lcc soft registry hortonworks registry 0 9 0 bin registry start lcc lcc
  • osgEarth的Rex引擎原理分析(一二八)rex的引擎和图层投影及其关系

    目标 一二七 中问题214 主要存在三个地方 一是map的type属性 可取两个值geocentric projected 前者用于三维显示 后者用于二维显示 二是map的options属性的srs 可以取spherical mercato