Rails Geokit 将 GPS 坐标转换为 Google 经纬度

发布于 2024-10-20 22:44:07 字数 146 浏览 1 评论 0原文

我从 Tom Tom 设备获得了 GPS 位置,

S 33 22' 7.08",E 19 55' 27.44" 

我需要将其转换为谷歌经纬度。有谁知道有一个有效的 gem 可以做到这一点或能够进行转换的代码片段

I've got a GPS location from my Tom Tom device

S 33 22' 7.08",E 19 55' 27.44" 

I need to convert that to google Lat Long. Does anyone know of an effective gem to to do this or code snippet capable of doing the covertion

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜光 2024-10-27 22:44:07

我不知道 Ruby on Rails,但我有一个 PHP 版本,用于将 DMS(度/分/秒)转换为十进制纬度/经度。也许你可以将其转换为 RoR 版本。请注意,代码不会检查(剥离)分钟和秒后的“”或“”。您可能需要为您的语法添加此内容。

// Converts DMS ( Degrees / minutes / seconds ) 
// to decimal format longitude / latitude
function GPS_DEC($coord)
{
    $n = explode( " ", trim( $coord ) );
    if ( count( $n ) == 1 )
        return $coord;

    $deg = $n[ 0 ];
    $min = $sec = 0;
    if ( !is_numeric( $n[ 1 ] ) )
        $dir = $n[ 1 ];
    else
    {
        $min = $n[ 1 ];
        if ( !is_numeric( $n[ 2 ] ) )
            $dir = $n[ 2 ];
        else
        {
            $sec = $n[ 2 ];
            $dir = $n[ 3 ];
        }
    }

    $dec = $deg+((($min*60)+($sec))/3600);
    if ( $dir == 'S' || $dir == 'W' )
        $dec = -$dec;
    return $dec;
}

来自 OpenGeoCode.Org 团队的 Andrew

I don't know Ruby on Rails, but I have a PHP version for converting DMS (Degrees/Minutes/Seconds) to Decimal lat/lng. Perhaps you can convert it to RoR version. Note, the code does not check (strip) for a ' or "" after the minutes and seconds. You may need to add this for your syntax.

// Converts DMS ( Degrees / minutes / seconds ) 
// to decimal format longitude / latitude
function GPS_DEC($coord)
{
    $n = explode( " ", trim( $coord ) );
    if ( count( $n ) == 1 )
        return $coord;

    $deg = $n[ 0 ];
    $min = $sec = 0;
    if ( !is_numeric( $n[ 1 ] ) )
        $dir = $n[ 1 ];
    else
    {
        $min = $n[ 1 ];
        if ( !is_numeric( $n[ 2 ] ) )
            $dir = $n[ 2 ];
        else
        {
            $sec = $n[ 2 ];
            $dir = $n[ 3 ];
        }
    }

    $dec = $deg+((($min*60)+($sec))/3600);
    if ( $dir == 'S' || $dir == 'W' )
        $dec = -$dec;
    return $dec;
}

Andrew from the Team at OpenGeoCode.Org

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文