12 #ifndef DtUtmCoordinateConverter_H_
13 #define DtUtmCoordinateConverter_H_
40 virtual void init(
double lat,
double lon,
long zone = 0,
int useStandardOffsets = 0);
46 virtual void init(
double lat,
double lon,
double z,
long zone = 0,
int useStandardOffsets = 0);
51 virtual void init(
const DtGeodeticCoord&
origin,
long zone = 0,
int useStandardOffsets = 0);
56 virtual void init(
const DtDegMinSec& lat,
const DtDegMinSec& lon,
long zone = 0,
int useStandardOffsets = 0);
61 virtual void init(
const DtDegMinSec& lat,
const DtDegMinSec& lon,
double z,
long zone = 0,
int useStandardOffsets = 0);
66 virtual void init(
long zone,
char hemisphere =
'N',
bool useMpiDefaultOrigin =
true);
71 virtual void init(
double falseOriginX,
double falseOriginY,
double falseOriginZ,
72 long zone,
char hemisphere =
'N',
bool useMpiDefaultOrigin =
true);
79 virtual bool init(
const std::string& originstring);
82 virtual std::string stringRep();
86 virtual const DtGeodeticCoord&
origin()
const;
89 virtual bool useStandardOffsets()
const;
92 virtual long zone()
const;
93 virtual void setZone(
long zone);
96 virtual DtDegMinSec latRef()
const;
97 virtual DtDegMinSec longRef()
const;
103 virtual DtUtmReferencePoint* referencePoint()
const;
108 virtual void setupTopoFrame(
const DtVector& truth);
114 std::string parseUtm(
const DtDegMinSec& lat,
const DtDegMinSec& lng,
bool bUseStandardOffsets,
long zone );
119 static double calculateUtmLongitudeOrigin(
double zone,
bool useMpiDefaultOrigin =
true);
121 static void calculateUtmLatLonOrigin(
double zone,
double falseOriginX,
double falseOriginY,
122 double& latitude,
double& longitude,
bool useMpiDefaultOrigin =
true);
124 static int utmGridZoneFromLatLon(
double latitudeInDegrees,
double longitudeInDegrees );
132 static void initUtmReferencePointForZone(
double longitude,
bool standardOffsets,
133 const DtMapDatum& datum, DtUtmReferencePoint& refToInitialized );
136 static double utmZoneToCentralMeridian(
int zone );