Changed longitude to -180 to 180
parent
4dd21b9060
commit
4d1ef9833a
15
Eci.cpp
15
Eci.cpp
|
@ -54,9 +54,13 @@ Eci::~Eci(void) {
|
||||||
CoordGeodetic Eci::ToGeodetic() const {
|
CoordGeodetic Eci::ToGeodetic() const {
|
||||||
|
|
||||||
const double theta = Globals::AcTan(position_.GetY(), position_.GetX());
|
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 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 lat = Globals::AcTan(position_.GetZ(), r);
|
||||||
double phi = 0.0;
|
double phi = 0.0;
|
||||||
|
@ -65,16 +69,11 @@ CoordGeodetic Eci::ToGeodetic() const {
|
||||||
do {
|
do {
|
||||||
phi = lat;
|
phi = lat;
|
||||||
const double sinphi = sin(phi);
|
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);
|
lat = Globals::AcTan(position_.GetZ() + Globals::XKMPER() * c * e2 * sinphi, r);
|
||||||
} while (fabs(lat - phi) >= 1e-10);
|
} while (fabs(lat - phi) >= 1e-10);
|
||||||
|
|
||||||
const double alt = r / cos(lat) - Globals::XKMPER() * c;
|
const double alt = r / cos(lat) - Globals::XKMPER() * c;
|
||||||
|
|
||||||
/*
|
|
||||||
* todo: check
|
|
||||||
*/
|
|
||||||
//if (lat > pio2) geodetic->lat -= twopi;
|
|
||||||
|
|
||||||
return CoordGeodetic(lat, lon, alt);
|
return CoordGeodetic(lat, lon, alt);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue