【问题标题】:Latitude and longitude from hexadecimal value十六进制值的纬度和经度
【发布时间】:2013-11-27 06:50:51
【问题描述】:

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

Hexa      Binary                              decimal        longitude
B9DCF6B1  10111001110111001111011010110001    3118266033    -117.6701263

谁能帮我用php解决这个问题。

【问题讨论】:

  • 您的问题是 PHP 编程,还是将 GPS 数据转换为 L/L 的算法?
  • @ring0 需要使用 php 的算法。你能帮帮我吗?
  • @SujathanR 参考stackoverflow.com/a/19420991/608624 希望对您有所帮助
  • 如果您展示算法和您在 PHP 中所做的摘录,我们可以为您提供帮助。抱歉,从头开始实施一切都很多。

标签: php binary hex decimal latitude-longitude


【解决方案1】:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2010-11-11
    • 2019-08-04
    • 1970-01-01
    • 2013-01-05
    • 2015-11-01
    • 1970-01-01
    相关资源
    最近更新 更多