Exemple #1
0
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;
}