Bug 262330

Summary: [Patch] Wrong current location in Marble, GPSD reports correct position
Product: [Applications] marble Reporter: Ralph Müller-Welt <ralph>
Component: generalAssignee: marble-bugs
Status: RESOLVED FIXED    
Severity: normal CC: nienhueser
Priority: NOR    
Version: unspecified   
Target Milestone: 0.10 (KDE 4.5)   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.6.1
Sentry Crash Report:

Description Ralph Müller-Welt 2011-01-06 19:56:10 UTC
Version:           unspecified (using KDE 4.5.1) 
OS:                Linux

I have a gpsd running, which gives correct position data.
Ex. lat="51.521001" lon="6.945187"
gpsd: 2.94 (revision 2010-05-17T16:11:43)

But Marble shows wrong current location.
Lon: 6°00'O(E) Lat: 51°N
Qt: 4.7.0
KDE: 4.5.1 (KDE 4.5.1)
Marble – Schreibtischglobus: 0.10.1


Reproducible: Always

Steps to Reproduce:
Set marble to show current location from gpsd.

Actual Results:  
Ex. lat="51.521001" lon="6.945187" is interpreted as Lon: 6°00'O(E) Lat: 51°N

Expected Results:  
Ex. lat="51.521001" lon="6.945187" to be interpreted as Lon: 6°56'O(E) Lat: 51°31'N or so.

OS: Linux (i686) release 2.6.35-24-generic
Compiler: cc

I think there is a type calculation mismatch..
I'm currently upgrading to 4.5.4 and retesting...
Comment 1 Ralph Müller-Welt 2011-01-07 06:23:09 UTC
Still there in:
Qt: 4.7.0
KDE: 4.5.5 (KDE 4.5.5)
Marble – Schreibtischglobus: 0.10.3
Comment 2 Dennis Nienhüser 2011-01-12 22:26:46 UTC
Thanks for reporting this bug. I thought it was fixed in a recent gpsd version, but apparently that's not the case and we have to work around it.

There's a patch in reviewboard pending now: http://reviewboard.kde.org/r/6327/
Comment 3 Dennis Nienhüser 2011-01-12 22:31:23 UTC
Until a fixed version arrives in your distribution, you can work around the problem by starting Marble like this:

LC_NUMERIC=C marble

If that doesn't work, use

LC_ALL=C marble

This will change things like the decimal point in Marble's interface, however.
Comment 4 Ralph Müller-Welt 2011-01-13 23:28:34 UTC
LC_NUMERIC=C marble   Works fine.

As i interprete Lon/Lat it uses per definition always a dotted seperator, so locale should be ignored.

GGA - Global Positioning System Fix Data
 Time, Position and fix related data fora GPS receiver.

                                                      11
        1         2       3 4        5 6 7  8   9  10 |  12 13  14   15
        |         |       | |        | | |  |   |   | |   | |   |    |
 $--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh<CR><LF>

 Field Number: 
  1) Universal Time Coordinated (UTC)
  2) Latitude
  3) N or S (North or South)
  4) Longitude
  5) E or W (East or West)
  6) GPS Quality Indicator,
     0 - fix not available,
     1 - GPS fix,
     2 - Differential GPS fix
  7) Number of satellites in view, 00 - 12
  8) Horizontal Dilution of precision
  9) Antenna Altitude above/below mean-sea-level (geoid) 
 10) Units of antenna altitude, meters
 11) Geoidal separation, the difference between the WGS-84 earth
     ellipsoid and mean-sea-level (geoid), "-" means mean-sea-level
     below ellipsoid
 12) Units of geoidal separation, meters
 13) Age of differential GPS data, time in seconds since last SC104
     type 1 or 9 update, null field when DGPS is not used
 14) Differential reference station ID, 0000-1023
 15) Checksum

excerp of NMEA.txt coming with GPSDrive...
Comment 5 Dennis Nienhüser 2011-01-27 21:20:32 UTC
SVN commit 1217540 by nienhueser:

Work around gpsmm parsing gpsd output (C locale) with current locale.
CCBUG: 262330
REVIEW: 6327

 M  +8 -0      GpsdConnection.cpp  
 M  +3 -0      GpsdConnection.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1217540
Comment 6 Dennis Nienhüser 2011-01-27 21:22:55 UTC
SVN commit 1217547 by nienhueser:

Work around gpsmm parsing gpsd output (C locale) with current locale.
CCBUG: 262330
REVIEW: 6327
Backport of commit 1217540.

 M  +8 -0      GpsdConnection.cpp  
 M  +3 -0      GpsdConnection.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1217547
Comment 7 Dennis Nienhüser 2011-01-27 21:24:59 UTC
SVN commit 1217548 by nienhueser:

Work around gpsmm parsing gpsd output (C locale) with current locale.
BUG: 262330
REVIEW: 6327
FIXED-IN: 4.6.1
Backport of commit 1217540.

 M  +8 -0      GpsdConnection.cpp  
 M  +3 -0      GpsdConnection.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1217548