10 #if !defined(GEOGRAPHICLIB_DMS_HPP) 11 #define GEOGRAPHICLIB_DMS_HPP 1 18 # pragma warning (push) 19 # pragma warning (disable: 4251 4127) 94 static void replace(std::string& s,
const std::string& pat,
char c) {
95 std::string::size_type p = 0;
96 int count = c ? 1 : 0;
99 if (p == std::string::npos)
101 s.replace(p, pat.length(), count, c);
104 static const char*
const hemispheres_;
105 static const char*
const signs_;
106 static const char*
const digits_;
107 static const char*
const dmsindicators_;
108 static const char*
const components_[3];
109 static Math::real NumMatch(
const std::string& s);
110 static Math::real InternalDecode(
const std::string& dmsa, flag& ind);
244 static Math::real Decode(
const std::string& dms, flag& ind);
259 {
return d + (m + s / 60) / 60; }
284 static void DecodeLatLon(
const std::string& dmsa,
const std::string& dmsb,
286 bool longfirst =
false);
299 static Math::real DecodeAngle(
const std::string& angstr);
313 static Math::real DecodeAzimuth(
const std::string& azistr);
343 static std::string Encode(
real angle, component trailing,
unsigned prec,
344 flag ind = NONE,
char dmssep =
char(0));
364 static std::string
Encode(real angle,
unsigned prec,
flag ind = NONE,
365 char dmssep =
char(0)) {
368 prec < 2 ? DEGREE : (prec < 4 ? MINUTE : SECOND),
369 prec < 2 ? prec : (prec < 4 ? prec - 2 : prec - 4),
380 static void Encode(real ang, real& d, real& m) {
381 d = int(ang); m = 60 * (ang - d);
392 static void Encode(real ang, real& d, real& m, real& s) {
393 d = int(ang); ang = 60 * (ang - d);
394 m = int(ang); s = 60 * (ang - m);
401 #if defined(_MSC_VER) 402 # pragma warning (pop) 405 #endif // GEOGRAPHICLIB_DMS_HPP
#define GEOGRAPHICLIB_EXPORT
GeographicLib::Math::real real
Header for GeographicLib::Utility class.
static std::string Encode(real angle, unsigned prec, flag ind=NONE, char dmssep=char(0))
Convert between degrees and the DMS representation.
Namespace for GeographicLib.
static std::string str(T x, int p=-1)
static Math::real Decode(real d, real m=0, real s=0)
static void Encode(real ang, real &d, real &m, real &s)
Header for GeographicLib::Constants class.
static void Encode(real ang, real &d, real &m)