Class TGPSBase

Unit

Declaration

type TGPSBase = class(TObject)

Description

TGPSBase

Hierarchy

  • TObject
  • TGPSBase

Overview

Fields

Public internal const earthRadius : Double = 6378137.0;

Methods

Public function Deg2GpsPos(const ADeg, AMins, ASecs: Double): Double; virtual;
Public function DegStr2GpsPos( ADegees: String): Double; virtual;
Public function Deg2XMPGpsPos(const APos: Double; const ADirection: String): WideString; virtual;
Public procedure GpsPos2Deg( APos: Double; out ADeg, AMins, ASecs: Double); virtual;
Public function GPSStrToFloat (const APos: String): Double; virtual;
Public function XMPGpsDateTimeFromExif(const ADate, ATime: WideString): TDateTime; virtual;
Public function XMPGpsPos2Deg(const APos: String): Double; virtual;
Public function XMPRat2Double(const AStr: String; var AVal: Double): Boolean; virtual;
Public function XmpValue(const Value: Double): String; virtual;
Public function LatDirection(const AVal: Double): String; virtual;
Public function LonDirection(const AVal: Double): String; virtual;
Public function DegToString(const AVal: Double; AIsLat: Boolean; const AStyle: TGPSStringFormat): WideString; virtual;
Public function LatToString(const AVal: Double; const AStyle: TGPSStringFormat): WideString; virtual;
Public function LonToString(const AVal: Double; const AStyle: TGPSStringFormat): WideString; virtual;
Public function AltToString( AValMeter: Double; const APrecision: Integer = 1; const AMeasurementSystem: TMeasurementSystem = msMetrics): WideString; virtual;
Public procedure MiddlePoint( ALat1, ALong1, ALat2, ALong2: Double; var ALatMid: Double; var ALongMid: Double; const ABalance: Single = 0.50); virtual;
Public function DistanceBetween2Points(const ALat1, ALong1, ALat2, ALong2: Double): Double; virtual;
Public procedure ExpandDistanceBetween2Points(var ALat1, ALon1, ALat2, ALon2: Double; ADistance: Double); virtual;

Description

Fields

Public internal const earthRadius : Double = 6378137.0;
 

Methods

Public function Deg2GpsPos(const ADeg, AMins, ASecs: Double): Double; virtual;

meters translate a degree pos (deg min sec) to a decimal fraction position

Public function DegStr2GpsPos( ADegees: String): Double; virtual;

translate a degree string (deg:min:sec.zzz) to a decimal fraction position

Public function Deg2XMPGpsPos(const APos: Double; const ADirection: String): WideString; virtual;

convert a decimal GPS coordinate value to the XMP GPS format DD,MM.mmk (e.g. 51.xxx (51 degrees 4 mins 3 secs North) becomes 51,04.05N

Public procedure GpsPos2Deg( APos: Double; out ADeg, AMins, ASecs: Double); virtual;

convert degrees (as a decimal fraction) to degrees, minutes and seconds

Public function GPSStrToFloat (const APos: String): Double; virtual;

Convert decimal degrees or a XMP GPS coordinate (DD,MM,SSk) or (DD,MM.mmk) to a real number (e.g. 51,04,03N is converted to 51.xxxx)

Public function XMPGpsDateTimeFromExif(const ADate, ATime: WideString): TDateTime; virtual;

convert a date to XMP date format

Public function XMPGpsPos2Deg(const APos: String): Double; virtual;

convert a XMP GPS coordinate (DD,MM,SSk) or (DD,MM.mmk) to decimal position (e.g. 51,04,03N is converted to 51.xxxx)

Public function XMPRat2Double(const AStr: String; var AVal: Double): Boolean; virtual;

convert a rational string to a Double. Return False if can't be parsed

Public function XmpValue(const Value: Double): String; virtual;

format a Double as a rational string

Public function LatDirection(const AVal: Double): String; virtual;

returns the direction of the latitude (N for positive values, S for negative values);

Public function LonDirection(const AVal: Double): String; virtual;

returns the direction of the longitude (E for positive values, W for negative values);

Public function DegToString(const AVal: Double; AIsLat: Boolean; const AStyle: TGPSStringFormat): WideString; virtual;

returns a string for degrees

Public function LatToString(const AVal: Double; const AStyle: TGPSStringFormat): WideString; virtual;

returns a string for latitude

Public function LonToString(const AVal: Double; const AStyle: TGPSStringFormat): WideString; virtual;

returns a string for longitude

Public function AltToString( AValMeter: Double; const APrecision: Integer = 1; const AMeasurementSystem: TMeasurementSystem = msMetrics): WideString; virtual;

returns a string for altitude

Public procedure MiddlePoint( ALat1, ALong1, ALat2, ALong2: Double; var ALatMid: Double; var ALongMid: Double; const ABalance: Single = 0.50); virtual;

calculate the mid point between two coordinates

Public function DistanceBetween2Points(const ALat1, ALong1, ALat2, ALong2: Double): Double; virtual;

Calculate the distance between 2 GPS coordinates, by taking into account rounding of the earth. It does a transformation from spherical coordinates to normal rectangular coordinates. Result is in meters.

Public procedure ExpandDistanceBetween2Points(var ALat1, ALon1, ALat2, ALon2: Double; ADistance: Double); virtual;

This expands a rectangle by a certain distance (in meters), keeping the center fixed. Since the bounds are latitude/longitude, we need to convert meters to degrees latitude/longitude, which requires accounting for the Earth’s curvature.


Generated by PasDoc 0.15.0.