Bug 29989

Summary: aggregated signaling for position/velocity
Product: GeoClue Reporter: Stefan Kost <ensonic>
Component: GeneralAssignee: Geoclue Bugs <geoclue-bugs>
Status: RESOLVED WONTFIX QA Contact: Geoclue Bugs <geoclue-bugs>
Severity: enhancement    
Priority: medium CC: martvirt, wolf+meego
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Stefan Kost 2010-09-03 01:21:53 UTC
it seems that the separate signaling for position, velocity, .. has been taken from gypsy design to some extend. For the application it would be nice to subscribe to the events as a whole instead, like receiving one signal iforming about the position and address.

I wonder if. e.g. the master provider could aggregate updates (if it knows what updates are expected).
Comment 1 Wolf Bergenheim 2010-09-06 10:10:11 UTC
In the case where the client has set a minimum time period when he wants update info, then it could make sense. The master provider could cache the data and then when the timer expires it would send everything cached up to that point.

The longer the timeout the larger the inaccuracy will be, and indeed in mobile devices you simply trade accuracy for battery life, with an acceptable margin of error. When battery life is not an issue, this thing probably won't make sense and you probably want to get every single update, when they happen (like in a car navigation system).
Comment 2 Javier Fernández 2010-09-14 09:03:00 UTC
One possible different approach would be to implement the cache system in the QT Mobility bindings side. A custom QGeoPositionInfoSource class could be implemented, which would provide a QGeoPositionInfo structure with the cached data.
Comment 3 Martti Virtanen 2010-09-16 06:42:51 UTC
It would be very good to combine position and velocity as they form one positioning fix. Address shouldn't be there since it takes some time to find out (if it is needed) and would thus delay delivery of the fix.

Basically you get both at the same time in today's solutions. Having separate messages is a relic from gypsy. 

If these are delivered separately, on Qt side you have combine them together, which means delay and/or uncertainty which parts together form the fix.
Comment 4 Ross Burton 2010-09-16 08:33:27 UTC
I agree that position and velocity should be merged.

I also agree with Martti that position and address shouldn't be merged because whilst the position is known as precisely as possible at any instant, the address will need to be calculated or looked up, which means that it should be delivered asynchronously from the position signals.

Thus, changing the title to remove the address signal.
Comment 5 Jussi Kukkonen [inactive] 2010-09-20 05:31:07 UTC
From the GPS perpsective Ross sums it up nicely. It looks a bit different for, say access point or cell positioning:
* address data may be available at the same time as position, two
  queries/signals are as unnecessary as with velocity and position on GPS.
* velocity will probably never be available from anything else than GPS.


> If these are delivered separately, on Qt side you have combine them together,
> which means delay and/or uncertainty which parts together form the fix.

I'm not really against these changes, but I am wondering what the real need is: what exactly needs the specific combination of position signal + velocity signal?
Comment 6 Wolf Bergenheim 2010-09-20 15:15:49 UTC
(In reply to comment #5)
> * velocity will probably never be available from anything else than GPS.

Maybe it depends on the platform? I suppose that in an IVI or something similar there  could have other sources of speed, and combine that with an electronic compass, and you get velocity at a given time, but this time without a position fix, which might come form something else, especially when GPS is unavailable (in a city, with tall buildings, or driving in a tunnel).

> > If these are delivered separately, on Qt side you have combine them together,
> > which means delay and/or uncertainty which parts together form the fix.
> 
> I'm not really against these changes, but I am wondering what the real need is:
> what exactly needs the specific combination of position signal + velocity
> signal?

The Qt Mobility Location API has basically signals only for updated position. You can add on other info to these position signals, like speed and heading (velocity). But there is no mechanism to provide the additional info without a location, so in that API the provider must always provide a fix first and foremost.

See http://doc.qt.nokia.com/qtmobility-1.0-tp/qgeopositioninfosource.html#positionUpdated for info on the positionUpdated signal which delivers a QGeoPositionInfo (http://doc.qt.nokia.com/qtmobility-1.0-tp/qgeopositioninfo.html) as the payload.
Comment 7 Jussi Kukkonen [inactive] 2010-09-22 04:57:01 UTC
Bug 27891 is the other side of the coin: not everyone sees geoclue as a GPS-wrapper... now we just need to figure out a solution that fills both needs -- at least I think that should be the goal.

Longer-term, s single "Location" interface with a single changed-signal would solve both problems but we'd have to deal with client needs and provider capabilities inside it. I realize Stefan and Martti consider separate messages "a relic from Gypsy" but originally we (Iain and me) figured interfaces would be a clean way to do handle the basic needs/capabilities. It's possible that this was a bad decision.

> The Qt Mobility Location API has basically signals only for updated position.

Right, I realized this after sending the message... I don't like the cached/delayed signal idea either, that's just wrong for the clients that actually use constant GPS location.
Comment 8 Stefan Kost 2010-09-22 07:23:12 UTC
I have been thinking more on this in the meantime and also agree that there are several geo information details that can be provided by various providers at varying rates. In that sense the qt api is a bit limited. Thus the aggregation should probably done at that level.

It could cache all kind of details and whenever it gets a position update, aggregate and send them.
Comment 9 Juha Vuolle 2010-10-06 18:10:42 UTC
Read through this bug as part of analyzing what and how the QtLocation satellites and positioning for MeeGo should be done. Currently I think the way to go is to create a sufficient combining logic for the velocity and positioning data at Qt binding level.
Comment 10 Zeeshan Ali 2013-09-09 14:50:23 UTC
Closing all bugs on old geoclue. If your bug still applies to new geoclue, please do re-open, I really don't have time to go through each and every bug and evaluate separately. :( Apologies for any inconvenience caused by this change.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.