2011-03-10 34 views

回答

0

我不知道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