20.708
Bearbeitungen
(karte(args) frame in args integriert) Markierung: Zurückgesetzt |
(keine Wartungsmeldungen wurde transcluded) |
||
| (19 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 | local smw = require("Modul:SMW") | ||
local kar = require("Modul:Karte") | local kar = require("Modul:Karte") | ||
| Zeile 22: | Zeile 22: | ||
-- Karten-Argumente übernehmen und aufbereiten | -- Karten-Argumente übernehmen und aufbereiten | ||
local args = p.getKartenArgs_(fbdata, 18) | local args = p.getKartenArgs_(fbdata, 18) | ||
-- Verwende Geolokation des Gebäudes, sofern vorhanden und wenn keine location oder locationlist übergeben | -- Verwende Geolokation des Gebäudes, sofern vorhanden und wenn keine location oder locationlist übergeben | ||
if args["location"] == nil and args["locationlist"] == nil and fbdata.pargs["Gebäude"] ~= nil then | if args["location"] == nil and args["locationlist"] == nil and fbdata.pargs["Gebäude"] ~= nil then | ||
| Zeile 28: | 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 = | local seite = smw.getValues(g, "Seite", true) -- Seite mit Geolokation-Wert abfragen | ||
if seite[1] ~= fbdata. | if seite[1] ~= fbdata.fullpagename then -- Weiterleitung auf sich selbst rausfiltern | ||
local geolokation = | 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 | ||
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 | ||
end | end | ||
end | end | ||
| Zeile 47: | Zeile 57: | ||
-- Karte erstellen | -- Karte erstellen | ||
-- mw.logObject(args, "args") | -- mw.logObject(args, "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 55: | Zeile 69: | ||
end | end | ||
function p.getKartenArgs_(fbdata, zoomdefault | function p.getKartenArgs_(fbdata, zoomdefault) | ||
-- mw.logObject(fbdata, "karte(fbdata, " .. tostring(zoomdefault) .. ")") | -- mw.logObject(fbdata, "karte(fbdata, " .. tostring(zoomdefault) .. ")") | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
| Zeile 61: | Zeile 75: | ||
-- nur die benötigten Argumente übernehmen | -- nur die benötigten Argumente übernehmen | ||
local args = {"lat", "lon", "location", "locationlist", "geojson", "zoom", " | local 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(args["GeoJsonKarte"]) then | if args["geojson"] == nil and com.isTrue(args["GeoJsonKarte"]) then | ||
| Zeile 72: | Zeile 87: | ||
-- Defaults und Sonstiges | -- Defaults und Sonstiges | ||
args["zoom"] = args["zoom"] or zoomdefault | args["zoom"] = args["zoom"] or zoomdefault | ||
args["width"] = "" | args["width"] = "auto" -- passt sich automatisch ein | ||
args["height"] = "" | 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 | ||