On Mon, Oct 3, 2022 at 2:35 PM Luca Bertoncello <[email protected]> wrote:
> Hallo Leute! > > Irgendwie habe ich jetzt eine Denkfehler und komme nicht weiter... > > Also, sagen wir, dass ich eine Tabelle "airports" habe, mit u.a. die > Koordinaten (Latitude und Longitude) der Flugplätzen. > Ich will den nächstgelegen Flugplatz einem Punkt suchen, von dem ich > ebenso die Koordinaten habe. > > Mir ist klar, dass um richtig genau zu sein, die Datenbank Funktionen > enthalten muss, die die Entfernung zwischen zwei Punkte berechnen, und > das haben die meisten DB-Engines nicht. Sicherlich nicht SQLite auf > Android... > > Aber für meine Zwecke würde es reichen, wenn ich den Flugplatz finde, > bei dem die Differenz zwischen den eigenen Koordinaten und den > Punktkoordinaten am kleinsten ist. > > Irgendwie komme ich aber nicht klar... > > Mit dieser Anfrage hole ich die Flugplatzdaten zusammen mit den > Koordinatendifferenzen: > > SELECT *, > ABS(latitude - 51.04952025) AS latdiff, > ABS(longitude - 13.68193347) AS lngdiff > FROM airports; > > Nun will ich den Datensatz finden, bei dem latdiff = MIN(latdiff) und > lngdiff = MIN(lngdiff). > So wäre meine Anfrage: > > SELECT *, > ABS(latitude - 51.04952025) AS latdiff, > ABS(longitude - 13.68193347) AS lngdiff > FROM airports > GROUP BY id > HAVING latdiff = min(latdiff) AND lngdiff = min(lngdiff); > > Aber das gibt mir völlig flasche Ergebnisse, denn die Koordinaten, die > ich hier nutze, sind in Dresden Cotta und der Flughafen Aachen ist > deutlich weiter als den Flughafen Dresden, von mir gesehen... > > Kann jemand mir sagen, wo mein Denkfehler liegt? > Schau mal, vielleicht hilft dir das hier: https://git.osuv.de/m/dotfiles/src/branch/master/mariadb/distance.sql https://git.osuv.de/m/dotfiles/src/branch/master/mariadb/deg2rad.sql Ob sqlite auch funktionen kann wie mariadb etc, ...keine ahnung. > > Danke > Luca Bertoncello > ([email protected]) >
