using System; namespace TINK.Model.Station { public class Position { private const double PRECISSION_LATITUDE_LONGITUDE = 0.000000000000001; public Position() { } public Position(double latitude, double longitude) { Latitude = latitude; Longitude = longitude; } public double Latitude { get; private set; } public double Longitude { get; private set; } /// /// Compares position with a target position. /// /// Target position to compare with. /// True if positions are equal. public override bool Equals(object p_oTarget) { var l_oTarget = p_oTarget as Position; if (l_oTarget is null) { return false; } return Math.Abs(Latitude - l_oTarget.Latitude) < PRECISSION_LATITUDE_LONGITUDE && Math.Abs(Longitude - l_oTarget.Longitude) < PRECISSION_LATITUDE_LONGITUDE; } public override int GetHashCode() { var hashCode = -1416534245; hashCode = hashCode * -1521134295 + Latitude.GetHashCode(); hashCode = hashCode * -1521134295 + Longitude.GetHashCode(); return hashCode; } } }