Umkreissuche

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umkreissuche

    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ß

  • #2
    Hm, da wirst Du wohl mit Unterteilungen arbeiten müssen. z.B. Deutschland in 50 x 50 km große gedachte Kästen aufteilen und die Kästen durchnummerieren.

    Wenn jetzt jemand nach einer PLZ in Kasten X sucht, beschränkst du die Suche auf Kasten X, und die Kästen in der unmittelbaren Nachbarschaft.

    Wie groß die Kästen werden müssen, um die optimale Abfrage zu bekommen, hängt von deinen Abfragen ab.

    Es gibt bestimmt viel bessere und genialere Algorithmen für diese Problematik, aber mit einem ähnlichen Ansatz (2-Stellige PLZ-Gebiete statt Kästchen) fahren meine Umkreissuchen ganz gut.

    Kommentar


    • #3
      Ich hab mit der opengeodb zwar schon lange nichts mehr gemacht, aber in den Beispielen war irgendwo eine Funktion die da schon machte...

      sorry, finds jetzt auch die schnelle nicht...

      //edit:
      http://opengeodb.giswiki.org/wiki/Umkreissuche <- das müsste was sein.
      Oder das: http://opengeodb.giswiki.org/wiki/Op...-_Umkreissuche

      Aber das gabs doch schon fertig... hmmmm
      Zuletzt geändert von prego; 30.05.2008, 20:01.

      Kommentar

      Lädt...
      X