Módulo:Mapshape
Version check
Designación de la versión en Wikidata: 2022-10-22
Uso
{{Mapshape}}
.
Esta documentación está transcluida desde Módulo:Mapshape/doc.
Los editores pueden experimentar en la zona de pruebas (crear) y en los casos de prueba (crear) del módulo.
Por favor, añade las categorías en la subpágina de documentación. Subpáginas de este módulo.
Los editores pueden experimentar en la zona de pruebas (crear) y en los casos de prueba (crear) del módulo.
Por favor, añade las categorías en la subpágina de documentación. Subpáginas de este módulo.
-- getting a mapshape object
-- documentation
local Mapshape = {
suite = 'Mapshape',
serial = '2022-10-22',
item = 65449536
}
-- module import
-- require( 'strict' )
local mi = require( 'Module:Mapshape utilities/i18n' )
local mp = require( 'Module:Mapshape/Params' )
local mu = require( 'Module:Mapshape utilities' )
local wu = require( 'Module:Wikidata utilities' )
-- module variable and administration
local ms = {
moduleInterface = Mapshape
}
local function getShape( args, frame )
local colorId, description, fill, id, image, stroke, title
ms.entityId = mw.wikibase.getEntityIdForCurrentPage()
ms.wikiLang = mw.getContentLanguage():getCode()
local tagArgs = {
text = '',
group = mu.translateGroup( args.group ),
class = 'no-icon'
}
local geojson = {}
if args.page ~= '' then
geojson = {
type = 'ExternalData',
service = 'page',
title = mw.ustring.gsub( args.page, '[Dd]ata:', '' )
}
elseif not mi.excludeOSM then
-- getting first id
id = mu.getFirstId( args.wikidata )
-- getting color from first id
stroke = args.stroke
if stroke == '' then
stroke = mu.getColor( id )
if stroke == '' then
stroke = mi.defaultStroke
end
end
title = args.title
description = args.description
image = args.image
-- getting title if only one id
if id == args.wikidata then
if title == '' then
title = mu.getTitle( id )
end
title = mu.addLink( title, id, ms.entityId, ms.wikiLang )
if args.type == 'geomask' then
title = string.format( mi.geomask, title )
end
if description == '' and image == '' then
image = mu.getImage( id )
end
else
if title == '' then
title = mw.title.getCurrentTitle().subpageText
end
if args.type == 'geomask' then
title = string.format( mi.geomask, title )
end
end
if description == '' and image ~= '' then
description = '[[file:' .. image .. '|141px]]'
end
fill = mu.getParameter( args.fill, mi.defaultFill )
geojson = {
type = 'ExternalData',
service = args.type,
ids = args.wikidata,
properties = {
title = title,
description = description,
fill = fill,
[ 'fill-opacity' ] = mu.getNumber( args.fillOpacity, mi.defaultFillOpacity ),
stroke = stroke,
[ 'stroke-width' ] = mu.getNumber( args.strokeWidth, mi.defaultStrokeWidth ),
[ 'stroke-opacity' ] = mu.getNumber( args.strokeOpacity, mi.defaultStrokeOpacity )
}
}
end
local result = ''
if next( geojson ) then
result = frame:extensionTag( 'maplink', mw.text.jsonEncode( geojson ), tagArgs )
end
if mw.title.getCurrentTitle().namespace == 0 and mi.usePropertyCategs then
result = result .. wu.getCategories( mi.properties )
.. mu.getCategories( mi.properties )
end
return result
end
function ms.show( frame )
local args, errors =
mu.checkParams( frame:getParent().args, mp, 'Mapshape', mi.msUnknown )
args.type = mu.getParameter( args.type, 'geomask' )
args.group = mu.checkGroup( args.group )
if args.wikidata == '' and args.page == '' then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage() or ''
if args.wikidata == '' then
return mi.msMissing .. errors
end
elseif args.wikidata ~= '' and args.page ~= '' then
return mi.msTogether .. errors
end
return getShape( args, frame ) .. errors
end
return ms