查看: 1098|回复: 1

VPB是调用什么函数来实现坐标计算的

[复制链接]

该用户从未签到

发表于 2010-7-1 13:26:01 | 显示全部楼层 |阅读模式
我用ERDAS编辑了一张影象图片用VPB生成地形,其左上角坐标为(31.610625,120.234375)。然后我把某建筑用(31.610625,120.234375)坐标代替其中的lat,lon,height为建筑模型中心点的Z坐标。

          osg::ref_ptr<osg::CoordinateSystemNode> csn = new osg::CoordinateSystemNode();
          csn->setEllipsoidModel(new osg::EllipsoidModel());
          csn->addChild(osgDB::readNodeFile("XXXX"));

          double o,p,q;
          csn->getEllipsoidModel()->convertLatLongHeightToXYZ(osg::inDegrees(lat),osg::inDegrees(lon),height,o,p,q);
          osg::Vec3d up = csn->getEllipsoidModel()->computeLocalUpVector(o,p,q);
          osg::ref_ptr<osg::MatrixTransform> mt = new osg::MatrixTransform;
          osg::Matrixd matrix1;
          matrix1.makeRotate(osg::Vec3d(0,0,1),up);
          osg::Matrixd matrix2;
          matrix2.makeTranslate(osg::Vec3d(o,p,q));
          mt->setMatrix(matrix1*matrix2);
          mt->addChild(&Geode);
          osg::ref_ptr<osg::Group> gp = new osg::Group;
          gp->addChild(mt);
           osgDB::writeNodeFile(*(gp),“XXXX”);

最后得到的的模型并不在VPB产生的地形的左上角,有少许偏差。
我想是可以用的函数不一样导致计算结果不一样。
所以问下VPB用什么计算坐标的呢

该用户从未签到

发表于 2010-7-1 13:39:06 | 显示全部楼层
gdal~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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