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])
>

Antwort per Email an