Sven Rautenberg: ich komm einfach nicht weiter

Beitrag lesen

Aloha!

Ich kriege bei diesem Script, welches auf PostLeitZahlen als Eingabe basiertz leider immer ein Ergebnis angezeigt.
Es muss doch aber möglich sein, dass wenn ich eine PLZ eingebe und +1000 und -1000 sich keine Filiale befindet, dass dann ein Text ausgegeben wird, wie z.B. es ist keine Filiale in der Nähe.

Du hast ein viel größeres Problem. "Filiale in der Nähe" ist leider absolut nicht anhand der Postleitzahl festzustellen. Denn die Post hat die Postleitzahlen auf der deutschen Landschaft so angeordnet, dass immer gewisse Gebiete (die absolut nichts mit den politischen Grenzen zu tun haben müssen) eine PLZ-Nummer gemeinsam haben - je weiter man ins Detail geht, desto chaotischer wird aber die Verteilung.

Irgendwo stoßen die PLZ-Regionen "1xxxx" und "2xxxx" aneinander. Wer am Rand von 1xxxx wohnt, hat es möglicherweise näher zu einer Filiale in 2xxxx, weil das direkt der Nachbarort ist. Die PLZ-Differenz ist aber möglicherweise 10000 und mehr, also wird bei deinem Verfahren niemals die doch so nahe Filiale gefunden.

Im Ruhrgebiet ist beispielsweise die PLZ-Region 40xxx (Düsseldorf) von den Regionen (im Uhrzeigersinn, angefangen im Norden) 45xxx, 42xxx, 51xxx, 50xxx, 41xxx, und 47xxx umrahmt. Die maximale Differenz wäre 12000.

Wenn du die Suche auf die gleiche PLZ-Region begrenzt (maximale Differenz 1000), hast du zwar in Düsseldorf recht gute Karten, weil die 40er-Region recht klein ist. Aber im Osten ist z.B. die 17er-Region (Neubrandenburg) riesig. Und wenn Menschen an der Grenze zur 18er-Region wohnen, wollen sie vielleicht einfach dorthinn, anstatt mehrere hundert Kilometer durch die 17er-Region zu reisen.

Du musst dir, wenn du die Aufgabe ernst meinst, leider etwas anderes ausdenken. Bei der Post ist eine CD erhältlich, die allen Postleitzahlen geografische Koordinaten zuordnet (oder so ähnlich) - anhand dieser Information kannst du die geografische "Nähe" zweier PLZ bestimmen und entsprechend auswerfen.

Du kannst genausogut jeder Filiale einen gewissen Umkreis an Postleitzahlen zuordnen, für die sie zuständig sein soll. Beispielsweise dürfte eine Filiale in 20471 (Hamburg) zuständig sein für alle PLZ in 20xxx, aber da Hamburg groß ist, auch für 22xxx und einen winzigen Teil von 21xxx. Und eventuell auch für Teile des Umlandes, also 21xxx, 23xxx, 24xxx und 25xxx. Beachte: 21xxx ist nur zu einem kleinen Teil Bestandteil von Hamburg, der größere Teil reicht südlich der Elbe bis an die Nordseeküste. Dort ist Bremerhaven (27xxx) näher, als Hamburg.

Das kann man wirklich nur dann gut beantworten und rausfinden, wenn man sich von der Post eine Postleitzahlenkarte besorgt. Dann siehst du auch, wie problematisch deine Annahme ist, ähnliche Postleitzahlen seien geografisch "in der Nähe". Diese Annahme gilt wirklich nur, in Großstädten, wenn die letzte Ziffer sich unterscheidet. Auf dem Lande kann der Unterschied einer PLZ-Ziffer etliche Kilometer ausmachen

- Sven Rautenberg