Position data

This document describes the basic and extended classes that hold position data.

Purpose

This document describes how position data is represented within the position data classes .

Values and co-ordinates

  • The World Geodetic System reference datum (WGS 84) is used by LBS. This is a global co-ordinate system in which co-ordinates are expressed as latitude and longitude in degrees and altitude in metres above the reference datum. In WGS 84, latitude values have the range (-90 <= Lat <= +90) and longitude values have the range (-180 <= Long < +180).

  • In LBS, latitude and longitude are held as TReal64 values and altitude is held as a TReal32 value.

  • Both horizontal and vertical accuracy are held as TReal32 values and represent a possible error values in metres.

  • Bearings and headings are held as TReal32 values and represent a direction in degrees. Bearing and heading accuracies are also held as TReal32 values and represent a possible error value in degrees.

Co-ordinate adjustment

The TCoordinate base class holds the latitude, longitude and altitude of a position. If an application attempts to assign values that are outside of the ranges specified by WGS 84 to an instance of a TCoordinate class then the values are adjusted to lie within the correct interval.

Unassigned values

In some situations, one of the position co-ordinates, typically altitude may not be known. This is usually because the positioning module that was used to obtain the location fix was unable to obtain data for that co-ordinate. Where LBS cannot assign a value to a co-ordinate value, the value "Not a Number" (NaN) is assigned to it. Applications must test for this situation by calling Math::IsNaN() on each returned co-ordinate value before using it in a calculation.