Módulo:MapLocations
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:MapLocations/doc
local p = {}
function p.maplocations( f )
local args = f:getParent().args
-- set default values (borderCoords are for top, right, bottom, left)
local map, borderCoords, mapsize, markersize, markercolor, opacity, text, float = 'Map The Island.jpg', {t=6.45,r=89.79,b=93.44,l=7.46}, '300px', 3, '#f40', 1, '', ''
-- get values from parameters
if args.map ~= nil then
map = args.map
end
if args.mapsize ~= nil then
mapsize = args.mapsize
end
if args.markersize ~= nil then
markersize = args.markersize
end
if args.markercolor ~= nil then
markercolor = args.markercolor
end
if args.opacity ~= nil then
opacity = args.opacity
end
if args.text ~= nil then
text = args.text
end
if args.float ~= nil then
float = args.float
end
if args.borderCoordT ~= nil then
borderCoords.t = args.borderCoordT
end
if args.borderCoordR ~= nil then
borderCoords.r = args.borderCoordR
end
if args.borderCoordB ~= nil then
borderCoords.b = args.borderCoordB
end
if args.borderCoordL ~= nil then
borderCoords.l = args.borderCoordL
end
local locations, lat, lon, ms = {}, 0, 0, 0
for _,l in ipairs(args) do
ms = markersize
local parts = {}
for part in string.gmatch(l, "([^,]+)") do
table.insert(parts,part)
end
if #parts > 1 then
lat = parts[1]
lon = parts[2]
if #parts > 2 then
ms = parts[3]
end
table.insert(locations,'<div style="position:absolute;left:'.. 100* (lon-borderCoords.l)/(borderCoords.r-borderCoords.l) - ms/2 ..'%;top:'.. 100* (lat-borderCoords.t)/(borderCoords.b-borderCoords.t) - ms/2 ..'%;padding:0;width:'..ms..'%;height:'..ms..'%;border-radius:50%;background-color:'..markercolor..';border:1px solid black;opacity:'..opacity..'" title="lat '..lat..', lon '..lon..'"></div>')
end
end
local subtitle = ''
if text ~= '' then
subtitle = '\n|-\n| align="middle" | '..text
end
return '{| class="wikitable" style="float:'..float..'"\n|-\n|<div class="noviewer" style="position: relative;width:'..mapsize..';height:'..mapsize..'">'..table.concat(locations)..'[[File:'..map..'|'..mapsize..']]</div>'..subtitle..'\n|}'
end
return p