Skip to content

Instantly share code, notes, and snippets.

@wardpieters
Last active January 30, 2022 01:17
Show Gist options
  • Select an option

  • Save wardpieters/d9c1174b0ffad47f0ffcc4db2ba41988 to your computer and use it in GitHub Desktop.

Select an option

Save wardpieters/d9c1174b0ffad47f0ffcc4db2ba41988 to your computer and use it in GitHub Desktop.
Convert Rijksdriehoekscoördinaten to Geographical coordinates
<?php
ini_set('precision', 18);
var_dump(ConvertToLatLong(122202, 487250));
function ConvertToLatLong($x, $y) {
$referenceRdX = 155000;
$referenceRdY = 463000;
$dX = ($x - $referenceRdX) * 0.00001;
$dY = ($y - $referenceRdY) * 0.00001;
$sumN = (3235.65389 * $dY) +
(-32.58297 * pow($dX, 2)) +
(-0.2475 * pow($dY, 2)) +
(-0.84978 * pow($dX, 2) * $dY) +
(-0.0655 * pow($dY, 3)) +
(-0.01709 * pow($dX, 2) * pow($dY, 2)) +
(-0.00738 * $dX) +
(0.0053 * pow($dX, 4)) +
(-0.00039 * pow($dX, 2) * pow($dY, 3)) +
(0.00033 * pow($dX, 4) * $dY) +
(-0.00012 * $dX * $dY);
$sumE =
(5260.52916 * $dX) +
(105.94684 * $dX * $dY) +
(2.45656 * $dX * pow($dY, 2)) +
(-0.81885 * pow($dX, 3)) +
(0.05594 * $dX * pow($dY, 3)) +
(-0.05607 * pow($dX, 3) * $dY) +
(0.01199 * $dY) +
(-0.00256 * pow($dX, 3) * pow($dY, 2)) +
(0.00128 * $dX * pow($dY, 4)) +
(0.00022 * pow($dY, 2)) +
(-0.00022 * pow($dX, 2)) +
(0.00026 * pow($dX, 5));
// The city "Amsterfoort" is used as reference "WGS84" coordinate.
$referenceWgs84X = 52.15517;
$referenceWgs84Y = 5.387206;
$latitude = $referenceWgs84X + ($sumN / 3600);
$longitude = $referenceWgs84Y + ($sumE / 3600);
return ['x' => $latitude, 'y' => $longitude];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment