osgEarth::Viewpoint vp;
//设置视点参数,focalPoint()函数返回的是一个点_point,然后调用set()函数进行设置,第一个参数是空间参考参数,第二个是经度,第三个是纬度,第四个是Z值
//最后一个参数用来描述Z是怎么解释的,有两种,ALTMODE_ABSOLUTE是绝对高程,从椭球体(?)开始算的,ALTMODE_RELATIVE是相对高程,从地形的标高以上开始算的,就是基准点在那个经纬度对应的点的最高处
vp.focalPoint()->set(mapNode->getMapSRS(), 100.0, 30.0, 0, osgEarth::ALTMODE_ABSOLUTE);
//设置相机相对于焦点的俯仰
vp.pitch() = -90.0;
//相机到focalPoint点的距离,也就是高度
vp.range() = 250000.0;
//设置视点属于操控相机视口,所以定义一个相机操作器,这里用的是EarthManipulator
osgEarth::Util::EarthManipulator* manip = new osgEarth::Util::EarthManipulator();
//把我们定义的vp设置进相机操作器
vp.setNode(Planemat); //Planemat为一个移动的osg::MatrixTransform
manip->setHomeViewpoint(vp);
//viewer把EarthManipulator设置为相机操作器
viewer->setCameraManipulator(manip);
OsgEarth节点跟随
最新推荐文章于 2022-12-05 16:29:01 发布