Thursday, January 30, 2014

I just rolled out Geoclue 2.1.1! Since my last post with Geoclue update, there has been lots of changes. You can find a list of all the changes here but here are the highlights:

Modem geolocation: If you got a 3GPP modem, geoclue will now be able to use that to locate you (with neighborhood-level accuracy) using opencellid.org. Additionally if your modem has GPS capability, geoclue can use that as well and as you know GPS is the most reliable geolocation source.

One issue with GPS currently is that it takes a while before it can get a lock on and reason for that is that we currently have no support for A-GPS. I'll be talking with Aleksander Morgado during the weekend about how we can add that support but if I've understood correctly, it will need more work in ModemManager than geoclue now that it has all these other sources.

Geoclue locating me using 3GPP source

WiFi geolocation: In my last relevant blog post, I mentioned that we'll be implementing this using Open WLAN Map project but around the same time Mozilla announced their own public geolocation API. After careful consideration, I decided to go for Mozilla Location Service. So geoclue now has a geolocation source that makes use of this public service.

This service being very new, doesn't have a lot of data. If you want to help us (GNOME), Mozilla and all users of this service and geoclue, you can gather data using MozStumbler android application, which should work on most (if not all) android phones. I also implemented data gather in geoclue but it requires a GPS-enabled 3GPP modem and (at least for now) needs to be explicitly enabled in our configuration file.

An advantage of using Mozilla Location Service is that it offers a Google geolocation compatible API as well. Geoclue uses this compatibility API and you can make it use Google's geolocation service instead by tweaking an option in our configuration file. Please note that geoclue is not responsible for any misuse of Google API. Please do read their ToS before use and you'll need to get yourself a key before you can use their API.

API to check if geolocation service is in use and next version of GNOME Shell will make use of it to show an icon in the panel to indicate to user that their location is being accessed.

GNOME Shell indicator for 'location services in use'

So keeping all this in mind, I'm pretty happy with our progress on geoclue2. I will be in Brussels this weekend. Unfortunately my submission about geo* to desktop devroom didn't make it to the shortlist (which I hear is half as short as last year's) but feel free to talk to me about geolocation and maps etc if you are around.