Switching
from Cell ID to Terminal-Assisted Positioning
How to get an assisted GPS terminal-assisted position when the
network positioning preference is SUPL.
SUPL
(Secure User Plane Location) enables a device to communicate with a SUPL server
over an IP connection. A client application requests a position from the network
using SUPL. To receive the position the client must be able to connect to
the Location subsystem. The client must then select the Network Proxy PSY
(NPP) module as its source. The NPP module must be configured to use the SUPL
PSY.
While the SUPL PSY module can use cell-based positioning, enhanced
cell-based positioning and AGPS terminal-assisted positioning, the SUPL Network
Server may optionally use AGPS terminal-assisted positioning, though this
is not usually advised.
With AGPS terminal-assisted positioning the client
application therefore requests a position from the network using an AGPS Terminal.
The steps below describe the process.
- The client must
open a connection to the server by calling RPositionServer::Connect().
- The client must
then open RPositioner by calling RPositioner::Open() and
specify the UID of the Network Proxy PSY.
- The client application
sends a location request to the Location subsystem by calling RPositioner::NotifyPositionUpdate().
- The Location subsystem
forwards the location request to the SUPL Protocol module by calling CLbsNetworkProtocolBase::RequestNetworkLocation().
(In the default configuration SUPL is used for cell-based positioning).
- The SUPL protocol
module communicates with an external SUPL server, which decides to use terminal-assisted
GPS positioning instead of cell-based positioning.
- The SUPL Protocol
Module requests a measurement update from the Location subsystem by calling MLbsNetworkProtocolObserver::ProcessLocationRequest().
- The Location subsystem
requests a measurement update from the AGPS module by calling CLbsLocationSourceGpsBase::RequestLocationUpdate().
- The AGPS module
produces a position update by calling MLbsLocationSourceGpsObserver::UpdateLocation().
- The Location subsystem
forwards the measurement update to the network by calling CLbsNetworkProtocolBase::ProcessLocationUpdate().
- The measurement
is sent to the SUPL server, which calculates and returns the position.
- The SUPL Protocol
module returns the cell-based position by calling MLbsNetworkProtocolObserver::ProcessLocationUpdate().
- The Location subsystem
completes the client request.
SUPL has enabled the
client application to receive the AGPS terminal-assisted position from the
network.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.