refs #552 CCoordinateGeodetic: Using double precision in the conversion from n-vector to lat/lon.

This commit is contained in:
Mathew Sutcliffe
2015-12-12 18:30:20 +00:00
parent e6011ec7cd
commit 0589198508

View File

@@ -168,14 +168,12 @@ namespace BlackMisc
CLatitude CCoordinateGeodetic::latitude() const CLatitude CCoordinateGeodetic::latitude() const
{ {
const QVector3D v = this->normalVector(); return { std::atan2(m_z, std::hypot(m_x, m_y)), PhysicalQuantities::CAngleUnit::rad() };
return { std::atan2(v.z(), std::hypot(v.x(), v.y())), PhysicalQuantities::CAngleUnit::rad() };
} }
CLongitude CCoordinateGeodetic::longitude() const CLongitude CCoordinateGeodetic::longitude() const
{ {
const QVector3D v = this->normalVector(); return { std::atan2(m_y, m_x), PhysicalQuantities::CAngleUnit::rad() };
return { std::atan2(v.y(), v.x()), PhysicalQuantities::CAngleUnit::rad() };
} }
QVector3D CCoordinateGeodetic::normalVector() const QVector3D CCoordinateGeodetic::normalVector() const