georef.h
上传用户:oybseng
上传日期:2015-04-27
资源大小:7831k
文件大小:5k
源码类别:

GDI/图象编程

开发平台:

Visual C++

  1. #ifndef GEOREF_H
  2. #define GEOREF_H
  3. /***************************************************************************/
  4. /* RSC IDENTIFIER: GEOREF
  5.  *
  6.  * ABSTRACT
  7.  *
  8.  *    This component provides conversions from Geodetic coordinates (latitude
  9.  *    and longitude in radians) to a GEOREF coordinate string.
  10.  *
  11.  * ERROR HANDLING
  12.  *
  13.  *    This component checks parameters for valid values.  If an invalid value
  14.  *    is found, the error code is combined with the current error code using 
  15.  *    the bitwise or.  This combining allows multiple error codes to be
  16.  *    returned. The possible error codes are:
  17.  *
  18.  *          GEOREF_NO_ERROR          : No errors occurred in function
  19.  *          GEOREF_LAT_ERROR         : Latitude outside of valid range 
  20.  *                                      (-90 to 90 degrees)
  21.  *          GEOREF_LON_ERROR         : Longitude outside of valid range
  22.  *                                      (-180 to 360 degrees)
  23.  *          GEOREF_STR_ERROR         : A GEOREF string error: string too long,
  24.  *                                       string too short, or string length
  25.  *                                       not even.
  26.  *          GEOREF_STR_LAT_ERROR     : The latitude part of the GEOREF string
  27.  *                                     (second or fourth character) is invalid.
  28.  *          GEOREF_STR_LON_ERROR     : The longitude part of the GEOREF string
  29.  *                                     (first or third character) is invalid.
  30.  *          GEOREF_STR_LAT_MIN_ERROR : The latitude minute part of the GEOREF
  31.  *                                      string is greater than 60.
  32.  *          GEOREF_STR_LON_MIN_ERROR : The longitude minute part of the GEOREF
  33.  *                                      string is greater than 60.
  34.  *          GEOREF_PRECISION_ERROR   : The precision must be between 0 and 5 
  35.  *                                      inclusive.
  36.  *
  37.  * REUSE NOTES
  38.  *
  39.  *    GEOREF is intended for reuse by any application that performs a 
  40.  *    conversion between Geodetic and GEOREF coordinates.
  41.  *    
  42.  * REFERENCES
  43.  *
  44.  *    Further information on GEOREF can be found in the Reuse Manual.
  45.  *
  46.  *    GEOREF originated from :  U.S. Army Topographic Engineering Center
  47.  *                              Geospatial Information Division
  48.  *                              7701 Telegraph Road
  49.  *                              Alexandria, VA  22310-3864
  50.  *
  51.  * LICENSES
  52.  *
  53.  *    None apply to this component.
  54.  *
  55.  * RESTRICTIONS
  56.  *
  57.  *    GEOREF has no restrictions.
  58.  *
  59.  * ENVIRONMENT
  60.  *
  61.  *    GEOREF was tested and certified in the following environments:
  62.  *
  63.  *    1. Solaris 2.5 with GCC version 2.8.1
  64.  *    2. Windows 95 with MS Visual C++ version 6
  65.  *
  66.  * MODIFICATIONS
  67.  *
  68.  *    Date              Description
  69.  *    ----              -----------
  70.  *    20-02-97          Original Code
  71.  */
  72. /***************************************************************************/
  73. /*
  74.  *                               DEFINES
  75.  */
  76. #define GEOREF_NO_ERROR             0x0000
  77. #define GEOREF_LAT_ERROR            0x0001
  78. #define GEOREF_LON_ERROR            0x0002
  79. #define GEOREF_STR_ERROR            0x0004
  80. #define GEOREF_STR_LAT_ERROR        0x0008
  81. #define GEOREF_STR_LON_ERROR        0x0010
  82. #define GEOREF_STR_LAT_MIN_ERROR    0x0020
  83. #define GEOREF_STR_LON_MIN_ERROR    0x0040
  84. #define GEOREF_PRECISION_ERROR      0x0080
  85. /***************************************************************************/
  86. /*
  87.  *                             FUNCTION PROTOTYPES
  88.  *                                for georef.c
  89.  */
  90. /* ensure proper linkage to c++ programs */
  91. #ifdef __cplusplus
  92. extern "C" {
  93. #endif
  94.   long Convert_Geodetic_To_GEOREF (double Latitude,
  95.                                    double Longitude,
  96.                                    long Precision,
  97.                                    char *Georef);
  98. /*   
  99.  *  This function converts Geodetic (latitude and longitude in radians)
  100.  *  coordinates to a GEOREF coordinate string.  Precision specifies the
  101.  *  number of digits in the GEOREF string for latitude and longitude:
  102.  *                                  0 for nearest degree
  103.  *                                  1 for nearest 10 minutes
  104.  *                                  2 for nearest minute
  105.  *                                  3 for nearest tenth of a minute
  106.  *                                  4 for nearest hundredth of a minute
  107.  *                                  5 for nearest thousandth of a minute
  108.  *
  109.  *    Latitude  : Latitude in radians                       (input)
  110.  *    Longitude : Longitude in radians                      (input)
  111.  *    Precision : level of precision specified by the user  (input)
  112.  *    Georef    : GEOREF coordinate string                  (output)
  113.  */
  114.   long Convert_GEOREF_To_Geodetic (char *Georef,
  115.                                    double *Latitude, 
  116.                                    double *Longitude);
  117. /*
  118.  *  This function converts a GEOREF coordinate string to Geodetic (latitude
  119.  *  and longitude in radians) coordinates.
  120.  *
  121.  *    Georef    : GEOREF coordinate string     (input)
  122.  *    Latitude  : Latitude in radians          (output)
  123.  *    Longitude : Longitude in radians         (output)
  124. */
  125. #ifdef __cplusplus
  126. }
  127. #endif
  128. #endif /* GEOREF_H */