osgEarth获取经纬度和高程的几种方法
来源:互联网 发布:python dll 编辑:程序博客网 时间:2024/05/16 14:47
做osgEarth也有段时间,一直没时间静下心来写些东西,今天就把我使用的几种获取相应点的经纬度和高程的几种方法简单地总结一下,
希望各位批评指正互相交流学习。这几种方法在经度方面有不小的差别我会推荐大家使用经度相对较高的一种。
1、 这种方法在重写handle函数中用的最多了,先求得世界坐标X、Y、Z,在把它们转换成经纬度和高程数据
osgUtil::LineSegmentIntersector::Intersections inters1;
osg::Vec3d m_TempPoint1;
::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa)
{
GeoPoint ConvertPoint;
if(m_pViewer->computeIntersections(ea.getX(),ea.getY(),inters1))
{
osgUtil::LineSegmentIntersector::Intersections:: iterator iter1 = inters1.begin();
m_TempPoint1.set(iter1->getWorldIntersectPoint().x(),iter1->getWorldIntersectPoint().y(),iter1->getWorldIntersectPoint().z());
ConvertPoint.fromWorld(m_pGeoSRS,m_TempPoint1);
}
}
2、这种方法在知道经纬度坐标时想求出这点的高程数据时用的比较多。
osg::ref_ptr<osgEarth::MapNode> m_pMapNode;
osg::Vec3 Vec; //经纬度坐标
double Height=0.0;
m_pMapNode->getTerrain()->getHeight(m_pMapNode->getMapSRS(),Vec.x(),Vec.y(),&Height);
Height 就是在相应经纬度坐标下的高程。但是这种方法求出来的数据精度较低,因为我在我放置模型发现模型的位置有时候会存在较大误差,当和下一种方法比较时发现
误差最大达到几百米,这还是挺惊人的特别是设置了高程夸张系数之后误差又被放大几倍,严重影响精度。
3、这种方法较上两种方法精度都比较高,使用时发现能满足要求。
double query_resolution = 0.00000001;
double out_hamsl = 0.0;
double out_resolution = 0.0;
osgEarth::ElevationQuery query(m_pMap.get());
query.getElevation(GeoPoint(m_pMapNode->getMapSRS(),103.50,31.50,0.0,osgEarth::AltitudeMode::ALTMODE_RELATIVE),
out_hamsl,
query_resolution,
&out_resolution );
out_hamsl 就是经度在103.5°和维度在31.50°的高程,这里注意一下query_resolution 这个参数,其实奥妙就在这里,如果把它设置成0.1时,它表示数据获取精度是0.1°所以获得高程数据也是有较大误差的,如果设置成0.00000001时,它表示的获取精度是0.00000001°,所以这个参数设置小一些就能提高数据获取精度满足要求。如果大家在开发中需要获取较高精度的高程数据比如放置一个模型在地球上就可以使用这种方法。
osgEarth中获取经纬度和高程数据的方法肯定不止这几种,这里只是简单地总结一下我使用过得几种方法,希望能给大家带来些用处。
2014年4月12日 星期六
- osgEarth获取经纬度和高程的几种方法
- osgEarth获取经纬度和高程的几种方法
- osgEarth获取经纬度和高程的几种方法
- osgearth由经纬度得到高程
- 几种利用SAR获取地面高程信息的方法【转载】
- 解决osgEarth中文显示乱码的几种方法
- 经纬度和高程坐标转换,来自osg
- osgearth访问几种数据的几种方式
- osgearth访问几种数据的几种方式
- osgearth访问几种数据的几种方式
- Android获取经纬度的方法
- 获取经纬度方法的使用以及常见问题
- JS获取IP、MAC和主机名的几种方法
- Struts2 获取request 和 session 的几种方法
- JS获取IP、MAC和主机名的几种方法
- JS获取IP、MAC和主机名的几种方法
- JS获取IP、MAC和主机名的几种方法
- JS获取IP、MAC和主机名的几种方法
- 微软2014实习生及秋令营技术类职位在线测试+试题1+答案
- 微软2014实习生及秋令营技术类职位在线测试-题目1 : String reorder
- cin函数
- 路由器和交换机的区别详解
- 当我清醒的认识到自己后
- osgEarth获取经纬度和高程的几种方法
- log4net输出到PostgreSql
- 微软2014机试第一题
- IE6下li无法自适应宽度解决办法
- 二叉树相关面试题及代码
- 随想-2014-04-12
- HDU_2031进制转换
- 2014微软在线测试-String reorder-WA
- 妙味云课堂之css:滑动门、圆角、css精灵