Jump to content

Module:Dot chart

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by BrandonXLF (talk | contribs) at 06:11, 22 September 2018 (Created page with 'local p = {} local dot = require("Module:Location map").mark local getArgs = require("Module:Arguments").getArgs function p.dotchart(frame) local args = getArg...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

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