track_util.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import 'package:flutter_map/flutter_map.dart';
  2. import 'package:location/data/bean/atmob_track_point.dart';
  3. class TrackUtil {
  4. static List<TraceLocation> points2TraceLocation(
  5. List<AtmobTrackPoint>? pointsList) {
  6. if (pointsList == null) {
  7. return [];
  8. }
  9. List<TraceLocation> traceLocations = [];
  10. for (var value in pointsList) {
  11. TraceLocation traceLocation = TraceLocation(
  12. latitude: value.latitude,
  13. longitude: value.longitude,
  14. time: value.time,
  15. speed: value.speed,
  16. bearing: value.bearing,
  17. );
  18. traceLocations.add(traceLocation);
  19. }
  20. return traceLocations;
  21. }
  22. static List<LatLng> traceLocation2LatLng(
  23. List<TraceLocation>? traceLocations) {
  24. if (traceLocations == null) {
  25. return [];
  26. }
  27. return traceLocations
  28. .map((e) => LatLng(latitude: e.latitude, longitude: e.longitude))
  29. .toList();
  30. }
  31. static String formatDurationFromMillis(int milliseconds) {
  32. final totalMinutes = milliseconds ~/ 60000; // 毫秒转分钟
  33. final hours = totalMinutes ~/ 60;
  34. final minutes = totalMinutes % 60;
  35. if (hours > 0 && minutes > 0) {
  36. return '${hours}h${minutes}min';
  37. } else if (hours > 0) {
  38. return '${hours}h';
  39. } else {
  40. return '${minutes}min';
  41. }
  42. }
  43. }