re factor rog
This commit is contained in:
29
lib/features/utils/distance_calculator.dart
Normal file
29
lib/features/utils/distance_calculator.dart
Normal file
@ -0,0 +1,29 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user