Module:Coord prec dec

From Wikipedia

Documentation for this module may be created at Module:Coord prec dec/doc

local coord_prec_dec = {
    precision = require "Module:Precision"
}

-- {{#switch:{{max/2|{{precision1|{{{1}}}}}|{{precision1|{{{2}}}}}}}|0=d|1|2=dm|dms}}
function coord_prec_dec.max_precision( arg1, arg2 )
    local one = tonumber(arg1)
    local two = tonumber(arg2)
    
    if one == nil or two == nil then
        error( "Non numeric input")
    end
    
    one = coord_prec_dec.precision.prec1(arg1);
    two = coord_prec_dec.precision.prec1(arg2);
    
    local prec = math.max( one, two )
    
    local returnVal = "dms"
    if prec == 0 then
        returnVal = "d"
    elseif prec == 1 or prec == 2 then
        returnVal = "dm"
    end
    return returnVal
end

--- Get the dms precision of a decimal coordinate
function coord_prec_dec.input(frame)
    coord_prec_dec.max_precision(frame.args[1], frame.args[2] )
end

return coord_prec_dec