// Geodetic constants etc.

// various
constant kPI                 :=  3.1415926535898;
constant kDeg2Rad            :=  0.01745329251994;
constant kRad2Deg            := 57.29577951308;
constant kC                  := 299792458.0;

// WGS 84
constant kWGS84_A   := 6378137.000;
constant kWGS84_F   := 0.003352810664747;
constant kWGS84_RF  := 298.257223563;
constant kWGS84_ES  := 0.00669437999014;

// OS National Grid - Airy ellipsoid
constant kOS_E0   :=  400000.0;		// offset of false origin
constant kOS_N0   := -100000.0;		// offset of false origin
constant kOS_Lat0 := 0.855211357;	// Latitude of false origin (49degN)
constant kOS_Lon0 := -0.034906586;	// Longitude of false origin (2degW)
constant kOS_f0   := 0.9996012717;	// scale on central meridian

constant kAiry_A  := 6377563.396;	// Airy ellipsoid
constant kAiry_B  := 6356256.910;
constant kAiry_F  := 0.003340850641497;	// flattening
constant kAiry_RF := 299.3249646;	// 1/flattening
constant kAiry_N  := 0.001673220250;	// (a - b)/(a + b)
constant kAiry_N2 := 0.00000279966600501;	// n^2
constant kAiry_N3 := 0.000000004684457852819;	// n^3
constant kAiry_ES := 0.006670539762;	// eccentricty squared (a^2 - b^2) / a ^2

constant kOS_AxF0 := 6375020.480989;	// a * f0
constant kOS_BxF0 := 6353722.490488;	// b * f0

constant kOSGrid500 := '["S","T","N","O","H","J"];
constant kOSGrid100 := '["V","W","X","Y","Z", "Q","R","S","T","U", "L","M","N","O","P", "F","G","H","J","K", "A","B","C","D","E"];

// Modified Airy - Ireland
constant kModAiry_A := 6377340.189;

// UTM - International 1924 ellipsoid
constant kUTM_E0   :=   500000.0;		// offset of false origin
constant kUTM_N0   := 10000000.0;		// offset of false origin (S hemisphere)
constant kUTM_f0   := 0.9996;

constant kInt1924_A    := 6378388.000;
constant kInt1924_B    := 6356911.946;
constant kInt1924_F    := 0.003367003367003;
constant kInt1924_RF   := 297.000;
constant kInt1924_ES   := 0.00672267002233;

constant kUTM_AxF0 := 6375836.644800;	// a * f0
constant kUTM_BxF0 := 6354369.181222;	// b * f0


// kDatumDefs index must correspond with datum ids and kDatumList in LocTracker.txt

DefConst('kDatumDefs,  [ 
{ A: kWGS84_A,   F: kWGS84_F,   ES: kWGS84_ES,   dX:   0, dY:    0, dZ:    0, },
{ A: kInt1924_A, F: kInt1924_F, ES: kInt1924_ES, dX: -86, dY:  -98, dZ: -119, },
{ A: kInt1924_A, F: kInt1924_F, ES: kInt1924_ES, dX: -87, dY:  -98, dZ: -121, },
{ A: kInt1924_A, F: kInt1924_F, ES: kInt1924_ES, dX: -86, dY:  -96, dZ: -120, },
{ A: kAiry_A,    F: kAiry_F,    ES: kAiry_ES,    dX: 375, dY: -111, dZ:  431, },
{ A: kModAiry_A, F: kAiry_F,    ES: kAiry_ES,    dX: 506, dY: -122, dZ:  611, },
]);
