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.