public double Distance(Coordenada otherCoordenate) { double earthRadius = 6371; double deltaLatitude = ToRadian(otherCoordenate.Latitude - Latitude); double deltaLongitude = ToRadian(otherCoordenate.Longitude - Longitude); double a = Math.Sin(deltaLatitude / 2) * Math.Sin(deltaLatitude / 2) + Math.Cos(ToRadian(Latitude)) * Math.Cos(ToRadian(otherCoordenate.Latitude)) * Math.Sin(deltaLongitude / 2) * Math.Sin(deltaLongitude / 2); double distanceAngular = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a)); return earthRadius * distanceAngular; }
public Alumno masCercanoA(Alumno otroAlumno, Coordenada coordenada) { if (this.DistanciaA(coordenada) < otroAlumno.DistanciaA(coordenada)) { return this; } else { return otroAlumno; } }
public double DistanciaA(Coordenada coordenada) { return Direccion.Distance(coordenada); }