Analog zu meinem anderen Forenbeitrag (http://www.php-resource.de/forum/sql...statement.html) habe ich in Sachen Umsetzung mit PHP eine Frage.
Wie in dem anderen Beitrag beschrieben verwende ich zur Dokumentation meiner Radtouren einen GPS Logger, der im Takt von 1 Sekunde die Koordinaten dokumentiert. Diese werden in Form einer GPX Datei exportiert, ich lasse diese dann per PHP zerlegen und speichere die Werte in einer Datenbank.
Ich möchte am Ende ähnlich meinem anderen Beitrag eine Auswertung meiner Fahrt- und Stopzeiten sehen, in diesem Falle aber nicht in Form eines Diagrammes sondern als Auflistung. Eine Zeit lang habe ich mir einfach eine Liste ausgeben lassen, in denen jeder Wert auf die GEschwindigkeit untersucht wurde, das Resultat war dann eine Auflistung wie z.B.
23.08.2012 / 09:00:01 - in Bewegung, Geschwindigkeit: 30 kmh
23.08.2012 / 09:00:02 - in Bewegung, Geschwindigkeit: 28 kmh
23.08.2012 / 09:00:03 - in Bewegung, Geschwindigkeit: 32 kmh
23.08.2012 / 09:00:04 - in Bewegung, Geschwindigkeit: 31 kmh
23.08.2012 / 09:00:05 - Stop, Geschwindigkeit: 0 kmh
23.08.2012 / 09:00:06 - Stop, Geschwindigkeit: 0 kmh
23.08.2012 / 09:00:07 - in Bewegung, Geschwindigkeit: 17 kmh
Man kann sich vorstellen, dass eine solche Liste bei einem Loggingintervall von 1 Sekunde sehr lang und unübersichtlich sein kann und auch übersichtlich wird.
Mein Wunschgedanke ist daher eine Auflistung Schema:
23.08.2012 / 09:00:01 - 23.08.2012 / 09:00:04 in Bewegung
23.08.2012 / 09:00:05 - 23.08.2012 / 09:00:06 Stopped
[..]
Mein Ansatz war daher (grob):
- Setze ersten Status auf 0 (Stop)
-> Gebe ersten Status aus ("Fahrrad gestoppt")
- Hole ersten Geschwindigkeitswert aus DB
- Wenn erster Status = aktueller Status
-> Gebe nichts aus
-- wenn erster Status != aktueller Status
-> Gebe aus ("Bewegung")
usw.
Mein Code im Ansatz (bissi quick and dirty, ich weiß).
Leider schaffe ich es nicht, die Einträge so auszugeben, dass einfach ein Startzeitraum ausgegeben wird, dann ein Stopzeitraum usw.
Hat jemand vielleicht einen Denkstubser für mich?
Wie in dem anderen Beitrag beschrieben verwende ich zur Dokumentation meiner Radtouren einen GPS Logger, der im Takt von 1 Sekunde die Koordinaten dokumentiert. Diese werden in Form einer GPX Datei exportiert, ich lasse diese dann per PHP zerlegen und speichere die Werte in einer Datenbank.
Ich möchte am Ende ähnlich meinem anderen Beitrag eine Auswertung meiner Fahrt- und Stopzeiten sehen, in diesem Falle aber nicht in Form eines Diagrammes sondern als Auflistung. Eine Zeit lang habe ich mir einfach eine Liste ausgeben lassen, in denen jeder Wert auf die GEschwindigkeit untersucht wurde, das Resultat war dann eine Auflistung wie z.B.
23.08.2012 / 09:00:01 - in Bewegung, Geschwindigkeit: 30 kmh
23.08.2012 / 09:00:02 - in Bewegung, Geschwindigkeit: 28 kmh
23.08.2012 / 09:00:03 - in Bewegung, Geschwindigkeit: 32 kmh
23.08.2012 / 09:00:04 - in Bewegung, Geschwindigkeit: 31 kmh
23.08.2012 / 09:00:05 - Stop, Geschwindigkeit: 0 kmh
23.08.2012 / 09:00:06 - Stop, Geschwindigkeit: 0 kmh
23.08.2012 / 09:00:07 - in Bewegung, Geschwindigkeit: 17 kmh
Man kann sich vorstellen, dass eine solche Liste bei einem Loggingintervall von 1 Sekunde sehr lang und unübersichtlich sein kann und auch übersichtlich wird.
Mein Wunschgedanke ist daher eine Auflistung Schema:
23.08.2012 / 09:00:01 - 23.08.2012 / 09:00:04 in Bewegung
23.08.2012 / 09:00:05 - 23.08.2012 / 09:00:06 Stopped
[..]
Mein Ansatz war daher (grob):
- Setze ersten Status auf 0 (Stop)
-> Gebe ersten Status aus ("Fahrrad gestoppt")
- Hole ersten Geschwindigkeitswert aus DB
- Wenn erster Status = aktueller Status
-> Gebe nichts aus
-- wenn erster Status != aktueller Status
-> Gebe aus ("Bewegung")
usw.
Mein Code im Ansatz (bissi quick and dirty, ich weiß).
Code:
$last_state = 1; while($row = mysql_fetch_object($query)) { $speed = $row->field_5; $Zeit = $row->Zeit; $sats = $row->satellites; if($speed > 3) { $actual_driving_state = 1; } else { $actual_driving_state = 0; } if(($speed > 3) && ($sats > 6)) { $actual_driving_state = 1; if($last_state == $actual_driving_state) { //Mache nichts, weil letzter Status = aktueller Status } else { //Schreibe Zeile echo "<br>Gestartet - $Zeit - $speed<hr><br>"; // Setze neuen Status $last_state = $actual_driving_state; } } else { $actual_driving_state = 0; if($last_state == $actual_driving_state) { //Mache nichts, weil letzter Status = aktueller Status } else { //Sxhreibe Zeile echo "Stop $Zeit - "; // Setze neuen Status $last_state = $actual_driving_state; } } if($last_state == $actual_driving_state) { //Mache nichts, weil letzter Status = aktueller Status } else { //Schreibe Zeile echo "in bewegung - $speed<br>"; // Setze neuen Status $last_state = $actual_driving_state; } //echo $speed . "<br>"; }
Hat jemand vielleicht einen Denkstubser für mich?
Kommentar