Description:
The Trace method retrieves periodic updates about
the current location of the device based on a predefined update interval.
This is an asynchronous method.
Syntax:
Trace(parameters:Object, callback:Object):Object
Arguments:
parameters:
This is an object that specifies what type of device location information is returned and how. For more information about the object properties and how to define them, see section Parameters for retrieving location information.
callback:
The callback argument is the name of the method
that is executed when Trace has results or status information
to return. You must define this method separately. Follow the instructions
in section Defining the callback handler for an asynchronous method to
define the callback method.
Return value:
The Trace method returns an object that contains
the initial return value for the asynchronous call it started (see the following
table). The actual location information is returned by the callback method in the ReturnValue property of its result object.
The returned information is described in section Returned location information.
|
Property |
Description |
Value |
|---|---|---|
|
|
This is a number used as an identification to match transactions started
with the |
|
|
|
This is a number that specifies a predefined error code. |
|
|
|
This is a text string that describes the error. |
Remarks:
Trace retrieves location updates until
cancelled with CancelNotification.
You can therefore have only one Trace call (one instance)
pending or in use at any given time.
The availability of specific location information depends on the underlying GPS technology. Other factors, such as the number of satellites available for a location fix, also affect what information can be returned. You can change the positioning system used by an S60 device from the Settings > General > Positioning > Positioning methods menu.
It takes time to retrieve the initial position fix. Subsequent requests are faster.
Example code:
The following sample code illustrates how to trace location information:
import com.nokia.lib.Service;
var location = new Service("Service.Location", "ILocation");
var updateOptions = {UpdateInterval:1000000};
var inParams = {LocationInformationClass:"GenericLocationInfo", Updateoptions:updateOptions};
location.Trace(inParams,onNotify);
function onNotify (transactionID:Number, eventID:String, outParam:Object) {
if (outParam.ErrorCode == 0) {
var outList = outParam.ReturnValue;
var longitude = outList.Longitude;// Contains longitudinal data
var latitude = outList.Latitude;// Contains latitudinal data
} else {
var errorId = outParam.ErrorCode;
}
}