101 using namespace MSP::CCS;
 
  109 const double PI = 3.14159265358979323e0;     
 
  121    es2( 0.0066943799901413800 ),
 
  122    es4( 4.4814723452405e-005 ),
 
  123    es6( 3.0000678794350e-007 ),
 
  124    Ra( 6371007.1810824 ),
 
  125    Mill_Origin_Long( 0.0 ),
 
  126    Mill_False_Easting( 0.0 ),
 
  127    Mill_False_Northing( 0.0 ),
 
  128    Mill_Delta_Northing( 14675058.0 ),
 
  129    Mill_Max_Easting( 20015110.0 ),
 
  130    Mill_Min_Easting( -20015110.0 )
 
  148   double inv_f = 1 / ellipsoidFlattening;
 
  150   if (ellipsoidSemiMajorAxis <= 0.0)
 
  154   if ((inv_f < 250) || (inv_f > 350))
 
  158   if ((centralMeridian < -
PI) || (centralMeridian > 
TWO_PI))
 
  170   Ra = 
semiMajorAxis * (1.0 - es2 / 6.0 - 17.0 * es4 / 360.0 - 67.0 * es6 /3024.0);
 
  171   if (centralMeridian > 
PI)
 
  172     centralMeridian -= 
TWO_PI;
 
  173   Mill_Origin_Long = centralMeridian;
 
  174   Mill_False_Easting = falseEasting;
 
  175   Mill_False_Northing = falseNorthing;
 
  176   if (Mill_Origin_Long > 0)
 
  178     Mill_Max_Easting = 19903915.0;
 
  179     Mill_Min_Easting = -20015110.0;
 
  181   else if (Mill_Origin_Long < 0)
 
  183     Mill_Max_Easting = 20015110.0;
 
  184     Mill_Min_Easting = -19903915.0;
 
  188     Mill_Max_Easting = 20015110.0;
 
  189     Mill_Min_Easting = -20015110.0;
 
  202   Mill_Origin_Long = mc.Mill_Origin_Long;
 
  203   Mill_False_Easting = mc.Mill_False_Easting;
 
  204   Mill_False_Northing = mc.Mill_False_Northing;
 
  205   Mill_Delta_Northing = mc.Mill_Delta_Northing;
 
  206   Mill_Max_Easting = mc.Mill_Max_Easting;
 
  207   Mill_Min_Easting = mc.Mill_Min_Easting;
 
  226     Mill_Origin_Long = mc.Mill_Origin_Long;
 
  227     Mill_False_Easting = mc.Mill_False_Easting;
 
  228     Mill_False_Northing = mc.Mill_False_Northing;
 
  229     Mill_Delta_Northing = mc.Mill_Delta_Northing;
 
  230     Mill_Max_Easting = mc.Mill_Max_Easting;
 
  231     Mill_Min_Easting = mc.Mill_Min_Easting;
 
  274   double longitude = geodeticCoordinates->
longitude();
 
  275   double latitude = geodeticCoordinates->
latitude();
 
  276   double slat = sin(0.8 * latitude);
 
  282   if ((longitude < -
PI) || (longitude > 
TWO_PI))
 
  287   dlam = longitude - Mill_Origin_Long;
 
  296   double easting = Ra * dlam + Mill_False_Easting;
 
  297   double northing = (Ra / 1.6) * log((1.0 + slat) /
 
  298                                (1.0 - slat)) + Mill_False_Northing;
 
  322   double easting = mapProjectionCoordinates->
easting();
 
  323   double northing = mapProjectionCoordinates->
northing();
 
  325   if ((easting < (Mill_False_Easting + Mill_Min_Easting))
 
  326       || (easting > (Mill_False_Easting + Mill_Max_Easting)))
 
  330   if ((northing < (Mill_False_Northing - Mill_Delta_Northing)) || 
 
  331       (northing > (Mill_False_Northing + Mill_Delta_Northing) ))
 
  336   dy = northing - Mill_False_Northing;
 
  337   dx = easting  - Mill_False_Easting;
 
  338   double latitude = atan(sinh(0.8 * dy / Ra)) / 0.8;
 
  339   double longitude = Mill_Origin_Long + dx / Ra;
 
  353   else if (longitude < -
PI)