Files
rog_app/lib/features/utils/distance_calculator.dart
2024-04-01 09:26:56 +05:30

30 lines
881 B
Dart

import 'dart:math';
import 'package:latlong2/latlong.dart';
class DistanceCalculatorHS {
static const int _radius = 6371; // Radius of the Earth in kilometers
static double _degreeToRadian(double degree) {
return degree * pi / 180;
}
static double calculateDistance(LatLng location1, LatLng location2) {
double latDistance =
_degreeToRadian(location2.latitude - location1.latitude);
double lonDistance =
_degreeToRadian(location2.longitude - location1.longitude);
double a = sin(latDistance / 2) * sin(latDistance / 2) +
cos(_degreeToRadian(location1.latitude)) *
cos(_degreeToRadian(location2.latitude)) *
sin(lonDistance / 2) *
sin(lonDistance / 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
double distance = _radius * c * 1000; // Convert to meters
return distance;
}
}