PLZ-Umkreissuche...

tomate

Erfahrenes Mitglied
Hallo zusammen,

mich würde mal interessieren, wie man am besten eine
PLZ-Umkreissuche realisiert.

Wie man sowas mit OpenGeoDB realisiert, habe ich hier
im Forum gefunden: http://www.tutorials.de/forum/php/2...berechnen-und-alle-koordinaten-db-suchen.html

Es gibt da ja aber auch noch die Möglichkeit das mit google-maps
zu realisieren. Und dann habe ich auch noch GeoNames
(http://www.geonames.org/export/#ws) gefunden.

Davon mal abgesehen, daß ich mir grundsätzlich unsicher bin,
was ich verwenden soll, habe ich noch ein paar andere Fragen.

Benötige ich in Verbindung mit google-maps noch ein DB mit
Postleitzahlen?

Gibt es eine Möglichkeit die gefahrenen Kilometer angezeigt zu
bekommen?

Hat jemand weitere Informationen/Beispiele zum Einlesen.

Viele Grüße!
Tomate
 
Bei der Umkreissuche kann ich dir empfehlen der Geschwindigkeit halber eine gefahrene Kilometer zu verwenden sondern stattdessen Luftlinie.

Des weiteren, ich selbst habe bei einigen Projekten mit der Google API gearbeitet, das ist auch hübsch zum ggf. Visualisieren. Allerdings werden zu den Fixpunkten Die Längen- und Breitengrade gecasht. Da man nur 100.000 Abfragen im Monat machen darf und man sonst schnell an diese Grenzen stößt wenn ein paar Personen auf der Website surfen.

Die eigentliche Suche geht per mysql_query in einem Schritt:

PHP:
$query = sprintf('SELECT *, ( 6367.45 * acos( cos( radians(%1$f) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(%2$f) ) + sin( radians(%1$f) ) * sin( radians( latitude ) ) ) ) AS distance
                                              FROM orte
                                              WHERE `online` = 1 
                                              HAVING distance < %3$d 
                                              ORDER BY distance', $lat, $long, $distance));
Die Ausgabe sucht alle umliegenden Punkte mit einer Distanz von bis zu xx Kilometer. Generell sollte dir aber klar sein das eine solche Suche gerade in kurzen Strecken relativ ungenau ist.


Zum Google Daten auslesen verwende ich eine gemoddete Version von Phoogle Maps 2.0 da die Ursprungsversion den Wünschen irgendwann nicht mehr gerecht wurde.
 
Zuletzt bearbeitet:
Hallo Michael,

wenn ich das richtig sehe, setzt die Abfrage die Du da machst
vorraus, das die Geographischen Daten (Latitude, Longitude)
in der db enthalten ist?!

Normalerweise hat man doch eine db mit den PLZ's und den
entsprechenden geographischen Daten sowie eine db mit z. B.
den Händlern ohne geographische Daten.

Dann müsste mann beide abfragen und die Ergebnisse
verbinden und entsprechend auswerten.

Sehe ich das so richtig?

Viele Grüße!
Tomate
 
Hallo,

noch eine Frage zu den Google-Maps.

Das erste Ergebniss der Umkreissuche muss/sollte doch mit
einer eigenen db erfolgen, da ja sonst google z.B. 5000 mal
die Geodaten für die Fachhändler welche in meiner db stehen
zurückgeben muss?

Habe ich also eine locale db mit PLZ's und meinen Fachhändlern
und die Suchanfrage ergibt 10 Ergebnisse, schicke ich auch nur
diese an google, richtig?

Google verbrennt für diese Anfrage demnach auch nur 10 Query's
und es bleiben noch 900.990 übrig. Sehe ich das richtig?

Oder wie hast Du das gemacht?

Viele Grüße!
Tomate
 
Mal abgesehen davon das der letzte Beitrag mehr als 2 Jahre her ist, soll man sich jetzt irgendeine EXE-Datei herunterladen und installieren ohne genau zu wissen was es ist.
 
Wir haben einmalig alle etwa 1500 Adressen per Google in GeoKoordinaten auflösen lassen. Da nur die Postleitzahl auch mal deutlich wo anderst liegen kann. Dannach Manuell nachkorrigiert wo es nicht passte und behielten diese nun dauerhaft in der Datenbank. So muss pro Adressauflösung nur die neue Adresse um die der Umkreis gesucht wird, übertragen werden und die zurückgegebenen Koordniaten werden gegen die Datenbank gematcht.
 
Zuletzt bearbeitet:
Zurück