public double CalculateDistance(IDistancePoint point1, IDistancePoint point2, MeasureUnit measureUnit, DistanceCalculationMethod distanceMethod) { //Saves calculation when points are equivalent if (point1.Equals(point2)) { return(0); } else { return(_distanceMethods.FirstOrDefault(x => x.DistanceCalculationMethod == distanceMethod)?.CalculateDistance(point1, point2, measureUnit) ?? throw new ArgumentNullException(nameof(distanceMethod))); } }
public virtual double CalculateDistance(IDistancePoint point1, IDistancePoint point2, MeasureUnit measureUnit) { throw new NotImplementedException(); }
public bool Equals(IDistancePoint other) { return(Latitude == other.Latitude && Longitude == other.Longitude); }