Kalle_B: Geo-Daten - die nächsten Orte ermitteln

Hallöle,

ich habe die Open-Geo-DB übernommen und kann damit auch eine Umkreissuche um einen Ort machen, wenn km bekannt. Genaugenommen nehme ich ein Quadrat.

Allerdings habe ich keine Idee, wie man die nächsten 10 Orte per SQL ermitteln könnte, aufsteigend nach Entfernung.

Geht das ohne temporäre Tabellen und in vertretbarer Zeit?

LG Kalle

  1. Allerdings habe ich keine Idee, wie man die nächsten 10 Orte per SQL ermitteln könnte, aufsteigend nach Entfernung.

    du hast koordinaten du du in ein quadrat einschreiben kansnt - der mittelpunkt des quadrates ist dir bekannt und die kantenlänge auch

    zur vereinfachung nur 2-dimensional:
    angenommen du suchst in einem umkreis von 2 breitengrade
    du bist am 40. breitengrad
    also willst du alles vom 38. bis zum 42. breitengrad haben

    du suchst also alle datensätze deren differenz zwischen mittelpunkt und äusserst linkem sowie zwischenäusserst rechtem und  mittelpunkt <= 2 ist

    also
    ein punkt am 39,5. breitengrad hat 40 - 39,5 = 0.5 differenz, ein punkt auf dem 41. breitengrad hat 41 - 40 = 1.0 differenz

    all diese ergebnisse sortierst du nun aufsteigend

    ---

    du solltest dich aber ggf mit einer gaußschen umkreissuche auseinandersetzen