15.457
Bearbeitungen
(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" | |||
if com.isEmpty(args["box"]) then -- to do: diesen Block später rausschmeißen | 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 | args["box"] = "Ja" -- to do: diesen Block später rausschmeißen | ||
end -- to do: diesen Block später rausschmeißen | end -- to do: diesen Block später rausschmeißen | ||
if com.isEmpty(args["zoom"]) then -- to do: diesen Block später rausschmeißen | args["zoom"] = args["zoom"] or "16" | ||
args["zoom"] = "16" -- to do: diesen Block später rausschmeißen | if com.isEmpty(args["zoom"]) then -- to do: diesen Block später rausschmeißen | ||
end -- to do: diesen Block später rausschmeißen | args["zoom"] = "16" -- to do: diesen Block später rausschmeißen | ||
end -- to do: diesen Block später rausschmeißen | |||
local geojson_pagename = args["geojson"] or pagename | |||
if com.isEmpty(geojson_pagename) then -- to do: diesen Block später rausschmeißen | |||
geojson_pagename = pagename -- to do: diesen Block später rausschmeißen | |||
end -- to do: diesen Block später rausschmeißen | |||
args["geojson_pagename"] = geojson_pagename -- to do: diesen Block später rausschmeißen | |||
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 = | 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 = 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 | ||
end -- if not com.isTrue(args["noattr"]) then | |||
-- bisherige Vorlagen-Karte | -- bisherige Vorlagen-Karte | ||
| Zeile 194: | Zeile 198: | ||
end | end | ||
function | 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 | ||