From 4d1ef9833a303ce1a8bc7c7e2c6506631f16dd7d Mon Sep 17 00:00:00 2001 From: Daniel Warner Date: Sun, 10 Apr 2011 00:29:46 +0100 Subject: [PATCH] Changed longitude to -180 to 180 --- Eci.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Eci.cpp b/Eci.cpp index f95d773..e4c2e7b 100644 --- a/Eci.cpp +++ b/Eci.cpp @@ -54,9 +54,13 @@ Eci::~Eci(void) { CoordGeodetic Eci::ToGeodetic() const { const double theta = Globals::AcTan(position_.GetY(), position_.GetX()); - const double lon = Globals::Fmod2p(theta - date_.ToGreenwichSiderealTime()); + /* + * changes lon to 0>= and <360 + * const double lon = Globals::Fmod2p(theta - date_.ToGreenwichSiderealTime()); + */ + const double lon = fmod(theta - date_.ToGreenwichSiderealTime(), Globals::TWOPI()); const double r = sqrt((position_.GetX() * position_.GetX()) + (position_.GetY() * position_.GetY())); - const double e2 = Globals::F() * (2.0 - Globals::F()); + static const double e2 = Globals::F() * (2.0 - Globals::F()); double lat = Globals::AcTan(position_.GetZ(), r); double phi = 0.0; @@ -65,16 +69,11 @@ CoordGeodetic Eci::ToGeodetic() const { do { phi = lat; const double sinphi = sin(phi); - c = 1 / sqrt(1 - e2 * sinphi * sinphi); + c = 1.0 / sqrt(1.0 - e2 * sinphi * sinphi); lat = Globals::AcTan(position_.GetZ() + Globals::XKMPER() * c * e2 * sinphi, r); } while (fabs(lat - phi) >= 1e-10); const double alt = r / cos(lat) - Globals::XKMPER() * c; - /* - * todo: check - */ - //if (lat > pio2) geodetic->lat -= twopi; - return CoordGeodetic(lat, lon, alt); }