Geoclue providers listed by interface

Position

Provider Accuracy signals Requires
Hostip 3 (locality) No¹ network
Plazes 5 (street) No¹ network
Gsmloc 4 (postalcode) No network, cell
Gpsd 6 (detailed) Yes GPS
Gypsy 6 (detailed) Yes GPS

1) these providers do support signals when used through Geoclue Master

Address

Provider Accuracy signals Requires
Hostip 3 (locality) No¹ network
Plazes 5 (street) No¹ network
Localnet 5 (street) No¹
Manual 5 (street) Yes

1) these providers do support signals when used through Geoclue Master

Velocity

Provider Accuracy signals Requires
Gpsd 6 (detailed) Yes GPS
Gypsy 6 (detailed) Yes GPS

Geocode

Provider Accuracy Requires
Yahoo 5 (street) network
Geonames 4 (postalcode) network

ReverseGeocode

Provider Accuracy Requires
Geonames 4 (postalcode) network

Provider Details

Hostip

This provider uses http://www.hostip.info to get current position and address based on the current public IP address. Dynamic IPs are potentially mis-located, but locations can be edited at the web site. Note that when the website says that a location is "guessed", it is exactly that -- geoclue will not use guessed data. See http://api.hostip.info/ for the actual data.

Plazes

This provider uses http://plazes.com to get current position and address based on current router mac address. New locations (router mac addresses with coordinates and address) can be added by logged in Plazes users. Official Plazes client is unfortunately not available for Linux. For testing purposes one can add a "Plaze" with the web interface and then edit the mac address with curl:

  • curl -u 'PLAZES_USERNAME:PLAZES_PASSWORD' -H 'Accept: application/xml' 'http://plazes.com/presences' -F presence[plaze_id]=PLAZES_ID -F presence[status]='hacking geoclue' -F presence[mac_address]=MAC_ADDRESS

    Manual

This provider exists to let the user specify the current address. The intention is that there "a geoclue panel applet" or any suitable application can provide the UI for this and use the D-Bus interface to update Manual provider address. The interface includes a "valid-for" variable: if it is used, the address will turn invalid after the specified time.

Localnet

This provider does not strictly speaking require an internet connection, but it does require a connection to a router: it uses the current router mac address and a local keyfile to provide Address data. New addresses can be added through d-Bus. Example:

  • dbus-send --print-reply --type=method_call \
          --dest=org.freedesktop.Geoclue.Providers.Localnet \
          /org/freedesktop/Geoclue/Providers/Localnet \
          org.freedesktop.Geoclue.Localnet.SetAddressFields \
          string: "" string:"Finland" string: "" string:"Helsinki" \
          string: "" string: string:"Solnantie 24" 
    After running the above command, Localnet provider will provide that address every time the same router is used. Localnet is especially useful for often visited places (home,office), since it's super fast and low resource but requires adding the address manually.

A geoclue control UI (or any application) could use this provider and Manual provider in the same user interface:

+------------------------------+
| Street:  _____________       |
| City:    _____________       |
| Country: _____________       |
|                              |
| [X] Remember this location   |
|                              |
|                        [OK]  |
+------------------------------+

(Checking 'remember' would mean location would get saved with Localnet)

Gsmloc

This provider uses the Gammu library and http://opencellid.org/ to provide position data. It gets cell identification data (MCC, MNC, LAC, CID) from Gammu and queries a position from opencellid with that data.

There are a couple of problems with this provider: First, a compatible phone and a working .gammurc file are needed. Second, the database does not have a lot of cell locations. Third, a bluetooth query can take a long time if the phone is actually not available.

Gypsy

Gypsy is a gps multiplexing daemon with a D-Bus interface. Gypsy provider requires the option org.freedesktop.Geoclue.GPSDevice to be set. Valid values are GPS bluetooth mac addresses (e.g. 00:02:76:C5:81:BF) and device names (/dev/pgps). For the master provider the gconf key /apps/geoclue/master/org.freedesktop.Geoclue.GPSDevice should be used.

On systems with D-Bus 1.1.2 or newer Gypsy service autostarts when Geoclue tries to use it. With older D-Buses it needs to be started manually.

GPSd

GPSd is a gps daemon that uses TCP sockets for communication. The daemon must be running when the provider starts.

The provider accepts two options org.freedesktop.Geoclue.GPSDevice and org.freedesktop.Geoclue.GPSHost. If these options are not defined, the default GPSd port and localhost will be used.

Yahoo

This provider uses the Yahoo geocoding web service to provide Position data based on given address.

Geonames

This provider uses the Geonames web service to provide geocoding/reverse geocoding service. At the moment reverse geocoding is done using findNearby and geocoding is done using postalCodeSearch and Geonames search