我正在尝试把一些坐标从Gauss转换成WGS84。下面是我所做的(PHP):
function gaussToLatLng($Eutm, $Nutm){
// parametri che dipendono dal fuso ovest
$l0 = 9;
$fraz = $Nutm/111092.0821;
echo "$fraz ";
$A= $fraz +
(0.1449300705 * sin(deg2rad(2*$fraz))) +
(0.0002138508 * sin(deg2rad(4*$fraz))) +
(0.0000004322 * sin(deg2rad(6*$fraz)));
$v = sqrt(1 + (0.0067681702 * cos(deg2rad($A)) * cos(deg2rad($A)) ) );
$y = $Eutm - 500000;
$B = rad2deg(atan( ($v * sinh(deg2rad($y/6397376.633)) ) / cos(deg2rad($A))));
$lng = rad2deg(atan(tan(deg2rad($A)) * cos(deg2rad($v * $B))));
$lat = $B + $l0;
echo "A=$A, B=$B \n";
return array(
'lat' => $lat,
'lng' => $lng
);
}使用作为输入(1517140,5036970),我得到(9.2271558768758 45.485183518206),而使用这个在线工具我计算出我应该有(9.2189597,45.4859253) (大约1公里的差)。
你能帮我找出代码中的错误吗?
发布于 2014-06-12 08:39:08
使用一个PHP库解决:proj4php,使用Gauss的定义找到了这里。
那些家伙太棒了!
https://stackoverflow.com/questions/24169285
复制相似问题