108 using namespace MSP::CCS;
 
  116 #define EPSILON 1.75e-7    
  118 const double PI = 3.14159265358979323e0;     
 
  137 UPS::UPS( 
double ellipsoidSemiMajorAxis, 
double ellipsoidFlattening ) :
 
  150   double inv_f = 1 / ellipsoidFlattening;
 
  152   if (ellipsoidSemiMajorAxis <= 0.0)
 
  156   if ((inv_f < 250) || (inv_f > 350))
 
  173   std::map< char, PolarStereographic* > tempPolarStereographicMap = u.polarStereographicMap;
 
  174   polarStereographicMap[
'N'] = 
new PolarStereographic( *tempPolarStereographicMap[
'N'] );
 
  175   polarStereographicMap[
'S'] = 
new PolarStereographic( *tempPolarStereographicMap[
'S'] );
 
  178   UPS_Origin_Latitude = u.UPS_Origin_Latitude;     
 
  184     while( polarStereographicMap.begin() != polarStereographicMap.end() )
 
  186         delete ( ( *polarStereographicMap.begin() ).second );
 
  187         polarStereographicMap.erase( polarStereographicMap.begin() );
 
  196     std::map< char, PolarStereographic* > tempPolarStereographicMap = u.polarStereographicMap;
 
  197     polarStereographicMap[
'N']->operator=( *tempPolarStereographicMap[
'N'] );
 
  198     polarStereographicMap[
'S']->operator=( *tempPolarStereographicMap[
'S'] );
 
  201     UPS_Origin_Latitude = u.UPS_Origin_Latitude;     
 
  226   double longitude = geodeticCoordinates->
longitude();
 
  227   double latitude = geodeticCoordinates->
latitude();
 
  237   if ((longitude < -
PI) || (longitude > (2 * 
PI)))
 
  256   double easting = polarStereographicCoordinates->
easting();
 
  257   double northing = polarStereographicCoordinates->
northing();
 
  258   delete polarStereographicCoordinates;
 
  279   char hemisphere = upsCoordinates->
hemisphere();
 
  280   double easting  = upsCoordinates->
easting();
 
  281   double northing = upsCoordinates->
northing();
 
  283   if ((hemisphere != 
'N') && (hemisphere != 
'S'))
 
  290   if (hemisphere ==
'N')
 
  294   else if (hemisphere ==
'S')
 
  305   double latitude = geodeticCoordinates->
latitude();
 
  309     delete geodeticCoordinates;
 
  314     delete geodeticCoordinates;
 
  318   return geodeticCoordinates;