Entfernungsberechnungen in SQL

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Entfernungsberechnungen in SQL

    Hallo!

    Ich muss hier für ein Projekt im Studium Entfernungsberechnungen auf Basis kartesischer Koordinaten machen.

    Ich hab 2 Tabellen :
    - Tabelle "Haltestellen" mit Bushaltestellen und Koordinaten (in mm)

    - Tabelle "Orte" mit wichtigen Orten und deren Koordinaten (in mm)
    ...........

    wie kann ich jetzt mit einer SQL Abfrage ausrechnen, welche Haltestellen z.B. am nächsten zum Schloss sind bzw. wie weit eine oder mehrere Haltestellen von einem Ort entfernt sind.

    Geht das überhaupt nur mit SQL oder muss man das mit Schleifen machen ?

    PS : die Entfernung können in mm berechnet werden, man muss also nicht noch in geographische Koordinaten umrechnen.


    thx
    Sampdoria

  • #2
    Re: Entfernungsberechnungen in SQL

    entfernungsberechnung sollte ja wohl einfach sein:
    einfach steigungsdreieck "einzeichnen", und länge von dessen hypotenuse berechnen (pythagoras).

    (dass ein punkt mit sich selbst verglichen wird, sollte natürlich ausgeschlossen werden - sonst kommt als kürzeste strecke immer null raus.
    und wenn entfernung zwischen punkt A und B schon berechnet wurde, sollte B - A natürlich nicht noch extra berechnet werden.)


    berechnung könnte man ggf. auch direkt in SQL machen - bushaltestellen mit einem/mehreren orten JOINen, und berechnung wie beschrieben anstellen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke erstmal für die schnelle Antwort!

      Das mit dem Pythagoras hatte ich mir schon gedacht, nur das mit dem Join versteh ich nicht, kann sein, dass ich auch grad auf der Leitung stehe.

      Heisst das also, dass ich jedesmal, wenn ich wissen will, welches die nahegelegenste Haltestelle zu einem ort ist, zu jeder Haltestelle den Pythagoras ausrechnen muss? oder kann man das automatisieren?
      ich hab 60 Orte und 130 haltestellen, das wäre ja viel arbeit für jeden Ort die Entfernung zu jeder Haltestelle zu berechnen...

      thx

      Kommentar


      • #4
        machst du doch eh in sql ..
        du musst ja nur das statement einmal (!) geschickt formulieren
        mfg,
        [color=#0080c0]Coragon[/color]

        Kommentar


        • #5
          die könnten hilfreich sein =>
          http://dev.mysql.com/doc/mysql/de/ma...functions.html
          http://www.php-resource.de/forum/sho...threadid=28292

          wenn deine skills in sql noch nicht soweit sind, mach's erst einmal in mehreren abfragen, also z.B.
          - erst die koordinaten des ortes ziehen (=> sql)
          - werte zwischenparken (=> php)
          - entsprechende query unter verwendung des alten griechens und der grundrechenarten (sub/add) - um von einem neuen nullpunkt aus zu rechnen - auf die haltestellen absetzen (=> sql)
          - bei der berechnung im flug setzt du aliase ein, sonst wirds kniffeliger, an die daten zu kommen

          im 2. schritt kannst du dann daran gehen, joins zu verstehen, und das ganze in eine abfrage zu packen.

          wäre mal mein ungetesteter spontanansatz.
          Kissolino.com

          Kommentar

          Lädt...
          X