Modul:Geo: Unterschied zwischen den Versionen

+ GetPLZ/getPLZ
Keine Bearbeitungszusammenfassung
(+ GetPLZ/getPLZ)
Zeile 1: Zeile 1:
local p = {}
local p = {}
local str = require( "Module:String" )
local c = require("Module:Common")
local q = require("Module:Queries/Work")
local str = require("Modul:String")


function p.OSMlink(frame)
function p.OSMlink(frame)
Zeile 14: Zeile 16:
dms_split[1] .. '<br>' .. dms_split[2] .. ']'
dms_split[1] .. '<br>' .. dms_split[2] .. ']'
return url
return url
end
function p.GetHausnummerZahl(frame)
-- #invoke wrapper
return p.getHausnummerZahl(frame.args[1])
end
function p.getHausnummerZahl(hausnummer)
-- Hausnummer ohne Buchstaben extrahieren, um damit PLZ zu ermitteln
local hausnr = ""
if not c.isEmpty(hausnummer) then
hausnr = tonumber(string.match("0" .. hausnummer, "%d+"))
end
return hausnr
end
function p.GetPLZ(frame)
local strasseArg = frame.args[1] or ""
local hausnrArg = tostring(frame.args[2]) or ""
local strassen = str.split(strasseArg, ";") or {}
local hausnummern = str.split(hausnrArg, ";") or {}
-- Ned schön, funktioniert aber. Iterative Multistraßen-Lösung wäre fein!
-- Bei Gebäude-Komplexen mit mehreren Straßen ist in Fürth nicht unbedingt anzunehmen,
-- dass diese sich auf mehrere PLZs verteilen
local strasse = str.strip(strassen[1])
local hausnummer = str.strip(hausnummern[1])
return p.getPLZ(strasse, hausnummer)
end
function p.getPLZ(strasse, hausnummer)
local plz = 0;
local hausnummerZahl = 0;
if not c.isEmpty(hausnummer) then
hausnummerZahl = p.getHausnummerZahl(hausnummer)
end
if    strasse == "Breslauer Straße" then plz = 90766 -- momentan gibt es keine Gebäude in 90768 Unterfürberg und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Brunnenweg" then plz = 0 -- momentan gibt es keine Gebäude und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Brückenstraße" then plz = 90768 -- momentan gibt es keine Gebäude in 90765 Mannhof und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Frankenschnellweg" then plz = 0 -- momentan gibt es keine Gebäude und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Fuchsstraße" then plz = 90768 -- momentan gibt es keine Gebäude in 90763 Südstadt und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Heckenweg" then plz = 90762 -- momentan gibt es keine Gebäude in 90766 Schwand/Eigenes Heim und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Höfener Straße" then plz = 90763 -- momentan gibt es keine Gebäude in 90762 Stadtgrenze und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Käppnerweg" then plz = 0 -- momentan gibt es keine Gebäude und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Stadelner Straße" then plz = 90768 -- momentan gibt es keine Gebäude in 90765 Mannhof und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Südwesttangente" then plz = 0 -- momentan gibt es keine Gebäude und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Südwesttangente" then plz = 0 -- momentan gibt es keine Gebäude und eine Hausnummer-Grenze nicht bekannt
elseif strasse == "Schwabacher Straße" then
if hausnummerZahl % 2 == 0 then if hausnummerZahl < 66 then plz = 90762 else plz = 90763 end -- gerade H.nr.
elseif   hausnummerZahl < 53 then plz = 90762 else plz = 90763 end -- ungerade H.nr.
elseif strasse == "Vacher Straße" then
if hausnummerZahl % 2 == 0 then if hausnummerZahl < 250 then plz = 90766 else plz = 90768 end -- gerade H.nr.
elseif   hausnummerZahl < 225 then plz = 90766 else plz = 90768 end -- ungerade H.nr.
elseif strasse == "Würzburger Straße" then
if hausnummerZahl % 2 == 0 then if hausnummerZahl < 36 then plz = 90762 elseif hausnummerZahl < 400 then plz = 90766 else plz = 90768 end -- gerade H.nr.
elseif   hausnummerZahl < 9 then plz = 90762 elseif hausnummerZahl < 401 then plz = 90766 else plz = 90768 end -- ungerade H.nr.
else
plz = q.getValues(strasse, "PLZ") -- alle anderen Straßen haben nur eine PLZ, die auf deren Seite vemerkt ist
end
return plz
end
end


return p
return p