29#include <GeographicLib/TransverseMercator.hpp>
30#include <GeographicLib/DMS.hpp>
31#include <GeographicLib/Utility.hpp>
32#include <GeographicLib/Geocentric.hpp>
33using namespace GeographicLib;
38void * fgeo_initializeTM(
double a,
double f,
double scaleFactor){
39 TransverseMercator * TMS =
new TransverseMercator(a, f, scaleFactor);
42void fgeo_tm2gd(
void *fgeo,
double easting,
double northing,
double dlon0,
double *dlat,
double *dlon){
44 TransverseMercator * TMS = (TransverseMercator *)fgeo;
45 TMS->Reverse(dlon0,easting,northing,ddlat,ddlon);
49void fgeo_gd2tm(
void *fgeo,
double dlat,
double dlon,
double dlon0,
double *easting,
double *northing){
51 TransverseMercator * TMS = (TransverseMercator *)fgeo;
52 TMS->Forward(dlon0,dlat,dlon,dx,dy);
57void * fgeo_initializeGC(
double a,
double f){
58 Geocentric * GC =
new Geocentric(a, f);
61void fgeo_gc2gd(
void *fgeo,
double X,
double Y,
double Z,
double *dlat,
double *dlon,
double *dh){
62 double ddlat, ddlon, ddh;
63 Geocentric * GC = (Geocentric *)fgeo;
64 GC->Reverse(X,Y,Z,ddlat,ddlon,ddh);
69void fgeo_gd2gc(
void *fgeo,
double dlat,
double dlon,
double dh,
double *X,
double *Y,
double *Z){
71 Geocentric * GC = (Geocentric *)fgeo;
72 GC->Forward(dlat, dlon, dh, dx,dy,dz);