fix: distinguish track mileage evidence

This commit is contained in:
lingniu
2026-07-19 12:32:01 +08:00
parent f825c9f417
commit 4e4f383988
10 changed files with 63 additions and 32 deletions

View File

@@ -3474,10 +3474,14 @@ func summarizeTrack(points []HistoryLocationRow) TrackPlaybackSummary {
summary.AverageSpeedKmh = speedTotal / float64(speedCount)
}
mileageDistance := points[len(points)-1].TotalMileageKm - points[0].TotalMileageKm
if points[0].Protocol == points[len(points)-1].Protocol && mileageDistance >= 0 && mileageDistance < 10000 {
if points[0].Protocol == points[len(points)-1].Protocol &&
points[0].MileageAvailable && points[len(points)-1].MileageAvailable &&
mileageDistance >= 0 && mileageDistance < 10000 {
summary.DistanceKm = mileageDistance
summary.DistanceMethod = "odometer"
} else {
summary.DistanceKm = coordinateDistance
summary.DistanceMethod = "coordinates"
}
start, startOK := parseVehicleServiceTime(summary.StartTime)
end, endOK := parseVehicleServiceTime(summary.EndTime)