sharee.bike-App/TINKLib/Model/Station/Position.cs

49 lines
1.4 KiB
C#
Raw Permalink Normal View History

2021-05-13 20:03:07 +02:00
using System;
namespace TINK.Model.Station
{
public class Position
{
private const double PRECISSION_LATITUDE_LONGITUDE = 0.000000000000001;
2021-11-07 19:42:59 +01:00
public Position()
2021-05-13 20:03:07 +02:00
{
}
2021-11-07 19:42:59 +01:00
public Position(double latitude, double longitude)
2021-05-13 20:03:07 +02:00
{
2021-11-07 19:42:59 +01:00
Latitude = latitude;
Longitude = longitude;
2021-05-13 20:03:07 +02:00
}
public double Latitude { get; private set; }
public double Longitude { get; private set; }
/// <summary>
/// Compares position with a target position.
/// </summary>
/// <param name="p_oTarget">Target position to compare with.</param>
/// <returns>True if positions are equal.</returns>
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;
}
}
}