calculaDistanciaGeoEnMetros static method

double calculaDistanciaGeoEnMetros(
  1. LatLngModel ubicacionInicial,
  2. LatLngModel ubicacionFinal
)

Esta funcion es utilizada para calcula la distancia entre 2 puntos geo

Implementation

static double calculaDistanciaGeoEnMetros(
    LatLngModel ubicacionInicial, LatLngModel ubicacionFinal) {
  double lat1 = ubicacionInicial.latitude;
  double lon1 = ubicacionInicial.longitude;
  double lat2 = ubicacionFinal.latitude;
  double lon2 = ubicacionFinal.longitude;

  const earthRadius = 6371000; // Radio de la Tierra en metros

  final dLat = _toRadians(lat2 - lat1);
  final dLon = _toRadians(lon2 - lon1);
  lat1 = _toRadians(lat1);
  lat2 = _toRadians(lat2);

  final a = math.sin(dLat / 2) * math.sin(dLat / 2) +
      math.sin(dLon / 2) *
          math.sin(dLon / 2) *
          math.cos(lat1) *
          math.cos(lat2);
  final c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a));

  return (earthRadius * c);
}