Modulo:Mapframe/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
prova per simbolo vuoto con sinottico = 1 |
use require('strict') instead of require('Module:No globals') |
||
(9 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1:
require('
local getArgs = require('Module:Arguments').getArgs
local mWikidata = require('Module:Wikidata')
Riga 10:
local cat = mw.title.getCurrentTitle().namespace == 0 and errorCategory or ''
return string.format('<span class="error">%s</span>%s', msg, cat)
end
local function getLegenda(points, ncols)
local divStyle = {
['column-count'] = ncols,
['-moz-column-count'] = ncols,
['-webkit-column-count'] = ncols
}
local divNode = mw.html.create('div'):css(divStyle)
local currNum = 1
local currChar = 'A'
for _, point in ipairs(points) do
local pNode = mw.html.create('p'):css('font-size', '90%')
local codeNode = mw.html.create('code')
:css('font-weight', 'bold')
:css('color', 'white')
:css('border-radius', '6px')
:css('border', '2px solid ' .. point.col)
:css('background', point.col)
if point.simb:find('-number') == 1 then
codeNode:wikitext(currNum)
currNum = currNum + 1
elseif point.simb:find('-letter') == 1 then
codeNode:wikitext(currChar)
currChar = ('ABCDEFGHIJKLMNOPQRSTUVWXYZA'):match(currChar .. '(.)')
elseif point.simb == '' then
else
codeNode
:css('padding-left', '0')
:css('padding-right', '0')
:css('background', 'white')
codeNode:wikitext(string.format('[[File:Maki2-%s-18.svg|18px]]', point.simb))
end
pNode:node(codeNode):wikitext(' ' .. point.nome)
divNode:node(pNode)
end
return tostring(divNode)
end
Line 17 ⟶ 56:
local sinottico = tonumber(args.sinottico) or 0
local colore = args.colore or '#b80000' --colore
local simbolo = args.simbolo or (sinottico ~= 1 and '-number' or nil) --simbolo
local gruppo = args.gruppo or ''
local autozoom = args.autozoom or 's'
local elenco = (args.elenco == '1' or args.elenco == '2') and args.elenco or nil
local dsimbolo = 'medium'
--if
local cornice
if args.cornice then cornice = tonumber(args.cornice) or 1 else cornice = 1 end
Line 43 ⟶ 82:
dsimb = args['dim_simbolo' .. num] or dsimbolo, --dimensione del simbolo da mostrare
}
if
points[num].simb = '-number-' .. gruppo end
if
error(string.format('latitudine non valida per il punto %d', num), 2)
elseif
error(string.format('longitudine non valida per il punto %d', num), 2)
else
Line 65 ⟶ 106:
m_args.align = 'right'
-- valori per sinottico
if
m_args.width = 260
m_args.height = 260
Line 76 ⟶ 117:
-- elimina cornice per cornice = 0 e per sinottico = 1
if
-- valore ingrandimento
if args.zoom then
m_args.zoom = tonumber(args.zoom)
elseif
if
m_args.zoom = 10 -- valore predefinito per singolo punto
if
m_args.zoom = 13 -- valore predefinito per sinottico con singolo punto
end
elseif
local dx = 1.1 * (lon2 - lon1) / 360
local dy = 1.1 * (math.log(math.tan(math.pi * (1 + lat2 / 90) / 4)) - math.log(math.tan( math.pi * (1 + lat1 / 90) / 4))) / (2 * math.pi)
Line 94 ⟶ 135:
if dx == 0 then scalax = 18 else scalax = math.floor(-math.log(dx) / math.log(2)) end
if dy == 0 then scalay = 18 else scalay = math.floor(-math.log(dy) / math.log(2)) end
if
m_args.zoom = 10 -- valore default per singolo punto
else
Line 102 ⟶ 143:
end
-- esclude didascalia per cornice = 0 e per sinottico = 1
if
m_args.text = (args.didascalia or '') .. (elenco and getLegenda(points, elenco) or '')
end
if args.centro_lon then
m_args.longitude = tonumber(args.centro_lon)
elseif geo == -1 then
if
m_args.longitude = points[1].lon
else
Line 116 ⟶ 159:
if args.centro_lat then
m_args.latitude = tonumber(args.centro_lat)
elseif
if
m_args.latitude = points[1].lat
else
|