\n"; // --- Richtungsbestimmung --- // Achtung: Punkte liegen in zeitlich absteigender Reihenfolge vor // Betrag in km und Richtungsbestimmung der Bewegung in der Länge: Osten oder Westen $diff_long = ($loc_long - $prev_loc_long) * $distLongKm; $move_long = "o"; $diff_rel_start = 0; if ($diff_long >= 0) { $move_long = "w"; $diff_rel_start = -360; } // Betrag in km und Richtungsbestimmung der Bewegung in der Breite: Norden oder Süden $diff_lat = ($loc_lat - $prev_loc_lat) * DIST_LAT_KM; $move_lat = "n"; if ($diff_lat >= 0) { $move_lat = "s"; $diff_rel_start = -180; if ($move_long == "w") $diff_rel_start = 180; } $diff_str = "(" . str_replace(".", ",", sprintf("%01.3f", abs($diff_long))) . " km nach " . strtoupper($move_long) . ",
" . str_replace(".", ",", sprintf("%01.3f", abs($diff_lat))) . " km nach " . strtoupper($move_lat) . ")
"; // Bestimmung der Hauptrichtung der Bewegung in Länge oder Breite if (abs($diff_lat) > abs($diff_long)) { // Betrag der Bewegung in der Breite (nach Norden/Süden) ist größer als die in der Länge (nach Osten/Westen) $direction = $move_lat; $diff_rel = abs($diff_long) / abs($diff_lat); if ($diff_rel >= 0.25 && $diff_rel < 0.75) $direction .= $move_lat . $move_long; if ($diff_rel >= 0.75) $direction .= $move_long; } else { // Betrag der Bewegung in der Länge (nach Osten/Westen) ist größer als die in der Breite (nach Norden/Süden) $direction = $move_long; $diff_rel = abs($diff_lat) / abs($diff_long); if ($diff_rel >= 0.25 && $diff_rel < 0.75) $direction .= $move_lat . $move_long; if ($diff_rel >= 0.75) $direction = $move_lat . $direction; $diff_rel_start = -90; if ($diff_long >= 0) { $diff_rel_start = 270; } if ($diff_lat >= 0) { $diff_rel_start = 90; if ($move_long == "w") $diff_rel_start = -270; } } // die Werte in $diff_rel_start sind größtenteils falsch, müssen noch korrigiert werden, bevor die Grad-Angabe ausgegeben werden kann $diff_str = "Richtung: " /* . "
" . $diff_rel_start . " + " . sprintf("%01.0f", $diff_rel * 45) */ . "" . sprintf("%01.0f", abs(($diff_rel_start + $diff_rel * 45) * 10) / 10) . "° " . strtoupper($direction) . "
" . $diff_str; // --- --- // return "../images/arrow_" . $direction . ".png"; return $direction; } function getVelocity($loc_long, $loc_lat, $loc_time, $prev_loc_long, $prev_loc_lat, $prev_loc_time) { if ($loc_time == "1970-01-01 01:00:00" || $prev_loc_time == "1970-01-01 01:00:00") return "?"; $distKm = acos(sin(deg2rad($loc_lat)) * sin(deg2rad($prev_loc_lat)) + cos(deg2rad($loc_lat)) * cos(deg2rad($prev_loc_lat)) * cos(deg2rad($prev_loc_long) - deg2rad($loc_long))) * GEO_EARTH_RADIUS; //echo "$loc_long, $loc_lat, $loc_time, $prev_loc_long, $prev_loc_lat, $prev_loc_time, $distKm , " . (strtotime($prev_loc_time) - strtotime($loc_time)) . ", " . (($distKm / (strtotime($prev_loc_time) - strtotime($loc_time))) * 3600) . "
"; return round(($distKm / (strtotime($prev_loc_time) - strtotime($loc_time))) * 3600); } function getLocatingType($cr_gps_type) { $cr_gps_type_text = ""; if ($cr_gps_type == 0) { $cr_gps_type_text = "unbestimmt"; } elseif ($cr_gps_type == 1) { $cr_gps_type_text = "LBS"; } elseif ($cr_gps_type == 2) { $cr_gps_type_text = "GPS"; } elseif ($cr_gps_type == 3) { $cr_gps_type_text = "Network"; } elseif ($cr_gps_type == 9) { $cr_gps_type_text = "Ortung aus"; } return $cr_gps_type_text; } function formDateTime($sqlDate) { global $today; return substr($sqlDate, 8, 2) . "." . substr($sqlDate, 5, 2) . "." . substr($sqlDate, 0, 4) . ", " . substr($sqlDate, 11, 8); } ?>