Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

SQL-Statement zum Gruppieren von Koordinaten. Bitte um Hilfe.

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Kelley Courtney, 9 September 2013.

  1. Kelley Courtney

    Kelley Courtney Neuer Benutzer

    Hallo allerseits,

    ich suche eine Lösung, um Koordinaten in einer Datenbank zu gruppieren, die ähnlich sind.

    Meine Lösung ist folgendes Statement:

    SELECT * FROM (SELECT uid, accuracy, longitude, latitude, concat(round(latitude,3),\"_\",round(longitude,3)) as latitudex, max(timestamp) as timestamp from x_location group by latitudex order by timestamp desc limit 200) as sonstiges order by timestamp asc;


    Die Werte werden auf die dritte Stelle gerundet und dann zum Gruppieren in einem neuen Feld zusammen gefügt. Jetzt möchte ich aber auch Koordinaten mit in die Gruppe einbeziehen, von denen einer der Werte (Latitude oder Longitude) ein wenig höher liegt. Also theoretisch müsste ich auch die Entfernung zwischen zwei Punkten berechnen und wenn diese z.B. <=25 Meter ist, dann sollten die Punkte gruppiert werden.

    Hier mal ein paar Beispiele:

    latitude longitude timestamp Neues_Feld
    50.3021194 6.9068089 1376319155 50.302_6.907
    50.3021194 6.9068089 1376319294 50.302_6.907
    50.3021194 6.9080000 1376319500 50.302_6.908

    Die ersten beiden Felder werden gruppiert und das Feld mit dem höheren Timestamp wird genommen. Das dritte Feld liegt aber ziemlich dicht dabei und sollte nach Möglichkeit auch weggruppiert werden. Wie kann ich das erreichen?

    Macht es beispielsweise Sinn, beispielsweise die Werte nach der vierten Stelle mit Truncate abzuschneiden und dann zu runden? Ist das besser? round(truncate(longitude,4),3) + round(truncate(latitude,4),3)...

    Wie könnte ich in einer dynamischen Abfrage die Entfernungen berechnen und das als Grundlage für die Abfrage nehmen? Also idealerweise eine Art Umkreissuche von Koordinaten innerhalb einer Abfrage...

    Vielen Dank für mögliche Rückantworten.

    Danke, Grüße, Kelley
     
  2. ukulele

    ukulele Datenbank-Guru

    Ich kann dir leider noch keine Lösung bieten aber mal weiter gedacht, was ist wenn 2 Punkte, die 50 Meter auseinander liegen beide zu einem dritten Punkt 25 Meter Abstand haben. Wo wird dieser dann zugeordnet?

    Ich hab nur den Anfang gelesen aber das hier scheint interessant: http://www.autoit.de/index.php?page=Thread&postID=108709
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden