Location quality

I notice from a reading of the current draft that the topic of accuracy and quality is a contentious one.

There is a tension between simplicity (and the usability and clarity provided) and use cases that require additional flexibility.

My view is that PositionOptions, as an optional parameter, is a reasonable compromise.  It's important to get the contents right though.

The timeout parameter is the most important aspect of this.  Without a parameter like this, there is no reliability in the interface.  Allowing unbounded time doesn’t work, but setting arbitrary limits in the browser leads to the exclusion of some really useful positioning methods.  Big tick.

Does the absence of the timeout leave it up to the browser?  A recommended default would help so that the lazy users can be protected from themselves.  I'm going to suggest that 5 seconds will get you good location, even using GPS if you have assistance data; but you can pick any value.

The concept of a timeout on watchPosition is interesting - if the browser has determined that the position has changed, why would it take the same time to acquire another position?  In this case, the timeout takes on a slightly different meaning: i.e. please let me know when the position changes, _within this time of the change_.  The subtlety might be lost on your audience.  Perhaps you need to discuss the full implications of this.  I'll send a follow-up on watchPosition that will examine this further.

The enableHighAccuracy flag gets a big cross.  Such a thing is awfully ambiguous and subjective.  Better to be specific.  

3GPP have a lot of experience in this area and they have many protocols that can be learned from.  In place of enableHighAccuracy, instead specify a target uncertainty (notice that I didn't use the word accuracy).  Different values for horizontal and vertical uncertainty are common.  These targets would be "soft" in that if the uncertainty target couldn't be met, the result could still be provided (leaving the app as the final judge).

Another problem relating to quality that you will have to overcome is caching.  This is particularly common for location.  Another parameter that specifies how old location information can be will force the location provider to bypass any caching and actually generate information.  3GPP call this maximumAge and you can specify this in relative or absolute time.

PositionOptions could be improved; I think that with the following parameters, it becomes more useful, without hurting usability too much:

  interface PositionOptions {
    attribute long timeout;
    attribute long maximumAge;
    attribute long targetHorizontalUncertainty;
    attribute long targetVerticalUncertainty;
  };

Regards,
Martin

p.s. you can read more on the same topic in a draft that I submitted to the IETF GEOPRIV WG: http://tools.ietf.org/html/draft-thomson-geopriv-location-quality

------------------------------------------------------------------------------------------------
This message is for the designated recipient only and may
contain privileged, proprietary, or otherwise private information.  
If you have received it in error, please notify the sender
immediately and delete the original.  Any unauthorized use of
this email is prohibited.
------------------------------------------------------------------------------------------------
[mf2]

Received on Friday, 17 October 2008 07:48:04 UTC