查看: 5278|回复: 8

显示鼠标停留处经纬度及高程值【已解决】

[复制链接]

该用户从未签到

发表于 2013-9-6 10:49:00 | 显示全部楼层 |阅读模式
本帖最后由 就是那个胖子 于 2013-12-11 08:41 编辑

从网上找的,可以实现,代码如下:
//显示鼠标所在位置处经纬度坐标及高程值
void CCustomOSGWnd::ShowLocation(osgViewer::Viewer* pViewer,osgEarth::MapNode* pMapNode)
{
        //鼠标位置信息显示
        osgEarth::Util::Formatter* formatter = new osgEarth::Util:atLongFormatter();
        osgEarth::Util::LabelControl* readout = new osgEarth::Util::LabelControl();
        osgEarth::Util::ControlCanvas::get( pViewer, true )->addControl( readout );
        readout->setFontSize(25.0);//设置字体大小
        osgEarth::Util::MouseCoordsTool* tool = new osgEarth::Util::MouseCoordsTool( pMapNode );
        tool->addCallback( new osgEarth::Util::MouseCoordsLabelCallback(readout, formatter) );
        pViewer->addEventHandler( tool );
        // add the state manipulator
        pViewer->addEventHandler( new osgGA::StateSetManipulator(pViewer->getCamera()->getOrCreateStateSet()) );
        // add the thread model handler
        pViewer->addEventHandler(new osgViewer::ThreadingHandler);
        // add the window size toggle handler
        pViewer->addEventHandler(new osgViewer::WindowSizeHandler);
        // add the stats handler
        pViewer->addEventHandler(new osgViewer::StatsHandler);
        // add the record camera path handler
        pViewer->addEventHandler(new osgViewer::RecordCameraPathHandler);
        // add the LOD Scale handler
        pViewer->addEventHandler(new osgViewer::LODScaleHandler);
        // add the screen capture handler
        pViewer->addEventHandler(new osgViewer::ScreenCaptureHandler);
}

显示鼠标处位置经纬度及高程值

显示鼠标处位置经纬度及高程值

没添加高程数据,所以高程现在不正确,想请假下,怎么设置坐标在窗口显示的位置,函数里默认是0,0,看起来被挡住了,不知道怎么设置,求大神指点,谢谢

该用户从未签到

发表于 2013-10-2 21:09:35 | 显示全部楼层
  1. readout->setPosition(float x, float y);
复制代码

该用户从未签到

发表于 2013-10-30 10:18:46 | 显示全部楼层
本帖最后由 sck_dream 于 2013-10-30 10:23 编辑

楼主,我照你的方法实现的,但是出现坐标重叠问题(如图),请问知道是什么情况吗?
不添加.earth文件时候,空白球体的时候,没有这种情况,显示是正常的。
UW0)I(W_MXQC_RFKC{9JM@R.jpg

该用户从未签到

 楼主| 发表于 2013-10-31 10:35:41 | 显示全部楼层
本帖最后由 就是那个胖子 于 2013-10-31 15:13 编辑
sck_dream 发表于 2013-10-30 10:18
楼主,我照你的方法实现的,但是出现坐标重叠问题(如图),请问知道是什么情况吗?
不添加.earth文件时候 ...


不好意思哈,没遇到你这情况,你说的重叠是经纬度数值间的重叠?还是因为你设置的数据精度较长,显示的长度不够导致的重叠啊?

该用户从未签到

发表于 2013-11-5 19:45:43 | 显示全部楼层
就是那个胖子 发表于 2013-10-31 10:35
不好意思哈,没遇到你这情况,你说的重叠是经纬度数值间的重叠?还是因为你设置的数据精度较长,显示的 ...

是经纬度数值的重叠,好像有两个经纬度值,没有添加world.tif的时候,也就是显示白球的是数值是正确显示的,当加入数据的时候,就有重叠了。小弟刚学习,还望赐教!谢谢了。。。

该用户从未签到

 楼主| 发表于 2013-11-8 12:53:40 | 显示全部楼层
sck_dream 发表于 2013-11-5 19:45
是经纬度数值的重叠,好像有两个经纬度值,没有添加world.tif的时候,也就是显示白球的是数值是正确显示的 ...

我也是新手,不是很懂啊……你看看你是不是你原来的程序或者earth文件里也有显示坐标的功能,所以导致重叠现象,

该用户从未签到

发表于 2013-11-23 08:49:37 | 显示全部楼层
osgEarth::util这里面有个专门的已经做好的工具用来在显示经纬度的,你可以看一下源码

该用户从未签到

 楼主| 发表于 2013-12-11 08:41:57 | 显示全部楼层
ysw 发表于 2013-11-23 08:49
osgEarth::util这里面有个专门的已经做好的工具用来在显示经纬度的,你可以看一下源码

谢谢

该用户从未签到

发表于 2014-11-11 16:03:43 | 显示全部楼层
这个很有用,谢谢楼主。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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