sexagesimal2decimal function

double sexagesimal2decimal(
  1. String sexagesimal
)

Converts a sexagesimal string (degrees, minutes, seconds) to a decimal value.

Implementation

double sexagesimal2decimal(String sexagesimal) {
  sexagesimal = sexagesimal.trim();
  final parts = sexagesimal
      .split(RegExp(r"""[°'"\s]+"""))
      .where((s) => s.isNotEmpty)
      .toList();
  if (parts.length < 3) {
    throw FormatException("Invalid sexagesimal format: $sexagesimal");
  }
  final d = double.parse(parts[0]);
  final m = double.parse(parts[1]);
  final s = double.parse(parts[2]);

  final dec = d + (m / 60.0) + (s / 3600.0);

  return dec;
}