[editar] [

Version check
Designación de la versión en Wikidata: 2023-05-03
Uso
Esta documentación es transcluida desde Módulo:Mapshapes/doc.
Los editores pueden experimentar en la zona de pruebas de la plantilla.
Por favor, añade las categorías a la subpágina de documentación. Subpáginas de esta plantilla.
Los editores pueden experimentar en la zona de pruebas de la plantilla.
Por favor, añade las categorías a la subpágina de documentación. Subpáginas de esta plantilla.
-- getting a set of mapshape objects -- documentation local Mapshapes = { suite = 'Mapshapes', serial = '2023-05-03', item = 50361901 } -- module import -- require( 'strict' ) local mi = require( 'Module:Mapshape utilities/i18n' ) local mp = require( 'Module:Mapshapes/Params' ) local mu = require( 'Module:Mapshape utilities' ) local wu = require( 'Module:Wikidata utilities' ) -- modul variable and administration local ms = { moduleInterface = Mapshapes } -- check if the child item should be shown local function idMatch( args, id ) local key = 2 if mw.text.trim( args[ key ] or '' ) == '' then -- empty list of child items to show return true end while mw.text.trim( args[ key ] or '' ) ~= '' do if mw.text.trim( id ) == mw.text.trim( args[ key ] ) then return true end key = key + 1 end return false end local function getShapes( args, frame ) ms.entityId = mw.wikibase.getEntityIdForCurrentPage() ms.wikiLang = mw.getContentLanguage():getCode() local values = mu.getMapshapes( args[ 1 ] ) if #values == 0 then return mi.mssNoChilds end local content = {} local tagArgs = { text = '', group = mu.translateGroup( mu.checkGroup( args.group ) ), class = 'no-icon' } local colorId, description, geojson, id, result, rgb, title for i = 1, #values, 1 do id = values[ i ].id if idMatch( args, id ) then title = mu.addLink( mw.wikibase.label( id ) or id, id, ms.entityId, ms.wikiLang ) description = mu.getImage( id ) if description == '' then description = nil else description = '[[file:' .. description .. '|141px]]' end rgb = mu.getColor( id ) if rgb == '' then rgb = args.defaultColor end geojson = { type = 'ExternalData', service = args.defaultType, ids = id, properties = { title = title, description = description, fill = mi.defaultFill, [ 'fill-opacity' ] = mi.defaultFillOpacity, stroke = rgb, [ 'stroke-width' ] = args.strokeWidth, [ 'stroke-opacity' ] = args.strokeOpacity } } -- collecting multiple geojson codes table.insert( content, mw.text.jsonEncode( geojson ) ) end end if #content == 0 then geojson = nil elseif #content == 1 then geojson = content[ 1 ] else geojson = '[' .. table.concat( content, ',') .. ']' end if geojson then -- only one expensive call result = frame:extensionTag( 'maplink', geojson, tagArgs ) else result = '' end if mw.title.getCurrentTitle().namespace == 0 and mi.usePropertyCategs then -- main ns result = result .. wu.getCategories( mi.properties ) .. mu.getCategories( mi.properties ) end return result end function ms.show( frame ) if mi.excludeOSM then return '' end local args, errorMsg = mu.checkParams( frame:getParent().args, mp, 'Mapshapes', mi.mssUnknown ) if args[ 1 ] == '' then return mi.mssMissingFirst end args.strokeWidth = mu.getNumber( args.strokeWidth, mi.defaultShapesWidth ) args.strokeOpacity = mu.getNumber( args.strokeOpacity, mi.defaultShapesOpacity ) args.defaultType = mu.getParameter( args.defaultType, 'geoline' ) args.defaultColor = mu.getParameter( args.defaultColor, mi.defaultStroke ) if not string.find( args.defaultColor, '#', 1, true ) then args.defaultColor = '#' .. args.defaultColor end return getShapes( args, frame ) .. errorMsg end return ms