Hallo,
habe bereits mehrere Threads im Forum zum Thema Umkreissuche, aber keine Antwort auf meine Frage, gefunden.
Ich habe die OpenGeoDB im Einsatz.
Weiterhin habe ich eine Tabelle mit Einträgen, die Kontaktadressen enthalten. id | name | plz
Jetzt möchte ich eine Umkreissuche realisieren, d. h. der Besucher gibt auf der Webseite im Suchfeld eine Postleitzahl ein und ausgegeben werden alle Kontaktadressen, die beispielsweise im Umkreis von 50 km sind.
Wie kann ich das am besten realisieren?
Bisher habe ich es so gelöst, dass alle Einträge aus der Kontakte-Tabelle ausgelesen werden und für jeden Eintrag die Entfernung zur gesuchten PLZ ermittelt werden, mittels folgender Funktion: fetchDistanceByPLZ($plz_1, $plz_2)
Natürlich ist dies unperformant, weil jedes Mal alle Einträge aus der Kontaktadresse gelesen werden und dies bei größeren Datenmengen zu Problemen führen wird.
Wie kann ich es besser lösen?
Gruß
habe bereits mehrere Threads im Forum zum Thema Umkreissuche, aber keine Antwort auf meine Frage, gefunden.
Ich habe die OpenGeoDB im Einsatz.
Weiterhin habe ich eine Tabelle mit Einträgen, die Kontaktadressen enthalten. id | name | plz
Jetzt möchte ich eine Umkreissuche realisieren, d. h. der Besucher gibt auf der Webseite im Suchfeld eine Postleitzahl ein und ausgegeben werden alle Kontaktadressen, die beispielsweise im Umkreis von 50 km sind.
Wie kann ich das am besten realisieren?
Bisher habe ich es so gelöst, dass alle Einträge aus der Kontakte-Tabelle ausgelesen werden und für jeden Eintrag die Entfernung zur gesuchten PLZ ermittelt werden, mittels folgender Funktion: fetchDistanceByPLZ($plz_1, $plz_2)
Natürlich ist dies unperformant, weil jedes Mal alle Einträge aus der Kontaktadresse gelesen werden und dies bei größeren Datenmengen zu Problemen führen wird.
Wie kann ich es besser lösen?
Gruß
Kommentar