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; } }