Convert to UTM
parent
32455c3817
commit
94e045e864
|
@ -16,6 +16,7 @@
|
|||
*/
|
||||
|
||||
#include <GeographicLib/Geocentric.hpp>
|
||||
#include <GeographicLib/UTMUPS.hpp>
|
||||
#include <CppUnitLite/TestHarness.h>
|
||||
|
||||
#include <iostream>
|
||||
|
@ -24,30 +25,47 @@ using namespace std;
|
|||
//using namespace gtsam;
|
||||
using namespace GeographicLib;
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
||||
TEST( GeographicLib, Geocentric) {
|
||||
|
||||
Geocentric earth(Constants::WGS84_a(), Constants::WGS84_f());
|
||||
|
||||
// Dekalb-Peachtree Airport runway 2L
|
||||
double lat = 33.87071, lon = -84.30482000000001, h = 274;
|
||||
|
||||
//**************************************************************************
|
||||
TEST( GeographicLib, Geocentric) {
|
||||
|
||||
// From lat-lon to geocentric
|
||||
double X, Y, Z;
|
||||
earth.Forward(lat, lon, h, X, Y, Z);
|
||||
Geocentric::WGS84.Forward(lat, lon, h, X, Y, Z);
|
||||
EXPECT_DOUBLES_EQUAL(526, X/1000, 1);
|
||||
EXPECT_DOUBLES_EQUAL(-5275, Y/1000, 1);
|
||||
EXPECT_DOUBLES_EQUAL(3535, Z/1000, 1);
|
||||
|
||||
// UTM is 45N 250694.42 3751090.08
|
||||
// Obtained by
|
||||
// http://geographiclib.sourceforge.net/cgi-bin/GeoConvert?input=33.87071+84.30482000000001&zone=-3&prec=2&option=Submit
|
||||
|
||||
// From geocentric to lat-lon
|
||||
double lat_, lon_, h_;
|
||||
Geocentric::WGS84.Reverse(X, Y, Z, lat_, lon_, h_);
|
||||
EXPECT_DOUBLES_EQUAL(lat, lat_, 1e-5);
|
||||
EXPECT_DOUBLES_EQUAL(lon, lon_, 1e-5);
|
||||
EXPECT_DOUBLES_EQUAL(h, h_, 1e-5);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
//**************************************************************************
|
||||
TEST( GeographicLib, UTM) {
|
||||
|
||||
// From lat-lon to UTM
|
||||
int zone;
|
||||
bool northp;
|
||||
double x, y;
|
||||
UTMUPS::Forward(lat, lon, zone, northp, x, y);
|
||||
|
||||
// UTM is 16N 749305.58 3751090.08
|
||||
// Obtained by
|
||||
// http://geographiclib.sourceforge.net/cgi-bin/GeoConvert?input=33.87071+-84.30482000000001&zone=-3&prec=2&option=Submit
|
||||
EXPECT(UTMUPS::EncodeZone(zone, northp)=="16N");
|
||||
EXPECT_DOUBLES_EQUAL(749305.58, x, 1e-2);
|
||||
EXPECT_DOUBLES_EQUAL(3751090.08, y, 1e-2);
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
int main() {
|
||||
TestResult tr;
|
||||
return TestRegistry::runAllTests(tr);
|
||||
}
|
||||
/* ************************************************************************* */
|
||||
//**************************************************************************
|
||||
|
|
Loading…
Reference in New Issue