Quality Profiles Overview

A quality profile defines the minimum acceptable horizontal and vertical accuracy required for a location fix and the maximum acceptable time to obtain the fix. A quality profile is used when the client that requests a position fix does not specify any position quality criteria.

Sets of acceptable quality parameters are stored in lbsprofile.ini. The Quality Profile API enables LBS subsystem components to read the quality profile data stored in that file.

An LBS administration setting determines which quality profile is used for different types of location request (MO-LR self locate, MO-LR transfer to third party and MT-LR).

lbsprofile.ini

A typical quality profile file lbsprofile.ini is shown below.

#
# Quality Profiles for LBS services
#

[1]
ProfileID= 0
MaxTime= 130
HorizontalAccuracy= 50
VerticalAccuracy= 1000
MeasurementInitialTime= 15
MeasurementIntermediateTime= 5
FinalNetPositionLag= 10
    
[2]
ProfileID= 1
MaxTime= 120
HorizontalAccuracy= 20
VerticalAccuracy= 1000
MeasurementInitialTime= 15
MeasurementIntermediateTime= 5

The following table describes the purpose of the parameters in lbsprofile.ini.

Parameter Type Description

ProfileID

Integer

The ID of the profile. This must be a unique value for each quality profile defined in this file. This value is used as a key from the administration repository file.

MaxTime

Integer

The default maximum time (in seconds) to calculate a location fix for the profile. This is the time to obtain GPS measurements and use them to calculate a fix for autonomous or terminal based GPS mode. See also FinalNetPositionLag below.

HorizontalAccuracy

Float

The maximum acceptable error (in metres) in horizontal position for this quality profile.

VerticalAccuracy

Float

The maximum acceptable error (in metres) in vertical position for this quality profile.

MeasurementInitialTime

Float

The maximum time (in seconds) to get the first GPS measurements (but not a GPS location fix). Used in terminal assisted GPS mode.

MeasurementIntermediateTime

Float

The maximum time (in seconds) to get subsequent GPS measurements after the first measurements have been received.

FinalNetPositionLag

Integer

An additional time (in seconds) that the Location Server waits to receive a position update for a MO-LR self-locate before it notifies the client that the request has timed out. This additional time is to allow the "final position" to be retrieved from the network. The final position may have been calculated by a network server for Terminal Assisted Mode.

For example, if a client application calls RPositioner::NotifyPositionUpdate(TPositionInfoBase &aPosInfo, TRequestStatus &aStatus) and the profile is configured for MO-LR self locate, then the Location Server waits a total of MaxTime + FinalNetPositionLag seconds to receive a position before it completes the request with aStatus = KErrTimedOut.

Note: if a client application sets an update timeout by calling RPositioner::SetUpdateOptions(TPositionUpdateOptions& options) and has set a timeout on the options by calling options.SetUpdateTimeout(), then the Location Server waits a total of options.UpdateTimeOut() + FinalNetPositionLag to receive a position before it completes the request with aStatus = KErrTimedOut. Where FinalNetPositionLag is omitted from a profile, it is assumed to be 0.