Modul:Karte: Unterschied zwischen den Versionen

+ attrlist/setAttr(), defaults setzen optimiert, Umbenennung getGeocode()
(fix geocoder())
(+ attrlist/setAttr(), defaults setzen optimiert, Umbenennung getGeocode())
Zeile 34: Zeile 34:
local geoobjects = {}
local geoobjects = {}
local kategorien = {}
local kategorien = {}
local attrlist = {}
local pagename = args["pagename"] or wik.pagename() -- nur zum Debuggen pagename vorgebbar
local pagename = args["pagename"] or wik.pagename() -- nur zum Debuggen pagename vorgebbar
-- defaults setzen
-- defaults setzen
-- args["box"] = args["box"] or "Ja"
args["box"] = args["box"] or "Ja"
if com.isEmpty(args["box"]) then -- to do: diesen Block später rausschmeißen und obigen aktivieren, wenn fertig
if com.isEmpty(args["box"]) then -- to do: diesen Block später rausschmeißen
args["box"] = "Ja" -- to do: diesen Block später rausschmeißen und obigen aktivieren, wenn fertig
args["box"] = "Ja" -- to do: diesen Block später rausschmeißen
end -- to do: diesen Block später rausschmeißen und obigen aktivieren, wenn fertig
end -- to do: diesen Block später rausschmeißen
-- args["zoom"] = args["zoom"] or "16"
 
if com.isEmpty(args["zoom"]) then -- to do: diesen Block später rausschmeißen und obigen aktivieren, wenn fertig
args["zoom"] = args["zoom"] or "16"
args["zoom"] = "16" -- to do: diesen Block später rausschmeißen und obigen aktivieren, wenn fertig
if com.isEmpty(args["zoom"]) then -- to do: diesen Block später rausschmeißen
end -- to do: diesen Block später rausschmeißen und obigen aktivieren, wenn fertig
args["zoom"] = "16" -- to do: diesen Block später rausschmeißen
end -- to do: diesen Block später rausschmeißen


if com.isEmpty(args["geojson"]) then -- to do: diesen Block später in lokale var ändern
local geojson_pagename = args["geojson"] or pagename
args["geojson_pagename"] = pagename -- to do: diesen Block später in lokale var ändern
if com.isEmpty(geojson_pagename) then -- to do: diesen Block später rausschmeißen
else -- to do: diesen Block später in lokale var ändern
geojson_pagename = pagename -- to do: diesen Block später rausschmeißen
args["geojson_pagename"] = args["geojson"] -- to do: diesen Block später in lokale var ändern
end -- to do: diesen Block später rausschmeißen
end -- to do: diesen Block später in lokale var ändern
args["geojson_pagename"] = geojson_pagename -- to do: diesen Block später rausschmeißen
args["geojson_fullpagename"] = "GeoJson:" .. args["geojson_pagename"] -- to do: diesen Block später in lokale var ändern
local geojson_fullpagename = "GeoJson:" .. geojson_pagename
args["geojson_fullpagename"] = geojson_fullpagename -- to do: diesen Block später rausschmeißen


-- geocode location and locationlist
-- geocode location and locationlist
Zeile 79: Zeile 82:
local geocode = "Geocoding failed" -- to do: diesen Block später rausschmeißen nach Aufbau nominatim.fuerthwiki.de
local geocode = "Geocoding failed" -- to do: diesen Block später rausschmeißen nach Aufbau nominatim.fuerthwiki.de
if com.isEmpty(args["lat"]) or com.isEmpty(args["lon"]) then -- to do: diesen Block später rausschmeißen nach Aufbau nominatim.fuerthwiki.de
if com.isEmpty(args["lat"]) or com.isEmpty(args["lon"]) then -- to do: diesen Block später rausschmeißen nach Aufbau nominatim.fuerthwiki.de
geocode = geocoder(frame, location) -- to do: nur diese Zeile bleibt übrig
geocode = getGeocode(frame, location) -- to do: nur diese Zeile bleibt übrig (mit local)
end -- to do: diesen Block später rausschmeißen nach Aufbau nominatim.fuerthwiki.de
end -- to do: diesen Block später rausschmeißen nach Aufbau nominatim.fuerthwiki.de
if geocode ~= "Geocoding failed" then
if geocode ~= "Geocoding failed" then
Zeile 110: Zeile 113:
  not com.isEmpty(args["lat"]) and not com.isEmpty(args["lon"]) then
  not com.isEmpty(args["lat"]) and not com.isEmpty(args["lon"]) then
local geoobject_entry = {}
local geoobject_entry = {}
local geocode = geocoder(frame, args["lat"] .. "," .. args["lon"])
-- local geocode = getGeocode(frame, args["lat"] .. "," .. args["lon"])
local geocode = args["lat"] .. "," .. args["lon"] -- to do: diesen Block später rausschmeißen und obigen aktivieren, wenn fertig
if geocode ~= "Geocoding failed" then
if geocode ~= "Geocoding failed" then
geoobject_entry["Geokoordinate"] = geocode
geoobject_entry["Geokoordinate"] = geocode
Zeile 124: Zeile 128:
if not com.isTrue(args["noattr"]) then
if not com.isTrue(args["noattr"]) then


-- geoobjects setzen
-- Geolokation/Geokoordinate setzen
for _, o in ipairs(geoobjects) do -- to do: obsolete, wenn sobobject genutzt
setAttr(attrlist, "Geolokation", o["Geolokation"]) -- to do: obsolete, wenn sobobject genutzt
setAttr(attrlist, "Geokoordinate", o["Geokoordinate"]) -- to do: obsolete, wenn sobobject genutzt
end -- to do: obsolete, wenn sobobject genutzt
-- GeoJson
if wik.pageExists(geojson_fullpagename) then
setAttr(attrlist, "GeoJson", geojson_fullpagename)
end
-- zoom
setAttr(attrlist, "Zoomlevel", args["zoom"])
-- normale Attribute setzen
mw.logObject(attrlist, "attrlist")
mw.smw.set(attrlist)
 
-- geoobjects als subobjects setzen
mw.logObject(geoobjects, "geoobjects")
mw.logObject(geoobjects, "geoobjects")
for _, o in ipairs(geoobjects) do
for _, o in ipairs(geoobjects) do
Zeile 132: Zeile 154:
end
end


-- Geolokation/Geokoordinate setzen
end -- if not com.isTrue(args["noattr"]) then
for _, o in ipairs(geoobjects) do -- to do: obsolete, wenn sobobject genutzt
if o["Geolokation"] ~= nil then -- to do: obsolete, wenn sobobject genutzt
t = t .. "{{#set:Geolokation=" .. o["Geolokation"] .. "}}" -- to do: obsolete, wenn sobobject genutzt
end -- to do: obsolete, wenn sobobject genutzt
if o["Geokoordinate"] ~= nil then -- to do: obsolete, wenn sobobject genutzt
t = t .. "{{#set:Geokoordinate=" .. o["Geokoordinate"] .. "}}" -- to do: obsolete, wenn sobobject genutzt
end -- to do: obsolete, wenn sobobject genutzt
end -- to do: obsolete, wenn sobobject genutzt
 
-- GeoJson
if wik.pageExists(args["geojson_fullpagename"]) then
t = t .. "{{#set:GeoJson=" .. args["geojson_fullpagename"] .. "}}"
end
 
-- zoom
t = t .. "{{#set:Zoomlevel=" .. args["zoom"] .. "}}"
end --- if not com.isTrue(args["noattr"]) then


-- bisherige Vorlagen-Karte
-- bisherige Vorlagen-Karte
Zeile 194: Zeile 198:
end
end


function geocoder(frame, location)
function getGeocode(frame, location)
return frame:callParserFunction(
return frame:callParserFunction(
"#geocode", {location, format="float", directional="no"})
"#geocode", {location, format="float", directional="no"})
Zeile 205: Zeile 209:
if not com.isEmpty(popuptext) then
if not com.isEmpty(popuptext) then
geoobject_entry["KartePopupText"] = popuptext
geoobject_entry["KartePopupText"] = popuptext
end
end
function setAttr(attrlist, attr, val)
if val ~= nil then
if attrlist[attr] == nil then
attrlist[attr] = {val}
else
table.insert(attrlist[attr], val)
end
end
end
end
end


return p
return p