require('Module:No globals')
local getArgs = require('Module:Arguments').getArgs

local p = {}

-- esempio chiamata di funzione {{#invoke:Sandbox/M.casanova/DatiMappa|scala|x1|y1|x2|y2}}
function p.scala( frame )
	local dx = math.abs(frame.args[1] - frame.args[3])
	local dy = math.abs(frame.args[2] - frame.args[4])
	local rscala = -1
    if (dx == 0) then
    	if (dy == 0) then
    		-- default
    	else
    		rscala = math.floor(math.log(180/dy)/math.log(2))
    	end
	else
		if (dy == 0) then
    		rscala = math.floor(math.log(360/dx)/math.log(2))
    	else
    		rscala = math.min( math.floor(math.log(360/dx)/math.log(2)), math.floor(math.log(180/dy)/math.log(2)) )
    	end
    end
	return rscala
end

-- esempio chiamata di funzione {{#invoke:Sandbox/M.casanova/DatiMappa|medio|...}}
function p.medio(frame)
	local t = getArgs(frame)
	local mn, mx = 200, -200
	local nn = 0;
	for i,v in ipairs(t) do
		nn = nn+i
		if (mn > tonumber(t[i])) then mn = tonumber(t[i]) end
		if (mx < tonumber(t[i])) then mx = tonumber(t[i]) end
	end
    return (mn+mx)/2
end

return p