15.101
Bearbeitungen
Keine Bearbeitungszusammenfassung |
(+ GetPLZ/getPLZ) |
||
| Zeile 1: | Zeile 1: | ||
local p = {} | local p = {} | ||
local str = require( " | 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 | ||