查看: 4863|回复: 19

如何读取多个金字塔数据源

[复制链接]

该用户从未签到

发表于 2013-4-8 17:58:46 | 显示全部楼层 |阅读模式
现在有一个全球的金字塔数据源globle,配置文件为tms.xml,
另外一个是局部地区的高精度数据源local,也是金字塔数据,配置文件也是tms,
我是这样加载的
<map name="MyMap" type="geocentric" version="2">
  <heightfield name="pelican srtm" driver="tms">
    <url>C:/globle/tms.xml</url>
  </heightfield>
<heightfield name="pelican srtm" driver="tms">
    <url>C:/local/tms.xml</url>
  </heightfield>
</map>

为什么只能看到局部高精度的,而看不见全球的?
如何才能使得两者都看到?

该用户从未签到

发表于 2013-4-8 21:07:51 | 显示全部楼层
<map name="MyMap" type="geocentric" version="2">
<heightfield name="pelican srtm" driver="tms">
    <url>C:/local/tms.xml</url>
  </heightfield>
<heightfield name="pelican srtm" driver="tms">
    <url>C:/globle/tms.xml</url>
  </heightfield>
</map>

这样试一试。
出现你上述问题的大概原因是:你的local下的瓦片数据也是基于globle范围来generate的。

该用户从未签到

 楼主| 发表于 2013-4-9 08:37:24 | 显示全部楼层
cug_osg 发表于 2013-4-8 21:07
C:/local/tms.xml
  

谢谢你的回答。我交换过尝试了,每次的结果都是最后加的数据会覆盖掉前几层的数据。你说的对,我切局部地形数据的范围也是全球的,看来是我切的不对。请你指教一下怎么切局部地形(一张大的tif)成金字塔数据,我用的是osgearth_package工具切的,虽然我指定了经纬度范围(不是全球的,就是tif所对应的的真实范围),但是切分的结果却是全球的。

该用户从未签到

 楼主| 发表于 2013-4-10 09:53:47 | 显示全部楼层
好吧,我在osgearth的官方论坛上也问了,gwaldron说目前只能使用composite驱动融合多个影像tms金字塔数据源,而不能处理多个高程tms金字塔数据源,不过他说以后有望在OE中添加此功能。

该用户从未签到

发表于 2013-4-10 17:26:10 | 显示全部楼层
<elevation name="**" driver="tms">
        <url>**</url>
</elevation>
这样试一下,亲身尝试可以加载多个区块的高层数据,但是没有加载过一个地区多个高层

该用户从未签到

 楼主| 发表于 2013-4-11 09:07:14 | 显示全部楼层
xiaoping2753 发表于 2013-4-10 17:26
**

这样试一下,亲身尝试可以加载多个区块的高层数据,但是没有加载过一个地区多个高层

您的意思是把heightfield改成elevation?像这样:
<map name="MyMap" type="geocentric" version="2">
<elevation name="global area" driver="tms">
    <url>C:/globle/tms.xml</url>
  </elevation>
<elevation name="local area" driver="tms">
    <url>C:/local/tms.xml</url>
  </elevation>
</map>
我尝试过了,elevation和heightfield一样不行。

该用户从未签到

发表于 2013-4-11 17:19:25 | 显示全部楼层
wanggang8826 发表于 2013-4-11 09:07
您的意思是把heightfield改成elevation?像这样:

顺便请教 heightfield和elevation 有什么不同吗?

该用户从未签到

 楼主| 发表于 2013-4-12 09:19:53 | 显示全部楼层
cmygiser 发表于 2013-4-11 17:19
顺便请教 heightfield和elevation 有什么不同吗?

(⊙o⊙)…一样吧

该用户从未签到

发表于 2013-7-16 15:05:42 | 显示全部楼层
我也遇到同样的问题!请指教啊

该用户从未签到

 楼主| 发表于 2013-7-16 16:58:21 | 显示全部楼层
xiaol_deng 发表于 2013-7-16 15:05
我也遇到同样的问题!请指教啊

OE不支持TMS驱动的高程多数据源,你如果局部地区是一张不大的tif文件,可以用GDAL驱动和一个TMS驱动结合使用。
我们现在是做法是:设定一个层数L,当前层小于L时,加载全球粗精度地形,当前层大于等于L时,加载高精度地形。
具体实现细节,在修改TMS.cpp文件中的TileMap::getURL,根据zoom(层数),动态切换数据源的路径path。

遇到的问题就是在高、低精度的地形边缘处连接效果很差(没有融合)。

该用户从未签到

发表于 2013-7-17 09:12:07 | 显示全部楼层
TMS.cpp?我建了一个解决方案只有这些。
)$HYLNER$FO$~A]Q[QG@P2R.jpg

该用户从未签到

发表于 2013-7-17 09:13:39 | 显示全部楼层
如果我想在数据金字塔上帖张高精度的影像.tif(缩放时都可以看见这张高精度的图)怎么实现呢?

该用户从未签到

发表于 2013-7-17 09:14:30 | 显示全部楼层
能具体点儿嘛!贴段代码最好不过了,刚接触osgearth!

该用户从未签到

 楼主| 发表于 2013-7-17 11:10:58 | 显示全部楼层
xiaol_deng 发表于 2013-7-17 09:12
TMS.cpp?我建了一个解决方案只有这些。

我指的是osgearth的源代码中的TMS.cpp文件

该用户从未签到

 楼主| 发表于 2013-7-17 11:12:49 | 显示全部楼层
xiaol_deng 发表于 2013-7-17 09:13
如果我想在数据金字塔上帖张高精度的影像.tif(缩放时都可以看见这张高精度的图)怎么实现呢?

使用GDAL驱动,参考osgearth官网,http://docs.osgearth.org/en/osge ... /drivers/index.html

该用户从未签到

发表于 2013-7-18 21:23:17 | 显示全部楼层
wanggang8826 发表于 2013-7-17 11:12
使用GDAL驱动,参考osgearth官网,http://docs.osgearth.org/en/osgearth-2.4/references/drivers/index. ...

我在建立的地球上加载高程数据(dem的tif格式)怎么显示不了呢?真拙计啊

该用户从未签到

 楼主| 发表于 2013-7-19 09:11:08 | 显示全部楼层
xiaol_deng 发表于 2013-7-18 21:23
我在建立的地球上加载高程数据(dem的tif格式)怎么显示不了呢?真拙计啊

<map name="MyMap" type="geocentric" version="2">
<elevation name="dem tif" driver="gdal">
    <url>C:/your_tif_file_name.tif</url>
  </elevation>
</map>

该用户从未签到

发表于 2013-7-19 16:45:11 | 显示全部楼层
wanggang8826 发表于 2013-7-19 09:11
C:/your_tif_file_name.tif

谢谢你的回复!

该用户从未签到

发表于 2013-7-29 22:51:45 | 显示全部楼层
多个高程可能会出现性能问题,我们的方法是实现全球19米地形ive库,高程只需读取一层,需要局部时,打包出来

该用户从未签到

 楼主| 发表于 2013-7-31 09:25:27 | 显示全部楼层
ago 发表于 2013-7-29 22:51
多个高程可能会出现性能问题,我们的方法是实现全球19米地形ive库,高程只需读取一层,需要局部时,打包出来 ...

我们的局部数据不是特定的,就是说现在没有,比如说山东地区的高程数据,需要航拍完处理后,然后加载
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表