[PATCH] Improving matching of ISO 6709 GPS format

Miika Turkia miika.turkia at gmail.com
Sat Jan 11 21:37:12 UTC 2014


ISO 6709 format dictates that the format includes characters ° (degree),
' and ". If we only test for the coordinates starting with decimal, we
match also the decimal notation on this test. Thus adding test for the
degree sign not to match input as ISO 6709 when coordinates are given in
decimal notation.

Signed-off-by: Miika Turkia <miika.turkia at gmail.com>
---
 qthelper.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qthelper.cpp b/qthelper.cpp
index 9d503cb..cd47209 100644
--- a/qthelper.cpp
+++ b/qthelper.cpp
@@ -119,7 +119,7 @@ bool parseGpsText(const QString& gps_text, double *latitude, double *longitude)
 
 	// ISO 6709 Annex D representation
 	// http://en.wikipedia.org/wiki/ISO_6709#Representation_at_the_human_interface_.28Annex_D.29
-	if (gps_text.at(0).isDigit()) {
+	if (gps_text.at(0).isDigit() && gps_text.count(UTF8_DEGREE) > 0) {
 		gpsStyle = ISO6709D;
 		regExp = QString("(\\d+)[" UTF8_DEGREE "\\s](\\d+)[\'\\s](\\d+)([,\\.](\\d+))?[\"\\s]([NS%1%2])"
 					 "\\s*(\\d+)[" UTF8_DEGREE "\\s](\\d+)[\'\\s](\\d+)([,\\.](\\d+))?[\"\\s]([EW%3%4])")
-- 
1.8.3.2



More information about the subsurface mailing list