Modul:Faktenbox/Tabs/Karte: Unterschied zwischen den Versionen

keine Wartungsmeldungen wurde transcluded
(getArgs() => getKartenArgs_())
(keine Wartungsmeldungen wurde transcluded)
 
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
local str = require("Modul:String")
local str = require("Modul:String")
local wik = require("Modul:Wiki")
local wik = require("Modul:Wiki")
local que = require("Modul:Queries")
local smw = require("Modul:SMW")
local kar = require("Modul:Karte")
local kar = require("Modul:Karte")


Zeile 18: Zeile 18:
t = ""
t = ""
if string.find(fbdata.pagename, ";") ~= nil then
if string.find(fbdata.pagename, ";") ~= nil then
t = "Semikolon im Artikel-/Seitennamen für korrekte Kartendarstellung nicht erlaubt!"
t = t .. "Semikolon im Artikel-/Seitennamen für korrekte Kartendarstellung nicht erlaubt!"
else
else
-- Karten-Argumente übernehmen und aufbereiten
-- Karten-Argumente übernehmen und aufbereiten
Zeile 27: Zeile 27:
if #gebaeude > 0 then -- Gebäude angegeben?
if #gebaeude > 0 then -- Gebäude angegeben?
local locationlist = ""
local locationlist = ""
for _, g in ipairs(gebaeude) do -- alle Gebäude durchiterieren
for _, g in ipairs(gebaeude) do -- alle Gebäude durchiterieren
local seite = que.getValues(g, "Seite", true)
local seite = smw.getValues(g, "Seite", true) -- Seite mit Geolokation-Wert abfragen
if seite[1] ~= fbdata.pagename then -- Weiterleitung auf sich selbst rausfiltern
if seite[1] ~= fbdata.fullpagename then -- Weiterleitung auf sich selbst rausfiltern
local geolokation = que.getValues(g, "Geolokation", true)
local geolokation = smw.getValues(g, "Geolokation", true)
for _, l in ipairs(geolokation) do -- alle Geolokationen eines Gebäudes durchiterieren
if #geolokation > 0 then
if locationlist ~= "" then
for _, l in ipairs(geolokation) do -- alle Geolokationen eines Gebäudes durchiterieren
locationlist = locationlist .. ";"
if locationlist ~= "" then
locationlist = locationlist .. ";"
end
locationlist = locationlist .. l
end
elseif not com.isTrue(args["Ehemals"]) then
local location = g .. ",Fürth,Bayern,Deutschland" -- #geocode probieren
local geocode = fbdata.frame:callParserFunction("#geocode", location)
if geocode ~= "Geocoding failed" then
if locationlist ~= "" then
locationlist = locationlist .. ";"
end
locationlist = locationlist .. location
end
end
locationlist = locationlist .. l
end
end
end
end
Zeile 46: Zeile 57:
-- Karte erstellen
-- Karte erstellen
-- mw.logObject(args, "args")
-- mw.logObject(args, "args")
t = t .. kar.karte(fbdata.frame, args)
local t_karte = ""
if kar.kartenArgsVorhanden(args) or not com.isTrue(args["Ehemals"]) then
t_karte, fbdata.geoobjects = kar.karte(fbdata.frame, args)
end
t = t .. t_karte
end
end
-- Tab draus machen
-- Tab draus machen
Zeile 57: Zeile 72:
-- mw.logObject(fbdata, "karte(fbdata, " .. tostring(zoomdefault) .. ")")
-- mw.logObject(fbdata, "karte(fbdata, " .. tostring(zoomdefault) .. ")")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- mw.logObject(p.getKartenArgs_({pagename="pn",pargs={["lat"]="49",["lon"]="11",["locationlist"]="ll",["location"]="l",["geojson"]="g",["zoom"]="99",["GeoJsonKarte"]="Ja",["Debug"]="Ja",["Dummy"]="d"}}, 11))
-- mw.logObject(p.getKartenArgs_({pagename="pn",pargs={["lat"]="49",["lon"]="11",["locationlist"]="ll",["location"]="l",["geojson"]="g",["zoom"]="99",["GeoJsonKarte"]="Ja",["Debug"]="Ja",["Dummy"]="d",["add"]="a"}}, 11, {"add"}))


-- nur die benötigten Argumente übernehmen
-- nur die benötigten Argumente übernehmen
local args = {"lat", "lon", "location", "locationlist", "geojson", "zoom", "Debug"}
local args = {
args = wik.getParentArgs(fbdata.pargs, args)
"lat", "lon", "location", "locationlist", "geojson", "GeoJsonKarte",
"zoom", "Ehemals", "Work"}
local noargs
args, noargs = wik.getArgs(fbdata.pargs, args)
args.noargs = noargs -- keine Karten-args vorhanden
-- geojson ermitteln
-- geojson ermitteln
if args["geojson"] == nil and com.isTrue(fbdata.pargs["GeoJsonKarte"]) then
if args["geojson"] == nil and com.isTrue(args["GeoJsonKarte"]) then
args["geojson"] = fbdata.pagename
args["geojson"] = fbdata.pagename
end
end
-- Defaults und Sonstiges
-- Defaults und Sonstiges
args["zoom"] = args["zoom"] or zoomdefault
args["zoom"] = args["zoom"] or zoomdefault
args["width"] = "" -- passt sich automatisch ein
args["width"] = "auto" -- passt sich automatisch ein
args["height"] = "" -- passt sich automatisch ein
args["height"] = "auto" -- passt sich automatisch ein
args["box"] = "nein" -- keine eigene Box, da Teil der Faktenbox
args["box"] = "nein" -- keine eigene Box, da Teil der Faktenbox
args["form"] = "ja" -- Formular-Hinweis
args["form"] = "ja" -- Formular-Hinweis
args["hide_loc_latlon"] = fbdata.hide_loc_latlon or "ja" -- Pin-Anzeige deaktivieren, wenn GeoJson vorhanden
args.noattr = fbdata.attr.noattr -- keine Attribute setzen
args.nowarn = fbdata.transcluded -- keine Wartungsmeldungen wurde transcluded
-- mw.logObject(args, "args")
-- mw.logObject(args, "args")
return args
return args