Skip to content

Commit ea985d9

Browse files
committed
alus-it#162: OpenAir: fixed wrong conversion from degree to DMS
1 parent ccba8db commit ea985d9

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/OpenAir.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ bool OpenAir::ParseDegrees(const std::string& dddmmss, double& deg) {
101101
// The OpenAir coordinate string can't be empty
102102
if(dddmmss.empty()) return false;
103103

104-
// The OpenAir coordinate string must contain only numbers and colons ':'
105-
if(std::find_if(dddmmss.begin(), dddmmss.end(), [](char c) { return !std::isdigit(c) && c != ':'; }) != dddmmss.end()) return false;
104+
// The OpenAir coordinate string must contain only numbers, points and colons ':'
105+
if(std::find_if(dddmmss.begin(), dddmmss.end(), [](char c) { return !std::isdigit(c) && c != ':' && c != '.'; }) != dddmmss.end()) return false;
106106

107107
// Tokenize on columns
108108
boost::tokenizer<boost::char_separator<char>> tokens(dddmmss, boost::char_separator<char>(":"));
@@ -113,7 +113,7 @@ bool OpenAir::ParseDegrees(const std::string& dddmmss, double& deg) {
113113
boost::tokenizer<boost::char_separator<char>>::iterator token=tokens.begin();
114114
if ((*token).empty()) return false;
115115
try {
116-
deg = std::stoi(*token);
116+
deg = std::stod(*token);
117117

118118
// Minutes
119119
if (++token != tokens.end()) {

0 commit comments

Comments
 (0)