計算任意模型中心經緯度的方法

廢話不多說,先上核心代碼:

			osg::NodePathList nodePaths = node->getParentalNodePaths();
			if ( nodePaths.empty() )
				return 0;

			osg::NodePath path = nodePaths[0];
			osg::Matrixd localToWorld = osg::computeLocalToWorld(path);
			osg::Vec3d world = node->getBound().center() * localToWorld;

			GeoPoint point;
			const osgEarth::SpatialReference* sr = _global->MapNode->getMapSRS();
			point.fromWorld(sr, world);

1.獲取節點的getParentalNodePaths

2.取出osg::NodePath

3.使用computeLocalToWorld將path轉爲矩陣

4.模型包圍盒中心node->getBound().center()轉世界座標

5.獲取座標系SpatialReference

6.定義GeoPoint,利用fromWorld轉經緯度

好了,你要的數據都在point裏面了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章