12
/* Begin enum declarations */
14
typedef enum Range_Enum
20
/* SVC_Status is the status-reporting code used by functions in this module. */
22
typedef enum String_to_Value_Conversion_Status
27
/* String_to_<Type> and errors */
28
SVC_String_to_Long = -1,
29
SVC_String_to_Double = -2,
31
/* String_to_Longitude errors */
32
SVC_Degrees_out_of_Bounds = -11,
33
SVC_Minutes_out_of_Bounds = -12,
34
SVC_Seconds_out_of_Bounds = -13,
35
SVC_Minutes_or_Seconds_Overflow = -14,
36
SVC_Inappropriate_Hemisphere = -15,
37
SVC_Sign_and_Hemisphere = -16,
38
SVC_Misplaced_Hemisphere = -17,
40
/* <Degrees>_to_String errors */
42
SVC_DMS_to_String = -21,
43
SVC_DM_to_String = -22,
44
SVC_D_to_String = -23,
46
/* <Parameter>_to_String errors */
48
SVC_Easting_to_String = -31,
49
SVC_Northing_to_String = -32,
50
SVC_False_Easting_to_String = -33,
51
SVC_False_Northing_to_String = -34,
52
SVC_Central_Meridian_to_String = -35,
53
SVC_Standard_Parallel_to_String = -36,
54
SVC_Standard_Parallel_Two_to_String = -37,
55
SVC_Zone_to_String = -38,
56
SVC_Ellipsoidal_Height_to_String = -39,
57
SVC_Origin_Latitude_to_String = -40,
58
SVC_Scale_Factor_to_String = -41,
59
SVC_X_to_String = -42,
60
SVC_Y_to_String = -43,
61
SVC_Z_to_String = -44,
62
SVC_Meter_to_String = -45,
64
/* Parameter Specific errors */
66
SVC_Zone_out_of_Bounds = -71,
67
SVC_Scale_Factor_out_of_Bounds = -72,
69
/* Projection Specific errors */
70
SVC_Invalid_Projection_String = -81,
71
SVC_Invalid_Projection_Value = -82,
78
/* End enum declarations */
82
/* Begin function declarations */
83
void Show_Leading_Zeros(int lz);
85
void Set_Separator(char sep);
87
void Set_Long_Range(Range range);
91
Range Get_Long_Range();
93
void Set_Lat_Long_Precision(long precis);
95
void Degrees_to_String(double degrees, char *str, boole use_Minutes, boole use_Seconds, long Type);
97
SVC_Status String_to_Projection(const char *str, Coordinate_Type *val);
98
SVC_Status Projection_to_String(const Coordinate_Type val, char str[32]);
100
SVC_Status String_to_Double(const char *str, double *val);
102
long Valid_Number(const char *str);
104
SVC_Status Meter_to_String(const double meters, char str[15]);
106
SVC_Status Long_Meter_to_String(const double meters, char str[15]);
108
SVC_Status String_to_Long(const char *str, long *val);
110
SVC_Status String_to_Longitude(const char *str, double *longitude);
112
/* Force usage of fixed length strings to alleviate checkless C. */
113
SVC_Status Longitude_to_String(const double longitude, char str[15], boole use_NSEW,
114
boole use_Minutes, boole use_Seconds);
116
SVC_Status String_to_Latitude(const char *str, double *latitude);
117
SVC_Status Latitude_to_String(const double latitude, char str[14], boole use_NSEW,
118
boole use_Minutes, boole use_Seconds);
120
SVC_Status Zone_to_String(const long zone, char str[3]);
122
SVC_Status Ellipsoidal_Height_to_String(const double ellipsoidal_Height, char str[15]);
124
SVC_Status Scale_Factor_to_String(const double scale_Factor, char str[8]);
126
void Error_Prefix ( const Input_or_Output Direction,
127
const Coordinate_Type System, char *Separator, char *String);
129
void Error_Append ( char *New_String, char *Separator, char *String);