17.667
Bearbeitungen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 119: | Zeile 119: | ||
fbdata.pargs[a] = v | fbdata.pargs[a] = v | ||
end | end | ||
getGeoArgs(fbdata, val.GeoSubobject) | |||
-- Faktenbox anzeigen (ohne Attribute setzen) | -- Faktenbox anzeigen (ohne Attribute setzen) | ||
-- mw.logObject(fbdata.pargs, "fbdata.pargs") | -- mw.logObject(fbdata.pargs, "fbdata.pargs") | ||
fbdata.attr.noattr = true | fbdata.attr.noattr = true | ||
t = geb.faktenbox(fbdata) | t = geb.faktenbox(fbdata) -- Geo-Subjekte in pargs rückverwandeln | ||
end | end | ||
mw.logObject(t, "t") | mw.logObject(t, "t") | ||
return t | return t | ||
end | |||
function getGeoArgs(fbdata, geo_subobjects) -- wandelt die Geo-Subjekte wieder ein pargs zurück | |||
if geo_subobjects ~= nil then | |||
if type(geo_subobjects) ~= "table" then | |||
geo_subobjects = {geo_subobjects} | |||
end | |||
-- query Geo-Subjekte | |||
local query = "" | |||
for _, g in ipairs(geo_subobjects) do -- alle Geo-Subjekte werden in einem Rutsch abgefragt | |||
if query ~= "" then | |||
query = query .. " OR " | |||
end | |||
query = query .. "[[" .. g .. "]]" | |||
end | |||
query = query .. "|?Geokoordinate|?Geolokation|?GeoJson#-|?Zoomlevel|?#-" | |||
mw.logObject(query, "query") | |||
geo_subobjects = mw.smw.ask(query) or {} | |||
mw.logObject(geo_subobjects, "geo_subobjects") | |||
-- Attribute zu pargs wandeln | |||
for _, o in ipairs(geo_subobjects) do | |||
local location = o["Geolokation"] or o["Geokoordinate"] -- keine Rückwandlung Geokoordinate zu lat/lon | |||
local geojson = o["GeoJson"] | |||
local zoom = o["Zoomlevel"] | |||
if location ~= nil then -- location-Liste mergen | |||
if fbdata.pargs["location"] ~= "" then | |||
fbdata.pargs["location"] = fbdata.pargs["location"] .. ";" | |||
end | |||
fbdata.pargs["location"] = fbdata.pargs["location"] .. location | |||
end | |||
if fbdata.pargs["geojson"] == nil and geojson ~= nil then -- GeoJson 1x übernehmen. Sind eh alle gleich | |||
fbdata.pargs["geojson"] = string.sub(geojson, 9) -- "GeoJson:" abschneiden | |||
end | |||
if fbdata.pargs["zoom"] == nil and zoom ~= nil then -- Zoomlevel 1x übernehmen. Sind eh alle gleich | |||
fbdata.pargs["zoom"] = zoom | |||
end | |||
end | |||
end | |||
end | end | ||
return p | return p | ||