Entfernung berechnen zwischen 2 Postleitzahlen?!

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

  • Entfernung berechnen zwischen 2 Postleitzahlen?!

    Hi,

    ich habe eine kleine Funktion geschrieben, weiß jedoch nicht ob sie richtig ist. Wäre nett, wenn sich die jemand anschauen könnte.

    PHP-Code:
    rad2deg(
        
    sqrt(
            (
                (
    $db2['breite'] - $db1['breite']) * ($db2['breite'
                - 
    $db1['breite'])) + (($db2['laenge'] - $db1['laenge']) 
               * (
    $db2['laenge'] - $db1['laenge'])
            )
        )
    )*
    1.609344
    Das ist die Funktion. Ich habe sie mit der Entfernungsberechnung von www.opengeodb.de verglichen. Die Werte stimmen nicht ganz überein, sind jedoch ziemlich ähnlich.

    Beispiel 1:

    Berlin (14199) - München (81929):

    Entfernung mit meiner Funktion - 425.60 Kilometer
    Entfernung mit Entfernungsberechner von opengeodb.de - 493.79 Kilometer

    Beispiel 2:

    Krefeld (47807) - Gotha (99869)

    Entfernung mit meiner Funktion - 383.17 Kilometer
    Entfernung mit Entfernungsberechner von opengeodb.de - 291.42 Kilometer


    Wie ihr sehen könnt gibt es schon enorme unterschiede. Ich weiß jedoch nicht woran das liegt. Kann mir evtl. jemand helfen?

    Ich hatte bis jetzt die geoClassPhp genutzt. Die ist mir jedoch viel zu überladen und da blicke ich nicht so ganz durch. Ich brauche halt nur die Entfernung zwischen 2 Postleitzahlen.

  • #2
    Ich glaube das liegt daran, das du und opengeodb andere grenzen bzw. punkte zum messen nutzt, wo jetzt berlin beginnt und wo angefangen wird die kilometer zu zählen. wobei das bei dieser großen differenz deiner und der opengeodb schon sehr fatal ist.

    Frage doch einfach mal opengeodb was sie für eine angabe haben.
    Falls diese vermutung (wirklich nur eine vermutung) schwachsinn sein sollte, einfach ignorieren.
    Webdesign und Webentwicklung - Plunix.de

    Kommentar


    • #3
      Die Koordinaten, also Latituden und Longituden sind jeweis die gleichen. Dabei gibt es keinen Unterschied.

      Kommentar


      • #4
        Mhh das lässt mich doch Stutzig werden. Zeige doch mal bitte beispiele deiner Koordinaten für Berlin-Frankfurt und die von opengeodb!
        Webdesign und Webentwicklung - Plunix.de

        Kommentar


        • #5
          OpenGeoDb

          Berlin (14199)
          52.4791974690517 / 13.2981082081636

          Frankfurt am Main (60599)
          50.086608543744 / 8.7152998667762


          Meine Koordinaten

          Berlin (14199)
          52.4791974690517 / 13.2981082081636

          Frankfurt am Main (60599)
          50.086608543744 / 8.71529986677625



          Wie man sieht gibt es so keinen Unterschied zwischen den Koordinaten.

          Kommentar


          • #6
            wie bist du denn auf diese formel gekommen?

            pythagoras kannst du bei den entfernungen direkt vergessen, da du nur bei entfernungen bis 20 oder 30 km eine ebene annähern kannst.

            abgesehen davon erschließt sich mir der sinn nicht, warum du eine länge von einem winkelmaß in ein anderes winkelmaß umwandeln willst, und warum du es dann mit 1.6irgendwas multiplizierst...

            eine recht gängige formel ist folgende

            arccos( sin(lat2) * sin(lat1) + cos(lat2) * cos(lat1) * cos(lon2 - lon1) ) * R, R = 6378

            Kommentar


            • #7
              Danke, hab es schon selber herausgefunden...Die Formel hab ich per Google gefunden. Die konnte so gar nicht funktionieren. Als Erklärung für die 1.6xxx stand, dass es von Meilen in Kilometer umgewandelt wird. Was aber bei dieser Berechnung Blödsinn ist.

              Ich danke euch für die Posts.

              Kommentar

              Lädt...
              X