Hallo an das Forum,
ich habe eine Datenbanktabelle mit gps-koordinaten und Ortsangaben aus der ich die plz und den ort suchen will.
Das Problem ist, das da eventuell nicht ganz genau der Standort des Users mit den ermittelten Werten eingetragen ist.
z.B. ermittle ich die Koordinaten 51.059930782270456 als Lat und 13.747426815499294 als Lon.
Nun möchte ich in der Tabelle den Eintrag finden welcher diesen beiden Werten am nächsten kommt.
Sowas wie:
(SELECT * FROM `orte` WHERE `lon`>=13.747426815499294 ORDER BY abs(`lon`) limit 1)
UNION
(SELECT * FROM `orte` WHERE `lon`<13.747426815499294 ORDER BY abs(`lon`) limit 1)
UNION
(SELECT * FROM `orte` WHERE `lat`>=51.059930782270456 ORDER BY abs(`lat`) limit 1)
UNION (SELECT * FROM `orte` WHERE `lat`<51.059930782270456 ORDER BY abs(`lat`) limit 1)
hilft mir da nicht wirklich weiter. Die Ergebnisse liegen leider zu weit von dem gesuchten Ort entfernt.
Kann mir da jemand weiter helfen?
ich habe eine Datenbanktabelle mit gps-koordinaten und Ortsangaben aus der ich die plz und den ort suchen will.
Das Problem ist, das da eventuell nicht ganz genau der Standort des Users mit den ermittelten Werten eingetragen ist.
z.B. ermittle ich die Koordinaten 51.059930782270456 als Lat und 13.747426815499294 als Lon.
Nun möchte ich in der Tabelle den Eintrag finden welcher diesen beiden Werten am nächsten kommt.
Sowas wie:
(SELECT * FROM `orte` WHERE `lon`>=13.747426815499294 ORDER BY abs(`lon`) limit 1)
UNION
(SELECT * FROM `orte` WHERE `lon`<13.747426815499294 ORDER BY abs(`lon`) limit 1)
UNION
(SELECT * FROM `orte` WHERE `lat`>=51.059930782270456 ORDER BY abs(`lat`) limit 1)
UNION (SELECT * FROM `orte` WHERE `lat`<51.059930782270456 ORDER BY abs(`lat`) limit 1)
hilft mir da nicht wirklich weiter. Die Ergebnisse liegen leider zu weit von dem gesuchten Ort entfernt.
Kann mir da jemand weiter helfen?