
![]() | Dieses Modul wird auf vielen Seiten benutzt, und Änderungen werden projektweit sofort wahrgenommen. Bitte teste Änderungen vorher im /Sandkasten oder in deinem Benutzernamensraum. Die getestete Änderung sollte dann in einem einzigen Edit auf dieser Seite eingefügt werden. Bitte diskutiere Änderungen zuerst auf der Diskussionsseite bevor du sie implementierst. |
![]() | Dieses Modul ist getestet und für den projektweiten Gebrauch geeignet. Es kann in Vorlagen benutzt und auf Hilfeseiten erläutert werden. Entwicklungen an dem Modul sollten auf Mapshapes/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
![]() | Dieses Modul benutzt die Wikidata-Eigenschaften:
|
Anwendung
Der Modul wird direkt von der Vorlage {{Mapshapes}} aufgerufen. Parameterbeschreibung siehe dort.
Versionsbezeichnung auf Wikidata: 2023-05-03
Benötigte weitere Module
Hinweise
- Die obige Dokumentation wurde aus der Seite Modul:Mapshapes/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
-- 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