meters static method

String meters(
  1. num? metersVal, [
  2. int decimals = 1
])

Formats meters into metric distance (e.g., "1km 200m" or "500m").

Implementation

static String meters(num? metersVal, [int decimals = 1]) {
  if (metersVal == null) return "";
  if (metersVal <= 0) return "0m";

  if (metersVal >= 1000) {
    final km = (metersVal / 1000).floor();
    final remainingMeters = metersVal % 1000;
    final mStr = remainingMeters.toStringAsFixed(decimals);
    final m = double.tryParse(mStr) ?? 0.0;
    final mFormatted = m % 1 == 0 ? m.toInt().toString() : m.toString();
    return m > 0 ? "${km}km ${mFormatted}m" : "${km}km";
  }
  final formatted = double.tryParse(metersVal.toStringAsFixed(decimals)) ?? 0.0;
  final formattedStr = formatted % 1 == 0 ? formatted.toInt().toString() : formatted.toString();
  return "${formattedStr}m";
}