Tested local ENU coordinates
parent
94e045e864
commit
60f0c4e51f
|
@ -17,6 +17,8 @@
|
|||
|
||||
#include <GeographicLib/Geocentric.hpp>
|
||||
#include <GeographicLib/UTMUPS.hpp>
|
||||
#include <GeographicLib/LocalCartesian.hpp>
|
||||
|
||||
#include <CppUnitLite/TestHarness.h>
|
||||
|
||||
#include <iostream>
|
||||
|
@ -26,7 +28,7 @@ using namespace std;
|
|||
using namespace GeographicLib;
|
||||
|
||||
// Dekalb-Peachtree Airport runway 2L
|
||||
double lat = 33.87071, lon = -84.30482000000001, h = 274;
|
||||
const double lat = 33.87071, lon = -84.30482, h = 274;
|
||||
|
||||
//**************************************************************************
|
||||
TEST( GeographicLib, Geocentric) {
|
||||
|
@ -63,6 +65,36 @@ TEST( GeographicLib, UTM) {
|
|||
EXPECT_DOUBLES_EQUAL(3751090.08, y, 1e-2);
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
TEST( GeographicLib, ENU) {
|
||||
|
||||
const Geocentric& earth = Geocentric::WGS84;
|
||||
|
||||
// ENU Origin is where the plane was in hold next to runway
|
||||
const double lat0 = 33.86998, lon0 = -84.30626, h0 = 274;
|
||||
LocalCartesian enu(lat0, lon0, h0, earth);
|
||||
|
||||
// From lat-lon to geocentric
|
||||
double E, N, U;
|
||||
enu.Forward(lat0, lon0, h0, E, N, U);
|
||||
EXPECT_DOUBLES_EQUAL(0, E, 1e-2);
|
||||
EXPECT_DOUBLES_EQUAL(0, N, 1e-2);
|
||||
EXPECT_DOUBLES_EQUAL(0, U, 1e-2);
|
||||
|
||||
// From lat-lon to geocentric
|
||||
enu.Forward(lat, lon, h, E, N, U);
|
||||
EXPECT_DOUBLES_EQUAL(133.24, E, 1e-2);
|
||||
EXPECT_DOUBLES_EQUAL(80.98, N, 1e-2);
|
||||
EXPECT_DOUBLES_EQUAL(0, U, 1e-2);
|
||||
|
||||
// From geocentric to lat-lon
|
||||
double lat_, lon_, h_;
|
||||
enu.Reverse(E, N, U, lat_, lon_, h_);
|
||||
EXPECT_DOUBLES_EQUAL(lat, lat_, 1e-5);
|
||||
EXPECT_DOUBLES_EQUAL(lon, lon_, 1e-5);
|
||||
EXPECT_DOUBLES_EQUAL(h, h_, 1e-5);
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
int main() {
|
||||
TestResult tr;
|
||||
|
|
Loading…
Reference in New Issue