查看: 1691|回复: 3

地球定位相差很大

[复制链接]

该用户从未签到

发表于 2009-4-22 11:18:25 | 显示全部楼层 |阅读模式
为什么我的地球定位相差很大,下面的经纬度是北京的经纬度小数形式,应该在该位置显示一个飞机模型,可是在地球上显示的压根就不是北京的位置,边缘都算不上,自己感觉是下面设置飞机模型的位置矩阵不正确,可是又不知道如何不正确了,希望达人们能帮忙下,万分感激,谢谢。

#include "stdafx.h"
#include <osg/Geode>
#include <osg/Group>
#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgViewer/Viewer>
#include <osgText/Text>
#include <osg/CoordinateSystemNode>
#include <osg/MatrixTransform>
int _tmain(int argc, _TCHAR* argv[])
{
        osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
        osg::ref_ptr<osg::CoordinateSystemNode> csn = new osg::CoordinateSystemNode();
        csn->setEllipsoidModel(new osg::EllipsoidModel());
        //读取地球模型
        osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("F:/osgtemp/earth.osg");
        csn->addChild(node.get());

        //读取飞机模型
        osg::Node* cessna = osgDB::readNodeFile("cessna.osg");
        osg::MatrixTransform* mt = new osg::MatrixTransform();
        osg::MatrixTransform* scaler = new osg::MatrixTransform();

        //缩放飞机模型到合适的尺寸
        if (cessna)
        {
                double s = 200000.0 / cessna->getBound().radius();
                scaler->addChild(cessna);
                scaler->setMatrix(osg::Matrixd::scale(s,s,s));
                scaler->getOrCreateStateSet()->setMode(GL_RESCALE_NORMAL,osg::StateAttribute::ON);               
        }
        mt->addChild(scaler);

        //好像下面的是设置飞机的模型位置
        osg::EllipsoidModel* ellipsoid = csn->getEllipsoidModel();
        if (ellipsoid)
        {
                osg::Matrix inheritedMatrix;
                inheritedMatrix.makeIdentity();
                osg::Matrixd matrix(inheritedMatrix);

                //osg::Matrixd matrix;
                ellipsoid->computeLocalToWorldTransformFromLatLongHeight(39.905555556,116.391388889,100000,matrix);
                mt->setMatrix(matrix);
        }

        csn->addChild(mt);
        viewer->setSceneData(csn.get());
        viewer->realize();
        viewer->run();

        return 0;
}

该用户从未签到

发表于 2009-4-22 14:51:48 | 显示全部楼层
看起来似乎没问题呀,会否是地球模型的问题

该用户从未签到

 楼主| 发表于 2009-4-22 15:06:05 | 显示全部楼层
不好意思   理论上是正确的  只是我用的经纬度不对,呵呵 ……

该用户从未签到

发表于 2009-4-22 15:30:18 | 显示全部楼层
这个经纬度是在北京附近啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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