GeoClue2
Bastien Nocera
hadess at hadess.net
Wed Apr 20 05:15:01 PDT 2011
On Sun, 2011-04-17 at 17:49 +0200, Eckhart Wörner wrote:
> Hi everybody,
>
> when I first encountered GeoClue some time ago, I immediately liked the idea of
> it. However, I was somehow never really satisfied with its design. Therefore,
> in the last few days I tried to write down my vision of how its D-Bus API
> should look like, and now present it here for discussion. I'll start with the
> problems the old API has in my eyes, and then present a new API that hopefully
> overcomes these problems.
<snip>
This is the API I came up with. The GeoclueLocation would contain things
like the coordinates (X, Y, Z), timestamps, eventually speed, course or
heading if the hardware or service makes it available. The only required
fields are the long/lat, and all the other data is "as offered by the
device or service" (some web services also give you addresses, which
might be useful for some applications, we wouldn't want to drop that if
it were given).
Note that this does not include any APIs *just* for the compass,
altimeters or other pieces of equipment one might have.
Note that the split between Manager and Client is to avoid data from one
D-Bus client leaking into another.
Internally, the providers list would be handled by a single object.
Manager
-------
Methods
-------
object path GetClientObject()
Retrieves a client object, which will be used by the application
Properties
----------
gboolean Enabled
whether geoclue is enabled at all
Client
------
Methods
-------
Start()
Start receiving events about the current location
Stop()
Stop receiving events about the current location
Properties
----------
enum GeoclueAuthorisationStatus
whether the application is allowed to connect to the
location service
string Usage
what the application is using Geoclue for
GeoclueLocation Location
a complex type representing the last updated location
int DistanceThreshold
the minimum distance between notifications
enum GeoclueAccuracy
accuracy level requested by the application
Signal
------
LocationUpdated(GeoclueLocation old, GeoclueLocation
new)
the new location
More information about the GeoClue
mailing list