getPLZ() / GetPLZ()

Liefert die Postleitzahl einer Straße mit Hausnummer zurück.

Test

-getPLZ(Königstraße)- ergibt -table- -getPLZ(Königstraße|1)- ergibt -table- -getPLZ(Königstraße|1000)- ergibt -table-
-getPLZ(Breslauer Straße)- ergibt -table- -getPLZ(Breslauer Straße|1)- ergibt -table- -getPLZ(Breslauer Straße|1000)- ergibt -table-
-getPLZ(Brunnenweg)- ergibt -table- -getPLZ(Brunnenweg|1)- ergibt -table- -getPLZ(Brunnenweg|1000)- ergibt -table-
-getPLZ(Brückenstraße)- ergibt -table- -getPLZ(Brückenstraße|1)- ergibt -table- -getPLZ(Brückenstraße|1000)- ergibt -table-
-getPLZ(Frankenschnellweg)- ergibt -table- -getPLZ(Frankenschnellweg|1)- ergibt -table- -getPLZ(Frankenschnellweg|1000)- ergibt -table-
-getPLZ(Fuchsstraße)- ergibt -table- -getPLZ(Fuchsstraße|1)- ergibt -table- -getPLZ(Fuchsstraße|1000)- ergibt -table-
-getPLZ(Heckenweg)- ergibt -table- -getPLZ(Heckenweg|1)- ergibt -table- -getPLZ(Heckenweg|1000)- ergibt -table-
-getPLZ(Höfener Straße)- ergibt -table- -getPLZ(Höfener Straße|1)- ergibt -table- -getPLZ(Höfener Straße|1000)- ergibt -table-
-getPLZ(Käppnerweg)- ergibt -table- -getPLZ(Käppnerweg|1)- ergibt -table- -getPLZ(Käppnerweg|1000)- ergibt -table-
-getPLZ(Schwabacher Straße)- ergibt -table- -getPLZ(Schwabacher Straße|1)- ergibt -table- -getPLZ(Schwabacher Straße|2)- ergibt -table-
-getPLZ(Schwabacher Straße|51)- ergibt -table- -getPLZ(Schwabacher Straße|53)- ergibt -table-
-getPLZ(Schwabacher Straße|62)- ergibt -table- -getPLZ(Schwabacher Straße|66)- ergibt -table-
-getPLZ(Schwabacher Straße|1000)- ergibt -table- -getPLZ(Schwabacher Straße|1001)- ergibt -table-
-getPLZ(Stadelner Straße)- ergibt -table- -getPLZ(Stadelner Straße|1)- ergibt -table- -getPLZ(Stadelner Straße|1000)- ergibt -table-
-getPLZ(Südwesttangente)- ergibt -table- -getPLZ(Südwesttangente|1)- ergibt -table- -getPLZ(Südwesttangente|1000)- ergibt -table-
-getPLZ(Vacher Straße)- ergibt -table- -getPLZ(Vacher Straße|1)- ergibt -table- -getPLZ(Vacher Straße|2)- ergibt -table-
-getPLZ(Vacher Straße|221)- ergibt -table- -getPLZ(Vacher Straße|227)- ergibt -table-
-getPLZ(Vacher Straße|226)- ergibt -table- -getPLZ(Vacher Straße|250)- ergibt -table-
-getPLZ(Vacher Straße|1000)- ergibt -table- -getPLZ(Vacher Straße|1001)- ergibt -table-
-getPLZ(Würzburger Straße)- ergibt -table- -getPLZ(Würzburger Straße|1)- ergibt -table- -getPLZ(Würzburger Straße|2)- ergibt -table-
-getPLZ(Würzburger Straße|7)- ergibt -table- -getPLZ(Würzburger Straße|9)- ergibt -table-
-getPLZ(Würzburger Straße|34)- ergibt -table- -getPLZ(Würzburger Straße|36)- ergibt -table-
-getPLZ(Würzburger Straße|398)- ergibt -table- -getPLZ(Würzburger Straße|400)- ergibt -table-
-getPLZ(Würzburger Straße|399)- ergibt -table- -getPLZ(Würzburger Straße|401)- ergibt -table-
-getPLZ(Würzburger Straße|1000)- ergibt -table- -getPLZ(Würzburger Straße|1001)- ergibt -table-
-getPLZ(Fürther Straße)- ergibt -table- -getPLZ(Fürther Straße|1)- ergibt -table-
-getPLZ(BlaBla)- ergibt -table- -getPLZ(BlaBla|1)- ergibt -table-

getHausnummerZahl() / GetHausnummerZahl()

Unterfunktion, die die Zahl einer Hausnummer ohne Buchstaben rückliefert

Test

  • -getHausnummerZahl(123a)- ergibt -123-
  • -getHausnummerZahl(123 a)- ergibt -123-
  • -getHausnummerZahl(123a4)- ergibt -123-
  • -getHausnummerZahl(123 4)- ergibt -123-
  • -getHausnummerZahl(123½)- ergibt -123-
  • -getHausnummerZahl(123)- ergibt -123-
  • -getHausnummerZahl()- ergibt --

getPLZList() / GetPLZList()

Liefert eine Liste aller Postleitzahlen in Fürth zurück. Query: [[Kategorie:Postleitzahlen]] [[PLZ::+]]

GetPLZList() ergibt Skriptfehler: Die Funktion „GetPLZList“ ist nicht vorhanden.

stadtteil2PLZ() / Stadtteil2PLZ()

Liefert die Postleitzahlen von Stadtteilen zurück. Syntax:

  • stadtteil2PLZ(stadtteile) mit stadtteile als table
  • Stadtteil2PLZ(frame) mit Stadtteile als Argument 1 (Beispiel: {{#invoke:Geo|Stadtteil2PLZ|Innenstadt}})

Test

  • -stadtteil2PLZ("Innenstadt")- ergibt -Skriptfehler: Die Funktion „Stadtteil2PLZ“ ist nicht vorhanden.-
  • -stadtteil2PLZ("Innenstadt;Ronhof")- ergibt -Skriptfehler: Die Funktion „Stadtteil2PLZ“ ist nicht vorhanden.-
  • -stadtteil2PLZ("")- ergibt -Skriptfehler: Die Funktion „Stadtteil2PLZ“ ist nicht vorhanden.-
  • -stadtteil2PLZ()- ergibt -Skriptfehler: Die Funktion „Stadtteil2PLZ“ ist nicht vorhanden.-

Unterseiten

Siehe auch


local p = {}
local c = require("Module:Common")
local q = require("Module:Queries")
local str = require("Modul:String")

function p.OSMlink(frame)
	local dms_coords = frame.args[1] -- Degree, Minute, Second format
	local float_coords = frame:callParserFunction('#coordinates', {dms_coords, format='float', directional='no'})
	
	local coords = str.split(float_coords, ', ')
	local dms_split = str.split(dms_coords, ',')
	local url = '[https://www.openstreetmap.org/?' ..
		'mlat=' .. coords[1] .. '&' ..
		'mlon=' .. coords[2] .. '#' ..
		'map=18/' .. coords[1] .. '/' .. coords[2] .. ' ' ..
		dms_split[1] .. '<br>' .. dms_split[2] .. ']'
	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

return p