關於osgEarth座標轉換

使用現成的橢球類EllipsoidModel的座標轉換函數可以實現

inline void EllipsoidModel::convertLatLongHeightToXYZ(double latitude, double longitude, double height,
                                      double& X, double& Y, double& Z) const

函數參數表的前三位是經緯度高程(latitude, longitude,height),一般口頭喊的順序是 經緯度經緯度,但是這裏參數順序是爲緯經度,所以如果定義的地理座標向量是

osg::Vec3 pos(經度,緯度,高程)

的話,在調用上面的函數時候傳參就要調換x,y的順序,並且將度數轉換成弧度,如下

convertLatLongHeightToXYZ(osg::DegreesToRadians(pos.y()), osg::DegreesToRadians(pos.x()), pos.z(), world.x(), world.y(), world.z());

如果沒有轉換成弧度的話位置偏差會很大

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