function initialLat($North, $n0, $afo, $PHI0, $n, $bfo) { /* Compute initial value for Latitude (PHI) IN RADIANS. Input: - _ northing of point (North) and northing of false origin (n0) in meters; semi major axis multiplied by central meridian scale factor (af0) in meters; latitude of false origin (PHI0) IN RADIANS; n (computed from a, b and f0) ellipsoid semi major axis multiplied by central meridian scale factor (bf0) in meters. */ //First PHI value (PHI1) $PHI1 = ($North - $n0) / $afo + $PHI0; //Calculate M $M = Marc($bfo, $n, $PHI0, $PHI1); //Calculate new PHI value (PHI2) $PHI2 = ($North - $n0 - $M) / $afo + $PHI1; //Iterate to get final value for InitialLat while (abs($North - $n0 - $M) > 1.0E-5) { $PHI2 = ($North - $n0 - $M) / $afo + $PHI1; $M = Marc($bfo, $n, $PHI0, $PHI2); $PHI1 = $PHI2; } return $PHI2; }
function InitialLat($north, $n0, $af0, $phi0, $n, $bf0) { $phi1 = ($north - $n0) / $af0 + $phi0; $M = Marc($bf0, $n, $phi0, $phi1); $phi2 = ($north - $n0 - $M) / $af0 + $phi1; $ind = 0; while (abs($north - $n0 - $M) > 1.0E-5 && $ind < 20) { $ind = $ind + 1; $phi2 = ($north - $n0 - $M) / $af0 + $phi1; $M = Marc($bf0, $n, $phi0, $phi2); $phi1 = $phi2; } return $phi2; }