[PATCH] Improving matching of ISO 6709 GPS format
Tim Wootton
tim at tee-jay.demon.co.uk
Sun Jan 12 13:17:28 UTC 2014
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 <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])")
>
More information about the subsurface
mailing list