• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Distanzberechnung mit PHP, Daten aus MySQL DB

Lattenstramm

Geonewbie
Guten Morgen,

auch ich habe mich mit der Thematik zu befassen begonnen.

Ich habe mir mal eine kleine Anwendung in VB geschrieben, die mir die auf meinem Handy (GPS intern) die aktuellen Koordinaten ermittelt und diese an einen "entfernten" Server sendet.

Dort werden besagte Daten in einer MySQL DB gespeichert.

Nun möchte ich hin und wieder die gesamten Daten bzw. die Distanzen der einzelnen Wegepunkte zusammenaddieren, damit sich daraus eine Gesamtdistanz ergibt.

Die Berechnung von Distanzen wurde schon hinreichend diskutiert und ist nicht das Problem.

Kleiner Auszug:

Auswahl der Daten

Code:
{
$lng[] = $row['koord_e'];
$lat[] = $row['koord_n'];
}

Addition

Code:
for($i=0;$i<=$count_koords;$i++)

{
$dist[] = 6378.388 * acos(sin($lat[$i]) * sin($lat[$i+1]) + cos($lat[$i]) * cos($lat[$i+1]) * cos($lng[$i+1] - $lng[$i]));
}
$summe = array_sum($dist);

Nun ist es ja nunmal so, dass im Falle $i irgendwann der letzte Eintrag der DB erreicht ist, der $i+1 Eintrag wäre also leer. Daher schlägt die Berechnung ab dem Augenblick fehl.

Hat jemand einen Vorschlag, wie ich die Fehlberechnung in $+1 ausschliessen kann?
Mir fehlt gerade die Logik -.-

Bin für jeden Vorschlag dankbar,

Viele Grüße,

Boris
 

Dunuin

Geocacher
Ich glaueb ich verstehe deine Frage nicht so ganz.
Wenn du willst, dass kein Fehler entsteht, weil er beim letzen Eintrag auf den nicht vorhandenen nächsten zugreifen will dann schreibt doch einfach:
Code:
for($i=0;$i<$count_koords;$i++)
{
$dist[] = 6378.388 * acos(sin($lat[$i]) * sin($lat[$i+1]) + cos($lat[$i]) * cos($lat[$i+1]) * cos($lng[$i+1] - $lng[$i]));
}
$summe = array_sum($dist);
So geht er alle ab bis zum vorletzten. Da brauchst doch nur bei der For-Schleife das "<=" zu "<" machen.
 
Oben