Geo-Daten - die nächsten Orte ermitteln
Kalle_B
- datenbank
0 suit
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
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