osgearth论坛问题集锦

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

怎么获取osgearth支持的影像数据下载到本地?刚接触osgearth,想请教大家:怎么获取osgearth支持的影像数据到本地,包括一些层级不高的不需要很精确的全球影像和层级较高的较清晰的部分城市的影像(像Googleearth那样有地名的),以.earth文件中读取本地数据?谢谢大家!使用osgEarth的缓存插件,设置缓存路径就可以了这个方法知道,但不知道从哪可以获取到符合要求(类似Googleearth有位置标签)的影像数据。可以用谷歌地图下载器下载,然后使用GDAL插件加载可以用GDAL插件加载吗?好像不行哎,你试验成功过嚒?得修改GDAL插件?图片是没有坐标的,所以得人为制定坐标包围盒?这个看着有些抽象osgearth在局域网上的配置问题由于个人电脑不能上外网,所以只能在单位内部网络上自行加载地形和影像数据。在服务器端加载了地形和影像,客户端用.earth文件配置来读取,提示cannotinitializeTileSourceforlayerwest.tifmapname=earthtype=geocentricversion=2imagedriver=gdalname=world-tiffurl=gdalname=DE-tiffurl=false//map我在服务器端没有编译gdal。客户端有编译好的gdal。请各位指点一下,谢谢!建议看一下gdal插件是否支持联网读取tif,大的tif不建议联网读,tms和vpb的ive使用联网读取比好好如何获取读入的栅格图片的坐标范围通过gdalOption读入一块栅格图片,请问如何获得该栅格图片的坐标范围osg::Image*createImage(constTileKey&key,ProgressCallback*progress)创建瓦片的时候,你可以通过TileKey获取图片的层级及tile_x,tile_x,通过这些信息可以推算出图片的坐标范围OSGEARTH如何获取当前缩放的级别如题!有什么简单实用方法,我用profile里面的方法得到tilekey,再由tilekey来获取,感觉绕了一个弯子。我是这么在运动过程中调整模型姿态的当对一个物体进行先平移再旋转的操作时,目标是将物体沿x轴正向平移10个单位,再将物体自身绕z轴顺时针旋转30度,但是在实际实施变换的过程中后,却得不到正确的结果.如图所示,图中水平垂直分别为x,y坐标轴,z坐标与纸面垂直.上一行是用户原来希望得到的结果,而下一行则是实际实施了变换之后得到的结果.在osgearth中,无论使用以下哪种都会发生这种现象。//scale-postMult(osg::Matrix::rotate(osg:egreesToRadians(-90.0),0,1,0));//locator-getLocator()-setOrientation(osg::Vec3d(-90,0,0));看到一篇osg论文,使用在每次变换前先将物体平移至世界坐标系的原点,实施变换之后再将物体进行反平移的方法,实验证明是好用的,代码如下://获取场景节点,将其转换为MatrixTransform类型constosg::Matrixm_matrix=scale-getMatrix();//获得变换物体表面顶点矩阵constosg::BoundingSpherem_box=scale-getBound();//获得变换物体的包围盒,从而获得物体的中心osg::MatrixpreMat=osg::Matrix::translate(-m_box.center());osg::MatrixproMat=osg::Matrix::translate(m_box.center());osg::Matrixmatrix1=m_matrix*preMat;//将物体中心平移至世界坐标的原点osg::Matrixmatrix2=matrix1*osg::Matrix::rotate(osg:egreesToRadians(-90.0),0,1,0);//进行变换级联,采用先缩放后旋转再平移的顺序osg::Matrixmatrix=matrix2*proMat;//变换后再将物体移回scale-setMatrix(matrix);//将结果矩阵重新设回物体不知道是否有更好的方法,盼高手指点一般是遵循SRT遵循SRT(Scale/Rotate/Translate)是在模型刚添加进场景的时候,在实时仿真的时候,一般不会知道模型移动到哪里了,这样移动之后再旋转,就会出现之前说的问题。虽然问题可以解决,但是我不确定这种解决办法是不是最好的或最有效的,所以想请教各位大牛!我是这么在osgearth里头画线的线的画法和osg里头一样,可参看osggeometry.cpp,但是点的坐标需要经过转换,实践证明是可行的,应该也可以用到其它几何体上。新手上路,欢迎大牛们拍砖。这部分放在main()或者InitSceneGraph(void)中osg::ref_ptrosg::Geodegeode=newosg::Geode();mRoot-addChild(geode);//测试画线osg::Vec3dstartline(-155.150257,63.390041,220230);osg::Vec3dendline(-165.150257,63.390041,0);createLine(startline,endline);voidOSGEarthEngine::createLine(osg::Vec3dstartline,osg::Vec3dendline){constSpatialReference*mapSRS=mapNode-getMapSRS();//createGeometryobjecttostorealltheverticesandlinesprimitive.osg::ref_ptrosg::GeometrylinesGeom=newosg::Geometry();//thistimewe'llpreallocatethevertexarraytothesizewe//needandthensimplesetthemasarrayelements,2points//makes1linesegments.osg::Vec3dstartWorld;osg::Vec3dendWorld;osg::ref_ptrosg::Vec3dArrayvertices=newosg::Vec3dArray(2);mapNode-getMap()-toWorldPoint(GeoPoint(mapSRS,startline),startWorld);mapNode-getMap()-toWorldPoint(GeoPoint(mapSRS,endline),endWorld);(*vertices)[0]=startWorld;(*vertices)[1]=endWorld;//passthecreatedvertexarraytothepointsgeometryobject.linesGeom-setVertexArray(vertices);//setthecolorsasbefore,plususingtheaboveosg::ref_ptrosg::Vec4Arraycolors=newosg::Vec4Array;colors-push_back(osg::Vec4(1.0f,1.0f,0.0f,1.0f));linesGeom-setColorArray(colors);linesGeom-setColorBinding(osg::Geometry::BIND_OVERALL);//setthenormalinthesamewaycolor.osg::ref_ptrosg::Vec3Arraynormals=newosg::Vec3Array;normals-push_back(osg::Vec3(0.0f,-1.0f,0.0f));linesGeom-setNormalArray(normals);linesGeom-setNormalBinding(osg::Geometry::BIND_OVERALL);//Thistimewesimplyuseprimitive,andhardwirethenumberofcoordstouse//sinceweknowupfront,linesGeom-addPrimitiveSet(newosg:rawArrays(osg:rimitiveSet:INES,0,2));//addthepointsgeometrytothegeode.geode-addDrawable(linesGeom);}请教在earth文件中使用ive数据显示精度不足的问题mapname=Targettype=geocentricversion=2optionslightingfalse/lightingcachetype=filesystempath.\\osgearth_cache/path/cache/optionsimagename=TIFdriver=vpburl.\\earth\\earth.ive/url/image/mapive是自己用8片tif处理的,但是调入earth文件之后,绘制效率比直接调入tif快但显示精度就明显差了不少,比直接看ive地形就差得更远,不知道是为什么好像最精细的层级都没有显示出来,求各位大神指教建议你参照一下tests下面关于vpb的例子osgearth如何识别vpb生成的地形模型问题一直都在用vpb制作.ive格式的地形模型,不知如何将其转换为osgearth能识别的mapnode节点,谢谢!使用osgearth的vpb插件请教多分辨率影像融合的情况怎样处理使用gdal加载两张地球影像为一个image图层,原始影像为一个低分辨率的全球影像,加一个1.2米分辨率的局部影像,.earth文件如下:maptype=geocentricversion=2imagename=composite_worlddriver=gdalurlE:\WORK\Resource\image/urlextensionstif/extensions/image/map结果如下图,请教这种多分辨率影像融合的情况怎样处理请用seed例子,把tif处理成tms,或者用vpbosgearth高程显示的问题osgearth中可以用setenabled控制elevationLayer的显隐,但是如何做到elevationLayer隐藏后,高程立刻没有,elevationLayer显示后,高程立刻显示。新版这个问题已经解决了,试试Sampleosgearth_tocosgearth中如何进行实时的纹理切换有两种地球的金字塔纹理,想在程序运行后通过输入控制不同的纹理进行显示。需要怎么做,请高手指点一下?是可以在切换是临时加载纹理数据,还是要全部加载后进行隐现操作?参看一下osgearth_toc的源码,那里有通过隐藏、显示不同层纹理的方法采用osgearth_toc方法后可以实现纹理切换的效果,只是效率下降了很多。从60帧降到5帧左右怎么在osgearth显示的地图中显示鼠标所在点的经纬度坐标你可以参看osgEarth自带例子:osgEarth_elevationosgEarth_Viewer中有求问:使用osgearth动态

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功