update
This commit is contained in:
@ -336,7 +336,7 @@ class Tracks extends Model
|
||||
}
|
||||
|
||||
$query .= " ORDER BY tr.crt_d DESC";
|
||||
$limit = isset($filter["limit"]) && $filter["limit"] > 500 ? $filter["limit"] : 3000;
|
||||
$limit = isset($filter["limit"]) && $filter["limit"] > 500 ? $filter["limit"] : 50000;
|
||||
$query .= " LIMIT ?";
|
||||
$params[] = $limit;
|
||||
|
||||
@ -345,7 +345,7 @@ class Tracks extends Model
|
||||
$filtered = self::filterJumps($rawAscCleaned);
|
||||
$combined = $filtered;
|
||||
|
||||
usort($combined, fn($a, $b) => $b->lst_loc_crt_d <=> $a->lst_loc_crt_d);
|
||||
// usort($combined, fn($a, $b) => $b->lst_loc_crt_d <=> $a->lst_loc_crt_d);
|
||||
$final = array_slice($combined, 0, 500);
|
||||
return $final;
|
||||
}
|
||||
@ -392,12 +392,11 @@ class Tracks extends Model
|
||||
$points,
|
||||
$maxDistance = 150,
|
||||
$maxTimeGap = 20,
|
||||
$maxSpeed = 40,
|
||||
$maxHardJump = 800,
|
||||
$maxIdleJump = 1000,
|
||||
$maxRealSpeed = 150
|
||||
$maxSpeed = 100,
|
||||
$maxHardJump = 100,
|
||||
$maxIdleJump = 100,
|
||||
$maxRealSpeed = 100
|
||||
) {
|
||||
// km/h
|
||||
$filtered = [];
|
||||
$last = null;
|
||||
$start = null;
|
||||
@ -423,7 +422,6 @@ class Tracks extends Model
|
||||
$speed = $timeGap > 0 ? $distance / $timeGap : 0;
|
||||
$realSpeedKmh = $speed * 3.6;
|
||||
|
||||
// Tambahan: jarak terhadap titik awal
|
||||
$jumpFromStart = self::haversineDistance(
|
||||
$start->latitude,
|
||||
$start->longitude,
|
||||
@ -431,28 +429,23 @@ class Tracks extends Model
|
||||
$p->longitude
|
||||
);
|
||||
|
||||
// 🚫 Lompatan keras (langsung > 800 m)
|
||||
if ($distance > $maxHardJump) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 🚫 Lompat saat idle (dianggap tidak wajar jika dua titik idle dan lompat jauh)
|
||||
if ($distance > $maxIdleJump && $p->speed < 5 && $last->speed < 5) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 🚫 Lompat dalam waktu pendek dan speed terlalu tinggi
|
||||
if ($timeGap <= $maxTimeGap && $speed > $maxSpeed) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 🚫 Speed tidak masuk akal
|
||||
if ($realSpeedKmh > $maxRealSpeed) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 🚫 Lompat dari titik awal terlalu jauh (anomaly GPS loncat)
|
||||
if ($jumpFromStart > 10000 && $p->speed < 5) {
|
||||
if ($jumpFromStart > 500 && $p->speed < 5) {
|
||||
continue;
|
||||
} // >10 km dari area awal tapi status idle
|
||||
|
||||
|
||||
Reference in New Issue
Block a user