十六进制值的纬度和经度

时间:2013-11-14 10:00:54

标签: php binary hex decimal latitude-longitude

嗨我需要将GPS跟踪器的响应值转换为纬度和经度。响应值采用十六进制格式,文档中的纬度和经度为measured in degrees with a 1x10^-7 degree lsb, signed 2’s complement。例如:

Hexa      Binary                              decimal        longitude
B9DCF6B1  10111001110111001111011010110001    3118266033    -117.6701263

任何人都可以帮助我使用php解决这个问题。

1 个答案:

答案 0 :(得分:3)

this answer移植到PHP:

function convert($hex)
{
    $dec = hexdec($hex);
    return ($dec < 0x7fffffff) ? $dec * 0.0000001
                               : 0 - (0xffffffff - $dec) * 0.0000001;
}

测试:

var_dump(convert('B9DCF6B1')); // float(-117.6701262)