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

GDI/图象编程

开发平台:

Visual C++

  1. #ifndef GEOID_H
  2. #define GEOID_H
  3. /****************************************************************************/
  4. /* RSC IDENTIFIER:  Geoid
  5.  *
  6.  * ABSTRACT
  7.  *
  8.  *    The purpose of GEOID is to support conversions between WGS84 ellipsoid
  9.  *    heights and WGS84 geoid heights.
  10.  *
  11.  *
  12.  * ERROR HANDLING
  13.  *
  14.  *    This component checks parameters for valid values.  If an invalid value
  15.  *    is found, the error code is combined with the current error code using 
  16.  *    the bitwise or.  This combining allows multiple error codes to be
  17.  *    returned. The possible error codes are:
  18.  *
  19.  *  GEOID_NO_ERROR               : No errors occured in function
  20.  *  GEOID_FILE_OPEN_ERROR        : Geoid file opening error
  21.  *  GEOID_INITIALIZE_ERROR       : Geoid seoaration database can not initialize
  22.  *  GEOID_NOT_INITIALIZED_ERROR  : Geoid separation database not initialized properly
  23.  *  GEOID_LAT_ERROR              : Latitude out of valid range
  24.  *                                 (-90 to 90 degrees)
  25.  *  GEOID_LON_ERROR              : Longitude out of valid range
  26.  *                                 (-180 to 360 degrees)
  27.  *
  28.  * REUSE NOTES
  29.  *
  30.  *    Geoid is intended for reuse by any application that requires conversion
  31.  *    between WGS84 ellipsoid heights and WGS84 geoid heights.
  32.  *     
  33.  * REFERENCES
  34.  *
  35.  *    Further information on Geoid can be found in the Reuse Manual.
  36.  *
  37.  *    Geoid originated from :  U.S. Army Topographic Engineering Center
  38.  *                             Geospatial Information Division
  39.  *                             7701 Telegraph Road
  40.  *                             Alexandria, VA  22310-3864
  41.  *
  42.  * LICENSES
  43.  *
  44.  *    None apply to this component.
  45.  *
  46.  * RESTRICTIONS
  47.  *
  48.  *    Geoid has no restrictions.
  49.  *
  50.  * ENVIRONMENT
  51.  *
  52.  *    Geoid was tested and certified in the following environments
  53.  *
  54.  *    1. Solaris 2.5 with GCC 2.8.1
  55.  *    2. MS Windows 95 with MS Visual C++ 6
  56.  *
  57.  * MODIFICATIONS
  58.  *
  59.  *    Date              Description
  60.  *    ----              -----------
  61.  *    24-May-99         Original Code
  62.  *
  63.  */
  64. /***************************************************************************/
  65. /*
  66.  *                               GLOBALS
  67.  */
  68. #define GEOID_NO_ERROR              0x0000
  69. #define GEOID_FILE_OPEN_ERROR       0x0001
  70. #define GEOID_INITIALIZE_ERROR      0x0002
  71. #define GEOID_NOT_INITIALIZED_ERROR 0x0004
  72. #define GEOID_LAT_ERROR             0x0008
  73. #define GEOID_LON_ERROR             0x0010
  74. /***************************************************************************/
  75. /*
  76.  *                          FUNCTION PROTOTYPES
  77.  *                             for ellipse.c
  78.  */
  79. /* ensure proper linkage to c++ programs */
  80. #ifdef __cplusplus 
  81. extern "C" {
  82. #endif
  83.   long Initialize_Geoid ();
  84. /*
  85.  * The function Initialize_Geiud reads geoid separation data from a file in
  86.  * the current directory and builds the geoid separation table from it.  If an
  87.  * error occurs, the error code is returned, otherwise GEOID_NO_ERROR is 
  88.  * returned.
  89.  */
  90.   long Convert_Ellipsoid_To_Geoid_Height (double Latitude,
  91.                                           double Longitude,
  92.                                           double Ellipsoid_Height,
  93.                                           double *Geoid_Height);
  94. /*
  95.  * The function Convert_Ellipsoid_To_Geoid_Height converts the specified WGS84
  96.  * ellipsoid height at the specified geodetic coordinates to the equivalent
  97.  * geoid height, using the EGM96 gravity model.
  98.  *
  99.  *    Latitude            : Geodetic latitude in radians           (input)
  100.  *    Longitude           : Geodetic longitude in radians          (input)
  101.  *    Ellipsoid_Height    : Ellipsoid height, in meters            (input)
  102.  *    Geoid_Height        : Geoid height, in meters.               (output)
  103.  *
  104.  */
  105.   long Convert_Geoid_To_Ellipsoid_Height (double Latitude,
  106.                                           double Longitude,
  107.                                           double Geoid_Height,
  108.                                           double *Ellipsoid_Height);
  109. /*
  110.  * The function Convert_Geoid_To_Ellipsoid_Height converts the specified WGS84
  111.  * geoid height at the specified geodetic coordinates to the equivalent
  112.  * ellipsoid height, using the EGM96 gravity model.
  113.  *
  114.  *    Latitude            : Geodetic latitude in radians           (input)
  115.  *    Longitude           : Geodetic longitude in radians          (input)
  116.  *    Geoid_Height        : Geoid height, in meters                (input)
  117.  *    Ellipsoid_Height    : Ellipsoid height, in meters.           (output)
  118.  *
  119.  */
  120. #ifdef __cplusplus 
  121. }
  122. #endif
  123. #endif /* GEOID_H */