Я не знаю 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