← Back to team overview

ubuntu-phone team mailing list archive

GPS - does it work, how is it supposed to work?

 

I just came back from a three-week backpacking holiday.  My plan was to
test Ubuntu Touch by carrying my MX4 as my primary phone, falling back
to an iPhone 4 when necessary.  That plan lasted about a day and a
half.  After that I used the iPhone and rarely bothered with the MX4.

I have a long list of bugs to file, but the deal-breaker was GPS.  I
absolutely rely on GPS when travelling.  But GPS on Ubuntu Touch
basically didn't work at all.  To the point where I don't even know if
or how it's supposed to work.  Maybe someone can enlighten me, point me
to the existing bug reports?

My main point of comparison is my old Nokia N900 running Maemo, with
Mappero.  Mappero was hugely frustrating but is leaps and bounds ahead
of anything on Ubuntu.

First of all, GPS doesn't seem to work when the phone is offline.  Is
this a known issue?  Is it hardware related at all?  The iPhone
performed very well, especially with Here Maps.  One interesting way it
beat Mappero is that Mappero would only show me a location once it had
got a full fix, whereas Here Maps quickly gives me a circle at least a
few tens of kilometers across.  That's actually useful, for example when
you suddenly wake up because the night bus has stopped and you need to
know if it's your stop or not.

Second, the main map app I'm using is OSMTouch.  If I open that app it
doesn't seem to automatically turn on GPS.  I have to separately turn it
on in the notifications area.  This is surely not how it's supposed to
work, right?

There are huge problems with OSMTouch, but the reason I'm using that one
is that it at least caches map tiles for offline use.  Possibly other
apps work better, but without offline functionality they're all
irrelevant to me.

However, with OSMTouch, even when I'm online and I get a fix I can't
zoom to my current location.  After tapping the pin icon, often as not I
get a message like "geolocation failed".  It sometimes works, sometimes
doesn't.  There's very little feedback as to what the problem is.

OSMTouch's offline tile caching also doesn't actually work reliably
enough to be useful.  I deliberately focus on a map I'd like to keep,
then quit the app.  When I next load that map many of the tiles are
missing - seemingly at random.

I haven't found any map app that allows me to pin points of interest and
keep them.  Even if there are no actual maps GPS can still be useful
this way, for example noting down the location of the hotel or park
entrance so you can always find your way back.  I definitely shouldn't
have to be online for this - that's the one area where Here maps is a
complete failure.

Coming back to offline GPS use, I've used that on a bunch of devices
now.  The thing is, it's always slow to get a fix.  Have you ever had
that thing where you're lost, in a dodgy neighbourhood, in a country
where you don't speak the language, and it's kinda dark, and you're
holding your phone up above your head trying to get a good GPS fix, and
you're wondering if your phone will notice the satellites before the
local muggers notice your phone?  I get that a lot.  In that situation,
what I want to know is should I stay still another minute hoping to get
a fix, or should I just walk somewhere else and see if the reception is
better?

What I liked about Mappero is that it gave me some insight into what was
going on, in the form of a bar chart of the signal strength from each
satellite.  If there are only four or five bars, time to move on.  If
there are eight or nine bars and they're reasonably strong, give it a
minute and it'll have a fix.  I was able to use this to figure out that
standing still works best.  Any feedback at all allows you to at least
experiment, rather than just "geolocation failed".  Is there any API in
Ubuntu Touch that exposes this information?  Is it even possible with
the chipsets being used?

Even better should be possible: I know that there is an "ephemeris"
which needs to be downloaded from the satellite, or the internet if
available.  I'd love to be able to see the status of this data too,
since this is surely much of the reason for the delay.  Like, a progress
meter of the download, which location it's for, how stale it is etc.  Is
there an API for that?

Of course all of this is stuff that should sit under the covers and not
bother the user.  But when you really need GPS, you GODDAMN REALLY NEED
IT.  My worst case was being in a national park, trapped, alone, soaked,
face bleeding, on the wrong side of a river, and sobbing into a phone
begging for help from a lodge owner who spoke really good Russian and
Kyrgyz but not that great English.  Admittedly I never managed to tell
him the location that my N900 was efficiently reporting, but at least I
knew where I was ;-)

Anyway, GPS is so important to me while travelling that I usually carry
two GPS devices in case I lose one.  But I'm not willing to carry three
phones with me.  If things haven't dramatically improved by the next
time I go travelling I'll just have to reflash my MX4 with Flyme.



Follow ups