]> git.mxchange.org Git - simgear.git/commitdiff
Fix longitude sign convention of geocentric routines
authorJames Turner <jmt@Dulux.local>
Fri, 11 Jun 2010 16:38:43 +0000 (18:38 +0200)
committerJames Turner <jmt@Dulux.local>
Fri, 11 Jun 2010 16:38:43 +0000 (18:38 +0200)
(derived from the Williams aviation formulary, with W longitude +ve)

simgear/math/SGGeodesy.cxx

index b9974f14c66601be2063896c99d59fc8bfa5adc3..1d71b91970764201ff5ef82375214e4278ad21c9 100644 (file)
@@ -509,15 +509,16 @@ SGGeodesy::advanceRadM(const SGGeoc& geoc, double course, double distance,
     result.setLongitudeRad(geoc.getLongitudeRad());
   } else {
     double tmp = SGMiscd::clip(sin(course) * sinDistance / cosLat, -1, 1);
-    double lon = SGMiscd::normalizeAngle(geoc.getLongitudeRad() - asin( tmp ));
-    result.setLongitudeRad(lon);
+    double lon = SGMiscd::normalizeAngle(-geoc.getLongitudeRad() - asin( tmp ));
+    result.setLongitudeRad(-lon);
   }
 }
 
 double
 SGGeodesy::courseRad(const SGGeoc& from, const SGGeoc& to)
 {
-  double diffLon = to.getLongitudeRad() - from.getLongitudeRad();
+  //double diffLon = to.getLongitudeRad() - from.getLongitudeRad();
+  double diffLon = from.getLongitudeRad() - to.getLongitudeRad();
 
   double sinLatFrom = sin(from.getLatitudeRad());
   double cosLatFrom = cos(from.getLatitudeRad());