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

GDI/图象编程

开发平台:

Visual C++

  1. #ifndef STEREOGR_H
  2.   #define STEREOGR_H
  3. /***************************************************************************/
  4. /* RSC IDENTIFIER: STEREOGRAPHIC 
  5.  *
  6.  *
  7.  * ABSTRACT
  8.  *
  9.  *    This component provides conversions between geodetic (latitude and
  10.  *    longitude) coordinates and Stereographic (easting and northing) 
  11.  *    coordinates.
  12.  *
  13.  * ERROR HANDLING
  14.  *
  15.  *    This component checks parameters for valid values.  If an invalid 
  16.  *    value is found the error code is combined with the current error code 
  17.  *    using the bitwise or.  This combining allows multiple error codes to 
  18.  *    be returned. The possible error codes are:
  19.  *
  20.  *          STEREO_NO_ERROR           : No errors occurred in function
  21.  *          STEREO_LAT_ERROR          : Latitude outside of valid range
  22.  *                                      (-90 to 90 degrees)
  23.  *          STEREO_LON_ERROR          : Longitude outside of valid range
  24.  *                                      (-180 to 360 degrees) 
  25.  *          STEREO_ORIGIN_LAT_ERROR   : Origin latitude outside of valid range
  26.  *                                      (-90 to 90 degrees)
  27.  *          STEREO_CENT_MER_ERROR     : Central meridian outside of valid range
  28.  *                                      (-180 to 360 degrees)
  29.  *          STEREO_EASTING_ERROR      : Easting outside of valid range,
  30.  *                                      (False_Easting +/- ~1,460,090,226 m,
  31.  *                                       depending on ellipsoid and projection
  32.  *                                       parameters)
  33.  *          STEREO_NORTHING_ERROR     : Northing outside of valid range,
  34.  *                                      (False_Northing +/- ~1,460,090,226 m,
  35.  *                                       depending on ellipsoid and projection
  36.  *                                       parameters)
  37.  *          STEREO_A_ERROR            : Semi-major axis less than or equal to zero
  38.  *          STEREO_INV_F_ERROR        : Inverse flattening outside of valid range
  39.  *                      (250 to 350)
  40.  *
  41.  *
  42.  * REUSE NOTES
  43.  *
  44.  *    STEREOGRAPHIC is intended for reuse by any application that  
  45.  *    performs a Stereographic projection.
  46.  *
  47.  *
  48.  * REFERENCES
  49.  *
  50.  *    Further information on STEREOGRAPHIC can be found in the
  51.  *    Reuse Manual.
  52.  *
  53.  *
  54.  *    STEREOGRAPHIC originated from :
  55.  *                                U.S. Army Topographic Engineering Center
  56.  *                                Geospatial Information Division
  57.  *                                7701 Telegraph Road
  58.  *                                Alexandria, VA  22310-3864
  59.  *
  60.  *
  61.  * LICENSES
  62.  *
  63.  *    None apply to this component.
  64.  *
  65.  *
  66.  * RESTRICTIONS
  67.  *
  68.  *    STEREOGRAPHIC has no restrictions.
  69.  *
  70.  *
  71.  * ENVIRONMENT
  72.  *
  73.  *    STEREOGRAPHIC was tested and certified in the following
  74.  *    environments:
  75.  *
  76.  *    1. Solaris 2.5 with GCC, version 2.8.1
  77.  *    2. Window 95 with MS Visual C++, version 6
  78.  *
  79.  *
  80.  * MODIFICATIONS
  81.  *
  82.  *    Date              Description
  83.  *    ----              -----------
  84.  *    7/26/00           Original Code
  85.  *
  86.  */
  87. /**********************************************************************/
  88. /*
  89.  *                        DEFINES
  90.  */
  91.   #define STEREO_NO_ERROR                0x0000
  92.   #define STEREO_LAT_ERROR               0x0001
  93.   #define STEREO_LON_ERROR               0x0002
  94.   #define STEREO_ORIGIN_LAT_ERROR        0x0004
  95.   #define STEREO_CENT_MER_ERROR          0x0008
  96.   #define STEREO_EASTING_ERROR      0x0010
  97.   #define STEREO_NORTHING_ERROR        0x0020
  98.   #define STEREO_A_ERROR                 0x0040
  99.   #define STEREO_INV_F_ERROR             0x0080
  100. /**********************************************************************/
  101. /*
  102.  *                        FUNCTION PROTOTYPES
  103.  */
  104. /* ensure proper linkage to c++ programs */
  105.   #ifdef __cplusplus
  106. extern "C" {
  107.   #endif
  108. long Set_Stereographic_Parameters (double a,
  109.                                    double f,
  110.                                    double Origin_Latitude,
  111.                                    double Central_Meridian,
  112.                                    double False_Easting,
  113.                                    double False_Northing);
  114. /*  
  115.  *  The function Set_Stereographic_Parameters receives the ellipsoid
  116.  *  parameters and Stereograpic projection parameters as inputs, and
  117.  *  sets the corresponding state variables.  If any errors occur, error
  118.  *  code(s) are returned by the function, otherwise STEREO_NO_ERROR is returned.
  119.  *
  120.  *  a                : Semi-major axis of ellipsoid, in meters         (input)
  121.  *  f                : Flattening of ellipsoid                (input)
  122.  *  Origin_Latitude  : Latitude, in radians, at the center of          (input)
  123.  *                       the projection
  124.  *  Central_Meridian : Longitude, in radians, at the center of         (input)
  125.  *                       the projection
  126.  *  False_Easting    : Easting (X) at center of projection, in meters  (input)
  127.  *  False_Northing   : Northing (Y) at center of projection, in meters (input)
  128.  */
  129. void Get_Stereographic_Parameters(double *a,
  130.                                   double *f,
  131.                                   double *Origin_Latitude,
  132.                                   double *Central_Meridian,
  133.                                   double *False_Easting,
  134.                                   double *False_Northing);
  135. /*
  136.  * The function Get_Stereographic_Parameters returns the current ellipsoid
  137.  * parameters and Stereographic projection parameters.
  138.  *
  139.  *    a                 : Semi-major axis of ellipsoid, in meters   (output)
  140.  *    f                 : Flattening of ellipsoid         (output)
  141.  *    Origin_Latitude   : Latitude, in radians, at the center of    (output)
  142.  *                          the projection
  143.  *    Central_Meridian  : Longitude, in radians, at the center of   (output)
  144.  *                          the projection
  145.  *    False_Easting     : A coordinate value, in meters, assigned to the
  146.  *                          central meridian of the projection.     (output)
  147.  *    False_Northing    : A coordinate value, in meters, assigned to the
  148.  *                          origin latitude of the projection       (output) 
  149.  */
  150. long Convert_Geodetic_To_Stereographic (double Latitude,
  151.                                         double Longitude,
  152.                                         double *Easting,
  153.                                         double *Northing);
  154. /*
  155.  * The function Convert_Geodetic_To_Stereographic converts geodetic
  156.  * coordinates (latitude and longitude) to Stereographic coordinates
  157.  * (easting and northing), according to the current ellipsoid
  158.  * and Stereographic projection parameters. If any errors occur, error
  159.  * code(s) are returned by the function, otherwise STEREO_NO_ERROR is returned.
  160.  *
  161.  *    Latitude   :  Latitude, in radians                      (input)
  162.  *    Longitude  :  Longitude, in radians                     (input)
  163.  *    Easting    :  Easting (X), in meters                    (output)
  164.  *    Northing   :  Northing (Y), in meters                   (output)
  165.  */
  166. long Convert_Stereographic_To_Geodetic(double Easting,
  167.                                        double Northing,
  168.                                        double *Latitude,
  169.                                        double *Longitude);
  170. /*
  171.  * The function Convert_Stereographic_To_Geodetic converts Stereographic projection
  172.  * (easting and northing) coordinates to geodetic (latitude and longitude)
  173.  * coordinates, according to the current ellipsoid and Stereographic projection
  174.  * coordinates.  If any errors occur, the error code(s) are returned by the
  175.  * function, otherwise STEREO_NO_ERROR is returned.
  176.  *
  177.  *    Easting           : Easting (X), in meters              (input)
  178.  *    Northing          : Northing (Y), in meters             (input)
  179.  *    Latitude          : Latitude (phi), in radians          (output)
  180.  *    Longitude         : Longitude (lambda), in radians      (output)
  181.  */
  182.   #ifdef __cplusplus
  183. }
  184.   #endif
  185. #endif  /* STEREOGR_H  */