Module:Dot chart
Appearance
local p = {}
local dot = require("Module:Location map").mark
local getArgs = require("Module:Arguments").getArgs
function p.dotchart(frame)
local args = getArgs(frame)
local dotTable = {}
local latTable = {}
local lonTable = {}
local colorTable = {}
local args2 = {}
local isLon = false
local lon;
local point;
local color;
local num;
for k,v in pairs(args) do
if k == mw.ustring.match(k,"align") then
elseif k == mw.ustring.match(k,"color%-%d") then
num = mw.ustring.gsub(k,"color%-","")
num = tonumber(num)
colorTable[num] = v
elseif isLon == false then
table.insert(latTable,v)
isLon = true
else
table.insert(lonTable,v)
isLon = false
end
end
for k,lat in pairs(latTable) do
lon = lonTable[k]
args2["lat_deg"] = lat*1.8-90
args2["lon_deg"] = lon*3.6-180
if colorTable[k] then
color = table.concat({"Location dot ",colorTable[k],".svg"})
else
color = "Location dot red.svg"
end
args2["mark"] = color
point = tostring(dot(args2))
table.insert(dotTable,point)
end
return table.concat(dotTable)
end
return p