AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Nahste Koordinate über SQL suchen
Thema durchsuchen
Ansicht
Themen-Optionen

Nahste Koordinate über SQL suchen

Ein Thema von Hobbycoder · begonnen am 29. Jul 2020 · letzter Beitrag vom 30. Jul 2020
 
Hobbycoder

Registriert seit: 22. Feb 2017
998 Beiträge
 
#1

Nahste Koordinate über SQL suchen

  Alt 29. Jul 2020, 19:23
Datenbank: MySQL • Version: 5.7 • Zugriff über: Zeos
Hi,

ich habe eine Tabelle mit Koordinaten (Latitude und Longitude in separaten Feldern). Jetzt möchte per SQL den Datensatz abfragen, der an nahsten zu einer angegebenen Koordinate liegt.
Noch schöner wäre es natürlich z.B. die 5 nahsten zu finden, aber ich wäre auch erst mal mit 1 zufrieden.
Wie könnte man sowas unter SQL realieren?

Mein erste Ansatz ist folgendermaßen:
Code:
SELECT 53-lat as DiffLat, 10-lon as DiffLon, ABS((53 - lat) * (10 - lon)), lat, lon, id, FROM CPoints order by ABS((53 - lat) * (10 - lon));
In dem Beispiel wird als gesuchte Koordinate 53 Lat und 10 Lon angenommen.

Ich multipliziere die Differenz der Latitude zu meiner gesuchten Latitude mit der Longitude der gesuchten Longitude, und nehme davon die Erste.
Das sieht zwar auf den ersten Blick recht gut aus, bringt mir aber nicht, da dann alle die sehr genau an der Latitude oder Longitude liegen möglicher oben in der Ergebnisliste, aber trotzdem weiter von der gesuchten Koordinate entfernt als welche die weiter unten in der Liste stehen. So würde wenn die Latitude genau mit der gesuchten Latitude übereinstimmt mit 0 multipliziert, und würde somit ganz oben in der Liste herauskommen, obwohl der Punkt vielleicht mit seiner Longitude hunderte Kilometer weit weg wäre.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder (29. Jul 2020 um 19:26 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz