In der hier beschriebenen Form macht das allein als WordPress-Plugin auch wenig Sinn – das Skript liefert ja nur die Postleitzahlen samt Entfernung im angegeben Umkreis. super Sache! Auf unserer Website möchten wir für unseren Newsletterversand nicht nur Deutschland, sondern auch Österreich und die Schweiz in die Umkreissuche mit einbeziehen. Aber versuche doch mal, Dir das Ergebnis in beiden Fällen mittels var_dump() ausgeben zu lassen – eventuell erhältst Du in Fällen mit mehreren möglichen Ergebnissen ein Array statt einem String zurück, dann könnte man dort das erste Element abgreifen. Ein Shortcode für die Integration einer entsprechenden Karte. Jetzt will ich nur noch bei jedem Platz die Entfernung zur gesuchten PLZ angeben. ich glaube die Art der Datenverarbeitung ist nicht geeignet, um das gewünschte Ergebnis in einem Durchgang zu ermitteln. Und da Postleitzahlengebiete sowieso unregelmäßig geformt sind, sich eigentlich nicht auf eine einzige Koordinate reduzieren lassen und Straßenverläufe bei der Distanz-Eingrenzung nicht berücksichtig werden ist quasi „by design“ schon eine gewisse Unschärfe vorhanden. Ich habe die zip datei lokal gespeichert und entpackt und per xampp konnte ich auch die php dateien öffnen. ogdbPLZnearby() liefert als Ergbenis ein Array mit den Postleitzahlen im Umkreis zurück – auf Wunsch auch mit dem Namen der Stadt. Ich bin nicht sehr vertraut mit php, aber da ich ansonsten keine andere Möglichkeit gefunden habe, will ich es mal versuchen. Grüß Dich, tolles Script. :). Das erste Ergebniss der Umkreissuche muss/sollte doch mit einer eigenen db erfolgen, da ja sonst google z.B. Ja klar, gern. You can add images to your comment by clicking here. Nur komme ich hier nicht weiter: wie bzw. Eine Alternative zur OpenGeoDB für internationale Zwecke wäre http://www.geonames.org, zumindest die großen Industriestaaten sollten ziemlich vollständig drin sein, Oh, da werde ich etwas nostalgisch, vor zig Jahren habe ich mit der OpenGeoDB so geografische Suchen realisiert (Wo ist der nächste Händler im Umkreis?) Dennoch erfolgt die Nutzung des auf eigene Gefahr! das wäre eine Möglichkeit, jedoch ist die bei der zu erwartenden Menge an ergebnissen einfach zu umständlich. Das Skript schaut nämlich immer zuerst nach, ob die Datei bereits lokal auf dem Server vorliegt und versucht erst wenn dem nicht so ist, die PLZ.tab aus dem Internet zu laden. Was liegt also näher, als alle Konsumenten oder Unternehmen anzuschreiben, die in unmittelbarer Nähe wohnen bzw. GIbt es schon neuigkeiten bezüglich des WordPress plugins? Möchtest Du nur Entfernungen zwischen zwei PLZs bestimmen, nimm das von Manuel Hoppe. Und wie du schon erkannt hast lassen sich die SQLs ohne weiteres nicht in aktuelle MySQL Versionen importieren. Simpel in der Anwendung, die Performance ist völlig in Ordnung. Habe aber noch ne Anregung/Frage: Wie müsste man das Skript anpassen um die Distanz zwischen zwei PLZs zu erhalten? Nun habe ich ein Formular wo ich meine eigene PLZ eingebe und mein Script macht nen wp_query mit allen Plätzen (PLZs) in der Nähe. Verwendet man dann einfach so, z.B. Soweit ich den Code richtig interpretiere, ist es vermutlich nicht damit getan, nur die PLZs der anderen Länder in die Datenbank aufzunehmen. Du brauchst also nicht mein Skript umschreiben sondern verwendest einfach das OgdbDistance-Skript. http://www.thewebhatesme.com/allgemein/umkreissuche-in-php-teil-1/. 2. du rufst damit den geonames web service auf und erhälst alle PLZ im Umkreis darum. Also ich übergebe einer Funktion zwei PLZs und bekomme die Distanz in KM zurück. ovema.de informiert die Besucher über Themen wie Cazare Vama VECHE und Vama VECHE. Datenbank habe. Ich möchte eine PLZ eingeben, den Umkreis und dann sollen mir alle PLZ mit diesen Kriterien in einer Liste ausgegeben werden, damit ich diese in EXCEL einfügen und damit weiterarbeiten kann. Um die OpenGeoDB in meine MySQL zu importieren musste ich leider nicht nur einen SQL-Dump importieren, sondern ein paar Schritte beachten, die aber nach etwas Suche im Wiki beschrieben sind. Ist es möglich das ich auch angeben kann das es mir nur im Rahmen von 10-20 km radius sucht? Habe es noch nicht getestet, werde mich aber gleich mal ran machen und dann ein Feedback geben wie genau dieser Code-Snippet ist. Allerdings muss ich jede einzelne PLZ eintragen. Umkreissuche PLZ / Ort Suchen Sie mit der kostenlosen Umkreissuche Postleizahlen (PLZ) und Orte innerhalb eines Umkreises / Radius zu Ihrer Angabe. 20 km beschränkten Suchergebnissen wurden dann auch Entfernungen knapp über der 20km-Grenze angezeigt. OpenGeoNearestNeighbours ist eine Sammlung von PHP-Klassen und einer Beispielanwendung mit deren Hilfe eine Umkreissuche realisiert werden kann. Client-Zertifikate als sicherer Login-Ersatz? Leider bekomme ich es in WordPress nicht in mein Theme integriert. Das ist die Voraussetzung, das das Skript die Datei mit den Postleitzahlen aus dem Netz abrufen kann. Das war es eigentlich schon. Momentan bieten wir Ihnen Code-Beispiele für ASP, PHP und ColdFusion an. Geben Sie den Ort oder die Postleitzahl (PLZ) in unsere Umkreissuche ein und erfahren Sie die Standorte der Restaurants mit unserem Spargel. weiß jemand ob man diese überhaupt benötigt? Ein Freund hat mir gestern noch erklärt, dass ich nur in der php datei den Radius und die PLZ ändern muss um mein gewünschten Ergebnis zu bekommen. Merci. So stand-alone bringt das wenig. Möchte oder kann man keine Google Karte anzeigen, darfst du auch die PLZ-Lat/Lng-Ergebnisse nicht nutzen. Aufgabe 2 war doch etwas schwieriger als gedacht: Den Datenbank-Dump zu importieren in meine MySQL-Datenbank und in ein Format zu bekommen das ich benutzen kann. Was die Umkreissuche langsam macht ist, dass bei der Kreisberechnung schlecht ein Index der Datenbank benutzt werden kann. Was ich jedoch leider nicht geschafft habe, war es die changes.sql zu importieren. XYZ PLZ 78050 Natürlich will er dies mit anderen Termin und Kundenbesuchen verbinden und hätte nun gerne automatisch eine Liste erstellt, welche alle Firmendatensätze anzeigt, welche z.B. Es funktioniert sehr gut und auch mit top Performance. Habe das damals mit der GoogleMaps API gelöst. Restaurants – Umkreissuche. Beides liefert die OpenGeoDB, praktischerweise sogar unter Public Domain Lizenz. Bitte beachten: Die Entfernungsangaben sind nur ganz grobe Schätzungen und können bisweilen erheblich von der Realität abweichen! Wenn Sie Abstände in Meilen errechnen möchten, müssen Sie den Entfernungs-Parameter umwandeln: 1km = 0.621371 Meilen und den Erdradius von 6378.388 km in 3963 Meilen. Aber Du könntest das Skript intern zweimal ausführen, erst für 20 km Umkreis (Ergebnis dann in Array speichern) und dann für 10 km Umkreis (Ergebnis in einem zweiten Array speichern). factory-outlets.org hilft dir dabei, Schnäppchen in deiner Nähe zu finden. Oft sind diverse Postleitzahlen mit den selben Koordinaten versehen (manchmal ganze Städte). Chapeau! Um genau zu sein: Meine Lösung ist eigentlich keine Umkreissuche, sondern vielmehr eine „Um-Quadrat-Suche“ da der Zielbereich quadratisch abgesteckt wird. PLZ sind, obwohl das „Z“ in PLZ für Zahl steht, keine Zahlen, sondern Nummern. Habe das selber mal für ein Projekt benötigt und es ähnlich gemacht wie du. Ich bin gerade dran, habe aber viel um die Ohren, sodass ich nicht vor Ende diesen des Moants fertig werde. Bei einem aktuellen Projekt wünschte der Kunde die zusätzliche Anzeige der Entfernung in den Ergebnissen der Postleitzahl-Umkreissuche. Hat das mit der changes.sql mal jemand hinbekommen, bzw. Damit müsste das ganze äquivalent möglich sein. Auf die Frage habe ich auch keine Antwort, aber fa-technik.adfc.de wird auch in der offiziellen Doku von OpenGeoDB als Quelle genannt. sorry, das kann ich leider nicht beantworten. Welches Tool gibt es hierfür? Jedoch wird jeder Kommentar von mir geprüft, bevor er freigeschalten wird. : $distance = ogdbDistance(47443,47058);. Für die Entfernungsbestimmung der durch die Umkreissuche ermittelten Postleitzahlen habe ich dort daher zusätzlich Manuel Hoppes ogdbDistance() genutzt. Das klappt. Dort werden nicht wie bisher einfach alle Postzeitzahlen deren Koordinaten zwischen definierten Minimum- und Maximalwerten liegen eingesammelt, sondern nach dem Vorbild von Manuel Hoppes ogdbDistance() tatsächlich die Entfernungen zwischen den Koordinaten berechnet und aller Treffer innerhalb des definierten Radius in das Ergebnis-Array übernommen. Anschließend könntest Du die PHP-Funktion array_diff() verwenden, um beide Arrays zu vergleichen. Eine PLZ-Umkreissuche in PHP Ich bekam vor ein paar Tagen folgende kleine Programmieraufgabe: Gegeben ist eine große Datenbank mit > 300.000 Kunden, worin jeder Kunde eine Postleitzahl hinterlegt hat. Im Download-Paket befindet sich eine beispiel.php, die die grundlegende Verwendung der PLZ-Umkreissuche aufzeigt: Zuerst muß die (Mini-)Biblothek in das eigene Skript eingebunden werden: Anschließend steht die Funktion ogdbPLZnearby() zur Nutzung bereit. Hijey, also Beispiel geloadet und die entsprechenden DB-Tabellen erstellt. vektorkneter.de – Blog über Mediengestaltung und Nerd-Kram. Wenn es noch was Zeit hat, schicke mir bitte als Gedächtnisstütze eine Nachricht über das Kontaktformular. Daher jetzt die Notlösung eine zweite Abfrage nur für die Distanz zu starten. Dann hättest Du das was Du brauchst und könntest damit dann weiter arbeiten. Vermutlich nicht. Die Doku ist leider wirklich nicht up tp date. Dieses macht genau das was Du brauchst – nämlich Entfernungen zwischen zwei PLZ zu berechnen. Meine Daten liegen in einer EXCEL-Tabelle vor. Schaut man sich aber die Daten an, von wann die Downloads sind, dann sind die auch relativ aktuell. ersteinmal danke für das tolle Script. Denke deine große Anzahl Postleitzahlen lässt sich auch auf dieses Problem zurückführen. In der Regel dürfte das hinnehmbar sein aber man sollte diese Tatsache immer im Hinterkopf behalten. Zumindest von meiner Seite ist dahingehend nichts geplant. Eine Umkreissuche lässt sich mittlerweile über eine Google API realisieren. Eine PLZ-Umkreissuche in PHP Ich bekam vor ein paar Tagen folgende kleine Programmieraufgabe: Gegeben ist eine große Datenbank mit > 300.000 Kunden, worin jeder Kunde eine Postleitzahl hinterlegt hat. Deins und Manuels. Nehmen wir mal an, wir suchen Postleitzahlen im Umkreis von 10 Kilometer um meine Wahlheimatstadt Naunhof (04683): Mit folgendem Aufruf wird ein Array sämtlicher Postleitzahlen im definierten Umkreis zurück geliefert: Über eine dritten, optionalen Parameter (boolean, true/false) kann bei Bedarf auch die Rückgabe der ermittelten Städtenamen ausgelöst werden: Die mitgelieferte beispiel.php zeigt beide Anwendungsfälle, schaut einfach mal rein und probiert aus. "km"; ausgeben, Gute Idee André. Das kann praktisch sein, wenn man alles innerhalb eines bestimmten Umkreises.. Denn außer dem Zurückliefern von Postleitzahlen im Umkreis macht das Skript ja nix – in der Regel wird man das irgendwie in seine eigene Applikation „verwursten“ müssen. Das kommt ganz darauf, was Du genau vorhast. Bitte beachten Sie, daß alle unsere Beispiele Abstände in Kilometern errechnen. 2-Faktor-Authentifizierung mit dem Google Authenticator, X-Frame-Options Header gegen ClickJacking, Ersetzen von „TYPE=InnoDB“ durch „ENGINE=InnoDB“, da ich eine MySQL 5.6. Wenn ich das Script einmal mit 10 und einmal mit 20 suchen lasse bekomme ich die 10 KM Suchergebnisse ebenfalls bei den 20KM. Daher die Frage: hast Du oder vielleicht auch einer der anderen „Mitstreiter“ das eventuell schon irgendwie umgesetzt? Dann durchlaufe ich die gegebenen 42 Postleitzahlen der Filialen und berechne jeweils die Distanz zu allen 17052 Postleitzahlen die es in Deutschland gibt. Tagged with OpenGeoDB, PLZ Umkreis, PLZ Umkreissuche, Postleitzahlen Umkreis Suche. Eine PLZ Umkreissuche in PHP, dazu benötigen wir: Eine Geo DB mit Long und LAT sowie PLZ (am besten von opengeodb auf sourceforge) Einen brauchbaren Umkreissuchen-Script; Etwas Zeit; Bei meinen Versuchen hat sich herausgestellt, dass ich die meiste Zeit damit verbracht habe, eine brauchbare Datenbank zu finden und zu formatieren. Das Skript ist nach besten Wissen getestet und erfüllt in meinem Szenario die gewünschten Anforderungen. 700 Objekte, in der Ortstabelle ca. Ich habe anhand dieser Anleitung (die genau das zeigt was ich vorhabe) als nächstes eine Zwischentabelle „zip_coordinates“ erstellt, die nur Postleitzahlen und Latitude+Longitude enthält. Ein Lösungsvorschlag wäre folgender: #1. Klappt einwandfrei. Alle haben ein Custom Field für die PLZ. eine Filial-Suche bauen will, könnte man die einzelnen Filialen in Custom Post Types erfassen und müsste dann die vom Skript gelieferten Postleitzahlen codeseitig mit den Filial-Einträgen abgleichen, um nur die passenden Filialen anzuzeigen. Adressfelder für die Registrierung neuer Accounts und im Profil. Welche Postleitzahlen gibt es im Umkreis? Folgendes kleines Script lieferte mir dann die Ergebnisse, die ich haben wollte: Den etwas komplizierteren SQL-Query habe ich aus dem besagten Wiki-Artikel, den hätte ich selbst nur schwerlich erstellen können in kurzer Zeit. Damit wäre man theoretisch näher an einem UmKREIS aber duch die eben beschriebene Unschärfe erschien mir die quadratische Eingrenzung als ausreichend – bei (vermutlich) geringerem Rechnenaufwand. Spannend fand ich das ich irgendwann Ungenauigkeiten feststellte und dann verstand das die „6380“ aus obigen SQL, den Radius des Globus darstellen und nur vereinfacht als Konstante angegeben ist. Von daher ist das offenbar in Ordnung. Herausforderung: Ermittlung der naheliegendste Orte von (0,01 bis max. Super. in dem Umkreis von 50 KM zu der genannten PLZ liegen. Mit einem Trick könnt ihr in Google Maps einen Radius zeichnen. 4. Wenn man z.B. das Skript macht genau das was Du suchst und wenn Du in der Lage warst einen XAMPP auf zu setzen, dürftest Du damit klar kommen. Widget für die Integration einer Karte, auf der die nächsten Ergebnisse gezeigt werden, die anhand der HTML5-Standortbestimmung ermittelt werden. Ich hab jetzt überlegt ob es auch funktioniert die Suche über den ortsmnamen ausführen zu lassen? Das war natürlich unschön und für den Nutzer verwirrend, deshalb habe ich mich für eine Überarbeitung von ogdbPLZnearby() entschieden. Aufgabe 3: Dann hatte ich die Rohdaten in meiner Datenbank. Entfernung. Eventuell war dies ein temporäres Problem, aber wenn ich es richtig im Kopf habe, hat damals ein Duplicate Primary Key Probleme gemacht. Das ist also so, als ob man mit einer Telefonnummer rechnet. Woher bekomme ich die PLZ Daten samt Location Daten der Schweiz? Firma X möchte nun diese Kunden kontaktieren, aber nur diejenigen die in 35km Umkreis um eine seiner 42 Filialen wohnen. Wir nutzen Cookies und andere Technologien. PLZ Umkreissuche Script und Codebeispiele in verschiedenen Scripting und Programmiersprachen (wie ASP, PHP...) um Entfernungen zwischen Postleitzahlen zu berechnen und um Postleitzahlen innerhalb eines gegebenen Radius um eine PLZ zu extrahieren. Also da, wo die wp-config.php liegt (alternativ kannst Du in der ogdbPLZnearby2.lib.php des Umkreissuche-Skripts auch durch Ändern der Konstante OGDB_LOCAL_DATA_FILE einen anderen Pfad angeben). Das müsste doch auch irgendwie gehen. Hab natürlich ordentlich gegoogelt und auch was brauchbares gefunden: Umkreissuche mit der OpenGeoDB. ich selber habe das noch nicht umgesetzt, sollte aber prinzipiell so funktionieren: Die vom Skript genutzte PLZ.tab enthält ja nur die Daten für Deutschland. ... mehr. Nur wie bekomm ich es hin das er bei mehreren Einträgen z.B. Kannst du mir da bitte sagen, wie ich in dein Code bearbeiten muss, um so eine ähnliche Ausgabe wie oben zur erhalten? Umkreissuche Um den Suchmittelpunkt festzulegen wird ein Ort benötigt (dann "Suchen") oder er wird über die Karte per Klick festgelegt! Ich meine damit die Akualität der Daten?! Die Funktion liefert ein neues Array zurück, welches nur die Elemente enthält, die nicht doppelt vorkommen – also die 20km-Treffer minus die 10km-Treffer. (Sagen wir mal, ich habe eine große IT Kette mit sehr vielen Filialen). Ich bekam vor ein paar Tagen folgende kleine Programmieraufgabe: Gegeben ist eine große Datenbank mit > 300.000 Kunden, worin jeder Kunde eine Postleitzahl hinterlegt hat. enthält. ist halt „grey hat“! Irgendwie war mir unwohl bei der bisherigen Lösung. wo muss ich „TYPE=InnoDB“ durch „ENGINE=InnoDB“ ersetzen? Auf etlichen (Shared)-Servern ist der Download externer Quellen über diese Funktion jedoch via allow_url_fopen=off unterbunden. Möchtest Du eine Umkreissuche (optional mit Angabe der Entfernung zum „Suchtreffer“) dann verwende mein Skript. Die Schritte lauten: Gerade bei den beiden großen Dumps musste ich zwischendurch abbrechen, „BEGIN;“  und „COMMIT;“ einfügen oben und unten, und dann nochmal laufen lassen, denn ohne diese Transaktion war der Import sehr sehr langsam. Hallo Michael Du möchtest wahrscheinlich so vorgehen : 1. der Benutzer gibt bei dir eine PLZ ein. Ein Beispiel dazu findest Du im mitgelieferten Beispiel-Skript ganz unten. Diese Prüfung könntest Du so erweitern, dass sie zusätzlich mit größer-als auf eine zweite Entfernung prüft. Karte: Verwaltungsbezirke Leipzig von Elsaxo, Wikimedia Commons, Creative Commons Attribution-Share Alike 3.0 Unported license / Magnifying Glass Color: antsorin, Openclipart.org, Public Domain License. Hast du diesbezüglich schon negative Erfahrungen sammeln können? schau mal via phpinfo(), ob auf Deinem Server allow_url_fopen aktiviert ist. Hallo André! Bevor jemand fragt: Die OpenGeoDB enthält neben den Daten für Deutschland auch Daten aus Österreich, Belgien, Schweiz und Lichtenstein. Schritt 2: Senden Sie uns bitte eine E-Mail an geo@cebus.net mit der Information, wo auf Ihrer Seite der Link zu finden ist. Gerade für den deutschen Raum habe ich bei einem Kundenprojekt deutliche Ungenauigkeiten festgestellt. Die Aktualität der Daten spielt hier vermutlich eine eher untergeordnete Rolle – so schnell ändern sich ja Postleitzahlengebiete nicht. Chef hat ein Kundentermin bei Fa. 01-03-2006 OpenGeoNearestNeighbours – Eine Umkreissuche für OpenGeoDB.