6.6.4 MathOperations
MathOperations
performs mathematical calculations based on a source location and a target location.
The following is an example for using MathOperations
:
Distance_measured = location_handle.call('MathOperations', {'MathRequest': u'FindDistance', 'DistanceParamSource': {'Longitude': u'10', 'Latitude': u'15', 'Altitude': u'20'}, 'DistanceParamDestination': {'Longitude': u'40', 'Latitude': u'55', 'Altitude': u'20'}})
The following table summarizes the specification of MathOperations
:
Interface |
ILocation |
Description |
Performs mathematical calculations based on a source location and a target location. |
Response Model |
Synchronous |
Pre-condition |
Device must be Location aware (that is, it must have some location service provider in form of GPS, AGPS, or Bluetooth).
ILocation interface loaded. |
Post-condition |
Nil |
Input Parameters
Input parameter specifies the mathematical operation such as FindDistance
, FindBearingTo
and so on, and position co-ordinates for performing the mathematical operation.
Table 6.136:
Input parameters for MathOperations
Name |
Type |
Range |
Description |
MathRequest |
string |
FindDistance
FindBearingTo
MoveCoordinates |
Specifies the mathematical operation. |
DistanceParamSource |
map. For more information, refer table map- Distance Param Source 6.137 |
NA |
This specifies the position co-ordinates.
Note that expected datum here is WGS-84 with decimal degree representation.
Also note that altitude supplied does not effect the result of calculation. It is used to maintain a uniform input argument, which makes it easy to use. |
DistanceParamDestination |
map. For more information, refer table map- Distance Param Destination 6.138 |
NA |
Specifies co-ordinates of another position. It is not required when value specified in the first parameter is MoveCoordinates .
Note that expected datum here is WGS-84 with decimal degree representation. |
MoveByThisDistance
(only if MathRequestType is MoveCoordinates ) |
double |
NA |
Move source position by the specified the distance. |
(Only if MathRequestType is MoveCoordinates ) |
double |
NA |
Move the source position by the specified bearing. |
|
Table 6.137:
map- DistanceParamSource
Key |
Type |
Description |
Longitude |
double |
Longitude data |
Latitude |
double |
Latitude data |
Altitude |
double |
Altitude data |
|
Table 6.138:
map- DistanceParamDestination
Key |
Type |
Description |
Longitude |
double |
Longitude data |
Latitude |
double |
Latitude data |
Altitude |
double |
Altitude data |
|
Output Parameters
Output parameter contains ReturnValue
. It also contains ErrorCode
, and ErrorMessage
if the operation fails.
Table 6.139:
Output parameters for MathOperations
Name |
Type |
Range (Type: string) |
Description |
ReturnValue |
The table 6.140 describes output obtained for various input combination |
NA |
Resultant calculation.
In case you request to Move coordinates , map described in column 2 will be returned.
Note that if distance between two coordinate is requested, it is returned in meters while FindBearingTo returned is in degrees counting clockwise relative to true north. |
ErrorCode |
int |
NA |
Service specific error code on failure of the operation. |
ErrorMessage |
string |
NA |
Error description in Engineering English. |
|
Table 6.140:
map- Resultant output
MathRequest type in input |
Obtained output type |
Description |
FindDistance |
double |
Contains the calculated distance in meters. |
FindBearingTo |
double |
Bearing between two points. |
MoveCoordinates map |
Map described in the table 6.141 is returned, which represents the translated coordinate. |
|
|
Table 6.141:
map- MoveCoordinates
Key |
Type |
Description |
Longitude |
double |
Longitude data |
Latitude |
double |
Latitude data |
Altitude |
double |
Altitude data |
|
Errors
The following table lists the error codes and their values:
Table 6.142:
Error codes
Error code value |
Description |
1002 |
Bad argument type |
|
Error Messages
The following table lists the error messages and their description:
Table 6.143:
Error messages
Error messages |
Description |
Location:MathOperations:Missing argument- MathRequest |
Indicates missing Mathrequest argument. |
Location:MathOperations:Wrong argument- MathRequest |
Indicates supplied MathRequest argument is wrong. |
Location:MathOperations:Missing argument- locationcoordinate |
Indicates missing locationCoordinate in input. |
Location:MathOperations:Missing argument- MoveByThisDistance |
Indicates missing MoveByThisDistance in input. |
Location:MathOperations:Missing argument- MoveByThisBearing |
Indicates missing MoveByThisBearing in input. |
Location:MathOperations:TypeMismatch- MoveByThisDistance |
Indicates type for Movebydistance is wrong. |
Location:MathOperations:TypeMismatch- MoveByThisBearing |
Indicates type for Movebythisbearing is wrong. |
|
Example
The following sample code illustrates how to perform specific calculations on user provided data:
import scriptext
location_handle = scriptext.load('Service.location', 'ILocation')
try:
Distance_measured = location_handle.call('MathOperations', {'MathRequest': u'FindDistance', 'DistanceParamSource': {'Longitude': u'10', 'Latitude': u'15', 'Altitude': u'20'}, 'DistanceParamDestination': {'Longitude': u'40', 'Latitude': u'55', 'Altitude': u'20'}})
errorcode = Distance_measured["ErrorCode"]
if errorcode != 0:
print "Error in retrieving the Distance covered"
else:
ret_val = Distance_measured["ReturnValue"]
if ret_val["distance covered"]["Value"] == '50':
print "The distance covered is retrieved"
except scriptext.ScriptextError, err:
print "Error performing the operation : ", err
Release 2.0.0 final , documentation updated on 10 Feb 2010.
See About this document... for information on suggesting changes.