[PATCH] Improving matching of ISO 6709 GPS format

Miika Turkia miika.turkia at gmail.com
Sun Jan 12 23:37:15 UTC 2014


Google format seems to have comma as separator: 31.203405,-67.51465
However, how does the decimal point-comma differences between different
locales affect this, or does it? We could, of course, check if we have odd
number of commas in the coordinates to make sure the comma we are looking
for is separator between long and lat, not a decimal point.

miika


On Mon, Jan 13, 2014 at 9:28 AM, Tim Wootton <tim at tee-jay.demon.co.uk>wrote:

>  does the google maps format separate lat from long with a comma? if so
> that might be the better differentiator as the ISO format requires
> space.not comma. i.e. anything not containing a comma must be ISO?
>
>
> On 13/01/14 04:36, Miika Turkia wrote:
>
>  Decimal format that Google maps uses does not have the NSEW characters,
> just pure numbers (with minus sign in the front if needed). And we really
> need to support the copy-paste format from Google maps, IMO.
>
>  To re-enable the side-effect feature you ask for would require changing
> the degree sign to '. (Patch attached)
>
> miika
>
> On Sun, Jan 12, 2014 at 11:17 PM, Tim Wootton <tim at tee-jay.demon.co.uk>wrote:
>
>> 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])")
>>>
>>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hohndel.org/pipermail/subsurface/attachments/20140113/fe71c1da/attachment.html>


More information about the subsurface mailing list