The decimal format we had before seemed to want N, S, E or W as the 1st non-whitespace character which is why I used the absence of that as the selector, or did I miss something? If you continue to do that ISO doesn't break the old decimal.

This breaks what seemed a nice side-effect in the ISO format decoding which was if you leave spaces where the awkward degree symbols belong subsurface added them for you.



On 12/01/14 05:37, Miika Turkia wrote:
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 <[email protected]>
---
  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])")


_______________________________________________
subsurface mailing list
[email protected]
http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to