calculateDistance function
Implementation
double? calculateDistance(Coordinate? start, Coordinate? end) {
const double earthRadius = 6371.0; // Earth's radius in kilometers
double toRadians(double degrees) {
return degrees * pi / 180.0;
}
if (start?.latitude != null &&
start?.longitude != null &&
end?.latitude != null &&
end?.longitude != null) {
double lat1Rad = toRadians(start!.latitude!);
double lon1Rad = toRadians(start.longitude!);
double lat2Rad = toRadians(end!.latitude!);
double lon2Rad = toRadians(end.longitude!);
double dLat = lat2Rad - lat1Rad;
double dLon = lon2Rad - lon1Rad;
double a = pow(sin(dLat / 2), 2) +
cos(lat1Rad) * cos(lat2Rad) * pow(sin(dLon / 2), 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
double distance = earthRadius * c;
return distance;
}
return null;
}