public function OSGB36ToWGS84()
	{
		$airy1830 = new ReferenceEllipsoid;

		$a		= $airy1830->maj;
		$b		= $airy1830->min;
		$eSquared = $airy1830->ecc;
		$phi = deg2rad($this->lat);
		$lambda = deg2rad($this->lng);
		$v = $a / (sqrt(1 - $eSquared * Trig::sinSquared($phi)));
		$H = 0; // height
		$x = ($v + $H) * cos($phi) * cos($lambda);
		$y = ($v + $H) * cos($phi) * sin($lambda);
		$z = ((1 - $eSquared) * $v + $H) * sin($phi);

		$tx =		446.448;
		$ty =		 -124.157;
		$tz =		542.060;
		$s	=		 -0.0000204894;
		$rx = deg2rad(0.00004172222);
		$ry = deg2rad(0.00006861111);
		$rz = deg2rad(0.00023391666);

		$xB = $tx + ($x * (1 + $s)) + (-$rx * $y)	 + ($ry * $z);
		$yB = $ty + ($rz * $x)		+ ($y * (1 + $s)) + (-$rx * $z);
		$zB = $tz + (-$ry * $x)	 + ($rx * $y)		+ ($z * (1 + $s));

		$wgs84 = new ReferenceEllipsoid(ReferenceEllipsoid::WGS84_MAJ, ReferenceEllipsoid::WGS84_MIN);
		$a		= $wgs84->maj;
		$b		= $wgs84->min;
		$eSquared = $wgs84->ecc;

		$lambdaB = rad2deg(atan($yB / $xB));
		$p = sqrt(($xB * $xB) + ($yB * $yB));
		$phiN = atan($zB / ($p * (1 - $eSquared)));

		for ($i = 1; $i < 10; $i++) {
			$v = $a / (sqrt(1 - $eSquared * Trig::sinSquared($phiN)));
			$phiN1 = atan(($zB + ($eSquared * $v * sin($phiN))) / $p);
			$phiN = $phiN1;
		}

		$phiB = rad2deg($phiN);

		$this->lat = $phiB;
		$this->lng = $lambdaB;
	}