From: jmt Date: Tue, 8 Sep 2009 11:23:53 +0000 (+0000) Subject: Set runway elevation to the airport elevation, and don't reset ILS/LOC elevation... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=80e67b17c24ad7cbb67d456b518810e3d3bc2785;p=flightgear.git Set runway elevation to the airport elevation, and don't reset ILS/LOC elevation when aligning with runways. --- diff --git a/src/Airports/apt_loader.cxx b/src/Airports/apt_loader.cxx index f78198798..a8af8ca47 100644 --- a/src/Airports/apt_loader.cxx +++ b/src/Airports/apt_loader.cxx @@ -257,7 +257,7 @@ private: last_rwy_heading = heading; int surface_code = atoi( token[10].c_str() ); - SGGeod pos(SGGeod::fromDegFt(lon, lat, 0.0)); + SGGeod pos(SGGeod::fromDegFt(lon, lat, last_apt_elev)); if (rwy_no[0] == 'x') { // taxiway diff --git a/src/Navaids/navrecord.cxx b/src/Navaids/navrecord.cxx index 73edc243f..2029d2b7d 100644 --- a/src/Navaids/navrecord.cxx +++ b/src/Navaids/navrecord.cxx @@ -161,9 +161,7 @@ void FGNavRecord::processSceneryILS(SGPropertyNode* aILSNode) void FGNavRecord::alignLocaliserWithRunway(double aThreshold) { // find the distance from the threshold to the localizer - SGGeod runwayThreshold(mRunway->threshold()); - double dist, az1, az2; - SGGeodesy::inverse(mPosition, runwayThreshold, az1, az2, dist); + double dist = SGGeodesy::distanceM(mPosition, mRunway->threshold()); // back project that distance along the runway center line SGGeod newPos = mRunway->pointOnCenterline(dist); @@ -172,7 +170,7 @@ void FGNavRecord::alignLocaliserWithRunway(double aThreshold) SG_NORMALIZE_RANGE(hdg_diff, -180.0, 180.0); if ( fabs(hdg_diff) <= aThreshold ) { - mPosition = newPos; + mPosition = SGGeod::fromGeodFt(newPos, mPosition.getElevationFt()); set_multiuse( mRunway->headingDeg() ); } else { SG_LOG(SG_GENERAL, SG_WARN, "localizer:" << ident() << ", aligning with runway "